From eeb6be1f0871130b9d12b90a7771135e3ea6c780 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Aug 2015 10:24:34 -0400 Subject: [PATCH 001/355] (css) Match new ng-material files names --- .../scss/components/bottomSheet/_extends.scss | 2 +- .../{bottomSheet.scss => bottom-sheet.scss} | 0 .../scss/components/gridList/_extends.scss | 2 +- .../gridList/{gridList.scss => grid-list.scss} | 0 ...rogressCircular.scss => progress-circular.scss} | 0 .../scss/components/progressLinear/_extends.scss | 2 +- .../{progressLinear.scss => progress-linear.scss} | 0 .../scss/components/virtualRepeat/_extends.scss | 2 +- .../{virtualRepeat.scss => virtual-repeat.scss} | 0 UI/WebServerResources/scss/styles.scss | 14 +++++++------- UI/WebServerResources/scss/views/_view.scss | 3 ++- 11 files changed, 13 insertions(+), 12 deletions(-) rename UI/WebServerResources/scss/components/bottomSheet/{bottomSheet.scss => bottom-sheet.scss} (100%) rename UI/WebServerResources/scss/components/gridList/{gridList.scss => grid-list.scss} (100%) rename UI/WebServerResources/scss/components/progressCircular/{progressCircular.scss => progress-circular.scss} (100%) rename UI/WebServerResources/scss/components/progressLinear/{progressLinear.scss => progress-linear.scss} (100%) rename UI/WebServerResources/scss/components/virtualRepeat/{virtualRepeat.scss => virtual-repeat.scss} (100%) diff --git a/UI/WebServerResources/scss/components/bottomSheet/_extends.scss b/UI/WebServerResources/scss/components/bottomSheet/_extends.scss index d1049036f..0ccec5e00 100644 --- a/UI/WebServerResources/scss/components/bottomSheet/_extends.scss +++ b/UI/WebServerResources/scss/components/bottomSheet/_extends.scss @@ -1,2 +1,2 @@ /*! bottomSheet/_extends.scss - */ -@import '../../../angular-material/src/components/bottomSheet/bottomSheet.scss'; \ No newline at end of file +@import '../../../angular-material/src/components/bottomSheet/bottom-sheet.scss'; diff --git a/UI/WebServerResources/scss/components/bottomSheet/bottomSheet.scss b/UI/WebServerResources/scss/components/bottomSheet/bottom-sheet.scss similarity index 100% rename from UI/WebServerResources/scss/components/bottomSheet/bottomSheet.scss rename to UI/WebServerResources/scss/components/bottomSheet/bottom-sheet.scss diff --git a/UI/WebServerResources/scss/components/gridList/_extends.scss b/UI/WebServerResources/scss/components/gridList/_extends.scss index b6c2bca0a..9c4c25307 100644 --- a/UI/WebServerResources/scss/components/gridList/_extends.scss +++ b/UI/WebServerResources/scss/components/gridList/_extends.scss @@ -1 +1 @@ -@import '../../../angular-material/src/components/gridList/gridList.scss'; +@import '../../../angular-material/src/components/gridList/grid-list.scss'; diff --git a/UI/WebServerResources/scss/components/gridList/gridList.scss b/UI/WebServerResources/scss/components/gridList/grid-list.scss similarity index 100% rename from UI/WebServerResources/scss/components/gridList/gridList.scss rename to UI/WebServerResources/scss/components/gridList/grid-list.scss diff --git a/UI/WebServerResources/scss/components/progressCircular/progressCircular.scss b/UI/WebServerResources/scss/components/progressCircular/progress-circular.scss similarity index 100% rename from UI/WebServerResources/scss/components/progressCircular/progressCircular.scss rename to UI/WebServerResources/scss/components/progressCircular/progress-circular.scss diff --git a/UI/WebServerResources/scss/components/progressLinear/_extends.scss b/UI/WebServerResources/scss/components/progressLinear/_extends.scss index 6355e0ccd..c82b7546c 100644 --- a/UI/WebServerResources/scss/components/progressLinear/_extends.scss +++ b/UI/WebServerResources/scss/components/progressLinear/_extends.scss @@ -1,2 +1,2 @@ /*! progressLinear/_extends.scss - */ -@import '../../../angular-material/src/components/progressLinear/progressLinear.scss'; \ No newline at end of file +@import '../../../angular-material/src/components/progressLinear/progress-linear.scss'; diff --git a/UI/WebServerResources/scss/components/progressLinear/progressLinear.scss b/UI/WebServerResources/scss/components/progressLinear/progress-linear.scss similarity index 100% rename from UI/WebServerResources/scss/components/progressLinear/progressLinear.scss rename to UI/WebServerResources/scss/components/progressLinear/progress-linear.scss diff --git a/UI/WebServerResources/scss/components/virtualRepeat/_extends.scss b/UI/WebServerResources/scss/components/virtualRepeat/_extends.scss index cf7fe997f..f4350b02b 100644 --- a/UI/WebServerResources/scss/components/virtualRepeat/_extends.scss +++ b/UI/WebServerResources/scss/components/virtualRepeat/_extends.scss @@ -1,2 +1,2 @@ /*! virtualRepeat/_extends.scss - */ -@import '../../../angular-material/src/components/virtualRepeat/virtualRepeater.scss'; \ No newline at end of file +@import '../../../angular-material/src/components/virtualRepeat/virtual-repeater.scss'; diff --git a/UI/WebServerResources/scss/components/virtualRepeat/virtualRepeat.scss b/UI/WebServerResources/scss/components/virtualRepeat/virtual-repeat.scss similarity index 100% rename from UI/WebServerResources/scss/components/virtualRepeat/virtualRepeat.scss rename to UI/WebServerResources/scss/components/virtualRepeat/virtual-repeat.scss diff --git a/UI/WebServerResources/scss/styles.scss b/UI/WebServerResources/scss/styles.scss index 6ee0a4ed6..41d7ec800 100755 --- a/UI/WebServerResources/scss/styles.scss +++ b/UI/WebServerResources/scss/styles.scss @@ -27,7 +27,7 @@ // ------------------------------------------------------------------------------ @import 'components/autocomplete/autocomplete'; @import 'components/backdrop/backdrop'; -@import 'components/bottomSheet/bottomSheet'; +//@import 'components/bottomSheet/bottom-sheet'; @import 'components/button/button'; @import 'components/card/card'; @import 'components/checkbox/checkbox'; @@ -41,13 +41,13 @@ @import 'components/fabSpeedDial/fabSpeedDial'; //@import 'components/fabToolbar/fabToolbar'; //@import 'components/fabTrigger/fabTrigger'; -@import 'components/gridList/gridList'; +@import 'components/gridList/grid-list'; @import 'components/icon/icon'; @import 'components/input/input'; @import 'components/list/list'; @import 'components/menu/menu'; -//@import 'components/progressCircular/progressCircular'; -@import 'components/progressLinear/progressLinear'; +//@import 'components/progressCircular/progress-circular'; +@import 'components/progressLinear/progress-linear'; @import 'components/radioButton/radio-button'; @import 'components/select/select'; @import 'components/sidenav/sidenav'; @@ -60,7 +60,7 @@ @import 'components/toast/toast'; @import 'components/toolbar/toolbar'; @import 'components/tooltip/tooltip'; -@import 'components/virtualRepeat/virtualRepeat'; +@import 'components/virtualRepeat/virtual-repeat'; @import 'components/whiteframe/whiteframe'; // Theme @@ -97,8 +97,8 @@ @import 'core/base_styles/base_style'; // Make sure this is last to override anything else -@import 'shame'; +//@import 'shame'; // dev-tools - NOT FOR PRODUCTION // ------------------------------------------------------------------------------ -@import 'devtools'; +//@import 'devtools'; diff --git a/UI/WebServerResources/scss/views/_view.scss b/UI/WebServerResources/scss/views/_view.scss index 3c3c8e0fb..f4d54e5d4 100644 --- a/UI/WebServerResources/scss/views/_view.scss +++ b/UI/WebServerResources/scss/views/_view.scss @@ -6,7 +6,8 @@ @import 'MessageEditorUI'; @import 'SchedulerUI'; -.view[layout=row] { +.view[layout=row], +.view.layout-row { max-height: 100%; } From eab3ee111a65f75e95e1ea46e7bf7135b3949d52 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Tue, 25 Aug 2015 11:45:17 -0400 Subject: [PATCH 002/355] (feat) now use md-on-demand for (hopefully) faster mailbox loading --- .../MailerUI/UIxMailFolderTemplate.wox | 5 ++- .../js/Mailer/Mailbox.service.js | 31 ++++++++++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index a4d04734a..04a4769a0 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -14,7 +14,8 @@ -
+
{{currentMessage.$shortAddress('from')}}
{{currentMessage.subject}}
-
warning diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index fab6ca16b..6d3dc4de1 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -167,6 +167,35 @@ } }; + /** + * @function getLength + * @memberof Mailbox.prototype + * @desc Used by md-virtual-repeat / md-on-demand + * @returns the number of items in the mailbox + */ + Mailbox.prototype.getLength = function() { + return this.$messages.length; + }; + + /** + * @function getItemAtIndex + * @memberof Mailbox.prototype + * @desc Used by md-virtual-repeat / md-on-demand + * @returns the message as the specified index + */ + Mailbox.prototype.getItemAtIndex = function(index) { + var message; + + if (index >= 0 && index < this.$messages.length) { + message = this.$messages[index]; + + if (this.$loadMessage(message.uid)) + return message; + } + + return null; + }; + /** * @function $id * @memberof Mailbox.prototype @@ -588,7 +617,7 @@ if (_this.uids) { Mailbox.$log.debug('unwrapping ' + data.uids.length + ' messages'); - + // First entry of 'headers' are keys headers = _.invoke(_this.headers[0], 'toLowerCase'); _this.headers.splice(0, 1); From 99d121fd3e9ed085062abf02ce336f3563a55688 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Tue, 25 Aug 2015 11:46:14 -0400 Subject: [PATCH 003/355] (fix) updates for new packages --- UI/WebServerResources/css/styles.css | 3529 ++++---- UI/WebServerResources/css/styles.css.map | 2 +- UI/WebServerResources/js/Common.js | 4 +- UI/WebServerResources/js/Common.js.map | 2 +- UI/WebServerResources/js/Contacts.js | 2 +- UI/WebServerResources/js/Contacts.js.map | 2 +- UI/WebServerResources/js/Mailer.js | 2 +- UI/WebServerResources/js/Mailer.js.map | 2 +- UI/WebServerResources/js/Mailer.services.js | 2 +- .../js/Mailer.services.js.map | 2 +- .../js/Scheduler.services.js | 2 +- .../js/Scheduler.services.js.map | 2 +- .../js/vendor/angular-animate.js | 5733 ++++++++----- .../js/vendor/angular-animate.min.js | 79 +- .../js/vendor/angular-animate.min.js.map | 6 +- .../js/vendor/angular-material.js | 4697 ++++++---- .../js/vendor/angular-material.min.js | 18 +- .../js/vendor/angular-sanitize.js | 64 +- .../js/vendor/angular-sanitize.min.js | 22 +- .../js/vendor/angular-sanitize.min.js.map | 4 +- UI/WebServerResources/js/vendor/angular.js | 7532 +++++++++++------ .../js/vendor/angular.min.js | 538 +- .../js/vendor/angular.min.js.map | 6 +- 23 files changed, 13484 insertions(+), 8768 deletions(-) diff --git a/UI/WebServerResources/css/styles.css b/UI/WebServerResources/css/styles.css index d95d12589..172aa6fae 100644 --- a/UI/WebServerResources/css/styles.css +++ b/UI/WebServerResources/css/styles.css @@ -481,7 +481,7 @@ html * { 960 <= size < 1200 Tablet-Landscape 1200 <= size PC */ -[layout], .md-layout { +.layout { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; @@ -489,548 +489,532 @@ html * { display: -ms-flexbox; display: flex; } -[layout=column] { +.layout-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-flex-direction: column; } -[layout=row] { +.layout-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-flex-direction: row; } -[layout-padding] > [flex-sm], -.md-layout-padding > [flex-sm], -[layout-padding] > [flex-lt-md], .md-layout-padding > [flex-lt-md] { +.layout-padding > .flex-sm, +.layout-padding > .flex-lt-md { padding: 4px; } -[layout-padding], -.md-layout-padding, -[layout-padding] > [flex], -.md-layout-padding > [flex], -[layout-padding] > .md-flex, -.md-layout-padding > .md-flex, -[layout-padding] > [flex-gt-sm], -.md-layout-padding > [flex-gt-sm], -[layout-padding] > [flex-md], -.md-layout-padding > [flex-md], -[layout-padding] > [flex-lt-lg], .md-layout-padding > [flex-lt-lg] { +.layout-padding, +.layout-padding > .flex, +.layout-padding > .flex-gt-sm, +.layout-padding > .flex-md, +.layout-padding > .flex-lt-lg { padding: 8px; } -[layout-padding] > [flex-gt-md], -.md-layout-padding > [flex-gt-md], -[layout-padding] > [flex-lg], .md-layout-padding > [flex-lg] { +.layout-padding > .flex-gt-md, +.layout-padding > .flex-lg { padding: 16px; } -[layout-margin] > [flex-sm], -.md-layout-margin > [flex-sm], -[layout-margin] > [flex-lt-md], .md-layout-margin > [flex-lt-md] { +.layout-margin > .flex-sm, +.layout-margin > .flex-lt-md { margin: 4px; } -[layout-margin], -.md-layout-margin, -[layout-margin] > [flex], -.md-layout-margin > [flex], -[layout-margin] > .md-flex, -.md-layout-margin > .md-flex, -[layout-margin] > [flex-gt-sm], -.md-layout-margin > [flex-gt-sm], -[layout-margin] > [flex-md], -.md-layout-margin > [flex-md], -[layout-margin] > [flex-lt-lg], .md-layout-margin > [flex-lt-lg] { +.layout-margin, +.layout-margin > .flex, +.layout-margin > .flex-gt-sm, +.layout-margin > .flex-md, +.layout-margin > .flex-lt-lg { margin: 8px; } -[layout-margin] > [flex-gt-md], -.md-layout-margin > [flex-gt-md], -[layout-margin] > [flex-lg], .md-layout-margin > [flex-lg] { +.layout-margin > .flex-gt-md, +.layout-margin > .flex-lg { margin: 16px; } -[layout-wrap], .md-layout-wrap { +.layout-wrap { -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } -[layout-fill], .md-layout-fill { +.layout-fill { margin: 0; min-height: 100%; width: 100%; } @-moz-document url-prefix() { - [layout-fill], .md-layout-fill { + .layout-fill { margin: 0; width: 100%; min-height: auto; height: inherit; } } -[flex], .md-flex { +.flex { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } -[flex="0"] { +.flex-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } -[layout="row"] > [flex="0"] { +.layout-row > .flex-0 { max-width: 0%; } -[layout="column"] > [flex="0"] { +.layout-column > .flex-0 { max-height: 0%; } -[flex="5"] { +.flex-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } -[layout="row"] > [flex="5"] { +.layout-row > .flex-5 { max-width: 5%; } -[layout="column"] > [flex="5"] { +.layout-column > .flex-5 { max-height: 5%; } -[flex="10"] { +.flex-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } -[layout="row"] > [flex="10"] { +.layout-row > .flex-10 { max-width: 10%; } -[layout="column"] > [flex="10"] { +.layout-column > .flex-10 { max-height: 10%; } -[flex="15"] { +.flex-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } -[layout="row"] > [flex="15"] { +.layout-row > .flex-15 { max-width: 15%; } -[layout="column"] > [flex="15"] { +.layout-column > .flex-15 { max-height: 15%; } -[flex="20"] { +.flex-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } -[layout="row"] > [flex="20"] { +.layout-row > .flex-20 { max-width: 20%; } -[layout="column"] > [flex="20"] { +.layout-column > .flex-20 { max-height: 20%; } -[flex="25"] { +.flex-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } -[layout="row"] > [flex="25"] { +.layout-row > .flex-25 { max-width: 25%; } -[layout="column"] > [flex="25"] { +.layout-column > .flex-25 { max-height: 25%; } -[flex="30"] { +.flex-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } -[layout="row"] > [flex="30"] { +.layout-row > .flex-30 { max-width: 30%; } -[layout="column"] > [flex="30"] { +.layout-column > .flex-30 { max-height: 30%; } -[flex="35"] { +.flex-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } -[layout="row"] > [flex="35"] { +.layout-row > .flex-35 { max-width: 35%; } -[layout="column"] > [flex="35"] { +.layout-column > .flex-35 { max-height: 35%; } -[flex="40"] { +.flex-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } -[layout="row"] > [flex="40"] { +.layout-row > .flex-40 { max-width: 40%; } -[layout="column"] > [flex="40"] { +.layout-column > .flex-40 { max-height: 40%; } -[flex="45"] { +.flex-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } -[layout="row"] > [flex="45"] { +.layout-row > .flex-45 { max-width: 45%; } -[layout="column"] > [flex="45"] { +.layout-column > .flex-45 { max-height: 45%; } -[flex="50"] { +.flex-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } -[layout="row"] > [flex="50"] { +.layout-row > .flex-50 { max-width: 50%; } -[layout="column"] > [flex="50"] { +.layout-column > .flex-50 { max-height: 50%; } -[flex="55"] { +.flex-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } -[layout="row"] > [flex="55"] { +.layout-row > .flex-55 { max-width: 55%; } -[layout="column"] > [flex="55"] { +.layout-column > .flex-55 { max-height: 55%; } -[flex="60"] { +.flex-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } -[layout="row"] > [flex="60"] { +.layout-row > .flex-60 { max-width: 60%; } -[layout="column"] > [flex="60"] { +.layout-column > .flex-60 { max-height: 60%; } -[flex="65"] { +.flex-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } -[layout="row"] > [flex="65"] { +.layout-row > .flex-65 { max-width: 65%; } -[layout="column"] > [flex="65"] { +.layout-column > .flex-65 { max-height: 65%; } -[flex="70"] { +.flex-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } -[layout="row"] > [flex="70"] { +.layout-row > .flex-70 { max-width: 70%; } -[layout="column"] > [flex="70"] { +.layout-column > .flex-70 { max-height: 70%; } -[flex="75"] { +.flex-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } -[layout="row"] > [flex="75"] { +.layout-row > .flex-75 { max-width: 75%; } -[layout="column"] > [flex="75"] { +.layout-column > .flex-75 { max-height: 75%; } -[flex="80"] { +.flex-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } -[layout="row"] > [flex="80"] { +.layout-row > .flex-80 { max-width: 80%; } -[layout="column"] > [flex="80"] { +.layout-column > .flex-80 { max-height: 80%; } -[flex="85"] { +.flex-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } -[layout="row"] > [flex="85"] { +.layout-row > .flex-85 { max-width: 85%; } -[layout="column"] > [flex="85"] { +.layout-column > .flex-85 { max-height: 85%; } -[flex="90"] { +.flex-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } -[layout="row"] > [flex="90"] { +.layout-row > .flex-90 { max-width: 90%; } -[layout="column"] > [flex="90"] { +.layout-column > .flex-90 { max-height: 90%; } -[flex="95"] { +.flex-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } -[layout="row"] > [flex="95"] { +.layout-row > .flex-95 { max-width: 95%; } -[layout="column"] > [flex="95"] { +.layout-column > .flex-95 { max-height: 95%; } -[flex="100"] { +.flex-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } -[layout="row"] > [flex="100"] { +.layout-row > .flex-100 { max-width: 100%; } -[layout="column"] > [flex="100"] { +.layout-column > .flex-100 { max-height: 100%; } -[flex="33"], [flex="34"] { +.flex-33, .flex-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } -[flex="66"], [flex="67"] { +.flex-66, .flex-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } -[layout="row"] > [flex="33"], [layout="row"] > [flex="34"] { +.layout-row > .flex-33, .layout-row > .flex-34 { max-width: 33.33%; } -[layout="row"] > [flex="66"], [layout="row"] > [flex="67"] { +.layout-row > .flex-66, .layout-row > .flex-67 { max-width: 66.66%; } -[layout="column"] > [flex="33"], [layout="column"] > [flex="34"] { +.layout-column > .flex-33, .layout-column > .flex-34 { max-height: 33.33%; } -[layout="column"] > [flex="66"], [layout="column"] > [flex="67"] { +.layout-column > .flex-66, .layout-column > .flex-67 { max-height: 66.66%; } -[layout-align="center"], [layout-align="center center"], -[layout-align="center start"], -[layout-align="center end"] { +.layout-align-center, .layout-align-center-center, +.layout-align-center-start, +.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 start"], -[layout-align="end end"] { +.layout-align-end, .layout-align-end-center, +.layout-align-end-start, +.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 start"], -[layout-align="space-around end"] { +.layout-align-space-around, .layout-align-space-around-center, +.layout-align-space-around-start, +.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 start"], -[layout-align="space-between end"] { +.layout-align-space-between, .layout-align-space-between-center, +.layout-align-space-between-start, +.layout-align-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } -[layout-align="center center"], -[layout-align="start center"], -[layout-align="end center"], -[layout-align="space-between center"], -[layout-align="space-around center"] { +.layout-align-center-center, +.layout-align-start-center, +.layout-align-end-center, +.layout-align-space-between-center, +.layout-align-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } -[layout-align="center start"], -[layout-align="start start"], -[layout-align="end start"], -[layout-align="space-between start"], -[layout-align="space-around start"] { +.layout-align-center-start, +.layout-align-start-start, +.layout-align-end-start, +.layout-align-space-between-start, +.layout-align-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } -[layout-align="center end"], -[layout-align="start end"], -[layout-align="end end"], -[layout-align="space-between end"], -[layout-align="space-around end"] { +.layout-align-center-end, +.layout-align-start-end, +.layout-align-end-end, +.layout-align-space-between-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="0"] { +.flex-order-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } -[flex-order="1"] { +.flex-order-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } -[flex-order="2"] { +.flex-order-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } -[flex-order="3"] { +.flex-order-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } -[flex-order="4"] { +.flex-order-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } -[flex-order="5"] { +.flex-order-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } -[flex-order="6"] { +.flex-order-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } -[flex-order="7"] { +.flex-order-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } -[flex-order="8"] { +.flex-order-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } -[flex-order="9"] { +.flex-order-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } -[offset="5"] { +.offset-5 { margin-left: 5%; } -[offset="10"] { +.offset-10 { margin-left: 10%; } -[offset="15"] { +.offset-15 { margin-left: 15%; } -[offset="20"] { +.offset-20 { margin-left: 20%; } -[offset="25"] { +.offset-25 { margin-left: 25%; } -[offset="30"] { +.offset-30 { margin-left: 30%; } -[offset="35"] { +.offset-35 { margin-left: 35%; } -[offset="40"] { +.offset-40 { margin-left: 40%; } -[offset="45"] { +.offset-45 { margin-left: 45%; } -[offset="50"] { +.offset-50 { margin-left: 50%; } -[offset="55"] { +.offset-55 { margin-left: 55%; } -[offset="60"] { +.offset-60 { margin-left: 60%; } -[offset="65"] { +.offset-65 { margin-left: 65%; } -[offset="70"] { +.offset-70 { margin-left: 70%; } -[offset="75"] { +.offset-75 { margin-left: 75%; } -[offset="80"] { +.offset-80 { margin-left: 80%; } -[offset="85"] { +.offset-85 { margin-left: 85%; } -[offset="90"] { +.offset-90 { margin-left: 90%; } -[offset="95"] { +.offset-95 { margin-left: 95%; } -[offset="33"], [offset="34"] { +.offset-33, .offset-34 { margin-left: 33.33%; } -[offset="66"], [offset="67"] { +.offset-66, .offset-67 { margin-left: 66.66%; } /** @@ -1039,2295 +1023,2295 @@ html * { * `hide-gt-md show-gt-sm` should show everywhere (show overrides hide)` */ @media (max-width: 599px) { - [hide-sm]:not([show-sm]):not([show]), [hide]:not([show-sm]):not([show]), .md-hide:not([show-sm]):not([show]) { + .hide-sm:not(.show-sm):not(.show), .hide:not(.show-sm):not(.show) { display: none; } - [flex-order-sm="0"] { + .flex-order-sm-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-sm="1"] { + .flex-order-sm-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-sm="2"] { + .flex-order-sm-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-sm="3"] { + .flex-order-sm-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-sm="4"] { + .flex-order-sm-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-sm="5"] { + .flex-order-sm-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-sm="6"] { + .flex-order-sm-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-sm="7"] { + .flex-order-sm-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-sm="8"] { + .flex-order-sm-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-sm="9"] { + .flex-order-sm-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-sm="center"], [layout-align-sm="center center"], - [layout-align-sm="center start"], - [layout-align-sm="center end"] { + .layout-align-sm-center, .layout-align-sm-center-center, + .layout-align-sm-center-start, + .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 start"], - [layout-align-sm="end end"] { + .layout-align-sm-end, .layout-align-sm-end-center, + .layout-align-sm-end-start, + .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 start"], - [layout-align-sm="space-around end"] { + .layout-align-sm-space-around, .layout-align-sm-space-around-center, + .layout-align-sm-space-around-start, + .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 start"], - [layout-align-sm="space-between end"] { + .layout-align-sm-space-between, .layout-align-sm-space-between-center, + .layout-align-sm-space-between-start, + .layout-align-sm-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-sm="center start"], - [layout-align-sm="start start"], - [layout-align-sm="end start"], - [layout-align-sm="space-between start"], - [layout-align-sm="space-around start"] { + .layout-align-sm-center-start, + .layout-align-sm-start-start, + .layout-align-sm-end-start, + .layout-align-sm-space-between-start, + .layout-align-sm-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-sm] { + .layout-sm { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-sm=column] { + .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] { + .layout-sm-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-sm="5"] { + .offset-sm-5 { margin-left: 5%; } - [offset-sm="10"] { + .offset-sm-10 { margin-left: 10%; } - [offset-sm="15"] { + .offset-sm-15 { margin-left: 15%; } - [offset-sm="20"] { + .offset-sm-20 { margin-left: 20%; } - [offset-sm="25"] { + .offset-sm-25 { margin-left: 25%; } - [offset-sm="30"] { + .offset-sm-30 { margin-left: 30%; } - [offset-sm="35"] { + .offset-sm-35 { margin-left: 35%; } - [offset-sm="40"] { + .offset-sm-40 { margin-left: 40%; } - [offset-sm="45"] { + .offset-sm-45 { margin-left: 45%; } - [offset-sm="50"] { + .offset-sm-50 { margin-left: 50%; } - [offset-sm="55"] { + .offset-sm-55 { margin-left: 55%; } - [offset-sm="60"] { + .offset-sm-60 { margin-left: 60%; } - [offset-sm="65"] { + .offset-sm-65 { margin-left: 65%; } - [offset-sm="70"] { + .offset-sm-70 { margin-left: 70%; } - [offset-sm="75"] { + .offset-sm-75 { margin-left: 75%; } - [offset-sm="80"] { + .offset-sm-80 { margin-left: 80%; } - [offset-sm="85"] { + .offset-sm-85 { margin-left: 85%; } - [offset-sm="90"] { + .offset-sm-90 { margin-left: 90%; } - [offset-sm="95"] { + .offset-sm-95 { margin-left: 95%; } - [offset-sm="33"], [offset-sm="34"] { + .offset-sm-33, .offset-sm-34 { margin-left: 33.33%; } - [offset-sm="66"], [offset-sm="67"] { + .offset-sm-66, .offset-sm-67 { margin-left: 66.66%; } - [flex-sm] { + .flex-sm { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-sm="0"] { + .flex-sm-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-sm="0"] { + .layout-row > .flex-sm-0 { max-width: 0%; } - [layout="column"] > [flex-sm="0"] { + .layout-column > .flex-sm-0 { max-height: 0%; } - [flex-sm="5"] { + .flex-sm-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-sm="5"] { + .layout-row > .flex-sm-5 { max-width: 5%; } - [layout="column"] > [flex-sm="5"] { + .layout-column > .flex-sm-5 { max-height: 5%; } - [flex-sm="10"] { + .flex-sm-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-sm="10"] { + .layout-row > .flex-sm-10 { max-width: 10%; } - [layout="column"] > [flex-sm="10"] { + .layout-column > .flex-sm-10 { max-height: 10%; } - [flex-sm="15"] { + .flex-sm-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-sm="15"] { + .layout-row > .flex-sm-15 { max-width: 15%; } - [layout="column"] > [flex-sm="15"] { + .layout-column > .flex-sm-15 { max-height: 15%; } - [flex-sm="20"] { + .flex-sm-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-sm="20"] { + .layout-row > .flex-sm-20 { max-width: 20%; } - [layout="column"] > [flex-sm="20"] { + .layout-column > .flex-sm-20 { max-height: 20%; } - [flex-sm="25"] { + .flex-sm-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-sm="25"] { + .layout-row > .flex-sm-25 { max-width: 25%; } - [layout="column"] > [flex-sm="25"] { + .layout-column > .flex-sm-25 { max-height: 25%; } - [flex-sm="30"] { + .flex-sm-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-sm="30"] { + .layout-row > .flex-sm-30 { max-width: 30%; } - [layout="column"] > [flex-sm="30"] { + .layout-column > .flex-sm-30 { max-height: 30%; } - [flex-sm="35"] { + .flex-sm-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-sm="35"] { + .layout-row > .flex-sm-35 { max-width: 35%; } - [layout="column"] > [flex-sm="35"] { + .layout-column > .flex-sm-35 { max-height: 35%; } - [flex-sm="40"] { + .flex-sm-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-sm="40"] { + .layout-row > .flex-sm-40 { max-width: 40%; } - [layout="column"] > [flex-sm="40"] { + .layout-column > .flex-sm-40 { max-height: 40%; } - [flex-sm="45"] { + .flex-sm-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-sm="45"] { + .layout-row > .flex-sm-45 { max-width: 45%; } - [layout="column"] > [flex-sm="45"] { + .layout-column > .flex-sm-45 { max-height: 45%; } - [flex-sm="50"] { + .flex-sm-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-sm="50"] { + .layout-row > .flex-sm-50 { max-width: 50%; } - [layout="column"] > [flex-sm="50"] { + .layout-column > .flex-sm-50 { max-height: 50%; } - [flex-sm="55"] { + .flex-sm-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-sm="55"] { + .layout-row > .flex-sm-55 { max-width: 55%; } - [layout="column"] > [flex-sm="55"] { + .layout-column > .flex-sm-55 { max-height: 55%; } - [flex-sm="60"] { + .flex-sm-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-sm="60"] { + .layout-row > .flex-sm-60 { max-width: 60%; } - [layout="column"] > [flex-sm="60"] { + .layout-column > .flex-sm-60 { max-height: 60%; } - [flex-sm="65"] { + .flex-sm-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-sm="65"] { + .layout-row > .flex-sm-65 { max-width: 65%; } - [layout="column"] > [flex-sm="65"] { + .layout-column > .flex-sm-65 { max-height: 65%; } - [flex-sm="70"] { + .flex-sm-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-sm="70"] { + .layout-row > .flex-sm-70 { max-width: 70%; } - [layout="column"] > [flex-sm="70"] { + .layout-column > .flex-sm-70 { max-height: 70%; } - [flex-sm="75"] { + .flex-sm-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-sm="75"] { + .layout-row > .flex-sm-75 { max-width: 75%; } - [layout="column"] > [flex-sm="75"] { + .layout-column > .flex-sm-75 { max-height: 75%; } - [flex-sm="80"] { + .flex-sm-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-sm="80"] { + .layout-row > .flex-sm-80 { max-width: 80%; } - [layout="column"] > [flex-sm="80"] { + .layout-column > .flex-sm-80 { max-height: 80%; } - [flex-sm="85"] { + .flex-sm-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-sm="85"] { + .layout-row > .flex-sm-85 { max-width: 85%; } - [layout="column"] > [flex-sm="85"] { + .layout-column > .flex-sm-85 { max-height: 85%; } - [flex-sm="90"] { + .flex-sm-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-sm="90"] { + .layout-row > .flex-sm-90 { max-width: 90%; } - [layout="column"] > [flex-sm="90"] { + .layout-column > .flex-sm-90 { max-height: 90%; } - [flex-sm="95"] { + .flex-sm-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-sm="95"] { + .layout-row > .flex-sm-95 { max-width: 95%; } - [layout="column"] > [flex-sm="95"] { + .layout-column > .flex-sm-95 { max-height: 95%; } - [flex-sm="100"] { + .flex-sm-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-sm="100"] { + .layout-row > .flex-sm-100 { max-width: 100%; } - [layout="column"] > [flex-sm="100"] { + .layout-column > .flex-sm-100 { max-height: 100%; } - [flex-sm="33"], [flex-sm="34"] { + .flex-sm-33, .flex-sm-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-sm="66"], [flex-sm="67"] { + .flex-sm-66, .flex-sm-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-sm="33"], [layout="row"] > [flex-sm="34"] { + .layout-row > .flex-sm-33, .layout-row > .flex-sm-34 { max-width: 33.33%; } - [layout="row"] > [flex-sm="66"], [layout="row"] > [flex-sm="67"] { + .layout-row > .flex-sm-66, .layout-row > .flex-sm-67 { max-width: 66.66%; } - [layout="column"] > [flex-sm="33"], [layout="column"] > [flex-sm="34"] { + .layout-column > .flex-sm-33, .layout-column > .flex-sm-34 { max-height: 33.33%; } - [layout="column"] > [flex-sm="66"], [layout="column"] > [flex-sm="67"] { + .layout-column > .flex-sm-66, .layout-column > .flex-sm-67 { max-height: 66.66%; } } @media (min-width: 600px) { - [flex-order-gt-sm="0"] { + .flex-order-gt-sm-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-sm="1"] { + .flex-order-gt-sm-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-sm="2"] { + .flex-order-gt-sm-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-sm="3"] { + .flex-order-gt-sm-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-sm="4"] { + .flex-order-gt-sm-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-sm="5"] { + .flex-order-gt-sm-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-sm="6"] { + .flex-order-gt-sm-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-sm="7"] { + .flex-order-gt-sm-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-sm="8"] { + .flex-order-gt-sm-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-sm="9"] { + .flex-order-gt-sm-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-sm="center"], [layout-align-gt-sm="center center"], - [layout-align-gt-sm="center start"], - [layout-align-gt-sm="center end"] { + .layout-align-gt-sm-center, .layout-align-gt-sm-center-center, + .layout-align-gt-sm-center-start, + .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 start"], - [layout-align-gt-sm="end end"] { + .layout-align-gt-sm-end, .layout-align-gt-sm-end-center, + .layout-align-gt-sm-end-start, + .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 start"], - [layout-align-gt-sm="space-around end"] { + .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 { -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 start"], - [layout-align-gt-sm="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-sm="center start"], - [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"] { + .layout-align-gt-sm-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-sm] { + .layout-gt-sm { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-sm=column] { + .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] { + .layout-gt-sm-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-gt-sm="5"] { + .offset-gt-sm-5 { margin-left: 5%; } - [offset-gt-sm="10"] { + .offset-gt-sm-10 { margin-left: 10%; } - [offset-gt-sm="15"] { + .offset-gt-sm-15 { margin-left: 15%; } - [offset-gt-sm="20"] { + .offset-gt-sm-20 { margin-left: 20%; } - [offset-gt-sm="25"] { + .offset-gt-sm-25 { margin-left: 25%; } - [offset-gt-sm="30"] { + .offset-gt-sm-30 { margin-left: 30%; } - [offset-gt-sm="35"] { + .offset-gt-sm-35 { margin-left: 35%; } - [offset-gt-sm="40"] { + .offset-gt-sm-40 { margin-left: 40%; } - [offset-gt-sm="45"] { + .offset-gt-sm-45 { margin-left: 45%; } - [offset-gt-sm="50"] { + .offset-gt-sm-50 { margin-left: 50%; } - [offset-gt-sm="55"] { + .offset-gt-sm-55 { margin-left: 55%; } - [offset-gt-sm="60"] { + .offset-gt-sm-60 { margin-left: 60%; } - [offset-gt-sm="65"] { + .offset-gt-sm-65 { margin-left: 65%; } - [offset-gt-sm="70"] { + .offset-gt-sm-70 { margin-left: 70%; } - [offset-gt-sm="75"] { + .offset-gt-sm-75 { margin-left: 75%; } - [offset-gt-sm="80"] { + .offset-gt-sm-80 { margin-left: 80%; } - [offset-gt-sm="85"] { + .offset-gt-sm-85 { margin-left: 85%; } - [offset-gt-sm="90"] { + .offset-gt-sm-90 { margin-left: 90%; } - [offset-gt-sm="95"] { + .offset-gt-sm-95 { margin-left: 95%; } - [offset-gt-sm="33"], [offset-gt-sm="34"] { + .offset-gt-sm-33, .offset-gt-sm-34 { margin-left: 33.33%; } - [offset-gt-sm="66"], [offset-gt-sm="67"] { + .offset-gt-sm-66, .offset-gt-sm-67 { margin-left: 66.66%; } - [flex-gt-sm] { + .flex-gt-sm { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-sm="0"] { + .flex-gt-sm-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-sm="0"] { + .layout-row > .flex-gt-sm-0 { max-width: 0%; } - [layout="column"] > [flex-gt-sm="0"] { + .layout-column > .flex-gt-sm-0 { max-height: 0%; } - [flex-gt-sm="5"] { + .flex-gt-sm-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-sm="5"] { + .layout-row > .flex-gt-sm-5 { max-width: 5%; } - [layout="column"] > [flex-gt-sm="5"] { + .layout-column > .flex-gt-sm-5 { max-height: 5%; } - [flex-gt-sm="10"] { + .flex-gt-sm-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-sm="10"] { + .layout-row > .flex-gt-sm-10 { max-width: 10%; } - [layout="column"] > [flex-gt-sm="10"] { + .layout-column > .flex-gt-sm-10 { max-height: 10%; } - [flex-gt-sm="15"] { + .flex-gt-sm-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-sm="15"] { + .layout-row > .flex-gt-sm-15 { max-width: 15%; } - [layout="column"] > [flex-gt-sm="15"] { + .layout-column > .flex-gt-sm-15 { max-height: 15%; } - [flex-gt-sm="20"] { + .flex-gt-sm-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-sm="20"] { + .layout-row > .flex-gt-sm-20 { max-width: 20%; } - [layout="column"] > [flex-gt-sm="20"] { + .layout-column > .flex-gt-sm-20 { max-height: 20%; } - [flex-gt-sm="25"] { + .flex-gt-sm-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-sm="25"] { + .layout-row > .flex-gt-sm-25 { max-width: 25%; } - [layout="column"] > [flex-gt-sm="25"] { + .layout-column > .flex-gt-sm-25 { max-height: 25%; } - [flex-gt-sm="30"] { + .flex-gt-sm-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-sm="30"] { + .layout-row > .flex-gt-sm-30 { max-width: 30%; } - [layout="column"] > [flex-gt-sm="30"] { + .layout-column > .flex-gt-sm-30 { max-height: 30%; } - [flex-gt-sm="35"] { + .flex-gt-sm-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-sm="35"] { + .layout-row > .flex-gt-sm-35 { max-width: 35%; } - [layout="column"] > [flex-gt-sm="35"] { + .layout-column > .flex-gt-sm-35 { max-height: 35%; } - [flex-gt-sm="40"] { + .flex-gt-sm-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-sm="40"] { + .layout-row > .flex-gt-sm-40 { max-width: 40%; } - [layout="column"] > [flex-gt-sm="40"] { + .layout-column > .flex-gt-sm-40 { max-height: 40%; } - [flex-gt-sm="45"] { + .flex-gt-sm-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-sm="45"] { + .layout-row > .flex-gt-sm-45 { max-width: 45%; } - [layout="column"] > [flex-gt-sm="45"] { + .layout-column > .flex-gt-sm-45 { max-height: 45%; } - [flex-gt-sm="50"] { + .flex-gt-sm-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-sm="50"] { + .layout-row > .flex-gt-sm-50 { max-width: 50%; } - [layout="column"] > [flex-gt-sm="50"] { + .layout-column > .flex-gt-sm-50 { max-height: 50%; } - [flex-gt-sm="55"] { + .flex-gt-sm-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-sm="55"] { + .layout-row > .flex-gt-sm-55 { max-width: 55%; } - [layout="column"] > [flex-gt-sm="55"] { + .layout-column > .flex-gt-sm-55 { max-height: 55%; } - [flex-gt-sm="60"] { + .flex-gt-sm-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-sm="60"] { + .layout-row > .flex-gt-sm-60 { max-width: 60%; } - [layout="column"] > [flex-gt-sm="60"] { + .layout-column > .flex-gt-sm-60 { max-height: 60%; } - [flex-gt-sm="65"] { + .flex-gt-sm-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-sm="65"] { + .layout-row > .flex-gt-sm-65 { max-width: 65%; } - [layout="column"] > [flex-gt-sm="65"] { + .layout-column > .flex-gt-sm-65 { max-height: 65%; } - [flex-gt-sm="70"] { + .flex-gt-sm-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-sm="70"] { + .layout-row > .flex-gt-sm-70 { max-width: 70%; } - [layout="column"] > [flex-gt-sm="70"] { + .layout-column > .flex-gt-sm-70 { max-height: 70%; } - [flex-gt-sm="75"] { + .flex-gt-sm-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-sm="75"] { + .layout-row > .flex-gt-sm-75 { max-width: 75%; } - [layout="column"] > [flex-gt-sm="75"] { + .layout-column > .flex-gt-sm-75 { max-height: 75%; } - [flex-gt-sm="80"] { + .flex-gt-sm-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-sm="80"] { + .layout-row > .flex-gt-sm-80 { max-width: 80%; } - [layout="column"] > [flex-gt-sm="80"] { + .layout-column > .flex-gt-sm-80 { max-height: 80%; } - [flex-gt-sm="85"] { + .flex-gt-sm-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-sm="85"] { + .layout-row > .flex-gt-sm-85 { max-width: 85%; } - [layout="column"] > [flex-gt-sm="85"] { + .layout-column > .flex-gt-sm-85 { max-height: 85%; } - [flex-gt-sm="90"] { + .flex-gt-sm-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-sm="90"] { + .layout-row > .flex-gt-sm-90 { max-width: 90%; } - [layout="column"] > [flex-gt-sm="90"] { + .layout-column > .flex-gt-sm-90 { max-height: 90%; } - [flex-gt-sm="95"] { + .flex-gt-sm-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-sm="95"] { + .layout-row > .flex-gt-sm-95 { max-width: 95%; } - [layout="column"] > [flex-gt-sm="95"] { + .layout-column > .flex-gt-sm-95 { max-height: 95%; } - [flex-gt-sm="100"] { + .flex-gt-sm-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-sm="100"] { + .layout-row > .flex-gt-sm-100 { max-width: 100%; } - [layout="column"] > [flex-gt-sm="100"] { + .layout-column > .flex-gt-sm-100 { max-height: 100%; } - [flex-gt-sm="33"], [flex-gt-sm="34"] { + .flex-gt-sm-33, .flex-gt-sm-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-sm="66"], [flex-gt-sm="67"] { + .flex-gt-sm-66, .flex-gt-sm-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-sm="33"], [layout="row"] > [flex-gt-sm="34"] { + .layout-row > .flex-gt-sm-33, .layout-row > .flex-gt-sm-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-sm="66"], [layout="row"] > [flex-gt-sm="67"] { + .layout-row > .flex-gt-sm-66, .layout-row > .flex-gt-sm-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-sm="33"], [layout="column"] > [flex-gt-sm="34"] { + .layout-column > .flex-gt-sm-33, .layout-column > .flex-gt-sm-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-sm="66"], [layout="column"] > [flex-gt-sm="67"] { + .layout-column > .flex-gt-sm-66, .layout-column > .flex-gt-sm-67 { max-height: 66.66%; } } @media (min-width: 600px) and (max-width: 1023px) { - [hide]:not([show-gt-sm]):not([show-md]):not([show]), .md-hide:not([show-gt-sm]):not([show-md]):not([show]), [hide-gt-sm]:not([show-gt-sm]):not([show-md]):not([show]) { + .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]) { + .hide-md:not(.show-md):not(.show) { display: none; } - [flex-order-md="0"] { + .flex-order-md-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-md="1"] { + .flex-order-md-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-md="2"] { + .flex-order-md-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-md="3"] { + .flex-order-md-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-md="4"] { + .flex-order-md-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-md="5"] { + .flex-order-md-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-md="6"] { + .flex-order-md-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-md="7"] { + .flex-order-md-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-md="8"] { + .flex-order-md-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-md="9"] { + .flex-order-md-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-md="center"], [layout-align-md="center center"], - [layout-align-md="center start"], - [layout-align-md="center end"] { + .layout-align-md-center, .layout-align-md-center-center, + .layout-align-md-center-start, + .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 start"], - [layout-align-md="end end"] { + .layout-align-md-end, .layout-align-md-end-center, + .layout-align-md-end-start, + .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 start"], - [layout-align-md="space-around end"] { + .layout-align-md-space-around, .layout-align-md-space-around-center, + .layout-align-md-space-around-start, + .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 start"], - [layout-align-md="space-between end"] { + .layout-align-md-space-between, .layout-align-md-space-between-center, + .layout-align-md-space-between-start, + .layout-align-md-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-md="center start"], - [layout-align-md="start start"], - [layout-align-md="end start"], - [layout-align-md="space-between start"], - [layout-align-md="space-around start"] { + .layout-align-md-center-start, + .layout-align-md-start-start, + .layout-align-md-end-start, + .layout-align-md-space-between-start, + .layout-align-md-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-md] { + .layout-md { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-md=column] { + .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] { + .layout-md-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-md="5"] { + .offset-md-5 { margin-left: 5%; } - [offset-md="10"] { + .offset-md-10 { margin-left: 10%; } - [offset-md="15"] { + .offset-md-15 { margin-left: 15%; } - [offset-md="20"] { + .offset-md-20 { margin-left: 20%; } - [offset-md="25"] { + .offset-md-25 { margin-left: 25%; } - [offset-md="30"] { + .offset-md-30 { margin-left: 30%; } - [offset-md="35"] { + .offset-md-35 { margin-left: 35%; } - [offset-md="40"] { + .offset-md-40 { margin-left: 40%; } - [offset-md="45"] { + .offset-md-45 { margin-left: 45%; } - [offset-md="50"] { + .offset-md-50 { margin-left: 50%; } - [offset-md="55"] { + .offset-md-55 { margin-left: 55%; } - [offset-md="60"] { + .offset-md-60 { margin-left: 60%; } - [offset-md="65"] { + .offset-md-65 { margin-left: 65%; } - [offset-md="70"] { + .offset-md-70 { margin-left: 70%; } - [offset-md="75"] { + .offset-md-75 { margin-left: 75%; } - [offset-md="80"] { + .offset-md-80 { margin-left: 80%; } - [offset-md="85"] { + .offset-md-85 { margin-left: 85%; } - [offset-md="90"] { + .offset-md-90 { margin-left: 90%; } - [offset-md="95"] { + .offset-md-95 { margin-left: 95%; } - [offset-md="33"], [offset-md="34"] { + .offset-md-33, .offset-md-34 { margin-left: 33.33%; } - [offset-md="66"], [offset-md="67"] { + .offset-md-66, .offset-md-67 { margin-left: 66.66%; } - [flex-md] { + .flex-md { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-md="0"] { + .flex-md-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-md="0"] { + .layout-row > .flex-md-0 { max-width: 0%; } - [layout="column"] > [flex-md="0"] { + .layout-column > .flex-md-0 { max-height: 0%; } - [flex-md="5"] { + .flex-md-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-md="5"] { + .layout-row > .flex-md-5 { max-width: 5%; } - [layout="column"] > [flex-md="5"] { + .layout-column > .flex-md-5 { max-height: 5%; } - [flex-md="10"] { + .flex-md-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-md="10"] { + .layout-row > .flex-md-10 { max-width: 10%; } - [layout="column"] > [flex-md="10"] { + .layout-column > .flex-md-10 { max-height: 10%; } - [flex-md="15"] { + .flex-md-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-md="15"] { + .layout-row > .flex-md-15 { max-width: 15%; } - [layout="column"] > [flex-md="15"] { + .layout-column > .flex-md-15 { max-height: 15%; } - [flex-md="20"] { + .flex-md-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-md="20"] { + .layout-row > .flex-md-20 { max-width: 20%; } - [layout="column"] > [flex-md="20"] { + .layout-column > .flex-md-20 { max-height: 20%; } - [flex-md="25"] { + .flex-md-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-md="25"] { + .layout-row > .flex-md-25 { max-width: 25%; } - [layout="column"] > [flex-md="25"] { + .layout-column > .flex-md-25 { max-height: 25%; } - [flex-md="30"] { + .flex-md-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-md="30"] { + .layout-row > .flex-md-30 { max-width: 30%; } - [layout="column"] > [flex-md="30"] { + .layout-column > .flex-md-30 { max-height: 30%; } - [flex-md="35"] { + .flex-md-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-md="35"] { + .layout-row > .flex-md-35 { max-width: 35%; } - [layout="column"] > [flex-md="35"] { + .layout-column > .flex-md-35 { max-height: 35%; } - [flex-md="40"] { + .flex-md-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-md="40"] { + .layout-row > .flex-md-40 { max-width: 40%; } - [layout="column"] > [flex-md="40"] { + .layout-column > .flex-md-40 { max-height: 40%; } - [flex-md="45"] { + .flex-md-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-md="45"] { + .layout-row > .flex-md-45 { max-width: 45%; } - [layout="column"] > [flex-md="45"] { + .layout-column > .flex-md-45 { max-height: 45%; } - [flex-md="50"] { + .flex-md-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-md="50"] { + .layout-row > .flex-md-50 { max-width: 50%; } - [layout="column"] > [flex-md="50"] { + .layout-column > .flex-md-50 { max-height: 50%; } - [flex-md="55"] { + .flex-md-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-md="55"] { + .layout-row > .flex-md-55 { max-width: 55%; } - [layout="column"] > [flex-md="55"] { + .layout-column > .flex-md-55 { max-height: 55%; } - [flex-md="60"] { + .flex-md-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-md="60"] { + .layout-row > .flex-md-60 { max-width: 60%; } - [layout="column"] > [flex-md="60"] { + .layout-column > .flex-md-60 { max-height: 60%; } - [flex-md="65"] { + .flex-md-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-md="65"] { + .layout-row > .flex-md-65 { max-width: 65%; } - [layout="column"] > [flex-md="65"] { + .layout-column > .flex-md-65 { max-height: 65%; } - [flex-md="70"] { + .flex-md-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-md="70"] { + .layout-row > .flex-md-70 { max-width: 70%; } - [layout="column"] > [flex-md="70"] { + .layout-column > .flex-md-70 { max-height: 70%; } - [flex-md="75"] { + .flex-md-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-md="75"] { + .layout-row > .flex-md-75 { max-width: 75%; } - [layout="column"] > [flex-md="75"] { + .layout-column > .flex-md-75 { max-height: 75%; } - [flex-md="80"] { + .flex-md-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-md="80"] { + .layout-row > .flex-md-80 { max-width: 80%; } - [layout="column"] > [flex-md="80"] { + .layout-column > .flex-md-80 { max-height: 80%; } - [flex-md="85"] { + .flex-md-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-md="85"] { + .layout-row > .flex-md-85 { max-width: 85%; } - [layout="column"] > [flex-md="85"] { + .layout-column > .flex-md-85 { max-height: 85%; } - [flex-md="90"] { + .flex-md-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-md="90"] { + .layout-row > .flex-md-90 { max-width: 90%; } - [layout="column"] > [flex-md="90"] { + .layout-column > .flex-md-90 { max-height: 90%; } - [flex-md="95"] { + .flex-md-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-md="95"] { + .layout-row > .flex-md-95 { max-width: 95%; } - [layout="column"] > [flex-md="95"] { + .layout-column > .flex-md-95 { max-height: 95%; } - [flex-md="100"] { + .flex-md-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-md="100"] { + .layout-row > .flex-md-100 { max-width: 100%; } - [layout="column"] > [flex-md="100"] { + .layout-column > .flex-md-100 { max-height: 100%; } - [flex-md="33"], [flex-md="34"] { + .flex-md-33, .flex-md-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-md="66"], [flex-md="67"] { + .flex-md-66, .flex-md-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-md="33"], [layout="row"] > [flex-md="34"] { + .layout-row > .flex-md-33, .layout-row > .flex-md-34 { max-width: 33.33%; } - [layout="row"] > [flex-md="66"], [layout="row"] > [flex-md="67"] { + .layout-row > .flex-md-66, .layout-row > .flex-md-67 { max-width: 66.66%; } - [layout="column"] > [flex-md="33"], [layout="column"] > [flex-md="34"] { + .layout-column > .flex-md-33, .layout-column > .flex-md-34 { max-height: 33.33%; } - [layout="column"] > [flex-md="66"], [layout="column"] > [flex-md="67"] { + .layout-column > .flex-md-66, .layout-column > .flex-md-67 { max-height: 66.66%; } } @media (min-width: 1024px) { - [flex-order-gt-md="0"] { + .flex-order-gt-md-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-md="1"] { + .flex-order-gt-md-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-md="2"] { + .flex-order-gt-md-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-md="3"] { + .flex-order-gt-md-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-md="4"] { + .flex-order-gt-md-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-md="5"] { + .flex-order-gt-md-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-md="6"] { + .flex-order-gt-md-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-md="7"] { + .flex-order-gt-md-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-md="8"] { + .flex-order-gt-md-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-md="9"] { + .flex-order-gt-md-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-md="center"], [layout-align-gt-md="center center"], - [layout-align-gt-md="center start"], - [layout-align-gt-md="center end"] { + .layout-align-gt-md-center, .layout-align-gt-md-center-center, + .layout-align-gt-md-center-start, + .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 start"], - [layout-align-gt-md="end end"] { + .layout-align-gt-md-end, .layout-align-gt-md-end-center, + .layout-align-gt-md-end-start, + .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 start"], - [layout-align-gt-md="space-around end"] { + .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 { -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 start"], - [layout-align-gt-md="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-md="center start"], - [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"] { + .layout-align-gt-md-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-md] { + .layout-gt-md { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-md=column] { + .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] { + .layout-gt-md-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-gt-md="5"] { + .offset-gt-md-5 { margin-left: 5%; } - [offset-gt-md="10"] { + .offset-gt-md-10 { margin-left: 10%; } - [offset-gt-md="15"] { + .offset-gt-md-15 { margin-left: 15%; } - [offset-gt-md="20"] { + .offset-gt-md-20 { margin-left: 20%; } - [offset-gt-md="25"] { + .offset-gt-md-25 { margin-left: 25%; } - [offset-gt-md="30"] { + .offset-gt-md-30 { margin-left: 30%; } - [offset-gt-md="35"] { + .offset-gt-md-35 { margin-left: 35%; } - [offset-gt-md="40"] { + .offset-gt-md-40 { margin-left: 40%; } - [offset-gt-md="45"] { + .offset-gt-md-45 { margin-left: 45%; } - [offset-gt-md="50"] { + .offset-gt-md-50 { margin-left: 50%; } - [offset-gt-md="55"] { + .offset-gt-md-55 { margin-left: 55%; } - [offset-gt-md="60"] { + .offset-gt-md-60 { margin-left: 60%; } - [offset-gt-md="65"] { + .offset-gt-md-65 { margin-left: 65%; } - [offset-gt-md="70"] { + .offset-gt-md-70 { margin-left: 70%; } - [offset-gt-md="75"] { + .offset-gt-md-75 { margin-left: 75%; } - [offset-gt-md="80"] { + .offset-gt-md-80 { margin-left: 80%; } - [offset-gt-md="85"] { + .offset-gt-md-85 { margin-left: 85%; } - [offset-gt-md="90"] { + .offset-gt-md-90 { margin-left: 90%; } - [offset-gt-md="95"] { + .offset-gt-md-95 { margin-left: 95%; } - [offset-gt-md="33"], [offset-gt-md="34"] { + .offset-gt-md-33, .offset-gt-md-34 { margin-left: 33.33%; } - [offset-gt-md="66"], [offset-gt-md="67"] { + .offset-gt-md-66, .offset-gt-md-67 { margin-left: 66.66%; } - [flex-gt-md] { + .flex-gt-md { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-md="0"] { + .flex-gt-md-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-md="0"] { + .layout-row > .flex-gt-md-0 { max-width: 0%; } - [layout="column"] > [flex-gt-md="0"] { + .layout-column > .flex-gt-md-0 { max-height: 0%; } - [flex-gt-md="5"] { + .flex-gt-md-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-md="5"] { + .layout-row > .flex-gt-md-5 { max-width: 5%; } - [layout="column"] > [flex-gt-md="5"] { + .layout-column > .flex-gt-md-5 { max-height: 5%; } - [flex-gt-md="10"] { + .flex-gt-md-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-md="10"] { + .layout-row > .flex-gt-md-10 { max-width: 10%; } - [layout="column"] > [flex-gt-md="10"] { + .layout-column > .flex-gt-md-10 { max-height: 10%; } - [flex-gt-md="15"] { + .flex-gt-md-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-md="15"] { + .layout-row > .flex-gt-md-15 { max-width: 15%; } - [layout="column"] > [flex-gt-md="15"] { + .layout-column > .flex-gt-md-15 { max-height: 15%; } - [flex-gt-md="20"] { + .flex-gt-md-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-md="20"] { + .layout-row > .flex-gt-md-20 { max-width: 20%; } - [layout="column"] > [flex-gt-md="20"] { + .layout-column > .flex-gt-md-20 { max-height: 20%; } - [flex-gt-md="25"] { + .flex-gt-md-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-md="25"] { + .layout-row > .flex-gt-md-25 { max-width: 25%; } - [layout="column"] > [flex-gt-md="25"] { + .layout-column > .flex-gt-md-25 { max-height: 25%; } - [flex-gt-md="30"] { + .flex-gt-md-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-md="30"] { + .layout-row > .flex-gt-md-30 { max-width: 30%; } - [layout="column"] > [flex-gt-md="30"] { + .layout-column > .flex-gt-md-30 { max-height: 30%; } - [flex-gt-md="35"] { + .flex-gt-md-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-md="35"] { + .layout-row > .flex-gt-md-35 { max-width: 35%; } - [layout="column"] > [flex-gt-md="35"] { + .layout-column > .flex-gt-md-35 { max-height: 35%; } - [flex-gt-md="40"] { + .flex-gt-md-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-md="40"] { + .layout-row > .flex-gt-md-40 { max-width: 40%; } - [layout="column"] > [flex-gt-md="40"] { + .layout-column > .flex-gt-md-40 { max-height: 40%; } - [flex-gt-md="45"] { + .flex-gt-md-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-md="45"] { + .layout-row > .flex-gt-md-45 { max-width: 45%; } - [layout="column"] > [flex-gt-md="45"] { + .layout-column > .flex-gt-md-45 { max-height: 45%; } - [flex-gt-md="50"] { + .flex-gt-md-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-md="50"] { + .layout-row > .flex-gt-md-50 { max-width: 50%; } - [layout="column"] > [flex-gt-md="50"] { + .layout-column > .flex-gt-md-50 { max-height: 50%; } - [flex-gt-md="55"] { + .flex-gt-md-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-md="55"] { + .layout-row > .flex-gt-md-55 { max-width: 55%; } - [layout="column"] > [flex-gt-md="55"] { + .layout-column > .flex-gt-md-55 { max-height: 55%; } - [flex-gt-md="60"] { + .flex-gt-md-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-md="60"] { + .layout-row > .flex-gt-md-60 { max-width: 60%; } - [layout="column"] > [flex-gt-md="60"] { + .layout-column > .flex-gt-md-60 { max-height: 60%; } - [flex-gt-md="65"] { + .flex-gt-md-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-md="65"] { + .layout-row > .flex-gt-md-65 { max-width: 65%; } - [layout="column"] > [flex-gt-md="65"] { + .layout-column > .flex-gt-md-65 { max-height: 65%; } - [flex-gt-md="70"] { + .flex-gt-md-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-md="70"] { + .layout-row > .flex-gt-md-70 { max-width: 70%; } - [layout="column"] > [flex-gt-md="70"] { + .layout-column > .flex-gt-md-70 { max-height: 70%; } - [flex-gt-md="75"] { + .flex-gt-md-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-md="75"] { + .layout-row > .flex-gt-md-75 { max-width: 75%; } - [layout="column"] > [flex-gt-md="75"] { + .layout-column > .flex-gt-md-75 { max-height: 75%; } - [flex-gt-md="80"] { + .flex-gt-md-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-md="80"] { + .layout-row > .flex-gt-md-80 { max-width: 80%; } - [layout="column"] > [flex-gt-md="80"] { + .layout-column > .flex-gt-md-80 { max-height: 80%; } - [flex-gt-md="85"] { + .flex-gt-md-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-md="85"] { + .layout-row > .flex-gt-md-85 { max-width: 85%; } - [layout="column"] > [flex-gt-md="85"] { + .layout-column > .flex-gt-md-85 { max-height: 85%; } - [flex-gt-md="90"] { + .flex-gt-md-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-md="90"] { + .layout-row > .flex-gt-md-90 { max-width: 90%; } - [layout="column"] > [flex-gt-md="90"] { + .layout-column > .flex-gt-md-90 { max-height: 90%; } - [flex-gt-md="95"] { + .flex-gt-md-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-md="95"] { + .layout-row > .flex-gt-md-95 { max-width: 95%; } - [layout="column"] > [flex-gt-md="95"] { + .layout-column > .flex-gt-md-95 { max-height: 95%; } - [flex-gt-md="100"] { + .flex-gt-md-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-md="100"] { + .layout-row > .flex-gt-md-100 { max-width: 100%; } - [layout="column"] > [flex-gt-md="100"] { + .layout-column > .flex-gt-md-100 { max-height: 100%; } - [flex-gt-md="33"], [flex-gt-md="34"] { + .flex-gt-md-33, .flex-gt-md-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-md="66"], [flex-gt-md="67"] { + .flex-gt-md-66, .flex-gt-md-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-md="33"], [layout="row"] > [flex-gt-md="34"] { + .layout-row > .flex-gt-md-33, .layout-row > .flex-gt-md-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-md="66"], [layout="row"] > [flex-gt-md="67"] { + .layout-row > .flex-gt-md-66, .layout-row > .flex-gt-md-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-md="33"], [layout="column"] > [flex-gt-md="34"] { + .layout-column > .flex-gt-md-33, .layout-column > .flex-gt-md-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-md="66"], [layout="column"] > [flex-gt-md="67"] { + .layout-column > .flex-gt-md-66, .layout-column > .flex-gt-md-67 { max-height: 66.66%; } } @media (min-width: 1024px) and (max-width: 1279px) { - [hide]:not([show-gt-sm]):not([show-gt-md]):not([show-lg]):not([show]), .md-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]) { + .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]) { + .hide-lg:not(.show-lg):not(.show) { display: none; } - [flex-order-lg="0"] { + .flex-order-lg-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-lg="1"] { + .flex-order-lg-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-lg="2"] { + .flex-order-lg-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-lg="3"] { + .flex-order-lg-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-lg="4"] { + .flex-order-lg-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-lg="5"] { + .flex-order-lg-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-lg="6"] { + .flex-order-lg-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-lg="7"] { + .flex-order-lg-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-lg="8"] { + .flex-order-lg-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-lg="9"] { + .flex-order-lg-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-lg="center"], [layout-align-lg="center center"], - [layout-align-lg="center start"], - [layout-align-lg="center end"] { + .layout-align-lg-center, .layout-align-lg-center-center, + .layout-align-lg-center-start, + .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 start"], - [layout-align-lg="end end"] { + .layout-align-lg-end, .layout-align-lg-end-center, + .layout-align-lg-end-start, + .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 start"], - [layout-align-lg="space-around end"] { + .layout-align-lg-space-around, .layout-align-lg-space-around-center, + .layout-align-lg-space-around-start, + .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 start"], - [layout-align-lg="space-between end"] { + .layout-align-lg-space-between, .layout-align-lg-space-between-center, + .layout-align-lg-space-between-start, + .layout-align-lg-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-lg="center start"], - [layout-align-lg="start start"], - [layout-align-lg="end start"], - [layout-align-lg="space-between start"], - [layout-align-lg="space-around start"] { + .layout-align-lg-center-start, + .layout-align-lg-start-start, + .layout-align-lg-end-start, + .layout-align-lg-space-between-start, + .layout-align-lg-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-lg] { + .layout-lg { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-lg=column] { + .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] { + .layout-lg-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-lg="5"] { + .offset-lg-5 { margin-left: 5%; } - [offset-lg="10"] { + .offset-lg-10 { margin-left: 10%; } - [offset-lg="15"] { + .offset-lg-15 { margin-left: 15%; } - [offset-lg="20"] { + .offset-lg-20 { margin-left: 20%; } - [offset-lg="25"] { + .offset-lg-25 { margin-left: 25%; } - [offset-lg="30"] { + .offset-lg-30 { margin-left: 30%; } - [offset-lg="35"] { + .offset-lg-35 { margin-left: 35%; } - [offset-lg="40"] { + .offset-lg-40 { margin-left: 40%; } - [offset-lg="45"] { + .offset-lg-45 { margin-left: 45%; } - [offset-lg="50"] { + .offset-lg-50 { margin-left: 50%; } - [offset-lg="55"] { + .offset-lg-55 { margin-left: 55%; } - [offset-lg="60"] { + .offset-lg-60 { margin-left: 60%; } - [offset-lg="65"] { + .offset-lg-65 { margin-left: 65%; } - [offset-lg="70"] { + .offset-lg-70 { margin-left: 70%; } - [offset-lg="75"] { + .offset-lg-75 { margin-left: 75%; } - [offset-lg="80"] { + .offset-lg-80 { margin-left: 80%; } - [offset-lg="85"] { + .offset-lg-85 { margin-left: 85%; } - [offset-lg="90"] { + .offset-lg-90 { margin-left: 90%; } - [offset-lg="95"] { + .offset-lg-95 { margin-left: 95%; } - [offset-lg="33"], [offset-lg="34"] { + .offset-lg-33, .offset-lg-34 { margin-left: 33.33%; } - [offset-lg="66"], [offset-lg="67"] { + .offset-lg-66, .offset-lg-67 { margin-left: 66.66%; } - [flex-lg] { + .flex-lg { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-lg="0"] { + .flex-lg-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-lg="0"] { + .layout-row > .flex-lg-0 { max-width: 0%; } - [layout="column"] > [flex-lg="0"] { + .layout-column > .flex-lg-0 { max-height: 0%; } - [flex-lg="5"] { + .flex-lg-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-lg="5"] { + .layout-row > .flex-lg-5 { max-width: 5%; } - [layout="column"] > [flex-lg="5"] { + .layout-column > .flex-lg-5 { max-height: 5%; } - [flex-lg="10"] { + .flex-lg-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-lg="10"] { + .layout-row > .flex-lg-10 { max-width: 10%; } - [layout="column"] > [flex-lg="10"] { + .layout-column > .flex-lg-10 { max-height: 10%; } - [flex-lg="15"] { + .flex-lg-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-lg="15"] { + .layout-row > .flex-lg-15 { max-width: 15%; } - [layout="column"] > [flex-lg="15"] { + .layout-column > .flex-lg-15 { max-height: 15%; } - [flex-lg="20"] { + .flex-lg-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-lg="20"] { + .layout-row > .flex-lg-20 { max-width: 20%; } - [layout="column"] > [flex-lg="20"] { + .layout-column > .flex-lg-20 { max-height: 20%; } - [flex-lg="25"] { + .flex-lg-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-lg="25"] { + .layout-row > .flex-lg-25 { max-width: 25%; } - [layout="column"] > [flex-lg="25"] { + .layout-column > .flex-lg-25 { max-height: 25%; } - [flex-lg="30"] { + .flex-lg-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-lg="30"] { + .layout-row > .flex-lg-30 { max-width: 30%; } - [layout="column"] > [flex-lg="30"] { + .layout-column > .flex-lg-30 { max-height: 30%; } - [flex-lg="35"] { + .flex-lg-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-lg="35"] { + .layout-row > .flex-lg-35 { max-width: 35%; } - [layout="column"] > [flex-lg="35"] { + .layout-column > .flex-lg-35 { max-height: 35%; } - [flex-lg="40"] { + .flex-lg-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-lg="40"] { + .layout-row > .flex-lg-40 { max-width: 40%; } - [layout="column"] > [flex-lg="40"] { + .layout-column > .flex-lg-40 { max-height: 40%; } - [flex-lg="45"] { + .flex-lg-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-lg="45"] { + .layout-row > .flex-lg-45 { max-width: 45%; } - [layout="column"] > [flex-lg="45"] { + .layout-column > .flex-lg-45 { max-height: 45%; } - [flex-lg="50"] { + .flex-lg-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-lg="50"] { + .layout-row > .flex-lg-50 { max-width: 50%; } - [layout="column"] > [flex-lg="50"] { + .layout-column > .flex-lg-50 { max-height: 50%; } - [flex-lg="55"] { + .flex-lg-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-lg="55"] { + .layout-row > .flex-lg-55 { max-width: 55%; } - [layout="column"] > [flex-lg="55"] { + .layout-column > .flex-lg-55 { max-height: 55%; } - [flex-lg="60"] { + .flex-lg-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-lg="60"] { + .layout-row > .flex-lg-60 { max-width: 60%; } - [layout="column"] > [flex-lg="60"] { + .layout-column > .flex-lg-60 { max-height: 60%; } - [flex-lg="65"] { + .flex-lg-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-lg="65"] { + .layout-row > .flex-lg-65 { max-width: 65%; } - [layout="column"] > [flex-lg="65"] { + .layout-column > .flex-lg-65 { max-height: 65%; } - [flex-lg="70"] { + .flex-lg-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-lg="70"] { + .layout-row > .flex-lg-70 { max-width: 70%; } - [layout="column"] > [flex-lg="70"] { + .layout-column > .flex-lg-70 { max-height: 70%; } - [flex-lg="75"] { + .flex-lg-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-lg="75"] { + .layout-row > .flex-lg-75 { max-width: 75%; } - [layout="column"] > [flex-lg="75"] { + .layout-column > .flex-lg-75 { max-height: 75%; } - [flex-lg="80"] { + .flex-lg-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-lg="80"] { + .layout-row > .flex-lg-80 { max-width: 80%; } - [layout="column"] > [flex-lg="80"] { + .layout-column > .flex-lg-80 { max-height: 80%; } - [flex-lg="85"] { + .flex-lg-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-lg="85"] { + .layout-row > .flex-lg-85 { max-width: 85%; } - [layout="column"] > [flex-lg="85"] { + .layout-column > .flex-lg-85 { max-height: 85%; } - [flex-lg="90"] { + .flex-lg-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-lg="90"] { + .layout-row > .flex-lg-90 { max-width: 90%; } - [layout="column"] > [flex-lg="90"] { + .layout-column > .flex-lg-90 { max-height: 90%; } - [flex-lg="95"] { + .flex-lg-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-lg="95"] { + .layout-row > .flex-lg-95 { max-width: 95%; } - [layout="column"] > [flex-lg="95"] { + .layout-column > .flex-lg-95 { max-height: 95%; } - [flex-lg="100"] { + .flex-lg-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-lg="100"] { + .layout-row > .flex-lg-100 { max-width: 100%; } - [layout="column"] > [flex-lg="100"] { + .layout-column > .flex-lg-100 { max-height: 100%; } - [flex-lg="33"], [flex-lg="34"] { + .flex-lg-33, .flex-lg-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-lg="66"], [flex-lg="67"] { + .flex-lg-66, .flex-lg-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-lg="33"], [layout="row"] > [flex-lg="34"] { + .layout-row > .flex-lg-33, .layout-row > .flex-lg-34 { max-width: 33.33%; } - [layout="row"] > [flex-lg="66"], [layout="row"] > [flex-lg="67"] { + .layout-row > .flex-lg-66, .layout-row > .flex-lg-67 { max-width: 66.66%; } - [layout="column"] > [flex-lg="33"], [layout="column"] > [flex-lg="34"] { + .layout-column > .flex-lg-33, .layout-column > .flex-lg-34 { max-height: 33.33%; } - [layout="column"] > [flex-lg="66"], [layout="column"] > [flex-lg="67"] { + .layout-column > .flex-lg-66, .layout-column > .flex-lg-67 { max-height: 66.66%; } } @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]), .md-hide:not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show]) { + .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"] { + .flex-order-gt-lg-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-lg="1"] { + .flex-order-gt-lg-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-lg="2"] { + .flex-order-gt-lg-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-lg="3"] { + .flex-order-gt-lg-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-lg="4"] { + .flex-order-gt-lg-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-lg="5"] { + .flex-order-gt-lg-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-lg="6"] { + .flex-order-gt-lg-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-lg="7"] { + .flex-order-gt-lg-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-lg="8"] { + .flex-order-gt-lg-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-lg="9"] { + .flex-order-gt-lg-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-lg="center"], [layout-align-gt-lg="center center"], - [layout-align-gt-lg="center start"], - [layout-align-gt-lg="center end"] { + .layout-align-gt-lg-center, .layout-align-gt-lg-center-center, + .layout-align-gt-lg-center-start, + .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 start"], - [layout-align-gt-lg="end end"] { + .layout-align-gt-lg-end, .layout-align-gt-lg-end-center, + .layout-align-gt-lg-end-start, + .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 start"], - [layout-align-gt-lg="space-around end"] { + .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 { -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 start"], - [layout-align-gt-lg="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-lg="center start"], - [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"] { + .layout-align-gt-lg-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-lg] { + .layout-gt-lg { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-lg=column] { + .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] { + .layout-gt-lg-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [offset-gt-lg="5"] { + .offset-gt-lg-5 { margin-left: 5%; } - [offset-gt-lg="10"] { + .offset-gt-lg-10 { margin-left: 10%; } - [offset-gt-lg="15"] { + .offset-gt-lg-15 { margin-left: 15%; } - [offset-gt-lg="20"] { + .offset-gt-lg-20 { margin-left: 20%; } - [offset-gt-lg="25"] { + .offset-gt-lg-25 { margin-left: 25%; } - [offset-gt-lg="30"] { + .offset-gt-lg-30 { margin-left: 30%; } - [offset-gt-lg="35"] { + .offset-gt-lg-35 { margin-left: 35%; } - [offset-gt-lg="40"] { + .offset-gt-lg-40 { margin-left: 40%; } - [offset-gt-lg="45"] { + .offset-gt-lg-45 { margin-left: 45%; } - [offset-gt-lg="50"] { + .offset-gt-lg-50 { margin-left: 50%; } - [offset-gt-lg="55"] { + .offset-gt-lg-55 { margin-left: 55%; } - [offset-gt-lg="60"] { + .offset-gt-lg-60 { margin-left: 60%; } - [offset-gt-lg="65"] { + .offset-gt-lg-65 { margin-left: 65%; } - [offset-gt-lg="70"] { + .offset-gt-lg-70 { margin-left: 70%; } - [offset-gt-lg="75"] { + .offset-gt-lg-75 { margin-left: 75%; } - [offset-gt-lg="80"] { + .offset-gt-lg-80 { margin-left: 80%; } - [offset-gt-lg="85"] { + .offset-gt-lg-85 { margin-left: 85%; } - [offset-gt-lg="90"] { + .offset-gt-lg-90 { margin-left: 90%; } - [offset-gt-lg="95"] { + .offset-gt-lg-95 { margin-left: 95%; } - [offset-gt-lg="33"], [offset-gt-lg="34"] { + .offset-gt-lg-33, .offset-gt-lg-34 { margin-left: 33.33%; } - [offset-gt-lg="66"], [offset-gt-lg="67"] { + .offset-gt-lg-66, .offset-gt-lg-67 { margin-left: 66.66%; } - [flex-gt-lg] { + .flex-gt-lg { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-lg="0"] { + .flex-gt-lg-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-lg="0"] { + .layout-row > .flex-gt-lg-0 { max-width: 0%; } - [layout="column"] > [flex-gt-lg="0"] { + .layout-column > .flex-gt-lg-0 { max-height: 0%; } - [flex-gt-lg="5"] { + .flex-gt-lg-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-lg="5"] { + .layout-row > .flex-gt-lg-5 { max-width: 5%; } - [layout="column"] > [flex-gt-lg="5"] { + .layout-column > .flex-gt-lg-5 { max-height: 5%; } - [flex-gt-lg="10"] { + .flex-gt-lg-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-lg="10"] { + .layout-row > .flex-gt-lg-10 { max-width: 10%; } - [layout="column"] > [flex-gt-lg="10"] { + .layout-column > .flex-gt-lg-10 { max-height: 10%; } - [flex-gt-lg="15"] { + .flex-gt-lg-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-lg="15"] { + .layout-row > .flex-gt-lg-15 { max-width: 15%; } - [layout="column"] > [flex-gt-lg="15"] { + .layout-column > .flex-gt-lg-15 { max-height: 15%; } - [flex-gt-lg="20"] { + .flex-gt-lg-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-lg="20"] { + .layout-row > .flex-gt-lg-20 { max-width: 20%; } - [layout="column"] > [flex-gt-lg="20"] { + .layout-column > .flex-gt-lg-20 { max-height: 20%; } - [flex-gt-lg="25"] { + .flex-gt-lg-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-lg="25"] { + .layout-row > .flex-gt-lg-25 { max-width: 25%; } - [layout="column"] > [flex-gt-lg="25"] { + .layout-column > .flex-gt-lg-25 { max-height: 25%; } - [flex-gt-lg="30"] { + .flex-gt-lg-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-lg="30"] { + .layout-row > .flex-gt-lg-30 { max-width: 30%; } - [layout="column"] > [flex-gt-lg="30"] { + .layout-column > .flex-gt-lg-30 { max-height: 30%; } - [flex-gt-lg="35"] { + .flex-gt-lg-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-lg="35"] { + .layout-row > .flex-gt-lg-35 { max-width: 35%; } - [layout="column"] > [flex-gt-lg="35"] { + .layout-column > .flex-gt-lg-35 { max-height: 35%; } - [flex-gt-lg="40"] { + .flex-gt-lg-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-lg="40"] { + .layout-row > .flex-gt-lg-40 { max-width: 40%; } - [layout="column"] > [flex-gt-lg="40"] { + .layout-column > .flex-gt-lg-40 { max-height: 40%; } - [flex-gt-lg="45"] { + .flex-gt-lg-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-lg="45"] { + .layout-row > .flex-gt-lg-45 { max-width: 45%; } - [layout="column"] > [flex-gt-lg="45"] { + .layout-column > .flex-gt-lg-45 { max-height: 45%; } - [flex-gt-lg="50"] { + .flex-gt-lg-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-lg="50"] { + .layout-row > .flex-gt-lg-50 { max-width: 50%; } - [layout="column"] > [flex-gt-lg="50"] { + .layout-column > .flex-gt-lg-50 { max-height: 50%; } - [flex-gt-lg="55"] { + .flex-gt-lg-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-lg="55"] { + .layout-row > .flex-gt-lg-55 { max-width: 55%; } - [layout="column"] > [flex-gt-lg="55"] { + .layout-column > .flex-gt-lg-55 { max-height: 55%; } - [flex-gt-lg="60"] { + .flex-gt-lg-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-lg="60"] { + .layout-row > .flex-gt-lg-60 { max-width: 60%; } - [layout="column"] > [flex-gt-lg="60"] { + .layout-column > .flex-gt-lg-60 { max-height: 60%; } - [flex-gt-lg="65"] { + .flex-gt-lg-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-lg="65"] { + .layout-row > .flex-gt-lg-65 { max-width: 65%; } - [layout="column"] > [flex-gt-lg="65"] { + .layout-column > .flex-gt-lg-65 { max-height: 65%; } - [flex-gt-lg="70"] { + .flex-gt-lg-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-lg="70"] { + .layout-row > .flex-gt-lg-70 { max-width: 70%; } - [layout="column"] > [flex-gt-lg="70"] { + .layout-column > .flex-gt-lg-70 { max-height: 70%; } - [flex-gt-lg="75"] { + .flex-gt-lg-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-lg="75"] { + .layout-row > .flex-gt-lg-75 { max-width: 75%; } - [layout="column"] > [flex-gt-lg="75"] { + .layout-column > .flex-gt-lg-75 { max-height: 75%; } - [flex-gt-lg="80"] { + .flex-gt-lg-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-lg="80"] { + .layout-row > .flex-gt-lg-80 { max-width: 80%; } - [layout="column"] > [flex-gt-lg="80"] { + .layout-column > .flex-gt-lg-80 { max-height: 80%; } - [flex-gt-lg="85"] { + .flex-gt-lg-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-lg="85"] { + .layout-row > .flex-gt-lg-85 { max-width: 85%; } - [layout="column"] > [flex-gt-lg="85"] { + .layout-column > .flex-gt-lg-85 { max-height: 85%; } - [flex-gt-lg="90"] { + .flex-gt-lg-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-lg="90"] { + .layout-row > .flex-gt-lg-90 { max-width: 90%; } - [layout="column"] > [flex-gt-lg="90"] { + .layout-column > .flex-gt-lg-90 { max-height: 90%; } - [flex-gt-lg="95"] { + .flex-gt-lg-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-lg="95"] { + .layout-row > .flex-gt-lg-95 { max-width: 95%; } - [layout="column"] > [flex-gt-lg="95"] { + .layout-column > .flex-gt-lg-95 { max-height: 95%; } - [flex-gt-lg="100"] { + .flex-gt-lg-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-lg="100"] { + .layout-row > .flex-gt-lg-100 { max-width: 100%; } - [layout="column"] > [flex-gt-lg="100"] { + .layout-column > .flex-gt-lg-100 { max-height: 100%; } - [flex-gt-lg="33"], [flex-gt-lg="34"] { + .flex-gt-lg-33, .flex-gt-lg-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-lg="66"], [flex-gt-lg="67"] { + .flex-gt-lg-66, .flex-gt-lg-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-lg="33"], [layout="row"] > [flex-gt-lg="34"] { + .layout-row > .flex-gt-lg-33, .layout-row > .flex-gt-lg-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-lg="66"], [layout="row"] > [flex-gt-lg="67"] { + .layout-row > .flex-gt-lg-66, .layout-row > .flex-gt-lg-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-lg="33"], [layout="column"] > [flex-gt-lg="34"] { + .layout-column > .flex-gt-lg-33, .layout-column > .flex-gt-lg-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-lg="66"], [layout="column"] > [flex-gt-lg="67"] { + .layout-column > .flex-gt-lg-66, .layout-column > .flex-gt-lg-67 { max-height: 66.66%; } } /** @@ -3345,341 +3329,341 @@ html * { @media (min-width: 1) and (max-width: 600px) { .hide-sm:not(.show-sm):not(.show), .hide:not(.show-sm):not(.show) { display: none !important; } - [flex-order-sm="0"] { + .flex-order-sm-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-sm="1"] { + .flex-order-sm-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-sm="2"] { + .flex-order-sm-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-sm="3"] { + .flex-order-sm-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-sm="4"] { + .flex-order-sm-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-sm="5"] { + .flex-order-sm-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-sm="6"] { + .flex-order-sm-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-sm="7"] { + .flex-order-sm-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-sm="8"] { + .flex-order-sm-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-sm="9"] { + .flex-order-sm-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-sm="center"], [layout-align-sm="center center"], - [layout-align-sm="center start"], - [layout-align-sm="center end"] { + .layout-align-sm-center, .layout-align-sm-center-center, + .layout-align-sm-center-start, + .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 start"], - [layout-align-sm="end end"] { + .layout-align-sm-end, .layout-align-sm-end-center, + .layout-align-sm-end-start, + .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 start"], - [layout-align-sm="space-around end"] { + .layout-align-sm-space-around, .layout-align-sm-space-around-center, + .layout-align-sm-space-around-start, + .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 start"], - [layout-align-sm="space-between end"] { + .layout-align-sm-space-between, .layout-align-sm-space-between-center, + .layout-align-sm-space-between-start, + .layout-align-sm-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-sm="center start"], - [layout-align-sm="start start"], - [layout-align-sm="end start"], - [layout-align-sm="space-between start"], - [layout-align-sm="space-around start"] { + .layout-align-sm-center-start, + .layout-align-sm-start-start, + .layout-align-sm-end-start, + .layout-align-sm-space-between-start, + .layout-align-sm-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-sm] { + .layout-sm { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-sm=column] { + .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] { + .layout-sm-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-sm] { + .flex-sm { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-sm="0"] { + .flex-sm-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-sm="0"] { + .layout-row > .flex-sm-0 { max-width: 0%; } - [layout="column"] > [flex-sm="0"] { + .layout-column > .flex-sm-0 { max-height: 0%; } - [flex-sm="5"] { + .flex-sm-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-sm="5"] { + .layout-row > .flex-sm-5 { max-width: 5%; } - [layout="column"] > [flex-sm="5"] { + .layout-column > .flex-sm-5 { max-height: 5%; } - [flex-sm="10"] { + .flex-sm-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-sm="10"] { + .layout-row > .flex-sm-10 { max-width: 10%; } - [layout="column"] > [flex-sm="10"] { + .layout-column > .flex-sm-10 { max-height: 10%; } - [flex-sm="15"] { + .flex-sm-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-sm="15"] { + .layout-row > .flex-sm-15 { max-width: 15%; } - [layout="column"] > [flex-sm="15"] { + .layout-column > .flex-sm-15 { max-height: 15%; } - [flex-sm="20"] { + .flex-sm-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-sm="20"] { + .layout-row > .flex-sm-20 { max-width: 20%; } - [layout="column"] > [flex-sm="20"] { + .layout-column > .flex-sm-20 { max-height: 20%; } - [flex-sm="25"] { + .flex-sm-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-sm="25"] { + .layout-row > .flex-sm-25 { max-width: 25%; } - [layout="column"] > [flex-sm="25"] { + .layout-column > .flex-sm-25 { max-height: 25%; } - [flex-sm="30"] { + .flex-sm-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-sm="30"] { + .layout-row > .flex-sm-30 { max-width: 30%; } - [layout="column"] > [flex-sm="30"] { + .layout-column > .flex-sm-30 { max-height: 30%; } - [flex-sm="35"] { + .flex-sm-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-sm="35"] { + .layout-row > .flex-sm-35 { max-width: 35%; } - [layout="column"] > [flex-sm="35"] { + .layout-column > .flex-sm-35 { max-height: 35%; } - [flex-sm="40"] { + .flex-sm-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-sm="40"] { + .layout-row > .flex-sm-40 { max-width: 40%; } - [layout="column"] > [flex-sm="40"] { + .layout-column > .flex-sm-40 { max-height: 40%; } - [flex-sm="45"] { + .flex-sm-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-sm="45"] { + .layout-row > .flex-sm-45 { max-width: 45%; } - [layout="column"] > [flex-sm="45"] { + .layout-column > .flex-sm-45 { max-height: 45%; } - [flex-sm="50"] { + .flex-sm-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-sm="50"] { + .layout-row > .flex-sm-50 { max-width: 50%; } - [layout="column"] > [flex-sm="50"] { + .layout-column > .flex-sm-50 { max-height: 50%; } - [flex-sm="55"] { + .flex-sm-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-sm="55"] { + .layout-row > .flex-sm-55 { max-width: 55%; } - [layout="column"] > [flex-sm="55"] { + .layout-column > .flex-sm-55 { max-height: 55%; } - [flex-sm="60"] { + .flex-sm-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-sm="60"] { + .layout-row > .flex-sm-60 { max-width: 60%; } - [layout="column"] > [flex-sm="60"] { + .layout-column > .flex-sm-60 { max-height: 60%; } - [flex-sm="65"] { + .flex-sm-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-sm="65"] { + .layout-row > .flex-sm-65 { max-width: 65%; } - [layout="column"] > [flex-sm="65"] { + .layout-column > .flex-sm-65 { max-height: 65%; } - [flex-sm="70"] { + .flex-sm-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-sm="70"] { + .layout-row > .flex-sm-70 { max-width: 70%; } - [layout="column"] > [flex-sm="70"] { + .layout-column > .flex-sm-70 { max-height: 70%; } - [flex-sm="75"] { + .flex-sm-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-sm="75"] { + .layout-row > .flex-sm-75 { max-width: 75%; } - [layout="column"] > [flex-sm="75"] { + .layout-column > .flex-sm-75 { max-height: 75%; } - [flex-sm="80"] { + .flex-sm-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-sm="80"] { + .layout-row > .flex-sm-80 { max-width: 80%; } - [layout="column"] > [flex-sm="80"] { + .layout-column > .flex-sm-80 { max-height: 80%; } - [flex-sm="85"] { + .flex-sm-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-sm="85"] { + .layout-row > .flex-sm-85 { max-width: 85%; } - [layout="column"] > [flex-sm="85"] { + .layout-column > .flex-sm-85 { max-height: 85%; } - [flex-sm="90"] { + .flex-sm-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-sm="90"] { + .layout-row > .flex-sm-90 { max-width: 90%; } - [layout="column"] > [flex-sm="90"] { + .layout-column > .flex-sm-90 { max-height: 90%; } - [flex-sm="95"] { + .flex-sm-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-sm="95"] { + .layout-row > .flex-sm-95 { max-width: 95%; } - [layout="column"] > [flex-sm="95"] { + .layout-column > .flex-sm-95 { max-height: 95%; } - [flex-sm="100"] { + .flex-sm-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-sm="100"] { + .layout-row > .flex-sm-100 { max-width: 100%; } - [layout="column"] > [flex-sm="100"] { + .layout-column > .flex-sm-100 { max-height: 100%; } - [flex-sm="33"], [flex-sm="34"] { + .flex-sm-33, .flex-sm-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-sm="66"], [flex-sm="67"] { + .flex-sm-66, .flex-sm-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-sm="33"], [layout="row"] > [flex-sm="34"] { + .layout-row > .flex-sm-33, .layout-row > .flex-sm-34 { max-width: 33.33%; } - [layout="row"] > [flex-sm="66"], [layout="row"] > [flex-sm="67"] { + .layout-row > .flex-sm-66, .layout-row > .flex-sm-67 { max-width: 66.66%; } - [layout="column"] > [flex-sm="33"], [layout="column"] > [flex-sm="34"] { + .layout-column > .flex-sm-33, .layout-column > .flex-sm-34 { max-height: 33.33%; } - [layout="column"] > [flex-sm="66"], [layout="column"] > [flex-sm="67"] { + .layout-column > .flex-sm-66, .layout-column > .flex-sm-67 { max-height: 66.66%; } } @media (min-width: 601px) { @@ -3687,341 +3671,341 @@ html * { display: none !important; } } @media (min-width: 601px) { - [flex-order-gt-sm="0"] { + .flex-order-gt-sm-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-sm="1"] { + .flex-order-gt-sm-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-sm="2"] { + .flex-order-gt-sm-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-sm="3"] { + .flex-order-gt-sm-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-sm="4"] { + .flex-order-gt-sm-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-sm="5"] { + .flex-order-gt-sm-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-sm="6"] { + .flex-order-gt-sm-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-sm="7"] { + .flex-order-gt-sm-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-sm="8"] { + .flex-order-gt-sm-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-sm="9"] { + .flex-order-gt-sm-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-sm="center"], [layout-align-gt-sm="center center"], - [layout-align-gt-sm="center start"], - [layout-align-gt-sm="center end"] { + .layout-align-gt-sm-center, .layout-align-gt-sm-center-center, + .layout-align-gt-sm-center-start, + .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 start"], - [layout-align-gt-sm="end end"] { + .layout-align-gt-sm-end, .layout-align-gt-sm-end-center, + .layout-align-gt-sm-end-start, + .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 start"], - [layout-align-gt-sm="space-around end"] { + .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 { -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 start"], - [layout-align-gt-sm="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-sm="center start"], - [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"] { + .layout-align-gt-sm-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-sm] { + .layout-gt-sm { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-sm=column] { + .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] { + .layout-gt-sm-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-gt-sm] { + .flex-gt-sm { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-sm="0"] { + .flex-gt-sm-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-sm="0"] { + .layout-row > .flex-gt-sm-0 { max-width: 0%; } - [layout="column"] > [flex-gt-sm="0"] { + .layout-column > .flex-gt-sm-0 { max-height: 0%; } - [flex-gt-sm="5"] { + .flex-gt-sm-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-sm="5"] { + .layout-row > .flex-gt-sm-5 { max-width: 5%; } - [layout="column"] > [flex-gt-sm="5"] { + .layout-column > .flex-gt-sm-5 { max-height: 5%; } - [flex-gt-sm="10"] { + .flex-gt-sm-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-sm="10"] { + .layout-row > .flex-gt-sm-10 { max-width: 10%; } - [layout="column"] > [flex-gt-sm="10"] { + .layout-column > .flex-gt-sm-10 { max-height: 10%; } - [flex-gt-sm="15"] { + .flex-gt-sm-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-sm="15"] { + .layout-row > .flex-gt-sm-15 { max-width: 15%; } - [layout="column"] > [flex-gt-sm="15"] { + .layout-column > .flex-gt-sm-15 { max-height: 15%; } - [flex-gt-sm="20"] { + .flex-gt-sm-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-sm="20"] { + .layout-row > .flex-gt-sm-20 { max-width: 20%; } - [layout="column"] > [flex-gt-sm="20"] { + .layout-column > .flex-gt-sm-20 { max-height: 20%; } - [flex-gt-sm="25"] { + .flex-gt-sm-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-sm="25"] { + .layout-row > .flex-gt-sm-25 { max-width: 25%; } - [layout="column"] > [flex-gt-sm="25"] { + .layout-column > .flex-gt-sm-25 { max-height: 25%; } - [flex-gt-sm="30"] { + .flex-gt-sm-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-sm="30"] { + .layout-row > .flex-gt-sm-30 { max-width: 30%; } - [layout="column"] > [flex-gt-sm="30"] { + .layout-column > .flex-gt-sm-30 { max-height: 30%; } - [flex-gt-sm="35"] { + .flex-gt-sm-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-sm="35"] { + .layout-row > .flex-gt-sm-35 { max-width: 35%; } - [layout="column"] > [flex-gt-sm="35"] { + .layout-column > .flex-gt-sm-35 { max-height: 35%; } - [flex-gt-sm="40"] { + .flex-gt-sm-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-sm="40"] { + .layout-row > .flex-gt-sm-40 { max-width: 40%; } - [layout="column"] > [flex-gt-sm="40"] { + .layout-column > .flex-gt-sm-40 { max-height: 40%; } - [flex-gt-sm="45"] { + .flex-gt-sm-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-sm="45"] { + .layout-row > .flex-gt-sm-45 { max-width: 45%; } - [layout="column"] > [flex-gt-sm="45"] { + .layout-column > .flex-gt-sm-45 { max-height: 45%; } - [flex-gt-sm="50"] { + .flex-gt-sm-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-sm="50"] { + .layout-row > .flex-gt-sm-50 { max-width: 50%; } - [layout="column"] > [flex-gt-sm="50"] { + .layout-column > .flex-gt-sm-50 { max-height: 50%; } - [flex-gt-sm="55"] { + .flex-gt-sm-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-sm="55"] { + .layout-row > .flex-gt-sm-55 { max-width: 55%; } - [layout="column"] > [flex-gt-sm="55"] { + .layout-column > .flex-gt-sm-55 { max-height: 55%; } - [flex-gt-sm="60"] { + .flex-gt-sm-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-sm="60"] { + .layout-row > .flex-gt-sm-60 { max-width: 60%; } - [layout="column"] > [flex-gt-sm="60"] { + .layout-column > .flex-gt-sm-60 { max-height: 60%; } - [flex-gt-sm="65"] { + .flex-gt-sm-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-sm="65"] { + .layout-row > .flex-gt-sm-65 { max-width: 65%; } - [layout="column"] > [flex-gt-sm="65"] { + .layout-column > .flex-gt-sm-65 { max-height: 65%; } - [flex-gt-sm="70"] { + .flex-gt-sm-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-sm="70"] { + .layout-row > .flex-gt-sm-70 { max-width: 70%; } - [layout="column"] > [flex-gt-sm="70"] { + .layout-column > .flex-gt-sm-70 { max-height: 70%; } - [flex-gt-sm="75"] { + .flex-gt-sm-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-sm="75"] { + .layout-row > .flex-gt-sm-75 { max-width: 75%; } - [layout="column"] > [flex-gt-sm="75"] { + .layout-column > .flex-gt-sm-75 { max-height: 75%; } - [flex-gt-sm="80"] { + .flex-gt-sm-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-sm="80"] { + .layout-row > .flex-gt-sm-80 { max-width: 80%; } - [layout="column"] > [flex-gt-sm="80"] { + .layout-column > .flex-gt-sm-80 { max-height: 80%; } - [flex-gt-sm="85"] { + .flex-gt-sm-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-sm="85"] { + .layout-row > .flex-gt-sm-85 { max-width: 85%; } - [layout="column"] > [flex-gt-sm="85"] { + .layout-column > .flex-gt-sm-85 { max-height: 85%; } - [flex-gt-sm="90"] { + .flex-gt-sm-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-sm="90"] { + .layout-row > .flex-gt-sm-90 { max-width: 90%; } - [layout="column"] > [flex-gt-sm="90"] { + .layout-column > .flex-gt-sm-90 { max-height: 90%; } - [flex-gt-sm="95"] { + .flex-gt-sm-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-sm="95"] { + .layout-row > .flex-gt-sm-95 { max-width: 95%; } - [layout="column"] > [flex-gt-sm="95"] { + .layout-column > .flex-gt-sm-95 { max-height: 95%; } - [flex-gt-sm="100"] { + .flex-gt-sm-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-sm="100"] { + .layout-row > .flex-gt-sm-100 { max-width: 100%; } - [layout="column"] > [flex-gt-sm="100"] { + .layout-column > .flex-gt-sm-100 { max-height: 100%; } - [flex-gt-sm="33"], [flex-gt-sm="34"] { + .flex-gt-sm-33, .flex-gt-sm-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-sm="66"], [flex-gt-sm="67"] { + .flex-gt-sm-66, .flex-gt-sm-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-sm="33"], [layout="row"] > [flex-gt-sm="34"] { + .layout-row > .flex-gt-sm-33, .layout-row > .flex-gt-sm-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-sm="66"], [layout="row"] > [flex-gt-sm="67"] { + .layout-row > .flex-gt-sm-66, .layout-row > .flex-gt-sm-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-sm="33"], [layout="column"] > [flex-gt-sm="34"] { + .layout-column > .flex-gt-sm-33, .layout-column > .flex-gt-sm-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-sm="66"], [layout="column"] > [flex-gt-sm="67"] { + .layout-column > .flex-gt-sm-66, .layout-column > .flex-gt-sm-67 { max-height: 66.66%; } } @media (min-width: 601px) and (max-width: 1024px) { @@ -4029,1015 +4013,1015 @@ html * { display: none; } .hide-md:not(.show-md):not(.show) { display: none; } - [flex-order-md="0"] { + .flex-order-md-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-md="1"] { + .flex-order-md-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-md="2"] { + .flex-order-md-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-md="3"] { + .flex-order-md-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-md="4"] { + .flex-order-md-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-md="5"] { + .flex-order-md-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-md="6"] { + .flex-order-md-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-md="7"] { + .flex-order-md-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-md="8"] { + .flex-order-md-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-md="9"] { + .flex-order-md-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-md="center"], [layout-align-md="center center"], - [layout-align-md="center start"], - [layout-align-md="center end"] { + .layout-align-md-center, .layout-align-md-center-center, + .layout-align-md-center-start, + .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 start"], - [layout-align-md="end end"] { + .layout-align-md-end, .layout-align-md-end-center, + .layout-align-md-end-start, + .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 start"], - [layout-align-md="space-around end"] { + .layout-align-md-space-around, .layout-align-md-space-around-center, + .layout-align-md-space-around-start, + .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 start"], - [layout-align-md="space-between end"] { + .layout-align-md-space-between, .layout-align-md-space-between-center, + .layout-align-md-space-between-start, + .layout-align-md-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-md="center start"], - [layout-align-md="start start"], - [layout-align-md="end start"], - [layout-align-md="space-between start"], - [layout-align-md="space-around start"] { + .layout-align-md-center-start, + .layout-align-md-start-start, + .layout-align-md-end-start, + .layout-align-md-space-between-start, + .layout-align-md-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-md] { + .layout-md { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-md=column] { + .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] { + .layout-md-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-md] { + .flex-md { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-md="0"] { + .flex-md-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-md="0"] { + .layout-row > .flex-md-0 { max-width: 0%; } - [layout="column"] > [flex-md="0"] { + .layout-column > .flex-md-0 { max-height: 0%; } - [flex-md="5"] { + .flex-md-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-md="5"] { + .layout-row > .flex-md-5 { max-width: 5%; } - [layout="column"] > [flex-md="5"] { + .layout-column > .flex-md-5 { max-height: 5%; } - [flex-md="10"] { + .flex-md-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-md="10"] { + .layout-row > .flex-md-10 { max-width: 10%; } - [layout="column"] > [flex-md="10"] { + .layout-column > .flex-md-10 { max-height: 10%; } - [flex-md="15"] { + .flex-md-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-md="15"] { + .layout-row > .flex-md-15 { max-width: 15%; } - [layout="column"] > [flex-md="15"] { + .layout-column > .flex-md-15 { max-height: 15%; } - [flex-md="20"] { + .flex-md-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-md="20"] { + .layout-row > .flex-md-20 { max-width: 20%; } - [layout="column"] > [flex-md="20"] { + .layout-column > .flex-md-20 { max-height: 20%; } - [flex-md="25"] { + .flex-md-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-md="25"] { + .layout-row > .flex-md-25 { max-width: 25%; } - [layout="column"] > [flex-md="25"] { + .layout-column > .flex-md-25 { max-height: 25%; } - [flex-md="30"] { + .flex-md-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-md="30"] { + .layout-row > .flex-md-30 { max-width: 30%; } - [layout="column"] > [flex-md="30"] { + .layout-column > .flex-md-30 { max-height: 30%; } - [flex-md="35"] { + .flex-md-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-md="35"] { + .layout-row > .flex-md-35 { max-width: 35%; } - [layout="column"] > [flex-md="35"] { + .layout-column > .flex-md-35 { max-height: 35%; } - [flex-md="40"] { + .flex-md-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-md="40"] { + .layout-row > .flex-md-40 { max-width: 40%; } - [layout="column"] > [flex-md="40"] { + .layout-column > .flex-md-40 { max-height: 40%; } - [flex-md="45"] { + .flex-md-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-md="45"] { + .layout-row > .flex-md-45 { max-width: 45%; } - [layout="column"] > [flex-md="45"] { + .layout-column > .flex-md-45 { max-height: 45%; } - [flex-md="50"] { + .flex-md-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-md="50"] { + .layout-row > .flex-md-50 { max-width: 50%; } - [layout="column"] > [flex-md="50"] { + .layout-column > .flex-md-50 { max-height: 50%; } - [flex-md="55"] { + .flex-md-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-md="55"] { + .layout-row > .flex-md-55 { max-width: 55%; } - [layout="column"] > [flex-md="55"] { + .layout-column > .flex-md-55 { max-height: 55%; } - [flex-md="60"] { + .flex-md-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-md="60"] { + .layout-row > .flex-md-60 { max-width: 60%; } - [layout="column"] > [flex-md="60"] { + .layout-column > .flex-md-60 { max-height: 60%; } - [flex-md="65"] { + .flex-md-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-md="65"] { + .layout-row > .flex-md-65 { max-width: 65%; } - [layout="column"] > [flex-md="65"] { + .layout-column > .flex-md-65 { max-height: 65%; } - [flex-md="70"] { + .flex-md-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-md="70"] { + .layout-row > .flex-md-70 { max-width: 70%; } - [layout="column"] > [flex-md="70"] { + .layout-column > .flex-md-70 { max-height: 70%; } - [flex-md="75"] { + .flex-md-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-md="75"] { + .layout-row > .flex-md-75 { max-width: 75%; } - [layout="column"] > [flex-md="75"] { + .layout-column > .flex-md-75 { max-height: 75%; } - [flex-md="80"] { + .flex-md-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-md="80"] { + .layout-row > .flex-md-80 { max-width: 80%; } - [layout="column"] > [flex-md="80"] { + .layout-column > .flex-md-80 { max-height: 80%; } - [flex-md="85"] { + .flex-md-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-md="85"] { + .layout-row > .flex-md-85 { max-width: 85%; } - [layout="column"] > [flex-md="85"] { + .layout-column > .flex-md-85 { max-height: 85%; } - [flex-md="90"] { + .flex-md-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-md="90"] { + .layout-row > .flex-md-90 { max-width: 90%; } - [layout="column"] > [flex-md="90"] { + .layout-column > .flex-md-90 { max-height: 90%; } - [flex-md="95"] { + .flex-md-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-md="95"] { + .layout-row > .flex-md-95 { max-width: 95%; } - [layout="column"] > [flex-md="95"] { + .layout-column > .flex-md-95 { max-height: 95%; } - [flex-md="100"] { + .flex-md-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-md="100"] { + .layout-row > .flex-md-100 { max-width: 100%; } - [layout="column"] > [flex-md="100"] { + .layout-column > .flex-md-100 { max-height: 100%; } - [flex-md="33"], [flex-md="34"] { + .flex-md-33, .flex-md-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-md="66"], [flex-md="67"] { + .flex-md-66, .flex-md-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-md="33"], [layout="row"] > [flex-md="34"] { + .layout-row > .flex-md-33, .layout-row > .flex-md-34 { max-width: 33.33%; } - [layout="row"] > [flex-md="66"], [layout="row"] > [flex-md="67"] { + .layout-row > .flex-md-66, .layout-row > .flex-md-67 { max-width: 66.66%; } - [layout="column"] > [flex-md="33"], [layout="column"] > [flex-md="34"] { + .layout-column > .flex-md-33, .layout-column > .flex-md-34 { max-height: 33.33%; } - [layout="column"] > [flex-md="66"], [layout="column"] > [flex-md="67"] { + .layout-column > .flex-md-66, .layout-column > .flex-md-67 { max-height: 66.66%; } } @media (min-width: 1025px) { - [flex-order-gt-md="0"] { + .flex-order-gt-md-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-md="1"] { + .flex-order-gt-md-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-md="2"] { + .flex-order-gt-md-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-md="3"] { + .flex-order-gt-md-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-md="4"] { + .flex-order-gt-md-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-md="5"] { + .flex-order-gt-md-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-md="6"] { + .flex-order-gt-md-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-md="7"] { + .flex-order-gt-md-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-md="8"] { + .flex-order-gt-md-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-md="9"] { + .flex-order-gt-md-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-md="center"], [layout-align-gt-md="center center"], - [layout-align-gt-md="center start"], - [layout-align-gt-md="center end"] { + .layout-align-gt-md-center, .layout-align-gt-md-center-center, + .layout-align-gt-md-center-start, + .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 start"], - [layout-align-gt-md="end end"] { + .layout-align-gt-md-end, .layout-align-gt-md-end-center, + .layout-align-gt-md-end-start, + .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 start"], - [layout-align-gt-md="space-around end"] { + .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 { -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 start"], - [layout-align-gt-md="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-md="center start"], - [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"] { + .layout-align-gt-md-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-md] { + .layout-gt-md { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-md=column] { + .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] { + .layout-gt-md-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-gt-md] { + .flex-gt-md { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-md="0"] { + .flex-gt-md-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-md="0"] { + .layout-row > .flex-gt-md-0 { max-width: 0%; } - [layout="column"] > [flex-gt-md="0"] { + .layout-column > .flex-gt-md-0 { max-height: 0%; } - [flex-gt-md="5"] { + .flex-gt-md-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-md="5"] { + .layout-row > .flex-gt-md-5 { max-width: 5%; } - [layout="column"] > [flex-gt-md="5"] { + .layout-column > .flex-gt-md-5 { max-height: 5%; } - [flex-gt-md="10"] { + .flex-gt-md-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-md="10"] { + .layout-row > .flex-gt-md-10 { max-width: 10%; } - [layout="column"] > [flex-gt-md="10"] { + .layout-column > .flex-gt-md-10 { max-height: 10%; } - [flex-gt-md="15"] { + .flex-gt-md-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-md="15"] { + .layout-row > .flex-gt-md-15 { max-width: 15%; } - [layout="column"] > [flex-gt-md="15"] { + .layout-column > .flex-gt-md-15 { max-height: 15%; } - [flex-gt-md="20"] { + .flex-gt-md-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-md="20"] { + .layout-row > .flex-gt-md-20 { max-width: 20%; } - [layout="column"] > [flex-gt-md="20"] { + .layout-column > .flex-gt-md-20 { max-height: 20%; } - [flex-gt-md="25"] { + .flex-gt-md-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-md="25"] { + .layout-row > .flex-gt-md-25 { max-width: 25%; } - [layout="column"] > [flex-gt-md="25"] { + .layout-column > .flex-gt-md-25 { max-height: 25%; } - [flex-gt-md="30"] { + .flex-gt-md-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-md="30"] { + .layout-row > .flex-gt-md-30 { max-width: 30%; } - [layout="column"] > [flex-gt-md="30"] { + .layout-column > .flex-gt-md-30 { max-height: 30%; } - [flex-gt-md="35"] { + .flex-gt-md-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-md="35"] { + .layout-row > .flex-gt-md-35 { max-width: 35%; } - [layout="column"] > [flex-gt-md="35"] { + .layout-column > .flex-gt-md-35 { max-height: 35%; } - [flex-gt-md="40"] { + .flex-gt-md-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-md="40"] { + .layout-row > .flex-gt-md-40 { max-width: 40%; } - [layout="column"] > [flex-gt-md="40"] { + .layout-column > .flex-gt-md-40 { max-height: 40%; } - [flex-gt-md="45"] { + .flex-gt-md-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-md="45"] { + .layout-row > .flex-gt-md-45 { max-width: 45%; } - [layout="column"] > [flex-gt-md="45"] { + .layout-column > .flex-gt-md-45 { max-height: 45%; } - [flex-gt-md="50"] { + .flex-gt-md-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-md="50"] { + .layout-row > .flex-gt-md-50 { max-width: 50%; } - [layout="column"] > [flex-gt-md="50"] { + .layout-column > .flex-gt-md-50 { max-height: 50%; } - [flex-gt-md="55"] { + .flex-gt-md-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-md="55"] { + .layout-row > .flex-gt-md-55 { max-width: 55%; } - [layout="column"] > [flex-gt-md="55"] { + .layout-column > .flex-gt-md-55 { max-height: 55%; } - [flex-gt-md="60"] { + .flex-gt-md-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-md="60"] { + .layout-row > .flex-gt-md-60 { max-width: 60%; } - [layout="column"] > [flex-gt-md="60"] { + .layout-column > .flex-gt-md-60 { max-height: 60%; } - [flex-gt-md="65"] { + .flex-gt-md-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-md="65"] { + .layout-row > .flex-gt-md-65 { max-width: 65%; } - [layout="column"] > [flex-gt-md="65"] { + .layout-column > .flex-gt-md-65 { max-height: 65%; } - [flex-gt-md="70"] { + .flex-gt-md-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-md="70"] { + .layout-row > .flex-gt-md-70 { max-width: 70%; } - [layout="column"] > [flex-gt-md="70"] { + .layout-column > .flex-gt-md-70 { max-height: 70%; } - [flex-gt-md="75"] { + .flex-gt-md-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-md="75"] { + .layout-row > .flex-gt-md-75 { max-width: 75%; } - [layout="column"] > [flex-gt-md="75"] { + .layout-column > .flex-gt-md-75 { max-height: 75%; } - [flex-gt-md="80"] { + .flex-gt-md-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-md="80"] { + .layout-row > .flex-gt-md-80 { max-width: 80%; } - [layout="column"] > [flex-gt-md="80"] { + .layout-column > .flex-gt-md-80 { max-height: 80%; } - [flex-gt-md="85"] { + .flex-gt-md-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-md="85"] { + .layout-row > .flex-gt-md-85 { max-width: 85%; } - [layout="column"] > [flex-gt-md="85"] { + .layout-column > .flex-gt-md-85 { max-height: 85%; } - [flex-gt-md="90"] { + .flex-gt-md-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-md="90"] { + .layout-row > .flex-gt-md-90 { max-width: 90%; } - [layout="column"] > [flex-gt-md="90"] { + .layout-column > .flex-gt-md-90 { max-height: 90%; } - [flex-gt-md="95"] { + .flex-gt-md-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-md="95"] { + .layout-row > .flex-gt-md-95 { max-width: 95%; } - [layout="column"] > [flex-gt-md="95"] { + .layout-column > .flex-gt-md-95 { max-height: 95%; } - [flex-gt-md="100"] { + .flex-gt-md-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-md="100"] { + .layout-row > .flex-gt-md-100 { max-width: 100%; } - [layout="column"] > [flex-gt-md="100"] { + .layout-column > .flex-gt-md-100 { max-height: 100%; } - [flex-gt-md="33"], [flex-gt-md="34"] { + .flex-gt-md-33, .flex-gt-md-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-md="66"], [flex-gt-md="67"] { + .flex-gt-md-66, .flex-gt-md-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-md="33"], [layout="row"] > [flex-gt-md="34"] { + .layout-row > .flex-gt-md-33, .layout-row > .flex-gt-md-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-md="66"], [layout="row"] > [flex-gt-md="67"] { + .layout-row > .flex-gt-md-66, .layout-row > .flex-gt-md-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-md="33"], [layout="column"] > [flex-gt-md="34"] { + .layout-column > .flex-gt-md-33, .layout-column > .flex-gt-md-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-md="66"], [layout="column"] > [flex-gt-md="67"] { + .layout-column > .flex-gt-md-66, .layout-column > .flex-gt-md-67 { max-height: 66.66%; } - [flex-order-lg="0"] { + .flex-order-lg-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-lg="1"] { + .flex-order-lg-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-lg="2"] { + .flex-order-lg-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-lg="3"] { + .flex-order-lg-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-lg="4"] { + .flex-order-lg-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-lg="5"] { + .flex-order-lg-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-lg="6"] { + .flex-order-lg-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-lg="7"] { + .flex-order-lg-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-lg="8"] { + .flex-order-lg-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-lg="9"] { + .flex-order-lg-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-lg="center"], [layout-align-lg="center center"], - [layout-align-lg="center start"], - [layout-align-lg="center end"] { + .layout-align-lg-center, .layout-align-lg-center-center, + .layout-align-lg-center-start, + .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 start"], - [layout-align-lg="end end"] { + .layout-align-lg-end, .layout-align-lg-end-center, + .layout-align-lg-end-start, + .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 start"], - [layout-align-lg="space-around end"] { + .layout-align-lg-space-around, .layout-align-lg-space-around-center, + .layout-align-lg-space-around-start, + .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 start"], - [layout-align-lg="space-between end"] { + .layout-align-lg-space-between, .layout-align-lg-space-between-center, + .layout-align-lg-space-between-start, + .layout-align-lg-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-lg="center start"], - [layout-align-lg="start start"], - [layout-align-lg="end start"], - [layout-align-lg="space-between start"], - [layout-align-lg="space-around start"] { + .layout-align-lg-center-start, + .layout-align-lg-start-start, + .layout-align-lg-end-start, + .layout-align-lg-space-between-start, + .layout-align-lg-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-lg] { + .layout-lg { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-lg=column] { + .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] { + .layout-lg-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-lg] { + .flex-lg { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-lg="0"] { + .flex-lg-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-lg="0"] { + .layout-row > .flex-lg-0 { max-width: 0%; } - [layout="column"] > [flex-lg="0"] { + .layout-column > .flex-lg-0 { max-height: 0%; } - [flex-lg="5"] { + .flex-lg-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-lg="5"] { + .layout-row > .flex-lg-5 { max-width: 5%; } - [layout="column"] > [flex-lg="5"] { + .layout-column > .flex-lg-5 { max-height: 5%; } - [flex-lg="10"] { + .flex-lg-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-lg="10"] { + .layout-row > .flex-lg-10 { max-width: 10%; } - [layout="column"] > [flex-lg="10"] { + .layout-column > .flex-lg-10 { max-height: 10%; } - [flex-lg="15"] { + .flex-lg-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-lg="15"] { + .layout-row > .flex-lg-15 { max-width: 15%; } - [layout="column"] > [flex-lg="15"] { + .layout-column > .flex-lg-15 { max-height: 15%; } - [flex-lg="20"] { + .flex-lg-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-lg="20"] { + .layout-row > .flex-lg-20 { max-width: 20%; } - [layout="column"] > [flex-lg="20"] { + .layout-column > .flex-lg-20 { max-height: 20%; } - [flex-lg="25"] { + .flex-lg-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-lg="25"] { + .layout-row > .flex-lg-25 { max-width: 25%; } - [layout="column"] > [flex-lg="25"] { + .layout-column > .flex-lg-25 { max-height: 25%; } - [flex-lg="30"] { + .flex-lg-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-lg="30"] { + .layout-row > .flex-lg-30 { max-width: 30%; } - [layout="column"] > [flex-lg="30"] { + .layout-column > .flex-lg-30 { max-height: 30%; } - [flex-lg="35"] { + .flex-lg-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-lg="35"] { + .layout-row > .flex-lg-35 { max-width: 35%; } - [layout="column"] > [flex-lg="35"] { + .layout-column > .flex-lg-35 { max-height: 35%; } - [flex-lg="40"] { + .flex-lg-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-lg="40"] { + .layout-row > .flex-lg-40 { max-width: 40%; } - [layout="column"] > [flex-lg="40"] { + .layout-column > .flex-lg-40 { max-height: 40%; } - [flex-lg="45"] { + .flex-lg-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-lg="45"] { + .layout-row > .flex-lg-45 { max-width: 45%; } - [layout="column"] > [flex-lg="45"] { + .layout-column > .flex-lg-45 { max-height: 45%; } - [flex-lg="50"] { + .flex-lg-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-lg="50"] { + .layout-row > .flex-lg-50 { max-width: 50%; } - [layout="column"] > [flex-lg="50"] { + .layout-column > .flex-lg-50 { max-height: 50%; } - [flex-lg="55"] { + .flex-lg-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-lg="55"] { + .layout-row > .flex-lg-55 { max-width: 55%; } - [layout="column"] > [flex-lg="55"] { + .layout-column > .flex-lg-55 { max-height: 55%; } - [flex-lg="60"] { + .flex-lg-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-lg="60"] { + .layout-row > .flex-lg-60 { max-width: 60%; } - [layout="column"] > [flex-lg="60"] { + .layout-column > .flex-lg-60 { max-height: 60%; } - [flex-lg="65"] { + .flex-lg-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-lg="65"] { + .layout-row > .flex-lg-65 { max-width: 65%; } - [layout="column"] > [flex-lg="65"] { + .layout-column > .flex-lg-65 { max-height: 65%; } - [flex-lg="70"] { + .flex-lg-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-lg="70"] { + .layout-row > .flex-lg-70 { max-width: 70%; } - [layout="column"] > [flex-lg="70"] { + .layout-column > .flex-lg-70 { max-height: 70%; } - [flex-lg="75"] { + .flex-lg-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-lg="75"] { + .layout-row > .flex-lg-75 { max-width: 75%; } - [layout="column"] > [flex-lg="75"] { + .layout-column > .flex-lg-75 { max-height: 75%; } - [flex-lg="80"] { + .flex-lg-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-lg="80"] { + .layout-row > .flex-lg-80 { max-width: 80%; } - [layout="column"] > [flex-lg="80"] { + .layout-column > .flex-lg-80 { max-height: 80%; } - [flex-lg="85"] { + .flex-lg-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-lg="85"] { + .layout-row > .flex-lg-85 { max-width: 85%; } - [layout="column"] > [flex-lg="85"] { + .layout-column > .flex-lg-85 { max-height: 85%; } - [flex-lg="90"] { + .flex-lg-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-lg="90"] { + .layout-row > .flex-lg-90 { max-width: 90%; } - [layout="column"] > [flex-lg="90"] { + .layout-column > .flex-lg-90 { max-height: 90%; } - [flex-lg="95"] { + .flex-lg-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-lg="95"] { + .layout-row > .flex-lg-95 { max-width: 95%; } - [layout="column"] > [flex-lg="95"] { + .layout-column > .flex-lg-95 { max-height: 95%; } - [flex-lg="100"] { + .flex-lg-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-lg="100"] { + .layout-row > .flex-lg-100 { max-width: 100%; } - [layout="column"] > [flex-lg="100"] { + .layout-column > .flex-lg-100 { max-height: 100%; } - [flex-lg="33"], [flex-lg="34"] { + .flex-lg-33, .flex-lg-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-lg="66"], [flex-lg="67"] { + .flex-lg-66, .flex-lg-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-lg="33"], [layout="row"] > [flex-lg="34"] { + .layout-row > .flex-lg-33, .layout-row > .flex-lg-34 { max-width: 33.33%; } - [layout="row"] > [flex-lg="66"], [layout="row"] > [flex-lg="67"] { + .layout-row > .flex-lg-66, .layout-row > .flex-lg-67 { max-width: 66.66%; } - [layout="column"] > [flex-lg="33"], [layout="column"] > [flex-lg="34"] { + .layout-column > .flex-lg-33, .layout-column > .flex-lg-34 { max-height: 33.33%; } - [layout="column"] > [flex-lg="66"], [layout="column"] > [flex-lg="67"] { + .layout-column > .flex-lg-66, .layout-column > .flex-lg-67 { max-height: 66.66%; } } @media (min-width: 1025px) { @@ -5049,341 +5033,341 @@ html * { @media (min-width: 1281px) { .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"] { + .flex-order-gt-lg-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; -ms-flex-order: 0; order: 0; } - [flex-order-gt-lg="1"] { + .flex-order-gt-lg-1 { -webkit-box-ordinal-group: 2; -webkit-order: 1; -ms-flex-order: 1; order: 1; } - [flex-order-gt-lg="2"] { + .flex-order-gt-lg-2 { -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; order: 2; } - [flex-order-gt-lg="3"] { + .flex-order-gt-lg-3 { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; order: 3; } - [flex-order-gt-lg="4"] { + .flex-order-gt-lg-4 { -webkit-box-ordinal-group: 5; -webkit-order: 4; -ms-flex-order: 4; order: 4; } - [flex-order-gt-lg="5"] { + .flex-order-gt-lg-5 { -webkit-box-ordinal-group: 6; -webkit-order: 5; -ms-flex-order: 5; order: 5; } - [flex-order-gt-lg="6"] { + .flex-order-gt-lg-6 { -webkit-box-ordinal-group: 7; -webkit-order: 6; -ms-flex-order: 6; order: 6; } - [flex-order-gt-lg="7"] { + .flex-order-gt-lg-7 { -webkit-box-ordinal-group: 8; -webkit-order: 7; -ms-flex-order: 7; order: 7; } - [flex-order-gt-lg="8"] { + .flex-order-gt-lg-8 { -webkit-box-ordinal-group: 9; -webkit-order: 8; -ms-flex-order: 8; order: 8; } - [flex-order-gt-lg="9"] { + .flex-order-gt-lg-9 { -webkit-box-ordinal-group: 10; -webkit-order: 9; -ms-flex-order: 9; order: 9; } - [layout-align-gt-lg="center"], [layout-align-gt-lg="center center"], - [layout-align-gt-lg="center start"], - [layout-align-gt-lg="center end"] { + .layout-align-gt-lg-center, .layout-align-gt-lg-center-center, + .layout-align-gt-lg-center-start, + .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 start"], - [layout-align-gt-lg="end end"] { + .layout-align-gt-lg-end, .layout-align-gt-lg-end-center, + .layout-align-gt-lg-end-start, + .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 start"], - [layout-align-gt-lg="space-around end"] { + .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 { -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 start"], - [layout-align-gt-lg="space-between end"] { + .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 { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - [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"] { + .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 { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; } - [layout-align-gt-lg="center start"], - [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"] { + .layout-align-gt-lg-center-start, + .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 { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; align-items: flex-start; } - [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"] { + .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 { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - [layout-gt-lg] { + .layout-gt-lg { box-sizing: border-box; display: -webkit-box; display: -webkit-flex; display: -moz-flex; display: -ms-flexbox; display: flex; } - [layout-gt-lg=column] { + .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] { + .layout-gt-lg-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } - [flex-gt-lg] { + .flex-gt-lg { box-sizing: border-box; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; flex: 1; } - [flex-gt-lg="0"] { + .flex-gt-lg-0 { -webkit-box-flex: 0; -webkit-flex: 0 0 0%; -ms-flex: 0 0 0%; flex: 0 0 0%; } - [layout="row"] > [flex-gt-lg="0"] { + .layout-row > .flex-gt-lg-0 { max-width: 0%; } - [layout="column"] > [flex-gt-lg="0"] { + .layout-column > .flex-gt-lg-0 { max-height: 0%; } - [flex-gt-lg="5"] { + .flex-gt-lg-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; flex: 0 0 5%; } - [layout="row"] > [flex-gt-lg="5"] { + .layout-row > .flex-gt-lg-5 { max-width: 5%; } - [layout="column"] > [flex-gt-lg="5"] { + .layout-column > .flex-gt-lg-5 { max-height: 5%; } - [flex-gt-lg="10"] { + .flex-gt-lg-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; flex: 0 0 10%; } - [layout="row"] > [flex-gt-lg="10"] { + .layout-row > .flex-gt-lg-10 { max-width: 10%; } - [layout="column"] > [flex-gt-lg="10"] { + .layout-column > .flex-gt-lg-10 { max-height: 10%; } - [flex-gt-lg="15"] { + .flex-gt-lg-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; flex: 0 0 15%; } - [layout="row"] > [flex-gt-lg="15"] { + .layout-row > .flex-gt-lg-15 { max-width: 15%; } - [layout="column"] > [flex-gt-lg="15"] { + .layout-column > .flex-gt-lg-15 { max-height: 15%; } - [flex-gt-lg="20"] { + .flex-gt-lg-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; flex: 0 0 20%; } - [layout="row"] > [flex-gt-lg="20"] { + .layout-row > .flex-gt-lg-20 { max-width: 20%; } - [layout="column"] > [flex-gt-lg="20"] { + .layout-column > .flex-gt-lg-20 { max-height: 20%; } - [flex-gt-lg="25"] { + .flex-gt-lg-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; flex: 0 0 25%; } - [layout="row"] > [flex-gt-lg="25"] { + .layout-row > .flex-gt-lg-25 { max-width: 25%; } - [layout="column"] > [flex-gt-lg="25"] { + .layout-column > .flex-gt-lg-25 { max-height: 25%; } - [flex-gt-lg="30"] { + .flex-gt-lg-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; flex: 0 0 30%; } - [layout="row"] > [flex-gt-lg="30"] { + .layout-row > .flex-gt-lg-30 { max-width: 30%; } - [layout="column"] > [flex-gt-lg="30"] { + .layout-column > .flex-gt-lg-30 { max-height: 30%; } - [flex-gt-lg="35"] { + .flex-gt-lg-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; flex: 0 0 35%; } - [layout="row"] > [flex-gt-lg="35"] { + .layout-row > .flex-gt-lg-35 { max-width: 35%; } - [layout="column"] > [flex-gt-lg="35"] { + .layout-column > .flex-gt-lg-35 { max-height: 35%; } - [flex-gt-lg="40"] { + .flex-gt-lg-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; flex: 0 0 40%; } - [layout="row"] > [flex-gt-lg="40"] { + .layout-row > .flex-gt-lg-40 { max-width: 40%; } - [layout="column"] > [flex-gt-lg="40"] { + .layout-column > .flex-gt-lg-40 { max-height: 40%; } - [flex-gt-lg="45"] { + .flex-gt-lg-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; flex: 0 0 45%; } - [layout="row"] > [flex-gt-lg="45"] { + .layout-row > .flex-gt-lg-45 { max-width: 45%; } - [layout="column"] > [flex-gt-lg="45"] { + .layout-column > .flex-gt-lg-45 { max-height: 45%; } - [flex-gt-lg="50"] { + .flex-gt-lg-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; flex: 0 0 50%; } - [layout="row"] > [flex-gt-lg="50"] { + .layout-row > .flex-gt-lg-50 { max-width: 50%; } - [layout="column"] > [flex-gt-lg="50"] { + .layout-column > .flex-gt-lg-50 { max-height: 50%; } - [flex-gt-lg="55"] { + .flex-gt-lg-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; flex: 0 0 55%; } - [layout="row"] > [flex-gt-lg="55"] { + .layout-row > .flex-gt-lg-55 { max-width: 55%; } - [layout="column"] > [flex-gt-lg="55"] { + .layout-column > .flex-gt-lg-55 { max-height: 55%; } - [flex-gt-lg="60"] { + .flex-gt-lg-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; flex: 0 0 60%; } - [layout="row"] > [flex-gt-lg="60"] { + .layout-row > .flex-gt-lg-60 { max-width: 60%; } - [layout="column"] > [flex-gt-lg="60"] { + .layout-column > .flex-gt-lg-60 { max-height: 60%; } - [flex-gt-lg="65"] { + .flex-gt-lg-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; flex: 0 0 65%; } - [layout="row"] > [flex-gt-lg="65"] { + .layout-row > .flex-gt-lg-65 { max-width: 65%; } - [layout="column"] > [flex-gt-lg="65"] { + .layout-column > .flex-gt-lg-65 { max-height: 65%; } - [flex-gt-lg="70"] { + .flex-gt-lg-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; flex: 0 0 70%; } - [layout="row"] > [flex-gt-lg="70"] { + .layout-row > .flex-gt-lg-70 { max-width: 70%; } - [layout="column"] > [flex-gt-lg="70"] { + .layout-column > .flex-gt-lg-70 { max-height: 70%; } - [flex-gt-lg="75"] { + .flex-gt-lg-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; flex: 0 0 75%; } - [layout="row"] > [flex-gt-lg="75"] { + .layout-row > .flex-gt-lg-75 { max-width: 75%; } - [layout="column"] > [flex-gt-lg="75"] { + .layout-column > .flex-gt-lg-75 { max-height: 75%; } - [flex-gt-lg="80"] { + .flex-gt-lg-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; flex: 0 0 80%; } - [layout="row"] > [flex-gt-lg="80"] { + .layout-row > .flex-gt-lg-80 { max-width: 80%; } - [layout="column"] > [flex-gt-lg="80"] { + .layout-column > .flex-gt-lg-80 { max-height: 80%; } - [flex-gt-lg="85"] { + .flex-gt-lg-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; flex: 0 0 85%; } - [layout="row"] > [flex-gt-lg="85"] { + .layout-row > .flex-gt-lg-85 { max-width: 85%; } - [layout="column"] > [flex-gt-lg="85"] { + .layout-column > .flex-gt-lg-85 { max-height: 85%; } - [flex-gt-lg="90"] { + .flex-gt-lg-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; flex: 0 0 90%; } - [layout="row"] > [flex-gt-lg="90"] { + .layout-row > .flex-gt-lg-90 { max-width: 90%; } - [layout="column"] > [flex-gt-lg="90"] { + .layout-column > .flex-gt-lg-90 { max-height: 90%; } - [flex-gt-lg="95"] { + .flex-gt-lg-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; flex: 0 0 95%; } - [layout="row"] > [flex-gt-lg="95"] { + .layout-row > .flex-gt-lg-95 { max-width: 95%; } - [layout="column"] > [flex-gt-lg="95"] { + .layout-column > .flex-gt-lg-95 { max-height: 95%; } - [flex-gt-lg="100"] { + .flex-gt-lg-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; flex: 0 0 100%; } - [layout="row"] > [flex-gt-lg="100"] { + .layout-row > .flex-gt-lg-100 { max-width: 100%; } - [layout="column"] > [flex-gt-lg="100"] { + .layout-column > .flex-gt-lg-100 { max-height: 100%; } - [flex-gt-lg="33"], [flex-gt-lg="34"] { + .flex-gt-lg-33, .flex-gt-lg-34 { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } - [flex-gt-lg="66"], [flex-gt-lg="67"] { + .flex-gt-lg-66, .flex-gt-lg-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 66.66%; -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } - [layout="row"] > [flex-gt-lg="33"], [layout="row"] > [flex-gt-lg="34"] { + .layout-row > .flex-gt-lg-33, .layout-row > .flex-gt-lg-34 { max-width: 33.33%; } - [layout="row"] > [flex-gt-lg="66"], [layout="row"] > [flex-gt-lg="67"] { + .layout-row > .flex-gt-lg-66, .layout-row > .flex-gt-lg-67 { max-width: 66.66%; } - [layout="column"] > [flex-gt-lg="33"], [layout="column"] > [flex-gt-lg="34"] { + .layout-column > .flex-gt-lg-33, .layout-column > .flex-gt-lg-34 { max-height: 33.33%; } - [layout="column"] > [flex-gt-lg="66"], [layout="column"] > [flex-gt-lg="67"] { + .layout-column > .flex-gt-lg-66, .layout-column > .flex-gt-lg-67 { max-height: 66.66%; } } .md-flex { @@ -6099,14 +6083,17 @@ md-autocomplete { md-autocomplete li:focus { color: #fff; } } -.md-autocomplete-suggestions { +.md-virtual-repeat-container.md-autocomplete-suggestions-container { position: absolute; - margin: 0; - list-style: none; - padding: 0; - overflow: auto; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25); + height: 225.5px; max-height: 225.5px; z-index: 100; } + +.md-autocomplete-suggestions { + margin: 0; + list-style: none; + padding: 0; } .md-autocomplete-suggestions li { cursor: pointer; font-size: 14px; @@ -6119,18 +6106,6 @@ md-autocomplete { margin: 0; white-space: nowrap; text-overflow: ellipsis; } - .md-autocomplete-suggestions li.ng-enter, - .md-autocomplete-suggestions li.ng-hide-remove { - -webkit-transition: none; - transition: none; - -webkit-animation: md-autocomplete-list-in 0.2s; - animation: md-autocomplete-list-in 0.2s; } - .md-autocomplete-suggestions li.ng-leave, - .md-autocomplete-suggestions li.ng-hide-add { - -webkit-transition: none; - transition: none; - -webkit-animation: md-autocomplete-list-out 0.2s; - animation: md-autocomplete-list-out 0.2s; } .md-autocomplete-suggestions li:focus { outline: none; } @@ -6151,6 +6126,7 @@ md-backdrop { left: 0; right: 0; } md-backdrop.md-menu-backdrop { + position: fixed !important; z-index: 98; } md-backdrop.md-select-backdrop { z-index: 81; @@ -6213,217 +6189,6 @@ md-backdrop { to { opacity: 0; } } -/*! bottomSheet/_extends.scss - */ -md-bottom-sheet { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 8px 16px 88px 16px; - z-index: 70; - border-top-width: 1px; - border-top-style: solid; - -webkit-transform: translate3d(0, 80px, 0); - transform: translate3d(0, 80px, 0); - -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - -webkit-transition-property: -webkit-transform; - transition-property: transform; } - md-bottom-sheet.md-has-header { - padding-top: 0; } - md-bottom-sheet.ng-enter { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); } - md-bottom-sheet.ng-enter-active { - opacity: 1; - display: block; - -webkit-transform: translate3d(0, 80px, 0) !important; - transform: translate3d(0, 80px, 0) !important; } - md-bottom-sheet.ng-leave-active { - -webkit-transform: translate3d(0, 100%, 0) !important; - transform: translate3d(0, 100%, 0) !important; - -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); - transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } - md-bottom-sheet .md-subheader { - background-color: transparent; - font-family: "Fira sans", "Helvetica Neue", sans-serif; - line-height: 56px; - padding: 0; - white-space: nowrap; } - md-bottom-sheet md-inline-icon { - display: inline-block; - height: 24px; - width: 24px; - fill: #444; } - md-bottom-sheet md-list-item { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - outline: none; } - md-bottom-sheet md-list-item:hover { - cursor: pointer; } - md-bottom-sheet.md-list md-list-item { - padding: 0; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - height: 48px; } - md-bottom-sheet.md-list md-list-item div.md-icon-container { - display: inline-block; - height: 24px; - margin-right: 32px; } - md-bottom-sheet.md-grid { - padding-left: 24px; - padding-right: 24px; - padding-top: 0; } - md-bottom-sheet.md-grid md-list { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -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-transition: all 0.5s; - transition: all 0.5s; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; } - md-bottom-sheet.md-grid md-list-item { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-transition: all 0.5s; - transition: all 0.5s; - height: 96px; - margin-top: 8px; - margin-bottom: 8px; - /* Mixin for how many grid items to show per row */ } - @media screen and (max-width: 600px) { - md-bottom-sheet.md-grid md-list-item { - -webkit-box-flex: 1; - -webkit-flex: 1 1 33.3333333333%; - -ms-flex: 1 1 33.3333333333%; - flex: 1 1 33.3333333333%; - max-width: 33.3333333333%; } - md-bottom-sheet.md-grid md-list-item:nth-of-type(3n + 1) { - -webkit-box-align: start; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; } - md-bottom-sheet.md-grid md-list-item:nth-of-type(3n) { - -webkit-box-align: end; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; } } - @media screen and (min-width: 600px) and (max-width: 1024px) { - md-bottom-sheet.md-grid md-list-item { - -webkit-box-flex: 1; - -webkit-flex: 1 1 25%; - -ms-flex: 1 1 25%; - flex: 1 1 25%; - max-width: 25%; } } - @media screen and (min-width: 1024px) and (max-width: 1280px) { - md-bottom-sheet.md-grid md-list-item { - -webkit-box-flex: 1; - -webkit-flex: 1 1 16.6666666667%; - -ms-flex: 1 1 16.6666666667%; - flex: 1 1 16.6666666667%; - max-width: 16.6666666667%; } } - @media screen and (min-width: 1280px) { - md-bottom-sheet.md-grid md-list-item { - -webkit-box-flex: 1; - -webkit-flex: 1 1 14.2857142857%; - -ms-flex: 1 1 14.2857142857%; - flex: 1 1 14.2857142857%; - max-width: 14.2857142857%; } } - md-bottom-sheet.md-grid md-list-item .md-list-item-content { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - width: 48px; - padding-bottom: 16px; } - md-bottom-sheet.md-grid md-list-item .md-grid-item-content { - border: 1px solid transparent; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - width: 80px; } - md-bottom-sheet.md-grid md-list-item .md-icon-container { - display: inline-block; - box-sizing: border-box; - height: 48px; - width: 48px; - margin: 0 0; } - md-bottom-sheet.md-grid md-list-item .md-grid-text { - font-weight: 400; - line-height: 16px; - font-size: 13px; - margin: 0; - white-space: nowrap; - width: 64px; - text-align: center; - text-transform: none; - padding-top: 8px; } - -@media screen and (-ms-high-contrast: active) { - md-bottom-sheet { - border: 1px solid #fff; } } - -md-bottom-sheet.md-default-theme { - border: none; - background-color: inherit; - background-blend-mode: multiply; } - -md-bottom-sheet md-list-item md-icon { - margin-right: 32px; - vertical-align: text-bottom; } - -md-bottom-sheet.md-default-theme .md-button.md-default-theme:hover:not([disabled]), -md-bottom-sheet.md-default-theme .md-button.md-default-theme:hover:not([disabled]) md-icon { - background-color: inherit; - background-blend-mode: multiply; - color: #639997; } - -md-bottom-sheet.md-default-theme .md-button.md-default-theme[disabled] { - padding: 6px; - text-transform: uppercase; } - /*! button/_extends.scss - */ .md-button { border-radius: 3px; @@ -6958,7 +6723,7 @@ md-sidenav md-checkbox { /*! chips/_extends.scss - */ .md-contact-chips .md-chips .md-chip { - padding: 0 8px 0 0; } + padding: 0 25px 0 0; } .md-contact-chips .md-chips .md-chip .md-contact-avatar { float: left; } .md-contact-chips .md-chips .md-chip .md-contact-avatar img { @@ -6996,8 +6761,10 @@ md-sidenav md-checkbox { content: ''; display: table; clear: both; } - .md-chips:not('.md-readonly') { + .md-chips:not(.md-readonly) { cursor: text; } + .md-chips:not(.md-readonly) .md-chip { + padding-right: 22px; } .md-chips .md-chip { cursor: default; border-radius: 16px; @@ -7005,10 +6772,11 @@ md-sidenav md-checkbox { height: 32px; line-height: 32px; margin: 8px 8px 0 0; - padding: 0 8px 0 12px; + padding: 0 12px 0 12px; float: left; box-sizing: border-box; - max-width: 100%; } + max-width: 100%; + position: relative; } .md-chips .md-chip .md-chip-content { display: block; padding-right: 4px; @@ -7020,8 +6788,9 @@ md-sidenav md-checkbox { .md-chips .md-chip .md-chip-content:focus { outline: none; } .md-chips .md-chip .md-chip-remove-container { - display: inline-block; - margin-right: -5px; } + position: absolute; + right: 0; + line-height: 22px; } .md-chips .md-chip .md-chip-remove { text-align: center; width: 32px; @@ -7045,7 +6814,7 @@ md-sidenav md-checkbox { display: block; line-height: 32px; margin: 8px 8px 0 0; - padding: 0 8px 0 12px; + padding: 0 12px 0 12px; float: left; } .md-chips .md-chip-input-container input:not([type]), .md-chips .md-chip-input-container input[type="email"], .md-chips .md-chip-input-container input[type="number"], .md-chips .md-chip-input-container input[type="tel"], .md-chips .md-chip-input-container input[type="url"], .md-chips .md-chip-input-container input[type="text"] { border: 0; @@ -7162,16 +6931,19 @@ md-calendar { padding-left: 16px; } .md-calendar-date:last-child { padding-right: 16px; } + .md-calendar-date.md-calendar-date-disabled { + cursor: default; } .md-calendar-date-selection-indicator { -webkit-transition: background-color, color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); transition: background-color, color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); border-radius: 50%; display: inline-block; - cursor: pointer; width: 40px; height: 40px; line-height: 40px; } + .md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator { + cursor: pointer; } .md-calendar-month-label { height: 44px; @@ -8573,8 +8345,7 @@ div.md-tile-left, div.md-tile-left-card:before, div.sg-avatar:before, div.md-til top: 0; z-index: 99; opacity: 0; - border-radius: 2px; - overflow: hidden; } + border-radius: 2px; } .md-open-menu-container md-menu-divider { margin-top: 4px; margin-bottom: 4px; @@ -8621,7 +8392,8 @@ md-menu-content { md-menu-content.md-dense { max-height: 208px; } md-menu-content.md-dense md-menu-item { - height: 32px; } + height: 32px; + min-height: 0px; } md-menu-item { display: -webkit-box; @@ -9475,6 +9247,7 @@ md-sidenav { md-sidenav md-content, .md-sidenav-left md-toolbar, md-sidenav md-toolbar { background-color: inherit; + background-image: url("../img/cardboard-transp.png"); background-blend-mode: multiply; } .md-sidenav-left md-toolbar, md-sidenav md-toolbar { @@ -9820,13 +9593,6 @@ md-slider { transition: 0.2s ease-out margin; } .md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader { margin: 0; } - .md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader:after { - position: absolute; - left: 0; - bottom: 0; - top: 0; - right: -16px; - content: ''; } .md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone { z-index: 2; } .md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state="active"] { @@ -9844,8 +9610,10 @@ md-slider { margin-right: 16px; position: relative; } .md-subheader .md-subheader-inner { + display: block; padding: 16px 0px 16px 16px; } .md-subheader .md-subheader-content { + display: block; z-index: 1; position: relative; } @@ -10425,6 +10193,12 @@ md-toolbar { md-toolbar.md-whiteframe-z1-add, md-toolbar.md-whiteframe-z1-remove { -webkit-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; } + md-toolbar md-toolbar-filler { + width: 72px; } + md-toolbar *, + md-toolbar *:before, + md-toolbar *:after { + box-sizing: border-box; } md-toolbar.md-tall { height: 128px; min-height: 128px; @@ -10437,7 +10211,7 @@ md-toolbar { height: 48px; min-height: 48px; max-height: 48px; } - md-toolbar .md-indent { + md-toolbar > .md-indent { margin-left: 64px; } md-toolbar ~ md-content > md-list { padding: 0; } @@ -10515,6 +10289,7 @@ md-toolbar { md-toolbar { z-index: 10; font-size: 1em !important; + background-image: url("../img/felt-transp.png"); background-blend-mode: luminosity; box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.14), 0px 2px 2px 0px rgba(0, 0, 0, 0.098), 0px 1px 5px 0px rgba(0, 0, 0, 0.084); } @@ -11655,7 +11430,8 @@ textarea.plain-text { .attendees md-list .quarter.event { background-color: #bfe0dd; } -.view[layout=row] { +.view[layout=row], +.view.layout-row { max-height: 100%; } [class|="view"] { @@ -11825,21 +11601,4 @@ main { -webkit-transform: translateY(-10%); -ms-transform: translateY(-10%); transform: translateY(-10%); } - -html.dev.guide::after { - display: block; - position: absolute; - top: 0; - left: 0; - background-image: -webkit-linear-gradient(0deg, rgba(0, 255, 255, 0.1) 0, rgba(0, 255, 255, 0.1) 80%, transparent 80%); - background-image: linear-gradient(90deg, rgba(0, 255, 255, 0.1) 0, rgba(0, 255, 255, 0.1) 80%, transparent 80%); - background-size: 64px 64px; - background-repeat-x: repeat; - width: 100%; - height: 100%; - content: " "; - z-index: 1000; } - -.md-tile-left, .md-tile-left-card:before, .sg-avatar:before, .md-tile-left-list:before, .sg-list-avatar:before, .md-tile-left-selected:before, .sg-selected-avatar:before, .md-tile-left-accepted:before, .sg-accepted:before, .md-tile-left-declined:before, .sg-declined:before, .md-tile-left-delegated:before, .sg-delegated:before, .md-tile-left-needs-action:before, .sg-needs-action:before, .md-tile-left-tentative:before, .sg-tentative:before { - background-color: rgba(224, 255, 255, 0.5); } /*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/UI/WebServerResources/css/styles.css.map b/UI/WebServerResources/css/styles.css.map index 772c5faa5..70f63c92d 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/style/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/backdrop/_extends.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/components/backdrop/backdrop.scss","../scss/components/bottomSheet/_extends.scss","../angular-material/src/components/bottomSheet/bottomSheet.scss","../scss/components/bottomSheet/bottomSheet.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/gridList.scss","../scss/components/gridList/gridList.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/progressLinear/_extends.scss","../angular-material/src/components/progressLinear/progressLinear.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/virtualRepeater.scss","../scss/components/virtualRepeat/virtualRepeat.scss","../scss/components/whiteframe/_extends.scss","../angular-material/src/components/whiteframe/whiteframe.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","../scss/_devtools.scss"],"names":[],"mappings":"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;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;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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","../scss/core/_functions.scss","../angular-material/src/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/progressLinear/_extends.scss","../angular-material/src/components/progressLinear/progress-linear.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/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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AAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WA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","file":"styles.css"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index ab823cda8..b3214a9f6 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,3 +1,3 @@ -function l(){var key=arguments[0],value=key;labels[key]?value=labels[key]:clabels[key]&&(value=clabels[key]);for(var i=1,j=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=wavatar"):""}}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",replace:!0,scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){email&&!vm.url&&(vm.url=Gravatar(email,vm.size))}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)})}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(function(){scope.$eval(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 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(){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(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})}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),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;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=wavatar"):""}}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",replace:!0,scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){email&&!vm.url&&(vm.url=Gravatar(email,vm.size))}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)})}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(function(){scope.$eval(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 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(){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(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})}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function sgTarget(){function sgTargetLink(scope,element,attrs){console.log("sgTargetLink...");var ensureTargetRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgTarget)},function(value){element.html(value),ensureTargetRunsOnce()})}return{priority:1,restrict:"A",link:sgTargetLink}}angular.module("SOGo.Common").directive("sgTarget",sgTarget)}(),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 77ef651c2..5d36d1809 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/decodeUri.filter.js","Common/encodeUri.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/sgSearch.directive.js","Common/sgSubscribe.directive.js","Common/sgToggleGrid.directive.js"],"names":["l","key","arguments","value","labels","clabels","i","j","length","replace","configure","$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","angular","module","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","decodeUri","$window","decodeURIComponent","filter","encodeUri","encodeURIComponent","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","$log","sgConstant","sgSettings","Alarm","currentDay","window","get","success","secondsBeforeTomorrow","toggleLeft","toggle","debug","toggleRight","openBottomSheet","show","parent","element","document","getElementById","templateUrl","toggleDetailView","detail","toggleClass","$watch","newVal","isGtMedium","getAlarms","Acl","folderId","factory","$q","Settings","Resource","extend","$$resource","$User","prototype","$users","_this","deferred","defer","resolve","promise","fetch","response","forEach","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","pluck","userClass","isGroup","reject","splice","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","save","$shadowRights","copy","rights","uids","join","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","position","hideDelay","template","summary","locals","Authentication","readCookie","name","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","title","content","confirm","options","prompt","label","PromptDialogController","o","body","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","index","compareUids","find","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","bindToController","controllerAs","sgAvatarImageController","$element","attributes","directive","sgColorPicker","$parse","link","iElement","iAttr","doSelect","attr","sgColorPickerController","sgColors","colors","select","color","sgCompile","$compile","sgCompileLink","attrs","ensureCompileRunsOnce","$eval","html","contents","sgEnter","ENTER_KEY","event","which","$apply","preventDefault","sgEscape","ESCAPE_KEY","elem","keyCode","sgFocusOn","$on","e","focus","sgFolderStylesheet","require","ngModel","sgSearchPreTransclude","compile","tElement","tAttr","inputEl","selectEl","buttonEl","removeAttr","compiledButtonEl","doSearch","on","cancelSearch","priority","sgSearch","transclude","clone","append","sgSearchController","previous","searchField","searchTextOptions","updateOn","debounce","blur","onChange","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","sgSubscribeController","selectFolder","folderData","sgToggleGrid","ctrl","day","findIndex","modelDays","modelAttr","tile","ensureInitRunsOnce","tiles","days","isDefined","flattenedDays","sgToggleGridAttr","contains","addClass","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","t","Array","B","J","P","h","E","v","g","Y","X","W","V","C","S","Q","N","M","A","z","w","m","U","T","R","O","toLowerCase","capitalize","toUpperCase","slice","asDate","newDate","date","formatTime","hours","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","setHours","setMinutes","setSeconds","setMilliseconds","beginOfWeek","offset","firstDayOfWeek","getDay","endOfWeek","getDayString","getHourString","getHours"],"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', ['ngMaterial'])\n .value('sgSettings', {\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 configure.$inject = ['$mdThemingProvider'];\n function configure($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 // .primaryColor will soon be deprecated in favor of primaryPalette (already on dev builds https://groups.google.com/forum/m/#!topic/ngmaterial/-sXR8CYBMPg)\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('sogo-paper', {\n 'default': '100',\n 'hue-1': '200',\n 'hue-2': '50',\n 'hue-3': '500'\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 * 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.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=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 replace: true,\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\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 if (email && !vm.url) {\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\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(function() {\n scope.$eval(attrs.sgEnter);\n });\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 /* 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 (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 = ['folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController(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\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgToggleGrid - Convert the tiles of a grid to toggle buttons\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgToggleGrid - the model of the source objects\n * @param {string} [sgToggleGridAttr] - the attribute that specifies if an object is enabled (toggled)\n * @ngInject\n * @example:\n\n ..\n */\n sgToggleGrid.$inject = ['$parse'];\n function sgToggleGrid($parse) {\n return {\n restrict: 'A',\n link: link\n };\n\n function link(scope, iElement, attrs, ctrl) {\n var tiles = iElement.find('md-grid-tile'),\n tile,\n i,\n modelDays,\n modelAttr,\n ensureInitRunsOnce,\n toggleClass;\n\n ensureInitRunsOnce = scope.$watch(function() {\n // Parse attribute until it returns a valid object\n return $parse(attrs.sgToggleGrid)(scope);\n }, function(days) {\n if (angular.isDefined(days)) {\n var flattenedDays = days;\n modelDays = days;\n if (attrs.sgToggleGridAttr) {\n modelAttr = attrs.sgToggleGridAttr;\n flattenedDays = _.pluck(days, attrs.sgToggleGridAttr);\n }\n _.each(tiles, function(o) {\n var tile = angular.element(o);\n if (_.contains(flattenedDays, tile.attr('value'))) {\n tile.addClass('sg-active');\n }\n });\n ensureInitRunsOnce();\n }\n });\n\n toggleClass = function() {\n // Toggle class on click event and call toggle function\n var tile = angular.element(this),\n day = tile.attr('value');\n tile.toggleClass('sg-active');\n toggle(day);\n };\n\n for (i = 0; i < tiles.length; i++) {\n tile = angular.element(tiles[i]);\n tile.addClass('iconButton');\n tile.find('figure').addClass('md-icon');\n tile.on('click', toggleClass);\n }\n\n function toggle(day) {\n var i = _.findIndex(modelDays, function(o) {\n if (modelAttr)\n return o[modelAttr] == day;\n else\n return o == day;\n });\n if (i < 0) {\n if (modelAttr) {\n var o = {};\n o[modelAttr] = day;\n modelDays.push(o);\n }\n else\n modelDays.push(day);\n }\n else\n modelDays.splice(i, 1);\n }\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgToggleGrid', sgToggleGrid);\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Common.js","sources":["Common/utils.js","Common/Common.app.js","Common/decodeUri.filter.js","Common/encodeUri.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/sgSearch.directive.js","Common/sgSubscribe.directive.js","Common/sgTarget.directive.js","Common/sgToggleGrid.directive.js"],"names":["l","key","arguments","value","labels","clabels","i","j","length","replace","configure","$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","angular","module","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","decodeUri","$window","decodeURIComponent","filter","encodeUri","encodeURIComponent","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","$log","sgConstant","sgSettings","Alarm","currentDay","window","get","success","secondsBeforeTomorrow","toggleLeft","toggle","debug","toggleRight","openBottomSheet","show","parent","element","document","getElementById","templateUrl","toggleDetailView","detail","toggleClass","$watch","newVal","isGtMedium","getAlarms","Acl","folderId","factory","$q","Settings","Resource","extend","$$resource","$User","prototype","$users","_this","deferred","defer","resolve","promise","fetch","response","forEach","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","pluck","userClass","isGroup","reject","splice","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","save","$shadowRights","copy","rights","uids","join","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","position","hideDelay","template","summary","locals","Authentication","readCookie","name","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","title","content","confirm","options","prompt","label","PromptDialogController","o","body","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","index","compareUids","find","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","bindToController","controllerAs","sgAvatarImageController","$element","attributes","directive","sgColorPicker","$parse","link","iElement","iAttr","doSelect","attr","sgColorPickerController","sgColors","colors","select","color","sgCompile","$compile","sgCompileLink","attrs","ensureCompileRunsOnce","$eval","html","contents","sgEnter","ENTER_KEY","event","which","$apply","preventDefault","sgEscape","ESCAPE_KEY","elem","keyCode","sgFocusOn","$on","e","focus","sgFolderStylesheet","require","ngModel","sgSearchPreTransclude","compile","tElement","tAttr","inputEl","selectEl","buttonEl","removeAttr","compiledButtonEl","doSearch","on","cancelSearch","priority","sgSearch","transclude","clone","append","sgSearchController","previous","searchField","searchTextOptions","updateOn","debounce","blur","onChange","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","sgSubscribeController","selectFolder","folderData","sgTarget","sgTargetLink","console","log","ensureTargetRunsOnce","sgToggleGrid","ctrl","day","findIndex","modelDays","modelAttr","tile","ensureInitRunsOnce","tiles","days","isDefined","flattenedDays","sgToggleGridAttr","contains","addClass","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","t","Array","B","J","P","h","E","v","g","Y","X","W","V","C","S","Q","N","M","A","z","w","m","U","T","R","O","toLowerCase","capitalize","toUpperCase","slice","asDate","newDate","date","formatTime","hours","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","setHours","setMinutes","setSeconds","setMilliseconds","beginOfWeek","offset","firstDayOfWeek","getDay","endOfWeek","getDayString","getHourString","getHours"],"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', ['ngMaterial'])\n .value('sgSettings', {\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 configure.$inject = ['$mdThemingProvider'];\n function configure($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 // .primaryColor will soon be deprecated in favor of primaryPalette (already on dev builds https://groups.google.com/forum/m/#!topic/ngmaterial/-sXR8CYBMPg)\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('sogo-paper', {\n 'default': '100',\n 'hue-1': '200',\n 'hue-2': '50',\n 'hue-3': '500'\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 * 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.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=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 replace: true,\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\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 if (email && !vm.url) {\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\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(function() {\n scope.$eval(attrs.sgEnter);\n });\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 /* 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 (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 = ['folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController(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\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgTarget - Replace target for in DOM.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgTarget - the expression to process\n * @ngInject\n * @example:\n\n
\n */\n function sgTarget() {\n return {\n priority: 1,\n restrict: 'A',\n link: sgTargetLink\n };\n\n function sgTargetLink(scope, element, attrs) {\n console.log(\"sgTargetLink...\");\n\n var ensureTargetRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-target expression for changes\n return scope.$eval(attrs.sgTarget);\n },\n function(value) {\n \n var onAnchorClick = function (event) {\n if (this.href)\n window.open(this.href);\n if (event) {\n if (event.preventDefault)\n event.preventDefault(); // W3C DOM\n else\n event.returnValue = false; // IE\n }\n };\n //var anchors = angular.element(value)[0].getElementsByTagName('a');\n //for (var i = 0; i < anchors.length; i++) {\n //var anchor = angular.element(anchors[i]);\n // if (!anchor.href && anchor.readAttribute(\"moz-do-not-send\")) {\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // anchor.removeClassName(\"moz-txt-link-abbreviated\");\n // anchor.href = \"mailto:\" + anchors[i].innerHTML;\n // }\n // if (anchor.href.substring(0,7) == \"mailto:\") {\n // anchor.observe(\"click\", onEmailTo);\n // if (typeof onEmailAddressClick == 'function')\n // anchor.observe(\"contextmenu\", onEmailAddressClick);\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // }\n // els\n //if (!anchor.id)\n // anchor.observe(\"click\", onAnchorClick);\n //}\n\n element.html(value);\n ensureTargetRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgTarget', sgTarget);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgToggleGrid - Convert the tiles of a grid to toggle buttons\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgToggleGrid - the model of the source objects\n * @param {string} [sgToggleGridAttr] - the attribute that specifies if an object is enabled (toggled)\n * @ngInject\n * @example:\n\n ..\n */\n sgToggleGrid.$inject = ['$parse'];\n function sgToggleGrid($parse) {\n return {\n restrict: 'A',\n link: link\n };\n\n function link(scope, iElement, attrs, ctrl) {\n var tiles = iElement.find('md-grid-tile'),\n tile,\n i,\n modelDays,\n modelAttr,\n ensureInitRunsOnce,\n toggleClass;\n\n ensureInitRunsOnce = scope.$watch(function() {\n // Parse attribute until it returns a valid object\n return $parse(attrs.sgToggleGrid)(scope);\n }, function(days) {\n if (angular.isDefined(days)) {\n var flattenedDays = days;\n modelDays = days;\n if (attrs.sgToggleGridAttr) {\n modelAttr = attrs.sgToggleGridAttr;\n flattenedDays = _.pluck(days, attrs.sgToggleGridAttr);\n }\n _.each(tiles, function(o) {\n var tile = angular.element(o);\n if (_.contains(flattenedDays, tile.attr('value'))) {\n tile.addClass('sg-active');\n }\n });\n ensureInitRunsOnce();\n }\n });\n\n toggleClass = function() {\n // Toggle class on click event and call toggle function\n var tile = angular.element(this),\n day = tile.attr('value');\n tile.toggleClass('sg-active');\n toggle(day);\n };\n\n for (i = 0; i < tiles.length; i++) {\n tile = angular.element(tiles[i]);\n tile.addClass('iconButton');\n tile.find('figure').addClass('md-icon');\n tile.on('click', toggleClass);\n }\n\n function toggle(day) {\n var i = _.findIndex(modelDays, function(o) {\n if (modelAttr)\n return o[modelAttr] == day;\n else\n return o == day;\n });\n if (i < 0) {\n if (modelAttr) {\n var o = {};\n o[modelAttr] = day;\n modelDays.push(o);\n }\n else\n modelDays.push(day);\n }\n else\n modelDays.splice(i, 1);\n }\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgToggleGrid', sgToggleGrid);\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Contacts.js b/UI/WebServerResources/js/Contacts.js index fbb6617b4..bcb3879c2 100644 --- a/UI/WebServerResources/js/Contacts.js +++ b/UI/WebServerResources/js/Contacts.js @@ -1,2 +1,2 @@ -!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){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.ContactsUI",["ngSanitize","ui.router","SOGo.Common","SOGo.PreferencesUI"]).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"]}(),function(){"use strict";function AddressBookController($scope,$state,$timeout,$mdDialog,focus,Card,AddressBook,Dialog,Settings,stateAddressbooks,stateAddressbook){function selectCard(card){$state.go("app.addressbook.card.view",{addressbookId:stateAddressbook.id,cardId:card.id})}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("")}var vm=this;AddressBook.selectedFolder=stateAddressbook,vm.selectedFolder=stateAddressbook,vm.selectCard=selectCard,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.mode={search:!1}}AddressBookController.$inject=["$scope","$state","$timeout","$mdDialog","sgFocus","Card","AddressBook","Dialog","sgSettings","stateAddressbooks","stateAddressbook"],angular.module("SOGo.ContactsUI").controller("AddressBookController",AddressBookController)}(),function(){"use strict";function AddressBooksController($state,$scope,$rootScope,$stateParams,$timeout,$mdDialog,focus,Card,AddressBook,Dialog,Settings,User,stateAddressbooks){function select(folder){vm.editMode=!1,$state.go("app.addressbook",{addressbookId:folder.id})}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(){}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","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 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 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.reset=reset,vm.cancel=cancel,vm.confirmDelete=confirmDelete,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){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.ContactsUI",["ngSanitize","ui.router","angularFileUpload","SOGo.Common","SOGo.PreferencesUI"]).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"]}(),function(){"use strict";function AddressBookController($scope,$state,$timeout,$mdDialog,focus,Card,AddressBook,Dialog,Settings,stateAddressbooks,stateAddressbook){function selectCard(card){$state.go("app.addressbook.card.view",{addressbookId:stateAddressbook.id,cardId:card.id})}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("")}var vm=this;AddressBook.selectedFolder=stateAddressbook,vm.selectedFolder=stateAddressbook,vm.selectCard=selectCard,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.mode={search:!1}}AddressBookController.$inject=["$scope","$state","$timeout","$mdDialog","sgFocus","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(folder){vm.editMode=!1,AddressBook.$query.value="",$state.go("app.addressbook",{addressbookId:folder.id})}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 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.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 a21f05b80..4c7382628 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","$state","$timeout","$mdDialog","focus","Dialog","Settings","selectCard","go","id","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","selected","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","this","AddressBooksController","User","select","editMode","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","length","$rename","confirmDelete","service","isSubscription","$delete","importCards","exportCards","showLinks","LinksDialogController","close","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","debug","$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","$reload","copy","err","log","reset","$reset","cancel","isNew","$fullname","ok","reject","o","viewRawSource","$event","$$resource","post","currentFolder","CardRawSourceDialogController","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","push","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', 'SOGo.Common', '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('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', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $state, $timeout, $mdDialog, focus, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\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.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 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\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', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'User', 'stateAddressbooks'];\n function AddressBooksController($state, $scope, $rootScope, $stateParams, $timeout, $mdDialog, 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 $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() {\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.reset = reset;\n vm.cancel = cancel;\n vm.confirmDelete = confirmDelete;\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 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 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","$on","event","current","previous","rejection","console","error","angular","module","config","run","$inject","AddressBookController","$scope","$state","$timeout","$mdDialog","focus","Dialog","Settings","selectCard","go","id","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","selected","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","this","AddressBooksController","$mdToast","FileUploader","User","select","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","length","$rename","confirmDelete","service","isSubscription","$delete","importCards","$event","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","o","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","push","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', 'SOGo.Common', '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('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', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $state, $timeout, $mdDialog, focus, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\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.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 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\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.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 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/Mailer.js b/UI/WebServerResources/js/Mailer.js index be9fe4486..86c1ec0b3 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.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($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(stateMailbox){return stateMailbox.$filter()}function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId});return message?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.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=["$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["stateMailbox"],stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function MailboxController($state,$timeout,$mdDialog,stateAccounts,stateAccount,stateMailbox,encodeUriFilter,focus,Dialog,Account,Mailbox){function selectMessage(message){$state.go("mail.account.mailbox.message",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path),messageId:message.uid})}function unselectMessages(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!1})}function confirmDeleteSelectedMessages(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected messages?")).then(function(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$deleteMessages(selectedUIDs).then(function(){var unseenCount=_.filter(selectedMessages,function(message){return!message.isread});vm.selectedFolder.$messages=_.difference(vm.selectedFolder.$messages,selectedMessages),vm.selectedFolder.unseenCount=-unseenCount},function(error){Dialog.alert(l("Error"),error)})})}function copySelectedMessages(folder){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$copyMessages(selectedUIDs,"/"+folder).then(function(){},function(error){Dialog.alert(l("Error"),error)})}function saveSelectedMessages(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");window.location.href=ApplicationBaseURL+"/"+vm.selectedFolder.id+"/saveMessages?uid="+selectedUIDs.join(",")}function selectAll(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!0})}function markSelectedMessagesAsFlagged(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"\\Flagged","add").then(function(d){_.forEach(selectedMessages,function(message){message.isflagged=!0})})}function markSelectedMessagesAsUnread(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"seen","remove").then(function(d){_.forEach(selectedMessages,function(message){message.isread=!1,vm.selectedFolder.unseenCount++})})}function sort(field){vm.selectedFolder.$filter({sort:field})}function sortedBy(field){return Mailbox.$query.sort==field}function cancelSearch(){vm.mode.search=!1,vm.selectedFolder.$filter()}function newMessage($event){var message=vm.account.$newMessage();$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:[]}})}var vm=this;Mailbox.selectedFolder=stateMailbox,vm.service=Mailbox,vm.accounts=stateAccounts,vm.account=stateAccount,vm.selectedFolder=stateMailbox,vm.selectMessage=selectMessage,vm.unselectMessages=unselectMessages,vm.confirmDeleteSelectedMessages=confirmDeleteSelectedMessages,vm.copySelectedMessages=copySelectedMessages,vm.saveSelectedMessages=saveSelectedMessages,vm.markSelectedMessagesAsFlagged=markSelectedMessagesAsFlagged,vm.markSelectedMessagesAsUnread=markSelectedMessagesAsUnread,vm.selectAll=selectAll,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.newMessage=newMessage,vm.mode={search:!1}}MailboxController.$inject=["$state","$timeout","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",MailboxController)}(),function(){"use strict";function MailboxesController($state,$timeout,$mdDialog,focus,encodeUriFilter,Dialog,Settings,Account,Mailbox,User,Preferences,stateAccounts){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,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename()}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,"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","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,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){angular.isDefined(recipients)||(recipients=[]),$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}})}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 newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}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;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,vm.newMessage=newMessage,vm.viewRawSource=viewRawSource,$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})})}MessageController.$inject=["$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$state,$q,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,encodeUriFilter,focus,Dialog,Account,Mailbox,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){var deferred=$q.defer();return AddressBook.$filterAll($query).then(function(results){deferred.resolve(_.invoke(results,"$shortFormat",$query))}),deferred.promise}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;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","$state","$q","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","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 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.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($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(stateMailbox){return stateMailbox.$filter()}function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId});return message?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.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=["$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["stateMailbox"],stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function MailboxController($state,$timeout,$mdDialog,stateAccounts,stateAccount,stateMailbox,encodeUriFilter,focus,Dialog,Account,Mailbox){function selectMessage(message){$state.go("mail.account.mailbox.message",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path),messageId:message.uid})}function unselectMessages(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!1})}function confirmDeleteSelectedMessages(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected messages?")).then(function(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$deleteMessages(selectedUIDs).then(function(){var unseenCount=_.filter(selectedMessages,function(message){return!message.isread});vm.selectedFolder.$messages=_.difference(vm.selectedFolder.$messages,selectedMessages),vm.selectedFolder.unseenCount=-unseenCount},function(error){Dialog.alert(l("Error"),error)})})}function copySelectedMessages(folder){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$copyMessages(selectedUIDs,"/"+folder).then(function(){},function(error){Dialog.alert(l("Error"),error)})}function saveSelectedMessages(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");window.location.href=ApplicationBaseURL+"/"+vm.selectedFolder.id+"/saveMessages?uid="+selectedUIDs.join(",")}function selectAll(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!0})}function markSelectedMessagesAsFlagged(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"\\Flagged","add").then(function(d){_.forEach(selectedMessages,function(message){message.isflagged=!0})})}function markSelectedMessagesAsUnread(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"seen","remove").then(function(d){_.forEach(selectedMessages,function(message){message.isread=!1,vm.selectedFolder.unseenCount++})})}function sort(field){vm.selectedFolder.$filter({sort:field})}function sortedBy(field){return Mailbox.$query.sort==field}function cancelSearch(){vm.mode.search=!1,vm.selectedFolder.$filter()}function newMessage($event){var message=vm.account.$newMessage();$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:[]}})}var vm=this;Mailbox.selectedFolder=stateMailbox,vm.service=Mailbox,vm.accounts=stateAccounts,vm.account=stateAccount,vm.selectedFolder=stateMailbox,vm.selectMessage=selectMessage,vm.unselectMessages=unselectMessages,vm.confirmDeleteSelectedMessages=confirmDeleteSelectedMessages,vm.copySelectedMessages=copySelectedMessages,vm.saveSelectedMessages=saveSelectedMessages,vm.markSelectedMessagesAsFlagged=markSelectedMessagesAsFlagged,vm.markSelectedMessagesAsUnread=markSelectedMessagesAsUnread,vm.selectAll=selectAll,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.newMessage=newMessage,vm.mode={search:!1}}MailboxController.$inject=["$state","$timeout","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",MailboxController)}(),function(){"use strict";function MailboxesController($state,$timeout,$mdDialog,focus,encodeUriFilter,Dialog,Settings,Account,Mailbox,User,Preferences,stateAccounts){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,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename()}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,"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","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,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){angular.isDefined(recipients)||(recipients=[]),$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}})}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 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;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,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=["$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$state,$q,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,encodeUriFilter,focus,Dialog,Account,Mailbox,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){var deferred=$q.defer();return AddressBook.$filterAll($query).then(function(results){deferred.resolve(_.invoke(results,"$shortFormat",$query))}),deferred.promise}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;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","$state","$q","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","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.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 8ec71846f..3145f748f 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","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateMessages","message","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$filter","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","module","config","run","$inject","MailboxController","$timeout","$mdDialog","focus","Dialog","Mailbox","selectMessage","unselectMessages","each","vm","selectedFolder","selected","confirmDeleteSelectedMessages","confirm","l","selectedMessages","filter","selectedUIDs","pluck","$deleteMessages","unseenCount","isread","difference","alert","copySelectedMessages","folder","$copyMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","join","selectAll","markSelectedMessagesAsFlagged","$flagMessages","d","isflagged","markSelectedMessagesAsUnread","sort","field","sortedBy","$query","cancelSearch","mode","search","newMessage","$event","$newMessage","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateRecipients","this","service","MailboxesController","Settings","User","Preferences","newFolder","parentFolder","prompt","name","$newMailbox","data","status","delegate","MailboxDelegationController","$scope","userFilter","delegates","closeModal","hide","removeUser","user","$removeDelegate","addUser","$addDelegate","userToAdd","searchText","users","editFolder","editMode","revertEditing","$reset","selectFolder","saveFolder","$rename","compactFolder","$compact","emptyTrashFolder","$emptyTrash","exportMails","confirmDelete","$delete","markFolderRead","$markAsRead","share","$acl","$users","usersWithACL","metadataForFolder","type","icon","setFolderAs","$setFolderAs","reload","refreshUnseenCount","unseenCountFolders","includes","$$flattenMailboxes","isDefined","$$resource","post","ready","refreshViewCheck","defaults","SOGoRefreshViewCheck","timeInterval","MessageController","Message","doDelete","index","findIndex","splice","showMailEditor","recipients","reply","$reply","replyAll","$replyAll","forward","$forward","edit","$editableContent","recipient","viewRawSource","MessageRawSourceDialogController","scope","close","tags","$watchCollection","oldTags","newTags","tag","removeTag","MessageEditorController","FileUploader","AddressBook","cancel","autosave","send","$send","contactFilter","deferred","defer","$filterAll","results","invoke","promise","autosaveDrafts","$save","SOGoMailAutoSave","autocomplete","to","cc","bcc","hideCc","hideBcc","identities","flatten","uploader","$absolutePath","asDraft","autoUpload","alias","onProgressItem","item","progress","debug","onSuccessItem","response","headers","$setUID","JSON","stringify","undefined","onCancelItem","$deleteAttachment","file","removeFromQueue","onErrorItem","actionName","msgObject","editable","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","action","receiveUpdates","c_email","viewer","$imipAction","directive"],"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,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,aACdC,cAAeA,iBAgBlBf,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEU,aAAcA,gBA4BpBlB,mBAAmBmB,UAAU,SAc/B,QAASV,eAAcW,GAAIC,SACzB,GAAIC,UAAWD,QAAQE,SAASC,cAC5BC,WAQJ,OANAC,SAAQC,QAAQL,SAAU,SAASM,QAASC,GAC1C,GAAIzB,WAAYwB,QAAQE,eACxBL,UAASM,KAAK3B,UAAU4B,KAAK,SAASC,SACpC,MAAOL,cAGJR,GAAGc,IAAIT,UAOhB,QAASZ,cAAasB,aAAc1B,eAClC,MAAO2B,GAAEC,KAAK5B,cAAe,SAASmB,SACpC,MAAOA,SAAQU,IAAMH,aAAaI,YAQtC,QAASxB,cAAaoB,aAActB,aAAc2B,iBAChD,GACIC,OADAC,UAAYF,gBAAgBL,aAAaO,UAgB7C,QAbAD,MAAQ,SAASrC,WACf,GAAIO,SAAUyB,EAAEC,KAAKjC,UAAW,SAASuC,GACvC,MAAOA,GAAEC,MAAQF,WASnB,OAPK/B,UACHe,QAAQC,QAAQvB,UAAW,SAASuC,IAC7BhC,SAAWgC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDnC,QAAU8B,MAAME,EAAEE,aAIjBlC,UAEIE,aAAakC,YAO5B,QAAS/B,eAAcD,cACrB,MAAOA,cAAaiC,UAetB,QAAS9B,cAAa+B,gBAAiBd,aAAce,OAAQnC,aAAcC,eACzE,GAAIC,SAAUmB,EAAEC,KAAKtB,aAAaoC,UAAW,SAASC,eACpD,MAAOA,eAAcC,KAAOlB,aAAamB,WAG3C,OAAIrC,UACFF,aAAawC,gBAAkBpB,aAAamB,UACrCrC,QAAQuC,eAIfN,QAAOO,GAAG,wBAA0BlB,UAAWxB,aAAa2C,SAASpB,GAAII,UAAWO,gBAAgBlC,aAAa6B,QAgBrH,QAASe,UAASC,YAChBA,WAAWC,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,WACrEC,QAAQC,MAAML,MAAOC,QAASC,SAAUC,aAlN5CvC,QAAQ0C,OAAO,iBAAkB,aAAc,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,YAAa,uBACnIC,OAAOvE,WACPwE,IAAIX,UAKP7D,UAAUyE,SAAW,iBAAkB,sBA0GvC9D,cAAc8D,SAAW,KAAM,WAiB/B1D,aAAa0D,SAAW,eAAgB,iBAUxCxD,aAAawD,SAAW,eAAgB,eAAgB,mBAwBxDvD,cAAcuD,SAAW,gBAgBzBrD,aAAaqD,SAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBA2BrFZ,SAASY,SAAW,iBCnNtB,WACE,YAMA,SAASC,mBAAkBtB,OAAQuB,SAAUC,UAAWjE,cAAeI,aAAcE,aAAckC,gBAAiB0B,MAAOC,OAAQvD,QAASwD,SAwB1I,QAASC,eAAc7D,SACrBiC,OAAOO,GAAG,gCAAiClB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,MAAOU,UAAWrC,QAAQoC,MAG3I,QAAS0B,oBACP3C,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAAWA,QAAQkE,UAAW,IAG7E,QAASC,iCACPR,OAAOS,QAAQC,EAAE,WACFA,EAAE,2DACdtD,KAAK,WAEJ,GAAIuD,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAeS,gBAAgBF,cAAczD,KAAK,WAEnD,GAAI4D,aAAcxD,EAAEoD,OAAOD,iBAAkB,SAAStE,SAAW,OAAQA,QAAQ4E,QACjFZ,IAAGC,eAAe/B,UAAYf,EAAE0D,WAAWb,GAAGC,eAAe/B,UAAWoC,kBACxEN,GAAGC,eAAeU,aAAeA,aAC/B,SAASzB,OACXS,OAAOmB,MAAMT,EAAE,SAAUnB,WAKjC,QAAS6B,sBAAqBC,QAC5B,GAAIV,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAegB,cAAcT,aAAc,IAAMQ,QAAQjE,KAAK,aAE9D,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,SAAUnB,SAa7B,QAASgC,wBACP,GAAIZ,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7Ca,QAAOC,SAASC,KAAOC,mBAAqB,IAAMtB,GAAGC,eAAe5C,GAAK,qBAAuBmD,aAAae,KAAK,KAGpH,QAASC,aACPrE,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAC3CA,QAAQkE,UAAW,IAIvB,QAASuB,iCACP,GAAInB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,YAAa,OAAOzD,KAAK,SAAS4E,GAE9ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4F,WAAY,MAK1B,QAASC,gCACP,GAAIvB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,OAAQ,UAAUzD,KAAK,SAAS4E,GAE5ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4E,QAAS,EACjBZ,GAAGC,eAAeU,kBAKxB,QAASmB,MAAKC,OACZ/B,GAAGC,eAAelC,SAAU+D,KAAMC,QAGpC,QAASC,UAASD,OAChB,MAAOnC,SAAQqC,OAAOH,MAAQC,MAGhC,QAASG,gBACPlC,GAAGmC,KAAKC,QAAS,EACjBpC,GAAGC,eAAelC,UAGpB,QAASsE,YAAWC,QAClB,GAAItG,SAAUgE,GAAGrD,QAAQ4F,aAEzB9C,WAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,sBApIN,GAAIjD,IAAKkD,IAETtD,SAAQK,eAAiBnE,aAEzBkE,GAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGC,eAAiBnE,aACpBkE,GAAGH,cAAgBA,cACnBG,GAAGF,iBAAmBA,iBACtBE,GAAGG,8BAAgCA,8BACnCH,GAAGe,qBAAuBA,qBAE1Bf,GAAGkB,qBAAuBA,qBAC1BlB,GAAGyB,8BAAgCA,8BACnCzB,GAAG6B,6BAA+BA,6BAClC7B,GAAGwB,UAAYA,UACfxB,GAAG8B,KAAOA,KACV9B,GAAGgC,SAAWA,SACdhC,GAAGkC,aAAeA,aAClBlC,GAAGqC,WAAaA,WAChBrC,GAAGmC,MAASC,QAAQ,GAvBtB7C,kBAAkBD,SAAW,SAAU,WAAY,YAAa,gBAAiB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,WA4IpK7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqBkE,sBCpJrC,WACE,YAMA,SAAS6D,qBAAoBnF,OAAQuB,SAAUC,UAAWC,MAAO1B,gBAAiB2B,OAAQ0D,SAAUjH,QAASwD,QAAS0D,KAAMC,YAAa/H,eA8BvI,QAASgI,WAAUC,cACjB9D,OAAO+D,OAAOrD,EAAE,cACFA,EAAE,wCACbtD,KAAK,SAAS4G,MACbF,aAAaG,YAAYH,aAAapG,GAAIsG,MACvC5G,KAAK,aAEH,SAAS8G,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDsD,MACzDtD,EAAEwD,KAAK3E,YAK9B,QAAS6E,UAASpH,SAiBhB,QAASqH,6BAA4BC,OAAQxE,UAAW6D,KAAM3G,SAY5D,QAASuH,YAAWjC,QAClB,MAAOqB,MAAKvF,QAAQkE,OAAQtF,QAAQwH,WAGtC,QAASC,cACP3E,UAAU4E,OAGZ,QAASC,YAAWC,MAClB5H,QAAQ6H,gBAAgBD,KAAKnG,KAA7BzB,SAAwC,SAASkH,KAAMC,QACrDnE,OAAOmB,MAAMT,EAAE,WAAYA,EAAE,yCAIjC,QAASoE,SAAQZ,MACXA,MACFlH,QAAQ+H,aAAab,MAAM9G,KAAK,WAC9BiD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,IACf,SAAS1F,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SA/BjC,GAAIc,IAAKkD,IAETlD,IAAG6E,MAAQlI,QAAQwH,UACnBnE,GAAGrD,QAAUA,QACbqD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,GAChB5E,GAAGkE,WAAaA,WAChBlE,GAAGoE,WAAaA,WAChBpE,GAAGsE,WAAaA,WAChBtE,GAAGyE,QAAUA,QA1BfhF,UAAU+C,MACRpH,YAAauB,QAAQU,GAAK,cAC1BhC,WAAY2I,4BACZ1I,aAAc,WACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEM,KAAMA,KACN3G,QAASA,WAObqH,4BAA4B1E,SAAW,SAAU,YAAa,OAAQ,WAwCxE,QAASwF,YAAW9D,QAClBhB,GAAG+E,SAAW/D,OAAOrD,KACrB+B,MAAM,eAAiBsB,OAAOrD,MAGhC,QAASqH,eAAchE,QACrBA,OAAOiE,SACPjF,GAAG+E,UAAW,EAGhB,QAASG,cAAavI,QAASqE,QACzBhB,GAAG+E,UAAY/D,OAAOrD,OAE1BqC,GAAG+E,UAAW,EACd9G,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBgD,OAAOrD,SAG/F,QAASwH,YAAWnE,QAClBA,OAAOoE,UAGT,QAASC,eAAcrE,QACrBA,OAAOsE,WAAWvI,KAAK,aAEpB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASqG,kBAAiBvE,QACxBA,OAAOwE,cAAczI,KAAK,aAEvB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASuG,aAAYzE,QACnBG,OAAOC,SAASC,KAAOC,mBAAqB,IAAMN,OAAO3D,GAAK,gBAGhE,QAASqI,eAAc1E,QACrBrB,OAAOS,QAAQC,EAAE,gBAAiBA,EAAE,4DACjCtD,KAAK,WACJiE,OAAO2E,UACJ5I,KAAK,WACJkB,OAAOO,GAAG,SACT,SAASqF,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDW,OAAO2C,MAChEtD,EAAEwD,KAAK3E,YAK9B,QAAS0G,gBAAe5E,QACtBA,OAAO6E,cAGT,QAASC,OAAM9E,QAEbA,OAAO+E,KAAKC,SAASjJ,KAAK,WAExB0C,UAAU+C,MACRpH,YAAa4F,OAAO3D,GAAK,gBACzBhC,WAAY,gBACZC,aAAc,MACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEiD,aAAcjF,OAAO+E,KAAKlB,MAC1BvB,KAAMA,KACNtC,OAAQA,YAMhB,QAASkF,mBAAkBlF,QACzB,MAAmB,SAAfA,OAAOmF,MACDxC,KAAM3C,OAAO2C,KAAMyC,KAAK,SACV,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,oBAAqB+F,KAAM,UACrB,QAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,kBAAmB+F,KAAM,QACnB,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,mBAAoB+F,KAAM,UACpB,cAAfpF,OAAOmF,MACNxC,KAAM3C,OAAO2C,KAAMyC,KAAM,kBAK3BzC,KAAM3C,OAAO2C,KAAMyC,KAAM,UAGnC,QAASC,aAAYrF,OAAQmF,MAC3BnF,OAAOsF,aAAaH,MAAMpJ,KAAK,WAC7BiE,OAAOvC,SAAS5B,eAAe0J,QAAQ,KACtC,SAASrH,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASsH,sBACP,GAAIC,oBAAqBtF,OAAOsF,kBAEhCtJ,GAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAGzBQ,EAAEuJ,SAASD,mBAAoB9J,QAAQU,GAAK,iBAC/CoJ,mBAAmB3J,KAAKH,QAAQU,GAAK,gBAEvCF,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCe,QAAQmK,UAAUlL,QAAQiF,eACzBxD,EAAEuJ,SAASD,mBAAoB/K,QAAQ2B,KAC1CoJ,mBAAmB3J,KAAKpB,QAAQ2B,QAItCjB,QAAQyK,WAAWC,KAAK,GAAI,eAAgB3L,UAAWsL,qBAAqB1J,KAAK,SAAS8G,MACxF1G,EAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAC9BQ,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCmI,KAAKnI,QAAQ2B,MACf3B,QAAQiF,YAAckD,KAAKnI,QAAQ2B,WAK3CkG,YAAYwD,QAAQhK,KAAK,WACvB,GAAIiK,kBAAmBzD,YAAY0D,SAASC,oBACxCF,mBAAwC,YAApBA,kBACtBxH,SAASQ,GAAGwG,mBAAoD,IAAhCQ,iBAAiBG,kBAtOvD,GACIxK,SACAjB,QAFAsE,GAAKkD,IAITlD,IAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGwD,UAAYA,UACfxD,GAAG+D,SAAWA,SACd/D,GAAG8E,WAAaA,WAChB9E,GAAGgF,cAAgBA,cACnBhF,GAAGkF,aAAeA,aAClBlF,GAAGmF,WAAaA,WAChBnF,GAAGqF,cAAgBA,cACnBrF,GAAGuF,iBAAmBA,iBACtBvF,GAAGyF,YAAcA,YACjBzF,GAAG0F,cAAgBA,cACnB1F,GAAG4F,eAAiBA,eACpB5F,GAAG8F,MAAQA,MACX9F,GAAGkG,kBAAoBA,kBACvBlG,GAAGqG,YAAcA,YACjBrG,GAAGwG,mBAAqBA,mBAEG,QAAvBvI,OAAOa,QAAQ6E,MAAkB3D,GAAG3D,SAASwB,OAAS,GAAKmC,GAAG3D,SAAS,GAAGyB,WAAWD,OAAS,IAEhGlB,QAAUqD,GAAG3D,SAAS,GACtBX,QAAUiB,QAAQmB,WAAW,GAC7BG,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBtC,QAAQiC,SAgNhGqC,GAAGwG,qBA5OLpD,oBAAoB9D,SAAW,SAAU,WAAY,YAAa,UAAW,kBAAmB,SAAU,aAAc,UAAW,UAAW,OAAQ,cAAe,iBA+OrK7C,QACG0C,OAAO,iBACP9D,WAAW,sBAAuB+H,wBCvPvC,WACE,YAMA,SAASgE,mBAAkBnD,OAAQhG,OAAQwB,UAAWjE,cAAeI,aAAcE,aAAcG,aAAc+B,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASyH,SA0B/J,QAASC,YACPxL,aAAa4E,iBAAiBzE,aAAamC,MAAMrB,KAAK,WAEpD,GAAIwK,OAAQpK,EAAEqK,UAAU1L,aAAaoC,UAAW,SAASR,GACvD,MAAOA,GAAEU,KAAOnC,aAAamC,KAElB,KAATmJ,OACFzL,aAAaoC,UAAUuJ,OAAOF,MAAO,GAEvCvH,GAAGhE,QAAU,KACbiC,OAAOO,GAAG,wBAA0BlB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,UAI5G,QAAS+J,gBAAepF,OAAQtG,QAAS2L,YAElClL,QAAQmK,UAAUe,cACrBA,eAEFlI,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,gBAAiB0E,cAKvB,QAASC,OAAMtF,QACb,GAAItG,SAAUgE,GAAGhE,QAAQ6L,QACzBH,gBAAepF,OAAQtG,SAGzB,QAAS8L,UAASxF,QAChB,GAAItG,SAAUgE,GAAGhE,QAAQ+L,WACzBL,gBAAepF,OAAQtG,SAGzB,QAASgM,SAAQ1F,QACf,GAAItG,SAAUgE,GAAGhE,QAAQiM,UACzBP,gBAAepF,OAAQtG,SAGzB,QAASkM,MAAK5F,QACZtC,GAAGhE,QAAQmM,mBAAmBpL,KAAK,WACjC2K,eAAepF,OAAQtC,GAAGhE,WAI9B,QAASqG,YAAWC,OAAQ8F,WAC1B,GAAIpM,SAAUgE,GAAGrD,QAAQ4F,aACzBmF,gBAAepF,OAAQtG,SAAUoM,YAInC,QAASC,eAAc/F,QACrB+E,QAAQR,WAAWC,KAAK9G,GAAGhE,QAAQqB,GAAI,cAAcN,KAAK,SAAS8G,MAyBjE,QAASyE,kCAAiCC,MAAO9I,WAC/C8I,MAAMC,MAAQ,WACZ/I,UAAU4E,QA1Bd5E,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACfpH,UACE,kDAAoD0E,EAAE,uBAAyB,KAC/E,wBACA,YACAwD,KACA,aACA,yBACA,6BACA,qCAAuCxD,EAAE,SAAW,eACpD,WACA,gBACAkB,KAAK,IACPlG,WAAYiN,mCAMdA,iCAAiChJ,SAAW,QAAS,eAhHzD,GAAIU,IAAKkD,IAETlD,IAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGtE,QAAUI,aACbkE,GAAGhE,QAAUC,aACb+D,GAAGmD,QAAUkE,QACbrH,GAAGyI,MAAS7D,WAAY,GAAI1E,SAAU,IACtCF,GAAGsH,SAAWA,SACdtH,GAAG4H,MAAQA,MACX5H,GAAG8H,SAAWA,SACd9H,GAAGgI,QAAUA,QACbhI,GAAGkI,KAAOA,KACVlI,GAAGqC,WAAaA,WAChBrC,GAAGqI,cAAgBA,cAKnBpE,OAAOyE,iBAAiB,uBAAwB,SAASC,QAASC,SAChEzL,EAAE4C,KAAK5C,EAAE0D,WAAW+H,QAASD,SAAU,SAASE,KAC9C7I,GAAGhE,QAAQ8M,UAAUD,SAvB3BzB,kBAAkB9H,SAAW,SAAU,SAAU,YAAa,gBAAiB,eAAgB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,UAAW,WA4H7L7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqB+L,sBCpIrC,WACE,YAMA,SAAS2B,yBAAwB7L,aAAce,OAAQ9B,GAAIsD,UAAWuJ,aAAcxN,cAAeS,aAAcgH,gBAAiBzD,SAAUxB,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASqJ,YAAa1F,aA+DzM,QAAS2F,UAEHlJ,GAAGmJ,UACL3J,SAAS0J,OAAOlJ,GAAGmJ,UAErB1J,UAAUyJ,SAGZ,QAASE,QACHpJ,GAAGmJ,UACL3J,SAAS0J,OAAOlJ,GAAGmJ,UAErBnJ,GAAGhE,QAAQqN,QAAQtM,KAAK,SAAS8G,MAC/BpE,UAAU4E,QACT,SAASR,MACVlE,OAAOmB,MAAMT,EAAEwD,KAAKC,QAASzD,EAAEwD,KAAK7H,YAIxC,QAASsN,eAAcrH,QACrB,GAAIsH,UAAWpN,GAAGqN,OAIlB,OAHAP,aAAYQ,WAAWxH,QAAQlF,KAAK,SAAS2M,SAC3CH,SAAShO,QAAQ4B,EAAEwM,OAAOD,QAAS,eAAgBzH,WAE9CsH,SAASK,QAIlB,QAASC,kBACP7J,GAAGhE,QAAQ8N,QACPvG,YAAY0D,SAAS8C,mBACvB/J,GAAGmJ,SAAW3J,SAASQ,GAAG6J,eAAsD,IAAtCtG,YAAY0D,SAAS8C,iBAAsB,KA7FzF,GAAI/J,IAAKkD,IAETlD,IAAGgK,cAAgBC,MAAQC,MAAQC,QACnCnK,GAAGmJ,SAAW,KACdnJ,GAAG6J,eAAiBA,eACpB7J,GAAGoK,QAAS,EACZpK,GAAGqK,SAAU,EACbrK,GAAGkJ,OAASA,OACZlJ,GAAGoJ,KAAOA,KACVpJ,GAAGsJ,cAAgBA,cACnBtJ,GAAGsK,WAAanN,EAAEsD,MAAMtD,EAAEoN,QAAQpN,EAAEsD,MAAMjF,cAAe,eAAgB,QACzEwE,GAAGwK,SAAW,GAAIxB,eAChB/N,IAAKgB,aAAawO,eAAeC,SAAS,IAAS,QACnDC,YAAY,EACZC,MAAO,cACPC,eAAgB,SAASC,KAAMC,UAC7B9L,QAAQ+L,MAAMF,MAAO7L,QAAQ+L,MAAMD,WAErCE,cAAe,SAASH,KAAMI,SAAUpH,OAAQqH,SAC9ClP,aAAamP,QAAQF,SAAS9M,KAC9BnC,aAAasC,UACbU,QAAQ+L,MAAMF,MAAO7L,QAAQ+L,MAAM,aAAeK,KAAKC,UAAUJ,SAAUK,OAAW,KAExFC,aAAc,SAASV,KAAMI,SAAUpH,OAAQqH,SAC7ClM,QAAQ+L,MAAMF,MAAO7L,QAAQ+L,MAAM,YAAcK,KAAKC,UAAUJ,SAAUK,OAAW,IAGrFtP,aAAawP,kBAAkBX,KAAKY,KAAK/H,MACzCT,KAAKyI,gBAAgBb,OAEvBc,YAAa,SAASd,KAAMI,SAAUpH,OAAQqH,SAC5ClM,QAAQ+L,MAAMF,MAAO7L,QAAQ+L,MAAM,WAAaK,KAAKC,UAAUJ,SAAUK,OAAW,OAIzD,SAA3BrO,aAAa2O,WACf5P,aAAa4L,SAAS9K,KAAK,SAAS+O,WAClC9L,GAAGhE,QAAU8P,UACb9L,GAAGoK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGrM,OAC7DmC,GAAGqK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAItM,SAGhC,YAA3BX,aAAa2O,WACpB5P,aAAa8L,YAAYhL,KAAK,SAAS+O,WACrC9L,GAAGhE,QAAU8P,UACb9L,GAAGoK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGrM,OAC7DmC,GAAGqK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAItM,SAGhC,WAA3BX,aAAa2O,WACpB5P,aAAagM,WAAWlL,KAAK,SAAS+O,WACpC9L,GAAGhE,QAAU8P,YAGRrP,QAAQmK,UAAU3K,gBACzB+D,GAAGhE,QAAUC,cAGXQ,QAAQmK,UAAU3D,mBACpBjD,GAAGhE,QAAQ+P,SAAS9B,GAAK9M,EAAE6O,MAAMhM,GAAGhE,QAAQ+P,SAAS9B,GAAI9M,EAAEsD,MAAMwC,gBAAiB,UAsCpFM,YAAYwD,QAAQhK,KAAK,WACnBwG,YAAY0D,SAAS8C,mBACvB/J,GAAGmJ,SAAW3J,SAASQ,GAAG6J,eAAsD,IAAtCtG,YAAY0D,SAAS8C,iBAAsB,KACvF/J,GAAGiM,WAAa1I,YAAY0D,SAASiF,aAtGzCnD,wBAAwBzJ,SAAW,eAAgB,SAAU,KAAM,YAAa,eAAgB,gBAAiB,eAAgB,kBAAmB,WAAY,kBAAmB,UAAW,SAAU,UAAW,UAAW,cAAe,eA0G7O7C,QACG0C,OAAO,iBACP9D,WAAW,0BAA2B0N,4BClH3C,WAEE,YAQA,SAASoD,UAOP,QAASC,MAAK7D,MAAO8D,SAAUC,MAAOC,MACpCA,KAAKC,iBAAmBF,MAAMG,WAPhC,OACEC,SAAU,IACVN,KAAMA,KACN/Q,WAAY,oBAYhB,QAASsR,kBAAiB1I,OAAQX,MAChC,GAAItD,IAAKkD,IAETe,QAAO2I,oBAAqB,EAC5B3I,OAAO4I,YAAc,GACrB5I,OAAOW,WAAa,GAEpBX,OAAOC,WAAa,SAASjC,QAC3B,MAAOqB,MAAKvF,QAAQkE,SAGtBgC,OAAO6I,gBAAkB,SAASC,QAChC,GAAIlJ,KAEU,aAAVkJ,SACFlJ,MACEmJ,gBAAgB,EAChBH,YAAa5I,OAAO4I,YAAYI,UAIpChJ,OAAOiJ,OAAOlR,QAAQmR,YAAYnN,GAAGwM,iBAAkBO,OAAQlJ,OAtBnE8I,iBAAiBrN,SAAW,SAAU,QA0BtC7C,QACG0C,OAAO,iBACP9D,WAAW,mBAAoBsR,kBAC/BS,UAAU,SAAUjB","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.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 = ['$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox($stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\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 return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['stateMailbox'];\n function stateMessages(stateMailbox) {\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 * @ngInject\n */\n stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var 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'];\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 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;\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.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 $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path), messageId: message.uid});\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 = vm.account.$newMessage();\n\n $mdDialog.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 }\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', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, 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 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 $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename();\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 = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {\n var vm = this;\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.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\n vm.newMessage = newMessage;\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\n if (!angular.isDefined(recipients))\n recipients = [];\n\n $mdDialog.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 }\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 newMessage($event, recipient) {\n var message = vm.account.$newMessage();\n showMailEditor($event, message, [recipient]);\n }\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', '$state', '$q', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $state, $q, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox, AddressBook, Preferences) {\n var vm = this;\n\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 var deferred = $q.defer();\n AddressBook.$filterAll($query).then(function(results) {\n deferred.resolve(_.invoke(results, '$shortFormat', $query));\n });\n return deferred.promise;\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.js","sources":["Mailer/Mailer.app.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateMessages","message","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$filter","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","module","config","run","$inject","MailboxController","$timeout","$mdDialog","focus","Dialog","Mailbox","selectMessage","unselectMessages","each","vm","selectedFolder","selected","confirmDeleteSelectedMessages","confirm","l","selectedMessages","filter","selectedUIDs","pluck","$deleteMessages","unseenCount","isread","difference","alert","copySelectedMessages","folder","$copyMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","join","selectAll","markSelectedMessagesAsFlagged","$flagMessages","d","isflagged","markSelectedMessagesAsUnread","sort","field","sortedBy","$query","cancelSearch","mode","search","newMessage","$event","$newMessage","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateRecipients","this","service","MailboxesController","Settings","User","Preferences","newFolder","parentFolder","prompt","name","$newMailbox","data","status","delegate","MailboxDelegationController","$scope","userFilter","delegates","closeModal","hide","removeUser","user","$removeDelegate","addUser","$addDelegate","userToAdd","searchText","users","editFolder","editMode","revertEditing","$reset","selectFolder","saveFolder","$rename","compactFolder","$compact","emptyTrashFolder","$emptyTrash","exportMails","confirmDelete","$delete","markFolderRead","$markAsRead","share","$acl","$users","usersWithACL","metadataForFolder","type","icon","setFolderAs","$setFolderAs","reload","refreshUnseenCount","unseenCountFolders","includes","$$flattenMailboxes","isDefined","$$resource","post","ready","refreshViewCheck","defaults","SOGoRefreshViewCheck","timeInterval","MessageController","Message","doDelete","index","findIndex","splice","showMailEditor","recipients","reply","$reply","replyAll","$replyAll","forward","$forward","edit","$editableContent","recipient","saveMessage","viewRawSource","MessageRawSourceDialogController","scope","close","tags","$watchCollection","oldTags","newTags","tag","removeTag","MessageEditorController","FileUploader","AddressBook","cancel","autosave","send","$send","contactFilter","deferred","defer","$filterAll","results","invoke","promise","autosaveDrafts","$save","SOGoMailAutoSave","autocomplete","to","cc","bcc","hideCc","hideBcc","identities","flatten","uploader","$absolutePath","asDraft","autoUpload","alias","onProgressItem","item","progress","debug","onSuccessItem","response","headers","$setUID","JSON","stringify","undefined","onCancelItem","$deleteAttachment","file","removeFromQueue","onErrorItem","actionName","msgObject","editable","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","action","receiveUpdates","c_email","viewer","$imipAction","directive"],"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,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,aACdC,cAAeA,iBAgBlBf,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEU,aAAcA,gBA4BpBlB,mBAAmBmB,UAAU,SAc/B,QAASV,eAAcW,GAAIC,SACzB,GAAIC,UAAWD,QAAQE,SAASC,cAC5BC,WAQJ,OANAC,SAAQC,QAAQL,SAAU,SAASM,QAASC,GAC1C,GAAIzB,WAAYwB,QAAQE,eACxBL,UAASM,KAAK3B,UAAU4B,KAAK,SAASC,SACpC,MAAOL,cAGJR,GAAGc,IAAIT,UAOhB,QAASZ,cAAasB,aAAc1B,eAClC,MAAO2B,GAAEC,KAAK5B,cAAe,SAASmB,SACpC,MAAOA,SAAQU,IAAMH,aAAaI,YAQtC,QAASxB,cAAaoB,aAActB,aAAc2B,iBAChD,GACIC,OADAC,UAAYF,gBAAgBL,aAAaO,UAgB7C,QAbAD,MAAQ,SAASrC,WACf,GAAIO,SAAUyB,EAAEC,KAAKjC,UAAW,SAASuC,GACvC,MAAOA,GAAEC,MAAQF,WASnB,OAPK/B,UACHe,QAAQC,QAAQvB,UAAW,SAASuC,IAC7BhC,SAAWgC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDnC,QAAU8B,MAAME,EAAEE,aAIjBlC,UAEIE,aAAakC,YAO5B,QAAS/B,eAAcD,cACrB,MAAOA,cAAaiC,UAetB,QAAS9B,cAAa+B,gBAAiBd,aAAce,OAAQnC,aAAcC,eACzE,GAAIC,SAAUmB,EAAEC,KAAKtB,aAAaoC,UAAW,SAASC,eACpD,MAAOA,eAAcC,KAAOlB,aAAamB,WAG3C,OAAIrC,UACFF,aAAawC,gBAAkBpB,aAAamB,UACrCrC,QAAQuC,eAIfN,QAAOO,GAAG,wBAA0BlB,UAAWxB,aAAa2C,SAASpB,GAAII,UAAWO,gBAAgBlC,aAAa6B,QAgBrH,QAASe,UAASC,YAChBA,WAAWC,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,WACrEC,QAAQC,MAAML,MAAOC,QAASC,SAAUC,aAlN5CvC,QAAQ0C,OAAO,iBAAkB,aAAc,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,YAAa,uBACnIC,OAAOvE,WACPwE,IAAIX,UAKP7D,UAAUyE,SAAW,iBAAkB,sBA0GvC9D,cAAc8D,SAAW,KAAM,WAiB/B1D,aAAa0D,SAAW,eAAgB,iBAUxCxD,aAAawD,SAAW,eAAgB,eAAgB,mBAwBxDvD,cAAcuD,SAAW,gBAgBzBrD,aAAaqD,SAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBA2BrFZ,SAASY,SAAW,iBCnNtB,WACE,YAMA,SAASC,mBAAkBtB,OAAQuB,SAAUC,UAAWjE,cAAeI,aAAcE,aAAckC,gBAAiB0B,MAAOC,OAAQvD,QAASwD,SAwB1I,QAASC,eAAc7D,SACrBiC,OAAOO,GAAG,gCAAiClB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,MAAOU,UAAWrC,QAAQoC,MAG3I,QAAS0B,oBACP3C,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAAWA,QAAQkE,UAAW,IAG7E,QAASC,iCACPR,OAAOS,QAAQC,EAAE,WACFA,EAAE,2DACdtD,KAAK,WAEJ,GAAIuD,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAeS,gBAAgBF,cAAczD,KAAK,WAEnD,GAAI4D,aAAcxD,EAAEoD,OAAOD,iBAAkB,SAAStE,SAAW,OAAQA,QAAQ4E,QACjFZ,IAAGC,eAAe/B,UAAYf,EAAE0D,WAAWb,GAAGC,eAAe/B,UAAWoC,kBACxEN,GAAGC,eAAeU,aAAeA,aAC/B,SAASzB,OACXS,OAAOmB,MAAMT,EAAE,SAAUnB,WAKjC,QAAS6B,sBAAqBC,QAC5B,GAAIV,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAegB,cAAcT,aAAc,IAAMQ,QAAQjE,KAAK,aAE9D,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,SAAUnB,SAa7B,QAASgC,wBACP,GAAIZ,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7Ca,QAAOC,SAASC,KAAOC,mBAAqB,IAAMtB,GAAGC,eAAe5C,GAAK,qBAAuBmD,aAAae,KAAK,KAGpH,QAASC,aACPrE,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAC3CA,QAAQkE,UAAW,IAIvB,QAASuB,iCACP,GAAInB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,YAAa,OAAOzD,KAAK,SAAS4E,GAE9ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4F,WAAY,MAK1B,QAASC,gCACP,GAAIvB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,OAAQ,UAAUzD,KAAK,SAAS4E,GAE5ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4E,QAAS,EACjBZ,GAAGC,eAAeU,kBAKxB,QAASmB,MAAKC,OACZ/B,GAAGC,eAAelC,SAAU+D,KAAMC,QAGpC,QAASC,UAASD,OAChB,MAAOnC,SAAQqC,OAAOH,MAAQC,MAGhC,QAASG,gBACPlC,GAAGmC,KAAKC,QAAS,EACjBpC,GAAGC,eAAelC,UAGpB,QAASsE,YAAWC,QAClB,GAAItG,SAAUgE,GAAGrD,QAAQ4F,aAEzB9C,WAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,sBApIN,GAAIjD,IAAKkD,IAETtD,SAAQK,eAAiBnE,aAEzBkE,GAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGC,eAAiBnE,aACpBkE,GAAGH,cAAgBA,cACnBG,GAAGF,iBAAmBA,iBACtBE,GAAGG,8BAAgCA,8BACnCH,GAAGe,qBAAuBA,qBAE1Bf,GAAGkB,qBAAuBA,qBAC1BlB,GAAGyB,8BAAgCA,8BACnCzB,GAAG6B,6BAA+BA,6BAClC7B,GAAGwB,UAAYA,UACfxB,GAAG8B,KAAOA,KACV9B,GAAGgC,SAAWA,SACdhC,GAAGkC,aAAeA,aAClBlC,GAAGqC,WAAaA,WAChBrC,GAAGmC,MAASC,QAAQ,GAvBtB7C,kBAAkBD,SAAW,SAAU,WAAY,YAAa,gBAAiB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,WA4IpK7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqBkE,sBCpJrC,WACE,YAMA,SAAS6D,qBAAoBnF,OAAQuB,SAAUC,UAAWC,MAAO1B,gBAAiB2B,OAAQ0D,SAAUjH,QAASwD,QAAS0D,KAAMC,YAAa/H,eA8BvI,QAASgI,WAAUC,cACjB9D,OAAO+D,OAAOrD,EAAE,cACFA,EAAE,wCACbtD,KAAK,SAAS4G,MACbF,aAAaG,YAAYH,aAAapG,GAAIsG,MACvC5G,KAAK,aAEH,SAAS8G,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDsD,MACzDtD,EAAEwD,KAAK3E,YAK9B,QAAS6E,UAASpH,SAiBhB,QAASqH,6BAA4BC,OAAQxE,UAAW6D,KAAM3G,SAY5D,QAASuH,YAAWjC,QAClB,MAAOqB,MAAKvF,QAAQkE,OAAQtF,QAAQwH,WAGtC,QAASC,cACP3E,UAAU4E,OAGZ,QAASC,YAAWC,MAClB5H,QAAQ6H,gBAAgBD,KAAKnG,KAA7BzB,SAAwC,SAASkH,KAAMC,QACrDnE,OAAOmB,MAAMT,EAAE,WAAYA,EAAE,yCAIjC,QAASoE,SAAQZ,MACXA,MACFlH,QAAQ+H,aAAab,MAAM9G,KAAK,WAC9BiD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,IACf,SAAS1F,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SA/BjC,GAAIc,IAAKkD,IAETlD,IAAG6E,MAAQlI,QAAQwH,UACnBnE,GAAGrD,QAAUA,QACbqD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,GAChB5E,GAAGkE,WAAaA,WAChBlE,GAAGoE,WAAaA,WAChBpE,GAAGsE,WAAaA,WAChBtE,GAAGyE,QAAUA,QA1BfhF,UAAU+C,MACRpH,YAAauB,QAAQU,GAAK,cAC1BhC,WAAY2I,4BACZ1I,aAAc,WACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEM,KAAMA,KACN3G,QAASA,WAObqH,4BAA4B1E,SAAW,SAAU,YAAa,OAAQ,WAwCxE,QAASwF,YAAW9D,QAClBhB,GAAG+E,SAAW/D,OAAOrD,KACrB+B,MAAM,eAAiBsB,OAAOrD,MAGhC,QAASqH,eAAchE,QACrBA,OAAOiE,SACPjF,GAAG+E,UAAW,EAGhB,QAASG,cAAavI,QAASqE,QACzBhB,GAAG+E,UAAY/D,OAAOrD,OAE1BqC,GAAG+E,UAAW,EACd9G,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBgD,OAAOrD,SAG/F,QAASwH,YAAWnE,QAClBA,OAAOoE,UAGT,QAASC,eAAcrE,QACrBA,OAAOsE,WAAWvI,KAAK,aAEpB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASqG,kBAAiBvE,QACxBA,OAAOwE,cAAczI,KAAK,aAEvB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASuG,aAAYzE,QACnBG,OAAOC,SAASC,KAAOC,mBAAqB,IAAMN,OAAO3D,GAAK,gBAGhE,QAASqI,eAAc1E,QACrBrB,OAAOS,QAAQC,EAAE,gBAAiBA,EAAE,4DACjCtD,KAAK,WACJiE,OAAO2E,UACJ5I,KAAK,WACJkB,OAAOO,GAAG,SACT,SAASqF,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDW,OAAO2C,MAChEtD,EAAEwD,KAAK3E,YAK9B,QAAS0G,gBAAe5E,QACtBA,OAAO6E,cAGT,QAASC,OAAM9E,QAEbA,OAAO+E,KAAKC,SAASjJ,KAAK,WAExB0C,UAAU+C,MACRpH,YAAa4F,OAAO3D,GAAK,gBACzBhC,WAAY,gBACZC,aAAc,MACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEiD,aAAcjF,OAAO+E,KAAKlB,MAC1BvB,KAAMA,KACNtC,OAAQA,YAMhB,QAASkF,mBAAkBlF,QACzB,MAAmB,SAAfA,OAAOmF,MACDxC,KAAM3C,OAAO2C,KAAMyC,KAAK,SACV,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,oBAAqB+F,KAAM,UACrB,QAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,kBAAmB+F,KAAM,QACnB,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,mBAAoB+F,KAAM,UACpB,cAAfpF,OAAOmF,MACNxC,KAAM3C,OAAO2C,KAAMyC,KAAM,kBAK3BzC,KAAM3C,OAAO2C,KAAMyC,KAAM,UAGnC,QAASC,aAAYrF,OAAQmF,MAC3BnF,OAAOsF,aAAaH,MAAMpJ,KAAK,WAC7BiE,OAAOvC,SAAS5B,eAAe0J,QAAQ,KACtC,SAASrH,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASsH,sBACP,GAAIC,oBAAqBtF,OAAOsF,kBAEhCtJ,GAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAGzBQ,EAAEuJ,SAASD,mBAAoB9J,QAAQU,GAAK,iBAC/CoJ,mBAAmB3J,KAAKH,QAAQU,GAAK,gBAEvCF,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCe,QAAQmK,UAAUlL,QAAQiF,eACzBxD,EAAEuJ,SAASD,mBAAoB/K,QAAQ2B,KAC1CoJ,mBAAmB3J,KAAKpB,QAAQ2B,QAItCjB,QAAQyK,WAAWC,KAAK,GAAI,eAAgB3L,UAAWsL,qBAAqB1J,KAAK,SAAS8G,MACxF1G,EAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAC9BQ,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCmI,KAAKnI,QAAQ2B,MACf3B,QAAQiF,YAAckD,KAAKnI,QAAQ2B,WAK3CkG,YAAYwD,QAAQhK,KAAK,WACvB,GAAIiK,kBAAmBzD,YAAY0D,SAASC,oBACxCF,mBAAwC,YAApBA,kBACtBxH,SAASQ,GAAGwG,mBAAoD,IAAhCQ,iBAAiBG,kBAtOvD,GACIxK,SACAjB,QAFAsE,GAAKkD,IAITlD,IAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGwD,UAAYA,UACfxD,GAAG+D,SAAWA,SACd/D,GAAG8E,WAAaA,WAChB9E,GAAGgF,cAAgBA,cACnBhF,GAAGkF,aAAeA,aAClBlF,GAAGmF,WAAaA,WAChBnF,GAAGqF,cAAgBA,cACnBrF,GAAGuF,iBAAmBA,iBACtBvF,GAAGyF,YAAcA,YACjBzF,GAAG0F,cAAgBA,cACnB1F,GAAG4F,eAAiBA,eACpB5F,GAAG8F,MAAQA,MACX9F,GAAGkG,kBAAoBA,kBACvBlG,GAAGqG,YAAcA,YACjBrG,GAAGwG,mBAAqBA,mBAEG,QAAvBvI,OAAOa,QAAQ6E,MAAkB3D,GAAG3D,SAASwB,OAAS,GAAKmC,GAAG3D,SAAS,GAAGyB,WAAWD,OAAS,IAEhGlB,QAAUqD,GAAG3D,SAAS,GACtBX,QAAUiB,QAAQmB,WAAW,GAC7BG,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBtC,QAAQiC,SAgNhGqC,GAAGwG,qBA5OLpD,oBAAoB9D,SAAW,SAAU,WAAY,YAAa,UAAW,kBAAmB,SAAU,aAAc,UAAW,UAAW,OAAQ,cAAe,iBA+OrK7C,QACG0C,OAAO,iBACP9D,WAAW,sBAAuB+H,wBCvPvC,WACE,YAMA,SAASgE,mBAAkBnD,OAAQhG,OAAQwB,UAAWjE,cAAeI,aAAcE,aAAcG,aAAc+B,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASyH,SA2B/J,QAASC,YACPxL,aAAa4E,iBAAiBzE,aAAamC,MAAMrB,KAAK,WAEpD,GAAIwK,OAAQpK,EAAEqK,UAAU1L,aAAaoC,UAAW,SAASR,GACvD,MAAOA,GAAEU,KAAOnC,aAAamC,KAElB,KAATmJ,OACFzL,aAAaoC,UAAUuJ,OAAOF,MAAO,GAEvCvH,GAAGhE,QAAU,KACbiC,OAAOO,GAAG,wBAA0BlB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,UAI5G,QAAS+J,gBAAepF,OAAQtG,QAAS2L,YAElClL,QAAQmK,UAAUe,cACrBA,eAEFlI,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,gBAAiB0E,cAKvB,QAASC,OAAMtF,QACb,GAAItG,SAAUgE,GAAGhE,QAAQ6L,QACzBH,gBAAepF,OAAQtG,SAGzB,QAAS8L,UAASxF,QAChB,GAAItG,SAAUgE,GAAGhE,QAAQ+L,WACzBL,gBAAepF,OAAQtG,SAGzB,QAASgM,SAAQ1F,QACf,GAAItG,SAAUgE,GAAGhE,QAAQiM,UACzBP,gBAAepF,OAAQtG,SAGzB,QAASkM,MAAK5F,QACZtC,GAAGhE,QAAQmM,mBAAmBpL,KAAK,WACjC2K,eAAepF,OAAQtC,GAAGhE,WAI9B,QAASqG,YAAWC,OAAQ8F,WAC1B,GAAIpM,SAAUgE,GAAGrD,QAAQ4F,aACzBmF,gBAAepF,OAAQtG,SAAUoM,YAGnC,QAASC,eACPlH,OAAOC,SAASC,KAAOC,mBAAqB,IAAMtB,GAAGtE,QAAQ2B,GAAK,qBAAuB2C,GAAGhE,QAAQoC,IAGtG,QAASkK,eAAchG,QACrB+E,QAAQR,WAAWC,KAAK9G,GAAGhE,QAAQqB,GAAI,cAAcN,KAAK,SAAS8G,MAyBjE,QAAS0E,kCAAiCC,MAAO/I,WAC/C+I,MAAMC,MAAQ,WACZhJ,UAAU4E,QA1Bd5E,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACfpH,UACE,kDAAoD0E,EAAE,uBAAyB,KAC/E,wBACA,YACAwD,KACA,aACA,yBACA,6BACA,qCAAuCxD,EAAE,SAAW,eACpD,WACA,gBACAkB,KAAK,IACPlG,WAAYkN,mCAMdA,iCAAiCjJ,SAAW,QAAS,eApHzD,GAAIU,IAAKkD,IAETlD,IAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGtE,QAAUI,aACbkE,GAAGhE,QAAUC,aACb+D,GAAGmD,QAAUkE,QACbrH,GAAG0I,MAAS9D,WAAY,GAAI1E,SAAU,IACtCF,GAAGsH,SAAWA,SACdtH,GAAG4H,MAAQA,MACX5H,GAAG8H,SAAWA,SACd9H,GAAGgI,QAAUA,QACbhI,GAAGkI,KAAOA,KACVlI,GAAGqC,WAAaA,WAChBrC,GAAGqI,YAAcA,YACjBrI,GAAGsI,cAAgBA,cAKnBrE,OAAO0E,iBAAiB,uBAAwB,SAASC,QAASC,SAChE1L,EAAE4C,KAAK5C,EAAE0D,WAAWgI,QAASD,SAAU,SAASE,KAC9C9I,GAAGhE,QAAQ+M,UAAUD,SAxB3B1B,kBAAkB9H,SAAW,SAAU,SAAU,YAAa,gBAAiB,eAAgB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,UAAW,WAgI7L7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqB+L,sBCxIrC,WACE,YAMA,SAAS4B,yBAAwB9L,aAAce,OAAQ9B,GAAIsD,UAAWwJ,aAAczN,cAAeS,aAAcgH,gBAAiBzD,SAAUxB,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASsJ,YAAa3F,aA+DzM,QAAS4F,UAEHnJ,GAAGoJ,UACL5J,SAAS2J,OAAOnJ,GAAGoJ,UAErB3J,UAAU0J,SAGZ,QAASE,QACHrJ,GAAGoJ,UACL5J,SAAS2J,OAAOnJ,GAAGoJ,UAErBpJ,GAAGhE,QAAQsN,QAAQvM,KAAK,SAAS8G,MAC/BpE,UAAU4E,QACT,SAASR,MACVlE,OAAOmB,MAAMT,EAAEwD,KAAKC,QAASzD,EAAEwD,KAAK7H,YAIxC,QAASuN,eAActH,QACrB,GAAIuH,UAAWrN,GAAGsN,OAIlB,OAHAP,aAAYQ,WAAWzH,QAAQlF,KAAK,SAAS4M,SAC3CH,SAASjO,QAAQ4B,EAAEyM,OAAOD,QAAS,eAAgB1H,WAE9CuH,SAASK,QAIlB,QAASC,kBACP9J,GAAGhE,QAAQ+N,QACPxG,YAAY0D,SAAS+C,mBACvBhK,GAAGoJ,SAAW5J,SAASQ,GAAG8J,eAAsD,IAAtCvG,YAAY0D,SAAS+C,iBAAsB,KA7FzF,GAAIhK,IAAKkD,IAETlD,IAAGiK,cAAgBC,MAAQC,MAAQC,QACnCpK,GAAGoJ,SAAW,KACdpJ,GAAG8J,eAAiBA,eACpB9J,GAAGqK,QAAS,EACZrK,GAAGsK,SAAU,EACbtK,GAAGmJ,OAASA,OACZnJ,GAAGqJ,KAAOA,KACVrJ,GAAGuJ,cAAgBA,cACnBvJ,GAAGuK,WAAapN,EAAEsD,MAAMtD,EAAEqN,QAAQrN,EAAEsD,MAAMjF,cAAe,eAAgB,QACzEwE,GAAGyK,SAAW,GAAIxB,eAChBhO,IAAKgB,aAAayO,eAAeC,SAAS,IAAS,QACnDC,YAAY,EACZC,MAAO,cACPC,eAAgB,SAASC,KAAMC,UAC7B/L,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAMD,WAErCE,cAAe,SAASH,KAAMI,SAAUrH,OAAQsH,SAC9CnP,aAAaoP,QAAQF,SAAS/M,KAC9BnC,aAAasC,UACbU,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,aAAeK,KAAKC,UAAUJ,SAAUK,OAAW,KAExFC,aAAc,SAASV,KAAMI,SAAUrH,OAAQsH,SAC7CnM,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,YAAcK,KAAKC,UAAUJ,SAAUK,OAAW,IAGrFvP,aAAayP,kBAAkBX,KAAKY,KAAKhI,MACzCT,KAAK0I,gBAAgBb,OAEvBc,YAAa,SAASd,KAAMI,SAAUrH,OAAQsH,SAC5CnM,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,WAAaK,KAAKC,UAAUJ,SAAUK,OAAW,OAIzD,SAA3BtO,aAAa4O,WACf7P,aAAa4L,SAAS9K,KAAK,SAASgP,WAClC/L,GAAGhE,QAAU+P,UACb/L,GAAGqK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGtM,OAC7DmC,GAAGsK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAIvM,SAGhC,YAA3BX,aAAa4O,WACpB7P,aAAa8L,YAAYhL,KAAK,SAASgP,WACrC/L,GAAGhE,QAAU+P,UACb/L,GAAGqK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGtM,OAC7DmC,GAAGsK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAIvM,SAGhC,WAA3BX,aAAa4O,WACpB7P,aAAagM,WAAWlL,KAAK,SAASgP,WACpC/L,GAAGhE,QAAU+P,YAGRtP,QAAQmK,UAAU3K,gBACzB+D,GAAGhE,QAAUC,cAGXQ,QAAQmK,UAAU3D,mBACpBjD,GAAGhE,QAAQgQ,SAAS9B,GAAK/M,EAAE8O,MAAMjM,GAAGhE,QAAQgQ,SAAS9B,GAAI/M,EAAEsD,MAAMwC,gBAAiB,UAsCpFM,YAAYwD,QAAQhK,KAAK,WACnBwG,YAAY0D,SAAS+C,mBACvBhK,GAAGoJ,SAAW5J,SAASQ,GAAG8J,eAAsD,IAAtCvG,YAAY0D,SAAS+C,iBAAsB,KACvFhK,GAAGkM,WAAa3I,YAAY0D,SAASkF,aAtGzCnD,wBAAwB1J,SAAW,eAAgB,SAAU,KAAM,YAAa,eAAgB,gBAAiB,eAAgB,kBAAmB,WAAY,kBAAmB,UAAW,SAAU,UAAW,UAAW,cAAe,eA0G7O7C,QACG0C,OAAO,iBACP9D,WAAW,0BAA2B2N,4BClH3C,WAEE,YAQA,SAASoD,UAOP,QAASC,MAAK7D,MAAO8D,SAAUC,MAAOC,MACpCA,KAAKC,iBAAmBF,MAAMG,WAPhC,OACEC,SAAU,IACVN,KAAMA,KACNhR,WAAY,oBAYhB,QAASuR,kBAAiB3I,OAAQX,MAChC,GAAItD,IAAKkD,IAETe,QAAO4I,oBAAqB,EAC5B5I,OAAO6I,YAAc,GACrB7I,OAAOW,WAAa,GAEpBX,OAAOC,WAAa,SAASjC,QAC3B,MAAOqB,MAAKvF,QAAQkE,SAGtBgC,OAAO8I,gBAAkB,SAASC,QAChC,GAAInJ,KAEU,aAAVmJ,SACFnJ,MACEoJ,gBAAgB,EAChBH,YAAa7I,OAAO6I,YAAYI,UAIpCjJ,OAAOkJ,OAAOnR,QAAQoR,YAAYpN,GAAGyM,iBAAkBO,OAAQnJ,OAtBnE+I,iBAAiBtN,SAAW,SAAU,QA0BtC7C,QACG0C,OAAO,iBACP9D,WAAW,mBAAoBuR,kBAC/BS,UAAU,SAAUjB","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.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 = ['$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox($stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\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 return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['stateMailbox'];\n function stateMessages(stateMailbox) {\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 * @ngInject\n */\n stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var 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'];\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 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;\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.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 $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path), messageId: message.uid});\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 = vm.account.$newMessage();\n\n $mdDialog.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 }\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', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, 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 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 $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename();\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 = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {\n var vm = this;\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.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\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\n if (!angular.isDefined(recipients))\n recipients = [];\n\n $mdDialog.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 }\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 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', '$state', '$q', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $state, $q, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox, AddressBook, Preferences) {\n var vm = this;\n\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 var deferred = $q.defer();\n AddressBook.$filterAll($query).then(function(results) {\n deferred.resolve(_.invoke(results, '$shortFormat', $query));\n });\n return deferred.promise;\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/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index 0cec70fd6..79a413ba1 100644 --- a/UI/WebServerResources/js/Mailer.services.js +++ b/UI/WebServerResources/js/Mailer.services.js @@ -1,2 +1,2 @@ -!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.baseURL(),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){var collection=[];return data&&angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this,deferred=Account.$q.defer();return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){_this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),deferred.resolve(_this.$mailboxes)}):deferred.resolve(this.$mailboxes),deferred.promise},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,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;istartIndex&&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,deferred=Mailbox.$q.defer();return this.name==this.$shadowData.name?(deferred.resolve(),deferred.promise):(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),deferred.resolve()},function(data){deferred.reject(data)}),deferred.promise)},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)),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){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},"function"!=typeof futureMessageData.then?(angular.extend(this,futureMessageData),this.id=this.$absolutePath(),this.$formatFullAddresses()):this.$unwrap(futureMessageData),this.selected=!1}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)}),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");return _.filter(_.keys(Message.$tags),function(tag){var value=Message.$tags[tag];return-1!=value[0].search(re)})},Message.prototype.$absolutePath=function(options){var path;return 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),path.join("/")},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,this.id=this.$absolutePath(),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="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?(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":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.baseURL(),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){var collection=[];return data&&angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this,deferred=Account.$q.defer();return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){_this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),deferred.resolve(_this.$mailboxes)}):deferred.resolve(this.$mailboxes),deferred.promise},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,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,deferred=Mailbox.$q.defer();return this.name==this.$shadowData.name?(deferred.resolve(),deferred.promise):(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),deferred.resolve()},function(data){deferred.reject(data)}),deferred.promise)},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)),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){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},"function"!=typeof futureMessageData.then?(angular.extend(this,futureMessageData),this.id=this.$absolutePath(),this.$formatFullAddresses()):this.$unwrap(futureMessageData),this.selected=!1,this.$tapette+=1}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()),$tapette:0}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors)}),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");return _.filter(_.keys(Message.$tags),function(tag){var value=Message.$tags[tag];return-1!=value[0].search(re)})},Message.prototype.$absolutePath=function(options){var path;return 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),path.join("/")},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,this.id=this.$absolutePath(),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?(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';\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.baseURL(), 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 var collection = [];\n if (data) {\n // Each entry is spun up as an Account instance\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\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 deferred = Account.$q.defer();\n\n if (this.$mailboxes && !(options && options.reload)) {\n deferred.resolve(this.$mailboxes);\n }\n else {\n Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n _this.$flattenMailboxes({reload: true});\n deferred.resolve(_this.$mailboxes);\n });\n }\n\n return deferred.promise;\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 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 = false;\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 $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 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 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 deferred = Mailbox.$q.defer(),\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n deferred.resolve();\n return deferred.promise;\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 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 deferred.resolve();\n }, function(data) {\n deferred.reject(data);\n });\n\n return deferred.promise;\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));\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 */\n function Message(accountId, mailbox, futureMessageData) {\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 // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n angular.extend(this, futureMessageData);\n this.id = this.$absolutePath();\n this.$formatFullAddresses();\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n this.selected = false;\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 });\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 return _.filter(_.keys(Message.$tags), function(tag) {\n var value = Message.$tags[tag];\n return value[0].search(re) != -1;\n });\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 var path;\n\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 return path.join('/');\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 this.id = this.$absolutePath();\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 = '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) {\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 }\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.id, '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.id, 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.id, '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.id, 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() {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.id, '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.id, 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));\n angular.extend(message.editable, data);\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(); // 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 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 }\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 deferred = Message.$q.defer();\n\n // Expose the promise\n this.$futureMessageData = futureMessageData;\n\n // Resolve the promise\n this.$futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n Message.$timeout(function() {\n angular.extend(_this, data);\n _this.id = _this.$absolutePath();\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n deferred.resolve(_this);\n });\n if (!_this.isread) {\n Message.$$resource.fetch(_this.id, 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Message.$log.error(_this.error);\n deferred.reject();\n });\n\n return deferred.promise;\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"]} \ 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"],"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","baseURL","activeUser","$Mailbox","$Message","module","e","factory","$findAll","data","collection","forEach","o","i","id","prototype","$getMailboxes","options","_this","deferred","defer","$mailboxes","reload","$find","$flattenMailboxes","resolve","promise","allMailboxes","_visit","mailboxes","push","children","length","$$flattenMailboxes","$getMailboxByType","type","mailbox","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","post","toString","$newMessage","fetch","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","param","uid","indexOf","pluck","delegates","users","status","reject","l","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","Preferences","PRELOAD","$$Acl","$Preferences","$query","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Mail","SortingState","parseInt","constant","LOOKAHEAD","SIZE","$unwrapCollection","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","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","$tapette","$sce","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","filterTags","query","re","RegExp","keys","tag","search","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","response","$send","$futureMessageData","isread"],"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.baseURL(), 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 var collection = [];\n if (data) {\n // Each entry is spun up as an Account instance\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\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 deferred = Account.$q.defer();\n\n if (this.$mailboxes && !(options && options.reload)) {\n deferred.resolve(this.$mailboxes);\n }\n else {\n Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n _this.$flattenMailboxes({reload: true});\n deferred.resolve(_this.$mailboxes);\n });\n }\n\n return deferred.promise;\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 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 = false;\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 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 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 deferred = Mailbox.$q.defer(),\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n deferred.resolve();\n return deferred.promise;\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 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 deferred.resolve();\n }, function(data) {\n deferred.reject(data);\n });\n\n return deferred.promise;\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));\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 */\n function Message(accountId, mailbox, futureMessageData) {\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 // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n angular.extend(this, futureMessageData);\n this.id = this.$absolutePath();\n this.$formatFullAddresses();\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n this.selected = false;\n\n //console.log(\"new message instance! \" + this.$tapette);\n this.$tapette += 1;\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 $tapette: 0\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 });\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 return _.filter(_.keys(Message.$tags), function(tag) {\n var value = Message.$tags[tag];\n return value[0].search(re) != -1;\n });\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 var path;\n\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 return path.join('/');\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 this.id = this.$absolutePath();\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) {\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 }\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.id, '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.id, 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.id, '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.id, 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() {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.id, '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.id, 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));\n angular.extend(message.editable, data);\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(); // 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 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 }\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 deferred = Message.$q.defer();\n\n // Expose the promise\n this.$futureMessageData = futureMessageData;\n\n // Resolve the promise\n this.$futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n Message.$timeout(function() {\n angular.extend(_this, data);\n _this.id = _this.$absolutePath();\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n deferred.resolve(_this);\n });\n if (!_this.isread) {\n Message.$$resource.fetch(_this.id, 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Message.$log.error(_this.error);\n deferred.reject();\n });\n\n return deferred.promise;\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"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.services.js b/UI/WebServerResources/js/Scheduler.services.js index d514697de..991a7e733 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.$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.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},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(name){var i=_.indexOf(_.pluck(Calendar.$calendars,"id"),this.id);return this.name=name,Calendar.$calendars.splice(i,1),Calendar.$add(this),this.$save()},Calendar.prototype.$delete=function(){var list,promise,_this=this,d=Calendar.$q.defer();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),d.resolve()},function(data,status){d.reject(data)}),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.$save=function(){return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return 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"}}),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(event){return event.selected}).length),count},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 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={};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]}),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.$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(!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(dateString){var date=new Date(dateString.substring(0,10)+" "+dateString.substring(11,16)),hours=date.getHours(),minutes=date.getMinutes();return 10>hours&&(hours="0"+hours),10>minutes&&(minutes="0"+minutes),hours+":"+minutes}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startTime=component.startDate?formatTime(component.startDate):"",component.endTime=component.endDate?formatTime(component.endDate):"",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.$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.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},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(name){var i=_.indexOf(_.pluck(Calendar.$calendars,"id"),this.id);return this.name=name,Calendar.$calendars.splice(i,1),Calendar.$add(this),this.$save()},Calendar.prototype.$delete=function(){var list,promise,_this=this,d=Calendar.$q.defer();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),d.resolve()},function(data,status){d.reject(data)}),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.$save=function(){return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return 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"}}),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(event){return event.selected}).length),count},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 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={};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]}),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.$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(dateString){var date=new Date(dateString.substring(0,10)+" "+dateString.substring(11,16)),hours=date.getHours(),minutes=date.getMinutes();return 10>hours&&(hours="0"+hours),10>minutes&&(minutes="0"+minutes),hours+":"+minutes}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startTime=component.startDate?formatTime(component.startDate):"",component.endTime=component.endDate?formatTime(component.endDate):"",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 85e5eff93..b723be1a3 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","$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","prototype","isOwned","isSuperUser","getClassName","base","isUndefined","$rename","$save","$delete","remove","status","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","save","$omit","$setActivation","active","$getComponent","componentId","recurrenceId","$find","value","key","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","$filter","type","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","reduce","events","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","flatten","block","nbr","$blocks","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","classification","substring","end","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","$reset","$shadowData","$reply","reply","delegatedTo","$futureComponentData","isError","error","formatTime","dateString","hours","minutes","copy","startTime","endTime","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 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 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 };\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(name) {\n var i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), this.id);\n this.name = name;\n Calendar.$calendars.splice(i, 1);\n Calendar.$add(this);\n return this.$save();\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 d = Calendar.$q.defer(),\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 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 $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 $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 return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\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 });\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(event) { return event.selected; })).length;\n }\n return count;\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 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 = {};\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 // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[startDate.getDayString()] = data.blocks[i];\n startDate.addDays(1);\n }\n\n Component.$log.debug('blocks ready (' + _.keys(blocks).length + ')');\n\n // Save the blocks to the object model\n Component.$blocks = blocks;\n\n deferred.resolve(blocks);\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 if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\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 this.repeat.monthdays = [];\n if (angular.isUndefined(this.repeat.months))\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 $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 angular.extend(this, 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 times\n component.startTime = component.startDate ? formatTime(component.startDate) : '';\n component.endTime = component.endDate ? formatTime(component.endDate) : '';\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(dateString) {\n // YYYY-MM-DDTHH:MM-ZZ:00 => YYYY-MM-DD HH:MM\n var date = new Date(dateString.substring(0,10) + ' ' + dateString.substring(11,16)),\n hours = date.getHours(),\n minutes = date.getMinutes();\n\n if (hours < 10) hours = '0' + hours;\n if (minutes < 10) minutes = '0' + minutes;\n\n return hours + ':' + minutes;\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","$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","prototype","isOwned","isSuperUser","getClassName","base","isUndefined","$rename","$save","$delete","remove","status","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","save","$omit","$setActivation","active","$getComponent","componentId","recurrenceId","$find","value","key","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","$filter","type","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","reduce","events","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","flatten","block","nbr","$blocks","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","classification","substring","end","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","$reset","$shadowData","$reply","reply","delegatedTo","$futureComponentData","isError","error","formatTime","dateString","hours","minutes","copy","startTime","endTime","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 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 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 };\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(name) {\n var i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), this.id);\n this.name = name;\n Calendar.$calendars.splice(i, 1);\n Calendar.$add(this);\n return this.$save();\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 d = Calendar.$q.defer(),\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 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 $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 $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 return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\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 });\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(event) { return event.selected; })).length;\n }\n return count;\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 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 = {};\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 // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[startDate.getDayString()] = data.blocks[i];\n startDate.addDays(1);\n }\n\n Component.$log.debug('blocks ready (' + _.keys(blocks).length + ')');\n\n // Save the blocks to the object model\n Component.$blocks = blocks;\n\n deferred.resolve(blocks);\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 if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\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 $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 times\n component.startTime = component.startDate ? formatTime(component.startDate) : '';\n component.endTime = component.endDate ? formatTime(component.endDate) : '';\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(dateString) {\n // YYYY-MM-DDTHH:MM-ZZ:00 => YYYY-MM-DD HH:MM\n var date = new Date(dateString.substring(0,10) + ' ' + dateString.substring(11,16)),\n hours = date.getHours(),\n minutes = date.getMinutes();\n\n if (hours < 10) hours = '0' + hours;\n if (minutes < 10) minutes = '0' + minutes;\n\n return hours + ':' + minutes;\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 cd835d0e2..dd9b0551d 100644 --- a/UI/WebServerResources/js/vendor/angular-animate.js +++ b/UI/WebServerResources/js/vendor/angular-animate.js @@ -1,29 +1,3060 @@ /** - * @license AngularJS v1.3.18 - * (c) 2010-2014 Google, Inc. http://angularjs.org + * @license AngularJS v1.4.4 + * (c) 2010-2015 Google, Inc. http://angularjs.org * License: MIT */ (function(window, angular, undefined) {'use strict'; -/* jshint maxlen: false */ +/* jshint ignore:start */ +var noop = angular.noop; +var extend = angular.extend; +var jqLite = angular.element; +var forEach = angular.forEach; +var isArray = angular.isArray; +var isString = angular.isString; +var isObject = angular.isObject; +var isUndefined = angular.isUndefined; +var isDefined = angular.isDefined; +var isFunction = angular.isFunction; +var isElement = angular.isElement; + +var ELEMENT_NODE = 1; +var COMMENT_NODE = 8; + +var ADD_CLASS_SUFFIX = '-add'; +var REMOVE_CLASS_SUFFIX = '-remove'; +var EVENT_CLASS_PREFIX = 'ng-'; +var ACTIVE_CLASS_SUFFIX = '-active'; + +var NG_ANIMATE_CLASSNAME = 'ng-animate'; +var NG_ANIMATE_CHILDREN_DATA = '$$ngAnimateChildren'; + +// Detect proper transitionend/animationend event names. +var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; + +// If unprefixed events are not supported but webkit-prefixed are, use the latter. +// Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. +// Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` +// but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. +// Register both events in case `window.onanimationend` is not supported because of that, +// do the same for `transitionend` as Safari is likely to exhibit similar behavior. +// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit +// therefore there is no reason to test anymore for other vendor prefixes: +// http://caniuse.com/#search=transition +if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { + CSS_PREFIX = '-webkit-'; + TRANSITION_PROP = 'WebkitTransition'; + TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; +} else { + TRANSITION_PROP = 'transition'; + TRANSITIONEND_EVENT = 'transitionend'; +} + +if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { + CSS_PREFIX = '-webkit-'; + ANIMATION_PROP = 'WebkitAnimation'; + ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; +} else { + ANIMATION_PROP = 'animation'; + ANIMATIONEND_EVENT = 'animationend'; +} + +var DURATION_KEY = 'Duration'; +var PROPERTY_KEY = 'Property'; +var DELAY_KEY = 'Delay'; +var TIMING_KEY = 'TimingFunction'; +var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; +var ANIMATION_PLAYSTATE_KEY = 'PlayState'; +var SAFE_FAST_FORWARD_DURATION_VALUE = 9999; + +var ANIMATION_DELAY_PROP = ANIMATION_PROP + DELAY_KEY; +var ANIMATION_DURATION_PROP = ANIMATION_PROP + DURATION_KEY; +var TRANSITION_DELAY_PROP = TRANSITION_PROP + DELAY_KEY; +var TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY; + +var isPromiseLike = function(p) { + return p && p.then ? true : false; +}; + +function assertArg(arg, name, reason) { + if (!arg) { + throw ngMinErr('areq', "Argument '{0}' is {1}", (name || '?'), (reason || "required")); + } + return arg; +} + +function mergeClasses(a,b) { + if (!a && !b) return ''; + if (!a) return b; + if (!b) return a; + if (isArray(a)) a = a.join(' '); + if (isArray(b)) b = b.join(' '); + return a + ' ' + b; +} + +function packageStyles(options) { + var styles = {}; + if (options && (options.to || options.from)) { + styles.to = options.to; + styles.from = options.from; + } + return styles; +} + +function pendClasses(classes, fix, isPrefix) { + var className = ''; + classes = isArray(classes) + ? classes + : classes && isString(classes) && classes.length + ? classes.split(/\s+/) + : []; + forEach(classes, function(klass, i) { + if (klass && klass.length > 0) { + className += (i > 0) ? ' ' : ''; + className += isPrefix ? fix + klass + : klass + fix; + } + }); + return className; +} + +function removeFromArray(arr, val) { + var index = arr.indexOf(val); + if (val >= 0) { + arr.splice(index, 1); + } +} + +function stripCommentsFromElement(element) { + if (element instanceof jqLite) { + switch (element.length) { + case 0: + return []; + break; + + case 1: + // there is no point of stripping anything if the element + // is the only element within the jqLite wrapper. + // (it's important that we retain the element instance.) + if (element[0].nodeType === ELEMENT_NODE) { + return element; + } + break; + + default: + return jqLite(extractElementNode(element)); + break; + } + } + + if (element.nodeType === ELEMENT_NODE) { + return jqLite(element); + } +} + +function extractElementNode(element) { + if (!element[0]) return element; + for (var i = 0; i < element.length; i++) { + var elm = element[i]; + if (elm.nodeType == ELEMENT_NODE) { + return elm; + } + } +} + +function $$addClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.addClass(elm, className); + }); +} + +function $$removeClass($$jqLite, element, className) { + forEach(element, function(elm) { + $$jqLite.removeClass(elm, className); + }); +} + +function applyAnimationClassesFactory($$jqLite) { + return function(element, options) { + if (options.addClass) { + $$addClass($$jqLite, element, options.addClass); + options.addClass = null; + } + if (options.removeClass) { + $$removeClass($$jqLite, element, options.removeClass); + options.removeClass = null; + } + } +} + +function prepareAnimationOptions(options) { + options = options || {}; + if (!options.$$prepared) { + var domOperation = options.domOperation || noop; + options.domOperation = function() { + options.$$domOperationFired = true; + domOperation(); + domOperation = noop; + }; + options.$$prepared = true; + } + return options; +} + +function applyAnimationStyles(element, options) { + applyAnimationFromStyles(element, options); + applyAnimationToStyles(element, options); +} + +function applyAnimationFromStyles(element, options) { + if (options.from) { + element.css(options.from); + options.from = null; + } +} + +function applyAnimationToStyles(element, options) { + if (options.to) { + element.css(options.to); + options.to = null; + } +} + +function mergeAnimationOptions(element, target, newOptions) { + var toAdd = (target.addClass || '') + ' ' + (newOptions.addClass || ''); + var toRemove = (target.removeClass || '') + ' ' + (newOptions.removeClass || ''); + var classes = resolveElementClasses(element.attr('class'), toAdd, toRemove); + + if (newOptions.preparationClasses) { + target.preparationClasses = concatWithSpace(newOptions.preparationClasses, target.preparationClasses); + delete newOptions.preparationClasses; + } + + // noop is basically when there is no callback; otherwise something has been set + var realDomOperation = target.domOperation !== noop ? target.domOperation : null; + + extend(target, newOptions); + + // TODO(matsko or sreeramu): proper fix is to maintain all animation callback in array and call at last,but now only leave has the callback so no issue with this. + if (realDomOperation) { + target.domOperation = realDomOperation; + } + + if (classes.addClass) { + target.addClass = classes.addClass; + } else { + target.addClass = null; + } + + if (classes.removeClass) { + target.removeClass = classes.removeClass; + } else { + target.removeClass = null; + } + + return target; +} + +function resolveElementClasses(existing, toAdd, toRemove) { + var ADD_CLASS = 1; + var REMOVE_CLASS = -1; + + var flags = {}; + existing = splitClassesToLookup(existing); + + toAdd = splitClassesToLookup(toAdd); + forEach(toAdd, function(value, key) { + flags[key] = ADD_CLASS; + }); + + toRemove = splitClassesToLookup(toRemove); + forEach(toRemove, function(value, key) { + flags[key] = flags[key] === ADD_CLASS ? null : REMOVE_CLASS; + }); + + var classes = { + addClass: '', + removeClass: '' + }; + + forEach(flags, function(val, klass) { + var prop, allow; + if (val === ADD_CLASS) { + prop = 'addClass'; + allow = !existing[klass]; + } else if (val === REMOVE_CLASS) { + prop = 'removeClass'; + allow = existing[klass]; + } + if (allow) { + if (classes[prop].length) { + classes[prop] += ' '; + } + classes[prop] += klass; + } + }); + + function splitClassesToLookup(classes) { + if (isString(classes)) { + classes = classes.split(' '); + } + + var obj = {}; + forEach(classes, function(klass) { + // sometimes the split leaves empty string values + // incase extra spaces were applied to the options + if (klass.length) { + obj[klass] = true; + } + }); + return obj; + } + + return classes; +} + +function getDomNode(element) { + return (element instanceof angular.element) ? element[0] : element; +} + +function applyGeneratedPreparationClasses(element, event, options) { + var classes = ''; + if (event) { + classes = pendClasses(event, EVENT_CLASS_PREFIX, true); + } + if (options.addClass) { + classes = concatWithSpace(classes, pendClasses(options.addClass, ADD_CLASS_SUFFIX)); + } + if (options.removeClass) { + classes = concatWithSpace(classes, pendClasses(options.removeClass, REMOVE_CLASS_SUFFIX)); + } + if (classes.length) { + options.preparationClasses = classes; + element.addClass(classes); + } +} + +function clearGeneratedClasses(element, options) { + if (options.preparationClasses) { + element.removeClass(options.preparationClasses); + options.preparationClasses = null; + } + if (options.activeClasses) { + element.removeClass(options.activeClasses); + options.activeClasses = null; + } +} + +function blockTransitions(node, duration) { + // we use a negative delay value since it performs blocking + // yet it doesn't kill any existing transitions running on the + // same element which makes this safe for class-based animations + var value = duration ? '-' + duration + 's' : ''; + applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]); + return [TRANSITION_DELAY_PROP, value]; +} + +function blockKeyframeAnimations(node, applyBlock) { + var value = applyBlock ? 'paused' : ''; + var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY; + applyInlineStyle(node, [key, value]); + return [key, value]; +} + +function applyInlineStyle(node, styleTuple) { + var prop = styleTuple[0]; + var value = styleTuple[1]; + node.style[prop] = value; +} + +function concatWithSpace(a,b) { + if (!a) return b; + if (!b) return a; + return a + ' ' + b; +} + +function $$BodyProvider() { + this.$get = ['$document', function($document) { + return jqLite($document[0].body); + }]; +} + +var $$AnimateChildrenDirective = [function() { + return function(scope, element, attrs) { + var val = attrs.ngAnimateChildren; + if (angular.isString(val) && val.length === 0) { //empty attribute + element.data(NG_ANIMATE_CHILDREN_DATA, true); + } else { + attrs.$observe('ngAnimateChildren', function(value) { + value = value === 'on' || value === 'true'; + element.data(NG_ANIMATE_CHILDREN_DATA, value); + }); + } + }; +}]; + +/** + * @ngdoc service + * @name $animateCss + * @kind object + * + * @description + * The `$animateCss` service is a useful utility to trigger customized CSS-based transitions/keyframes + * from a JavaScript-based animation or directly from a directive. The purpose of `$animateCss` is NOT + * to side-step how `$animate` and ngAnimate work, but the goal is to allow pre-existing animations or + * directives to create more complex animations that can be purely driven using CSS code. + * + * Note that only browsers that support CSS transitions and/or keyframe animations are capable of + * rendering animations triggered via `$animateCss` (bad news for IE9 and lower). + * + * ## Usage + * Once again, `$animateCss` is designed to be used inside of a registered JavaScript animation that + * is powered by ngAnimate. It is possible to use `$animateCss` directly inside of a directive, however, + * any automatic control over cancelling animations and/or preventing animations from being run on + * child elements will not be handled by Angular. For this to work as expected, please use `$animate` to + * trigger the animation and then setup a JavaScript animation that injects `$animateCss` to trigger + * the CSS animation. + * + * The example below shows how we can create a folding animation on an element using `ng-if`: + * + * ```html + * + *
+ * This element will go BOOM + *
+ * + * ``` + * + * Now we create the **JavaScript animation** that will trigger the CSS transition: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * ## More Advanced Uses + * + * `$animateCss` is the underlying code that ngAnimate uses to power **CSS-based animations** behind the scenes. Therefore CSS hooks + * like `.ng-EVENT`, `.ng-EVENT-active`, `.ng-EVENT-stagger` are all features that can be triggered using `$animateCss` via JavaScript code. + * + * This also means that just about any combination of adding classes, removing classes, setting styles, dynamically setting a keyframe animation, + * applying a hardcoded duration or delay value, changing the animation easing or applying a stagger animation are all options that work with + * `$animateCss`. The service itself is smart enough to figure out the combination of options and examine the element styling properties in order + * to provide a working animation that will run in CSS. + * + * The example below showcases a more advanced version of the `.fold-animation` from the example above: + * + * ```js + * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var height = element[0].offsetHeight; + * return $animateCss(element, { + * addClass: 'red large-text pulse-twice', + * easing: 'ease-out', + * from: { height:'0px' }, + * to: { height:height + 'px' }, + * duration: 1 // one second + * }); + * } + * } + * }]); + * ``` + * + * Since we're adding/removing CSS classes then the CSS transition will also pick those up: + * + * ```css + * /* since a hardcoded duration value of 1 was provided in the JavaScript animation code, + * the CSS classes below will be transitioned despite them being defined as regular CSS classes */ + * .red { background:red; } + * .large-text { font-size:20px; } + * + * /* we can also use a keyframe animation and $animateCss will make it work alongside the transition */ + * .pulse-twice { + * animation: 0.5s pulse linear 2; + * -webkit-animation: 0.5s pulse linear 2; + * } + * + * @keyframes pulse { + * from { transform: scale(0.5); } + * to { transform: scale(1.5); } + * } + * + * @-webkit-keyframes pulse { + * from { -webkit-transform: scale(0.5); } + * to { -webkit-transform: scale(1.5); } + * } + * ``` + * + * Given this complex combination of CSS classes, styles and options, `$animateCss` will figure everything out and make the animation happen. + * + * ## How the Options are handled + * + * `$animateCss` is very versatile and intelligent when it comes to figuring out what configurations to apply to the element to ensure the animation + * works with the options provided. Say for example we were adding a class that contained a keyframe value and we wanted to also animate some inline + * styles using the `from` and `to` properties. + * + * ```js + * var animator = $animateCss(element, { + * from: { background:'red' }, + * to: { background:'blue' } + * }); + * animator.start(); + * ``` + * + * ```css + * .rotating-animation { + * animation:0.5s rotate linear; + * -webkit-animation:0.5s rotate linear; + * } + * + * @keyframes rotate { + * from { transform: rotate(0deg); } + * to { transform: rotate(360deg); } + * } + * + * @-webkit-keyframes rotate { + * from { -webkit-transform: rotate(0deg); } + * to { -webkit-transform: rotate(360deg); } + * } + * ``` + * + * The missing pieces here are that we do not have a transition set (within the CSS code nor within the `$animateCss` options) and the duration of the animation is + * going to be detected from what the keyframe styles on the CSS class are. In this event, `$animateCss` will automatically create an inline transition + * style matching the duration detected from the keyframe style (which is present in the CSS class that is being added) and then prepare both the transition + * and keyframe animations to run in parallel on the element. Then when the animation is underway the provided `from` and `to` CSS styles will be applied + * and spread across the transition and keyframe animation. + * + * ## What is returned + * + * `$animateCss` works in two stages: a preparation phase and an animation phase. Therefore when `$animateCss` is first called it will NOT actually + * start the animation. All that is going on here is that the element is being prepared for the animation (which means that the generated CSS classes are + * added and removed on the element). Once `$animateCss` is called it will return an object with the following properties: + * + * ```js + * var animator = $animateCss(element, { ... }); + * ``` + * + * Now what do the contents of our `animator` variable look like: + * + * ```js + * { + * // starts the animation + * start: Function, + * + * // ends (aborts) the animation + * end: Function + * } + * ``` + * + * To actually start the animation we need to run `animation.start()` which will then return a promise that we can hook into to detect when the animation ends. + * If we choose not to run the animation then we MUST run `animation.end()` to perform a cleanup on the element (since some CSS classes and stlyes may have been + * applied to the element during the preparation phase). Note that all other properties such as duration, delay, transitions and keyframes are just properties + * and that changing them will not reconfigure the parameters of the animation. + * + * ### runner.done() vs runner.then() + * It is documented that `animation.start()` will return a promise object and this is true, however, there is also an additional method available on the + * runner called `.done(callbackFn)`. The done method works the same as `.finally(callbackFn)`, however, it does **not trigger a digest to occur**. + * Therefore, for performance reasons, it's always best to use `runner.done(callback)` instead of `runner.then()`, `runner.catch()` or `runner.finally()` + * unless you really need a digest to kick off afterwards. + * + * Keep in mind that, to make this easier, ngAnimate has tweaked the JS animations API to recognize when a runner instance is returned from $animateCss + * (so there is no need to call `runner.done(doneFn)` inside of your JavaScript animation code). + * Check the {@link ngAnimate.$animateCss#usage animation code above} to see how this works. + * + * @param {DOMElement} element the element that will be animated + * @param {object} options the animation-related options that will be applied during the animation + * + * * `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`). + * * `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. + * * `addClass` - A space separated list of CSS classes that will be added to the element and spread across the animation. + * * `removeClass` - A space separated list of CSS classes that will be removed from the element and spread across the animation. + * * `duration` - A number value representing the total duration of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `0` + * is provided then the animation will be skipped entirely. + * * `delay` - A number value representing the total delay of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `true` is + * used then whatever delay value is detected from the CSS classes will be mirrored on the elements styles (e.g. by setting delay true then the style value + * of the element will be `transition-delay: DETECTED_VALUE`). Using `true` is useful when you want the CSS classes and inline styles to all share the same + * CSS delay value. + * * `stagger` - A numeric time value representing the delay between successively animated elements + * ({@link ngAnimate#css-staggering-animations Click here to learn how CSS-based staggering works in ngAnimate.}) + * * `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.) + * + * @return {object} an object with start and end methods and details about the animation. + * + * * `start` - The method to start the animation. This will return a `Promise` when called. + * * `end` - This method will cancel the animation and remove all applied CSS classes and styles. + */ +var ONE_SECOND = 1000; +var BASE_TEN = 10; + +var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; +var CLOSING_TIME_BUFFER = 1.5; + +var DETECT_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + transitionProperty: TRANSITION_PROP + PROPERTY_KEY, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP, + animationIterationCount: ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY +}; + +var DETECT_STAGGER_CSS_PROPERTIES = { + transitionDuration: TRANSITION_DURATION_PROP, + transitionDelay: TRANSITION_DELAY_PROP, + animationDuration: ANIMATION_DURATION_PROP, + animationDelay: ANIMATION_DELAY_PROP +}; + +function getCssKeyframeDurationStyle(duration) { + return [ANIMATION_DURATION_PROP, duration + 's']; +} + +function getCssDelayStyle(delay, isKeyframeAnimation) { + var prop = isKeyframeAnimation ? ANIMATION_DELAY_PROP : TRANSITION_DELAY_PROP; + return [prop, delay + 's']; +} + +function computeCssStyles($window, element, properties) { + var styles = Object.create(null); + var detectedStyles = $window.getComputedStyle(element) || {}; + forEach(properties, function(formalStyleName, actualStyleName) { + var val = detectedStyles[formalStyleName]; + if (val) { + var c = val.charAt(0); + + // only numerical-based values have a negative sign or digit as the first value + if (c === '-' || c === '+' || c >= 0) { + val = parseMaxTime(val); + } + + // by setting this to null in the event that the delay is not set or is set directly as 0 + // then we can still allow for zegative values to be used later on and not mistake this + // value for being greater than any other negative value. + if (val === 0) { + val = null; + } + styles[actualStyleName] = val; + } + }); + + return styles; +} + +function parseMaxTime(str) { + var maxValue = 0; + var values = str.split(/\s*,\s*/); + forEach(values, function(value) { + // it's always safe to consider only second values and omit `ms` values since + // getComputedStyle will always handle the conversion for us + if (value.charAt(value.length - 1) == 's') { + value = value.substring(0, value.length - 1); + } + value = parseFloat(value) || 0; + maxValue = maxValue ? Math.max(value, maxValue) : value; + }); + return maxValue; +} + +function truthyTimingValue(val) { + return val === 0 || val != null; +} + +function getCssTransitionDurationStyle(duration, applyOnlyDuration) { + var style = TRANSITION_PROP; + var value = duration + 's'; + if (applyOnlyDuration) { + style += DURATION_KEY; + } else { + value += ' linear all'; + } + return [style, value]; +} + +function createLocalCacheLookup() { + var cache = Object.create(null); + return { + flush: function() { + cache = Object.create(null); + }, + + count: function(key) { + var entry = cache[key]; + return entry ? entry.total : 0; + }, + + get: function(key) { + var entry = cache[key]; + return entry && entry.value; + }, + + put: function(key, value) { + if (!cache[key]) { + cache[key] = { total: 1, value: value }; + } else { + cache[key].total++; + } + } + }; +} + +var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { + var gcsLookup = createLocalCacheLookup(); + var gcsStaggerLookup = createLocalCacheLookup(); + + this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout', '$$forceReflow', '$sniffer', '$$rAF', + function($window, $$jqLite, $$AnimateRunner, $timeout, $$forceReflow, $sniffer, $$rAF) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + var parentCounter = 0; + function gcsHashFn(node, extraClasses) { + var KEY = "$$ngAnimateParentKey"; + var parentNode = node.parentNode; + var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter); + return parentID + '-' + node.getAttribute('class') + '-' + extraClasses; + } + + function computeCachedCssStyles(node, className, cacheKey, properties) { + var timings = gcsLookup.get(cacheKey); + + if (!timings) { + timings = computeCssStyles($window, node, properties); + if (timings.animationIterationCount === 'infinite') { + timings.animationIterationCount = 1; + } + } + + // we keep putting this in multiple times even though the value and the cacheKey are the same + // because we're keeping an interal tally of how many duplicate animations are detected. + gcsLookup.put(cacheKey, timings); + return timings; + } + + function computeCachedCssStaggerStyles(node, className, cacheKey, properties) { + var stagger; + + // if we have one or more existing matches of matching elements + // containing the same parent + CSS styles (which is how cacheKey works) + // then staggering is possible + if (gcsLookup.count(cacheKey) > 0) { + stagger = gcsStaggerLookup.get(cacheKey); + + if (!stagger) { + var staggerClassName = pendClasses(className, '-stagger'); + + $$jqLite.addClass(node, staggerClassName); + + stagger = computeCssStyles($window, node, properties); + + // force the conversion of a null value to zero incase not set + stagger.animationDuration = Math.max(stagger.animationDuration, 0); + stagger.transitionDuration = Math.max(stagger.transitionDuration, 0); + + $$jqLite.removeClass(node, staggerClassName); + + gcsStaggerLookup.put(cacheKey, stagger); + } + } + + return stagger || {}; + } + + var cancelLastRAFRequest; + var rafWaitQueue = []; + function waitUntilQuiet(callback) { + if (cancelLastRAFRequest) { + cancelLastRAFRequest(); //cancels the request + } + rafWaitQueue.push(callback); + cancelLastRAFRequest = $$rAF(function() { + cancelLastRAFRequest = null; + gcsLookup.flush(); + gcsStaggerLookup.flush(); + + // DO NOT REMOVE THIS LINE OR REFACTOR OUT THE `pageWidth` variable. + // PLEASE EXAMINE THE `$$forceReflow` service to understand why. + var pageWidth = $$forceReflow(); + + // we use a for loop to ensure that if the queue is changed + // during this looping then it will consider new requests + for (var i = 0; i < rafWaitQueue.length; i++) { + rafWaitQueue[i](pageWidth); + } + rafWaitQueue.length = 0; + }); + } + + return init; + + function computeTimings(node, className, cacheKey) { + var timings = computeCachedCssStyles(node, className, cacheKey, DETECT_CSS_PROPERTIES); + var aD = timings.animationDelay; + var tD = timings.transitionDelay; + timings.maxDelay = aD && tD + ? Math.max(aD, tD) + : (aD || tD); + timings.maxDuration = Math.max( + timings.animationDuration * timings.animationIterationCount, + timings.transitionDuration); + + return timings; + } + + function init(element, options) { + var node = getDomNode(element); + if (!node || !node.parentNode) { + return closeAndReturnNoopAnimator(); + } + + options = prepareAnimationOptions(options); + + var temporaryStyles = []; + var classes = element.attr('class'); + var styles = packageStyles(options); + var animationClosed; + var animationPaused; + var animationCompleted; + var runner; + var runnerHost; + var maxDelay; + var maxDelayTime; + var maxDuration; + var maxDurationTime; + + if (options.duration === 0 || (!$sniffer.animations && !$sniffer.transitions)) { + return closeAndReturnNoopAnimator(); + } + + var method = options.event && isArray(options.event) + ? options.event.join(' ') + : options.event; + + var isStructural = method && options.structural; + var structuralClassName = ''; + var addRemoveClassName = ''; + + if (isStructural) { + structuralClassName = pendClasses(method, EVENT_CLASS_PREFIX, true); + } else if (method) { + structuralClassName = method; + } + + if (options.addClass) { + addRemoveClassName += pendClasses(options.addClass, ADD_CLASS_SUFFIX); + } + + if (options.removeClass) { + if (addRemoveClassName.length) { + addRemoveClassName += ' '; + } + addRemoveClassName += pendClasses(options.removeClass, REMOVE_CLASS_SUFFIX); + } + + // there may be a situation where a structural animation is combined together + // with CSS classes that need to resolve before the animation is computed. + // However this means that there is no explicit CSS code to block the animation + // from happening (by setting 0s none in the class name). If this is the case + // we need to apply the classes before the first rAF so we know to continue if + // there actually is a detected transition or keyframe animation + if (options.applyClassesEarly && addRemoveClassName.length) { + applyAnimationClasses(element, options); + addRemoveClassName = ''; + } + + var preparationClasses = [structuralClassName, addRemoveClassName].join(' ').trim(); + var fullClassName = classes + ' ' + preparationClasses; + var activeClasses = pendClasses(preparationClasses, ACTIVE_CLASS_SUFFIX); + var hasToStyles = styles.to && Object.keys(styles.to).length > 0; + var containsKeyframeAnimation = (options.keyframeStyle || '').length > 0; + + // there is no way we can trigger an animation if no styles and + // no classes are being applied which would then trigger a transition, + // unless there a is raw keyframe value that is applied to the element. + if (!containsKeyframeAnimation + && !hasToStyles + && !preparationClasses) { + return closeAndReturnNoopAnimator(); + } + + var cacheKey, stagger; + if (options.stagger > 0) { + var staggerVal = parseFloat(options.stagger); + stagger = { + transitionDelay: staggerVal, + animationDelay: staggerVal, + transitionDuration: 0, + animationDuration: 0 + }; + } else { + cacheKey = gcsHashFn(node, fullClassName); + stagger = computeCachedCssStaggerStyles(node, preparationClasses, cacheKey, DETECT_STAGGER_CSS_PROPERTIES); + } + + if (!options.$$skipPreparationClasses) { + $$jqLite.addClass(element, preparationClasses); + } + + var applyOnlyDuration; + + if (options.transitionStyle) { + var transitionStyle = [TRANSITION_PROP, options.transitionStyle]; + applyInlineStyle(node, transitionStyle); + temporaryStyles.push(transitionStyle); + } + + if (options.duration >= 0) { + applyOnlyDuration = node.style[TRANSITION_PROP].length > 0; + var durationStyle = getCssTransitionDurationStyle(options.duration, applyOnlyDuration); + + // we set the duration so that it will be picked up by getComputedStyle later + applyInlineStyle(node, durationStyle); + temporaryStyles.push(durationStyle); + } + + if (options.keyframeStyle) { + var keyframeStyle = [ANIMATION_PROP, options.keyframeStyle]; + applyInlineStyle(node, keyframeStyle); + temporaryStyles.push(keyframeStyle); + } + + var itemIndex = stagger + ? options.staggerIndex >= 0 + ? options.staggerIndex + : gcsLookup.count(cacheKey) + : 0; + + var isFirst = itemIndex === 0; + + // this is a pre-emptive way of forcing the setup classes to be added and applied INSTANTLY + // without causing any combination of transitions to kick in. By adding a negative delay value + // it forces the setup class' transition to end immediately. We later then remove the negative + // transition delay to allow for the transition to naturally do it's thing. The beauty here is + // that if there is no transition defined then nothing will happen and this will also allow + // other transitions to be stacked on top of each other without any chopping them out. + if (isFirst && !options.skipBlocking) { + blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE); + } + + var timings = computeTimings(node, fullClassName, cacheKey); + var relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + var flags = {}; + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty == 'all'; + flags.applyTransitionDuration = hasToStyles && ( + (flags.hasTransitions && !flags.hasTransitionAll) + || (flags.hasAnimations && !flags.hasTransitions)); + flags.applyAnimationDuration = options.duration && flags.hasAnimations; + flags.applyTransitionDelay = truthyTimingValue(options.delay) && (flags.applyTransitionDuration || flags.hasTransitions); + flags.applyAnimationDelay = truthyTimingValue(options.delay) && flags.hasAnimations; + flags.recalculateTimingStyles = addRemoveClassName.length > 0; + + if (flags.applyTransitionDuration || flags.applyAnimationDuration) { + maxDuration = options.duration ? parseFloat(options.duration) : maxDuration; + + if (flags.applyTransitionDuration) { + flags.hasTransitions = true; + timings.transitionDuration = maxDuration; + applyOnlyDuration = node.style[TRANSITION_PROP + PROPERTY_KEY].length > 0; + temporaryStyles.push(getCssTransitionDurationStyle(maxDuration, applyOnlyDuration)); + } + + if (flags.applyAnimationDuration) { + flags.hasAnimations = true; + timings.animationDuration = maxDuration; + temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration)); + } + } + + if (maxDuration === 0 && !flags.recalculateTimingStyles) { + return closeAndReturnNoopAnimator(); + } + + // we need to recalculate the delay value since we used a pre-emptive negative + // delay value and the delay value is required for the final event checking. This + // property will ensure that this will happen after the RAF phase has passed. + if (options.duration == null && timings.transitionDuration > 0) { + flags.recalculateTimingStyles = flags.recalculateTimingStyles || isFirst; + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + if (!options.skipBlocking) { + flags.blockTransition = timings.transitionDuration > 0; + flags.blockKeyframeAnimation = timings.animationDuration > 0 && + stagger.animationDelay > 0 && + stagger.animationDuration === 0; + } + + applyAnimationFromStyles(element, options); + + if (flags.blockTransition || flags.blockKeyframeAnimation) { + applyBlocking(maxDuration); + } else if (!options.skipBlocking) { + blockTransitions(node, false); + } + + // TODO(matsko): for 1.5 change this code to have an animator object for better debugging + return { + $$willAnimate: true, + end: endFn, + start: function() { + if (animationClosed) return; + + runnerHost = { + end: endFn, + cancel: cancelFn, + resume: null, //this will be set during the start() phase + pause: null + }; + + runner = new $$AnimateRunner(runnerHost); + + waitUntilQuiet(start); + + // we don't have access to pause/resume the animation + // since it hasn't run yet. AnimateRunner will therefore + // set noop functions for resume and pause and they will + // later be overridden once the animation is triggered + return runner; + } + }; + + function endFn() { + close(); + } + + function cancelFn() { + close(true); + } + + function close(rejected) { // jshint ignore:line + // if the promise has been called already then we shouldn't close + // the animation again + if (animationClosed || (animationCompleted && animationPaused)) return; + animationClosed = true; + animationPaused = false; + + if (!options.$$skipPreparationClasses) { + $$jqLite.removeClass(element, preparationClasses); + } + $$jqLite.removeClass(element, activeClasses); + + blockKeyframeAnimations(node, false); + blockTransitions(node, false); + + forEach(temporaryStyles, function(entry) { + // There is only one way to remove inline style properties entirely from elements. + // By using `removeProperty` this works, but we need to convert camel-cased CSS + // styles down to hyphenated values. + node.style[entry[0]] = ''; + }); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + + // 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 + // the element must be removed just after the animation is over or else the element + // will appear on screen for one animation frame causing an overbearing flicker. + if (options.onDone) { + options.onDone(); + } + + // if the preparation function fails then the promise is not setup + if (runner) { + runner.complete(!rejected); + } + } + + function applyBlocking(duration) { + if (flags.blockTransition) { + blockTransitions(node, duration); + } + + if (flags.blockKeyframeAnimation) { + blockKeyframeAnimations(node, !!duration); + } + } + + function closeAndReturnNoopAnimator() { + runner = new $$AnimateRunner({ + end: endFn, + cancel: cancelFn + }); + + close(); + + return { + $$willAnimate: false, + start: function() { + return runner; + }, + end: endFn + }; + } + + function start() { + if (animationClosed) return; + if (!node.parentNode) { + close(); + return; + } + + var startTime, events = []; + + // even though we only pause keyframe animations here the pause flag + // will still happen when transitions are used. Only the transition will + // not be paused since that is not possible. If the animation ends when + // paused then it will not complete until unpaused or cancelled. + var playPause = function(playAnimation) { + if (!animationCompleted) { + animationPaused = !playAnimation; + if (timings.animationDuration) { + var value = blockKeyframeAnimations(node, animationPaused); + animationPaused + ? temporaryStyles.push(value) + : removeFromArray(temporaryStyles, value); + } + } else if (animationPaused && playAnimation) { + animationPaused = false; + close(); + } + }; + + // checking the stagger duration prevents an accidently cascade of the CSS delay style + // being inherited from the parent. If the transition duration is zero then we can safely + // rely that the delay value is an intential stagger delay style. + var maxStagger = itemIndex > 0 + && ((timings.transitionDuration && stagger.transitionDuration === 0) || + (timings.animationDuration && stagger.animationDuration === 0)) + && Math.max(stagger.animationDelay, stagger.transitionDelay); + if (maxStagger) { + $timeout(triggerAnimationStart, + Math.floor(maxStagger * itemIndex * ONE_SECOND), + false); + } else { + triggerAnimationStart(); + } + + // this will decorate the existing promise runner with pause/resume methods + runnerHost.resume = function() { + playPause(true); + }; + + runnerHost.pause = function() { + playPause(false); + }; + + function triggerAnimationStart() { + // just incase a stagger animation kicks in when the animation + // itself was cancelled entirely + if (animationClosed) return; + + applyBlocking(false); + + forEach(temporaryStyles, function(entry) { + var key = entry[0]; + var value = entry[1]; + node.style[key] = value; + }); + + applyAnimationClasses(element, options); + $$jqLite.addClass(element, activeClasses); + + if (flags.recalculateTimingStyles) { + fullClassName = node.className + ' ' + preparationClasses; + cacheKey = gcsHashFn(node, fullClassName); + + timings = computeTimings(node, fullClassName, cacheKey); + relativeDelay = timings.maxDelay; + maxDelay = Math.max(relativeDelay, 0); + maxDuration = timings.maxDuration; + + if (maxDuration === 0) { + close(); + return; + } + + flags.hasTransitions = timings.transitionDuration > 0; + flags.hasAnimations = timings.animationDuration > 0; + } + + if (flags.applyTransitionDelay || flags.applyAnimationDelay) { + relativeDelay = typeof options.delay !== "boolean" && truthyTimingValue(options.delay) + ? parseFloat(options.delay) + : relativeDelay; + + maxDelay = Math.max(relativeDelay, 0); + + var delayStyle; + if (flags.applyTransitionDelay) { + timings.transitionDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + + if (flags.applyAnimationDelay) { + timings.animationDelay = relativeDelay; + delayStyle = getCssDelayStyle(relativeDelay, true); + temporaryStyles.push(delayStyle); + node.style[delayStyle[0]] = delayStyle[1]; + } + } + + maxDelayTime = maxDelay * ONE_SECOND; + maxDurationTime = maxDuration * ONE_SECOND; + + if (options.easing) { + var easeProp, easeVal = options.easing; + if (flags.hasTransitions) { + easeProp = TRANSITION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + if (flags.hasAnimations) { + easeProp = ANIMATION_PROP + TIMING_KEY; + temporaryStyles.push([easeProp, easeVal]); + node.style[easeProp] = easeVal; + } + } + + if (timings.transitionDuration) { + events.push(TRANSITIONEND_EVENT); + } + + if (timings.animationDuration) { + events.push(ANIMATIONEND_EVENT); + } + + startTime = Date.now(); + element.on(events.join(' '), onAnimationProgress); + $timeout(onAnimationExpired, maxDelayTime + CLOSING_TIME_BUFFER * maxDurationTime, false); + + applyAnimationToStyles(element, options); + } + + function onAnimationExpired() { + // although an expired animation is a failed animation, getting to + // this outcome is very easy if the CSS code screws up. Therefore we + // should still continue normally as if the animation completed correctly. + close(); + } + + function onAnimationProgress(event) { + event.stopPropagation(); + var ev = event.originalEvent || event; + var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); + + /* Firefox (or possibly just Gecko) likes to not round values up + * when a ms measurement is used for the animation */ + var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); + + /* $manualTimeStamp is a mocked timeStamp value which is set + * within browserTrigger(). This is only here so that tests can + * mock animations properly. Real events fallback to event.timeStamp, + * or, if they don't, then a timeStamp is automatically created for them. + * We're checking to see if the timeStamp surpasses the expected delay, + * but we're using elapsedTime instead of the timeStamp on the 2nd + * pre-condition since animations sometimes close off early */ + if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { + // we set this flag to ensure that if the transition is paused then, when resumed, + // the animation will automatically close itself since transitions cannot be paused. + animationCompleted = true; + close(); + } + } + } + } + }]; +}]; + +var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateCssDriver'); + + var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim'; + var NG_ANIMATE_ANCHOR_CLASS_NAME = 'ng-anchor'; + + 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) { + + // only browsers that support these properties can render animations + if (!$sniffer.animations && !$sniffer.transitions) return noop; + + var bodyNode = getDomNode($$body); + var rootNode = getDomNode($rootElement); + + var rootBodyElement = jqLite(bodyNode.parentNode === rootNode ? bodyNode : rootNode); + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + return function initDriverFn(animationDetails, onBeforeClassesAppliedCb) { + return animationDetails.from && animationDetails.to + ? prepareFromToAnchorAnimation(animationDetails.from, + animationDetails.to, + animationDetails.classes, + animationDetails.anchors) + : prepareRegularAnimation(animationDetails, onBeforeClassesAppliedCb); + }; + + function filterCssClasses(classes) { + //remove all the `ng-` stuff + return classes.replace(/\bng-\S+\b/g, ''); + } + + function getUniqueValues(a, b) { + if (isString(a)) a = a.split(' '); + if (isString(b)) b = b.split(' '); + return a.filter(function(val) { + return b.indexOf(val) === -1; + }).join(' '); + } + + function prepareAnchoredAnimation(classes, outAnchor, inAnchor) { + var clone = jqLite(getDomNode(outAnchor).cloneNode(true)); + var startingClasses = filterCssClasses(getClassVal(clone)); + + outAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME); + + clone.addClass(NG_ANIMATE_ANCHOR_CLASS_NAME); + + rootBodyElement.append(clone); + + var animatorIn, animatorOut = prepareOutAnimation(); + + // the user may not end up using the `out` animation and + // only making use of the `in` animation or vice-versa. + // In either case we should allow this and not assume the + // animation is over unless both animations are not used. + if (!animatorOut) { + animatorIn = prepareInAnimation(); + if (!animatorIn) { + return end(); + } + } + + var startingAnimator = animatorOut || animatorIn; + + return { + start: function() { + var runner; + + var currentAnimation = startingAnimator.start(); + currentAnimation.done(function() { + currentAnimation = null; + if (!animatorIn) { + animatorIn = prepareInAnimation(); + if (animatorIn) { + currentAnimation = animatorIn.start(); + currentAnimation.done(function() { + currentAnimation = null; + end(); + runner.complete(); + }); + return currentAnimation; + } + } + // in the event that there is no `in` animation + end(); + runner.complete(); + }); + + runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn + }); + + return runner; + + function endFn() { + if (currentAnimation) { + currentAnimation.end(); + } + } + } + }; + + function calculateAnchorStyles(anchor) { + var styles = {}; + + var coords = getDomNode(anchor).getBoundingClientRect(); + + // we iterate directly since safari messes up and doesn't return + // all the keys for the coods object when iterated + forEach(['width','height','top','left'], function(key) { + var value = coords[key]; + switch (key) { + case 'top': + value += bodyNode.scrollTop; + break; + case 'left': + value += bodyNode.scrollLeft; + break; + } + styles[key] = Math.floor(value) + 'px'; + }); + return styles; + } + + function prepareOutAnimation() { + var animator = $animateCss(clone, { + addClass: NG_OUT_ANCHOR_CLASS_NAME, + delay: true, + from: calculateAnchorStyles(outAnchor) + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function getClassVal(element) { + return element.attr('class') || ''; + } + + function prepareInAnimation() { + var endingClasses = filterCssClasses(getClassVal(inAnchor)); + var toAdd = getUniqueValues(endingClasses, startingClasses); + var toRemove = getUniqueValues(startingClasses, endingClasses); + + var animator = $animateCss(clone, { + to: calculateAnchorStyles(inAnchor), + addClass: NG_IN_ANCHOR_CLASS_NAME + ' ' + toAdd, + removeClass: NG_OUT_ANCHOR_CLASS_NAME + ' ' + toRemove, + delay: true + }); + + // read the comment within `prepareRegularAnimation` to understand + // why this check is necessary + return animator.$$willAnimate ? animator : null; + } + + function end() { + clone.remove(); + outAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + inAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME); + } + } + + function prepareFromToAnchorAnimation(from, to, classes, anchors) { + var fromAnimation = prepareRegularAnimation(from, noop); + var toAnimation = prepareRegularAnimation(to, noop); + + var anchorAnimations = []; + forEach(anchors, function(anchor) { + var outElement = anchor['out']; + var inElement = anchor['in']; + var animator = prepareAnchoredAnimation(classes, outElement, inElement); + if (animator) { + anchorAnimations.push(animator); + } + }); + + // no point in doing anything when there are no elements to animate + if (!fromAnimation && !toAnimation && anchorAnimations.length === 0) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + forEach(anchorAnimations, function(animation) { + animationRunners.push(animation.start()); + }); + + var runner = new $$AnimateRunner({ + end: endFn, + cancel: endFn // CSS-driven animations cannot be cancelled, only ended + }); + + $$AnimateRunner.all(animationRunners, function(status) { + runner.complete(status); + }); + + return runner; + + function endFn() { + forEach(animationRunners, function(runner) { + runner.end(); + }); + } + } + }; + } + + function prepareRegularAnimation(animationDetails, onBeforeClassesAppliedCb) { + var element = animationDetails.element; + var options = animationDetails.options || {}; + + // since the ng-EVENT, class-ADD and class-REMOVE classes are applied inside + // of the animateQueue pre and postDigest stages then there is no need to add + // then them here as well. + options.$$skipPreparationClasses = true; + + // during the pre/post digest stages inside of animateQueue we also performed + // the blocking (transition:-9999s) so there is no point in doing that again. + options.skipBlocking = true; + + if (animationDetails.structural) { + options.event = animationDetails.event; + + // we special case the leave animation since we want to ensure that + // the element is removed as soon as the animation is over. Otherwise + // a flicker might appear or the element may not be removed at all + if (animationDetails.event === 'leave') { + options.onDone = options.domOperation; + } + } + + // we apply the classes right away since the pre-digest took care of the + // preparation classes. + onBeforeClassesAppliedCb(element); + applyAnimationClasses(element, options); + + // We assign the preparationClasses as the actual animation event since + // the internals of $animateCss will just suffix the event token values + // with `-active` to trigger the animation. + if (options.preparationClasses) { + options.event = concatWithSpace(options.event, options.preparationClasses); + } + + var animator = $animateCss(element, options); + + // the driver lookup code inside of $$animation attempts to spawn a + // driver one by one until a driver returns a.$$willAnimate animator object. + // $animateCss will always return an object, however, it will pass in + // a flag as a hint as to whether an animation was detected or not + return animator.$$willAnimate ? animator : null; + } + }]; +}]; + +// TODO(matsko): use caching here to speed things up for detection +// TODO(matsko): add documentation +// by the time... + +var $$AnimateJsProvider = ['$animateProvider', function($animateProvider) { + this.$get = ['$injector', '$$AnimateRunner', '$$rAFMutex', '$$jqLite', + function($injector, $$AnimateRunner, $$rAFMutex, $$jqLite) { + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + // $animateJs(element, 'enter'); + return function(element, event, classes, options) { + // the `classes` argument is optional and if it is not used + // then the classes will be resolved from the element's className + // property as well as options.addClass/options.removeClass. + if (arguments.length === 3 && isObject(classes)) { + options = classes; + classes = null; + } + + options = prepareAnimationOptions(options); + if (!classes) { + classes = element.attr('class') || ''; + if (options.addClass) { + classes += ' ' + options.addClass; + } + if (options.removeClass) { + classes += ' ' + options.removeClass; + } + } + + var classesToAdd = options.addClass; + var classesToRemove = options.removeClass; + + // the lookupAnimations function returns a series of animation objects that are + // matched up with one or more of the CSS classes. These animation objects are + // defined via the module.animation factory function. If nothing is detected then + // we don't return anything which then makes $animation query the next driver. + var animations = lookupAnimations(classes); + var before, after; + if (animations.length) { + var afterFn, beforeFn; + if (event == 'leave') { + beforeFn = 'leave'; + afterFn = 'afterLeave'; // TODO(matsko): get rid of this + } else { + beforeFn = 'before' + event.charAt(0).toUpperCase() + event.substr(1); + afterFn = event; + } + + if (event !== 'enter' && event !== 'move') { + before = packageAnimations(element, event, options, animations, beforeFn); + } + after = packageAnimations(element, event, options, animations, afterFn); + } + + // no matching animations + if (!before && !after) return; + + function applyOptions() { + options.domOperation(); + applyAnimationClasses(element, options); + } + + return { + start: function() { + var closeActiveAnimations; + var chain = []; + + if (before) { + chain.push(function(fn) { + closeActiveAnimations = before(fn); + }); + } + + if (chain.length) { + chain.push(function(fn) { + applyOptions(); + fn(true); + }); + } else { + applyOptions(); + } + + if (after) { + chain.push(function(fn) { + closeActiveAnimations = after(fn); + }); + } + + var animationClosed = false; + var runner = new $$AnimateRunner({ + end: function() { + endAnimations(); + }, + cancel: function() { + endAnimations(true); + } + }); + + $$AnimateRunner.chain(chain, onComplete); + return runner; + + function onComplete(success) { + animationClosed = true; + applyOptions(); + applyAnimationStyles(element, options); + runner.complete(success); + } + + function endAnimations(cancelled) { + if (!animationClosed) { + (closeActiveAnimations || noop)(cancelled); + onComplete(cancelled); + } + } + } + }; + + function executeAnimationFn(fn, element, event, options, onDone) { + var args; + switch (event) { + case 'animate': + args = [element, options.from, options.to, onDone]; + break; + + case 'setClass': + args = [element, classesToAdd, classesToRemove, onDone]; + break; + + case 'addClass': + args = [element, classesToAdd, onDone]; + break; + + case 'removeClass': + args = [element, classesToRemove, onDone]; + break; + + default: + args = [element, onDone]; + break; + } + + args.push(options); + + var value = fn.apply(fn, args); + if (value) { + if (isFunction(value.start)) { + value = value.start(); + } + + if (value instanceof $$AnimateRunner) { + value.done(onDone); + } else if (isFunction(value)) { + // optional onEnd / onCancel callback + return value; + } + } + + return noop; + } + + function groupEventedAnimations(element, event, options, animations, fnName) { + var operations = []; + forEach(animations, function(ani) { + var animation = ani[fnName]; + if (!animation) return; + + // note that all of these animations will run in parallel + operations.push(function() { + var runner; + var endProgressCb; + + var resolved = false; + var onAnimationComplete = function(rejected) { + if (!resolved) { + resolved = true; + (endProgressCb || noop)(rejected); + runner.complete(!rejected); + } + }; + + runner = new $$AnimateRunner({ + end: function() { + onAnimationComplete(); + }, + cancel: function() { + onAnimationComplete(true); + } + }); + + endProgressCb = executeAnimationFn(animation, element, event, options, function(result) { + var cancelled = result === false; + onAnimationComplete(cancelled); + }); + + return runner; + }); + }); + + return operations; + } + + function packageAnimations(element, event, options, animations, fnName) { + var operations = groupEventedAnimations(element, event, options, animations, fnName); + if (operations.length === 0) { + var a,b; + if (fnName === 'beforeSetClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass'); + } else if (fnName === 'setClass') { + a = groupEventedAnimations(element, 'removeClass', options, animations, 'removeClass'); + b = groupEventedAnimations(element, 'addClass', options, animations, 'addClass'); + } + + if (a) { + operations = operations.concat(a); + } + if (b) { + operations = operations.concat(b); + } + } + + if (operations.length === 0) return; + + // TODO(matsko): add documentation + return function startAnimation(callback) { + var runners = []; + if (operations.length) { + forEach(operations, function(animateFn) { + runners.push(animateFn()); + }); + } + + runners.length ? $$AnimateRunner.all(runners, callback) : callback(); + + return function endFn(reject) { + forEach(runners, function(runner) { + reject ? runner.cancel() : runner.end(); + }); + }; + }; + } + }; + + function lookupAnimations(classes) { + classes = isArray(classes) ? classes : classes.split(' '); + var matches = [], flagMap = {}; + for (var i=0; i < classes.length; i++) { + var klass = classes[i], + animationFactory = $animateProvider.$$registeredAnimations[klass]; + if (animationFactory && !flagMap[klass]) { + matches.push($injector.get(animationFactory)); + flagMap[klass] = true; + } + } + return matches; + } + }]; +}]; + +var $$AnimateJsDriverProvider = ['$$animationProvider', function($$animationProvider) { + $$animationProvider.drivers.push('$$animateJsDriver'); + this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) { + return function initDriverFn(animationDetails) { + if (animationDetails.from && animationDetails.to) { + var fromAnimation = prepareAnimation(animationDetails.from); + var toAnimation = prepareAnimation(animationDetails.to); + if (!fromAnimation && !toAnimation) return; + + return { + start: function() { + var animationRunners = []; + + if (fromAnimation) { + animationRunners.push(fromAnimation.start()); + } + + if (toAnimation) { + animationRunners.push(toAnimation.start()); + } + + $$AnimateRunner.all(animationRunners, done); + + var runner = new $$AnimateRunner({ + end: endFnFactory(), + cancel: endFnFactory() + }); + + return runner; + + function endFnFactory() { + return function() { + forEach(animationRunners, function(runner) { + // at this point we cannot cancel animations for groups just yet. 1.5+ + runner.end(); + }); + }; + } + + function done(status) { + runner.complete(status); + } + } + }; + } else { + return prepareAnimation(animationDetails); + } + }; + + function prepareAnimation(animationDetails) { + // TODO(matsko): make sure to check for grouped animations and delegate down to normal animations + var element = animationDetails.element; + var event = animationDetails.event; + var options = animationDetails.options; + var classes = animationDetails.classes; + return $$animateJs(element, event, classes, options); + } + }]; +}]; + +var NG_ANIMATE_ATTR_NAME = 'data-ng-animate'; +var NG_ANIMATE_PIN_DATA = '$ngAnimatePin'; +var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { + var PRE_DIGEST_STATE = 1; + var RUNNING_STATE = 2; + + var rules = this.rules = { + skip: [], + cancel: [], + join: [] + }; + + function isAllowed(ruleType, element, currentAnimation, previousAnimation) { + return rules[ruleType].some(function(fn) { + return fn(element, currentAnimation, previousAnimation); + }); + } + + function hasAnimationClasses(options, and) { + options = options || {}; + var a = (options.addClass || '').length > 0; + var b = (options.removeClass || '').length > 0; + return and ? a && b : a || b; + } + + rules.join.push(function(element, newAnimation, currentAnimation) { + // if the new animation is class-based then we can just tack that on + return !newAnimation.structural && hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // there is no need to animate anything if no classes are being added and + // there is no structural animation that will be triggered + return !newAnimation.structural && !hasAnimationClasses(newAnimation.options); + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // why should we trigger a new structural animation if the element will + // be removed from the DOM anyway? + return currentAnimation.event == 'leave' && newAnimation.structural; + }); + + rules.skip.push(function(element, newAnimation, currentAnimation) { + // if there is an ongoing current animation then don't even bother running the class-based animation + return currentAnimation.structural && currentAnimation.state === RUNNING_STATE && !newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // there can never be two structural animations running at the same time + return currentAnimation.structural && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + // if the previous animation is already running, but the new animation will + // be triggered, but the new animation is structural + return currentAnimation.state === RUNNING_STATE && newAnimation.structural; + }); + + rules.cancel.push(function(element, newAnimation, currentAnimation) { + var nO = newAnimation.options; + var cO = currentAnimation.options; + + // if the exact same CSS class is added/removed then it's safe to cancel it + return (nO.addClass && nO.addClass === cO.removeClass) || (nO.removeClass && nO.removeClass === cO.addClass); + }); + + this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$body', '$$HashMap', + '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow', + function($$rAF, $rootScope, $rootElement, $document, $$body, $$HashMap, + $$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow) { + + var activeAnimationsLookup = new $$HashMap(); + var disabledElementsLookup = new $$HashMap(); + var animationsEnabled = null; + + // 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 + // templates currently downloading then the watcher will still fire anyway. + var deregisterWatch = $rootScope.$watch( + function() { return $templateRequest.totalPendingRequests === 0; }, + function(isEmpty) { + if (!isEmpty) return; + deregisterWatch(); + + // Now that all templates have been downloaded, $animate will wait until + // the post digest queue is empty before enabling animations. By having two + // calls to $postDigest calls we can ensure that the flag is enabled at the + // very end of the post digest queue. Since all of the animations in $animate + // use $postDigest, it's important that the code below executes at the end. + // This basically means that the page is fully downloaded and compiled before + // any animations are triggered. + $rootScope.$$postDigest(function() { + $rootScope.$$postDigest(function() { + // we check for null directly in the event that the application already called + // .enabled() with whatever arguments that it provided it with + if (animationsEnabled === null) { + animationsEnabled = true; + } + }); + }); + } + ); + + var callbackRegistry = {}; + + // remember that the classNameFilter is set during the provider/config + // stage therefore we can optimize here and setup a helper function + var classNameFilter = $animateProvider.classNameFilter(); + var isAnimatableClassName = !classNameFilter + ? function() { return true; } + : function(className) { + return classNameFilter.test(className); + }; + + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + function normalizeAnimationOptions(element, options) { + return mergeAnimationOptions(element, options, {}); + } + + function findCallbacks(element, event) { + var targetNode = getDomNode(element); + + var matches = []; + var entries = callbackRegistry[event]; + if (entries) { + forEach(entries, function(entry) { + if (entry.node.contains(targetNode)) { + matches.push(entry.callback); + } + }); + } + + 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); + callbackRegistry[event] = callbackRegistry[event] || []; + callbackRegistry[event].push({ + node: node, + callback: callback + }); + }, + + off: function(event, container, callback) { + var entries = callbackRegistry[event]; + if (!entries) return; + + callbackRegistry[event] = arguments.length === 1 + ? null + : filterFromRegistry(entries, container, callback); + + function filterFromRegistry(list, matchContainer, matchCallback) { + var containerNode = extractElementNode(matchContainer); + return list.filter(function(entry) { + var isMatch = entry.node === containerNode && + (!matchCallback || entry.callback === matchCallback); + return !isMatch; + }); + } + }, + + pin: function(element, parentElement) { + assertArg(isElement(element), 'element', 'not an element'); + assertArg(isElement(parentElement), 'parentElement', 'not an element'); + element.data(NG_ANIMATE_PIN_DATA, parentElement); + }, + + push: function(element, event, options, domOperation) { + options = options || {}; + options.domOperation = domOperation; + return queueAnimation(element, event, options); + }, + + // this method has four signatures: + // () - global getter + // (bool) - global setter + // (element) - element getter + // (element, bool) - element setter + enabled: function(element, bool) { + var argCount = arguments.length; + + if (argCount === 0) { + // () - Global getter + bool = !!animationsEnabled; + } else { + var hasElement = isElement(element); + + if (!hasElement) { + // (bool) - Global setter + bool = animationsEnabled = !!element; + } else { + var node = getDomNode(element); + var recordExists = disabledElementsLookup.get(node); + + if (argCount === 1) { + // (element) - Element getter + bool = !recordExists; + } else { + // (element, bool) - Element setter + bool = !!bool; + if (!bool) { + disabledElementsLookup.put(node, true); + } else if (recordExists) { + disabledElementsLookup.remove(node); + } + } + } + } + + return bool; + } + }; + + function queueAnimation(element, event, options) { + var node, parent; + element = stripCommentsFromElement(element); + if (element) { + node = getDomNode(element); + parent = element.parent(); + } + + options = prepareAnimationOptions(options); + + // we create a fake runner with a working promise. + // These methods will become available after the digest has passed + var runner = new $$AnimateRunner(); + + if (isArray(options.addClass)) { + options.addClass = options.addClass.join(' '); + } + + if (options.addClass && !isString(options.addClass)) { + options.addClass = null; + } + + if (isArray(options.removeClass)) { + options.removeClass = options.removeClass.join(' '); + } + + if (options.removeClass && !isString(options.removeClass)) { + options.removeClass = null; + } + + if (options.from && !isObject(options.from)) { + options.from = null; + } + + if (options.to && !isObject(options.to)) { + options.to = null; + } + + // there are situations where a directive issues an animation for + // a jqLite wrapper that contains only comment nodes... If this + // happens then there is no way we can perform an animation + if (!node) { + close(); + return runner; + } + + var className = [node.className, options.addClass, options.removeClass].join(' '); + if (!isAnimatableClassName(className)) { + close(); + return runner; + } + + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // this is a hard disable of all animations for the application or on + // the element itself, therefore there is no need to continue further + // past this point if not enabled + var skipAnimations = !animationsEnabled || disabledElementsLookup.get(node); + var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {}; + var hasExistingAnimation = !!existingAnimation.state; + + // there is no point in traversing the same collection of parent ancestors if a followup + // animation will be run on the same element that already did all that checking work + if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state != PRE_DIGEST_STATE)) { + skipAnimations = !areAnimationsAllowed(element, parent, event); + } + + if (skipAnimations) { + close(); + return runner; + } + + if (isStructural) { + closeChildAnimations(element); + } + + var newAnimation = { + structural: isStructural, + element: element, + event: event, + close: close, + options: options, + runner: runner + }; + + if (hasExistingAnimation) { + var skipAnimationFlag = isAllowed('skip', element, newAnimation, existingAnimation); + if (skipAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + close(); + return runner; + } else { + mergeAnimationOptions(element, existingAnimation.options, options); + return existingAnimation.runner; + } + } + + var cancelAnimationFlag = isAllowed('cancel', element, newAnimation, existingAnimation); + if (cancelAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + // this will end the animation right away and it is safe + // to do so since the animation is already running and the + // runner callback code will run in async + existingAnimation.runner.end(); + } else if (existingAnimation.structural) { + // this means that the animation is queued into a digest, but + // hasn't started yet. Therefore it is safe to run the close + // method which will call the runner methods in async. + existingAnimation.close(); + } else { + // this will merge the new animation options into existing animation options + mergeAnimationOptions(element, existingAnimation.options, newAnimation.options); + return existingAnimation.runner; + } + } else { + // a joined animation means that this animation will take over the existing one + // so an example would involve a leave animation taking over an enter. Then when + // the postDigest kicks in the enter will be ignored. + var joinAnimationFlag = isAllowed('join', element, newAnimation, existingAnimation); + if (joinAnimationFlag) { + if (existingAnimation.state === RUNNING_STATE) { + normalizeAnimationOptions(element, options); + } else { + applyGeneratedPreparationClasses(element, isStructural ? event : null, options); + + event = newAnimation.event = existingAnimation.event; + options = mergeAnimationOptions(element, existingAnimation.options, newAnimation.options); + + //we return the same runner since only the option values of this animation will + //be fed into the `existingAnimation`. + return existingAnimation.runner; + } + } + } + } else { + // normalization in this case means that it removes redundant CSS classes that + // already exist (addClass) or do not exist (removeClass) on the element + normalizeAnimationOptions(element, options); + } + + // when the options are merged and cleaned up we may end up not having to do + // an animation at all, therefore we should check this before issuing a post + // digest callback. Structural animations will always run no matter what. + var isValidAnimation = newAnimation.structural; + if (!isValidAnimation) { + // animate (from/to) can be quickly checked first, otherwise we check if any classes are present + isValidAnimation = (newAnimation.event === 'animate' && Object.keys(newAnimation.options.to || {}).length > 0) + || hasAnimationClasses(newAnimation.options); + } + + if (!isValidAnimation) { + close(); + clearElementAnimationState(element); + return runner; + } + + applyGeneratedPreparationClasses(element, isStructural ? event : null, options); + blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE); + + // the counter keeps track of cancelled animations + var counter = (existingAnimation.counter || 0) + 1; + newAnimation.counter = counter; + + markElementAnimationState(element, PRE_DIGEST_STATE, newAnimation); + + $rootScope.$$postDigest(function() { + var animationDetails = activeAnimationsLookup.get(node); + var animationCancelled = !animationDetails; + animationDetails = animationDetails || {}; + + // if addClass/removeClass is called before something like enter then the + // registered parent element may not be present. The code below will ensure + // that a final value for parent element is obtained + var parentElement = element.parent() || []; + + // animate/structural/class-based animations all have requirements. Otherwise there + // is no point in performing an animation. The parent node must also be set. + var isValidAnimation = parentElement.length > 0 + && (animationDetails.event === 'animate' + || animationDetails.structural + || hasAnimationClasses(animationDetails.options)); + + // this means that the previous animation was cancelled + // even if the follow-up animation is the same event + if (animationCancelled || animationDetails.counter !== counter || !isValidAnimation) { + // if another animation did not take over then we need + // to make sure that the domOperation and options are + // handled accordingly + if (animationCancelled) { + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + } + + // if the event changed from something like enter to leave then we do + // it, otherwise if it's the same then the end result will be the same too + if (animationCancelled || (isStructural && animationDetails.event !== event)) { + options.domOperation(); + runner.end(); + } + + // in the event that the element animation was not cancelled or a follow-up animation + // isn't allowed to animate from here then we need to clear the state of the element + // so that any future animations won't read the expired animation data. + if (!isValidAnimation) { + clearElementAnimationState(element); + } + + return; + } + + // this combined multiple class to addClass / removeClass into a setClass event + // so long as a structural event did not take over the animation + event = !animationDetails.structural && hasAnimationClasses(animationDetails.options, true) + ? 'setClass' + : animationDetails.event; + + markElementAnimationState(element, RUNNING_STATE); + var realRunner = $$animation(element, event, animationDetails.options, function(e) { + $$forceReflow(); + blockTransitions(getDomNode(e), false); + }); + + realRunner.done(function(status) { + close(!status); + var animationDetails = activeAnimationsLookup.get(node); + if (animationDetails && animationDetails.counter === counter) { + clearElementAnimationState(getDomNode(element)); + } + notifyProgress(runner, event, 'close', {}); + }); + + // this will update the runner's flow-control events based on + // the `realRunner` object. + runner.setHost(realRunner); + notifyProgress(runner, event, 'start', {}); + }); + + return runner; + + function notifyProgress(runner, event, phase, data) { + triggerCallback(event, element, phase, data); + runner.progress(event, phase, data); + } + + function close(reject) { // jshint ignore:line + clearGeneratedClasses(element, options); + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + runner.complete(!reject); + } + } + + function closeChildAnimations(element) { + var node = getDomNode(element); + var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']'); + forEach(children, function(child) { + var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME)); + var animationDetails = activeAnimationsLookup.get(child); + switch (state) { + case RUNNING_STATE: + animationDetails.runner.end(); + /* falls through */ + case PRE_DIGEST_STATE: + if (animationDetails) { + activeAnimationsLookup.remove(child); + } + break; + } + }); + } + + function clearElementAnimationState(element) { + var node = getDomNode(element); + node.removeAttribute(NG_ANIMATE_ATTR_NAME); + activeAnimationsLookup.remove(node); + } + + function isMatchingElement(nodeOrElmA, nodeOrElmB) { + return getDomNode(nodeOrElmA) === getDomNode(nodeOrElmB); + } + + function areAnimationsAllowed(element, parentElement, event) { + var bodyElementDetected = isMatchingElement(element, $$body) || element[0].nodeName === 'HTML'; + var rootElementDetected = isMatchingElement(element, $rootElement); + var parentAnimationDetected = false; + var animateChildren; + + var parentHost = element.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + + while (parentElement && parentElement.length) { + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + } + + var parentNode = parentElement[0]; + if (parentNode.nodeType !== ELEMENT_NODE) { + // no point in inspecting the #document element + break; + } + + var details = activeAnimationsLookup.get(parentNode) || {}; + // either an enter, leave or move animation will commence + // therefore we can't allow any animations to take place + // but if a parent animation is class-based then that's ok + if (!parentAnimationDetected) { + parentAnimationDetected = details.structural || disabledElementsLookup.get(parentNode); + } + + if (isUndefined(animateChildren) || animateChildren === true) { + var value = parentElement.data(NG_ANIMATE_CHILDREN_DATA); + if (isDefined(value)) { + animateChildren = value; + } + } + + // there is no need to continue traversing at this point + if (parentAnimationDetected && animateChildren === false) break; + + if (!rootElementDetected) { + // angular doesn't want to attempt to animate elements outside of the application + // therefore we need to ensure that the rootElement is an ancestor of the current element + rootElementDetected = isMatchingElement(parentElement, $rootElement); + if (!rootElementDetected) { + parentHost = parentElement.data(NG_ANIMATE_PIN_DATA); + if (parentHost) { + parentElement = parentHost; + } + } + } + + 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); + } + + parentElement = parentElement.parent(); + } + + var allowAnimation = !parentAnimationDetected || animateChildren; + return allowAnimation && rootElementDetected && bodyElementDetected; + } + + function markElementAnimationState(element, state, details) { + details = details || {}; + details.state = state; + + var node = getDomNode(element); + node.setAttribute(NG_ANIMATE_ATTR_NAME, state); + + var oldValue = activeAnimationsLookup.get(node); + var newValue = oldValue + ? extend(oldValue, details) + : details; + activeAnimationsLookup.put(node, newValue); + } + }]; +}]; + +var $$rAFMutexFactory = ['$$rAF', function($$rAF) { + return function() { + var passed = false; + $$rAF(function() { + passed = true; + }); + return function(fn) { + passed ? fn() : $$rAF(fn); + }; + }; +}]; + +var $$AnimateRunnerFactory = ['$q', '$$rAFMutex', function($q, $$rAFMutex) { + var INITIAL_STATE = 0; + var DONE_PENDING_STATE = 1; + var DONE_COMPLETE_STATE = 2; + + AnimateRunner.chain = function(chain, callback) { + var index = 0; + + next(); + function next() { + if (index === chain.length) { + callback(true); + return; + } + + chain[index](function(response) { + if (response === false) { + callback(false); + return; + } + index++; + next(); + }); + } + }; + + AnimateRunner.all = function(runners, callback) { + var count = 0; + var status = true; + forEach(runners, function(runner) { + runner.done(onProgress); + }); + + function onProgress(response) { + status = status && response; + if (++count === runners.length) { + callback(status); + } + } + }; + + function AnimateRunner(host) { + this.setHost(host); + + this._doneCallbacks = []; + this._runInAnimationFrame = $$rAFMutex(); + this._state = 0; + } + + AnimateRunner.prototype = { + setHost: function(host) { + this.host = host || {}; + }, + + done: function(fn) { + if (this._state === DONE_COMPLETE_STATE) { + fn(); + } else { + this._doneCallbacks.push(fn); + } + }, + + progress: noop, + + getPromise: function() { + if (!this.promise) { + var self = this; + this.promise = $q(function(resolve, reject) { + self.done(function(status) { + status === false ? reject() : resolve(); + }); + }); + } + return this.promise; + }, + + then: function(resolveHandler, rejectHandler) { + return this.getPromise().then(resolveHandler, rejectHandler); + }, + + 'catch': function(handler) { + return this.getPromise()['catch'](handler); + }, + + 'finally': function(handler) { + return this.getPromise()['finally'](handler); + }, + + pause: function() { + if (this.host.pause) { + this.host.pause(); + } + }, + + resume: function() { + if (this.host.resume) { + this.host.resume(); + } + }, + + end: function() { + if (this.host.end) { + this.host.end(); + } + this._resolve(true); + }, + + cancel: function() { + if (this.host.cancel) { + this.host.cancel(); + } + this._resolve(false); + }, + + complete: function(response) { + var self = this; + if (self._state === INITIAL_STATE) { + self._state = DONE_PENDING_STATE; + self._runInAnimationFrame(function() { + self._resolve(response); + }); + } + }, + + _resolve: function(response) { + if (this._state !== DONE_COMPLETE_STATE) { + forEach(this._doneCallbacks, function(fn) { + fn(response); + }); + this._doneCallbacks.length = 0; + this._state = DONE_COMPLETE_STATE; + } + } + }; + + return AnimateRunner; +}]; + +var $$AnimationProvider = ['$animateProvider', function($animateProvider) { + var NG_ANIMATE_REF_ATTR = 'ng-animate-ref'; + + var drivers = this.drivers = []; + + var RUNNER_STORAGE_KEY = '$$animationRunner'; + + function setRunner(element, runner) { + element.data(RUNNER_STORAGE_KEY, runner); + } + + function removeRunner(element) { + element.removeData(RUNNER_STORAGE_KEY); + } + + function getRunner(element) { + return element.data(RUNNER_STORAGE_KEY); + } + + this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$HashMap', + function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$HashMap) { + + var animationQueue = []; + var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); + + function sortAnimations(animations) { + var tree = { children: [] }; + var i, lookup = new $$HashMap(); + + // this is done first beforehand so that the hashmap + // is filled with a list of the elements that will be animated + for (i = 0; i < animations.length; i++) { + var animation = animations[i]; + lookup.put(animation.domNode, animations[i] = { + domNode: animation.domNode, + fn: animation.fn, + children: [] + }); + } + + for (i = 0; i < animations.length; i++) { + processNode(animations[i]); + } + + return flatten(tree); + + function processNode(entry) { + if (entry.processed) return entry; + entry.processed = true; + + var elementNode = entry.domNode; + var parentNode = elementNode.parentNode; + lookup.put(elementNode, entry); + + var parentEntry; + while (parentNode) { + parentEntry = lookup.get(parentNode); + if (parentEntry) { + if (!parentEntry.processed) { + parentEntry = processNode(parentEntry); + } + break; + } + parentNode = parentNode.parentNode; + } + + (parentEntry || tree).children.push(entry); + return entry; + } + + function flatten(tree) { + var result = []; + var queue = []; + var i; + + for (i = 0; i < tree.children.length; i++) { + queue.push(tree.children[i]); + } + + var remainingLevelEntries = queue.length; + var nextLevelEntries = 0; + var row = []; + + for (i = 0; i < queue.length; i++) { + var entry = queue[i]; + if (remainingLevelEntries <= 0) { + remainingLevelEntries = nextLevelEntries; + nextLevelEntries = 0; + result = result.concat(row); + row = []; + } + row.push(entry.fn); + forEach(entry.children, function(childEntry) { + nextLevelEntries++; + queue.push(childEntry); + }); + remainingLevelEntries--; + } + + if (row.length) { + result = result.concat(row); + } + return result; + } + } + + // TODO(matsko): document the signature in a better way + return function(element, event, options, onBeforeClassesAppliedCb) { + options = prepareAnimationOptions(options); + var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0; + + // there is no animation at the current moment, however + // these runner methods will get later updated with the + // methods leading into the driver's end/cancel methods + // for now they just stop the animation from starting + var runner = new $$AnimateRunner({ + end: function() { close(); }, + cancel: function() { close(true); } + }); + + if (!drivers.length) { + close(); + return runner; + } + + setRunner(element, runner); + + var classes = mergeClasses(element.attr('class'), mergeClasses(options.addClass, options.removeClass)); + var tempClasses = options.tempClasses; + if (tempClasses) { + classes += ' ' + tempClasses; + options.tempClasses = null; + } + + animationQueue.push({ + // this data is used by the postDigest code and passed into + // the driver step function + element: element, + classes: classes, + event: event, + structural: isStructural, + options: options, + beforeStart: beforeStart, + close: close + }); + + element.on('$destroy', handleDestroyedElement); + + // we only want there to be one function called within the post digest + // block. This way we can group animations for all the animations that + // were apart of the same postDigest flush call. + if (animationQueue.length > 1) return runner; + + $rootScope.$$postDigest(function() { + var animations = []; + forEach(animationQueue, function(entry) { + // the element was destroyed early on which removed the runner + // form its storage. This means we can't animate this element + // at all and it already has been closed due to destruction. + var elm = entry.element; + if (getRunner(elm) && getDomNode(elm).parentNode) { + animations.push(entry); + } else { + entry.close(); + } + }); + + // now any future animations will be in another postDigest + animationQueue.length = 0; + + var groupedAnimations = groupAnimations(animations); + var toBeSortedAnimations = []; + + forEach(groupedAnimations, function(animationEntry) { + toBeSortedAnimations.push({ + domNode: getDomNode(animationEntry.from ? animationEntry.from.element : animationEntry.element), + fn: function triggerAnimationStart() { + // it's important that we apply the `ng-animate` CSS class and the + // temporary classes before we do any driver invoking since these + // CSS classes may be required for proper CSS detection. + animationEntry.beforeStart(); + + var startAnimationFn, closeFn = animationEntry.close; + + // in the event that the element was removed before the digest runs or + // during the RAF sequencing then we should not trigger the animation. + var targetElement = animationEntry.anchors + ? (animationEntry.from.element || animationEntry.to.element) + : animationEntry.element; + + if (getRunner(targetElement)) { + var operation = invokeFirstDriver(animationEntry, onBeforeClassesAppliedCb); + if (operation) { + startAnimationFn = operation.start; + } + } + + if (!startAnimationFn) { + closeFn(); + } else { + var animationRunner = startAnimationFn(); + animationRunner.done(function(status) { + closeFn(!status); + }); + updateAnimationRunners(animationEntry, animationRunner); + } + } + }); + }); + + // we need to sort each of the animations in order of parent to child + // relationships. This ensures that the parent to child classes are + // applied at the right time. + forEach(sortAnimations(toBeSortedAnimations), function(triggerAnimation) { + triggerAnimation(); + }); + }); + + return runner; + + // TODO(matsko): change to reference nodes + function getAnchorNodes(node) { + var SELECTOR = '[' + NG_ANIMATE_REF_ATTR + ']'; + var items = node.hasAttribute(NG_ANIMATE_REF_ATTR) + ? [node] + : node.querySelectorAll(SELECTOR); + var anchors = []; + forEach(items, function(node) { + var attr = node.getAttribute(NG_ANIMATE_REF_ATTR); + if (attr && attr.length) { + anchors.push(node); + } + }); + return anchors; + } + + function groupAnimations(animations) { + var preparedAnimations = []; + var refLookup = {}; + forEach(animations, function(animation, index) { + var element = animation.element; + var node = getDomNode(element); + var event = animation.event; + var enterOrMove = ['enter', 'move'].indexOf(event) >= 0; + var anchorNodes = animation.structural ? getAnchorNodes(node) : []; + + if (anchorNodes.length) { + var direction = enterOrMove ? 'to' : 'from'; + + forEach(anchorNodes, function(anchor) { + var key = anchor.getAttribute(NG_ANIMATE_REF_ATTR); + refLookup[key] = refLookup[key] || {}; + refLookup[key][direction] = { + animationID: index, + element: jqLite(anchor) + }; + }); + } else { + preparedAnimations.push(animation); + } + }); + + var usedIndicesLookup = {}; + var anchorGroups = {}; + forEach(refLookup, function(operations, key) { + var from = operations.from; + var to = operations.to; + + if (!from || !to) { + // only one of these is set therefore we can't have an + // anchor animation since all three pieces are required + var index = from ? from.animationID : to.animationID; + var indexKey = index.toString(); + if (!usedIndicesLookup[indexKey]) { + usedIndicesLookup[indexKey] = true; + preparedAnimations.push(animations[index]); + } + return; + } + + var fromAnimation = animations[from.animationID]; + var toAnimation = animations[to.animationID]; + var lookupKey = from.animationID.toString(); + if (!anchorGroups[lookupKey]) { + var group = anchorGroups[lookupKey] = { + // TODO(matsko): double-check this code + beforeStart: function() { + fromAnimation.beforeStart(); + toAnimation.beforeStart(); + }, + close: function() { + fromAnimation.close(); + toAnimation.close(); + }, + classes: cssClassesIntersection(fromAnimation.classes, toAnimation.classes), + from: fromAnimation, + to: toAnimation, + anchors: [] // TODO(matsko): change to reference nodes + }; + + // the anchor animations require that the from and to elements both have at least + // one shared CSS class which effictively marries the two elements together to use + // the same animation driver and to properly sequence the anchor animation. + if (group.classes.length) { + preparedAnimations.push(group); + } else { + preparedAnimations.push(fromAnimation); + preparedAnimations.push(toAnimation); + } + } + + anchorGroups[lookupKey].anchors.push({ + 'out': from.element, 'in': to.element + }); + }); + + return preparedAnimations; + } + + function cssClassesIntersection(a,b) { + a = a.split(' '); + b = b.split(' '); + var matches = []; + + for (var i = 0; i < a.length; i++) { + var aa = a[i]; + if (aa.substring(0,3) === 'ng-') continue; + + for (var j = 0; j < b.length; j++) { + if (aa === b[j]) { + matches.push(aa); + break; + } + } + } + + return matches.join(' '); + } + + function invokeFirstDriver(animationDetails, onBeforeClassesAppliedCb) { + // we loop in reverse order since the more general drivers (like CSS and JS) + // may attempt more elements, but custom drivers are more particular + for (var i = drivers.length - 1; i >= 0; i--) { + var driverName = drivers[i]; + if (!$injector.has(driverName)) continue; // TODO(matsko): remove this check + + var factory = $injector.get(driverName); + var driver = factory(animationDetails, onBeforeClassesAppliedCb); + if (driver) { + return driver; + } + } + } + + function beforeStart() { + element.addClass(NG_ANIMATE_CLASSNAME); + if (tempClasses) { + $$jqLite.addClass(element, tempClasses); + } + } + + function updateAnimationRunners(animation, newRunner) { + if (animation.from && animation.to) { + update(animation.from.element); + update(animation.to.element); + } else { + update(animation.element); + } + + function update(element) { + getRunner(element).setHost(newRunner); + } + } + + function handleDestroyedElement() { + var runner = getRunner(element); + if (runner && (event !== 'leave' || !options.$$domOperationFired)) { + runner.end(); + } + } + + function close(rejected) { // jshint ignore:line + element.off('$destroy', handleDestroyedElement); + removeRunner(element); + + applyAnimationClasses(element, options); + applyAnimationStyles(element, options); + options.domOperation(); + + if (tempClasses) { + $$jqLite.removeClass(element, tempClasses); + } + + element.removeClass(NG_ANIMATE_CLASSNAME); + runner.complete(!rejected); + } + }; + }]; +}]; + +/* global angularAnimateModule: true, + + $$BodyProvider, + $$rAFMutexFactory, + $$AnimateChildrenDirective, + $$AnimateRunnerFactory, + $$AnimateQueueProvider, + $$AnimationProvider, + $AnimateCssProvider, + $$AnimateCssDriverProvider, + $$AnimateJsProvider, + $$AnimateJsDriverProvider, +*/ /** * @ngdoc module * @name ngAnimate * @description * - * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. + * The `ngAnimate` module provides support for CSS-based animations (keyframes and transitions) as well as JavaScript-based animations via + * callback hooks. Animations are not enabled by default, however, by including `ngAnimate` then the animation hooks are enabled for an Angular app. * *
* * # Usage + * Simply put, there are two ways to make use of animations when ngAnimate is used: by using **CSS** and **JavaScript**. The former works purely based + * using CSS (by using matching CSS selectors/styles) and the latter triggers animations that are registered via `module.animation()`. For + * both CSS and JS animations the sole requirement is to have a matching `CSS class` that exists both in the registered animation and within + * the HTML element that the animation will be triggered on. * - * To see animations in action, all that is required is to define the appropriate CSS classes - * or to register a JavaScript animation via the `myModule.animation()` function. The directives that support animation automatically are: - * `ngRepeat`, `ngInclude`, `ngIf`, `ngSwitch`, `ngShow`, `ngHide`, `ngView` and `ngClass`. Custom directives can take advantage of animation - * by using the `$animate` service. - * - * Below is a more detailed breakdown of the supported animation events provided by pre-existing ng directives: + * ## Directive Support + * The following directives are "animation aware": * * | Directive | Supported Animations | * |----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------| @@ -38,192 +3069,632 @@ * | {@link module:ngMessages#animations ngMessages} | add and remove (ng-active & ng-inactive) | * | {@link module:ngMessages#animations ngMessage} | enter and leave | * - * You can find out more information about animations upon visiting each directive page. + * (More information can be found by visiting each the documentation associated with each directive.) * - * Below is an example of how to apply animations to a directive that supports animation hooks: + * ## CSS-based Animations + * + * CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML + * and CSS code we can create an animation that will be picked up by Angular when an the underlying directive performs an operation. + * + * The example below shows how an `enter` animation can be made possible on a element using `ng-if`: * * ```html - * - * - * - * - * ``` - * - * Keep in mind that, by default, if an animation is running, any child elements cannot be animated - * until the parent element's animation has completed. This blocking feature can be overridden by - * placing the `ng-animate-children` attribute on a parent container tag. - * - * ```html - *
- *
- *
- * ... - *
- *
+ *
+ * Fade me in out *
+ * + * * ``` * - * When the `on` expression value changes and an animation is triggered then each of the elements within - * will all animate without the block being applied to child elements. - * - * ## Are animations run when the application starts? - * No they are not. When an application is bootstrapped Angular will disable animations from running to avoid - * a frenzy of animations from being triggered as soon as the browser has rendered the screen. For this to work, - * Angular will wait for two digest cycles until enabling animations. From there on, any animation-triggering - * layout changes in the application will trigger animations as normal. - * - * In addition, upon bootstrap, if the routing system or any directives or load remote data (via $http) then Angular - * will automatically extend the wait time to enable animations once **all** of the outbound HTTP requests - * are complete. - * - * ## CSS-defined Animations - * The animate service will automatically apply two CSS classes to the animated element and these two CSS classes - * are designed to contain the start and end CSS styling. Both CSS transitions and keyframe animations are supported - * and can be used to play along with this naming structure. - * - * The following code below demonstrates how to perform animations using **CSS transitions** with Angular: - * - * ```html - * - * - *
- *
- *
- * ``` - * - * The following code below demonstrates how to perform animations using **CSS animations** with Angular: - * - * ```html - * - * - *
- *
- *
- * ``` - * - * Both CSS3 animations and transitions can be used together and the animate service will figure out the correct duration and delay timing. - * - * Upon DOM mutation, the event class is added first (something like `ng-enter`), then the browser prepares itself to add - * the active class (in this case `ng-enter-active`) which then triggers the animation. The animation module will automatically - * detect the CSS code to determine when the animation ends. Once the animation is over then both CSS classes will be - * removed from the DOM. If a browser does not support CSS transitions or CSS animations then the animation will start and end - * immediately resulting in a DOM element that is at its final state. This final state is when the DOM element - * has no CSS transition/animation classes applied to it. - * - * ### Structural transition animations - * - * Structural transitions (such as enter, leave and move) will always apply a `0s none` transition - * value to force the browser into rendering the styles defined in the setup (`.ng-enter`, `.ng-leave` - * or `.ng-move`) class. This means that any active transition animations operating on the element - * will be cut off to make way for the enter, leave or move animation. - * - * ### Class-based transition animations - * - * Class-based transitions refer to transition animations that are triggered when a CSS class is - * added to or removed from the element (via `$animate.addClass`, `$animate.removeClass`, - * `$animate.setClass`, or by directives such as `ngClass`, `ngModel` and `form`). - * They are different when compared to structural animations since they **do not cancel existing - * animations** nor do they **block successive transitions** from rendering on the same element. - * This distinction allows for **multiple class-based transitions** to be performed on the same element. - * - * In addition to ngAnimate supporting the default (natural) functionality of class-based transition - * animations, ngAnimate also decorates the element with starting and ending CSS classes to aid the - * developer in further styling the element throughout the transition animation. Earlier versions - * of ngAnimate may have caused natural CSS transitions to break and not render properly due to - * $animate temporarily blocking transitions using `0s none` in order to allow the setup CSS class - * (the `-add` or `-remove` class) to be applied without triggering an animation. However, as of - * **version 1.3**, this workaround has been removed with ngAnimate and all non-ngAnimate CSS - * class transitions are compatible with ngAnimate. - * - * There is, however, one special case when dealing with class-based transitions in ngAnimate. - * When rendering class-based transitions that make use of the setup and active CSS classes - * (e.g. `.fade-add` and `.fade-add-active` for when `.fade` is added) be sure to define - * the transition value **on the active CSS class** and not the setup class. + * Notice the CSS class **fade**? We can now create the CSS transition code that references this class: * * ```css - * .fade-add { - * /* remember to place a 0s transition here - * to ensure that the styles are applied instantly - * even if the element already has a transition style */ - * transition:0s linear all; + * /* The starting CSS styles for the enter animation */ + * .fade.ng-enter { + * transition:0.5s linear all; + * opacity:0; + * } * - * /* starting CSS styles */ + * /* The finishing CSS styles for the enter animation */ + * .fade.ng-enter.ng-enter-active { * opacity:1; * } - * .fade-add.fade-add-active { - * /* this will be the length of the animation */ - * transition:1s linear all; - * opacity:0; - * } * ``` * - * The setup CSS class (in this case `.fade-add`) also has a transition style property, however, it - * has a duration of zero. This may not be required, however, incase the browser is unable to render - * the styling present in this CSS class instantly then it could be that the browser is attempting - * to perform an unnecessary transition. + * The key thing to remember here is that, depending on the animation event (which each of the directives above trigger depending on what's going on) two + * generated CSS classes will be applied to the element; in the example above we have `.ng-enter` and `.ng-enter-active`. For CSS transitions, the transition + * code **must** be defined within the starting CSS class (in this case `.ng-enter`). The destination class is what the transition will animate towards. * - * This workaround, however, does not apply to standard class-based transitions that are rendered - * when a CSS class containing a transition is applied to an element: + * If for example we wanted to create animations for `leave` and `move` (ngRepeat triggers move) then we can do so using the same CSS naming conventions: * * ```css - * /* this works as expected */ - * .fade { - * transition:1s linear all; + * /* now the element will fade out before it is removed from the DOM */ + * .fade.ng-leave { + * transition:0.5s linear all; + * opacity:1; + * } + * .fade.ng-leave.ng-leave-active { * opacity:0; * } * ``` * - * Please keep this in mind when coding the CSS markup that will be used within class-based transitions. - * Also, try not to mix the two class-based animation flavors together since the CSS code may become - * overly complex. + * We can also make use of **CSS Keyframes** by referencing the keyframe animation within the starting CSS class: + * + * ```css + * /* there is no need to define anything inside of the destination + * CSS class since the keyframe will take charge of the animation */ + * .fade.ng-leave { + * animation: my_fade_animation 0.5s linear; + * -webkit-animation: my_fade_animation 0.5s linear; + * } + * + * @keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * + * @-webkit-keyframes my_fade_animation { + * from { opacity:1; } + * to { opacity:0; } + * } + * ``` + * + * Feel free also mix transitions and keyframes together as well as any other CSS classes on the same element. + * + * ### CSS Class-based Animations + * + * Class-based animations (animations that are triggered via `ngClass`, `ngShow`, `ngHide` and some other directives) have a slightly different + * naming convention. Class-based animations are basic enough that a standard transition or keyframe can be referenced on the class being added + * and removed. + * + * For example if we wanted to do a CSS animation for `ngHide` then we place an animation on the `.ng-hide` CSS class: + * + * ```html + *
+ * Show and hide me + *
+ * + * + * + * ``` + * + * All that is going on here with ngShow/ngHide behind the scenes is the `.ng-hide` class is added/removed (when the hidden state is valid). Since + * ngShow and ngHide are animation aware then we can match up a transition and ngAnimate handles the rest. + * + * In addition the addition and removal of the CSS class, ngAnimate also provides two helper methods that we can use to further decorate the animation + * with CSS styles. + * + * ```html + *
+ * Highlight this box + *
+ * + * + * + * ``` + * + * We can also make use of CSS keyframes by placing them within the CSS classes. + * + * + * ### CSS Staggering Animations + * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a + * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be + * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for + * the animation. The style property expected within the stagger class can either be a **transition-delay** or an + * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * + * ```css + * .my-animation.ng-enter { + * /* standard transition code */ + * transition: 1s linear all; + * opacity:0; + * } + * .my-animation.ng-enter-stagger { + * /* this will have a 100ms delay between each successive leave animation */ + * transition-delay: 0.1s; + * + * /* in case the stagger doesn't work then the duration value + * must be set to 0 to avoid an accidental CSS inheritance */ + * transition-duration: 0s; + * } + * .my-animation.ng-enter.ng-enter-active { + * /* standard transition styles */ + * opacity:1; + * } + * ``` + * + * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations + * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this + * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation + * will also be reset if one or more animation frames have passed since the multiple calls to `$animate` were fired. + * + * The following code will issue the **ng-leave-stagger** event on the element provided: + * + * ```js + * var kids = parent.children(); + * + * $animate.leave(kids[0]); //stagger index=0 + * $animate.leave(kids[1]); //stagger index=1 + * $animate.leave(kids[2]); //stagger index=2 + * $animate.leave(kids[3]); //stagger index=3 + * $animate.leave(kids[4]); //stagger index=4 + * + * window.requestAnimationFrame(function() { + * //stagger has reset itself + * $animate.leave(kids[5]); //stagger index=0 + * $animate.leave(kids[6]); //stagger index=1 + * + * $scope.$digest(); + * }); + * ``` + * + * Stagger animations are currently only supported within CSS-defined animations. + * + * ### The `ng-animate` CSS class + * + * When ngAnimate is animating an element it will apply the `ng-animate` CSS class to the element for the duration of the animation. + * This is a temporary CSS class and it will be removed once the animation is over (for both JavaScript and CSS-based animations). + * + * Therefore, animations can be applied to an element using this temporary class directly via CSS. + * + * ```css + * .zipper.ng-animate { + * transition:0.5s linear all; + * } + * .zipper.ng-enter { + * opacity:0; + * } + * .zipper.ng-enter.ng-enter-active { + * opacity:1; + * } + * .zipper.ng-leave { + * opacity:1; + * } + * .zipper.ng-leave.ng-leave-active { + * opacity:0; + * } + * ``` + * + * (Note that the `ng-animate` CSS class is reserved and it cannot be applied on an element directly since ngAnimate will always remove + * the CSS class once an animation has completed.) + * + * + * ## JavaScript-based Animations + * + * ngAnimate also allows for animations to be consumed by JavaScript code. The approach is similar to CSS-based animations (where there is a shared + * CSS class that is referenced in our HTML code) but in addition we need to register the JavaScript animation on the module. By making use of the + * `module.animation()` module function we can register the ainmation. + * + * Let's see an example of a enter/leave animation using `ngRepeat`: + * + * ```html + *
+ * {{ item }} + *
+ * ``` + * + * See the **slide** CSS class? Let's use that class to define an animation that we'll structure in our module code by using `module.animation`: + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * // make note that other events (like addClass/removeClass) + * // have different function input parameters + * enter: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * + * // remember to call doneFn so that angular + * // knows that the animation has concluded + * }, + * + * move: function(element, doneFn) { + * jQuery(element).fadeIn(1000, doneFn); + * }, + * + * leave: function(element, doneFn) { + * jQuery(element).fadeOut(1000, doneFn); + * } + * } + * }] + * ``` + * + * The nice thing about JS-based animations is that we can inject other services and make use of advanced animation libraries such as + * greensock.js and velocity.js. + * + * If our animation code class-based (meaning that something like `ngClass`, `ngHide` and `ngShow` triggers it) then we can still define + * our animations inside of the same registered animation, however, the function input arguments are a bit different: + * + * ```html + *
+ * this box is moody + *
+ * + * + * + * ``` + * + * ```js + * myModule.animation('.colorful', [function() { + * return { + * addClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * removeClass: function(element, className, doneFn) { + * // do some cool animation and call the doneFn + * }, + * setClass: function(element, addedClass, removedClass, doneFn) { + * // do some cool animation and call the doneFn + * } + * } + * }] + * ``` + * + * ## CSS + JS Animations Together + * + * AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of Angular, + * defining CSS and JS animations to work off of the same CSS class will not work anymore. Therefore the example below will only result in **JS animations taking + * charge of the animation**: + * + * ```html + *
+ * Slide in and out + *
+ * ``` + * + * ```js + * myModule.animation('.slide', [function() { + * return { + * enter: function(element, doneFn) { + * jQuery(element).slideIn(1000, doneFn); + * } + * } + * }] + * ``` + * + * ```css + * .slide.ng-enter { + * transition:0.5s linear all; + * transform:translateY(-100px); + * } + * .slide.ng-enter.ng-enter-active { + * transform:translateY(0); + * } + * ``` + * + * Does this mean that CSS and JS animations cannot be used together? Do JS-based animations always have higher priority? We can make up for the + * lack of CSS animations by using the `$animateCss` service to trigger our own tweaked-out, CSS-based animations directly from + * our own JS-based animation code: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { +* // this will trigger `.slide.ng-enter` and `.slide.ng-enter-active`. + * var runner = $animateCss(element, { + * event: 'enter', + * structural: true + * }).start(); +* runner.done(doneFn); + * } + * } + * }] + * ``` + * + * The nice thing here is that we can save bandwidth by sticking to our CSS-based animation code and we don't need to rely on a 3rd-party animation framework. + * + * The `$animateCss` service is very powerful since we can feed in all kinds of extra properties that will be evaluated and fed into a CSS transition or + * keyframe animation. For example if we wanted to animate the height of an element while adding and removing classes then we can do so by providing that + * data into `$animateCss` directly: + * + * ```js + * myModule.animation('.slide', ['$animateCss', function($animateCss) { + * return { + * enter: function(element, doneFn) { + * var runner = $animateCss(element, { + * event: 'enter', + * structural: true, + * addClass: 'maroon-setting', + * from: { height:0 }, + * to: { height: 200 } + * }).start(); + * + * runner.done(doneFn); + * } + * } + * }] + * ``` + * + * Now we can fill in the rest via our transition CSS code: + * + * ```css + * /* the transition tells ngAnimate to make the animation happen */ + * .slide.ng-enter { transition:0.5s linear all; } + * + * /* this extra CSS class will be absorbed into the transition + * since the $animateCss code is adding the class */ + * .maroon-setting { background:red; } + * ``` + * + * And `$animateCss` will figure out the rest. Just make sure to have the `done()` callback fire the `doneFn` function to signal when the animation is over. + * + * To learn more about what's possible be sure to visit the {@link ngAnimate.$animateCss $animateCss service}. + * + * ## Animation Anchoring (via `ng-animate-ref`) + * + * ngAnimate in AngularJS 1.4 comes packed with the ability to cross-animate elements between + * structural areas of an application (like views) by pairing up elements using an attribute + * called `ng-animate-ref`. + * + * Let's say for example we have two views that are managed by `ng-view` and we want to show + * that there is a relationship between two components situated in within these views. By using the + * `ng-animate-ref` attribute we can identify that the two components are paired together and we + * can then attach an animation, which is triggered when the view changes. + * + * Say for example we have the following template code: + * + * ```html + * + *
+ *
+ * + * + *
+ * + * + * + * + * + * ``` + * + * Now, when the view changes (once the link is clicked), ngAnimate will examine the + * HTML contents to see if there is a match reference between any components in the view + * that is leaving and the view that is entering. It will scan both the view which is being + * removed (leave) and inserted (enter) to see if there are any paired DOM elements that + * contain a matching ref value. + * + * The two images match since they share the same ref value. ngAnimate will now create a + * transport element (which is a clone of the first image element) and it will then attempt + * to animate to the position of the second image element in the next view. For the animation to + * work a special CSS class called `ng-anchor` will be added to the transported element. + * + * We can now attach a transition onto the `.banner.ng-anchor` CSS class and then + * ngAnimate will handle the entire transition for us as well as the addition and removal of + * any changes of CSS classes between the elements: + * + * ```css + * .banner.ng-anchor { + * /* this animation will last for 1 second since there are + * two phases to the animation (an `in` and an `out` phase) */ + * transition:0.5s linear all; + * } + * ``` + * + * We also **must** include animations for the views that are being entered and removed + * (otherwise anchoring wouldn't be possible since the new view would be inserted right away). + * + * ```css + * .view-animation.ng-enter, .view-animation.ng-leave { + * transition:0.5s linear all; + * position:fixed; + * left:0; + * top:0; + * width:100%; + * } + * .view-animation.ng-enter { + * transform:translateX(100%); + * } + * .view-animation.ng-leave, + * .view-animation.ng-enter.ng-enter-active { + * transform:translateX(0%); + * } + * .view-animation.ng-leave.ng-leave-active { + * transform:translateX(-100%); + * } + * ``` + * + * Now we can jump back to the anchor animation. When the animation happens, there are two stages that occur: + * an `out` and an `in` stage. The `out` stage happens first and that is when the element is animated away + * from its origin. Once that animation is over then the `in` stage occurs which animates the + * element to its destination. The reason why there are two animations is to give enough time + * for the enter animation on the new element to be ready. + * + * The example above sets up a transition for both the in and out phases, but we can also target the out or + * in phases directly via `ng-anchor-out` and `ng-anchor-in`. + * + * ```css + * .banner.ng-anchor-out { + * transition: 0.5s linear all; + * + * /* the scale will be applied during the out animation, + * but will be animated away when the in animation runs */ + * transform: scale(1.2); + * } + * + * .banner.ng-anchor-in { + * transition: 1s linear all; + * } + * ``` + * + * + * + * + * ### Anchoring Demo + * + + + Home +
+
+
+
+
+ + angular.module('anchoringExample', ['ngAnimate', 'ngRoute']) + .config(['$routeProvider', function($routeProvider) { + $routeProvider.when('/', { + templateUrl: 'home.html', + controller: 'HomeController as home' + }); + $routeProvider.when('/profile/:id', { + templateUrl: 'profile.html', + controller: 'ProfileController as profile' + }); + }]) + .run(['$rootScope', function($rootScope) { + $rootScope.records = [ + { id:1, title: "Miss Beulah Roob" }, + { id:2, title: "Trent Morissette" }, + { id:3, title: "Miss Ava Pouros" }, + { id:4, title: "Rod Pouros" }, + { id:5, title: "Abdul Rice" }, + { id:6, title: "Laurie Rutherford Sr." }, + { id:7, title: "Nakia McLaughlin" }, + { id:8, title: "Jordon Blanda DVM" }, + { id:9, title: "Rhoda Hand" }, + { id:10, title: "Alexandrea Sauer" } + ]; + }]) + .controller('HomeController', [function() { + //empty + }]) + .controller('ProfileController', ['$rootScope', '$routeParams', function($rootScope, $routeParams) { + var index = parseInt($routeParams.id, 10); + var record = $rootScope.records[index - 1]; + + this.title = record.title; + this.id = record.id; + }]); + + +

Welcome to the home page

+

Please click on an element

+ + {{ record.title }} + +
+ +
+ {{ profile.title }} +
+
+ + .record { + display:block; + font-size:20px; + } + .profile { + background:black; + color:white; + font-size:100px; + } + .view-container { + position:relative; + } + .view-container > .view.ng-animate { + position:absolute; + top:0; + left:0; + width:100%; + min-height:500px; + } + .view.ng-enter, .view.ng-leave, + .record.ng-anchor { + transition:0.5s linear all; + } + .view.ng-enter { + transform:translateX(100%); + } + .view.ng-enter.ng-enter-active, .view.ng-leave { + transform:translateX(0%); + } + .view.ng-leave.ng-leave-active { + transform:translateX(-100%); + } + .record.ng-anchor-out { + background:red; + } + +
+ * + * ### How is the element transported? + * + * When an anchor animation occurs, ngAnimate will clone the starting element and position it exactly where the starting + * element is located on screen via absolute positioning. The cloned element will be placed inside of the root element + * of the application (where ng-app was defined) and all of the CSS classes of the starting element will be applied. The + * element will then animate into the `out` and `in` animations and will eventually reach the coordinates and match + * the dimensions of the destination element. During the entire animation a CSS class of `.ng-animate-shim` will be applied + * to both the starting and destination elements in order to hide them from being visible (the CSS styling for the class + * is: `visibility:hidden`). Once the anchor reaches its destination then it will be removed and the destination element + * will become visible since the shim class will be removed. + * + * ### How is the morphing handled? + * + * CSS Anchoring relies on transitions and keyframes and the internal code is intelligent enough to figure out + * what CSS classes differ between the starting element and the destination element. These different CSS classes + * will be added/removed on the anchor element and a transition will be applied (the transition that is provided + * in the anchor class). Long story short, ngAnimate will figure out what classes to add and remove which will + * make the transition of the element as smooth and automatic as possible. Be sure to use simple CSS classes that + * do not rely on DOM nesting structure so that the anchor element appears the same as the starting element (since + * the cloned element is placed inside of root element which is likely close to the body element). + * + * Note that if the root element is on the `` element then the cloned node will be placed inside of body. + * + * + * ## Using $animate in your directive code + * + * So far we've explored how to feed in animations into an Angular application, but how do we trigger animations within our own directives in our application? + * By injecting the `$animate` service into our directive code, we can trigger structural and class-based hooks which can then be consumed by animations. Let's + * imagine we have a greeting box that shows and hides itself when the data changes + * + * ```html + * Hi there + * ``` + * + * ```js + * ngModule.directive('greetingBox', ['$animate', function($animate) { + * return function(scope, element, attrs) { + * attrs.$observe('active', function(value) { + * value ? $animate.addClass(element, 'on') : $animate.removeClass(element, 'on'); + * }); + * }); + * }]); + * ``` + * + * Now the `on` CSS class is added and removed on the greeting box component. Now if we add a CSS class on top of the greeting box element + * in our HTML code then we can trigger a CSS or JS animation to happen. + * + * ```css + * /* normally we would create a CSS class to reference on the element */ + * greeting-box.on { transition:0.5s linear all; background:green; color:white; } + * ``` + * + * The `$animate` service contains a variety of other methods like `enter`, `leave`, `animate` and `setClass`. To learn more about what's + * possible be sure to visit the {@link ng.$animate $animate service API page}. * * * ### Preventing Collisions With Third Party Libraries @@ -247,1896 +3718,68 @@ * ```js * $animateProvider.classNameFilter(/animate-/); * ``` - *
* - * ### CSS Staggering Animations - * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a - * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be - * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for - * the animation. The style property expected within the stagger class can either be a **transition-delay** or an - * **animation-delay** property (or both if your animation contains both transitions and keyframe animations). + * This also may provide your application with a speed boost since only specific elements containing CSS class prefix + * will be evaluated for animation when any DOM changes occur in the application. * - * ```css - * .my-animation.ng-enter { - * /* standard transition code */ - * -webkit-transition: 1s linear all; - * transition: 1s linear all; - * opacity:0; - * } - * .my-animation.ng-enter-stagger { - * /* this will have a 100ms delay between each successive leave animation */ - * -webkit-transition-delay: 0.1s; - * transition-delay: 0.1s; + * ## Callbacks and Promises * - * /* in case the stagger doesn't work then these two values - * must be set to 0 to avoid an accidental CSS inheritance */ - * -webkit-transition-duration: 0s; - * transition-duration: 0s; - * } - * .my-animation.ng-enter.ng-enter-active { - * /* standard transition styles */ - * opacity:1; - * } - * ``` - * - * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations - * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this - * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation - * will also be reset if more than 10ms has passed after the last animation has been fired. - * - * The following code will issue the **ng-leave-stagger** event on the element provided: + * When `$animate` is called it returns a promise that can be used to capture when the animation has ended. Therefore if we were to trigger + * an animation (within our directive code) then we can continue performing directive and scope related activities after the animation has + * ended by chaining onto the returned promise that animation method returns. * * ```js - * var kids = parent.children(); - * - * $animate.leave(kids[0]); //stagger index=0 - * $animate.leave(kids[1]); //stagger index=1 - * $animate.leave(kids[2]); //stagger index=2 - * $animate.leave(kids[3]); //stagger index=3 - * $animate.leave(kids[4]); //stagger index=4 - * - * $timeout(function() { - * //stagger has reset itself - * $animate.leave(kids[5]); //stagger index=0 - * $animate.leave(kids[6]); //stagger index=1 - * }, 100, false); - * ``` - * - * Stagger animations are currently only supported within CSS-defined animations. - * - * ## JavaScript-defined Animations - * In the event that you do not want to use CSS3 transitions or CSS3 animations or if you wish to offer animations on browsers that do not - * yet support CSS transitions/animations, then you can make use of JavaScript animations defined inside of your AngularJS module. - * - * ```js - * //!annotate="YourApp" Your AngularJS Module|Replace this or ngModule with the module that you used to define your application. - * var ngModule = angular.module('YourApp', ['ngAnimate']); - * ngModule.animation('.my-crazy-animation', function() { - * return { - * enter: function(element, done) { - * //run the animation here and call done when the animation is complete - * return function(cancelled) { - * //this (optional) function will be called when the animation - * //completes or when the animation is cancelled (the cancelled - * //flag will be set to true if cancelled). - * }; - * }, - * leave: function(element, done) { }, - * move: function(element, done) { }, - * - * //animation that can be triggered before the class is added - * beforeAddClass: function(element, className, done) { }, - * - * //animation that can be triggered after the class is added - * addClass: function(element, className, done) { }, - * - * //animation that can be triggered before the class is removed - * beforeRemoveClass: function(element, className, done) { }, - * - * //animation that can be triggered after the class is removed - * removeClass: function(element, className, done) { } - * }; + * // somewhere within the depths of the directive + * $animate.enter(element, parent).then(function() { + * //the animation has completed * }); * ``` * - * JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run - * a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits - * the element's CSS class attribute value and then run the matching animation event function (if found). - * In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will - * be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported). + * (Note that earlier versions of Angular prior to v1.4 required the promise code to be wrapped using `$scope.$apply(...)`. This is not the case + * anymore.) * - * Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned. - * As explained above, these callbacks are triggered based on the animation event. Therefore if an enter animation is run, - * and the JavaScript animation is found, then the enter callback will handle that animation (in addition to the CSS keyframe animation - * or transition code that is defined via a stylesheet). - * - * - * ### Applying Directive-specific Styles to an Animation - * In some cases a directive or service may want to provide `$animate` with extra details that the animation will - * include into its animation. Let's say for example we wanted to render an animation that animates an element - * towards the mouse coordinates as to where the user clicked last. By collecting the X/Y coordinates of the click - * (via the event parameter) we can set the `top` and `left` styles into an object and pass that into our function - * call to `$animate.addClass`. + * In addition to the animation promise, we can also make use of animation-related callbacks within our directives and controller code by registering + * an event listener using the `$animate` service. Let's say for example that an animation was triggered on our view + * routing controller to hook into that: * * ```js - * canvas.on('click', function(e) { - * $animate.addClass(element, 'on', { - * to: { - * left : e.client.x + 'px', - * top : e.client.y + 'px' - * } - * }): - * }); + * ngModule.controller('HomePageController', ['$animate', function($animate) { + * $animate.on('enter', ngViewElement, function(element) { + * // the animation for this route has completed + * }]); + * }]) * ``` * - * Now when the animation runs, and a transition or keyframe animation is picked up, then the animation itself will - * also include and transition the styling of the `left` and `top` properties into its running animation. If we want - * to provide some starting animation values then we can do so by placing the starting animations styles into an object - * called `from` in the same object as the `to` animations. - * - * ```js - * canvas.on('click', function(e) { - * $animate.addClass(element, 'on', { - * from: { - * position: 'absolute', - * left: '0px', - * top: '0px' - * }, - * to: { - * left : e.client.x + 'px', - * top : e.client.y + 'px' - * } - * }): - * }); - * ``` - * - * Once the animation is complete or cancelled then the union of both the before and after styles are applied to the - * element. If `ngAnimate` is not present then the styles will be applied immediately. - * + * (Note that you will need to trigger a digest within the callback to get angular to notice any scope-related changes.) */ -angular.module('ngAnimate', ['ng']) +/** + * @ngdoc service + * @name $animate + * @kind object + * + * @description + * The ngAnimate `$animate` service documentation is the same for the core `$animate` service. + * + * Click here {@link ng.$animate $animate to learn more about animations with `$animate`}. + */ +angular.module('ngAnimate', []) + .provider('$$body', $$BodyProvider) - /** - * @ngdoc provider - * @name $animateProvider - * @description - * - * The `$animateProvider` allows developers to register JavaScript animation event handlers directly inside of a module. - * When an animation is triggered, the $animate service will query the $animate service to find any animations that match - * the provided name value. - * - * Requires the {@link ngAnimate `ngAnimate`} module to be installed. - * - * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. - * - */ - .directive('ngAnimateChildren', function() { - var NG_ANIMATE_CHILDREN = '$$ngAnimateChildren'; - return function(scope, element, attrs) { - var val = attrs.ngAnimateChildren; - if (angular.isString(val) && val.length === 0) { //empty attribute - element.data(NG_ANIMATE_CHILDREN, true); - } else { - scope.$watch(val, function(value) { - element.data(NG_ANIMATE_CHILDREN, !!value); - }); - } - }; - }) + .directive('ngAnimateChildren', $$AnimateChildrenDirective) - //this private service is only used within CSS-enabled animations - //IE8 + IE9 do not support rAF natively, but that is fine since they - //also don't support transitions and keyframes which means that the code - //below will never be used by the two browsers. - .factory('$$animateReflow', ['$$rAF', '$document', function($$rAF, $document) { - var bod = $document[0].body; - return function(fn) { - //the returned function acts as the cancellation function - return $$rAF(function() { - //the line below will force the browser to perform a repaint - //so that all the animated elements within the animation frame - //will be properly updated and drawn on screen. This is - //required to perform multi-class CSS based animations with - //Firefox. DO NOT REMOVE THIS LINE. DO NOT OPTIMIZE THIS LINE. - //THE MINIFIER WILL REMOVE IT OTHERWISE WHICH WILL RESULT IN AN - //UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND WILL - //TAKE YEARS AWAY FROM YOUR LIFE! - fn(bod.offsetWidth); - }); - }; - }]) + .factory('$$rAFMutex', $$rAFMutexFactory) - .config(['$provide', '$animateProvider', function($provide, $animateProvider) { - var noop = angular.noop; - var forEach = angular.forEach; - var selectors = $animateProvider.$$selectors; - var isArray = angular.isArray; - var isString = angular.isString; - var isObject = angular.isObject; + .factory('$$AnimateRunner', $$AnimateRunnerFactory) - var ELEMENT_NODE = 1; - var NG_ANIMATE_STATE = '$$ngAnimateState'; - var NG_ANIMATE_CHILDREN = '$$ngAnimateChildren'; - var NG_ANIMATE_CLASS_NAME = 'ng-animate'; - var rootAnimateState = {running: true}; + .provider('$$animateQueue', $$AnimateQueueProvider) + .provider('$$animation', $$AnimationProvider) - function extractElementNode(element) { - for (var i = 0; i < element.length; i++) { - var elm = element[i]; - if (elm.nodeType == ELEMENT_NODE) { - return elm; - } - } - } + .provider('$animateCss', $AnimateCssProvider) + .provider('$$animateCssDriver', $$AnimateCssDriverProvider) - function prepareElement(element) { - return element && angular.element(element); - } - - function stripCommentsFromElement(element) { - return angular.element(extractElementNode(element)); - } - - function isMatchingElement(elm1, elm2) { - return extractElementNode(elm1) == extractElementNode(elm2); - } - var $$jqLite; - $provide.decorator('$animate', - ['$delegate', '$$q', '$injector', '$sniffer', '$rootElement', '$$asyncCallback', '$rootScope', '$document', '$templateRequest', '$$jqLite', - function($delegate, $$q, $injector, $sniffer, $rootElement, $$asyncCallback, $rootScope, $document, $templateRequest, $$$jqLite) { - - $$jqLite = $$$jqLite; - $rootElement.data(NG_ANIMATE_STATE, rootAnimateState); - - // 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 - // templates currently downloading then the watcher will still fire anyway. - var deregisterWatch = $rootScope.$watch( - function() { return $templateRequest.totalPendingRequests; }, - function(val, oldVal) { - if (val !== 0) return; - deregisterWatch(); - - // Now that all templates have been downloaded, $animate will wait until - // the post digest queue is empty before enabling animations. By having two - // calls to $postDigest calls we can ensure that the flag is enabled at the - // very end of the post digest queue. Since all of the animations in $animate - // use $postDigest, it's important that the code below executes at the end. - // This basically means that the page is fully downloaded and compiled before - // any animations are triggered. - $rootScope.$$postDigest(function() { - $rootScope.$$postDigest(function() { - rootAnimateState.running = false; - }); - }); - } - ); - - var globalAnimationCounter = 0; - var classNameFilter = $animateProvider.classNameFilter(); - var isAnimatableClassName = !classNameFilter - ? function() { return true; } - : function(className) { - return classNameFilter.test(className); - }; - - function classBasedAnimationsBlocked(element, setter) { - var data = element.data(NG_ANIMATE_STATE) || {}; - if (setter) { - data.running = true; - data.structural = true; - element.data(NG_ANIMATE_STATE, data); - } - return data.disabled || (data.running && data.structural); - } - - function runAnimationPostDigest(fn) { - var cancelFn, defer = $$q.defer(); - defer.promise.$$cancelFn = function() { - cancelFn && cancelFn(); - }; - $rootScope.$$postDigest(function() { - cancelFn = fn(function() { - defer.resolve(); - }); - }); - return defer.promise; - } - - function parseAnimateOptions(options) { - // some plugin code may still be passing in the callback - // function as the last param for the $animate methods so - // it's best to only allow string or array values for now - if (isObject(options)) { - if (options.tempClasses && isString(options.tempClasses)) { - options.tempClasses = options.tempClasses.split(/\s+/); - } - return options; - } - } - - function resolveElementClasses(element, cache, runningAnimations) { - runningAnimations = runningAnimations || {}; - - var lookup = {}; - forEach(runningAnimations, function(data, selector) { - forEach(selector.split(' '), function(s) { - lookup[s]=data; - }); - }); - - var hasClasses = Object.create(null); - forEach((element.attr('class') || '').split(/\s+/), function(className) { - hasClasses[className] = true; - }); - - var toAdd = [], toRemove = []; - forEach((cache && cache.classes) || [], function(status, className) { - var hasClass = hasClasses[className]; - var matchingAnimation = lookup[className] || {}; - - // When addClass and removeClass is called then $animate will check to - // see if addClass and removeClass cancel each other out. When there are - // more calls to removeClass than addClass then the count falls below 0 - // and then the removeClass animation will be allowed. Otherwise if the - // count is above 0 then that means an addClass animation will commence. - // Once an animation is allowed then the code will also check to see if - // there exists any on-going animation that is already adding or remvoing - // the matching CSS class. - if (status === false) { - //does it have the class or will it have the class - if (hasClass || matchingAnimation.event == 'addClass') { - toRemove.push(className); - } - } else if (status === true) { - //is the class missing or will it be removed? - if (!hasClass || matchingAnimation.event == 'removeClass') { - toAdd.push(className); - } - } - }); - - return (toAdd.length + toRemove.length) > 0 && [toAdd.join(' '), toRemove.join(' ')]; - } - - function lookup(name) { - if (name) { - var matches = [], - flagMap = {}, - classes = name.substr(1).split('.'); - - //the empty string value is the default animation - //operation which performs CSS transition and keyframe - //animations sniffing. This is always included for each - //element animation procedure if the browser supports - //transitions and/or keyframe animations. The default - //animation is added to the top of the list to prevent - //any previous animations from affecting the element styling - //prior to the element being animated. - if ($sniffer.transitions || $sniffer.animations) { - matches.push($injector.get(selectors[''])); - } - - for (var i=0; i < classes.length; i++) { - var klass = classes[i], - selectorFactoryName = selectors[klass]; - if (selectorFactoryName && !flagMap[klass]) { - matches.push($injector.get(selectorFactoryName)); - flagMap[klass] = true; - } - } - return matches; - } - } - - function animationRunner(element, animationEvent, className, options) { - //transcluded directives may sometimes fire an animation using only comment nodes - //best to catch this early on to prevent any animation operations from occurring - var node = element[0]; - if (!node) { - return; - } - - if (options) { - options.to = options.to || {}; - options.from = options.from || {}; - } - - var classNameAdd; - var classNameRemove; - if (isArray(className)) { - classNameAdd = className[0]; - classNameRemove = className[1]; - if (!classNameAdd) { - className = classNameRemove; - animationEvent = 'removeClass'; - } else if (!classNameRemove) { - className = classNameAdd; - animationEvent = 'addClass'; - } else { - className = classNameAdd + ' ' + classNameRemove; - } - } - - var isSetClassOperation = animationEvent == 'setClass'; - var isClassBased = isSetClassOperation - || animationEvent == 'addClass' - || animationEvent == 'removeClass' - || animationEvent == 'animate'; - - var currentClassName = element.attr('class'); - var classes = currentClassName + ' ' + className; - if (!isAnimatableClassName(classes)) { - return; - } - - var beforeComplete = noop, - beforeCancel = [], - before = [], - afterComplete = noop, - afterCancel = [], - after = []; - - var animationLookup = (' ' + classes).replace(/\s+/g,'.'); - forEach(lookup(animationLookup), function(animationFactory) { - var created = registerAnimation(animationFactory, animationEvent); - if (!created && isSetClassOperation) { - registerAnimation(animationFactory, 'addClass'); - registerAnimation(animationFactory, 'removeClass'); - } - }); - - function registerAnimation(animationFactory, event) { - var afterFn = animationFactory[event]; - var beforeFn = animationFactory['before' + event.charAt(0).toUpperCase() + event.substr(1)]; - if (afterFn || beforeFn) { - if (event == 'leave') { - beforeFn = afterFn; - //when set as null then animation knows to skip this phase - afterFn = null; - } - after.push({ - event: event, fn: afterFn - }); - before.push({ - event: event, fn: beforeFn - }); - return true; - } - } - - function run(fns, cancellations, allCompleteFn) { - var animations = []; - forEach(fns, function(animation) { - animation.fn && animations.push(animation); - }); - - var count = 0; - function afterAnimationComplete(index) { - if (cancellations) { - (cancellations[index] || noop)(); - if (++count < animations.length) return; - cancellations = null; - } - allCompleteFn(); - } - - //The code below adds directly to the array in order to work with - //both sync and async animations. Sync animations are when the done() - //operation is called right away. DO NOT REFACTOR! - forEach(animations, function(animation, index) { - var progress = function() { - afterAnimationComplete(index); - }; - switch (animation.event) { - case 'setClass': - cancellations.push(animation.fn(element, classNameAdd, classNameRemove, progress, options)); - break; - case 'animate': - cancellations.push(animation.fn(element, className, options.from, options.to, progress)); - break; - case 'addClass': - cancellations.push(animation.fn(element, classNameAdd || className, progress, options)); - break; - case 'removeClass': - cancellations.push(animation.fn(element, classNameRemove || className, progress, options)); - break; - default: - cancellations.push(animation.fn(element, progress, options)); - break; - } - }); - - if (cancellations && cancellations.length === 0) { - allCompleteFn(); - } - } - - return { - node: node, - event: animationEvent, - className: className, - isClassBased: isClassBased, - isSetClassOperation: isSetClassOperation, - applyStyles: function() { - if (options) { - element.css(angular.extend(options.from || {}, options.to || {})); - } - }, - before: function(allCompleteFn) { - beforeComplete = allCompleteFn; - run(before, beforeCancel, function() { - beforeComplete = noop; - allCompleteFn(); - }); - }, - after: function(allCompleteFn) { - afterComplete = allCompleteFn; - run(after, afterCancel, function() { - afterComplete = noop; - allCompleteFn(); - }); - }, - cancel: function() { - if (beforeCancel) { - forEach(beforeCancel, function(cancelFn) { - (cancelFn || noop)(true); - }); - beforeComplete(true); - } - if (afterCancel) { - forEach(afterCancel, function(cancelFn) { - (cancelFn || noop)(true); - }); - afterComplete(true); - } - } - }; - } - - /** - * @ngdoc service - * @name $animate - * @kind object - * - * @description - * The `$animate` service provides animation detection support while performing DOM operations (enter, leave and move) as well as during addClass and removeClass operations. - * When any of these operations are run, the $animate service - * will examine any JavaScript-defined animations (which are defined by using the $animateProvider provider object) - * as well as any CSS-defined animations against the CSS classes present on the element once the DOM operation is run. - * - * The `$animate` service is used behind the scenes with pre-existing directives and animation with these directives - * will work out of the box without any extra configuration. - * - * Requires the {@link ngAnimate `ngAnimate`} module to be installed. - * - * Please visit the {@link ngAnimate `ngAnimate`} module overview page learn more about how to use animations in your application. - * ## Callback Promises - * With AngularJS 1.3, each of the animation methods, on the `$animate` service, return a promise when called. The - * promise itself is then resolved once the animation has completed itself, has been cancelled or has been - * skipped due to animations being disabled. (Note that even if the animation is cancelled it will still - * call the resolve function of the animation.) - * - * ```js - * $animate.enter(element, container).then(function() { - * //...this is called once the animation is complete... - * }); - * ``` - * - * Also note that, due to the nature of the callback promise, if any Angular-specific code (like changing the scope, - * location of the page, etc...) is executed within the callback promise then be sure to wrap the code using - * `$scope.$apply(...)`; - * - * ```js - * $animate.leave(element).then(function() { - * $scope.$apply(function() { - * $location.path('/new-page'); - * }); - * }); - * ``` - * - * An animation can also be cancelled by calling the `$animate.cancel(promise)` method with the provided - * promise that was returned when the animation was started. - * - * ```js - * var promise = $animate.addClass(element, 'super-long-animation'); - * promise.then(function() { - * //this will still be called even if cancelled - * }); - * - * element.on('click', function() { - * //tooo lazy to wait for the animation to end - * $animate.cancel(promise); - * }); - * ``` - * - * (Keep in mind that the promise cancellation is unique to `$animate` since promises in - * general cannot be cancelled.) - * - */ - return { - /** - * @ngdoc method - * @name $animate#animate - * @kind function - * - * @description - * Performs an inline animation on the element which applies the provided `to` and `from` CSS styles to the element. - * If any detected CSS transition, keyframe or JavaScript matches the provided `className` value then the animation - * will take on the provided styles. For example, if a transition animation is set for the given className then the - * provided `from` and `to` styles will be applied alongside the given transition. If a JavaScript animation is - * detected then the provided styles will be given in as function paramters. - * - * ```js - * ngModule.animation('.my-inline-animation', function() { - * return { - * animate : function(element, className, from, to, done) { - * //styles - * } - * } - * }); - * ``` - * - * Below is a breakdown of each step that occurs during the `animate` animation: - * - * | Animation Step | What the element class attribute looks like | - * |-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------| - * | 1. `$animate.animate(...)` is called | `class="my-animation"` | - * | 2. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | - * | 3. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | - * | 4. the `className` class value is added to the element | `class="my-animation ng-animate className"` | - * | 5. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate className"` | - * | 6. `$animate` blocks all CSS transitions on the element to ensure the `.className` class styling is applied right away| `class="my-animation ng-animate className"` | - * | 7. `$animate` applies the provided collection of `from` CSS styles to the element | `class="my-animation ng-animate className"` | - * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate className"` | - * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate className"` | - * | 10. the `className-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate className className-active"` | - * | 11. `$animate` applies the collection of `to` CSS styles to the element which are then handled by the transition | `class="my-animation ng-animate className className-active"` | - * | 12. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate className className-active"` | - * | 13. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | - * | 14. The returned promise is resolved. | `class="my-animation"` | - * - * @param {DOMElement} element the element that will be the focus of the enter animation - * @param {object} from a collection of CSS styles that will be applied to the element at the start of the animation - * @param {object} to a collection of CSS styles that the element will animate towards - * @param {string=} className an optional CSS class that will be added to the element for the duration of the animation (the default class is `ng-inline-animate`) - * @param {object=} options an optional collection of options that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - animate: function(element, from, to, className, options) { - className = className || 'ng-inline-animate'; - options = parseAnimateOptions(options) || {}; - options.from = to ? from : null; - options.to = to ? to : from; - - return runAnimationPostDigest(function(done) { - return performAnimation('animate', className, stripCommentsFromElement(element), null, null, noop, options, done); - }); - }, - - /** - * @ngdoc method - * @name $animate#enter - * @kind function - * - * @description - * Appends the element to the parentElement element that resides in the document and then runs the enter animation. Once - * the animation is started, the following CSS classes will be present on the element for the duration of the animation: - * - * Below is a breakdown of each step that occurs during enter animation: - * - * | Animation Step | What the element class attribute looks like | - * |-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| - * | 1. `$animate.enter(...)` is called | `class="my-animation"` | - * | 2. element is inserted into the `parentElement` element or beside the `afterElement` element | `class="my-animation"` | - * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | - * | 4. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | - * | 5. the `.ng-enter` class is added to the element | `class="my-animation ng-animate ng-enter"` | - * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-enter"` | - * | 7. `$animate` blocks all CSS transitions on the element to ensure the `.ng-enter` class styling is applied right away | `class="my-animation ng-animate ng-enter"` | - * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-enter"` | - * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-enter"` | - * | 10. the `.ng-enter-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-enter ng-enter-active"` | - * | 11. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-enter ng-enter-active"` | - * | 12. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | - * | 13. The returned promise is resolved. | `class="my-animation"` | - * - * @param {DOMElement} element the element that will be the focus of the enter animation - * @param {DOMElement} parentElement the parent element of the element that will be the focus of the enter animation - * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the enter animation - * @param {object=} options an optional collection of options that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - enter: function(element, parentElement, afterElement, options) { - options = parseAnimateOptions(options); - element = angular.element(element); - parentElement = prepareElement(parentElement); - afterElement = prepareElement(afterElement); - - classBasedAnimationsBlocked(element, true); - $delegate.enter(element, parentElement, afterElement); - return runAnimationPostDigest(function(done) { - return performAnimation('enter', 'ng-enter', stripCommentsFromElement(element), parentElement, afterElement, noop, options, done); - }); - }, - - /** - * @ngdoc method - * @name $animate#leave - * @kind function - * - * @description - * Runs the leave animation operation and, upon completion, removes the element from the DOM. Once - * the animation is started, the following CSS classes will be added for the duration of the animation: - * - * Below is a breakdown of each step that occurs during leave animation: - * - * | Animation Step | What the element class attribute looks like | - * |-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------| - * | 1. `$animate.leave(...)` is called | `class="my-animation"` | - * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | - * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | - * | 4. the `.ng-leave` class is added to the element | `class="my-animation ng-animate ng-leave"` | - * | 5. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-leave"` | - * | 6. `$animate` blocks all CSS transitions on the element to ensure the `.ng-leave` class styling is applied right away | `class="my-animation ng-animate ng-leave"` | - * | 7. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-leave"` | - * | 8. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-leave"` | - * | 9. the `.ng-leave-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-leave ng-leave-active"` | - * | 10. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-leave ng-leave-active"` | - * | 11. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | - * | 12. The element is removed from the DOM | ... | - * | 13. The returned promise is resolved. | ... | - * - * @param {DOMElement} element the element that will be the focus of the leave animation - * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - leave: function(element, options) { - options = parseAnimateOptions(options); - element = angular.element(element); - - cancelChildAnimations(element); - classBasedAnimationsBlocked(element, true); - return runAnimationPostDigest(function(done) { - return performAnimation('leave', 'ng-leave', stripCommentsFromElement(element), null, null, function() { - $delegate.leave(element); - }, options, done); - }); - }, - - /** - * @ngdoc method - * @name $animate#move - * @kind function - * - * @description - * Fires the move DOM operation. Just before the animation starts, the animate service will either append it into the parentElement container or - * add the element directly after the afterElement element if present. Then the move animation will be run. Once - * the animation is started, the following CSS classes will be added for the duration of the animation: - * - * Below is a breakdown of each step that occurs during move animation: - * - * | Animation Step | What the element class attribute looks like | - * |----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------| - * | 1. `$animate.move(...)` is called | `class="my-animation"` | - * | 2. element is moved into the parentElement element or beside the afterElement element | `class="my-animation"` | - * | 3. `$animate` waits for the next digest to start the animation | `class="my-animation ng-animate"` | - * | 4. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | - * | 5. the `.ng-move` class is added to the element | `class="my-animation ng-animate ng-move"` | - * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate ng-move"` | - * | 7. `$animate` blocks all CSS transitions on the element to ensure the `.ng-move` class styling is applied right away | `class="my-animation ng-animate ng-move"` | - * | 8. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate ng-move"` | - * | 9. `$animate` removes the CSS transition block placed on the element | `class="my-animation ng-animate ng-move"` | - * | 10. the `.ng-move-active` class is added (this triggers the CSS transition/animation) | `class="my-animation ng-animate ng-move ng-move-active"` | - * | 11. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate ng-move ng-move-active"` | - * | 12. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | - * | 13. The returned promise is resolved. | `class="my-animation"` | - * - * @param {DOMElement} element the element that will be the focus of the move animation - * @param {DOMElement} parentElement the parentElement element of the element that will be the focus of the move animation - * @param {DOMElement} afterElement the sibling element (which is the previous element) of the element that will be the focus of the move animation - * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - move: function(element, parentElement, afterElement, options) { - options = parseAnimateOptions(options); - element = angular.element(element); - parentElement = prepareElement(parentElement); - afterElement = prepareElement(afterElement); - - cancelChildAnimations(element); - classBasedAnimationsBlocked(element, true); - $delegate.move(element, parentElement, afterElement); - return runAnimationPostDigest(function(done) { - return performAnimation('move', 'ng-move', stripCommentsFromElement(element), parentElement, afterElement, noop, options, done); - }); - }, - - /** - * @ngdoc method - * @name $animate#addClass - * - * @description - * Triggers a custom animation event based off the className variable and then attaches the className value to the element as a CSS class. - * Unlike the other animation methods, the animate service will suffix the className value with {@type -add} in order to provide - * the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if no CSS transitions - * or keyframes are defined on the -add-active or base CSS class). - * - * Below is a breakdown of each step that occurs during addClass animation: - * - * | Animation Step | What the element class attribute looks like | - * |--------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| - * | 1. `$animate.addClass(element, 'super')` is called | `class="my-animation"` | - * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate"` | - * | 3. the `.super-add` class is added to the element | `class="my-animation ng-animate super-add"` | - * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate super-add"` | - * | 5. the `.super` and `.super-add-active` classes are added (this triggers the CSS transition/animation) | `class="my-animation ng-animate super super-add super-add-active"` | - * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate super super-add super-add-active"` | - * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate super super-add super-add-active"` | - * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation super"` | - * | 9. The super class is kept on the element | `class="my-animation super"` | - * | 10. The returned promise is resolved. | `class="my-animation super"` | - * - * @param {DOMElement} element the element that will be animated - * @param {string} className the CSS class that will be added to the element and then animated - * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - addClass: function(element, className, options) { - return this.setClass(element, className, [], options); - }, - - /** - * @ngdoc method - * @name $animate#removeClass - * - * @description - * Triggers a custom animation event based off the className variable and then removes the CSS class provided by the className value - * from the element. Unlike the other animation methods, the animate service will suffix the className value with {@type -remove} in - * order to provide the animate service the setup and active CSS classes in order to trigger the animation (this will be skipped if - * no CSS transitions or keyframes are defined on the -remove or base CSS classes). - * - * Below is a breakdown of each step that occurs during removeClass animation: - * - * | Animation Step | What the element class attribute looks like | - * |----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------| - * | 1. `$animate.removeClass(element, 'super')` is called | `class="my-animation super"` | - * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation super ng-animate"` | - * | 3. the `.super-remove` class is added to the element | `class="my-animation super ng-animate super-remove"` | - * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation super ng-animate super-remove"` | - * | 5. the `.super-remove-active` classes are added and `.super` is removed (this triggers the CSS transition/animation) | `class="my-animation ng-animate super-remove super-remove-active"` | - * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate super-remove super-remove-active"` | - * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate super-remove super-remove-active"` | - * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation"` | - * | 9. The returned promise is resolved. | `class="my-animation"` | - * - * - * @param {DOMElement} element the element that will be animated - * @param {string} className the CSS class that will be animated and then removed from the element - * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - removeClass: function(element, className, options) { - return this.setClass(element, [], className, options); - }, - - /** - * - * @ngdoc method - * @name $animate#setClass - * - * @description Adds and/or removes the given CSS classes to and from the element. - * Once complete, the `done()` callback will be fired (if provided). - * - * | Animation Step | What the element class attribute looks like | - * |----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------| - * | 1. `$animate.setClass(element, 'on', 'off')` is called | `class="my-animation off"` | - * | 2. `$animate` runs the JavaScript-defined animations detected on the element | `class="my-animation ng-animate off"` | - * | 3. the `.on-add` and `.off-remove` classes are added to the element | `class="my-animation ng-animate on-add off-remove off"` | - * | 4. `$animate` waits for a single animation frame (this performs a reflow) | `class="my-animation ng-animate on-add off-remove off"` | - * | 5. the `.on`, `.on-add-active` and `.off-remove-active` classes are added and `.off` is removed (this triggers the CSS transition/animation) | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | - * | 6. `$animate` scans the element styles to get the CSS transition/animation duration and delay | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | - * | 7. `$animate` waits for the animation to complete (via events and timeout) | `class="my-animation ng-animate on on-add on-add-active off-remove off-remove-active"` | - * | 8. The animation ends and all generated CSS classes are removed from the element | `class="my-animation on"` | - * | 9. The returned promise is resolved. | `class="my-animation on"` | - * - * @param {DOMElement} element the element which will have its CSS classes changed - * removed from it - * @param {string} add the CSS classes which will be added to the element - * @param {string} remove the CSS class which will be removed from the element - * CSS classes have been set on the element - * @param {object=} options an optional collection of styles that will be picked up by the CSS transition/animation - * @return {Promise} the animation callback promise - */ - setClass: function(element, add, remove, options) { - options = parseAnimateOptions(options); - - var STORAGE_KEY = '$$animateClasses'; - element = angular.element(element); - element = stripCommentsFromElement(element); - - if (classBasedAnimationsBlocked(element)) { - return $delegate.$$setClassImmediately(element, add, remove, options); - } - - // we're using a combined array for both the add and remove - // operations since the ORDER OF addClass and removeClass matters - var classes, cache = element.data(STORAGE_KEY); - var hasCache = !!cache; - if (!cache) { - cache = {}; - cache.classes = {}; - } - classes = cache.classes; - - add = isArray(add) ? add : add.split(' '); - forEach(add, function(c) { - if (c && c.length) { - classes[c] = true; - } - }); - - remove = isArray(remove) ? remove : remove.split(' '); - forEach(remove, function(c) { - if (c && c.length) { - classes[c] = false; - } - }); - - if (hasCache) { - if (options && cache.options) { - cache.options = angular.extend(cache.options || {}, options); - } - - //the digest cycle will combine all the animations into one function - return cache.promise; - } else { - element.data(STORAGE_KEY, cache = { - classes: classes, - options: options - }); - } - - return cache.promise = runAnimationPostDigest(function(done) { - var cache, parentNode, parentElement, elementNode = extractElementNode(element); - if (elementNode) { - cache = element.data(STORAGE_KEY); - element.removeData(STORAGE_KEY); - - parentElement = element.parent(); - parentNode = elementNode.parentNode; - } - - // TODO(matsko): move this code into the animationsDisabled() function once #8092 is fixed - if (!parentNode || parentNode['$$NG_REMOVED'] || elementNode['$$NG_REMOVED']) { - done(); - return; - } - - var state = element.data(NG_ANIMATE_STATE) || {}; - var classes = resolveElementClasses(element, cache, state.active); - return !classes - ? done() - : performAnimation('setClass', classes, element, parentElement, null, function() { - if (classes[0]) $delegate.$$addClassImmediately(element, classes[0]); - if (classes[1]) $delegate.$$removeClassImmediately(element, classes[1]); - }, cache.options, done); - }); - }, - - /** - * @ngdoc method - * @name $animate#cancel - * @kind function - * - * @param {Promise} animationPromise The animation promise that is returned when an animation is started. - * - * @description - * Cancels the provided animation. - */ - cancel: function(promise) { - promise.$$cancelFn(); - }, - - /** - * @ngdoc method - * @name $animate#enabled - * @kind function - * - * @param {boolean=} value If provided then set the animation on or off. - * @param {DOMElement=} element If provided then the element will be used to represent the enable/disable operation - * @return {boolean} Current animation state. - * - * @description - * Globally enables/disables animations. - * - */ - enabled: function(value, element) { - switch (arguments.length) { - case 2: - if (value) { - cleanup(element); - } else { - var data = element.data(NG_ANIMATE_STATE) || {}; - data.disabled = true; - element.data(NG_ANIMATE_STATE, data); - } - break; - - case 1: - rootAnimateState.disabled = !value; - break; - - default: - value = !rootAnimateState.disabled; - break; - } - return !!value; - } - }; - - /* - all animations call this shared animation triggering function internally. - The animationEvent variable refers to the JavaScript animation event that will be triggered - and the className value is the name of the animation that will be applied within the - CSS code. Element, `parentElement` and `afterElement` are provided DOM elements for the animation - and the onComplete callback will be fired once the animation is fully complete. - */ - function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, options, doneCallback) { - var noopCancel = noop; - var runner = animationRunner(element, animationEvent, className, options); - if (!runner) { - fireDOMOperation(); - fireBeforeCallbackAsync(); - fireAfterCallbackAsync(); - closeAnimation(); - return noopCancel; - } - - animationEvent = runner.event; - className = runner.className; - var elementEvents = angular.element._data(runner.node); - elementEvents = elementEvents && elementEvents.events; - - if (!parentElement) { - parentElement = afterElement ? afterElement.parent() : element.parent(); - } - - //skip the animation if animations are disabled, a parent is already being animated, - //the element is not currently attached to the document body or then completely close - //the animation if any matching animations are not found at all. - //NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case an animation was found. - if (animationsDisabled(element, parentElement)) { - fireDOMOperation(); - fireBeforeCallbackAsync(); - fireAfterCallbackAsync(); - closeAnimation(); - return noopCancel; - } - - var ngAnimateState = element.data(NG_ANIMATE_STATE) || {}; - var runningAnimations = ngAnimateState.active || {}; - var totalActiveAnimations = ngAnimateState.totalActive || 0; - var lastAnimation = ngAnimateState.last; - var skipAnimation = false; - - if (totalActiveAnimations > 0) { - var animationsToCancel = []; - if (!runner.isClassBased) { - if (animationEvent == 'leave' && runningAnimations['ng-leave']) { - skipAnimation = true; - } else { - //cancel all animations when a structural animation takes place - for (var klass in runningAnimations) { - animationsToCancel.push(runningAnimations[klass]); - } - ngAnimateState = {}; - cleanup(element, true); - } - } else if (lastAnimation.event == 'setClass') { - animationsToCancel.push(lastAnimation); - cleanup(element, className); - } else if (runningAnimations[className]) { - var current = runningAnimations[className]; - if (current.event == animationEvent) { - skipAnimation = true; - } else { - animationsToCancel.push(current); - cleanup(element, className); - } - } - - if (animationsToCancel.length > 0) { - forEach(animationsToCancel, function(operation) { - operation.cancel(); - }); - } - } - - if (runner.isClassBased - && !runner.isSetClassOperation - && animationEvent != 'animate' - && !skipAnimation) { - skipAnimation = (animationEvent == 'addClass') == element.hasClass(className); //opposite of XOR - } - - if (skipAnimation) { - fireDOMOperation(); - fireBeforeCallbackAsync(); - fireAfterCallbackAsync(); - fireDoneCallbackAsync(); - return noopCancel; - } - - runningAnimations = ngAnimateState.active || {}; - totalActiveAnimations = ngAnimateState.totalActive || 0; - - if (animationEvent == 'leave') { - //there's no need to ever remove the listener since the element - //will be removed (destroyed) after the leave animation ends or - //is cancelled midway - element.one('$destroy', function(e) { - var element = angular.element(this); - var state = element.data(NG_ANIMATE_STATE); - if (state) { - var activeLeaveAnimation = state.active['ng-leave']; - if (activeLeaveAnimation) { - activeLeaveAnimation.cancel(); - cleanup(element, 'ng-leave'); - } - } - }); - } - - //the ng-animate class does nothing, but it's here to allow for - //parent animations to find and cancel child animations when needed - $$jqLite.addClass(element, NG_ANIMATE_CLASS_NAME); - if (options && options.tempClasses) { - forEach(options.tempClasses, function(className) { - $$jqLite.addClass(element, className); - }); - } - - var localAnimationCount = globalAnimationCounter++; - totalActiveAnimations++; - runningAnimations[className] = runner; - - element.data(NG_ANIMATE_STATE, { - last: runner, - active: runningAnimations, - index: localAnimationCount, - totalActive: totalActiveAnimations - }); - - //first we run the before animations and when all of those are complete - //then we perform the DOM operation and run the next set of animations - fireBeforeCallbackAsync(); - runner.before(function(cancelled) { - var data = element.data(NG_ANIMATE_STATE); - cancelled = cancelled || - !data || !data.active[className] || - (runner.isClassBased && data.active[className].event != animationEvent); - - fireDOMOperation(); - if (cancelled === true) { - closeAnimation(); - } else { - fireAfterCallbackAsync(); - runner.after(closeAnimation); - } - }); - - return runner.cancel; - - function fireDOMCallback(animationPhase) { - var eventName = '$animate:' + animationPhase; - if (elementEvents && elementEvents[eventName] && elementEvents[eventName].length > 0) { - $$asyncCallback(function() { - element.triggerHandler(eventName, { - event: animationEvent, - className: className - }); - }); - } - } - - function fireBeforeCallbackAsync() { - fireDOMCallback('before'); - } - - function fireAfterCallbackAsync() { - fireDOMCallback('after'); - } - - function fireDoneCallbackAsync() { - fireDOMCallback('close'); - doneCallback(); - } - - //it is less complicated to use a flag than managing and canceling - //timeouts containing multiple callbacks. - function fireDOMOperation() { - if (!fireDOMOperation.hasBeenRun) { - fireDOMOperation.hasBeenRun = true; - domOperation(); - } - } - - function closeAnimation() { - if (!closeAnimation.hasBeenRun) { - if (runner) { //the runner doesn't exist if it fails to instantiate - runner.applyStyles(); - } - - closeAnimation.hasBeenRun = true; - if (options && options.tempClasses) { - forEach(options.tempClasses, function(className) { - $$jqLite.removeClass(element, className); - }); - } - - var data = element.data(NG_ANIMATE_STATE); - if (data) { - - /* only structural animations wait for reflow before removing an - animation, but class-based animations don't. An example of this - failing would be when a parent HTML tag has a ng-class attribute - causing ALL directives below to skip animations during the digest */ - if (runner && runner.isClassBased) { - cleanup(element, className); - } else { - $$asyncCallback(function() { - var data = element.data(NG_ANIMATE_STATE) || {}; - if (localAnimationCount == data.index) { - cleanup(element, className, animationEvent); - } - }); - element.data(NG_ANIMATE_STATE, data); - } - } - fireDoneCallbackAsync(); - } - } - } - - function cancelChildAnimations(element) { - var node = extractElementNode(element); - if (node) { - var nodes = angular.isFunction(node.getElementsByClassName) ? - node.getElementsByClassName(NG_ANIMATE_CLASS_NAME) : - node.querySelectorAll('.' + NG_ANIMATE_CLASS_NAME); - forEach(nodes, function(element) { - element = angular.element(element); - var data = element.data(NG_ANIMATE_STATE); - if (data && data.active) { - forEach(data.active, function(runner) { - runner.cancel(); - }); - } - }); - } - } - - function cleanup(element, className) { - if (isMatchingElement(element, $rootElement)) { - if (!rootAnimateState.disabled) { - rootAnimateState.running = false; - rootAnimateState.structural = false; - } - } else if (className) { - var data = element.data(NG_ANIMATE_STATE) || {}; - - var removeAnimations = className === true; - if (!removeAnimations && data.active && data.active[className]) { - data.totalActive--; - delete data.active[className]; - } - - if (removeAnimations || !data.totalActive) { - $$jqLite.removeClass(element, NG_ANIMATE_CLASS_NAME); - element.removeData(NG_ANIMATE_STATE); - } - } - } - - function animationsDisabled(element, parentElement) { - if (rootAnimateState.disabled) { - return true; - } - - if (isMatchingElement(element, $rootElement)) { - return rootAnimateState.running; - } - - var allowChildAnimations, parentRunningAnimation, hasParent; - do { - //the element did not reach the root element which means that it - //is not apart of the DOM. Therefore there is no reason to do - //any animations on it - if (parentElement.length === 0) break; - - var isRoot = isMatchingElement(parentElement, $rootElement); - var state = isRoot ? rootAnimateState : (parentElement.data(NG_ANIMATE_STATE) || {}); - if (state.disabled) { - return true; - } - - //no matter what, for an animation to work it must reach the root element - //this implies that the element is attached to the DOM when the animation is run - if (isRoot) { - hasParent = true; - } - - //once a flag is found that is strictly false then everything before - //it will be discarded and all child animations will be restricted - if (allowChildAnimations !== false) { - var animateChildrenFlag = parentElement.data(NG_ANIMATE_CHILDREN); - if (angular.isDefined(animateChildrenFlag)) { - allowChildAnimations = animateChildrenFlag; - } - } - - parentRunningAnimation = parentRunningAnimation || - state.running || - (state.last && !state.last.isClassBased); - } - while (parentElement = parentElement.parent()); - - return !hasParent || (!allowChildAnimations && parentRunningAnimation); - } - }]); - - $animateProvider.register('', ['$window', '$sniffer', '$timeout', '$$animateReflow', - function($window, $sniffer, $timeout, $$animateReflow) { - // Detect proper transitionend/animationend event names. - var CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT; - - // If unprefixed events are not supported but webkit-prefixed are, use the latter. - // Otherwise, just use W3C names, browsers not supporting them at all will just ignore them. - // Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend` - // but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`. - // Register both events in case `window.onanimationend` is not supported because of that, - // do the same for `transitionend` as Safari is likely to exhibit similar behavior. - // Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit - // therefore there is no reason to test anymore for other vendor prefixes: http://caniuse.com/#search=transition - if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) { - CSS_PREFIX = '-webkit-'; - TRANSITION_PROP = 'WebkitTransition'; - TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend'; - } else { - TRANSITION_PROP = 'transition'; - TRANSITIONEND_EVENT = 'transitionend'; - } - - if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) { - CSS_PREFIX = '-webkit-'; - ANIMATION_PROP = 'WebkitAnimation'; - ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend'; - } else { - ANIMATION_PROP = 'animation'; - ANIMATIONEND_EVENT = 'animationend'; - } - - var DURATION_KEY = 'Duration'; - var PROPERTY_KEY = 'Property'; - var DELAY_KEY = 'Delay'; - var ANIMATION_ITERATION_COUNT_KEY = 'IterationCount'; - var ANIMATION_PLAYSTATE_KEY = 'PlayState'; - var NG_ANIMATE_PARENT_KEY = '$$ngAnimateKey'; - var NG_ANIMATE_CSS_DATA_KEY = '$$ngAnimateCSS3Data'; - var ELAPSED_TIME_MAX_DECIMAL_PLACES = 3; - var CLOSING_TIME_BUFFER = 1.5; - var ONE_SECOND = 1000; - - var lookupCache = {}; - var parentCounter = 0; - var animationReflowQueue = []; - var cancelAnimationReflow; - function clearCacheAfterReflow() { - if (!cancelAnimationReflow) { - cancelAnimationReflow = $$animateReflow(function() { - animationReflowQueue = []; - cancelAnimationReflow = null; - lookupCache = {}; - }); - } - } - - function afterReflow(element, callback) { - if (cancelAnimationReflow) { - cancelAnimationReflow(); - } - animationReflowQueue.push(callback); - cancelAnimationReflow = $$animateReflow(function() { - forEach(animationReflowQueue, function(fn) { - fn(); - }); - - animationReflowQueue = []; - cancelAnimationReflow = null; - lookupCache = {}; - }); - } - - var closingTimer = null; - var closingTimestamp = 0; - var animationElementQueue = []; - function animationCloseHandler(element, totalTime) { - var node = extractElementNode(element); - element = angular.element(node); - - //this item will be garbage collected by the closing - //animation timeout - animationElementQueue.push(element); - - //but it may not need to cancel out the existing timeout - //if the timestamp is less than the previous one - var futureTimestamp = Date.now() + totalTime; - if (futureTimestamp <= closingTimestamp) { - return; - } - - $timeout.cancel(closingTimer); - - closingTimestamp = futureTimestamp; - closingTimer = $timeout(function() { - closeAllAnimations(animationElementQueue); - animationElementQueue = []; - }, totalTime, false); - } - - function closeAllAnimations(elements) { - forEach(elements, function(element) { - var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); - if (elementData) { - forEach(elementData.closeAnimationFns, function(fn) { - fn(); - }); - } - }); - } - - function getElementAnimationDetails(element, cacheKey) { - var data = cacheKey ? lookupCache[cacheKey] : null; - if (!data) { - var transitionDuration = 0; - var transitionDelay = 0; - var animationDuration = 0; - var animationDelay = 0; - - //we want all the styles defined before and after - forEach(element, function(element) { - if (element.nodeType == ELEMENT_NODE) { - var elementStyles = $window.getComputedStyle(element) || {}; - - var transitionDurationStyle = elementStyles[TRANSITION_PROP + DURATION_KEY]; - transitionDuration = Math.max(parseMaxTime(transitionDurationStyle), transitionDuration); - - var transitionDelayStyle = elementStyles[TRANSITION_PROP + DELAY_KEY]; - transitionDelay = Math.max(parseMaxTime(transitionDelayStyle), transitionDelay); - - var animationDelayStyle = elementStyles[ANIMATION_PROP + DELAY_KEY]; - animationDelay = Math.max(parseMaxTime(elementStyles[ANIMATION_PROP + DELAY_KEY]), animationDelay); - - var aDuration = parseMaxTime(elementStyles[ANIMATION_PROP + DURATION_KEY]); - - if (aDuration > 0) { - aDuration *= parseInt(elementStyles[ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY], 10) || 1; - } - animationDuration = Math.max(aDuration, animationDuration); - } - }); - data = { - total: 0, - transitionDelay: transitionDelay, - transitionDuration: transitionDuration, - animationDelay: animationDelay, - animationDuration: animationDuration - }; - if (cacheKey) { - lookupCache[cacheKey] = data; - } - } - return data; - } - - function parseMaxTime(str) { - var maxValue = 0; - var values = isString(str) ? - str.split(/\s*,\s*/) : - []; - forEach(values, function(value) { - maxValue = Math.max(parseFloat(value) || 0, maxValue); - }); - return maxValue; - } - - function getCacheKey(element) { - var parentElement = element.parent(); - var parentID = parentElement.data(NG_ANIMATE_PARENT_KEY); - if (!parentID) { - parentElement.data(NG_ANIMATE_PARENT_KEY, ++parentCounter); - parentID = parentCounter; - } - return parentID + '-' + extractElementNode(element).getAttribute('class'); - } - - function animateSetup(animationEvent, element, className, styles) { - var structural = ['ng-enter','ng-leave','ng-move'].indexOf(className) >= 0; - - var cacheKey = getCacheKey(element); - var eventCacheKey = cacheKey + ' ' + className; - var itemIndex = lookupCache[eventCacheKey] ? ++lookupCache[eventCacheKey].total : 0; - - var stagger = {}; - if (itemIndex > 0) { - var staggerClassName = className + '-stagger'; - var staggerCacheKey = cacheKey + ' ' + staggerClassName; - var applyClasses = !lookupCache[staggerCacheKey]; - - applyClasses && $$jqLite.addClass(element, staggerClassName); - - stagger = getElementAnimationDetails(element, staggerCacheKey); - - applyClasses && $$jqLite.removeClass(element, staggerClassName); - } - - $$jqLite.addClass(element, className); - - var formerData = element.data(NG_ANIMATE_CSS_DATA_KEY) || {}; - var timings = getElementAnimationDetails(element, eventCacheKey); - var transitionDuration = timings.transitionDuration; - var animationDuration = timings.animationDuration; - - if (structural && transitionDuration === 0 && animationDuration === 0) { - $$jqLite.removeClass(element, className); - return false; - } - - var blockTransition = styles || (structural && transitionDuration > 0); - var blockAnimation = animationDuration > 0 && - stagger.animationDelay > 0 && - stagger.animationDuration === 0; - - var closeAnimationFns = formerData.closeAnimationFns || []; - element.data(NG_ANIMATE_CSS_DATA_KEY, { - stagger: stagger, - cacheKey: eventCacheKey, - running: formerData.running || 0, - itemIndex: itemIndex, - blockTransition: blockTransition, - closeAnimationFns: closeAnimationFns - }); - - var node = extractElementNode(element); - - if (blockTransition) { - blockTransitions(node, true); - if (styles) { - element.css(styles); - } - } - - if (blockAnimation) { - blockAnimations(node, true); - } - - return true; - } - - function animateRun(animationEvent, element, className, activeAnimationComplete, styles) { - var node = extractElementNode(element); - var elementData = element.data(NG_ANIMATE_CSS_DATA_KEY); - if (node.getAttribute('class').indexOf(className) == -1 || !elementData) { - activeAnimationComplete(); - return; - } - - var activeClassName = ''; - var pendingClassName = ''; - forEach(className.split(' '), function(klass, i) { - var prefix = (i > 0 ? ' ' : '') + klass; - activeClassName += prefix + '-active'; - pendingClassName += prefix + '-pending'; - }); - - var style = ''; - var appliedStyles = []; - var itemIndex = elementData.itemIndex; - var stagger = elementData.stagger; - var staggerTime = 0; - if (itemIndex > 0) { - var transitionStaggerDelay = 0; - if (stagger.transitionDelay > 0 && stagger.transitionDuration === 0) { - transitionStaggerDelay = stagger.transitionDelay * itemIndex; - } - - var animationStaggerDelay = 0; - if (stagger.animationDelay > 0 && stagger.animationDuration === 0) { - animationStaggerDelay = stagger.animationDelay * itemIndex; - appliedStyles.push(CSS_PREFIX + 'animation-play-state'); - } - - staggerTime = Math.round(Math.max(transitionStaggerDelay, animationStaggerDelay) * 100) / 100; - } - - if (!staggerTime) { - $$jqLite.addClass(element, activeClassName); - if (elementData.blockTransition) { - blockTransitions(node, false); - } - } - - var eventCacheKey = elementData.cacheKey + ' ' + activeClassName; - var timings = getElementAnimationDetails(element, eventCacheKey); - var maxDuration = Math.max(timings.transitionDuration, timings.animationDuration); - if (maxDuration === 0) { - $$jqLite.removeClass(element, activeClassName); - animateClose(element, className); - activeAnimationComplete(); - return; - } - - if (!staggerTime && styles && Object.keys(styles).length > 0) { - if (!timings.transitionDuration) { - element.css('transition', timings.animationDuration + 's linear all'); - appliedStyles.push('transition'); - } - element.css(styles); - } - - var maxDelay = Math.max(timings.transitionDelay, timings.animationDelay); - var maxDelayTime = maxDelay * ONE_SECOND; - - if (appliedStyles.length > 0) { - //the element being animated may sometimes contain comment nodes in - //the jqLite object, so we're safe to use a single variable to house - //the styles since there is always only one element being animated - var oldStyle = node.getAttribute('style') || ''; - if (oldStyle.charAt(oldStyle.length - 1) !== ';') { - oldStyle += ';'; - } - node.setAttribute('style', oldStyle + ' ' + style); - } - - var startTime = Date.now(); - var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT; - var animationTime = (maxDelay + maxDuration) * CLOSING_TIME_BUFFER; - var totalTime = (staggerTime + animationTime) * ONE_SECOND; - - var staggerTimeout; - if (staggerTime > 0) { - $$jqLite.addClass(element, pendingClassName); - staggerTimeout = $timeout(function() { - staggerTimeout = null; - - if (timings.transitionDuration > 0) { - blockTransitions(node, false); - } - if (timings.animationDuration > 0) { - blockAnimations(node, false); - } - - $$jqLite.addClass(element, activeClassName); - $$jqLite.removeClass(element, pendingClassName); - - if (styles) { - if (timings.transitionDuration === 0) { - element.css('transition', timings.animationDuration + 's linear all'); - } - element.css(styles); - appliedStyles.push('transition'); - } - }, staggerTime * ONE_SECOND, false); - } - - element.on(css3AnimationEvents, onAnimationProgress); - elementData.closeAnimationFns.push(function() { - onEnd(); - activeAnimationComplete(); - }); - - elementData.running++; - animationCloseHandler(element, totalTime); - return onEnd; - - // This will automatically be called by $animate so - // there is no need to attach this internally to the - // timeout done method. - function onEnd() { - element.off(css3AnimationEvents, onAnimationProgress); - $$jqLite.removeClass(element, activeClassName); - $$jqLite.removeClass(element, pendingClassName); - if (staggerTimeout) { - $timeout.cancel(staggerTimeout); - } - animateClose(element, className); - var node = extractElementNode(element); - for (var i in appliedStyles) { - node.style.removeProperty(appliedStyles[i]); - } - } - - function onAnimationProgress(event) { - event.stopPropagation(); - var ev = event.originalEvent || event; - var timeStamp = ev.$manualTimeStamp || ev.timeStamp || Date.now(); - - /* Firefox (or possibly just Gecko) likes to not round values up - * when a ms measurement is used for the animation */ - var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)); - - /* $manualTimeStamp is a mocked timeStamp value which is set - * within browserTrigger(). This is only here so that tests can - * mock animations properly. Real events fallback to event.timeStamp, - * or, if they don't, then a timeStamp is automatically created for them. - * We're checking to see if the timeStamp surpasses the expected delay, - * but we're using elapsedTime instead of the timeStamp on the 2nd - * pre-condition since animations sometimes close off early */ - if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) { - activeAnimationComplete(); - } - } - } - - function blockTransitions(node, bool) { - node.style[TRANSITION_PROP + PROPERTY_KEY] = bool ? 'none' : ''; - } - - function blockAnimations(node, bool) { - node.style[ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY] = bool ? 'paused' : ''; - } - - function animateBefore(animationEvent, element, className, styles) { - if (animateSetup(animationEvent, element, className, styles)) { - return function(cancelled) { - cancelled && animateClose(element, className); - }; - } - } - - function animateAfter(animationEvent, element, className, afterAnimationComplete, styles) { - if (element.data(NG_ANIMATE_CSS_DATA_KEY)) { - return animateRun(animationEvent, element, className, afterAnimationComplete, styles); - } else { - animateClose(element, className); - afterAnimationComplete(); - } - } - - function animate(animationEvent, element, className, animationComplete, options) { - //If the animateSetup function doesn't bother returning a - //cancellation function then it means that there is no animation - //to perform at all - var preReflowCancellation = animateBefore(animationEvent, element, className, options.from); - if (!preReflowCancellation) { - clearCacheAfterReflow(); - animationComplete(); - return; - } - - //There are two cancellation functions: one is before the first - //reflow animation and the second is during the active state - //animation. The first function will take care of removing the - //data from the element which will not make the 2nd animation - //happen in the first place - var cancel = preReflowCancellation; - afterReflow(element, function() { - //once the reflow is complete then we point cancel to - //the new cancellation function which will remove all of the - //animation properties from the active animation - cancel = animateAfter(animationEvent, element, className, animationComplete, options.to); - }); - - return function(cancelled) { - (cancel || noop)(cancelled); - }; - } - - function animateClose(element, className) { - $$jqLite.removeClass(element, className); - var data = element.data(NG_ANIMATE_CSS_DATA_KEY); - if (data) { - if (data.running) { - data.running--; - } - if (!data.running || data.running === 0) { - element.removeData(NG_ANIMATE_CSS_DATA_KEY); - } - } - } - - return { - animate: function(element, className, from, to, animationCompleted, options) { - options = options || {}; - options.from = from; - options.to = to; - return animate('animate', element, className, animationCompleted, options); - }, - - enter: function(element, animationCompleted, options) { - options = options || {}; - return animate('enter', element, 'ng-enter', animationCompleted, options); - }, - - leave: function(element, animationCompleted, options) { - options = options || {}; - return animate('leave', element, 'ng-leave', animationCompleted, options); - }, - - move: function(element, animationCompleted, options) { - options = options || {}; - return animate('move', element, 'ng-move', animationCompleted, options); - }, - - beforeSetClass: function(element, add, remove, animationCompleted, options) { - options = options || {}; - var className = suffixClasses(remove, '-remove') + ' ' + - suffixClasses(add, '-add'); - var cancellationMethod = animateBefore('setClass', element, className, options.from); - if (cancellationMethod) { - afterReflow(element, animationCompleted); - return cancellationMethod; - } - clearCacheAfterReflow(); - animationCompleted(); - }, - - beforeAddClass: function(element, className, animationCompleted, options) { - options = options || {}; - var cancellationMethod = animateBefore('addClass', element, suffixClasses(className, '-add'), options.from); - if (cancellationMethod) { - afterReflow(element, animationCompleted); - return cancellationMethod; - } - clearCacheAfterReflow(); - animationCompleted(); - }, - - beforeRemoveClass: function(element, className, animationCompleted, options) { - options = options || {}; - var cancellationMethod = animateBefore('removeClass', element, suffixClasses(className, '-remove'), options.from); - if (cancellationMethod) { - afterReflow(element, animationCompleted); - return cancellationMethod; - } - clearCacheAfterReflow(); - animationCompleted(); - }, - - setClass: function(element, add, remove, animationCompleted, options) { - options = options || {}; - remove = suffixClasses(remove, '-remove'); - add = suffixClasses(add, '-add'); - var className = remove + ' ' + add; - return animateAfter('setClass', element, className, animationCompleted, options.to); - }, - - addClass: function(element, className, animationCompleted, options) { - options = options || {}; - return animateAfter('addClass', element, suffixClasses(className, '-add'), animationCompleted, options.to); - }, - - removeClass: function(element, className, animationCompleted, options) { - options = options || {}; - return animateAfter('removeClass', element, suffixClasses(className, '-remove'), animationCompleted, options.to); - } - }; - - function suffixClasses(classes, suffix) { - var className = ''; - classes = isArray(classes) ? classes : classes.split(/\s+/); - forEach(classes, function(klass, i) { - if (klass && klass.length > 0) { - className += (i > 0 ? ' ' : '') + klass + suffix; - } - }); - return className; - } - }]); - }]); + .provider('$$animateJs', $$AnimateJsProvider) + .provider('$$animateJsDriver', $$AnimateJsDriverProvider); })(window, window.angular); diff --git a/UI/WebServerResources/js/vendor/angular-animate.min.js b/UI/WebServerResources/js/vendor/angular-animate.min.js index a9c6f841b..77179f126 100644 --- a/UI/WebServerResources/js/vendor/angular-animate.min.js +++ b/UI/WebServerResources/js/vendor/angular-animate.min.js @@ -1,33 +1,54 @@ /* - AngularJS v1.3.18 - (c) 2010-2014 Google, Inc. http://angularjs.org + AngularJS v1.4.4 + (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(N,f,W){'use strict';f.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(X,r,g){g=g.ngAnimateChildren;f.isString(g)&&0===g.length?r.data("$$ngAnimateChildren",!0):X.$watch(g,function(f){r.data("$$ngAnimateChildren",!!f)})}}).factory("$$animateReflow",["$$rAF","$document",function(f,r){var g=r[0].body;return function(r){return f(function(){r(g.offsetWidth)})}}]).config(["$provide","$animateProvider",function(X,r){function g(f){for(var n=0;n=B&&b>=y&&c()}var m=g(e);a=e.data("$$ngAnimateCSS3Data");if(-1!=m.getAttribute("class").indexOf(b)&& -a){var l="",t="";n(b.split(" "),function(a,b){var e=(0=a&&(a=e,e=0,b=b.concat(k),k=[]);k.push(v.fn);l(v.children,function(a){e++;c.push(a)});a--}k.length&&(b=b.concat(k));return b}(c)}var B=[],N=R(a);return function(z,u,t,s){function G(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];l(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function I(a){var b= +[],c={};l(a,function(a,f){var h=D(a.element),d=0<=["enter","move"].indexOf(a.event),h=a.structural?G(h):[];if(h.length){var e=d?"to":"from";l(h,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][e]={animationID:f,element:J(a)}})}else b.push(a)});var f={},d={};l(c,function(c,e){var k=c.from,y=c.to;if(k&&y){var g=a[k.animationID],v=a[y.animationID],q=k.animationID.toString();if(!d[q]){var x=d[q]={beforeStart:function(){g.beforeStart();v.beforeStart()},close:function(){g.close();v.close()}, +classes:n(g.classes,v.classes),from:g,to:v,anchors:[]};x.classes.length?b.push(x):(b.push(g),b.push(v))}d[q].anchors.push({out:k.element,"in":y.element})}else k=k?k.animationID:y.animationID,y=k.toString(),f[y]||(f[y]=!0,b.push(a[k]))});return b}function n(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],f=0;f=O&&b>=L&&(ra=!0,k())}if(!B)if(h.parentNode){var n,x=[],g=function(a){if(ra)u&&a&&(u=!1,k());else if(u=!a,C.animationDuration)if(a=ja(h,u),u)r.push(a);else{var b=r,c=b.indexOf(a);0<=a&&b.splice(c,1)}},q=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.layout', [ ]) + + // Attribute directives with optional value(s) + + .directive('layout' , attribute_withValue('layout' , true) ) + .directive('layoutSm' , attribute_withValue('layout-sm' , true) ) + .directive('layoutGtSm' , attribute_withValue('layout-gt-sm', true) ) + .directive('layoutMd' , attribute_withValue('layout-md' , true) ) + .directive('layoutGtMd' , attribute_withValue('layout-gt-md', true) ) + .directive('layoutLg' , attribute_withValue('layout-lg' , true) ) + .directive('layoutGtLg' , attribute_withValue('layout-gt-lg', true) ) + + .directive('flex' , attribute_withValue('flex' , true) ) + .directive('flexSm' , attribute_withValue('flex-sm' , true) ) + .directive('flexGtSm' , attribute_withValue('flex-gt-sm' , true) ) + .directive('flexMd' , attribute_withValue('flex-md' , true) ) + .directive('flexGtMd' , attribute_withValue('flex-gt-md' , true) ) + .directive('flexLg' , attribute_withValue('flex-lg' , true) ) + .directive('flexGtLg' , attribute_withValue('flex-gt-lg' , true) ) + + // Attribute directives with optional value(s) but directiveName is NOT added as a class + + .directive('layoutAlign' , attribute_withValue('layout-align') ) + .directive('layoutAlignSm' , attribute_withValue('layout-align-sm') ) + .directive('layoutAlignGtSm' , attribute_withValue('layout-align-gt-sm') ) + .directive('layoutAlignMd' , attribute_withValue('layout-align-md') ) + .directive('layoutAlignGtMd' , attribute_withValue('layout-align-gt-md') ) + .directive('layoutAlignLg' , attribute_withValue('layout-align-lg') ) + .directive('layoutAlignGtLg' , attribute_withValue('layout-align-gt-lg') ) + + .directive('flexOrder' , attribute_withValue('flex-order') ) + .directive('flexOrderSm' , attribute_withValue('flex-order-sm') ) + .directive('flexOrderGtSm' , attribute_withValue('flex-order-gt-sm') ) + .directive('flexOrderMd' , attribute_withValue('flex-order-md') ) + .directive('flexOrderGtMd' , attribute_withValue('flex-order-gt-md') ) + .directive('flexOrderLg' , attribute_withValue('flex-order-lg') ) + .directive('flexOrderGtLg' , attribute_withValue('flex-order-gt-lg') ) + + .directive('offset' , attribute_withValue('offset') ) + .directive('offsetSm' , attribute_withValue('offset-sm') ) + .directive('offsetGtSm' , attribute_withValue('offset-gt-sm') ) + .directive('offsetMd' , attribute_withValue('offset-md') ) + .directive('offsetGtMd' , attribute_withValue('offset-gt-md') ) + .directive('offsetLg' , attribute_withValue('offset-lg') ) + .directive('offsetGtLg' , attribute_withValue('offset-gt-lg') ) + + // Attribute directives with no value(s ) + + .directive('layoutMargin' , attribute_noValue('layout-margin') ) + .directive('layoutPadding' , attribute_noValue('layout-padding') ) + .directive('layoutWrap' , attribute_noValue('layout-wrap') ) + .directive('layoutFill' , attribute_noValue('layout-fill') ) + + .directive('hide' , attribute_noValue('hide') ) + .directive('hideSm' , attribute_noValue('hide-sm') ) + .directive('hideGtSm' , attribute_noValue('hide-gt-sm') ) + .directive('hideMd' , attribute_noValue('hide-md') ) + .directive('hideGtMd' , attribute_noValue('hide-gt-md') ) + .directive('hideLg' , attribute_noValue('hide-lg') ) + .directive('hideGtLg' , attribute_noValue('hide-gt-lg') ) + .directive('show' , attribute_noValue('show') ) + .directive('showSm' , attribute_noValue('show-sm') ) + .directive('showGtSm' , attribute_noValue('show-gt-sm') ) + .directive('showMd' , attribute_noValue('show-md') ) + .directive('showGtMd' , attribute_noValue('show-gt-md') ) + .directive('showLg' , attribute_noValue('show-lg') ) + .directive('showGtLg' , attribute_noValue('show-gt-lg') ); + + /** + * Creates a registration function with for ngMaterial Layout attribute directive + * + * Note: This provides easy translation to switch ngMaterial + * attribute selectors to CLASS selectors and directives. + * + * !! This is important for IE Browser performance + * + * @param classname String attribute name; eg `layout-gt-md` with value ="row" + * @param addDirectiveAsClass Boolean + */ + function attribute_withValue(className, addDirectiveAsClass) { + return [function() { + return { + 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, "-")); + + try { + element.removeAttr(className); + } catch(e) { } + } + } + + /** + * Creates a registration function with for ngMaterial Layout attribute directive + * + * Simple transpose of attribute usage to class usage + */ + function attribute_noValue(className) { + return [function() { + return { + 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); + try { + element.removeAttr(className); + } catch(e) { } + } + } + +})(); + })(); (function(){ "use strict"; @@ -4842,7 +5043,8 @@ if (angular.version.minor >= 4) { */ angular.module('material.components.autocomplete', [ 'material.core', - 'material.components.icon' + 'material.components.icon', + 'material.components.virtualRepeat' ]); })(); @@ -5296,7 +5498,7 @@ function MdButtonDirective($mdButtonInkRipple, $mdTheming, $mdAria, $timeout) { }, 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'); }); } @@ -5679,12 +5881,19 @@ function iosScrollFix(node) { */ var TBODY_HEIGHT = 265; + /** + * Height of a calendar month with a single row. This is needed to calculate the offset for + * rendering an extra month in virtual-repeat that only contains one row. + */ + var TBODY_SINGLE_ROW_HEIGHT = 45; + function calendarDirective() { return { template: '' + '
' + - '' + + '' + '' + '' + '' + '', - scope: {}, + scope: { + minDate: '=mdMinDate', + maxDate: '=mdMaxDate', + }, require: ['ngModel', 'mdCalendar'], controller: CalendarCtrl, controllerAs: 'ctrl', @@ -5732,6 +5944,15 @@ function iosScrollFix(node) { */ this.items = {length: 2000}; + if (this.maxDate && this.minDate) { + // Limit the number of months if min and max dates are set. + var numMonths = $$mdDateUtil.getMonthDistance(this.minDate, this.maxDate) + 1; + numMonths = Math.max(numMonths, 1); + // Add an additional month as the final dummy month for rendering purposes. + numMonths += 1; + this.items.length = numMonths; + } + /** @final {!angular.$animate} */ this.$animate = $animate; @@ -5768,9 +5989,19 @@ function iosScrollFix(node) { /** @final {Date} */ this.today = this.dateUtil.createDateAtMidnight(); - // Set the first renderable date once for all calendar instances. - firstRenderableDate = - firstRenderableDate || this.dateUtil.incrementMonths(this.today, -this.items.length / 2); + /** @type {Date} */ + this.firstRenderableDate = this.dateUtil.incrementMonths(this.today, -this.items.length / 2); + + if (this.minDate && this.minDate > this.firstRenderableDate) { + this.firstRenderableDate = this.minDate; + } else if (this.maxDate) { + // Calculate the difference between the start date and max date. + // Subtract 1 because it's an inclusive difference and 1 for the final dummy month. + // + var monthDifference = this.items.length - 2; + this.firstRenderableDate = this.dateUtil.incrementMonths(this.maxDate, -(this.items.length - 2)); + } + /** @final {number} Unique ID for this calendar instance. */ this.id = nextUniqueId++; @@ -5925,6 +6156,7 @@ function iosScrollFix(node) { // Selection isn't occuring, so the key event is either navigation or nothing. var date = self.getFocusDateFromKeyEvent(event); if (date) { + date = self.boundDateByMinAndMax(date); event.preventDefault(); event.stopPropagation(); @@ -5970,7 +6202,8 @@ function iosScrollFix(node) { * @returns {number} */ CalendarCtrl.prototype.getSelectedMonthIndex = function() { - return this.dateUtil.getMonthDistance(firstRenderableDate, this.selectedDate || this.today); + return this.dateUtil.getMonthDistance(this.firstRenderableDate, + this.selectedDate || this.today); }; /** @@ -5982,7 +6215,7 @@ function iosScrollFix(node) { return; } - var monthDistance = this.dateUtil.getMonthDistance(firstRenderableDate, date); + var monthDistance = this.dateUtil.getMonthDistance(this.firstRenderableDate, date); this.calendarScroller.scrollTop = monthDistance * TBODY_HEIGHT; }; @@ -6018,6 +6251,23 @@ function iosScrollFix(node) { } }; + /** + * If a date exceeds minDate or maxDate, returns date matching minDate or maxDate, respectively. + * Otherwise, returns the date. + * @param {Date} date + * @return {Date} + */ + CalendarCtrl.prototype.boundDateByMinAndMax = function(date) { + var boundDate = date; + if (this.minDate && date < this.minDate) { + boundDate = new Date(this.minDate.getTime()); + } + if (this.maxDate && date > this.maxDate) { + boundDate = new Date(this.maxDate.getTime()); + } + return boundDate; + }; + /*** Updating the displayed / selected date ***/ /** @@ -6208,8 +6458,7 @@ function iosScrollFix(node) { /** Generate and append the content for this month to the directive element. */ CalendarMonthCtrl.prototype.generateContent = function() { var calendarCtrl = this.calendarCtrl; - var offset = (-calendarCtrl.items.length / 2) + this.offset; - var date = this.dateUtil.incrementMonths(calendarCtrl.today, offset); + var date = this.dateUtil.incrementMonths(calendarCtrl.firstRenderableDate, this.offset); this.$element.empty(); this.$element.append(this.buildCalendarForMonth(date)); @@ -6238,16 +6487,9 @@ function iosScrollFix(node) { cell.setAttribute('role', 'gridcell'); if (opt_date) { - // Add a indicator for select, hover, and focus states. - var selectionIndicator = document.createElement('span'); - cell.appendChild(selectionIndicator); - selectionIndicator.classList.add('md-calendar-date-selection-indicator'); - selectionIndicator.textContent = this.dateLocale.dates[opt_date.getDate()]; - cell.setAttribute('tabindex', '-1'); cell.setAttribute('aria-label', this.dateLocale.longDateFormatter(opt_date)); cell.id = calendarCtrl.getDateId(opt_date); - cell.addEventListener('click', calendarCtrl.cellClickHandler); // Use `data-timestamp` attribute because IE10 does not support the `dataset` property. cell.setAttribute('data-timestamp', opt_date.getTime()); @@ -6264,8 +6506,24 @@ function iosScrollFix(node) { cell.setAttribute('aria-selected', 'true'); } - if (calendarCtrl.focusDate && this.dateUtil.isSameDay(opt_date, calendarCtrl.focusDate)) { - this.focusAfterAppend = cell; + var cellText = this.dateLocale.dates[opt_date.getDate()]; + + if (this.dateUtil.isDateWithinRange(opt_date, + this.calendarCtrl.minDate, this.calendarCtrl.maxDate)) { + // Add a indicator for select, hover, and focus states. + var selectionIndicator = document.createElement('span'); + cell.appendChild(selectionIndicator); + selectionIndicator.classList.add('md-calendar-date-selection-indicator'); + selectionIndicator.textContent = cellText; + + cell.addEventListener('click', calendarCtrl.cellClickHandler); + + if (calendarCtrl.focusDate && this.dateUtil.isSameDay(opt_date, calendarCtrl.focusDate)) { + this.focusAfterAppend = cell; + } + } else { + cell.classList.add('md-calendar-date-disabled'); + cell.textContent = cellText; } } @@ -6308,26 +6566,38 @@ function iosScrollFix(node) { var row = this.buildDateRow(rowNumber); monthBody.appendChild(row); + // If this is the final month in the list of items, only the first week should render, + // so we should return immediately after the first row is complete and has been + // attached to the body. + var isFinalMonth = this.offset === this.calendarCtrl.items.length - 1; + // Add a label for the month. If the month starts on a Sun/Mon/Tues, the month label // goes on a row above the first of the month. Otherwise, the month label takes up the first // two cells of the first row. var blankCellOffset = 0; var monthLabelCell = document.createElement('td'); monthLabelCell.classList.add('md-calendar-month-label'); + // If the entire month is after the max date, render the label as a disabled state. + if (this.calendarCtrl.maxDate && firstDayOfMonth > this.calendarCtrl.maxDate) { + monthLabelCell.classList.add('md-calendar-month-label-disabled'); + } + monthLabelCell.textContent = this.dateLocale.monthHeaderFormatter(date); if (firstDayOfTheWeek <= 2) { monthLabelCell.setAttribute('colspan', '7'); var monthLabelRow = this.buildDateRow(); monthLabelRow.appendChild(monthLabelCell); monthBody.insertBefore(monthLabelRow, row); + + if (isFinalMonth) { + return monthBody; + } } else { blankCellOffset = 2; monthLabelCell.setAttribute('colspan', '2'); row.appendChild(monthLabelCell); } - monthLabelCell.textContent = this.dateLocale.monthHeaderFormatter(date); - // Add a blank cell for each day of the week that occurs before the first of the month. // For example, if the first day of the month is a Tuesday, add blank cells for Sun and Mon. // The blankCellOffset is needed in cases where the first N cells are used by the month label. @@ -6342,6 +6612,10 @@ function iosScrollFix(node) { for (var d = 1; d <= numberOfDaysInMonth; d++) { // If we've reached the end of the week, start a new row. if (dayOfWeek === 7) { + // We've finished the first row, so we're done if this is the final month. + if (isFinalMonth) { + return monthBody; + } dayOfWeek = 0; rowNumber++; row = this.buildDateRow(rowNumber); @@ -6658,6 +6932,8 @@ 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 {boolean=} disabled Whether the datepicker is disabled. * * @description @@ -6701,11 +6977,15 @@ function iosScrollFix(node) { '' + '
' + '' + + 'md-min-date="ctrl.minDate" md-max-date="ctrl.maxDate"' + + 'ng-model="ctrl.date" ng-if="ctrl.isCalendarOpen">' + + '' + '
' + '', require: ['ngModel', 'mdDatepicker'], scope: { + minDate: '=mdMinDate', + maxDate: '=mdMaxDate', placeholder: '@mdPlaceholder' }, controller: DatePickerCtrl, @@ -6763,6 +7043,9 @@ function iosScrollFix(node) { /** @type {HTMLInputElement} */ this.inputElement = $element[0].querySelector('input'); + /** @final {!angular.JQLite} */ + this.ngInputElement = angular.element(this.inputElement); + /** @type {HTMLElement} */ this.inputContainer = $element[0].querySelector('.md-datepicker-input-container'); @@ -6864,10 +7147,9 @@ function iosScrollFix(node) { self.inputContainer.classList.remove(INVALID_CLASS); }); - var ngElement = angular.element(self.inputElement); - ngElement.on('input', angular.bind(self, self.resizeInputElement)); + self.ngInputElement.on('input', angular.bind(self, self.resizeInputElement)); // TODO(chenmike): Add ability for users to specify this interval. - ngElement.on('input', self.$mdUtil.debounce(self.handleInputEvent, + self.ngInputElement.on('input', self.$mdUtil.debounce(self.handleInputEvent, DEFAULT_DEBOUNCE_INTERVAL, self)); }; @@ -6878,7 +7160,7 @@ function iosScrollFix(node) { var keyCodes = this.$mdConstant.KEY_CODE; // Add event listener through angular so that we can triggerHandler in unit tests. - angular.element(self.inputElement).on('keydown', function(event) { + self.ngInputElement.on('keydown', function(event) { if (event.altKey && event.keyCode == keyCodes.DOWN_ARROW) { self.openCalendarPane(event); $scope.$digest(); @@ -6935,8 +7217,11 @@ function iosScrollFix(node) { DatePickerCtrl.prototype.handleInputEvent = function() { var inputString = this.inputElement.value; var parsedDate = this.dateLocale.parseDate(inputString); + this.dateUtil.setDateTimeToMidnight(parsedDate); - if (this.dateUtil.isValidDate(parsedDate) && this.dateLocale.isDateComplete(inputString)) { + if (this.dateUtil.isValidDate(parsedDate) && + this.dateLocale.isDateComplete(inputString) && + this.dateUtil.isDateWithinRange(parsedDate, this.minDate, this.maxDate)) { this.ngModelCtrl.$setViewValue(parsedDate); this.date = parsedDate; this.inputContainer.classList.remove(INVALID_CLASS); @@ -7088,7 +7373,9 @@ function iosScrollFix(node) { isSameDay: isSameDay, getMonthDistance: getMonthDistance, isValidDate: isValidDate, - createDateAtMidnight: createDateAtMidnight + setDateTimeToMidnight: setDateTimeToMidnight, + createDateAtMidnight: createDateAtMidnight, + isDateWithinRange: isDateWithinRange }; /** @@ -7254,6 +7541,14 @@ function iosScrollFix(node) { return date != null && date.getTime && !isNaN(date.getTime()); } + /** + * Sets a date's time to midnight. + * @param {Date} date + */ + function setDateTimeToMidnight(date) { + date.setHours(0, 0, 0, 0); + } + /** * Creates a date with the time set to midnight. * Drop-in replacement for two forms of the Date constructor: @@ -7269,9 +7564,21 @@ function iosScrollFix(node) { } else { date = new Date(opt_value); } - date.setHours(0, 0, 0, 0); + setDateTimeToMidnight(date); return date; } + + /** + * Checks if a date is within a min and max range. + * If minDate or maxDate are not dates, they are ignored. + * @param {Date} date + * @param {Date} minDate + * @param {Date} maxDate + */ + function isDateWithinRange(date, minDate, maxDate) { + return (!angular.isDate(minDate) || minDate <= date) && + (!angular.isDate(maxDate) || maxDate >= date); + } }); })(); @@ -9754,810 +10061,7 @@ function GridTileCaptionDirective() { */ angular.module('material.components.icon', [ 'material.core' - ]) - .directive('mdIcon', mdIconDirective); - -/** - * @ngdoc directive - * @name mdIcon - * @module material.components.icon - * - * @restrict E - * - * @description - * The `md-icon` directive makes it easier to use vector-based icons in your app (as opposed to - * raster-based icons types like PNG). The directive supports both icon fonts and SVG icons. - * - * Icons should be consider view-only elements that should not be used directly as buttons; instead nest a `` - * inside a `md-button` to add hover and click features. - * - * ### Icon fonts - * Icon fonts are a technique in which you use a font where the glyphs in the font are - * your icons instead of text. Benefits include a straightforward way to bundle everything into a - * single HTTP request, simple scaling, easy color changing, and more. - * - * `md-icon` let's you consume an icon font by letting you reference specific icons in that font - * by name rather than character code. - * - * ### SVG - * For SVGs, the problem with using `` or a CSS `background-image` is that you can't take - * advantage of some SVG features, such as styling specific parts of the icon with CSS or SVG - * animation. - * - * `md-icon` makes it easier to use SVG icons by *inlining* the SVG into an `` element in the - * document. The most straightforward way of referencing an SVG icon is via URL, just like a - * traditional ``. `$mdIconProvider`, as a convenience, let's you _name_ an icon so you can - * reference it by name instead of URL throughout your templates. - * - * Additionally, you may not want to make separate HTTP requests for every icon, so you can bundle - * your SVG icons together and pre-load them with $mdIconProvider as an icon set. An icon set can - * also be given a name, which acts as a namespace for individual icons, so you can reference them - * like `"social:cake"`. - * - * When using SVGs, both external SVGs (via URLs) or sets of SVGs [from icon sets] can be - * easily loaded and used.When use font-icons, developers must following three (3) simple steps: - * - *
    - *
  1. Load the font library. e.g.
    - * <link href="https://fonts.googleapis.com/icon?family=Material+Icons" - * rel="stylesheet"> - *
  2. - *
  3. Use either (a) font-icon class names or (b) font ligatures to render the font glyph by using its textual name
  4. - *
  5. Use <md-icon md-font-icon="classname" /> or
    - * use <md-icon md-font-set="font library classname or alias"> textual_name </md-icon> or
    - * use <md-icon md-font-set="font library classname or alias"> numerical_character_reference </md-icon> - *
  6. - *
- * - * Full details for these steps can be found: - * - *
    - *
  • http://google.github.io/material-design-icons/
  • - *
  • http://google.github.io/material-design-icons/#icon-font-for-the-web
  • - *
- * - * The Material Design icon style .material-icons and the icon font references are published in - * Material Design Icons: - * - *
    - *
  • http://www.google.com/design/icons/
  • - *
  • https://www.google.com/design/icons/#ic_accessibility
  • - *
- * - *

Material Design Icons

- * Using the Material Design Icon-Selector, developers can easily and quickly search for a Material Design font-icon and - * determine its textual name and character reference code. Click on any icon to see the slide-up information - * panel with details regarding a SVG download or information on the font-icon usage. - * - * - * - * - * - * - * Click on the image above to link to the - * Material Design Icon-Selector. - * - * - * @param {string} md-font-icon String name of CSS icon associated with the font-face will be used - * to render the icon. Requires the fonts and the named CSS styles to be preloaded. - * @param {string} md-font-set CSS style name associated with the font library; which will be assigned as - * the class for the font-icon ligature. This value may also be an alias that is used to lookup the classname; - * internally use `$mdIconProvider.fontSet()` to determine the style name. - * @param {string} md-svg-src String URL (or expression) used to load, cache, and display an - * external SVG. - * @param {string} md-svg-icon md-svg-icon String name used for lookup of the icon from the internal cache; - * interpolated strings or expressions may also be used. Specific set names can be used with - * the syntax `:`.

- * To use icon sets, developers are required to pre-register the sets using the `$mdIconProvider` service. - * @param {string=} aria-label 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 aria-label on the icon - * 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. * - * @usage - * When using SVGs: - * - * - * - * - * - * - * - * - * - * - * - * Use the $mdIconProvider to configure your application with - * svg iconsets. - * - * - * angular.module('appSvgIconSets', ['ngMaterial']) - * .controller('DemoCtrl', function($scope) {}) - * .config(function($mdIconProvider) { - * $mdIconProvider - * .iconSet('social', 'img/icons/sets/social-icons.svg', 24) - * .defaultIconSet('img/icons/sets/core-icons.svg', 24); - * }); - * - * - * - * When using Font Icons with classnames: - * - * - * - * - * - * - * - * When using Material Font Icons with ligatures: - * - * - * - * face - * face - * #xE87C; - * - * face - * - * - * When using other Font-Icon libraries: - * - * - * // Specify a font-icon style alias - * angular.config(function($mdIconProvider) { - * $mdIconProvider.fontSet('fa', 'fontawesome'); - * }); - * - * - * - * email - * - * - */ -function mdIconDirective($mdIcon, $mdTheming, $mdAria ) { - - return { - scope: { - fontSet : '@mdFontSet', - fontIcon: '@mdFontIcon', - svgIcon : '@mdSvgIcon', - svgSrc : '@mdSvgSrc' - }, - restrict: 'E', - link : postLink - }; - - - /** - * Directive postLink - * Supports embedded SVGs, font-icons, & external SVGs - */ - function postLink(scope, element, attr) { - $mdTheming(element); - - prepareForFontIcon(); - - // If using a font-icon, then the textual name of the icon itself - // provides the aria-label. - - var label = attr.alt || scope.fontIcon || scope.svgIcon || element.text(); - var attrName = attr.$normalize(attr.$attr.mdSvgIcon || attr.$attr.mdSvgSrc || ''); - - if ( !attr['aria-label'] ) { - - if (label != '' && !parentsHaveText() ) { - - $mdAria.expect(element, 'aria-label', label); - $mdAria.expect(element, 'role', 'img'); - - } else if ( !element.text() ) { - // If not a font-icon with ligature, then - // hide from the accessibility layer. - - $mdAria.expect(element, 'aria-hidden', 'true'); - } - } - - if (attrName) { - // Use either pre-configured SVG or URL source, respectively. - attr.$observe(attrName, function(attrVal) { - - element.empty(); - if (attrVal) { - $mdIcon(attrVal).then(function(svg) { - element.append(svg); - }); - } - - }); - } - - function parentsHaveText() { - var parent = element.parent(); - if (parent.attr('aria-label') || parent.text()) { - return true; - } - else if(parent.parent().attr('aria-label') || parent.parent().text()) { - return true; - } - return false; - } - - 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; - } - } - } -} -mdIconDirective.$inject = ["$mdIcon", "$mdTheming", "$mdAria"]; - -})(); -(function(){ -"use strict"; - - angular - .module('material.components.icon' ) - .provider('$mdIcon', MdIconProvider); - - /** - * @ngdoc service - * @name $mdIconProvider - * @module material.components.icon - * - * @description - * `$mdIconProvider` is used only to register icon IDs with URLs. These configuration features allow - * 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 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, - * the `$mdIcon` service searches its registry for the associated source URL; - * that URL is used to on-demand load and parse the SVG dynamically. - * - * @usage - * - * app.config(function($mdIconProvider) { - * - * // Configure URLs for icons specified by [set:]id. - * - * $mdIconProvider - * .defaultFontSet( 'fontawesome' ) - * .defaultIconSet('my/app/icons.svg') // Register a default set of SVG icons - * .iconSet('social', 'my/app/social.svg') // Register a named icon set of SVGs - * .icon('android', 'my/app/android.svg') // Register a specific icon (by name) - * .icon('work:chair', 'my/app/chair.svg'); // Register icon in a specific set - * }); - * - * - * SVG icons and icon sets can be easily pre-loaded and cached using either (a) a build process or (b) a runtime - * **startup** process (shown below): - * - * - * app.config(function($mdIconProvider) { - * - * // Register a default set of SVG icon definitions - * $mdIconProvider.defaultIconSet('my/app/icons.svg') - * - * }) - * .run(function($http, $templateCache){ - * - * // Pre-fetch icons sources by URL and cache in the $templateCache... - * // subsequent $http calls will look there first. - * - * var urls = [ 'imy/app/icons.svg', 'img/icons/android.svg']; - * - * angular.forEach(urls, function(url) { - * $http.get(url, {cache: $templateCache}); - * }); - * - * }); - * - * - * - * NOTE: the loaded SVG data is subsequently cached internally for future requests. - * - */ - - /** - * @ngdoc method - * @name $mdIconProvider#icon - * - * @description - * Register a source URL for a specific icon name; the name may include optional 'icon set' name prefix. - * These icons will later be retrieved from the cache using `$mdIcon( )` - * - * @param {string} id Icon name/id used to register the icon - * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the - * data or as part of the lookup in `$templateCache` if pre-loading was configured. - * @param {number=} viewBoxSize Sets the width and height the icon's viewBox. - * It is ignored for icons with an existing viewBox. Default size is 24. - * - * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API - * - * @usage - * - * app.config(function($mdIconProvider) { - * - * // Configure URLs for icons specified by [set:]id. - * - * $mdIconProvider - * .icon('android', 'my/app/android.svg') // Register a specific icon (by name) - * .icon('work:chair', 'my/app/chair.svg'); // Register icon in a specific set - * }); - * - * - */ - /** - * @ngdoc method - * @name $mdIconProvider#iconSet - * - * @description - * Register a source URL for a 'named' set of icons; group of SVG definitions where each definition - * has an icon id. Individual icons can be subsequently retrieved from this cached set using - * `$mdIcon(:)` - * - * @param {string} id Icon name/id used to register the iconset - * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the - * data or as part of the lookup in `$templateCache` if pre-loading was configured. - * @param {number=} viewBoxSize Sets the width and height of the viewBox of all icons in the set. - * It is ignored for icons with an existing viewBox. All icons in the icon set should be the same size. - * Default value is 24. - * - * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API - * - * - * @usage - * - * app.config(function($mdIconProvider) { - * - * // Configure URLs for icons specified by [set:]id. - * - * $mdIconProvider - * .iconSet('social', 'my/app/social.svg') // Register a named icon set - * }); - * - * - */ - /** - * @ngdoc method - * @name $mdIconProvider#defaultIconSet - * - * @description - * Register a source URL for the default 'named' set of icons. Unless explicitly registered, - * subsequent lookups of icons will failover to search this 'default' icon set. - * Icon can be retrieved from this cached, default set using `$mdIcon()` - * - * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the - * data or as part of the lookup in `$templateCache` if pre-loading was configured. - * @param {number=} viewBoxSize Sets the width and height of the viewBox of all icons in the set. - * It is ignored for icons with an existing viewBox. All icons in the icon set should be the same size. - * Default value is 24. - * - * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API - * - * @usage - * - * app.config(function($mdIconProvider) { - * - * // Configure URLs for icons specified by [set:]id. - * - * $mdIconProvider - * .defaultIconSet( 'my/app/social.svg' ) // Register a default icon set - * }); - * - * - */ - /** - * @ngdoc method - * @name $mdIconProvider#defaultFontSet - * - * @description - * When using Font-Icons, Angular Material assumes the the Material Design icons will be used and automatically - * configures the default font-set == 'material-icons'. Note that the font-set references the font-icon library - * class style that should be applied to the ``. - * - * Configuring the default means that the attributes - * `md-font-set="material-icons"` or `class="material-icons"` do not need to be explicitly declared on the - * `` markup. For example: - * - * ` face ` - * will render as - * ` face `, and - * - * ` face ` - * will render as - * ` face ` - * - * @param {string} name of the font-library style that should be applied to the md-icon DOM element - * - * @usage - * - * app.config(function($mdIconProvider) { - * $mdIconProvider.defaultFontSet( 'fontawesome' ); - * }); - * - * - */ - - /** - * @ngdoc method - * @name $mdIconProvider#defaultViewBoxSize - * - * @description - * While `` markup can also be style with sizing CSS, this method configures - * the default width **and** height used for all icons; unless overridden by specific CSS. - * The default sizing is (24px, 24px). - * @param {number=} viewBoxSize Sets the width and height of the viewBox for an icon or an icon set. - * All icons in a set should be the same size. The default value is 24. - * - * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API - * - * @usage - * - * app.config(function($mdIconProvider) { - * - * // Configure URLs for icons specified by [set:]id. - * - * $mdIconProvider - * .defaultViewBoxSize(36) // Register a default icon size (width == height) - * }); - * - * - */ - - var config = { - defaultViewBoxSize: 24, - defaultFontSet: 'material-icons', - fontSets : [ ] - }; - - function MdIconProvider() { } - - MdIconProvider.prototype = { - icon : function (id, url, viewBoxSize) { - if ( id.indexOf(':') == -1 ) id = '$default:' + id; - - config[id] = new ConfigurationItem(url, viewBoxSize ); - return this; - }, - - iconSet : function (id, url, viewBoxSize) { - config[id] = new ConfigurationItem(url, viewBoxSize ); - return this; - }, - - defaultIconSet : function (url, viewBoxSize) { - var setName = '$default'; - - if ( !config[setName] ) { - config[setName] = new ConfigurationItem(url, viewBoxSize ); - } - - config[setName].viewBoxSize = viewBoxSize || config.defaultViewBoxSize; - - return this; - }, - - defaultViewBoxSize : function (viewBoxSize) { - config.defaultViewBoxSize = viewBoxSize; - return this; - }, - - /** - * Register an alias name associated with a font-icon library style ; - */ - fontSet : function fontSet(alias, className) { - config.fontSets.push({ - alias : alias, - fontSet : className || alias - }); - return this; - }, - - /** - * Specify a default style name associated with a font-icon library - * fallback to Material Icons. - * - */ - defaultFontSet : function defaultFontSet(className) { - config.defaultFontSet = !className ? '' : className; - return this; - }, - - defaultIconSize : function defaultIconSize(iconSize) { - config.defaultIconSize = iconSize; - return this; - }, - - preloadIcons: function ($templateCache) { - var iconProvider = this; - var svgRegistry = [ - { - id : 'md-tabs-arrow', - url: 'md-tabs-arrow.svg', - svg: '' - }, - { - id : 'md-close', - url: 'md-close.svg', - svg: '' - }, - { - id: 'md-cancel', - url: 'md-cancel.svg', - svg: '' - }, - { - id: 'md-menu', - url: 'md-menu.svg', - svg: '' - }, - { - id: 'md-toggle-arrow', - url: 'md-toggle-arrow-svg', - svg: '' - }, - { - id: 'md-calendar', - url: 'md-calendar.svg', - svg: '' - } - ]; - - svgRegistry.forEach(function(asset){ - iconProvider.icon(asset.id, asset.url); - $templateCache.put(asset.url, asset.svg); - }); - - }, - - $get : ['$http', '$q', '$log', '$templateCache', function($http, $q, $log, $templateCache) { - this.preloadIcons($templateCache); - return MdIconService(config, $http, $q, $log, $templateCache); - }] - }; - - /** - * Configuration item stored in the Icon registry; used for lookups - * to load if not already cached in the `loaded` cache - */ - function ConfigurationItem(url, viewBoxSize) { - this.url = url; - this.viewBoxSize = viewBoxSize || config.defaultViewBoxSize; - } - - /** - * @ngdoc service - * @name $mdIcon - * @module material.components.icon - * - * @description - * The `$mdIcon` service is a function used to lookup SVG icons. - * - * @param {string} id Query value for a unique Id or URL. If the argument is a URL, then the service will retrieve the icon element - * from its internal cache or load the icon and cache it first. If the value is not a URL-type string, then an ID lookup is - * performed. The Id may be a unique icon ID or may include an iconSet ID prefix. - * - * For the **id** query to work properly, this means that all id-to-URL mappings must have been previously configured - * using the `$mdIconProvider`. - * - * @returns {obj} Clone of the initial SVG DOM element; which was created from the SVG markup in the SVG data file. - * - * @usage - * - * function SomeDirective($mdIcon) { - * - * // See if the icon has already been loaded, if not - * // then lookup the icon from the registry cache, load and cache - * // it for future requests. - * // NOTE: ID queries require configuration with $mdIconProvider - * - * $mdIcon('android').then(function(iconEl) { element.append(iconEl); }); - * $mdIcon('work:chair').then(function(iconEl) { element.append(iconEl); }); - * - * // Load and cache the external SVG using a URL - * - * $mdIcon('img/icons/android.svg').then(function(iconEl) { - * element.append(iconEl); - * }); - * }; - * - * - * NOTE: The ` ` directive internally uses the `$mdIcon` service to query, loaded, and instantiate - * SVG DOM elements. - */ - function MdIconService(config, $http, $q, $log, $templateCache) { - var iconCache = {}; - var urlRegex = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i; - - Icon.prototype = { clone : cloneSVG, prepare: prepareAndStyle }; - getIcon.fontSet = findRegisteredFontSet; - - // Publish service... - return getIcon; - - /** - * Actual $mdIcon service is essentially a lookup function - */ - function getIcon(id) { - id = id || ''; - - // If already loaded and cached, use a clone of the cached icon. - // Otherwise either load by URL, or lookup in the registry and then load by URL, and cache. - - if ( iconCache[id] ) return $q.when( iconCache[id].clone() ); - if ( urlRegex.test(id) ) return loadByURL(id).then( cacheIcon(id) ); - if ( id.indexOf(':') == -1 ) id = '$default:' + id; - - var load = config[id] ? loadByID : loadFromIconSet; - return load(id) - .then( cacheIcon(id) ); - } - - /** - * Lookup registered fontSet style using its alias... - * If not found, - */ - function findRegisteredFontSet(alias) { - var useDefault = angular.isUndefined(alias) || !(alias && alias.length); - if ( useDefault ) return config.defaultFontSet; - - var result = alias; - angular.forEach(config.fontSets, function(it){ - if ( it.alias == alias ) result = it.fontSet || result; - }); - - return result; - } - - /** - * Prepare and cache the loaded icon for the specified `id` - */ - function cacheIcon( id ) { - - return function updateCache( icon ) { - iconCache[id] = isIcon(icon) ? icon : new Icon(icon, config[id]); - - return iconCache[id].clone(); - }; - } - - /** - * Lookup the configuration in the registry, if !registered throw an error - * otherwise load the icon [on-demand] using the registered URL. - * - */ - function loadByID(id) { - var iconConfig = config[id]; - return loadByURL(iconConfig.url).then(function(icon) { - return new Icon(icon, iconConfig); - }); - } - - /** - * Loads the file as XML and uses querySelector( ) to find - * the desired node... - */ - function loadFromIconSet(id) { - var setName = id.substring(0, id.lastIndexOf(':')) || '$default'; - var iconSetConfig = config[setName]; - - return !iconSetConfig ? announceIdNotFound(id) : loadByURL(iconSetConfig.url).then(extractFromSet); - - function extractFromSet(set) { - var iconName = id.slice(id.lastIndexOf(':') + 1); - var icon = set.querySelector('#' + iconName); - return !icon ? announceIdNotFound(id) : new Icon(icon, iconSetConfig); - } - - function announceIdNotFound(id) { - var msg = 'icon ' + id + ' not found'; - $log.warn(msg); - - return $q.reject(msg || id); - } - } - - /** - * Load the icon by URL (may use the $templateCache). - * Extract the data for later conversion to Icon - */ - function loadByURL(url) { - return $http - .get(url, { cache: $templateCache }) - .then(function(response) { - return angular.element('
').append(response.data).find('svg')[0]; - }).catch(announceNotFound); - } - - /** - * Catch HTTP or generic errors not related to incorrect icon IDs. - */ - function announceNotFound(err) { - var msg = angular.isString(err) ? err : (err.message || err.data || err.statusText); - $log.warn(msg); - - return $q.reject(msg); - } - - /** - * Check target signature to see if it is an Icon instance. - */ - function isIcon(target) { - return angular.isDefined(target.element) && angular.isDefined(target.config); - } - - /** - * Define the Icon class - */ - function Icon(el, config) { - if (el.tagName != 'svg') { - el = angular.element('').append(el)[0]; - } - - // Inject the namespace if not available... - if ( !el.getAttribute('xmlns') ) { - el.setAttribute('xmlns', "http://www.w3.org/2000/svg"); - } - - this.element = el; - this.config = config; - this.prepare(); - } - - /** - * Prepare the DOM element that will be cached in the - * loaded iconCache store. - */ - function prepareAndStyle() { - var viewBoxSize = this.config ? this.config.viewBoxSize : config.defaultViewBoxSize; - angular.forEach({ - 'fit' : '', - 'height': '100%', - 'width' : '100%', - 'preserveAspectRatio': 'xMidYMid meet', - 'viewBox' : this.element.getAttribute('viewBox') || ('0 0 ' + viewBoxSize + ' ' + viewBoxSize) - }, function(val, attr) { - this.element.setAttribute(attr, val); - }, this); - - angular.forEach({ - 'pointer-events' : 'none', - 'display' : 'block' - }, function(val, style) { - this.element.style[style] = val; - }, this); - } - - /** - * Clone the Icon DOM element. - */ - function cloneSVG(){ - return this.element.cloneNode(true); - } - - } + ]); })(); (function(){ @@ -11259,735 +10763,21 @@ MdListController.$inject = ["$scope", "$element", "$mdListInkRipple"]; angular.module('material.components.menu', [ 'material.core', 'material.components.backdrop' -]) -.directive('mdMenu', MenuDirective) -.controller('mdMenuCtrl', MenuController); - -/** - * @ngdoc directive - * @name mdMenu - * @module material.components.menu - * @restrict E - * @description - * - * Menus are elements that open when clicked. They are useful for displaying - * additional options within the context of an action. - * - * Every `md-menu` must specify exactly two child elements. The first element is what is - * left in the DOM and is used to open the menu. This element is called the trigger element. - * The trigger element's scope has access to `$mdOpenMenu($event)` - * which it may call to open the menu. By passing $event as argument, the - * corresponding event is stopped from propagating up the DOM-tree. - * - * The second element is the `md-menu-content` element which represents the - * contents of the menu when it is open. Typically this will contain `md-menu-item`s, - * but you can do custom content as well. - * - * - * - * - * - * - * - * - * Do Something - * - * - * - - * ## Sizing Menus - * - * The width of the menu when it is open may be specified by specifying a `width` - * attribute on the `md-menu-content` element. - * See the [Material Design Spec](http://www.google.com/design/spec/components/menus.html#menus-specs) - * for more information. - * - * - * ## Aligning Menus - * - * When a menu opens, it is important that the content aligns with the trigger element. - * Failure to align menus can result in jarring experiences for users as content - * suddenly shifts. To help with this, `md-menu` provides serveral APIs to help - * with alignment. - * - * ### Target Mode - * - * By default, `md-menu` will attempt to align the `md-menu-content` by aligning - * designated child elements in both the trigger and the menu content. - * - * To specify the alignment element in the `trigger` you can use the `md-menu-origin` - * attribute on a child element. If no `md-menu-origin` is specified, the `md-menu` - * will be used as the origin element. - * - * Similarly, the `md-menu-content` may specify a `md-menu-align-target` for a - * `md-menu-item` to specify the node that it should try and align with. - * - * In this example code, we specify an icon to be our origin element, and an - * icon in our menu content to be our alignment target. This ensures that both - * icons are aligned when the menu opens. - * - * - * - * - * - * - * - * - * - * - * Do Something - * - * - * - * - * - * - * Sometimes we want to specify alignment on the right side of an element, for example - * if we have a menu on the right side a toolbar, we want to right align our menu content. - * - * We can specify the origin by using the `md-position-mode` attribute on both - * the `x` and `y` axis. Right now only the `x-axis` has more than one option. - * You may specify the default mode of `target target` or - * `target-right target` to specify a right-oriented alignment target. See the - * position section of the demos for more examples. - * - * ### Menu Offsets - * - * It is sometimes unavoidable to need to have a deeper level of control for - * the positioning of a menu to ensure perfect alignment. `md-menu` provides - * the `md-offset` attribute to allow pixel level specificty of adjusting the - * exact positioning. - * - * This offset is provided in the format of `x y` or `n` where `n` will be used - * in both the `x` and `y` axis. - * - * For example, to move a menu by `2px` from the top, we can use: - * - * - * - * - * - * - * @usage - * - * - * - * - * - * - * Do Something - * - * - * - * - * @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 - `x`, `y`. Default value is `0`,`0`. - * - */ - -function MenuDirective() { - var INVALID_PREFIX = 'Invalid HTML for md-menu: '; - return { - restrict: 'E', - require: 'mdMenu', - controller: 'mdMenuCtrl', // empty function to be built by link - scope: true, - compile: compile - }; - - function compile(templateElement) { - templateElement.addClass('md-menu'); - var triggerElement = templateElement.children()[0]; - if (!triggerElement.hasAttribute('ng-click')) { - triggerElement = triggerElement.querySelector('[ng-click],[ng-mouseenter]'); - } - if (templateElement.children().length != 2) { - throw Error(INVALID_PREFIX + 'Expected two children elements.'); - } - - // Default element for ARIA attributes has the ngClick or ngMouseenter expression - triggerElement && triggerElement.setAttribute('aria-haspopup', 'true'); - return link; - } - - function link(scope, element, attrs, mdMenuCtrl) { - // Move everything into a md-menu-container and pass it to the controller - var menuContainer = angular.element( - '
' - ); - var menuContents = element.children()[1]; - menuContainer.append(menuContents); - mdMenuCtrl.init(menuContainer); - - scope.$on('$destroy', function() { - menuContainer.remove(); - mdMenuCtrl.close(); - }); - - } -} - -function MenuController($mdMenu, $attrs, $element, $scope) { - var menuContainer; - var ctrl = this; - var triggerElement; - - this.init = angular.bind(this, init); - this.open = angular.bind(this, openMenu); - this.close = angular.bind(this, closeMenu); - - this.positionMode = angular.bind(this, positionMode); - this.offsets = angular.bind(this, offsets); - - // Expose a open function to the child scope for html to use - $scope.$mdOpenMenu = this.open; - - /** - * Called by our linking fn to provide access to the menu-content - * element removed during link - */ - function init(setMenuContainer) { - menuContainer = setMenuContainer; - // Default element for ARIA attributes has the ngClick or ngMouseenter expression - triggerElement = $element[0].querySelector('[ng-click],[ng-mouseenter]'); - } - - /** - * Uses the $mdMenu interim element service to open the menu contents - */ - function openMenu(ev) { - ev && ev.stopPropagation(); - - triggerElement = triggerElement || (ev ? ev.target : $element[0]); - triggerElement.setAttribute('aria-expanded', 'true'); - - ctrl.isOpen = true; - $mdMenu.show({ - scope: $scope, - mdMenuCtrl: ctrl, - element: menuContainer, - target: triggerElement - }); - } - - /** - * Use the $mdMenu interim element service to close the menu contents - */ - function closeMenu(skipFocus) { - if ( !ctrl.isOpen ) return; - - ctrl.isOpen = false; - triggerElement && triggerElement.setAttribute('aria-expanded', 'false'); - $mdMenu.hide(); - - if (!skipFocus) { - $element.children()[0].focus(); - } - } - - /** - * Build a nice object out of our string attribute which specifies the - * target mode for left and top positioning - */ - function positionMode() { - var attachment = ($attrs.mdPositionMode || 'target').split(' '); - - // If attachment is a single item, duplicate it for our second value. - // ie. 'target' -> 'target target' - if (attachment.length == 1) { - attachment.push(attachment[0]); - } - - return { - left: attachment[0], - top: attachment[1] - }; - } - - /** - * Build a nice object out of our string attribute which specifies - * the offset of top and left in pixels. - */ - function offsets() { - var offsets = ($attrs.mdOffset || '0 0').split(' ').map(parseFloat); - if (offsets.length == 2) { - return { - left: offsets[0], - top: offsets[1] - }; - } else if (offsets.length == 1) { - return { - top: offsets[0], - left: offsets[0] - }; - } else { - throw Error('Invalid offsets specified. Please follow format or '); - } - } -} -MenuController.$inject = ["$mdMenu", "$attrs", "$element", "$scope"]; +]); })(); (function(){ "use strict"; -angular.module('material.components.menu') - .provider('$mdMenu', MenuProvider); - -/* - * Interim element provider for the menu. - * Handles behavior for a menu while it is open, including: - * - handling animating the menu opening/closing - * - handling key/mouse events on the menu element - * - handling enabling/disabling scroll while the menu is open - * - handling redrawing during resizes and orientation changes - * +/** + * @ngdoc module + * @name material.components.menu-bar */ -function MenuProvider($$interimElementProvider) { - var MENU_EDGE_MARGIN = 8; - - menuDefaultOptions.$inject = ["$mdUtil", "$mdTheming", "$mdConstant", "$document", "$window", "$q", "$$rAF", "$animateCss", "$animate"]; - return $$interimElementProvider('$mdMenu') - .setDefaults({ - methods: ['target'], - options: menuDefaultOptions - }); - - /* @ngInject */ - function menuDefaultOptions($mdUtil, $mdTheming, $mdConstant, $document, $window, $q, $$rAF, $animateCss, $animate) { - var animator = $mdUtil.dom.animator; - - return { - parent: 'body', - onShow: onShow, - onRemove: onRemove, - hasBackdrop: true, - disableParentScroll: true, - skipCompile: true, - preserveScope: true, - themable: true - }; - - /** - * Show modal backdrop element... - * @returns {function(): void} A function that removes this backdrop - */ - function showBackdrop(scope, element, options) { - - // If we are not within a dialog... - if (options.disableParentScroll && !$mdUtil.getClosest(options.target, 'MD-DIALOG')) { - // !! DO this before creating the backdrop; since disableScrollAround() - // configures the scroll offset; which is used by mdBackDrop postLink() - options.restoreScroll = $mdUtil.disableScrollAround(options.element, options.parent); - } else { - options.disableParentScroll = false; - } - - if (options.hasBackdrop) { - options.backdrop = $mdUtil.createBackdrop(scope, "md-menu-backdrop md-click-catcher"); - - $animate.enter(options.backdrop, options.parent); - } - - /** - * Hide and destroys the backdrop created by showBackdrop() - */ - return function hideBackdrop() { - if (options.backdrop) { - // Override duration to immediately remove invisible backdrop - $animate.leave(options.backdrop, {duration:0}); - } - if (options.disableParentScroll) { - options.restoreScroll(); - } - } - } - - /** - * Removing the menu element from the DOM and remove all associated evetn listeners - * and backdrop - */ - function onRemove(scope, element, opts) { - opts.cleanupInteraction(); - opts.cleanupResizing(); - opts.hideBackdrop(); - - return $animateCss(element, {addClass: 'md-leave'}) - .start() - .then(function() { - element.removeClass('md-active'); - - detachElement(element, opts); - opts.alreadyOpen = false; - }); - } - - /** - * Inserts and configures the staged Menu element into the DOM, positioning it, - * and wiring up various interaction events - */ - function onShow(scope, element, opts) { - sanitizeAndConfigure(opts); - - // Wire up theming on our menu element - $mdTheming.inherit(opts.menuContentEl, opts.target); - - // Register various listeners to move menu on resize/orientation change - opts.cleanupResizing = startRepositioningOnResize(); - opts.hideBackdrop = showBackdrop(scope, element, opts); - - // Return the promise for when our menu is done animating in - return showMenu() - .then(function(response) { - opts.alreadyOpen = true; - opts.cleanupInteraction = activateInteraction(); - return response; - }); - - /** - * Place the menu into the DOM and call positioning related functions - */ - function showMenu() { - opts.parent.append(element); - - return $q(function(resolve) { - var position = calculateMenuPosition(element, opts); - - element.removeClass('md-leave'); - - // Animate the menu scaling, and opacity [from its position origin (default == top-left)] - // to normal scale. - $animateCss(element, { - addClass: 'md-active', - from: animator.toCss(position), - to: animator.toCss({transform: 'scale(1.0,1.0)'}) - }) - .start() - .then(resolve); - - }); - } - - /** - * Check for valid opts and set some sane defaults - */ - function sanitizeAndConfigure() { - if (!opts.target) { - throw Error( - '$mdMenu.show() expected a target to animate from in options.target' - ); - } - angular.extend(opts, { - alreadyOpen: false, - isRemoved: false, - target: angular.element(opts.target), //make sure it's not a naked dom node - parent: angular.element(opts.parent), - menuContentEl: angular.element(element[0].querySelector('md-menu-content')) - }); - } - - /** - * Configure various resize listeners for screen changes - */ - function startRepositioningOnResize() { - - var repositionMenu = (function(target, options) { - return $$rAF.throttle(function() { - if (opts.isRemoved) return; - var position = calculateMenuPosition(target, options); - - target.css(animator.toCss(position)); - }); - })(element, opts); - - $window.addEventListener('resize', repositionMenu); - $window.addEventListener('orientationchange', repositionMenu); - - return function stopRepositioningOnResize() { - - // Disable resizing handlers - $window.removeEventListener('resize', repositionMenu); - $window.removeEventListener('orientationchange', repositionMenu); - - } - } - - /** - * Activate interaction on the menu. Wire up keyboard listerns for - * clicks, keypresses, backdrop closing, etc. - */ - function activateInteraction() { - element.addClass('md-clickable'); - - // close on backdrop click - if (opts.backdrop) opts.backdrop.on('click', onBackdropClick); - - // Wire up keyboard listeners. - // - Close on escape, - // - focus next item on down arrow, - // - focus prev item on up - opts.menuContentEl.on('keydown', onMenuKeyDown); - opts.menuContentEl[0].addEventListener('click', captureClickListener, true); - - // kick off initial focus in the menu on the first element - var focusTarget = opts.menuContentEl[0].querySelector('[md-menu-focus-target]') || - opts.menuContentEl[0].firstElementChild.firstElementChild; - focusTarget.focus(); - - return function cleanupInteraction() { - element.removeClass('md-clickable'); - if (opts.backdrop) opts.backdrop.off('click', onBackdropClick); - opts.menuContentEl.off('keydown', onMenuKeyDown); - opts.menuContentEl[0].removeEventListener('click', captureClickListener, true); - }; - - // ************************************ - // internal functions - // ************************************ - - function onMenuKeyDown(ev) { - scope.$apply(function() { - var keyCodes = $mdConstant.KEY_CODE; - switch (ev.keyCode) { - case keyCodes.ESCAPE: - opts.mdMenuCtrl.close(); - ev.stopPropagation(); - break; - case keyCodes.UP_ARROW: - focusMenuItem(ev, opts.menuContentEl, opts, -1); - ev.stopPropagation(); - break; - case keyCodes.DOWN_ARROW: - focusMenuItem(ev, opts.menuContentEl, opts, 1); - ev.stopPropagation(); - break; - } - }); - } - - function onBackdropClick(e) { - e.preventDefault(); - e.stopPropagation(); - scope.$apply(function() { - opts.mdMenuCtrl.close(true); - }); - } - - // Close menu on menu item click, if said menu-item is not disabled - function captureClickListener(e) { - var target = e.target; - // Traverse up the event until we get to the menuContentEl to see if - // there is an ng-click and that the ng-click is not disabled - do { - if (target == opts.menuContentEl[0]) return; - if (hasAnyAttribute(target, ['ng-click', 'ng-href', 'ui-sref'])) { - if (!target.hasAttribute('disabled')) { - close(); - } - break; - } - } while (target = target.parentNode) - - function close() { - scope.$apply(function() { - opts.mdMenuCtrl.close(); - }); - } - - function hasAnyAttribute(target, attrs) { - if (!target) return false; - for (var i = 0, attr; attr = attrs[i]; ++i) { - var altForms = [attr, 'data-' + attr, 'x-' + attr]; - for (var j = 0, rawAttr; rawAttr = altForms[j]; ++j) { - if (target.hasAttribute(rawAttr)) { - return true; - } - } - } - return false; - } - } - - } - } - - /** - * Takes a keypress event and focuses the next/previous menu - * item from the emitting element - * @param {event} e - The origin keypress event - * @param {angular.element} menuEl - The menu element - * @param {object} opts - The interim element options for the mdMenu - * @param {number} direction - The direction to move in (+1 = next, -1 = prev) - */ - function focusMenuItem(e, menuEl, opts, direction) { - var currentItem = $mdUtil.getClosest(e.target, 'MD-MENU-ITEM'); - - var items = $mdUtil.nodesToArray(menuEl[0].children); - var currentIndex = items.indexOf(currentItem); - - // Traverse through our elements in the specified direction (+/-1) and try to - // focus them until we find one that accepts focus - for (var i = currentIndex + direction; i >= 0 && i < items.length; i = i + direction) { - var focusTarget = items[i].firstElementChild || items[i]; - var didFocus = attemptFocus(focusTarget); - if (didFocus) { - break; - } - } - } - - /** - * Attempts to focus an element. Checks whether that element is the currently - * focused element after attempting. - * @param {HTMLElement} el - the element to attempt focus on - * @returns {bool} - whether the element was successfully focused - */ - function attemptFocus(el) { - if (el && el.getAttribute('tabindex') != -1) { - el.focus(); - return ($document[0].activeElement == el); - } - } - - /** - * Use browser to remove this element without triggering a $destory event - */ - function detachElement(element, opts) { - if (element[0].parentNode === opts.parent[0]) { - opts.parent[0].removeChild(element[0]); - } - } - - /** - * Computes menu position and sets the style on the menu container - * @param {HTMLElement} el - the menu container element - * @param {object} opts - the interim element options object - */ - function calculateMenuPosition(el, opts) { - - var containerNode = el[0], - openMenuNode = el[0].firstElementChild, - openMenuNodeRect = openMenuNode.getBoundingClientRect(), - boundryNode = opts.parent[0], - boundryNodeRect = boundryNode.getBoundingClientRect(); - - var originNode = opts.target[0].querySelector('[md-menu-origin]') || opts.target[0], - originNodeRect = originNode.getBoundingClientRect(); - - var bounds = { - left: boundryNodeRect.left + MENU_EDGE_MARGIN, - top: Math.max(boundryNodeRect.top, 0) + MENU_EDGE_MARGIN, - bottom: Math.max(boundryNodeRect.bottom, Math.max(boundryNodeRect.top, 0) + boundryNodeRect.height) - MENU_EDGE_MARGIN, - right: boundryNodeRect.right - MENU_EDGE_MARGIN - }; - - var alignTarget, alignTargetRect, existingOffsets; - 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.'); - } - - 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 = {}; - var transformOrigin = 'top '; - - switch (positionMode.top) { - case 'target': - position.top = existingOffsets.top + originNodeRect.top - alignTargetRect.top; - break; - // Future support for mdMenuBar - // case 'top': - // position.top = originNodeRect.top; - // break; - case 'bottom': - position.top = originNodeRect.top + originNodeRect.height; - break; - default: - throw new Error('Invalid target mode "' + positionMode.top + '" specified for md-menu on Y axis.'); - } - - switch (positionMode.left) { - case 'target': - position.left = existingOffsets.left + originNodeRect.left - alignTargetRect.left; - transformOrigin += 'left'; - break; - case 'target-right': - position.left = originNodeRect.right - openMenuNodeRect.width + (openMenuNodeRect.right - alignTargetRect.right); - transformOrigin += 'right'; - break; - // Future support for mdMenuBar - case 'left': - position.left = originNodeRect.left; - transformOrigin += 'left'; - break; - // case 'right': - // position.left = originNodeRect.right - containerNode.offsetWidth; - // transformOrigin += 'right'; - // break; - default: - throw new Error('Invalid target mode "' + positionMode.left + '" specified for md-menu on X axis.'); - } - - var offsets = opts.mdMenuCtrl.offsets(); - position.top += offsets.top; - position.left += offsets.left; - - clamp(position); - - var scaleX = Math.round(100 * Math.min(originNodeRect.width / containerNode.offsetWidth, 1.0)) / 100; - var scaleY = Math.round(100 * Math.min(originNodeRect.height / containerNode.offsetHeight, 1.0)) / 100; - - return { - top: Math.round(position.top), - left: Math.round(position.left), - - // Animate a scale out if we aren't just repositioning - transform: !opts.alreadyOpen ? $mdUtil.supplant('scale({0},{1})', [scaleX, scaleY]) : undefined, - - transformOrigin: transformOrigin - }; - - /** - * Clamps the repositioning of the menu within the confines of - * bounding element (often the screen/body) - */ - function clamp(pos) { - pos.top = Math.max(Math.min(pos.top, bounds.bottom - containerNode.offsetHeight), bounds.top); - pos.left = Math.max(Math.min(pos.left, bounds.right - containerNode.offsetWidth), bounds.left); - } - - /** - * Gets the first visible child in the openMenuNode - * Necessary incase menu nodes are being dynamically hidden - */ - function firstVisibleChild() { - for (var i = 0; i < openMenuNode.children.length; ++i) { - if ($window.getComputedStyle(openMenuNode.children[i]).display != 'none') { - return openMenuNode.children[i]; - } - } - } - } - } -} -MenuProvider.$inject = ["$$interimElementProvider"]; +angular.module('material.components.menuBar', [ + 'material.core', + 'material.components.menu' +]); })(); (function(){ @@ -14718,7 +13508,7 @@ angular.module('material.components.sticky', [ * If not provided, it will use the result of `element.clone()`. */ -function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) { +function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { var browserStickySupport = checkStickySupport(); @@ -14785,7 +13575,9 @@ function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) { }; self.items.push(item); - contentEl.parent().prepend(item.clone); + $mdUtil.nextTick(function() { + contentEl.prepend(item.clone); + }); debouncedRefreshElements(); @@ -14852,44 +13644,61 @@ function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) { function onScroll() { var scrollTop = contentEl.prop('scrollTop'); var isScrollingDown = scrollTop > (onScroll.prevScrollTop || 0); + + // Store the previous scroll so we know which direction we are scrolling onScroll.prevScrollTop = scrollTop; - // At the top? + // + // AT TOP (not scrolling) + // if (scrollTop === 0) { + // If we're at the top, just clear the current item and return setCurrentItem(null); + return; + } - // Going to next item? - } else if (isScrollingDown && self.next) { - if (self.next.top - scrollTop <= 0) { - // Sticky the next item if we've scrolled past its position. + // + // SCROLLING DOWN (going towards the next item) + // + if (isScrollingDown) { + + // If we've scrolled down past the next item's position, sticky it and return + if (self.next && self.next.top <= scrollTop) { setCurrentItem(self.next); - } else if (self.current) { - // Push the current item up when we're almost at the next item. - if (self.next.top - scrollTop <= self.next.height) { - translate(self.current, self.next.top - self.next.height - scrollTop); - } else { - translate(self.current, null); - } + return; } - - // Scrolling up with a current sticky item? - } else if (!isScrollingDown && self.current) { - if (scrollTop < self.current.top) { - // Sticky the previous item if we've scrolled up past - // the original position of the currently stickied item. + + // If the next item is close to the current one, push the current one up out of the way + if (self.current && self.next && self.next.top - scrollTop <= self.next.height) { + translate(self.current, scrollTop + (self.next.top - self.next.height - scrollTop)); + return; + } + } + + // + // SCROLLING UP (not at the top & not scrolling down; must be scrolling up) + // + if (!isScrollingDown) { + + // If we've scrolled up past the previous item's position, sticky it and return + if (self.current && self.prev && scrollTop < self.current.top) { setCurrentItem(self.prev); + return; } - // Scrolling up, and just bumping into the item above (just set to current)? - // If we have a next item bumping into the current item, translate - // the current item up from the top as it scrolls into view. - if (self.current && self.next) { - if (scrollTop >= self.next.top - self.current.height) { - translate(self.current, self.next.top - scrollTop - self.current.height); - } else { - translate(self.current, null); - } + + // If the next item is close to the current one, pull the current one down into view + if (self.next && scrollTop >= self.next.top - self.current.height) { + translate(self.current, scrollTop + (self.next.top - scrollTop - self.current.height)); + return; } } + + // + // Otherwise, just move the current item to the proper place (scrolling up or down) + // + if (self.current) { + translate(self.current, scrollTop); + } } function setCurrentItem(item) { @@ -14991,7 +13800,7 @@ function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) { } } -MdSticky.$inject = ["$document", "$mdConstant", "$compile", "$$rAF", "$mdUtil"]; +MdSticky.$inject = ["$document", "$mdConstant", "$$rAF", "$mdUtil"]; })(); (function(){ @@ -15045,11 +13854,11 @@ function MdSubheaderDirective($mdSticky, $compile, $mdTheming, $mdUtil) { replace: true, transclude: true, template: ( - '

' + + '
' + '
' + ' ' + '
' + - '

' + '
' ), link: function postLink(scope, element, attr, controllers, transclude) { $mdTheming(element); @@ -16179,6 +14988,9 @@ function VirtualRepeatContainerController($$rAF, $scope, $element, $attrs) { this.autoShrinkMin = parseInt(this.$attrs.mdAutoShrinkMin, 10) || 0; /** @type {?number} Original container size when shrank */ this.originalSize = null; + /** @type {number} Amount to offset the total scroll size by. */ + this.offsetSize = parseInt(this.$attrs.mdOffsetSize, 10) || 0; + this.scroller = $element[0].getElementsByClassName('md-virtual-repeat-scroller')[0]; this.sizer = this.scroller.getElementsByClassName('md-virtual-repeat-sizer')[0]; @@ -16312,9 +15124,10 @@ VirtualRepeatContainerController.prototype.autoShrink_ = function(size) { /** * Sets the scrollHeight or scrollWidth. Called by the repeater based on * its item count and item size. - * @param {number} size The new size. + * @param {number} itemsSize The total size of the items. */ -VirtualRepeatContainerController.prototype.setScrollSize = function(size) { +VirtualRepeatContainerController.prototype.setScrollSize = function(itemsSize) { + var size = itemsSize + this.offsetSize; if (this.scrollSize === size) return; this.sizeScroller_(size); @@ -16521,6 +15334,9 @@ VirtualRepeatController.prototype.readItemSize_ = function() { this.items = this.repeatListExpression(this.$scope); this.parentNode = this.$element[0].parentNode; var block = this.getBlock_(0); + if (!block.element[0].parentNode) { + this.parentNode.appendChild(block.element[0]); + } this.itemSize = block.element[0][ this.container.isHorizontal() ? 'offsetWidth' : 'offsetHeight'] || null; @@ -16560,7 +15376,7 @@ VirtualRepeatController.prototype.repeatListExpression_ = function(scope) { VirtualRepeatController.prototype.containerUpdated = function() { // If itemSize is unknown, attempt to measure it. if (!this.itemSize) { - this.unwatchItemSize_ = this.$scope.$watch( + this.unwatchItemSize_ = this.$scope.$watchCollection( this.repeatListExpression, angular.bind(this, function(items) { if (items && items.length) { @@ -16922,6 +15738,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, ctrl.getCurrentDisplayValue = getCurrentDisplayValue; ctrl.registerSelectedItemWatcher = registerSelectedItemWatcher; ctrl.unregisterSelectedItemWatcher = unregisterSelectedItemWatcher; + ctrl.notFoundVisible = notFoundVisible; return init(); @@ -16969,19 +15786,20 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, styles.bottom = 'auto'; styles.maxHeight = Math.min(MAX_HEIGHT, root.bottom - hrect.bottom - MENU_PADDING) + 'px'; } - elements.$.ul.css(styles); + + elements.$.scrollContainer.css(styles); $mdUtil.nextTick(correctHorizontalAlignment, false); /** * Makes sure that the menu doesn't go off of the screen on either side. */ function correctHorizontalAlignment () { - var dropdown = elements.ul.getBoundingClientRect(), + var dropdown = elements.scrollContainer.getBoundingClientRect(), styles = {}; if (dropdown.right > root.right - MENU_PADDING) { styles.left = (hrect.right - dropdown.width) + 'px'; } - elements.$.ul.css(styles); + elements.$.scrollContainer.css(styles); } } @@ -16990,10 +15808,10 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, */ function moveDropdown () { if (!elements.$.root.length) return; - $mdTheming(elements.$.ul); - elements.$.ul.detach(); - elements.$.root.append(elements.$.ul); - if ($animate.pin) $animate.pin(elements.$.ul, $rootElement); + $mdTheming(elements.$.scrollContainer); + elements.$.scrollContainer.detach(); + elements.$.root.append(elements.$.scrollContainer); + if ($animate.pin) $animate.pin(elements.$.scrollContainer, $rootElement); } /** @@ -17021,18 +15839,20 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, */ function cleanup () { angular.element($window).off('resize', positionDropdown); - elements.$.ul.remove(); + elements.$.scrollContainer.remove(); } /** * Gathers all of the elements needed for this controller */ function gatherElements () { - elements = { - main: $element[ 0 ], - ul: $element.find('ul')[ 0 ], - input: $element.find('input')[ 0 ], - wrap: $element.find('md-autocomplete-wrap')[ 0 ], + elements = { + main: $element[0], + scrollContainer: $element[0].getElementsByClassName('md-virtual-repeat-container')[0], + scroller: $element[0].getElementsByClassName('md-virtual-repeat-scroller')[0], + ul: $element.find('ul')[0], + input: $element.find('input')[0], + wrap: $element.find('md-autocomplete-wrap')[0], root: document.body }; elements.li = elements.ul.getElementsByTagName('li'); @@ -17442,18 +16262,27 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * Makes sure that the focused element is within view. */ function updateScroll () { - if (!elements.li[ ctrl.index ]) return; - var li = elements.li[ ctrl.index ], - top = li.offsetTop, - bot = top + li.offsetHeight, - hgt = elements.ul.clientHeight; - if (top < elements.ul.scrollTop) { - elements.ul.scrollTop = top; - } else if (bot > elements.ul.scrollTop + hgt) { - elements.ul.scrollTop = bot - hgt; + if (!elements.li[0]) return; + var height = elements.li[0].offsetHeight, + top = height * ctrl.index, + bot = top + height, + hgt = elements.scroller.clientHeight, + scrollTop = elements.scroller.scrollTop; + if (top < scrollTop) { + scrollTo(top); + } else if (bot > scrollTop + hgt) { + scrollTo(bot - hgt); } } + function scrollTo (offset) { + elements.$.scrollContainer.controller('mdVirtualRepeatContainer').scrollTo(offset); + } + + function notFoundVisible () { + return !ctrl.matches.length && !ctrl.loading && ctrl.scope.searchText; + } + /** * Starts the query to gather the results for the current searchText. Attempts to return cached * results first, then forwards the process to `fetchResults` if necessary. @@ -17649,21 +16478,26 @@ function MdAutocomplete () { \ - \ + \ +
    \ +
  • \ + ' + itemTemplate + '\ +
  • ' + noItemsTemplate + '\ +
\ + \ \ {{message}}

\ '; - function getItemTemplate () { - var templateTag = element.find('md-item-template').remove(), - html = templateTag.length ? templateTag.html() : element.html(); + function getItemTemplate() { + var templateTag = element.find('md-item-template').detach(), + html = templateTag.length ? templateTag.html() : element.html(); if (!templateTag.length) element.empty(); return html; } - function getNoItemsTemplate () { - var templateTag = element.find('md-not-found').remove(), - template = templateTag.length ? templateTag.html() : ''; + function getNoItemsTemplate() { + var templateTag = element.find('md-not-found').detach(), + template = templateTag.length ? templateTag.html() : ''; return template - ? '
  • ' + template + '
  • ' + ? '
  • ' + template + '
  • ' : ''; } @@ -17759,49 +16591,33 @@ angular .module('material.components.autocomplete') .controller('MdHighlightCtrl', MdHighlightCtrl); -function MdHighlightCtrl ($scope, $element, $interpolate) { - var ctrl = this; +function MdHighlightCtrl ($scope, $element, $attrs) { + this.init = init; - ctrl.term = null; - ctrl.template = null; - ctrl.watchers = []; - ctrl.init = init; + function init (termExpr, unsafeTextExpr) { + var text = null, + regex = null, + flags = $attrs.mdHighlightFlags || '', + watcher = $scope.$watch(function($scope) { + return { + term: termExpr($scope), + unsafeText: unsafeTextExpr($scope) + }; + }, function (state, prevState) { + if (text === null || state.unsafeText !== prevState.unsafeText) { + text = angular.element('
    ').text(state.unsafeText).html() + } + if (regex === null || state.term !== prevState.term) { + regex = getRegExp(state.term, flags); + } - function init (term, template) { - createWatchers(term, template); - $element.on('$destroy', cleanup); - } - - function createWatchers (term, template) { - ctrl.watchers.push($scope.$watch(term, function (term) { - ctrl.term = term; - updateHTML(term, ctrl.template); - })); - ctrl.watchers.push($scope.$watch(compileTemplate, function (template) { - ctrl.template = template; - updateHTML(ctrl.term, template); - })); - - function compileTemplate () { return $interpolate(template)($scope); } - } - - function cleanup () { - ctrl.watchers.forEach(function (watcher) { watcher(); }); - } - - function updateHTML () { - if (ctrl.term === null || ctrl.template === null) return; - var unsafeText = $interpolate(ctrl.template)($scope), - text = angular.element('
    ').text(unsafeText).html(), - flags = $element.attr('md-highlight-flags') || '', - regex = getRegExp(ctrl.term, flags), - html = text.replace(regex, '$&'); - $element.html(html); + $element.html(text.replace(regex, '$&')); + }, true); + $element.on('$destroy', function () { watcher(); }); } function sanitize (term) { - if (!term) return term; - return term.replace(/[\\\^\$\*\+\?\.\(\)\|\{}\[\]]/g, '\\$&'); + return term && term.replace(/[\\\^\$\*\+\?\.\(\)\|\{}\[\]]/g, '\\$&'); } function getRegExp (text, flags) { @@ -17812,7 +16628,7 @@ function MdHighlightCtrl ($scope, $element, $interpolate) { return new RegExp(sanitize(str), flags.replace(/[\$\^]/g, '')); } } -MdHighlightCtrl.$inject = ["$scope", "$element", "$interpolate"]; +MdHighlightCtrl.$inject = ["$scope", "$element", "$attrs"]; })(); (function(){ @@ -17851,47 +16667,21 @@ angular * */ -function MdHighlight () { +function MdHighlight ($interpolate, $parse) { return { - terminal: true, - scope: false, + terminal: true, controller: 'MdHighlightCtrl', - compile: function (element, attr) { - var template = element.html(); - return function (scope, element, attr, ctrl) { - ctrl.init(attr.mdHighlightText, template); + compile: function mdHighlightCompile(tElement, tAttr) { + var termExpr = $parse(tAttr.mdHighlightText); + var unsafeTextExpr = $interpolate(tElement.html()); + + return function mdHighlightLink(scope, element, attr, ctrl) { + ctrl.init(termExpr, unsafeTextExpr); }; } }; } - -})(); -(function(){ -"use strict"; - -angular - .module('material.components.autocomplete') - .directive('mdAutocompleteListItem', MdAutocompleteListItem); - -function MdAutocompleteListItem ($compile, $mdUtil) { - return { - terminal: true, - link: postLink, - scope: false - }; - function postLink (scope, element, attr) { - var ctrl = scope.$parent.$mdAutocompleteCtrl, - newScope = ctrl.parent.$new(false, ctrl.parent), - itemName = ctrl.scope.$eval(attr.mdAutocompleteListItem); - newScope[ itemName ] = scope.item; - $compile(element.contents())(newScope); - element.attr({ - role: 'option', - id: 'item_' + $mdUtil.nextUid() - }); - } -} -MdAutocompleteListItem.$inject = ["$compile", "$mdUtil"]; +MdHighlight.$inject = ["$interpolate", "$parse"]; })(); (function(){ @@ -17910,6 +16700,9 @@ function MdAutocompleteParentScope ($compile) { }; function postLink (scope, element, attr) { var ctrl = scope.$parent.$mdAutocompleteCtrl; + + // TODO: transclude self might make it possible to do this without + // re-compiling, which is slow. $compile(element.contents())(ctrl.parent); if (attr.hasOwnProperty('mdAutocompleteReplace')) { element.after(element.contents()); @@ -18830,57 +17623,60 @@ MdContactChipsCtrl.prototype.filterSelectedContacts = function(contact) { (function(){ "use strict"; - angular - .module('material.components.chips') - .directive('mdContactChips', MdContactChips); +angular + .module('material.components.chips') + .directive('mdContactChips', MdContactChips); - /** - * @ngdoc directive - * @name mdContactChips - * @module material.components.chips - * - * @description - * `` is an input component based on `md-chips` and makes use of an - * `md-autocomplete` element. The component allows the caller to supply a query expression - * which returns a list of possible contacts. The user can select one of these and add it to - * the list of chips. - * - * @param {string=|object=} ng-model A model to bind the list of items to - * @param {string=} placeholder Placeholder text that will be forwarded to the input. - * @param {string=} secondary-placeholder Placeholder text that will be forwarded to the input, - * displayed when there is at least on item in the list - * @param {expression} md-contacts An expression expected to return contacts matching the search - * test, `$query`. - * @param {string} md-contact-name The field name of the contact object representing the - * contact's name. - * @param {string} md-contact-email The field name of the contact object representing the - * contact's email address. - * @param {string} md-contact-image The field name of the contact object representing the - * contact's image. - * - * - * // The following attribute has been removed but may come back. - * @param {expression=} filter-selected Whether to filter selected contacts from the list of - * suggestions shown in the autocomplete. - * - * - * - * @usage - * - * - * - * - * - */ +/** + * @ngdoc directive + * @name mdContactChips + * @module material.components.chips + * + * @description + * `` is an input component based on `md-chips` and makes use of an + * `md-autocomplete` element. The component allows the caller to supply a query expression which + * returns a list of possible contacts. The user can select one of these and add it to the list of + * chips. + * + * You may also use the `md-highlight-text` directive along with it's parameters to control the + * appearance of the matched text inside of the contacts' autocomplete popup. + * + * @param {string=|object=} ng-model A model to bind the list of items to + * @param {string=} placeholder Placeholder text that will be forwarded to the input. + * @param {string=} secondary-placeholder Placeholder text that will be forwarded to the input, + * displayed when there is at least on item in the list + * @param {expression} md-contacts An expression expected to return contacts matching the search + * test, `$query`. + * @param {string} md-contact-name The field name of the contact object representing the + * contact's name. + * @param {string} md-contact-email The field name of the contact object representing the + * contact's email address. + * @param {string} md-contact-image The field name of the contact object representing the + * contact's image. + * + * + * // The following attribute has been removed but may come back. + * @param {expression=} filter-selected Whether to filter selected contacts from the list of + * suggestions shown in the autocomplete. + * + * + * + * @usage + * + * + * + * + * + */ - var MD_CONTACT_CHIPS_TEMPLATE = '\ +var MD_CONTACT_CHIPS_TEMPLATE = '\ \ - \ + \ {{item[$mdContactChipsCtrl.contactName]}}\ \ {{item[$mdContactChipsCtrl.contactEmail]}}\ @@ -18918,46 +17715,2328 @@ MdContactChipsCtrl.prototype.filterSelectedContacts = function(contact) { '; - /** - * MDContactChips Directive Definition - * - * @param $mdTheming - * @returns {*} - * @ngInject - */ - function MdContactChips ($mdTheming, $mdUtil) { - return { - template: function(element, attrs) { - return MD_CONTACT_CHIPS_TEMPLATE; - }, - restrict: 'E', - controller: 'MdContactChipsCtrl', - controllerAs: '$mdContactChipsCtrl', - bindToController: true, - compile: compile, - scope: { - contactQuery: '&mdContacts', - placeholder: '@', - secondaryPlaceholder: '@', - contactName: '@mdContactName', - contactImage: '@mdContactImage', - contactEmail: '@mdContactEmail', - contacts: '=ngModel', - requireMatch: '=?mdRequireMatch' - } +/** + * MDContactChips Directive Definition + * + * @param $mdTheming + * @returns {*} + * @ngInject + */ +function MdContactChips($mdTheming, $mdUtil) { + return { + template: function(element, attrs) { + return MD_CONTACT_CHIPS_TEMPLATE; + }, + restrict: 'E', + controller: 'MdContactChipsCtrl', + controllerAs: '$mdContactChipsCtrl', + bindToController: true, + compile: compile, + scope: { + contactQuery: '&mdContacts', + placeholder: '@', + secondaryPlaceholder: '@', + contactName: '@mdContactName', + contactImage: '@mdContactImage', + contactEmail: '@mdContactEmail', + contacts: '=ngModel', + requireMatch: '=?mdRequireMatch', + highlightFlags: '@?mdHighlightFlags' + } + }; + + function compile(element, attr) { + return function postLink(scope, element, attrs, controllers) { + + $mdUtil.initOptionalProperties(scope, attr); + $mdTheming(element); + + element.attr('tabindex', '-1'); }; + } +} +MdContactChips.$inject = ["$mdTheming", "$mdUtil"]; - function compile(element, attr) { - return function postLink(scope, element, attrs, controllers) { +})(); +(function(){ +"use strict"; - $mdUtil.initOptionalProperties(scope, attr); - $mdTheming(element); +angular + .module('material.components.icon') + .directive('mdIcon', ['$mdIcon', '$mdTheming', '$mdAria', mdIconDirective]); - element.attr('tabindex', '-1'); - }; +/** + * @ngdoc directive + * @name mdIcon + * @module material.components.icon + * + * @restrict E + * + * @description + * The `md-icon` directive makes it easier to use vector-based icons in your app (as opposed to + * raster-based icons types like PNG). The directive supports both icon fonts and SVG icons. + * + * Icons should be consider view-only elements that should not be used directly as buttons; instead nest a `` + * inside a `md-button` to add hover and click features. + * + * ### Icon fonts + * Icon fonts are a technique in which you use a font where the glyphs in the font are + * your icons instead of text. Benefits include a straightforward way to bundle everything into a + * single HTTP request, simple scaling, easy color changing, and more. + * + * `md-icon` let's you consume an icon font by letting you reference specific icons in that font + * by name rather than character code. + * + * ### SVG + * For SVGs, the problem with using `` or a CSS `background-image` is that you can't take + * advantage of some SVG features, such as styling specific parts of the icon with CSS or SVG + * animation. + * + * `md-icon` makes it easier to use SVG icons by *inlining* the SVG into an `` element in the + * document. The most straightforward way of referencing an SVG icon is via URL, just like a + * traditional ``. `$mdIconProvider`, as a convenience, let's you _name_ an icon so you can + * reference it by name instead of URL throughout your templates. + * + * Additionally, you may not want to make separate HTTP requests for every icon, so you can bundle + * your SVG icons together and pre-load them with $mdIconProvider as an icon set. An icon set can + * also be given a name, which acts as a namespace for individual icons, so you can reference them + * like `"social:cake"`. + * + * When using SVGs, both external SVGs (via URLs) or sets of SVGs [from icon sets] can be + * easily loaded and used.When use font-icons, developers must following three (3) simple steps: + * + *
      + *
    1. Load the font library. e.g.
      + * <link href="https://fonts.googleapis.com/icon?family=Material+Icons" + * rel="stylesheet"> + *
    2. + *
    3. Use either (a) font-icon class names or (b) font ligatures to render the font glyph by using its textual name
    4. + *
    5. Use <md-icon md-font-icon="classname" /> or
      + * use <md-icon md-font-set="font library classname or alias"> textual_name </md-icon> or
      + * use <md-icon md-font-set="font library classname or alias"> numerical_character_reference </md-icon> + *
    6. + *
    + * + * Full details for these steps can be found: + * + *
      + *
    • http://google.github.io/material-design-icons/
    • + *
    • http://google.github.io/material-design-icons/#icon-font-for-the-web
    • + *
    + * + * The Material Design icon style .material-icons and the icon font references are published in + * Material Design Icons: + * + *
      + *
    • http://www.google.com/design/icons/
    • + *
    • https://www.google.com/design/icons/#ic_accessibility
    • + *
    + * + *

    Material Design Icons

    + * Using the Material Design Icon-Selector, developers can easily and quickly search for a Material Design font-icon and + * determine its textual name and character reference code. Click on any icon to see the slide-up information + * panel with details regarding a SVG download or information on the font-icon usage. + * + * + * + * + * + * + * Click on the image above to link to the + * Material Design Icon-Selector. + * + * + * @param {string} md-font-icon String name of CSS icon associated with the font-face will be used + * to render the icon. Requires the fonts and the named CSS styles to be preloaded. + * @param {string} md-font-set CSS style name associated with the font library; which will be assigned as + * the class for the font-icon ligature. This value may also be an alias that is used to lookup the classname; + * internally use `$mdIconProvider.fontSet()` to determine the style name. + * @param {string} md-svg-src String URL (or expression) used to load, cache, and display an + * external SVG. + * @param {string} md-svg-icon md-svg-icon String name used for lookup of the icon from the internal cache; + * interpolated strings or expressions may also be used. Specific set names can be used with + * the syntax `:`.

    + * To use icon sets, developers are required to pre-register the sets using the `$mdIconProvider` service. + * @param {string=} aria-label 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 aria-label on the icon + * 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. * + * @usage + * When using SVGs: + * + * + * + * + * + * + * + * + * + * + * + * Use the $mdIconProvider to configure your application with + * svg iconsets. + * + * + * angular.module('appSvgIconSets', ['ngMaterial']) + * .controller('DemoCtrl', function($scope) {}) + * .config(function($mdIconProvider) { + * $mdIconProvider + * .iconSet('social', 'img/icons/sets/social-icons.svg', 24) + * .defaultIconSet('img/icons/sets/core-icons.svg', 24); + * }); + * + * + * + * When using Font Icons with classnames: + * + * + * + * + * + * + * + * When using Material Font Icons with ligatures: + * + * + * + * face + * face + * #xE87C; + * + * face + * + * + * When using other Font-Icon libraries: + * + * + * // Specify a font-icon style alias + * angular.config(function($mdIconProvider) { + * $mdIconProvider.fontSet('fa', 'fontawesome'); + * }); + * + * + * + * email + * + * + */ +function mdIconDirective($mdIcon, $mdTheming, $mdAria ) { + + return { + scope: { + fontSet : '@mdFontSet', + fontIcon: '@mdFontIcon', + svgIcon : '@mdSvgIcon', + svgSrc : '@mdSvgSrc' + }, + restrict: 'E', + link : postLink + }; + + + /** + * Directive postLink + * Supports embedded SVGs, font-icons, & external SVGs + */ + function postLink(scope, element, attr) { + $mdTheming(element); + + prepareForFontIcon(); + + // If using a font-icon, then the textual name of the icon itself + // provides the aria-label. + + var label = attr.alt || scope.fontIcon || scope.svgIcon || element.text(); + var attrName = attr.$normalize(attr.$attr.mdSvgIcon || attr.$attr.mdSvgSrc || ''); + + if ( !attr['aria-label'] ) { + + if (label != '' && !parentsHaveText() ) { + + $mdAria.expect(element, 'aria-label', label); + $mdAria.expect(element, 'role', 'img'); + + } else if ( !element.text() ) { + // If not a font-icon with ligature, then + // hide from the accessibility layer. + + $mdAria.expect(element, 'aria-hidden', 'true'); + } + } + + if (attrName) { + // Use either pre-configured SVG or URL source, respectively. + attr.$observe(attrName, function(attrVal) { + + element.empty(); + if (attrVal) { + $mdIcon(attrVal).then(function(svg) { + element.append(svg); + }); + } + + }); + } + + function parentsHaveText() { + var parent = element.parent(); + if (parent.attr('aria-label') || parent.text()) { + return true; + } + else if(parent.parent().attr('aria-label') || parent.parent().text()) { + return true; + } + return false; + } + + 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; + } } } - MdContactChips.$inject = ["$mdTheming", "$mdUtil"]; +} + +})(); +(function(){ +"use strict"; + + angular + .module('material.components.icon' ) + .provider('$mdIcon', MdIconProvider); + + /** + * @ngdoc service + * @name $mdIconProvider + * @module material.components.icon + * + * @description + * `$mdIconProvider` is used only to register icon IDs with URLs. These configuration features allow + * 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 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, + * the `$mdIcon` service searches its registry for the associated source URL; + * that URL is used to on-demand load and parse the SVG dynamically. + * + * @usage + * + * app.config(function($mdIconProvider) { + * + * // Configure URLs for icons specified by [set:]id. + * + * $mdIconProvider + * .defaultFontSet( 'fontawesome' ) + * .defaultIconSet('my/app/icons.svg') // Register a default set of SVG icons + * .iconSet('social', 'my/app/social.svg') // Register a named icon set of SVGs + * .icon('android', 'my/app/android.svg') // Register a specific icon (by name) + * .icon('work:chair', 'my/app/chair.svg'); // Register icon in a specific set + * }); + * + * + * SVG icons and icon sets can be easily pre-loaded and cached using either (a) a build process or (b) a runtime + * **startup** process (shown below): + * + * + * app.config(function($mdIconProvider) { + * + * // Register a default set of SVG icon definitions + * $mdIconProvider.defaultIconSet('my/app/icons.svg') + * + * }) + * .run(function($http, $templateCache){ + * + * // Pre-fetch icons sources by URL and cache in the $templateCache... + * // subsequent $http calls will look there first. + * + * var urls = [ 'imy/app/icons.svg', 'img/icons/android.svg']; + * + * angular.forEach(urls, function(url) { + * $http.get(url, {cache: $templateCache}); + * }); + * + * }); + * + * + * + * NOTE: the loaded SVG data is subsequently cached internally for future requests. + * + */ + + /** + * @ngdoc method + * @name $mdIconProvider#icon + * + * @description + * Register a source URL for a specific icon name; the name may include optional 'icon set' name prefix. + * These icons will later be retrieved from the cache using `$mdIcon( )` + * + * @param {string} id Icon name/id used to register the icon + * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the + * data or as part of the lookup in `$templateCache` if pre-loading was configured. + * @param {number=} viewBoxSize Sets the width and height the icon's viewBox. + * It is ignored for icons with an existing viewBox. Default size is 24. + * + * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API + * + * @usage + * + * app.config(function($mdIconProvider) { + * + * // Configure URLs for icons specified by [set:]id. + * + * $mdIconProvider + * .icon('android', 'my/app/android.svg') // Register a specific icon (by name) + * .icon('work:chair', 'my/app/chair.svg'); // Register icon in a specific set + * }); + * + * + */ + /** + * @ngdoc method + * @name $mdIconProvider#iconSet + * + * @description + * Register a source URL for a 'named' set of icons; group of SVG definitions where each definition + * has an icon id. Individual icons can be subsequently retrieved from this cached set using + * `$mdIcon(:)` + * + * @param {string} id Icon name/id used to register the iconset + * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the + * data or as part of the lookup in `$templateCache` if pre-loading was configured. + * @param {number=} viewBoxSize Sets the width and height of the viewBox of all icons in the set. + * It is ignored for icons with an existing viewBox. All icons in the icon set should be the same size. + * Default value is 24. + * + * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API + * + * + * @usage + * + * app.config(function($mdIconProvider) { + * + * // Configure URLs for icons specified by [set:]id. + * + * $mdIconProvider + * .iconSet('social', 'my/app/social.svg') // Register a named icon set + * }); + * + * + */ + /** + * @ngdoc method + * @name $mdIconProvider#defaultIconSet + * + * @description + * Register a source URL for the default 'named' set of icons. Unless explicitly registered, + * subsequent lookups of icons will failover to search this 'default' icon set. + * Icon can be retrieved from this cached, default set using `$mdIcon()` + * + * @param {string} url specifies the external location for the data file. Used internally by `$http` to load the + * data or as part of the lookup in `$templateCache` if pre-loading was configured. + * @param {number=} viewBoxSize Sets the width and height of the viewBox of all icons in the set. + * It is ignored for icons with an existing viewBox. All icons in the icon set should be the same size. + * Default value is 24. + * + * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API + * + * @usage + * + * app.config(function($mdIconProvider) { + * + * // Configure URLs for icons specified by [set:]id. + * + * $mdIconProvider + * .defaultIconSet( 'my/app/social.svg' ) // Register a default icon set + * }); + * + * + */ + /** + * @ngdoc method + * @name $mdIconProvider#defaultFontSet + * + * @description + * When using Font-Icons, Angular Material assumes the the Material Design icons will be used and automatically + * configures the default font-set == 'material-icons'. Note that the font-set references the font-icon library + * class style that should be applied to the ``. + * + * Configuring the default means that the attributes + * `md-font-set="material-icons"` or `class="material-icons"` do not need to be explicitly declared on the + * `` markup. For example: + * + * ` face ` + * will render as + * ` face `, and + * + * ` face ` + * will render as + * ` face ` + * + * @param {string} name of the font-library style that should be applied to the md-icon DOM element + * + * @usage + * + * app.config(function($mdIconProvider) { + * $mdIconProvider.defaultFontSet( 'fontawesome' ); + * }); + * + * + */ + + /** + * @ngdoc method + * @name $mdIconProvider#defaultViewBoxSize + * + * @description + * While `` markup can also be style with sizing CSS, this method configures + * the default width **and** height used for all icons; unless overridden by specific CSS. + * The default sizing is (24px, 24px). + * @param {number=} viewBoxSize Sets the width and height of the viewBox for an icon or an icon set. + * All icons in a set should be the same size. The default value is 24. + * + * @returns {obj} an `$mdIconProvider` reference; used to support method call chains for the API + * + * @usage + * + * app.config(function($mdIconProvider) { + * + * // Configure URLs for icons specified by [set:]id. + * + * $mdIconProvider + * .defaultViewBoxSize(36) // Register a default icon size (width == height) + * }); + * + * + */ + + var config = { + defaultViewBoxSize: 24, + defaultFontSet: 'material-icons', + fontSets : [ ] + }; + + function MdIconProvider() { } + + MdIconProvider.prototype = { + icon : function (id, url, viewBoxSize) { + if ( id.indexOf(':') == -1 ) id = '$default:' + id; + + config[id] = new ConfigurationItem(url, viewBoxSize ); + return this; + }, + + iconSet : function (id, url, viewBoxSize) { + config[id] = new ConfigurationItem(url, viewBoxSize ); + return this; + }, + + defaultIconSet : function (url, viewBoxSize) { + var setName = '$default'; + + if ( !config[setName] ) { + config[setName] = new ConfigurationItem(url, viewBoxSize ); + } + + config[setName].viewBoxSize = viewBoxSize || config.defaultViewBoxSize; + + return this; + }, + + defaultViewBoxSize : function (viewBoxSize) { + config.defaultViewBoxSize = viewBoxSize; + return this; + }, + + /** + * Register an alias name associated with a font-icon library style ; + */ + fontSet : function fontSet(alias, className) { + config.fontSets.push({ + alias : alias, + fontSet : className || alias + }); + return this; + }, + + /** + * Specify a default style name associated with a font-icon library + * fallback to Material Icons. + * + */ + defaultFontSet : function defaultFontSet(className) { + config.defaultFontSet = !className ? '' : className; + return this; + }, + + defaultIconSize : function defaultIconSize(iconSize) { + config.defaultIconSize = iconSize; + return this; + }, + + preloadIcons: function ($templateCache) { + var iconProvider = this; + var svgRegistry = [ + { + id : 'md-tabs-arrow', + url: 'md-tabs-arrow.svg', + svg: '' + }, + { + id : 'md-close', + url: 'md-close.svg', + svg: '' + }, + { + id: 'md-cancel', + url: 'md-cancel.svg', + svg: '' + }, + { + id: 'md-menu', + url: 'md-menu.svg', + svg: '' + }, + { + id: 'md-toggle-arrow', + url: 'md-toggle-arrow-svg', + svg: '' + }, + { + id: 'md-calendar', + url: 'md-calendar.svg', + svg: '' + } + ]; + + svgRegistry.forEach(function(asset){ + iconProvider.icon(asset.id, asset.url); + $templateCache.put(asset.url, asset.svg); + }); + + }, + + $get : ['$http', '$q', '$log', '$templateCache', function($http, $q, $log, $templateCache) { + this.preloadIcons($templateCache); + return MdIconService(config, $http, $q, $log, $templateCache); + }] + }; + + /** + * Configuration item stored in the Icon registry; used for lookups + * to load if not already cached in the `loaded` cache + */ + function ConfigurationItem(url, viewBoxSize) { + this.url = url; + this.viewBoxSize = viewBoxSize || config.defaultViewBoxSize; + } + + /** + * @ngdoc service + * @name $mdIcon + * @module material.components.icon + * + * @description + * The `$mdIcon` service is a function used to lookup SVG icons. + * + * @param {string} id Query value for a unique Id or URL. If the argument is a URL, then the service will retrieve the icon element + * from its internal cache or load the icon and cache it first. If the value is not a URL-type string, then an ID lookup is + * performed. The Id may be a unique icon ID or may include an iconSet ID prefix. + * + * For the **id** query to work properly, this means that all id-to-URL mappings must have been previously configured + * using the `$mdIconProvider`. + * + * @returns {obj} Clone of the initial SVG DOM element; which was created from the SVG markup in the SVG data file. + * + * @usage + * + * function SomeDirective($mdIcon) { + * + * // See if the icon has already been loaded, if not + * // then lookup the icon from the registry cache, load and cache + * // it for future requests. + * // NOTE: ID queries require configuration with $mdIconProvider + * + * $mdIcon('android').then(function(iconEl) { element.append(iconEl); }); + * $mdIcon('work:chair').then(function(iconEl) { element.append(iconEl); }); + * + * // Load and cache the external SVG using a URL + * + * $mdIcon('img/icons/android.svg').then(function(iconEl) { + * element.append(iconEl); + * }); + * }; + * + * + * NOTE: The ` ` directive internally uses the `$mdIcon` service to query, loaded, and instantiate + * SVG DOM elements. + */ + + /* @ngInject */ + function MdIconService(config, $http, $q, $log, $templateCache) { + var iconCache = {}; + var urlRegex = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i; + + Icon.prototype = { clone : cloneSVG, prepare: prepareAndStyle }; + getIcon.fontSet = findRegisteredFontSet; + + // Publish service... + return getIcon; + + /** + * Actual $mdIcon service is essentially a lookup function + */ + function getIcon(id) { + id = id || ''; + + // If already loaded and cached, use a clone of the cached icon. + // Otherwise either load by URL, or lookup in the registry and then load by URL, and cache. + + if ( iconCache[id] ) return $q.when( iconCache[id].clone() ); + if ( urlRegex.test(id) ) return loadByURL(id).then( cacheIcon(id) ); + if ( id.indexOf(':') == -1 ) id = '$default:' + id; + + var load = config[id] ? loadByID : loadFromIconSet; + return load(id) + .then( cacheIcon(id) ); + } + + /** + * Lookup registered fontSet style using its alias... + * If not found, + */ + function findRegisteredFontSet(alias) { + var useDefault = angular.isUndefined(alias) || !(alias && alias.length); + if ( useDefault ) return config.defaultFontSet; + + var result = alias; + angular.forEach(config.fontSets, function(it){ + if ( it.alias == alias ) result = it.fontSet || result; + }); + + return result; + } + + /** + * Prepare and cache the loaded icon for the specified `id` + */ + function cacheIcon( id ) { + + return function updateCache( icon ) { + iconCache[id] = isIcon(icon) ? icon : new Icon(icon, config[id]); + + return iconCache[id].clone(); + }; + } + + /** + * Lookup the configuration in the registry, if !registered throw an error + * otherwise load the icon [on-demand] using the registered URL. + * + */ + function loadByID(id) { + var iconConfig = config[id]; + return loadByURL(iconConfig.url).then(function(icon) { + return new Icon(icon, iconConfig); + }); + } + + /** + * Loads the file as XML and uses querySelector( ) to find + * the desired node... + */ + function loadFromIconSet(id) { + var setName = id.substring(0, id.lastIndexOf(':')) || '$default'; + var iconSetConfig = config[setName]; + + return !iconSetConfig ? announceIdNotFound(id) : loadByURL(iconSetConfig.url).then(extractFromSet); + + function extractFromSet(set) { + var iconName = id.slice(id.lastIndexOf(':') + 1); + var icon = set.querySelector('#' + iconName); + return !icon ? announceIdNotFound(id) : new Icon(icon, iconSetConfig); + } + + function announceIdNotFound(id) { + var msg = 'icon ' + id + ' not found'; + $log.warn(msg); + + return $q.reject(msg || id); + } + } + + /** + * Load the icon by URL (may use the $templateCache). + * Extract the data for later conversion to Icon + */ + function loadByURL(url) { + return $http + .get(url, { cache: $templateCache }) + .then(function(response) { + return angular.element('
    ').append(response.data).find('svg')[0]; + }).catch(announceNotFound); + } + + /** + * Catch HTTP or generic errors not related to incorrect icon IDs. + */ + function announceNotFound(err) { + var msg = angular.isString(err) ? err : (err.message || err.data || err.statusText); + $log.warn(msg); + + return $q.reject(msg); + } + + /** + * Check target signature to see if it is an Icon instance. + */ + function isIcon(target) { + return angular.isDefined(target.element) && angular.isDefined(target.config); + } + + /** + * Define the Icon class + */ + function Icon(el, config) { + if (el.tagName != 'svg') { + el = angular.element('').append(el)[0]; + } + + // Inject the namespace if not available... + if ( !el.getAttribute('xmlns') ) { + el.setAttribute('xmlns', "http://www.w3.org/2000/svg"); + } + + this.element = el; + this.config = config; + this.prepare(); + } + + /** + * Prepare the DOM element that will be cached in the + * loaded iconCache store. + */ + function prepareAndStyle() { + var viewBoxSize = this.config ? this.config.viewBoxSize : config.defaultViewBoxSize; + angular.forEach({ + 'fit' : '', + 'height': '100%', + 'width' : '100%', + 'preserveAspectRatio': 'xMidYMid meet', + 'viewBox' : this.element.getAttribute('viewBox') || ('0 0 ' + viewBoxSize + ' ' + viewBoxSize) + }, function(val, attr) { + this.element.setAttribute(attr, val); + }, this); + + angular.forEach({ + 'pointer-events' : 'none', + 'display' : 'block' + }, function(val, style) { + this.element.style[style] = val; + }, this); + } + + /** + * Clone the Icon DOM element. + */ + function cloneSVG(){ + return this.element.cloneNode(true); + } + + } + MdIconService.$inject = ["config", "$http", "$q", "$log", "$templateCache"]; + +})(); +(function(){ +"use strict"; + + + +angular + .module('material.components.menu') + .controller('mdMenuCtrl', MenuController); + +/** + * @ngInject + */ +function MenuController($mdMenu, $attrs, $element, $scope, $mdUtil, $timeout) { + + var menuContainer; + var self = this; + var triggerElement; + + this.nestLevel = parseInt($attrs.mdNestLevel, 10) || 0; + + /** + * Called by our linking fn to provide access to the menu-content + * element removed during link + */ + this.init = function init(setMenuContainer, opts) { + opts = opts || {}; + menuContainer = setMenuContainer; + // Default element for ARIA attributes has the ngClick or ngMouseenter expression + triggerElement = $element[0].querySelector('[ng-click],[ng-mouseenter]'); + + this.isInMenuBar = opts.isInMenuBar; + this.nestedMenus = $mdUtil.nodesToArray(menuContainer[0].querySelectorAll('.md-nested-menu')); + this.enableHoverListener(); + + menuContainer.on('$mdInterimElementRemove', function() { + self.isOpen = false; + }); + }; + + this.enableHoverListener = function() { + $scope.$on('$mdMenuOpen', function(event, el) { + if (menuContainer[0].contains(el[0])) { + self.currentlyOpenMenu = el.controller('mdMenu'); + self.isAlreadyOpening = false; + self.currentlyOpenMenu.registerContainerProxy(self.triggerContainerProxy.bind(self)); + } + }); + $scope.$on('$mdMenuClose', function(event, el) { + if (menuContainer[0].contains(el[0])) { + self.currentlyOpenMenu = undefined; + } + }); + + var menuItems = angular.element($mdUtil.nodesToArray(menuContainer[0].querySelectorAll('md-menu-item'))); + + var openMenuTimeout; + menuItems.on('mouseenter', function(event) { + if (self.isAlreadyOpening) return; + var nestedMenu = ( + event.target.querySelector('md-menu') + || $mdUtil.getClosest(event.target, 'MD-MENU') + ); + openMenuTimeout = $timeout(function() { + if (nestedMenu) { + nestedMenu = angular.element(nestedMenu).controller('mdMenu'); + } + + if (self.currentlyOpenMenu && self.currentlyOpenMenu != nestedMenu) { + var closeTo = self.nestLevel + 1; + self.currentlyOpenMenu.close(true, { closeTo: closeTo }); + } else if (nestedMenu && !nestedMenu.isOpen && nestedMenu.open) { + self.isAlreadyOpening = true; + nestedMenu.open(); + } + }, nestedMenu ? 100 : 250); + var focusableTarget = event.currentTarget.querySelector('[tabindex]'); + focusableTarget && focusableTarget.focus(); + }); + menuItems.on('mouseleave', function(event) { + if (openMenuTimeout) { + $timeout.cancel(openMenuTimeout); + openMenuTimeout = undefined; + } + }); + }; + + /** + * Uses the $mdMenu interim element service to open the menu contents + */ + this.open = function openMenu(ev) { + ev && ev.stopPropagation(); + ev && ev.preventDefault(); + if (self.isOpen) return; + self.isOpen = true; + triggerElement = triggerElement || (ev ? ev.target : $element[0]); + $scope.$emit('$mdMenuOpen', $element); + $mdMenu.show({ + scope: $scope, + mdMenuCtrl: self, + nestLevel: self.nestLevel, + element: menuContainer, + target: triggerElement, + preserveElement: self.isInMenuBar || self.nestedMenus.length > 0, + parent: self.isInMenuBar ? $element : 'body' + }); + } + + // Expose a open function to the child scope for html to use + $scope.$mdOpenMenu = this.open; + + $scope.$watch(function() { return self.isOpen; }, function(isOpen) { + if (isOpen) { + triggerElement.setAttribute('aria-expanded', 'true'); + $element[0].classList.add('md-open'); + angular.forEach(self.nestedMenus, function(el) { + el.classList.remove('md-open'); + }); + } else { + triggerElement && triggerElement.setAttribute('aria-expanded', 'false'); + $element[0].classList.remove('md-open'); + } + $scope.$mdMenuIsOpen = self.isOpen; + }); + + this.focusMenuContainer = function focusMenuContainer() { + var focusTarget = menuContainer[0].querySelector('[md-menu-focus-target]'); + if (!focusTarget) focusTarget = menuContainer[0].querySelector('.md-button'); + focusTarget.focus(); + }; + + this.registerContainerProxy = function registerContainerProxy(handler) { + this.containerProxy = handler; + }; + + this.triggerContainerProxy = function triggerContainerProxy(ev) { + this.containerProxy && this.containerProxy(ev); + }; + + // Use the $mdMenu interim element service to close the menu contents + this.close = function closeMenu(skipFocus, closeOpts) { + if ( !self.isOpen ) return; + self.isOpen = false; + + $scope.$emit('$mdMenuClose', $element); + $mdMenu.hide(null, closeOpts); + if (!skipFocus) { + var el = self.restoreFocusTo || $element.find('button')[0]; + if (el instanceof angular.element) el = el[0]; + el.focus(); + } + } + + /** + * Build a nice object out of our string attribute which specifies the + * target mode for left and top positioning + */ + this.positionMode = function positionMode() { + var attachment = ($attrs.mdPositionMode || 'target').split(' '); + + // If attachment is a single item, duplicate it for our second value. + // ie. 'target' -> 'target target' + if (attachment.length == 1) { + attachment.push(attachment[0]); + } + + return { + left: attachment[0], + top: attachment[1] + }; + } + + /** + * Build a nice object out of our string attribute which specifies + * the offset of top and left in pixels. + */ + this.offsets = function offsets() { + var position = ($attrs.mdOffset || '0 0').split(' ').map(parseFloat); + if (position.length == 2) { + return { + left: position[0], + top: position[1] + }; + } else if (position.length == 1) { + return { + top: position[0], + left: position[0] + }; + } else { + throw Error('Invalid offsets specified. Please follow format or '); + } + } +} +MenuController.$inject = ["$mdMenu", "$attrs", "$element", "$scope", "$mdUtil", "$timeout"]; + +})(); +(function(){ +"use strict"; + +/** + * @ngdoc directive + * @name mdMenu + * @module material.components.menu + * @restrict E + * @description + * + * Menus are elements that open when clicked. They are useful for displaying + * additional options within the context of an action. + * + * Every `md-menu` must specify exactly two child elements. The first element is what is + * left in the DOM and is used to open the menu. This element is called the trigger element. + * The trigger element's scope has access to `$mdOpenMenu($event)` + * which it may call to open the menu. By passing $event as argument, the + * corresponding event is stopped from propagating up the DOM-tree. + * + * The second element is the `md-menu-content` element which represents the + * contents of the menu when it is open. Typically this will contain `md-menu-item`s, + * but you can do custom content as well. + * + * + * + * + * + * + * + * + * Do Something + * + * + * + + * ## Sizing Menus + * + * The width of the menu when it is open may be specified by specifying a `width` + * attribute on the `md-menu-content` element. + * See the [Material Design Spec](http://www.google.com/design/spec/components/menus.html#menus-specs) + * for more information. + * + * + * ## Aligning Menus + * + * When a menu opens, it is important that the content aligns with the trigger element. + * Failure to align menus can result in jarring experiences for users as content + * suddenly shifts. To help with this, `md-menu` provides serveral APIs to help + * with alignment. + * + * ### Target Mode + * + * By default, `md-menu` will attempt to align the `md-menu-content` by aligning + * designated child elements in both the trigger and the menu content. + * + * To specify the alignment element in the `trigger` you can use the `md-menu-origin` + * attribute on a child element. If no `md-menu-origin` is specified, the `md-menu` + * will be used as the origin element. + * + * Similarly, the `md-menu-content` may specify a `md-menu-align-target` for a + * `md-menu-item` to specify the node that it should try and align with. + * + * In this example code, we specify an icon to be our origin element, and an + * icon in our menu content to be our alignment target. This ensures that both + * icons are aligned when the menu opens. + * + * + * + * + * + * + * + * + * + * + * Do Something + * + * + * + * + * + * + * Sometimes we want to specify alignment on the right side of an element, for example + * if we have a menu on the right side a toolbar, we want to right align our menu content. + * + * We can specify the origin by using the `md-position-mode` attribute on both + * the `x` and `y` axis. Right now only the `x-axis` has more than one option. + * You may specify the default mode of `target target` or + * `target-right target` to specify a right-oriented alignment target. See the + * position section of the demos for more examples. + * + * ### Menu Offsets + * + * It is sometimes unavoidable to need to have a deeper level of control for + * the positioning of a menu to ensure perfect alignment. `md-menu` provides + * the `md-offset` attribute to allow pixel level specificty of adjusting the + * exact positioning. + * + * This offset is provided in the format of `x y` or `n` where `n` will be used + * in both the `x` and `y` axis. + * + * For example, to move a menu by `2px` from the top, we can use: + * + * + * + * + * + * + * @usage + * + * + * + * + * + * + * Do Something + * + * + * + * + * @param {string} md-po*ition-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 + * `x`, `y`. Default value is `0`,`0`. + * + */ + +angular + .module('material.components.menu') + .directive('mdMenu', MenuDirective); + +/** + * @ngInject + */ +function MenuDirective($mdUtil) { + var INVALID_PREFIX = 'Invalid HTML for md-menu: '; + return { + restrict: 'E', + require: ['mdMenu', '?^mdMenuBar'], + controller: 'mdMenuCtrl', // empty function to be built by link + scope: true, + compile: compile + }; + + function compile(templateElement) { + templateElement.addClass('md-menu'); + var triggerElement = templateElement.children()[0]; + if (!triggerElement.hasAttribute('ng-click')) { + triggerElement = triggerElement.querySelector('[ng-click],[ng-mouseenter]') || triggerElement; + } + if (triggerElement && ( + triggerElement.nodeName == 'MD-BUTTON' || + triggerElement.nodeName == 'BUTTON' + ) && !triggerElement.hasAttribute('type')) { + triggerElement.setAttribute('type', 'button'); + } + + if (templateElement.children().length != 2) { + throw Error(INVALID_PREFIX + 'Expected two children elements.'); + } + + // Default element for ARIA attributes has the ngClick or ngMouseenter expression + triggerElement && triggerElement.setAttribute('aria-haspopup', 'true'); + + var nestedMenus = templateElement[0].querySelectorAll('md-menu'); + var nestingDepth = parseInt(templateElement[0].getAttribute('md-nest-level'), 10) || 0; + if (nestedMenus) { + angular.forEach($mdUtil.nodesToArray(nestedMenus), function(menuEl) { + if (!menuEl.hasAttribute('md-position-mode')) { + menuEl.setAttribute('md-position-mode', 'cascade'); + } + menuEl.classList.add('md-nested-menu'); + menuEl.setAttribute('md-nest-level', nestingDepth + 1); + menuEl.setAttribute('role', 'menu'); + }); + } + return link; + } + + function link(scope, element, attrs, ctrls) { + var mdMenuCtrl = ctrls[0]; + var isInMenuBar = ctrls[1] != undefined; + // Move everything into a md-menu-container and pass it to the controller + var menuContainer = angular.element( + '
    ' + ); + var menuContents = element.children()[1]; + menuContainer.append(menuContents); + if (isInMenuBar) { + element.append(menuContainer); + menuContainer[0].style.display = 'none'; + } + mdMenuCtrl.init(menuContainer, { isInMenuBar: isInMenuBar }); + + scope.$on('$destroy', function() { + menuContainer.remove(); + mdMenuCtrl.close(); + }); + + } +} +MenuDirective.$inject = ["$mdUtil"]; + +})(); +(function(){ +"use strict"; + +angular + .module('material.components.menu') + .provider('$mdMenu', MenuProvider); + +/* + * Interim element provider for the menu. + * Handles behavior for a menu while it is open, including: + * - handling animating the menu opening/closing + * - handling key/mouse events on the menu element + * - handling enabling/disabling scroll while the menu is open + * - handling redrawing during resizes and orientation changes + * + */ + +function MenuProvider($$interimElementProvider) { + var MENU_EDGE_MARGIN = 8; + + menuDefaultOptions.$inject = ["$mdUtil", "$mdTheming", "$mdConstant", "$document", "$window", "$q", "$$rAF", "$animateCss", "$animate", "$timeout"]; + return $$interimElementProvider('$mdMenu') + .setDefaults({ + methods: ['target'], + options: menuDefaultOptions + }); + + /* @ngInject */ + function menuDefaultOptions($mdUtil, $mdTheming, $mdConstant, $document, $window, $q, $$rAF, $animateCss, $animate, $timeout) { + var animator = $mdUtil.dom.animator; + + return { + parent: 'body', + onShow: onShow, + onRemove: onRemove, + hasBackdrop: true, + disableParentScroll: true, + skipCompile: true, + preserveScope: true, + skipHide: true, + themable: true + }; + + /** + * Show modal backdrop element... + * @returns {function(): void} A function that removes this backdrop + */ + function showBackdrop(scope, element, options) { + if (options.nestLevel) return angular.noop; + + // If we are not within a dialog... + if (options.disableParentScroll && !$mdUtil.getClosest(options.target, 'MD-DIALOG')) { + // !! DO this before creating the backdrop; since disableScrollAround() + // configures the scroll offset; which is used by mdBackDrop postLink() + options.restoreScroll = $mdUtil.disableScrollAround(options.element, options.parent); + } else { + options.disableParentScroll = false; + } + + if (options.hasBackdrop) { + options.backdrop = $mdUtil.createBackdrop(scope, "md-menu-backdrop md-click-catcher"); + + $animate.enter(options.backdrop, options.parent); + } + + /** + * Hide and destroys the backdrop created by showBackdrop() + */ + return function hideBackdrop() { + if (options.backdrop) { + // Override duration to immediately remove invisible backdrop + options.backdrop.off('click'); + $animate.leave(options.backdrop, {duration:0}); + } + if (options.disableParentScroll) { + options.restoreScroll(); + } + }; + } + + /** + * Removing the menu element from the DOM and remove all associated evetn listeners + * and backdrop + */ + function onRemove(scope, element, opts) { + opts.cleanupInteraction(); + opts.cleanupResizing(); + opts.hideBackdrop(); + + return $animateCss(element, {addClass: 'md-leave'}) + .start() + .then(function() { + element.removeClass('md-active'); + + detachElement(element, opts); + opts.alreadyOpen = false; + }); + } + + /** + * Inserts and configures the staged Menu element into the DOM, positioning it, + * and wiring up various interaction events + */ + function onShow(scope, element, opts) { + sanitizeAndConfigure(opts); + + // Wire up theming on our menu element + $mdTheming.inherit(opts.menuContentEl, opts.target); + + // Register various listeners to move menu on resize/orientation change + opts.cleanupResizing = startRepositioningOnResize(); + opts.hideBackdrop = showBackdrop(scope, element, opts); + + // Return the promise for when our menu is done animating in + return showMenu() + .then(function(response) { + opts.alreadyOpen = true; + opts.cleanupInteraction = activateInteraction(); + return response; + }); + + /** + * Place the menu into the DOM and call positioning related functions + */ + function showMenu() { + if (!opts.preserveElement) { + opts.parent.append(element); + } else { + element[0].style.display = ''; + } + + return $q(function(resolve) { + var position = calculateMenuPosition(element, opts); + + element.removeClass('md-leave'); + + // Animate the menu scaling, and opacity [from its position origin (default == top-left)] + // to normal scale. + $animateCss(element, { + addClass: 'md-active', + from: animator.toCss(position), + to: animator.toCss({transform: ''}) + }) + .start() + .then(resolve); + + }); + } + + /** + * Check for valid opts and set some sane defaults + */ + function sanitizeAndConfigure() { + if (!opts.target) { + throw Error( + '$mdMenu.show() expected a target to animate from in options.target' + ); + } + angular.extend(opts, { + alreadyOpen: false, + isRemoved: false, + target: angular.element(opts.target), //make sure it's not a naked dom node + parent: angular.element(opts.parent), + menuContentEl: angular.element(element[0].querySelector('md-menu-content')) + }); + } + + /** + * Configure various resize listeners for screen changes + */ + function startRepositioningOnResize() { + + var repositionMenu = (function(target, options) { + return $$rAF.throttle(function() { + if (opts.isRemoved) return; + var position = calculateMenuPosition(target, options); + + target.css(animator.toCss(position)); + }); + })(element, opts); + + $window.addEventListener('resize', repositionMenu); + $window.addEventListener('orientationchange', repositionMenu); + + return function stopRepositioningOnResize() { + + // Disable resizing handlers + $window.removeEventListener('resize', repositionMenu); + $window.removeEventListener('orientationchange', repositionMenu); + + } + } + + /** + * Activate interaction on the menu. Wire up keyboard listerns for + * clicks, keypresses, backdrop closing, etc. + */ + function activateInteraction() { + element.addClass('md-clickable'); + + // close on backdrop click + if (opts.backdrop) opts.backdrop.on('click', onBackdropClick); + + // Wire up keyboard listeners. + // - Close on escape, + // - focus next item on down arrow, + // - focus prev item on up + opts.menuContentEl.on('keydown', onMenuKeyDown); + opts.menuContentEl[0].addEventListener('click', captureClickListener, true); + + // kick off initial focus in the menu on the first element + var focusTarget = opts.menuContentEl[0].querySelector('[md-menu-focus-target]') || + opts.menuContentEl[0].firstElementChild.querySelector('[tabindex]') || + opts.menuContentEl[0].firstElementChild.firstElementChild; + focusTarget.focus(); + + return function cleanupInteraction() { + element.removeClass('md-clickable'); + if (opts.backdrop) opts.backdrop.off('click', onBackdropClick); + opts.menuContentEl.off('keydown', onMenuKeyDown); + opts.menuContentEl[0].removeEventListener('click', captureClickListener, true); + }; + + // ************************************ + // internal functions + // ************************************ + + function onMenuKeyDown(ev) { + var handled; + var keyCodes = $mdConstant.KEY_CODE; + switch (ev.keyCode) { + case $mdConstant.KEY_CODE.ESCAPE: + opts.mdMenuCtrl.close(true, { closeAll: true }); + handled = true; + break; + case $mdConstant.KEY_CODE.UP_ARROW: + if (!focusMenuItem(ev, opts.menuContentEl, opts, -1)) { + opts.mdMenuCtrl.triggerContainerProxy(ev); + } + handled = true; + break; + case $mdConstant.KEY_CODE.DOWN_ARROW: + if (!focusMenuItem(ev, opts.menuContentEl, opts, 1)) { + opts.mdMenuCtrl.triggerContainerProxy(ev); + } + handled = true; + break; + case $mdConstant.KEY_CODE.LEFT_ARROW: + if (opts.nestLevel) { + opts.mdMenuCtrl.close(); + } else { + opts.mdMenuCtrl.triggerContainerProxy(ev); + } + handled = true; + break; + case $mdConstant.KEY_CODE.RIGHT_ARROW: + var parentMenu = $mdUtil.getClosest(ev.target, 'MD-MENU'); + if (parentMenu && parentMenu != opts.parent[0]) { + ev.target.click(); + } else { + opts.mdMenuCtrl.triggerContainerProxy(ev); + } + handled = true; + break; + } + if (handled) { + ev.preventDefault(); + ev.stopImmediatePropagation(); + } + } + + function onBackdropClick(e) { + e.preventDefault(); + e.stopPropagation(); + scope.$apply(function() { + opts.mdMenuCtrl.close(true, { closeAll: true }); + }); + } + + // Close menu on menu item click, if said menu-item is not disabled + function captureClickListener(e) { + var target = e.target; + // Traverse up the event until we get to the menuContentEl to see if + // there is an ng-click and that the ng-click is not disabled + do { + if (target == opts.menuContentEl[0]) return; + if (hasAnyAttribute(target, ['ng-click', 'ng-href', 'ui-sref']) || + target.nodeName == 'BUTTON' || target.nodeName == 'MD-BUTTON') { + var closestMenu = $mdUtil.getClosest(target, 'MD-MENU'); + if (!target.hasAttribute('disabled') && (!closestMenu || closestMenu == opts.parent[0])) { + close(); + } + break; + } + } while (target = target.parentNode) + + function close() { + scope.$apply(function() { + opts.mdMenuCtrl.close(true, { closeAll: true }); + }); + } + + function hasAnyAttribute(target, attrs) { + if (!target) return false; + for (var i = 0, attr; attr = attrs[i]; ++i) { + var altForms = [attr, 'data-' + attr, 'x-' + attr]; + for (var j = 0, rawAttr; rawAttr = altForms[j]; ++j) { + if (target.hasAttribute(rawAttr)) { + return true; + } + } + } + return false; + } + } + + opts.menuContentEl[0].addEventListener('click', captureClickListener, true); + + return function cleanupInteraction() { + element.removeClass('md-clickable'); + opts.menuContentEl.off('keydown'); + opts.menuContentEl[0].removeEventListener('click', captureClickListener, true); + }; + } + } + + /** + * Takes a keypress event and focuses the next/previous menu + * item from the emitting element + * @param {event} e - The origin keypress event + * @param {angular.element} menuEl - The menu element + * @param {object} opts - The interim element options for the mdMenu + * @param {number} direction - The direction to move in (+1 = next, -1 = prev) + */ + function focusMenuItem(e, menuEl, opts, direction) { + var currentItem = $mdUtil.getClosest(e.target, 'MD-MENU-ITEM'); + + var items = $mdUtil.nodesToArray(menuEl[0].children); + var currentIndex = items.indexOf(currentItem); + + // Traverse through our elements in the specified direction (+/-1) and try to + // focus them until we find one that accepts focus + var didFocus; + for (var i = currentIndex + direction; i >= 0 && i < items.length; i = i + direction) { + var focusTarget = items[i].querySelector('.md-button'); + didFocus = attemptFocus(focusTarget); + if (didFocus) { + break; + } + } + return didFocus; + } + + /** + * Attempts to focus an element. Checks whether that element is the currently + * focused element after attempting. + * @param {HTMLElement} el - the element to attempt focus on + * @returns {bool} - whether the element was successfully focused + */ + function attemptFocus(el) { + if (el && el.getAttribute('tabindex') != -1) { + el.focus(); + return ($document[0].activeElement == el); + } + } + + /** + * Use browser to remove this element without triggering a $destory event + */ + function detachElement(element, opts) { + if (!opts.preserveElement) { + if (toNode(element).parentNode === toNode(opts.parent)) { + toNode(opts.parent).removeChild(toNode(element)); + } + } else { + toNode(element).style.display = 'none'; + } + } + + /** + * Computes menu position and sets the style on the menu container + * @param {HTMLElement} el - the menu container element + * @param {object} opts - the interim element options object + */ + function calculateMenuPosition(el, opts) { + + var containerNode = el[0], + openMenuNode = el[0].firstElementChild, + openMenuNodeRect = openMenuNode.getBoundingClientRect(), + boundryNode = $document[0].body, + boundryNodeRect = boundryNode.getBoundingClientRect(); + + var menuStyle = $window.getComputedStyle(openMenuNode); + + var originNode = opts.target[0].querySelector('[md-menu-origin]') || opts.target[0], + originNodeRect = originNode.getBoundingClientRect(); + + var bounds = { + left: boundryNodeRect.left + MENU_EDGE_MARGIN, + top: Math.max(boundryNodeRect.top, 0) + MENU_EDGE_MARGIN, + bottom: Math.max(boundryNodeRect.bottom, Math.max(boundryNodeRect.top, 0) + boundryNodeRect.height) - MENU_EDGE_MARGIN, + right: boundryNodeRect.right - MENU_EDGE_MARGIN + }; + + var alignTarget, alignTargetRect, existingOffsets; + 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.'); + } + + 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 = {}; + var transformOrigin = 'top '; + + switch (positionMode.top) { + case 'target': + position.top = existingOffsets.top + originNodeRect.top - alignTargetRect.top; + break; + case 'cascade': + position.top = originNodeRect.top - parseFloat(menuStyle.paddingTop) - originNode.style.top; + break; + case 'bottom': + position.top = originNodeRect.top + originNodeRect.height; + break; + default: + throw new Error('Invalid target mode "' + positionMode.top + '" specified for md-menu on Y axis.'); + } + + switch (positionMode.left) { + case 'target': + position.left = existingOffsets.left + originNodeRect.left - alignTargetRect.left; + transformOrigin += 'left'; + break; + case 'target-right': + position.left = originNodeRect.right - openMenuNodeRect.width + (openMenuNodeRect.right - alignTargetRect.right); + transformOrigin += 'right'; + break; + case 'cascade': + var willFitRight = (originNodeRect.right + openMenuNodeRect.width) < bounds.right; + position.left = willFitRight ? originNodeRect.right - originNode.style.left : originNodeRect.left - originNode.style.left - openMenuNodeRect.width; + transformOrigin += willFitRight ? 'left' : 'right'; + break; + case 'left': + position.left = originNodeRect.left; + transformOrigin += 'left'; + break; + default: + throw new Error('Invalid target mode "' + positionMode.left + '" specified for md-menu on X axis.'); + } + + var offsets = opts.mdMenuCtrl.offsets(); + position.top += offsets.top; + position.left += offsets.left; + + clamp(position); + + var scaleX = Math.round(100 * Math.min(originNodeRect.width / containerNode.offsetWidth, 1.0)) / 100; + var scaleY = Math.round(100 * Math.min(originNodeRect.height / containerNode.offsetHeight, 1.0)) / 100; + + return { + top: Math.round(position.top), + left: Math.round(position.left), + // Animate a scale out if we aren't just repositioning + transform: !opts.alreadyOpen ? $mdUtil.supplant('scale({0},{1})', [scaleX, scaleY]) : undefined, + transformOrigin: transformOrigin + }; + + /** + * Clamps the repositioning of the menu within the confines of + * bounding element (often the screen/body) + */ + function clamp(pos) { + pos.top = Math.max(Math.min(pos.top, bounds.bottom - containerNode.offsetHeight), bounds.top); + pos.left = Math.max(Math.min(pos.left, bounds.right - containerNode.offsetWidth), bounds.left); + } + + /** + * Gets the first visible child in the openMenuNode + * Necessary incase menu nodes are being dynamically hidden + */ + function firstVisibleChild() { + for (var i = 0; i < openMenuNode.children.length; ++i) { + if ($window.getComputedStyle(openMenuNode.children[i]).display != 'none') { + return openMenuNode.children[i]; + } + } + } + } + } + function toNode(el) { + if (el instanceof angular.element) { + el = el[0]; + } + return el; + } +} +MenuProvider.$inject = ["$$interimElementProvider"]; + +})(); +(function(){ +"use strict"; + + +angular + .module('material.components.menuBar') + .controller('MenuBarController', MenuBarController); + +var BOUND_MENU_METHODS = ['handleKeyDown', 'handleMenuHover', 'scheduleOpenHoveredMenu', 'cancelScheduledOpen']; + +/** + * @ngInject + */ +function MenuBarController($scope, $element, $attrs, $mdConstant, $document, $mdUtil, $timeout) { + this.$element = $element; + this.$attrs = $attrs; + this.$mdConstant = $mdConstant; + this.$mdUtil = $mdUtil; + this.$document = $document; + this.$scope = $scope; + this.$timeout = $timeout; + + var self = this; + angular.forEach(BOUND_MENU_METHODS, function(methodName) { + self[methodName] = angular.bind(self, self[methodName]); + }); +} +MenuBarController.$inject = ["$scope", "$element", "$attrs", "$mdConstant", "$document", "$mdUtil", "$timeout"]; + +MenuBarController.prototype.init = function() { + var $element = this.$element; + var $mdUtil = this.$mdUtil; + var $scope = this.$scope; + + var self = this; + $element.on('keydown', this.handleKeyDown); + this.parentToolbar = $mdUtil.getClosest($element, 'MD-TOOLBAR'); + + $scope.$on('$mdMenuOpen', function(event, el) { + if (self.getMenus().indexOf(el[0]) != -1) { + $element[0].classList.add('md-open'); + el[0].classList.add('md-open'); + self.currentlyOpenMenu = el.controller('mdMenu'); + self.currentlyOpenMenu.registerContainerProxy(self.handleKeyDown); + self.enableOpenOnHover(); + } + }); + + $scope.$on('$mdMenuClose', function(event, el) { + 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); + } + } + }); + + angular + .element(this.getMenus()) + .on('mouseenter', this.handleMenuHover); + + this.setKeyboardMode(true); +}; + +MenuBarController.prototype.setKeyboardMode = function(enabled) { + if (enabled) this.$element[0].classList.add('md-keyboard-mode'); + else this.$element[0].classList.remove('md-keyboard-mode'); +}; + +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'); + parentToolbar.style.position = 'relative'; + parentToolbar.style.zIndex = 100; + } +}; + +MenuBarController.prototype.handleMenuHover = function(e) { + this.setKeyboardMode(false); + if (this.openOnHoverEnabled) { + this.scheduleOpenHoveredMenu(e); + } +}; + + +MenuBarController.prototype.disableOpenOnHover = function() { + if (!this.openOnHoverEnabled) return; + this.openOnHoverEnabled = false; + var parentToolbar; + if (parentToolbar = this.parentToolbar) { + parentToolbar.setAttribute('style', parentToolbar.dataset.mdRestoreStyle || ''); + } +}; + +MenuBarController.prototype.scheduleOpenHoveredMenu = function(e) { + var menuEl = angular.element(e.currentTarget); + var menuCtrl = menuEl.controller('mdMenu'); + this.setKeyboardMode(false); + this.scheduleOpenMenu(menuCtrl); +}; + +MenuBarController.prototype.scheduleOpenMenu = function(menuCtrl) { + var self = this; + var $timeout = this.$timeout; + if (menuCtrl != self.currentlyOpenMenu) { + $timeout.cancel(self.pendingMenuOpen); + self.pendingMenuOpen = $timeout(function() { + self.pendingMenuOpen = undefined; + if (self.currentlyOpenMenu) { + self.currentlyOpenMenu.close(true, { closeAll: true }); + } + 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; + switch (e.keyCode) { + case keyCodes.DOWN_ARROW: + if (currentMenu) { + currentMenu.focusMenuContainer(); + } else { + this.openFocusedMenu(); + } + handled = true; + break; + case keyCodes.UP_ARROW: + currentMenu && currentMenu.close(); + handled = true; + break; + case keyCodes.LEFT_ARROW: + var newMenu = this.focusMenu(-1); + if (wasOpen) { + var newMenuCtrl = angular.element(newMenu).controller('mdMenu'); + this.scheduleOpenMenu(newMenuCtrl); + } + handled = true; + break; + case keyCodes.RIGHT_ARROW: + var newMenu = this.focusMenu(+1); + if (wasOpen) { + var newMenuCtrl = angular.element(newMenu).controller('mdMenu'); + this.scheduleOpenMenu(newMenuCtrl); + } + handled = true; + break; + } + if (handled) { + e && e.preventDefault && e.preventDefault(); + e && e.stopImmediatePropagation && e.stopImmediatePropagation(); + } +}; + +MenuBarController.prototype.focusMenu = function(direction) { + var menus = this.getMenus(); + var focusedIndex = this.getFocusedMenuIndex(); + + if (focusedIndex == -1) { focusedIndex = this.getOpenMenuIndex(); } + + var changed = false; + + if (focusedIndex == -1) { focusedIndex = 0; } + else if ( + direction < 0 && focusedIndex > 0 || + direction > 0 && focusedIndex < menus.length - direction + ) { + focusedIndex += direction; + changed = true; + } + if (changed) { + menus[focusedIndex].querySelector('button').focus(); + return menus[focusedIndex]; + } +}; + +MenuBarController.prototype.openFocusedMenu = function() { + var menu = this.getFocusedMenu(); + menu && angular.element(menu).controller('mdMenu').open(); +}; + +MenuBarController.prototype.getMenus = function() { + var $element = this.$element; + return this.$mdUtil.nodesToArray($element[0].children) + .filter(function(el) { return el.nodeName == 'MD-MENU'; }); +}; + +MenuBarController.prototype.getFocusedMenu = function() { + return this.getMenus()[this.getFocusedMenuIndex()]; +}; + +MenuBarController.prototype.getFocusedMenuIndex = function() { + var $mdUtil = this.$mdUtil; + var $element = this.$element; + var focusedEl = $mdUtil.getClosest( + this.$document[0].activeElement, + 'MD-MENU' + ); + if (!focusedEl) return -1; + + var focusedIndex = this.getMenus().indexOf(focusedEl); + return focusedIndex; + +}; + +MenuBarController.prototype.getOpenMenuIndex = function() { + var menus = this.getMenus(); + for (var i = 0; i < menus.length; ++i) { + if (menus[i].classList.contains('md-open')) return i; + } + return -1; +}; + + + + + + + + + +})(); +(function(){ +"use strict"; + +/** + * @ngdoc directive + * @name mdMenuBar + * @module material.components.menu-bar + * @restrict E + * @description + * + * Menu bars are containers that hold multiple menus. They change the behavior and appearence + * of the `md-menu` directive to behave similar to an operating system provided menu. + * + * @usage + * + * + * + * + * + * + * + * Share... + * + * + * + * + * + * + * New + * + * Document + * Spreadsheet + * Presentation + * Form + * Drawing + * + * + * + * + * + * + * + * + * ## Menu Bar Controls + * + * You may place `md-menu-items` that function as controls within menu bars. + * There are two modes that are exposed via the `type` attribute of the `md-menu-item`. + * `type="checkbox"` will function as a boolean control for the `ng-model` attribute of the + * `md-menu-item`. `type="radio"` will function like a radio button, setting the `ngModel` + * to the `string` value of the `value` attribute. If you need non-string values, you can use + * `ng-value` to provide an expression (this is similar to how angular's native `input[type=radio]` works. + * + * + * + * + * + * + * Allow changes + * + * Mode 1 + * Mode 2 + * Mode 3 + * + * + * + * + * + * + * ### Nesting Menus + * + * Menus may be nested within menu bars. This is commonly called cascading menus. + * To nest a menu place the nested menu inside the content of the `md-menu-item`. + * + * + * + *
    ');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 p.disableScrollAround._enableScrolling}}function i(){var e=d.parentNode,t=e.getAttribute("style")||"",n=d.getAttribute("style")||"",o=p.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(p.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)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=p.now();(!n||i-n>t)&&(e.apply(o,r),n=i)}},time:function(e){var t=p.now();return e(),p.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++},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){for(var o=0,r=e.length;r>o;o++)if(e[o].nodeName.toLowerCase()===n)return t.element(e[o]);return 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){function n(){var e=o.queue,t=o.digest;o.queue=[],o.timeout=null,o.digest=!1,e.forEach(function(e){e()}),t&&d.$digest()}var o=p.nextTick,r=o.timeout,a=o.queue||[];return a.push(e),null==t&&(t=!0),o.digest=o.digest||t,o.queue=a,r||(o.timeout=i(n,0,!1))},processTemplate:function(e){return h?e:e&&t.isString(e)?e.replace(/\{\{/g,m).replace(/}}/g,u):e}};return p.dom.animator=c(p),p}var r=0;t.module("material.core").factory("$mdUtil",o),o.$inject=["$document","$timeout","$compile","$rootScope","$$mdAnimate","$interpolate"],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=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),s.show(t.extend({},l,e))}function i(t,n){var r={};return r[e]=m,o.invoke(t||function(){return n},{},r)}var a,l,s=n(),m={hide:s.hide,cancel:s.cancel,show:r};return a=c.methods||[],l=i(c.optionsFactory,{}),t.forEach(d,function(e,t){m[t]=e}),t.forEach(c.presets,function(e,n){function o(e){this._options=t.extend({},r,e)}var r=i(e.optionsFactory,{}),d=(e.methods||[]).concat(a);if(t.extend(r,{$type:n}),t.forEach(d,function(e){o.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var c="show"+n.charAt(0).toUpperCase()+n.slice(1);m[c]=function(e){var t=m[n](e);return m.show(t)}}m[n]=function(n){return arguments.length&&e.argOption&&!t.isObject(n)&&!t.isArray(n)?(new o)[e.argOption](n):new o(n)}}),m}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){return function(){function m(e){var t=new p(e),n=E.length?f.hide():o.when(!0);return n["finally"](function(){E.push(t),t.show()["catch"](function(e){})}),t.deferred.promise}function u(e){var t=E.shift();return t?(t.remove(e||b,!1)["catch"](function(e){}),t.deferred.promise):o.when(e)}function h(e){var t=E.shift();return t?(t.remove(e||g,!0)["catch"](function(e){}),t.deferred.promise):o.when(e)}function p(m){function u(){return o(function(e,t){function n(e){y.deferred.reject(e),t(e)}g(m).then(function(t){A=b(t,m),C=$(A,m,t.controller).then(e,n)})})}function h(e,t){return m.cancelAutoHide&&m.cancelAutoHide(),o(function(n,r){function i(){y.deferred.resolve(e),n(e)}function a(e){y.deferred.reject(e),r(e)}o.when(C)["finally"](function(){M(m.element,m).then(function(){t&&a(e)||i()},a)})})}function p(e){return e=e||{},e.template&&(e.template=c.processTemplate(e.template)),t.extend({preserveScope:!1,cancelAutoHide:t.noop,scope:e.scope||r.$new(e.isolateScope),onShow:function(e,t,n){return d.enter(t,n.parent)},onRemove:function(e,t){return t&&d.leave(t)||o.when()}},e)}function g(e){var t=e.skipCompile?null:l.compile(e);return t||o(function(t){t({locals:{},link:function(){return e.element}})})}function b(e,n){t.extend(e.locals,n);var o=e.link(n.scope);return n.element=o,n.parent=E(o,n),n.themable&&s(o),o}function E(n,o){var r=o.parent;if(r=t.isFunction(r)?r(o.scope,n,o):t.element(t.isString(r)?e[0].querySelector(r):r),!(r||{}).length){var i;return a[0]&&a[0].querySelector&&(i=a[0].querySelector(":not(svg) > body")),i||(i=a[0]),"#comment"==i.nodeName&&(i=e[0].body),t.element(i)}return r}function v(){var e,o=t.noop;m.hideDelay&&(e=i(f.hide,m.hideDelay),o=function(){i.cancel(e)}),m.cancelAutoHide=function(){o(),m.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),v(),t(e)},a)}catch(d){a(d.message)}})}function M(e,n){var r=n.onRemoving||t.noop;return o(function(t,i){try{var a=o.when(e?n.onRemove(n.scope,e,n):!0);r(e,a),a.then(function(){!n.preserveScope&&n.scope.$destroy(),t(e)},i)}catch(d){i(d.message)}})}var y,A,C=o.when(!0);return m=p(m),y={options:m,deferred:o.defer(),show:u,remove:h}}var f,g=!1,b=!0,E=[];return f={show:m,hide:u,cancel:h}}}return e.$get=o,o.$inject=["$document","$q","$rootScope","$timeout","$rootElement","$animate","$mdUtil","$mdCompiler","$mdTheming","$log"],e}t.module("material.core").provider("$$interimElement",e)}(),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(n,r,i){var a=o(r);return e.attach(n,r,t.extend(a,i))}function o(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:n}}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=!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(){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.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))}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()}}(),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),$.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-("+$.join("|")+")","g");$.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(h),0);t=$[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=$[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[M]+=e}),t.forEach(m,function(e){u[e.name]||($.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)"),$=["primary","accent","warn","background"],M="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":"300","hue-2":"600","hue-3":"900"}};$.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"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.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.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(e,t){var i=[],l=$(e);t.transitionStyle&&i.push([a+"transition",t.transitionStyle]),t.keyframeStyle&&i.push([a+"animation",t.keyframeStyle]),t.delay&&i.push([a+"transition-delay",t.delay+"s"]),t.duration&&i.push([a+"transition-duration",t.duration+"s"]);var s=t.keyframeStyle||t.to&&(t.duration>0||t.transitionStyle),u=!!t.addClass||!!t.removeClass,f=s||u;M(e,!0),E(e,t);var y,A,C=!1;return{close:close,start:function(){function s(){return C?void 0:(C=!0,y&&A&&e.off(y,A),h(e,t),b(e,t),r(i,function(e){l.style[o(e[0])]=""}),u.complete(!0),u)}var u=new n;return g(function(){if(M(e,!1),!f)return s();r(i,function(e){var t=e[0],n=e[1];l.style[o(t)]=n}),h(e,t);var n=p(e);if(0===n.duration)return s();var u=[];t.easing&&(n.transitionDuration&&u.push([a+"transition-timing-function",t.easing]),n.animationDuration&&u.push([a+"animation-timing-function",t.easing])),t.delay&&n.animationDelay&&u.push([a+"animation-delay",t.delay+"s"]),t.duration&&n.animationDuration&&u.push([a+"animation-duration",t.duration+"s"]),r(u,function(e){var t=e[0],n=e[1];l.style[o(t)]=n,i.push(e)});var g=n.delay,b=1e3*g,E=n.duration,$=1e3*E,C=Date.now();y=[],n.transitionDuration&&y.push(d),n.animationDuration&&y.push(c),y=y.join(" "),A=function(e){e.stopPropagation();var t=e.originalEvent||e,n=t.timeStamp||Date.now(),o=parseFloat(t.elapsedTime.toFixed(3));Math.max(n-C,0)>=b&&o>=E&&s()},e.on(y,A),v(e,t),m(s,b+1.5*$,!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=$(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),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(){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:{},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,c,l,s,m,u){c(e),this.items={length:2e3},this.$animate=o,this.$q=r,this.$mdInkRipple=m,this.$mdUtil=u,this.keyCode=i.KEY_CODE,this.dateUtil=l,this.dateLocale=s,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(),d=d||this.dateUtil.incrementMonths(this.today,-this.items.length/2),this.id=a++,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="md-calendar-selected-date",i="md-focus",a=0,d=null;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&&(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(d,this.selectedDate||this.today)},n.prototype.scrollToMonth=function(e){if(this.dateUtil.isValidDate(e)){var t=this.dateUtil.getMonthDistance(d,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(i);var o=this.getDateId(t),r=document.getElementById(o);r?(r.classList.add(i),r.focus()):this.focusDate=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(r),o.setAttribute("aria-selected","false"))}if(e){var i=document.getElementById(t.getDateId(e));i&&(i.classList.add(r),i.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=document.createElement("tr"),t=0;7>t;t++){var n=document.createElement("th");n.textContent=this.dateLocale.shortDays[t],e.appendChild(n)}this.$element.find("thead").append(e)},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=-e.items.length/2+this.offset,n=this.dateUtil.incrementMonths(e.today,t);this.$element.empty(),this.$element.append(this.buildCalendarForMonth(n)),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){var i=document.createElement("span");n.appendChild(i),i.classList.add("md-calendar-date-selection-indicator"),i.textContent=this.dateLocale.dates[e.getDate()],n.setAttribute("tabindex","-1"),n.setAttribute("aria-label",this.dateLocale.longDateFormatter(e)),n.id=t.getDateId(e),n.addEventListener("click",t.cellClickHandler),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")),t.focusDate&&this.dateUtil.isSameDay(e,t.focusDate)&&(this.focusAfterAppend=n)}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=n.getDay(),r=this.dateUtil.getNumberOfDaysInMonth(t),i=document.createDocumentFragment(),a=1,d=this.buildDateRow(a); - -i.appendChild(d);var c=0,l=document.createElement("td");if(l.classList.add("md-calendar-month-label"),2>=o){l.setAttribute("colspan","7");var s=this.buildDateRow();s.appendChild(l),i.insertBefore(s,d)}else c=2,l.setAttribute("colspan","2"),d.appendChild(l);l.textContent=this.dateLocale.monthHeaderFormatter(t);for(var m=c;o>m;m++)d.appendChild(this.buildDateCell());for(var u=o,h=n,p=1;r>=p;p++){7===u&&(u=0,a++,d=this.buildDateRow(a),i.appendChild(d)),h.setDate(p);var f=this.buildDateCell(h);d.appendChild(f),u++}for(;d.childNodes.length<7;)d.appendChild(this.buildDateCell());for(;i.childNodes.length<6;){for(var g=this.buildDateRow(),m=0;7>m;m++)g.appendChild(this.buildDateCell());i.appendChild(g)}return i}}()}(),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.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){return e?e.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,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 e(){return{template:'
    ',require:["ngModel","mdDatepicker"],scope:{placeholder:"@mdPlaceholder"},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,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.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),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",e);var o=3,r="md-datepicker-invalid",i=500;n.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],n.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()}},n.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(r)});var n=t.element(e.inputElement);n.on("input",t.bind(e,e.resizeInputElement)),n.on("input",e.$mdUtil.debounce(e.handleInputEvent,i,e))},n.prototype.attachInteractionListeners=function(){var e=this,n=this.$scope,o=this.$mdConstant.KEY_CODE;t.element(e.inputElement).on("keydown",function(t){t.altKey&&t.keyCode==o.DOWN_ARROW&&(e.openCalendarPane(t),n.$digest())}),n.$on("md-calendar-close",function(){e.closeCalendarPane()})},n.prototype.installPropertyInterceptors=function(){var e=this;this.$attrs.ngDisabled&&this.$element.scope().$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||""}})},n.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.calendarButton.disabled=e},n.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+o},n.prototype.handleInputEvent=function(){var e=this.inputElement.value,t=this.dateLocale.parseDate(e);this.dateUtil.isValidDate(t)&&this.dateLocale.isDateComplete(e)?(this.ngModelCtrl.$setViewValue(t),this.date=t,this.inputContainer.classList.remove(r)):this.inputContainer.classList.toggle(r,e)},n.prototype.attachCalendarPane=function(){var e=this.calendarPane;this.$element.addClass("md-datepicker-open");var t=this.inputContainer.getBoundingClientRect(),n=document.body.getBoundingClientRect();e.style.left=t.left-n.left+"px",e.style.top=t.top-n.top+"px",document.body.appendChild(this.calendarPane),this.inputMask.style.left=t.width+"px",this.$$rAF(function(){e.classList.add("md-pane-open")})},n.prototype.detachCalendarPane=function(){this.$element.removeClass("md-datepicker-open"),this.calendarPane.classList.remove("md-pane-open"),this.calendarPane.parentNode&&this.calendarPane.parentNode.removeChild(this.calendarPane)},n.prototype.openCalendarPane=function(e){if(!this.isCalendarOpen&&!this.isDisabled){this.isCalendarOpen=!0,this.calendarPaneOpenedFrom=e.target,this.attachCalendarPane(),this.focusCalendar(),this.$mdUtil.disableScrollAround(this.calendarPane);var t=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",t.bodyClickHandler)},!1)}},n.prototype.closeCalendarPane=function(){this.isCalendarOpen=!1,this.detachCalendarPane(),this.calendarPaneOpenedFrom.focus(),this.calendarPaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler)},n.prototype.getCalendarCtrl=function(){return t.element(this.calendarPane.querySelector("md-calendar")).controller("mdCalendar")},n.prototype.focusCalendar=function(){var e=this;this.$mdUtil.nextTick(function(){e.getCalendarCtrl().focus()},!1)},n.prototype.setFocused=function(e){this.isFocused=e},n.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 g((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 o.setDate(ro.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}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 n=o.extractElementByName(n,"md-dialog"),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){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function m(e,n){var o={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},o,n.origin||{});var r=t.element((n.targetEvent||{}).target);r&&r.length&&(n.origin.element=r,n.origin.bounds=r[0].getBoundingClientRect(),n.origin.focus=function(){r.focus()}),n.parent=t.element(n.parent||c)}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.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(){n.backdrop&&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'+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"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],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(){H.direction=H.direction||"down",H.isOpen=H.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(){I=[]}function s(e){var n,o,r,i=0;do o=e.map(function(e){return e.replace("?","")}),n=t.equals(I,o),n||(e=m(e),r=e.length>=I.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 I.push(e.type),s(["mousedown","focusout?","focusin?","mouseup","click"])?(N(e),void l()):s(["touchstart?","touchend?","click"])?(N(e),void l()):s(["focusin"])?(H.open(),void l()):s(["focusout"])?(H.close(),void l()):void h()}function h(){D&&e.clearTimeout(D),D=e.setTimeout(function(){l()},250)}function p(){H.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=S()),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 H.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 $(e){y(e,-1)}function M(e){y(e,1)}function y(e,n){var o=S()[0].querySelectorAll(".md-fab-action-item");t.forEach(o,function(e){t.element(t.element(e).children()[0]).attr("tabindex",-1)}),H.currentActionIndex=H.currentActionIndex+n,H.currentActionIndex=Math.min(o.length-1,H.currentActionIndex),H.currentActionIndex=Math.max(0,H.currentActionIndex);var r=t.element(o[H.currentActionIndex]).children()[0];t.element(r).attr("tabindex",0),r.focus(),e.preventDefault(),e.stopImmediatePropagation()}function A(e){"left"===H.direction?M(e):$(e)}function C(e){"down"===H.direction?$(e):M(e)}function T(e){"left"===H.direction?$(e):M(e)}function k(e){"up"===H.direction?$(e):M(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)&&H.toggle(),x(e.target)&&H.close()}function _(){return o.find("md-fab-trigger")}function S(){return o.find("md-fab-actions")}var H=this;H.open=function(){n.$evalAsync("vm.isOpen = true")},H.close=function(){n.$evalAsync("vm.isOpen = false"),o.find("md-fab-trigger")[0].focus()},H.toggle=function(){n.$evalAsync("vm.isOpen = !vm.isOpen")},d(),c(),f(),g();var D,I=[]}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:M(),rowHeight:$(),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 $(){var e=i.getResponsiveAttribute(d,"md-row-height");switch(M()){case"fixed":return y(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function M(){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(){function e(e,t,n){function o(o,r,i){function a(){var e=r.parent();return e.attr("aria-label")||e.text()?!0:e.parent().attr("aria-label")||e.parent().text()?!0:!1}function d(){function t(){return!o.fontIcon&&!o.fontSet}o.svgIcon||o.svgSrc||(o.fontIcon&&r.addClass("md-font "+o.fontIcon),o.fontSet&&r.addClass(e.fontSet(o.fontSet)),t()&&r.addClass(e.fontSet()))}t(r),d();var c=i.alt||o.fontIcon||o.svgIcon||r.text(),l=i.$normalize(i.$attr.mdSvgIcon||i.$attr.mdSvgSrc||"");i["aria-label"]||(""==c||a()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),l&&i.$observe(l,function(t){r.empty(),t&&e(t).then(function(e){r.append(e)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",link:o}}t.module("material.components.icon",["material.core"]).directive("mdIcon",e),e.$inject=["$mdIcon","$mdTheming","$mdAria"]}(),function(){function e(){}function n(e,t){this.url=e,this.viewBoxSize=t||r.defaultViewBoxSize}function o(e,n,o,r,i){function a(t){if(t=t||"",b[t])return o.when(b[t].clone());if(E.test(t))return m(t).then(c(t));-1==t.indexOf(":")&&(t="$default:"+t);var n=e[t]?l:s;return n(t).then(c(t))}function d(n){var o=t.isUndefined(n)||!(n&&n.length);if(o)return e.defaultFontSet;var r=n;return t.forEach(e.fontSets,function(e){e.alias==n&&(r=e.fontSet||r)}),r}function c(t){return function(n){return b[t]=h(n)?n:new p(n,e[t]),b[t].clone()}}function l(t){var n=e[t];return m(n.url).then(function(e){return new p(e,n)})}function s(t){function n(e){var n=t.slice(t.lastIndexOf(":")+1),o=e.querySelector("#"+n);return o?new p(o,d):i(t)}function i(e){var t="icon "+e+" not found";return r.warn(t),o.reject(t||e)}var a=t.substring(0,t.lastIndexOf(":"))||"$default",d=e[a];return d?m(d.url).then(n):i(t)}function m(e){return n.get(e,{cache:i}).then(function(e){return t.element("
    ").append(e.data).find("svg")[0]})["catch"](u)}function u(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;return r.warn(n),o.reject(n)}function h(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function p(e,n){"svg"!=e.tagName&&(e=t.element('').append(e)[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function f(){var n=this.config?this.config.viewBoxSize:e.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+n+" "+n},function(e,t){this.element.setAttribute(t,e)},this),t.forEach({"pointer-events":"none",display:"block"},function(e,t){this.element.style[t]=e},this)}function g(){return this.element.cloneNode(!0)}var b={},E=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return p.prototype={clone:g,prepare:f},a.fontSet=d,a}t.module("material.components.icon").provider("$mdIcon",e);var r={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};e.prototype={icon:function(e,t,o){return-1==e.indexOf(":")&&(e="$default:"+e),r[e]=new n(t,o),this},iconSet:function(e,t,o){return r[e]=new n(t,o),this},defaultIconSet:function(e,t){var o="$default";return r[o]||(r[o]=new n(e,t)),r[o].viewBoxSize=t||r.defaultViewBoxSize,this; - -},defaultViewBoxSize:function(e){return r.defaultViewBoxSize=e,this},fontSet:function(e,t){return r.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return r.defaultFontSet=e?e:"",this},defaultIconSize:function(e){return r.defaultIconSize=e,this},preloadIcons:function(e){var t=this,n=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:''},{id:"md-close",url:"md-close.svg",svg:''},{id:"md-cancel",url:"md-cancel.svg",svg:''},{id:"md-menu",url:"md-menu.svg",svg:''},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:''},{id:"md-calendar",url:"md-calendar.svg",svg:''}];n.forEach(function(n){t.icon(n.id,n.url),e.put(n.url,n.svg)})},$get:["$http","$q","$log","$templateCache",function(e,t,n,i){return this.preloadIcons(i),o(r,e,t,n,i)}]}}(),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.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=0/0,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*
    ');r.$set("ngTrim","false"),l.element.append(s),c.$formatters.push(a),c.$viewChangeListeners.push(a),o.on("input keydown",function(){a()}),n.$watch(r.mdMaxlength,function(n){d=n,t.isNumber(n)&&n>0?(s.parent().length||e.enter(s,l.element,t.element(l.element[0].lastElementChild)),a()):e.leave(s)}),c.$validators["md-maxlength"]=function(e,n){return!t.isNumber(d)||0>d?!0:(e||o.val()||n||"").length<=d}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function i(e){function n(n,o,r,i){if(i&&!t.isDefined(i.element.attr("md-no-float"))){var a=r.placeholder;if(o.removeAttr("placeholder"),0==i.element.find("label").length){if(i.input&&"MD-SELECT"!=i.input[0].nodeName){var d='";i.element.addClass("md-icon-float"),i.element.prepend(d)}}else"MD-SELECT"!=o[0].nodeName&&e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",e).directive("label",n).directive("input",o).directive("textarea",o).directive("mdMaxlength",r).directive("placeholder",i),e.$inject=["$mdTheming","$parse"],o.$inject=["$mdUtil","$window","$mdAria"],r.$inject=["$animate"],i.$inject=["$log"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,o){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(i,a){function d(){for(var e,t,n=["md-switch","md-checkbox"],o=0;t=n[o];++o)if((e=i.find(t)[0])&&!e.hasAttribute("aria-label")){var r=i.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}function c(n){var o;if("div"==n)o=t.element('
    '),o.append(i.contents()),i.addClass("md-proxy-focus");else{o=t.element('
    ');var r=["ng-click","aria-label","ng-disabled"];t.forEach(r,function(e){i[0].hasAttribute(e)&&(o[0].setAttribute(e,i[0].getAttribute(e)),i[0].removeAttribute(e))}),o.children().eq(0).append(i.contents())}if(i[0].setAttribute("tabindex","-1"),i.append(o),h&&h.hasAttribute("ng-click")){e.expect(h,"aria-label");var d=t.element('');d.attr("ng-click",h.getAttribute("ng-click")),h.removeAttribute("ng-click"),h.setAttribute("tabindex","-1"),h.classList.remove("md-secondary"),d.append(h),h=d[0]}h&&(h.hasAttribute("ng-click")||a.ngClick&&l(h))&&(i.addClass("md-with-secondary"),i.append(h))}function l(e){return-1!=r.indexOf(e.nodeName.toLowerCase())}function s(e,i,a,d){function c(){var e=i.children();e.length&&!e[0].hasAttribute("ng-click")&&t.forEach(r,function(e){t.forEach(m.querySelectorAll(e),function(e){s.push(e)})})}function l(){(s.length||u)&&(i.addClass("md-clickable"),d.attachRipple(e,t.element(i[0].querySelector(".md-no-style"))))}var s=[],m=i[0].firstElementChild,u=m&&m.hasAttribute("ng-click");c(),l(),i.hasClass("md-proxy-focus")&&s.length&&t.forEach(s,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,o(function(){e.mouseActive=!1},100)}).on("focus",function(){e.mouseActive===!1&&i.addClass("md-focused"),n.on("blur",function t(){i.removeClass("md-focused"),n.off("blur",t)})})}),u||s.length||m&&m.addEventListener("keypress",function(e){if("INPUT"!=e.target.nodeName&&"TEXTAREA"!=e.target.nodeName){var t=e.which||e.keyCode;t==n.KEY_CODE.SPACE&&m&&(m.click(),e.preventDefault(),e.stopPropagation())}}),i.off("click"),i.off("keypress"),s.length&&m&&i.children().eq(0).on("click",function(e){m.contains(e.target)&&t.forEach(s,function(n){e.target===n||n.contains(e.target)||t.element(n).triggerHandler("click")})})}var m,u,h=i[0].querySelector(".md-secondary");if(i[0].setAttribute("role","listitem"),a.ngClick)c("button");else{for(var p,f=0;p=r[f];++f)if(u=i[0].querySelector(p)){m=!0;break}m?c("div"):i[0].querySelector("md-button")||i.addClass("md-no-proxy")}return d(),s}}}function o(e,t,n){function o(e,t){var o={};n.attach(e,t,o)}var r=this;r.attachRipple=o}t.module("material.components.list",["material.core"]).controller("MdListController",o).directive("mdList",e).directive("mdListItem",n),e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$timeout"],o.$inject=["$scope","$element","$mdListInkRipple"]}(),function(){function e(){function e(e){e.addClass("md-menu");var t=e.children()[0];if(t.hasAttribute("ng-click")||(t=t.querySelector("[ng-click],[ng-mouseenter]")),2!=e.children().length)throw Error(o+"Expected two children elements.");return t&&t.setAttribute("aria-haspopup","true"),n}function n(e,n,o,r){var i=t.element('
    '),a=n.children()[1];i.append(a),r.init(i),e.$on("$destroy",function(){i.remove(),r.close()})}var o="Invalid HTML for md-menu: ";return{restrict:"E",require:"mdMenu",controller:"mdMenuCtrl",scope:!0,compile:e}}function n(e,n,o,r){function i(e){s=e,m=o[0].querySelector("[ng-click],[ng-mouseenter]")}function a(t){t&&t.stopPropagation(),m=m||(t?t.target:o[0]),m.setAttribute("aria-expanded","true"),u.isOpen=!0,e.show({scope:r,mdMenuCtrl:u,element:s,target:m})}function d(t){u.isOpen&&(u.isOpen=!1,m&&m.setAttribute("aria-expanded","false"),e.hide(),t||o.children()[0].focus())}function c(){var e=(n.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}}function l(){var e=(n.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format or ")}var s,m,u=this;this.init=t.bind(this,i),this.open=t.bind(this,a),this.close=t.bind(this,d),this.positionMode=t.bind(this,c),this.offsets=t.bind(this,l),r.$mdOpenMenu=this.open}t.module("material.components.menu",["material.core","material.components.backdrop"]).directive("mdMenu",e).controller("mdMenuCtrl",n),n.$inject=["$mdMenu","$attrs","$element","$scope"]}(),function(){function e(e){function o(e,o,i,a,d,c,l,s,m){function u(t,n,o){return o.disableParentScroll&&!e.getClosest(o.target,"MD-DIALOG")?o.restoreScroll=e.disableScrollAround(o.element,o.parent):o.disableParentScroll=!1,o.hasBackdrop&&(o.backdrop=e.createBackdrop(t,"md-menu-backdrop md-click-catcher"),m.enter(o.backdrop,o.parent)),function(){o.backdrop&&m.leave(o.backdrop,{duration:0}),o.disableParentScroll&&o.restoreScroll()}}function h(e,t,n){return n.cleanupInteraction(),n.cleanupResizing(),n.hideBackdrop(),s(t,{addClass:"md-leave"}).start().then(function(){t.removeClass("md-active"),b(t,n),n.alreadyOpen=!1})}function p(e,n,r){function a(){return r.parent.append(n),c(function(e){var t=E(n,r);n.removeClass("md-leave"),s(n,{addClass:"md-active",from:v.toCss(t),to:v.toCss({transform:"scale(1.0,1.0)"})}).start().then(e)})}function m(){if(!r.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(r,{alreadyOpen:!1,isRemoved:!1,target:t.element(r.target),parent:t.element(r.parent),menuContentEl:t.element(n[0].querySelector("md-menu-content"))})}function h(){var e=function(e,t){return l.throttle(function(){if(!r.isRemoved){var n=E(e,t);e.css(v.toCss(n))}})}(n,r);return d.addEventListener("resize",e),d.addEventListener("orientationchange",e),function(){d.removeEventListener("resize",e),d.removeEventListener("orientationchange",e)}}function p(){function t(t){e.$apply(function(){var e=i.KEY_CODE;switch(t.keyCode){case e.ESCAPE:r.mdMenuCtrl.close(),t.stopPropagation();break;case e.UP_ARROW:f(t,r.menuContentEl,r,-1),t.stopPropagation();break;case e.DOWN_ARROW:f(t,r.menuContentEl,r,1),t.stopPropagation()}})}function o(t){t.preventDefault(),t.stopPropagation(),e.$apply(function(){r.mdMenuCtrl.close(!0)})}function a(t){function n(){e.$apply(function(){r.mdMenuCtrl.close()})}function o(e,t){if(!e)return!1;for(var n,o=0;n=t[o];++o)for(var r,i=[n,"data-"+n,"x-"+n],a=0;r=i[a];++a)if(e.hasAttribute(r))return!0;return!1}var i=t.target;do{if(i==r.menuContentEl[0])return;if(o(i,["ng-click","ng-href","ui-sref"])){i.hasAttribute("disabled")||n();break}}while(i=i.parentNode)}n.addClass("md-clickable"),r.backdrop&&r.backdrop.on("click",o),r.menuContentEl.on("keydown",t),r.menuContentEl[0].addEventListener("click",a,!0);var d=r.menuContentEl[0].querySelector("[md-menu-focus-target]")||r.menuContentEl[0].firstElementChild.firstElementChild;return d.focus(),function(){n.removeClass("md-clickable"),r.backdrop&&r.backdrop.off("click",o),r.menuContentEl.off("keydown",t),r.menuContentEl[0].removeEventListener("click",a,!0)}}return m(r),o.inherit(r.menuContentEl,r.target),r.cleanupResizing=h(),r.hideBackdrop=u(e,n,r),a().then(function(e){return r.alreadyOpen=!0,r.cleanupInteraction=p(),e})}function f(t,n,o,r){for(var i=e.getClosest(t.target,"MD-MENU-ITEM"),a=e.nodesToArray(n[0].children),d=a.indexOf(i),c=d+r;c>=0&&c
    ',compile:n}}t.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(),function(){function e(e,o,r){function i(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),a}function a(i,a,c){r(a);var l=a[0].querySelector(".md-bar1").style,s=a[0].querySelector(".md-bar2").style,m=t.element(a[0].querySelector(".md-container"));c.$observe("value",function(e){if("query"!=c.mdMode){var t=d(e);a.attr("aria-valuenow",t),s[o.CSS.TRANSFORM]=n[t]}}),c.$observe("mdBufferValue",function(e){l[o.CSS.TRANSFORM]=n[d(e)]}),e(function(){m.addClass("md-ready")})}function d(e){return e>100?100:0>e?0:Math.ceil(e||0)}return{restrict:"E",template:'
    ',compile:i}}t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e),e.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function e(e){var t=e/100,n=(e-100)/2;return"translateX("+n.toString()+"%) scale("+t.toString()+", 1)"}for(var t=new Array(101),n=0;101>n;n++)t[n]=e(n);return t}()}(),function(){function e(e,n,o,r){function i(i,a,d,c){function l(){a.hasClass("md-focused")||a.addClass("md-focused")}function s(o){var r=o.which||o.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:o.preventDefault(),m.selectPrevious(),l();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:o.preventDefault(),m.selectNext(),l();break;case n.KEY_CODE.ENTER:var i=t.element(e.getClosest(a[0],"form"));i.length>0&&i.triggerHandler("submit")}}o(a);var m=c[0],u=c[1]||e.fakeNgModel();m.init(u),i.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",s).on("mousedown",function(e){i.mouseActive=!0,r(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&m.$element.addClass("md-focused")}).on("blur",function(){m.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function d(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,o){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var i=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),d=r[0>o?"previous":"next"](a,i)||r.first();t.element(d).triggerHandler("click")}}return a.prototype=d(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:i}}}function n(e,t,n){function o(o,i,a,d){function c(e){i[0].hasAttribute("disabled")||o.$apply(function(){d.setViewValue(a.value,e&&e.type)})}function l(){var e=d.getViewValue()==a.value;e!==m&&(m=e,i.attr("aria-checked",e),e?(i.addClass(r),d.setActiveDescendant(i.attr("id"))):i.removeClass(r))}function s(n,o){function r(){return a.id||"radio_"+t.nextUid()}o.ariaId=r(),n.attr({id:o.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var m;n(i),s(i,o),d.add(l),a.$observe("value",l),i.on("click",c).on("$destroy",function(){d.remove(l)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'
    ',link:o}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n),e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"]}(),function(){function e(e,o,r,i,a,d,c){function l(a,l){var s=t.element("");if(s.append(''),s.addClass("md-select-value"),s[0].hasAttribute("id")||s.attr("id","select_value_label_"+o.nextUid()),a.find("md-content").length||a.append(t.element("").append(a.contents())),l.mdOnOpen&&(a.find("md-content").prepend(t.element('
    ')),a.find("md-option").attr("ng-show","$$loadingAsyncDone")),l.name){var m=t.element(',
    +
    +
    @@ -6404,7 +6842,7 @@ function $TemplateCacheProvider() { * @param {string|DOMElement} element Element or HTML string to compile into a template function. * @param {function(angular.Scope, cloneAttachFn=)} transclude function available to directives - DEPRECATED. * - *
    + *
    * **Note:** Passing a `transclude` function to the $compile function is deprecated, as it * e.g. will not use the right outer scope. Please pass the transclude function as a * `parentBoundTranscludeFn` to the link function instead. @@ -6419,7 +6857,7 @@ function $TemplateCacheProvider() { * * `cloneAttachFn` - If `cloneAttachFn` is provided, then the link function will clone the * `template` and call the `cloneAttachFn` function allowing the caller to attach the * cloned elements to the DOM document at the appropriate place. The `cloneAttachFn` is - * called as:
    `cloneAttachFn(clonedElement, scope)` where: + * called as:
    `cloneAttachFn(clonedElement, scope)` where: * * * `clonedElement` - is a clone of the original `element` passed into the compiler. * * `scope` - is the current scope with which the linking function is working with. @@ -6492,7 +6930,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // 'on' and be composed of only English letters. var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; - function parseIsolateBindings(scope, directiveName) { + function parseIsolateBindings(scope, directiveName, isController) { var LOCAL_REGEXP = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/; var bindings = {}; @@ -6502,9 +6940,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (!match) { throw $compileMinErr('iscp', - "Invalid isolate scope definition for directive '{0}'." + + "Invalid {3} for directive '{0}'." + " Definition: {... {1}: '{2}' ...}", - directiveName, scopeName, definition); + directiveName, scopeName, definition, + (isController ? "controller bindings definition" : + "isolate scope definition")); } bindings[scopeName] = { @@ -6518,12 +6958,53 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return bindings; } + function parseDirectiveBindings(directive, directiveName) { + var bindings = { + isolateScope: null, + bindToController: null + }; + if (isObject(directive.scope)) { + if (directive.bindToController === true) { + bindings.bindToController = parseIsolateBindings(directive.scope, + directiveName, true); + bindings.isolateScope = {}; + } else { + bindings.isolateScope = parseIsolateBindings(directive.scope, + directiveName, false); + } + } + if (isObject(directive.bindToController)) { + bindings.bindToController = + parseIsolateBindings(directive.bindToController, directiveName, true); + } + if (isObject(bindings.bindToController)) { + var controller = directive.controller; + var controllerAs = directive.controllerAs; + if (!controller) { + // There is no controller, there may or may not be a controllerAs property + throw $compileMinErr('noctrl', + "Cannot bind to controller without directive '{0}'s controller.", + directiveName); + } else if (!identifierForController(controller, controllerAs)) { + // There is a controller, but no identifier or controllerAs property + throw $compileMinErr('noident', + "Cannot bind to controller without identifier for directive '{0}'.", + directiveName); + } + } + return bindings; + } + function assertValidDirectiveName(name) { var letter = name.charAt(0); if (!letter || letter !== lowercase(letter)) { throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name); } - return name; + if (name !== name.trim()) { + throw $compileMinErr('baddir', + "Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces", + name); + } } /** @@ -6564,9 +7045,12 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { directive.name = directive.name || name; directive.require = directive.require || (directive.controller && directive.name); directive.restrict = directive.restrict || 'EA'; - if (isObject(directive.scope)) { - directive.$$isolateBindings = parseIsolateBindings(directive.scope, directive.name); + var bindings = directive.$$bindings = + parseDirectiveBindings(directive, directive.name); + if (isObject(bindings.isolateScope)) { + directive.$$isolateBindings = bindings.isolateScope; } + directive.$$moduleName = directiveFactory.$$moduleName; directives.push(directive); } catch (e) { $exceptionHandler(e); @@ -6899,7 +7383,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { listeners.push(fn); $rootScope.$evalAsync(function() { - if (!listeners.$$inter && attrs.hasOwnProperty(key)) { + if (!listeners.$$inter && attrs.hasOwnProperty(key) && !isUndefined(attrs[key])) { // no one registered attribute interpolation function, so lets call it manually fn(attrs[key]); } @@ -7127,14 +7611,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (nodeLinkFn.scope) { childScope = scope.$new(); compile.$$addScopeInfo(jqLite(node), childScope); + var destroyBindings = nodeLinkFn.$$destroyBindings; + if (destroyBindings) { + nodeLinkFn.$$destroyBindings = null; + childScope.$on('$destroyed', destroyBindings); + } } else { childScope = scope; } if (nodeLinkFn.transcludeOnThisElement) { childBoundTranscludeFn = createBoundTranscludeFn( - scope, nodeLinkFn.transclude, parentBoundTranscludeFn, - nodeLinkFn.elementTranscludeOnThisElement); + scope, nodeLinkFn.transclude, parentBoundTranscludeFn); } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) { childBoundTranscludeFn = parentBoundTranscludeFn; @@ -7146,7 +7634,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = null; } - nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn); + nodeLinkFn(childLinkFn, childScope, node, $rootElement, childBoundTranscludeFn, + nodeLinkFn); } else if (childLinkFn) { childLinkFn(scope, node.childNodes, undefined, parentBoundTranscludeFn); @@ -7155,7 +7644,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } } - function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn, elementTransclusion) { + function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) { var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) { @@ -7254,6 +7743,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } break; case NODE_TYPE_TEXT: /* Text Node */ + if (msie === 11) { + // Workaround for #11781 + while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) { + node.nodeValue = node.nodeValue + node.nextSibling.nodeValue; + node.parentNode.removeChild(node.nextSibling); + } + } addTextInterpolateDirective(directives, node.nodeValue); break; case NODE_TYPE_COMMENT: /* Comment */ @@ -7353,9 +7849,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { previousCompileContext = previousCompileContext || {}; var terminalPriority = -Number.MAX_VALUE, - newScopeDirective, + newScopeDirective = previousCompileContext.newScopeDirective, controllerDirectives = previousCompileContext.controllerDirectives, - controllers, newIsolateScopeDirective = previousCompileContext.newIsolateScopeDirective, templateDirective = previousCompileContext.templateDirective, nonTlbTranscludeDirective = previousCompileContext.nonTlbTranscludeDirective, @@ -7413,7 +7908,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (!directive.templateUrl && directive.controller) { directiveValue = directive.controller; - controllerDirectives = controllerDirectives || {}; + controllerDirectives = controllerDirectives || createMap(); assertNoDuplicate("'" + directiveName + "' controller", controllerDirectives[directiveName], directive, $compileNode); controllerDirectives[directiveName] = directive; @@ -7520,6 +8015,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nodeLinkFn = compileTemplateUrl(directives.splice(i, directives.length - i), $compileNode, templateAttrs, jqCollection, hasTranscludeDirective && childTranscludeFn, preLinkFns, postLinkFns, { controllerDirectives: controllerDirectives, + newScopeDirective: (newScopeDirective !== directive) && newScopeDirective, newIsolateScopeDirective: newIsolateScopeDirective, templateDirective: templateDirective, nonTlbTranscludeDirective: nonTlbTranscludeDirective @@ -7547,7 +8043,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true; nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective; - nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective; nodeLinkFn.templateOnThisElement = hasTemplate; nodeLinkFn.transclude = childTranscludeFn; @@ -7581,53 +8076,77 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { function getControllers(directiveName, require, $element, elementControllers) { - var value, retrievalMethod = 'data', optional = false; - var $searchElement = $element; - var match; + var value; + if (isString(require)) { - match = require.match(REQUIRE_PREFIX_REGEXP); - require = require.substring(match[0].length); + var match = require.match(REQUIRE_PREFIX_REGEXP); + var name = require.substring(match[0].length); + var inheritType = match[1] || match[3]; + var optional = match[2] === '?'; - if (match[3]) { - if (match[1]) match[3] = null; - else match[1] = match[3]; - } - if (match[1] === '^') { - retrievalMethod = 'inheritedData'; - } else if (match[1] === '^^') { - retrievalMethod = 'inheritedData'; - $searchElement = $element.parent(); - } - if (match[2] === '?') { - optional = true; + //If only parents then start at the parent element + if (inheritType === '^^') { + $element = $element.parent(); + //Otherwise attempt getting the controller from elementControllers in case + //the element is transcluded (and has no data) and to avoid .data if possible + } else { + value = elementControllers && elementControllers[name]; + value = value && value.instance; } - value = null; - - if (elementControllers && retrievalMethod === 'data') { - if (value = elementControllers[require]) { - value = value.instance; - } + if (!value) { + var dataName = '$' + name + 'Controller'; + value = inheritType ? $element.inheritedData(dataName) : $element.data(dataName); } - value = value || $searchElement[retrievalMethod]('$' + require + 'Controller'); if (!value && !optional) { throw $compileMinErr('ctreq', "Controller '{0}', required by directive '{1}', can't be found!", - require, directiveName); + name, directiveName); } - return value || null; } else if (isArray(require)) { value = []; - forEach(require, function(require) { - value.push(getControllers(directiveName, require, $element, elementControllers)); - }); + for (var i = 0, ii = require.length; i < ii; i++) { + value[i] = getControllers(directiveName, require[i], $element, elementControllers); + } } - return value; + + return value || null; } + function setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope) { + var elementControllers = createMap(); + for (var controllerKey in controllerDirectives) { + var directive = controllerDirectives[controllerKey]; + var locals = { + $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, + $element: $element, + $attrs: attrs, + $transclude: transcludeFn + }; - function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn) { + var controller = directive.controller; + if (controller == '@') { + controller = attrs[directive.name]; + } + + var controllerInstance = $controller(controller, locals, true, directive.controllerAs); + + // For directives with element transclusion the element is a comment, + // but jQuery .data doesn't support attaching data to comment nodes as it's hard to + // clean up (http://bugs.jquery.com/ticket/8335). + // Instead, we save the controllers for the element in a local hash and attach to .data + // later, once we have the actual element. + elementControllers[directive.name] = controllerInstance; + if (!hasElementTranscludeDirective) { + $element.data('$' + directive.name + 'Controller', controllerInstance.instance); + } + } + return elementControllers; + } + + function nodeLinkFn(childLinkFn, scope, linkNode, $rootElement, boundTranscludeFn, + thisLinkFn) { var i, ii, linkFn, controller, isolateScope, elementControllers, transcludeFn, $element, attrs; @@ -7651,126 +8170,53 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { } if (controllerDirectives) { - // TODO: merge `controllers` and `elementControllers` into single object. - controllers = {}; - elementControllers = {}; - forEach(controllerDirectives, function(directive) { - var locals = { - $scope: directive === newIsolateScopeDirective || directive.$$isolateScope ? isolateScope : scope, - $element: $element, - $attrs: attrs, - $transclude: transcludeFn - }, controllerInstance; - - controller = directive.controller; - if (controller == '@') { - controller = attrs[directive.name]; - } - - controllerInstance = $controller(controller, locals, true, directive.controllerAs); - - // For directives with element transclusion the element is a comment, - // but jQuery .data doesn't support attaching data to comment nodes as it's hard to - // clean up (http://bugs.jquery.com/ticket/8335). - // Instead, we save the controllers for the element in a local hash and attach to .data - // later, once we have the actual element. - elementControllers[directive.name] = controllerInstance; - if (!hasElementTranscludeDirective) { - $element.data('$' + directive.name + 'Controller', controllerInstance.instance); - } - - controllers[directive.name] = controllerInstance; - }); + elementControllers = setupControllers($element, attrs, transcludeFn, controllerDirectives, isolateScope, scope); } if (newIsolateScopeDirective) { + // Initialize isolate scope bindings for new isolate scope directive. compile.$$addScopeInfo($element, isolateScope, true, !(templateDirective && (templateDirective === newIsolateScopeDirective || templateDirective === newIsolateScopeDirective.$$originalDirective))); compile.$$addScopeClass($element, true); - - var isolateScopeController = controllers && controllers[newIsolateScopeDirective.name]; - var isolateBindingContext = isolateScope; - if (isolateScopeController && isolateScopeController.identifier && - newIsolateScopeDirective.bindToController === true) { - isolateBindingContext = isolateScopeController.instance; - } - - forEach(isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings, function(definition, scopeName) { - var attrName = definition.attrName, - optional = definition.optional, - mode = definition.mode, // @, =, or & - lastValue, - parentGet, parentSet, compare; - - switch (mode) { - - case '@': - attrs.$observe(attrName, function(value) { - isolateBindingContext[scopeName] = value; - }); - attrs.$$observers[attrName].$$scope = scope; - if (attrs[attrName]) { - // If the attribute has been provided then we trigger an interpolation to ensure - // the value is there for use in the link fn - isolateBindingContext[scopeName] = $interpolate(attrs[attrName])(scope); - } - break; - - case '=': - if (optional && !attrs[attrName]) { - return; - } - parentGet = $parse(attrs[attrName]); - if (parentGet.literal) { - compare = equals; - } else { - compare = function(a, b) { return a === b || (a !== a && b !== b); }; - } - parentSet = parentGet.assign || function() { - // reset the change, or we will throw this exception on every $digest - lastValue = isolateBindingContext[scopeName] = parentGet(scope); - throw $compileMinErr('nonassign', - "Expression '{0}' used with directive '{1}' is non-assignable!", - attrs[attrName], newIsolateScopeDirective.name); - }; - lastValue = isolateBindingContext[scopeName] = parentGet(scope); - var parentValueWatch = function parentValueWatch(parentValue) { - if (!compare(parentValue, isolateBindingContext[scopeName])) { - // we are out of sync and need to copy - if (!compare(parentValue, lastValue)) { - // parent changed and it has precedence - isolateBindingContext[scopeName] = parentValue; - } else { - // if the parent can be assigned then do so - parentSet(scope, parentValue = isolateBindingContext[scopeName]); - } - } - return lastValue = parentValue; - }; - parentValueWatch.$stateful = true; - var unwatch; - if (definition.collection) { - unwatch = scope.$watchCollection(attrs[attrName], parentValueWatch); - } else { - unwatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); - } - isolateScope.$on('$destroy', unwatch); - break; - - case '&': - parentGet = $parse(attrs[attrName]); - isolateBindingContext[scopeName] = function(locals) { - return parentGet(scope, locals); - }; - break; - } - }); + isolateScope.$$isolateBindings = + newIsolateScopeDirective.$$isolateBindings; + initializeDirectiveBindings(scope, attrs, isolateScope, + isolateScope.$$isolateBindings, + newIsolateScopeDirective, isolateScope); } - if (controllers) { - forEach(controllers, function(controller) { - controller(); - }); - controllers = null; + if (elementControllers) { + // Initialize bindToController bindings for new/isolate scopes + var scopeDirective = newIsolateScopeDirective || newScopeDirective; + var bindings; + var controllerForBindings; + if (scopeDirective && elementControllers[scopeDirective.name]) { + bindings = scopeDirective.$$bindings.bindToController; + controller = elementControllers[scopeDirective.name]; + + if (controller && controller.identifier && bindings) { + controllerForBindings = controller; + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controller.instance, + bindings, scopeDirective); + } + } + for (i in elementControllers) { + controller = elementControllers[i]; + var controllerResult = controller(); + + if (controllerResult !== controller.instance) { + // If the controller constructor has a return value, overwrite the instance + // from setupControllers and update the element data + controller.instance = controllerResult; + $element.data('$' + i + 'Controller', controllerResult); + if (controller === controllerForBindings) { + // Remove and re-install bindToController bindings + thisLinkFn.$$destroyBindings(); + thisLinkFn.$$destroyBindings = + initializeDirectiveBindings(scope, attrs, controllerResult, bindings, scopeDirective); + } + } + } } // PRELINKING @@ -8028,7 +8474,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { childBoundTranscludeFn = boundTranscludeFn; } afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, linkNode, $rootElement, - childBoundTranscludeFn); + childBoundTranscludeFn, afterTemplateNodeLinkFn); } linkQueue = null; }); @@ -8045,7 +8491,8 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { if (afterTemplateNodeLinkFn.transcludeOnThisElement) { childBoundTranscludeFn = createBoundTranscludeFn(scope, afterTemplateNodeLinkFn.transclude, boundTranscludeFn); } - afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn); + afterTemplateNodeLinkFn(afterTemplateChildLinkFn, scope, node, rootElement, childBoundTranscludeFn, + afterTemplateNodeLinkFn); } }; } @@ -8061,11 +8508,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { return a.index - b.index; } - function assertNoDuplicate(what, previousDirective, directive, element) { + + function wrapModuleNameIfDefined(moduleName) { + return moduleName ? + (' (module: ' + moduleName + ')') : + ''; + } + if (previousDirective) { - throw $compileMinErr('multidir', 'Multiple directives [{0}, {1}] asking for {2} on: {3}', - previousDirective.name, directive.name, what, startingTag(element)); + throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}', + previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName), + directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element)); } } @@ -8246,26 +8700,28 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { var fragment = document.createDocumentFragment(); fragment.appendChild(firstElementToRemove); - // Copy over user data (that includes Angular's $scope etc.). Don't copy private - // data here because there's no public interface in jQuery to do that and copying over - // event listeners (which is the main use of private data) wouldn't work anyway. - jqLite(newNode).data(jqLite(firstElementToRemove).data()); + if (jqLite.hasData(firstElementToRemove)) { + // Copy over user data (that includes Angular's $scope etc.). Don't copy private + // data here because there's no public interface in jQuery to do that and copying over + // event listeners (which is the main use of private data) wouldn't work anyway. + jqLite(newNode).data(jqLite(firstElementToRemove).data()); - // Remove data of the replaced element. We cannot just call .remove() - // on the element it since that would deallocate scope that is needed - // for the new node. Instead, remove the data "manually". - if (!jQuery) { - delete jqLite.cache[firstElementToRemove[jqLite.expando]]; - } else { - // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after - // the replaced element. The cleanData version monkey-patched by Angular would cause - // the scope to be trashed and we do need the very same scope to work with the new - // element. However, we cannot just cache the non-patched version and use it here as - // that would break if another library patches the method after Angular does (one - // example is jQuery UI). Instead, set a flag indicating scope destroying should be - // skipped this one time. - skipDestroyOnNextJQueryCleanData = true; - jQuery.cleanData([firstElementToRemove]); + // Remove data of the replaced element. We cannot just call .remove() + // on the element it since that would deallocate scope that is needed + // for the new node. Instead, remove the data "manually". + if (!jQuery) { + delete jqLite.cache[firstElementToRemove[jqLite.expando]]; + } else { + // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after + // the replaced element. The cleanData version monkey-patched by Angular would cause + // the scope to be trashed and we do need the very same scope to work with the new + // element. However, we cannot just cache the non-patched version and use it here as + // that would break if another library patches the method after Angular does (one + // example is jQuery UI). Instead, set a flag indicating scope destroying should be + // skipped this one time. + skipDestroyOnNextJQueryCleanData = true; + jQuery.cleanData([firstElementToRemove]); + } } for (var k = 1, kk = elementsToRemove.length; k < kk; k++) { @@ -8292,6 +8748,108 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { $exceptionHandler(e, startingTag($element)); } } + + + // Set up $watches for isolate scope and controller bindings. This process + // only occurs for isolate scopes and new scopes with controllerAs. + function initializeDirectiveBindings(scope, attrs, destination, bindings, + directive, newScope) { + var onNewScopeDestroyed; + forEach(bindings, function(definition, scopeName) { + var attrName = definition.attrName, + optional = definition.optional, + mode = definition.mode, // @, =, or & + lastValue, + parentGet, parentSet, compare; + + switch (mode) { + + case '@': + if (!optional && !hasOwnProperty.call(attrs, attrName)) { + destination[scopeName] = attrs[attrName] = void 0; + } + attrs.$observe(attrName, function(value) { + if (isString(value)) { + destination[scopeName] = value; + } + }); + attrs.$$observers[attrName].$$scope = scope; + if (isString(attrs[attrName])) { + // If the attribute has been provided then we trigger an interpolation to ensure + // the value is there for use in the link fn + destination[scopeName] = $interpolate(attrs[attrName])(scope); + } + break; + + case '=': + if (!hasOwnProperty.call(attrs, attrName)) { + if (optional) break; + attrs[attrName] = void 0; + } + if (optional && !attrs[attrName]) break; + + parentGet = $parse(attrs[attrName]); + if (parentGet.literal) { + compare = equals; + } else { + compare = function(a, b) { return a === b || (a !== a && b !== b); }; + } + parentSet = parentGet.assign || function() { + // reset the change, or we will throw this exception on every $digest + lastValue = destination[scopeName] = parentGet(scope); + throw $compileMinErr('nonassign', + "Expression '{0}' used with directive '{1}' is non-assignable!", + attrs[attrName], directive.name); + }; + lastValue = destination[scopeName] = parentGet(scope); + var parentValueWatch = function parentValueWatch(parentValue) { + if (!compare(parentValue, destination[scopeName])) { + // we are out of sync and need to copy + if (!compare(parentValue, lastValue)) { + // parent changed and it has precedence + destination[scopeName] = parentValue; + } else { + // if the parent can be assigned then do so + parentSet(scope, parentValue = destination[scopeName]); + } + } + return lastValue = parentValue; + }; + parentValueWatch.$stateful = true; + var unwatch; + if (definition.collection) { + unwatch = scope.$watchCollection(attrs[attrName], parentValueWatch); + } else { + unwatch = scope.$watch($parse(attrs[attrName], parentValueWatch), null, parentGet.literal); + } + onNewScopeDestroyed = (onNewScopeDestroyed || []); + onNewScopeDestroyed.push(unwatch); + break; + + case '&': + // Don't assign Object.prototype method to scope + parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop; + + // Don't assign noop to destination if expression is not valid + if (parentGet === noop && optional) break; + + destination[scopeName] = function(locals) { + return parentGet(scope, locals); + }; + break; + } + }); + var destroyBindings = onNewScopeDestroyed ? function destroyBindings() { + for (var i = 0, ii = onNewScopeDestroyed.length; i < ii; ++i) { + onNewScopeDestroyed[i](); + } + } : noop; + if (newScope && destroyBindings !== noop) { + newScope.$on('$destroy', destroyBindings); + return noop; + } + return destroyBindings; + } }]; } @@ -8399,6 +8957,17 @@ function removeComments(jqNodes) { var $controllerMinErr = minErr('$controller'); + +var CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; +function identifierForController(controller, ident) { + if (ident && isString(ident)) return ident; + if (isString(controller)) { + var match = CNTRL_REG.exec(controller); + if (match) return match[3]; + } +} + + /** * @ngdoc provider * @name $controllerProvider @@ -8411,9 +8980,7 @@ var $controllerMinErr = minErr('$controller'); */ function $ControllerProvider() { var controllers = {}, - globals = false, - CNTRL_REG = /^(\S+)(\s+as\s+(\w+))?$/; - + globals = false; /** * @ngdoc method @@ -8521,8 +9088,16 @@ function $ControllerProvider() { addIdentifier(locals, identifier, instance, constructor || expression.name); } - return extend(function() { - $injector.invoke(expression, instance, locals, constructor); + var instantiate; + return instantiate = extend(function() { + var result = $injector.invoke(expression, instance, locals, constructor); + if (result !== instance && (isObject(result) || isFunction(result))) { + instance = result; + if (identifier) { + // If result changed, re-assign controllerAs value to scope. + addIdentifier(locals, identifier, instance, constructor || expression.name); + } + } return instance; }, { instance: instance, @@ -8630,6 +9205,29 @@ function $ExceptionHandlerProvider() { }]; } +var $$ForceReflowProvider = function() { + this.$get = ['$document', function($document) { + return function(domNode) { + //the line below will force the browser to perform a repaint so + //that all the animated elements within the animation frame will + //be properly updated and drawn on screen. This is required to + //ensure that the preparation animation is properly flushed so that + //the active state picks up from there. DO NOT REMOVE THIS LINE. + //DO NOT OPTIMIZE THIS LINE. THE MINIFIER WILL REMOVE IT OTHERWISE WHICH + //WILL RESULT IN AN UNPREDICTABLE BUG THAT IS VERY HARD TO TRACK DOWN AND + //WILL TAKE YEARS AWAY FROM YOUR LIFE. + if (domNode) { + if (!domNode.nodeType && domNode instanceof jqLite) { + domNode = domNode[0]; + } + } else { + domNode = $document[0].body; + } + return domNode.offsetWidth + 1; + }; + }]; +}; + var APPLICATION_JSON = 'application/json'; var CONTENT_TYPE_APPLICATION_JSON = {'Content-Type': APPLICATION_JSON + ';charset=utf-8'}; var JSON_START = /^\[|^\{(?!\{)/; @@ -8638,6 +9236,129 @@ var JSON_ENDS = { '{': /}$/ }; var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/; +var $httpMinErr = minErr('$http'); +var $httpMinErrLegacyFn = function(method) { + return function() { + throw $httpMinErr('legacy', 'The method `{0}` on the promise returned from `$http` has been disabled.', method); + }; +}; + +function serializeValue(v) { + if (isObject(v)) { + return isDate(v) ? v.toISOString() : toJson(v); + } + return v; +} + + +function $HttpParamSerializerProvider() { + /** + * @ngdoc service + * @name $httpParamSerializer + * @description + * + * Default {@link $http `$http`} params serializer that converts objects to strings + * according to the following rules: + * + * * `{'foo': 'bar'}` results in `foo=bar` + * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object) + * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element) + * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object) + * + * Note that serializer will sort the request parameters alphabetically. + * */ + + this.$get = function() { + return function ngParamSerializer(params) { + if (!params) return ''; + var parts = []; + forEachSorted(params, function(value, key) { + if (value === null || isUndefined(value)) return; + if (isArray(value)) { + forEach(value, function(v, k) { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v))); + }); + } else { + parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value))); + } + }); + + return parts.join('&'); + }; + }; +} + +function $HttpParamSerializerJQLikeProvider() { + /** + * @ngdoc service + * @name $httpParamSerializerJQLike + * @description + * + * Alternative {@link $http `$http`} params serializer that follows + * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic. + * The serializer will also sort the params alphabetically. + * + * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property: + * + * ```js + * $http({ + * url: myUrl, + * method: 'GET', + * params: myParams, + * paramSerializer: '$httpParamSerializerJQLike' + * }); + * ``` + * + * It is also possible to set it as the default `paramSerializer` in the + * {@link $httpProvider#defaults `$httpProvider`}. + * + * Additionally, you can inject the serializer and use it explicitly, for example to serialize + * form data for submission: + * + * ```js + * .controller(function($http, $httpParamSerializerJQLike) { + * //... + * + * $http({ + * url: myUrl, + * method: 'POST', + * data: $httpParamSerializerJQLike(myData), + * headers: { + * 'Content-Type': 'application/x-www-form-urlencoded' + * } + * }); + * + * }); + * ``` + * + * */ + this.$get = function() { + return function jQueryLikeParamSerializer(params) { + if (!params) return ''; + var parts = []; + serialize(params, '', true); + return parts.join('&'); + + function serialize(toSerialize, prefix, topLevel) { + if (toSerialize === null || isUndefined(toSerialize)) return; + if (isArray(toSerialize)) { + forEach(toSerialize, function(value, index) { + serialize(value, prefix + '[' + (isObject(value) ? index : '') + ']'); + }); + } else if (isObject(toSerialize) && !isDate(toSerialize)) { + forEachSorted(toSerialize, function(value, key) { + serialize(value, prefix + + (topLevel ? '' : '[') + + key + + (topLevel ? '' : ']')); + }); + } else { + parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize))); + } + } + }; + }; +} function defaultHttpResponseTransform(data, headers) { if (isString(data)) { @@ -8667,19 +9388,24 @@ function isJsonLike(str) { * @returns {Object} Parsed headers as key value object */ function parseHeaders(headers) { - var parsed = createMap(), key, val, i; - - if (!headers) return parsed; - - forEach(headers.split('\n'), function(line) { - i = line.indexOf(':'); - key = lowercase(trim(line.substr(0, i))); - val = trim(line.substr(i + 1)); + var parsed = createMap(), i; + function fillInParsed(key, val) { if (key) { parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; } - }); + } + + if (isString(headers)) { + forEach(headers.split('\n'), function(line) { + i = line.indexOf(':'); + fillInParsed(lowercase(trim(line.substr(0, i))), trim(line.substr(i + 1))); + }); + } else if (isObject(headers)) { + forEach(headers, function(headerVal, headerKey) { + fillInParsed(lowercase(headerKey), trim(headerVal)); + }); + } return parsed; } @@ -8698,7 +9424,7 @@ function parseHeaders(headers) { * - if called with no arguments returns an object containing all headers. */ function headersGetter(headers) { - var headersObj = isObject(headers) ? headers : undefined; + var headersObj; return function(name) { if (!headersObj) headersObj = parseHeaders(headers); @@ -8728,8 +9454,9 @@ function headersGetter(headers) { * @returns {*} Transformed data. */ function transformData(data, headers, status, fns) { - if (isFunction(fns)) + if (isFunction(fns)) { return fns(data, headers, status); + } forEach(fns, function(fn) { data = fn(data, headers, status); @@ -8760,7 +9487,7 @@ function $HttpProvider() { * * - **`defaults.cache`** - {Object} - an object built with {@link ng.$cacheFactory `$cacheFactory`} * that will provide the cache for all requests who set their `cache` property to `true`. - * If you set the `default.cache = false` then only requests that specify their own custom + * If you set the `defaults.cache = false` then only requests that specify their own custom * cache object will be cached. See {@link $http#caching $http Caching} for more information. * * - **`defaults.xsrfCookieName`** - {string} - Name of cookie containing the XSRF token. @@ -8777,6 +9504,12 @@ function $HttpProvider() { * - **`defaults.headers.put`** * - **`defaults.headers.patch`** * + * + * - **`defaults.paramSerializer`** - `{string|function(Object):string}` - A function + * used to the prepare string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}. + * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}. + * **/ var defaults = this.defaults = { // transform incoming response data @@ -8798,7 +9531,9 @@ function $HttpProvider() { }, xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN' + xsrfHeaderName: 'X-XSRF-TOKEN', + + paramSerializer: '$httpParamSerializer' }; var useApplyAsync = false; @@ -8812,7 +9547,7 @@ function $HttpProvider() { * significant performance improvement for bigger applications that make many HTTP requests * concurrently (common during application bootstrap). * - * Defaults to false. If no value is specifed, returns the current configured value. + * Defaults to false. If no value is specified, returns the current configured value. * * @param {boolean=} value If true, when requests are loaded, they will schedule a deferred * "apply" on the next tick, giving time for subsequent requests in a roughly ~10ms window @@ -8829,6 +9564,30 @@ function $HttpProvider() { return useApplyAsync; }; + var useLegacyPromise = true; + /** + * @ngdoc method + * @name $httpProvider#useLegacyPromiseExtensions + * @description + * + * Configure `$http` service to return promises without the shorthand methods `success` and `error`. + * This should be used to make sure that applications work without these methods. + * + * Defaults to false. If no value is specified, returns the current configured value. + * + * @param {boolean=} value If true, `$http` will return a normal promise without the `success` and `error` methods. + * + * @returns {boolean|Object} If a value is specified, returns the $httpProvider for chaining. + * otherwise, returns the current configured value. + **/ + this.useLegacyPromiseExtensions = function(value) { + if (isDefined(value)) { + useLegacyPromise = !!value; + return this; + } + return useLegacyPromise; + }; + /** * @ngdoc property * @name $httpProvider#interceptors @@ -8844,11 +9603,17 @@ function $HttpProvider() { **/ var interceptorFactories = this.interceptors = []; - this.$get = ['$httpBackend', '$browser', '$cacheFactory', '$rootScope', '$q', '$injector', - function($httpBackend, $browser, $cacheFactory, $rootScope, $q, $injector) { + this.$get = ['$httpBackend', '$$cookieReader', '$cacheFactory', '$rootScope', '$q', '$injector', + function($httpBackend, $$cookieReader, $cacheFactory, $rootScope, $q, $injector) { var defaultCache = $cacheFactory('$http'); + /** + * Make sure that default param serializer is exposed as a function + */ + defaults.paramSerializer = isString(defaults.paramSerializer) ? + $injector.get(defaults.paramSerializer) : defaults.paramSerializer; + /** * Interceptors stored in reverse order. Inner interceptors before outer interceptors. * The reversal is needed so that we can build up the interception chain around the @@ -8889,17 +9654,15 @@ function $HttpProvider() { * * ## General usage * The `$http` service is a function which takes a single argument — a configuration object — - * that is used to generate an HTTP request and returns a {@link ng.$q promise} - * with two $http specific methods: `success` and `error`. + * that is used to generate an HTTP request and returns a {@link ng.$q promise}. * * ```js * // Simple GET request example : * $http.get('/someUrl'). - * success(function(data, status, headers, config) { + * then(function(response) { * // this callback will be called asynchronously * // when the response is available - * }). - * error(function(data, status, headers, config) { + * }, function(response) { * // called asynchronously if an error occurs * // or server returns response with an error status. * }); @@ -8908,21 +9671,23 @@ function $HttpProvider() { * ```js * // Simple POST request example (passing data) : * $http.post('/someUrl', {msg:'hello word!'}). - * success(function(data, status, headers, config) { + * then(function(response) { * // this callback will be called asynchronously * // when the response is available - * }). - * error(function(data, status, headers, config) { + * }, function(response) { * // called asynchronously if an error occurs * // or server returns response with an error status. * }); * ``` * + * The response object has these properties: * - * Since the returned value of calling the $http function is a `promise`, you can also use - * the `then` method to register callbacks, and these callbacks will receive a single argument – - * an object representing the response. See the API signature and type info below for more - * details. + * - **data** – `{string|Object}` – The response body transformed with the transform + * functions. + * - **status** – `{number}` – HTTP status code of the response. + * - **headers** – `{function([headerName])}` – Header getter function. + * - **config** – `{Object}` – The configuration object that was used to generate the request. + * - **statusText** – `{string}` – HTTP status text of the response. * * A response status code between 200 and 299 is considered a success status and * will result in the success callback being called. Note that if the response is a redirect, @@ -8946,8 +9711,8 @@ function $HttpProvider() { * request data must be passed in for POST/PUT requests. * * ```js - * $http.get('/someUrl').success(successCallback); - * $http.post('/someUrl', data).success(successCallback); + * $http.get('/someUrl').then(successCallback); + * $http.post('/someUrl', data).then(successCallback); * ``` * * Complete list of shortcut methods: @@ -8961,6 +9726,14 @@ function $HttpProvider() { * - {@link ng.$http#patch $http.patch} * * + * ## Deprecation Notice + *
    + * The `$http` legacy promise methods `success` and `error` have been deprecated. + * Use the standard `then` method instead. + * If {@link $httpProvider#useLegacyPromiseExtensions `$httpProvider.useLegacyPromiseExtensions`} is set to + * `false` then these methods will throw {@link $http:legacy `$http/legacy`} error. + *
    + * * ## Setting HTTP Headers * * The $http service will automatically add certain HTTP headers to all requests. These defaults @@ -8977,7 +9750,7 @@ function $HttpProvider() { * To add or overwrite these defaults, simply add or remove a property from these configuration * objects. To add headers for an HTTP method other than POST or PUT, simply add a new object * with the lowercased HTTP method name as the key, e.g. - * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }. + * `$httpProvider.defaults.headers.get = { 'My-Header' : 'value' }`. * * The defaults can also be set at runtime via the `$http.defaults` object in the same * fashion. For example: @@ -9004,7 +9777,7 @@ function $HttpProvider() { * data: { test: 'test' } * } * - * $http(req).success(function(){...}).error(function(){...}); + * $http(req).then(function(){...}, function(){...}); * ``` * * ## Transforming Requests and Responses @@ -9233,19 +10006,20 @@ function $HttpProvider() { * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time, * or the per-request config object. * + * In order to prevent collisions in environments where multiple Angular apps share the + * same domain or subdomain, we recommend that each application uses unique cookie name. * * @param {object} config Object describing the request to be made and how it should be * processed. The object has following properties: * * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc) * - **url** – `{string}` – Absolute or relative URL of the resource that is being requested. - * - **params** – `{Object.}` – Map of strings or objects which will be turned - * to `?key1=value1&key2=value2` after the url. If the value is not a string, it will be - * JSONified. + * - **params** – `{Object.}` – Map of strings or objects which will be serialized + * with the `paramSerializer` and appended as GET parameters. * - **data** – `{string|Object}` – Data to be sent as the request message data. * - **headers** – `{Object}` – Map of strings or functions which return strings representing * HTTP headers to send to the server. If the return value of a function is null, the - * header will not be sent. + * header will not be sent. Functions accept a config object as an argument. * - **xsrfHeaderName** – `{string}` – Name of HTTP header to populate with the XSRF token. * - **xsrfCookieName** – `{string}` – Name of cookie containing the XSRF token. * - **transformRequest** – @@ -9259,7 +10033,14 @@ function $HttpProvider() { * transform function or an array of such functions. The transform function takes the http * response body, headers and status and returns its transformed (typically deserialized) version. * See {@link ng.$http#overriding-the-default-transformations-per-request - * Overriding the Default Transformations} + * Overriding the Default TransformationjqLiks} + * - **paramSerializer** - `{string|function(Object):string}` - A function used to + * prepare the string representation of request parameters (specified as an object). + * If specified as string, it is interpreted as function registered with the + * {@link $injector $injector}, which means you can create your own serializer + * by registering it as a {@link auto.$provide#service service}. + * The default serializer is the {@link $httpParamSerializer $httpParamSerializer}; + * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike} * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the * GET request, otherwise if a cache instance built with * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for @@ -9270,22 +10051,11 @@ function $HttpProvider() { * XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials) * for more information. * - **responseType** - `{string}` - see - * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType). + * [XMLHttpRequest.responseType](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#xmlhttprequest-responsetype). * - * @returns {HttpPromise} Returns a {@link ng.$q promise} object with the - * standard `then` method and two http specific methods: `success` and `error`. The `then` - * method takes two arguments a success and an error callback which will be called with a - * response object. The `success` and `error` methods take a single argument - a function that - * will be called when the request succeeds or fails respectively. The arguments passed into - * these functions are destructured representation of the response object passed into the - * `then` method. The response object has these properties: + * @returns {HttpPromise} Returns a {@link ng.$q `Promise}` that will be resolved to a response object + * when the request succeeds or fails. * - * - **data** – `{string|Object}` – The response body transformed with the transform - * functions. - * - **status** – `{number}` – HTTP status code of the response. - * - **headers** – `{function([headerName])}` – Header getter function. - * - **config** – `{Object}` – The configuration object that was used to generate the request. - * - **statusText** – `{string}` – HTTP status text of the response. * * @property {Array.} pendingRequests Array of config objects for currently pending * requests. This is primarily meant to be used for debugging purposes. @@ -9295,11 +10065,11 @@ function $HttpProvider() {
    - - +
    @@ -11810,57 +12519,8 @@ function ensureSafeFunction(obj, fullExpression) { } } -//Keyword constants -var CONSTANTS = createMap(); -forEach({ - 'null': function() { return null; }, - 'true': function() { return true; }, - 'false': function() { return false; }, - 'undefined': function() {} -}, function(constantGetter, name) { - constantGetter.constant = constantGetter.literal = constantGetter.sharedGetter = true; - CONSTANTS[name] = constantGetter; -}); - -//Not quite a constant, but can be lex/parsed the same -CONSTANTS['this'] = function(self) { return self; }; -CONSTANTS['this'].sharedGetter = true; - - -//Operators - will be wrapped by binaryFn/unaryFn/assignment/filter -var OPERATORS = extend(createMap(), { - '+':function(self, locals, a, b) { - a=a(self, locals); b=b(self, locals); - if (isDefined(a)) { - if (isDefined(b)) { - return a + b; - } - return a; - } - return isDefined(b) ? b : undefined;}, - '-':function(self, locals, a, b) { - a=a(self, locals); b=b(self, locals); - return (isDefined(a) ? a : 0) - (isDefined(b) ? b : 0); - }, - '*':function(self, locals, a, b) {return a(self, locals) * b(self, locals);}, - '/':function(self, locals, a, b) {return a(self, locals) / b(self, locals);}, - '%':function(self, locals, a, b) {return a(self, locals) % b(self, locals);}, - '===':function(self, locals, a, b) {return a(self, locals) === b(self, locals);}, - '!==':function(self, locals, a, b) {return a(self, locals) !== b(self, locals);}, - '==':function(self, locals, a, b) {return a(self, locals) == b(self, locals);}, - '!=':function(self, locals, a, b) {return a(self, locals) != b(self, locals);}, - '<':function(self, locals, a, b) {return a(self, locals) < b(self, locals);}, - '>':function(self, locals, a, b) {return a(self, locals) > b(self, locals);}, - '<=':function(self, locals, a, b) {return a(self, locals) <= b(self, locals);}, - '>=':function(self, locals, a, b) {return a(self, locals) >= b(self, locals);}, - '&&':function(self, locals, a, b) {return a(self, locals) && b(self, locals);}, - '||':function(self, locals, a, b) {return a(self, locals) || b(self, locals);}, - '!':function(self, locals, a) {return !a(self, locals);}, - - //Tokenized as operators but parsed as assignment/filters - '=':true, - '|':true -}); +var OPERATORS = createMap(); +forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '), function(operator) { OPERATORS[operator] = true; }); var ESCAPE = {"n":"\n", "f":"\f", "r":"\r", "t":"\t", "v":"\v", "'":"'", '"':'"'}; @@ -12012,8 +12672,9 @@ Lexer.prototype = { if (escape) { if (ch === 'u') { var hex = this.text.substring(this.index + 1, this.index + 5); - if (!hex.match(/[\da-f]{4}/i)) + if (!hex.match(/[\da-f]{4}/i)) { this.throwError('Invalid unicode escape [\\u' + hex + ']'); + } this.index += 4; string += String.fromCharCode(parseInt(hex, 16)); } else { @@ -12041,46 +12702,155 @@ Lexer.prototype = { } }; - -function isConstant(exp) { - return exp.constant; -} - -/** - * @constructor - */ -var Parser = function(lexer, $filter, options) { +var AST = function(lexer, options) { this.lexer = lexer; - this.$filter = $filter; this.options = options; }; -Parser.ZERO = extend(function() { - return 0; -}, { - sharedGetter: true, - constant: true -}); +AST.Program = 'Program'; +AST.ExpressionStatement = 'ExpressionStatement'; +AST.AssignmentExpression = 'AssignmentExpression'; +AST.ConditionalExpression = 'ConditionalExpression'; +AST.LogicalExpression = 'LogicalExpression'; +AST.BinaryExpression = 'BinaryExpression'; +AST.UnaryExpression = 'UnaryExpression'; +AST.CallExpression = 'CallExpression'; +AST.MemberExpression = 'MemberExpression'; +AST.Identifier = 'Identifier'; +AST.Literal = 'Literal'; +AST.ArrayExpression = 'ArrayExpression'; +AST.Property = 'Property'; +AST.ObjectExpression = 'ObjectExpression'; +AST.ThisExpression = 'ThisExpression'; -Parser.prototype = { - constructor: Parser, +// Internal use only +AST.NGValueParameter = 'NGValueParameter'; - parse: function(text) { +AST.prototype = { + ast: function(text) { this.text = text; this.tokens = this.lexer.lex(text); - var value = this.statements(); + var value = this.program(); if (this.tokens.length !== 0) { this.throwError('is an unexpected token', this.tokens[0]); } - value.literal = !!value.literal; - value.constant = !!value.constant; - return value; }, + program: function() { + var body = []; + while (true) { + if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) + body.push(this.expressionStatement()); + if (!this.expect(';')) { + return { type: AST.Program, body: body}; + } + } + }, + + expressionStatement: function() { + return { type: AST.ExpressionStatement, expression: this.filterChain() }; + }, + + filterChain: function() { + var left = this.expression(); + var token; + while ((token = this.expect('|'))) { + left = this.filter(left); + } + return left; + }, + + expression: function() { + return this.assignment(); + }, + + assignment: function() { + var result = this.ternary(); + if (this.expect('=')) { + result = { type: AST.AssignmentExpression, left: result, right: this.assignment(), operator: '='}; + } + return result; + }, + + ternary: function() { + var test = this.logicalOR(); + var alternate; + var consequent; + if (this.expect('?')) { + alternate = this.expression(); + if (this.consume(':')) { + consequent = this.expression(); + return { type: AST.ConditionalExpression, test: test, alternate: alternate, consequent: consequent}; + } + } + return test; + }, + + logicalOR: function() { + var left = this.logicalAND(); + while (this.expect('||')) { + left = { type: AST.LogicalExpression, operator: '||', left: left, right: this.logicalAND() }; + } + return left; + }, + + logicalAND: function() { + var left = this.equality(); + while (this.expect('&&')) { + left = { type: AST.LogicalExpression, operator: '&&', left: left, right: this.equality()}; + } + return left; + }, + + equality: function() { + var left = this.relational(); + var token; + while ((token = this.expect('==','!=','===','!=='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.relational() }; + } + return left; + }, + + relational: function() { + var left = this.additive(); + var token; + while ((token = this.expect('<', '>', '<=', '>='))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.additive() }; + } + return left; + }, + + additive: function() { + var left = this.multiplicative(); + var token; + while ((token = this.expect('+','-'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.multiplicative() }; + } + return left; + }, + + multiplicative: function() { + var left = this.unary(); + var token; + while ((token = this.expect('*','/','%'))) { + left = { type: AST.BinaryExpression, operator: token.text, left: left, right: this.unary() }; + } + return left; + }, + + unary: function() { + var token; + if ((token = this.expect('+', '-', '!'))) { + return { type: AST.UnaryExpression, operator: token.text, prefix: true, argument: this.unary() }; + } else { + return this.primary(); + } + }, + primary: function() { var primary; if (this.expect('(')) { @@ -12090,8 +12860,8 @@ Parser.prototype = { primary = this.arrayDeclaration(); } else if (this.expect('{')) { primary = this.object(); - } else if (this.peek().identifier && this.peek().text in CONSTANTS) { - primary = CONSTANTS[this.consume().text]; + } else if (this.constants.hasOwnProperty(this.peek().text)) { + primary = copy(this.constants[this.consume().text]); } else if (this.peek().identifier) { primary = this.identifier(); } else if (this.peek().constant) { @@ -12100,17 +12870,16 @@ Parser.prototype = { this.throwError('not a primary expression', this.peek()); } - var next, context; + var next; while ((next = this.expect('(', '[', '.'))) { if (next.text === '(') { - primary = this.functionCall(primary, context); - context = null; + primary = {type: AST.CallExpression, callee: primary, arguments: this.parseArguments() }; + this.consume(')'); } else if (next.text === '[') { - context = primary; - primary = this.objectIndex(primary); + primary = { type: AST.MemberExpression, object: primary, property: this.expression(), computed: true }; + this.consume(']'); } else if (next.text === '.') { - context = primary; - primary = this.fieldAccess(primary); + primary = { type: AST.MemberExpression, object: primary, property: this.identifier(), computed: false }; } else { this.throwError('IMPOSSIBLE'); } @@ -12118,21 +12887,111 @@ Parser.prototype = { return primary; }, + filter: function(baseExpression) { + var args = [baseExpression]; + var result = {type: AST.CallExpression, callee: this.identifier(), arguments: args, filter: true}; + + while (this.expect(':')) { + args.push(this.expression()); + } + + return result; + }, + + parseArguments: function() { + var args = []; + if (this.peekToken().text !== ')') { + do { + args.push(this.expression()); + } while (this.expect(',')); + } + return args; + }, + + identifier: function() { + var token = this.consume(); + if (!token.identifier) { + this.throwError('is not a valid identifier', token); + } + return { type: AST.Identifier, name: token.text }; + }, + + constant: function() { + // TODO check that it is a constant + return { type: AST.Literal, value: this.consume().value }; + }, + + arrayDeclaration: function() { + var elements = []; + if (this.peekToken().text !== ']') { + do { + if (this.peek(']')) { + // Support trailing commas per ES5.1. + break; + } + elements.push(this.expression()); + } while (this.expect(',')); + } + this.consume(']'); + + return { type: AST.ArrayExpression, elements: elements }; + }, + + object: function() { + var properties = [], property; + if (this.peekToken().text !== '}') { + do { + if (this.peek('}')) { + // Support trailing commas per ES5.1. + break; + } + property = {type: AST.Property, kind: 'init'}; + if (this.peek().constant) { + property.key = this.constant(); + } else if (this.peek().identifier) { + property.key = this.identifier(); + } else { + this.throwError("invalid key", this.peek()); + } + this.consume(':'); + property.value = this.expression(); + properties.push(property); + } while (this.expect(',')); + } + this.consume('}'); + + return {type: AST.ObjectExpression, properties: properties }; + }, + throwError: function(msg, token) { throw $parseMinErr('syntax', 'Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].', token.text, msg, (token.index + 1), this.text, this.text.substring(token.index)); }, - peekToken: function() { - if (this.tokens.length === 0) + consume: function(e1) { + if (this.tokens.length === 0) { throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } + + var token = this.expect(e1); + if (!token) { + this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); + } + return token; + }, + + peekToken: function() { + if (this.tokens.length === 0) { + throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); + } return this.tokens[0]; }, peek: function(e1, e2, e3, e4) { return this.peekAhead(0, e1, e2, e3, e4); }, + peekAhead: function(i, e1, e2, e3, e4) { if (this.tokens.length > i) { var token = this.tokens[i]; @@ -12154,405 +13013,1029 @@ Parser.prototype = { return false; }, - consume: function(e1) { - if (this.tokens.length === 0) { - throw $parseMinErr('ueoe', 'Unexpected end of expression: {0}', this.text); - } - var token = this.expect(e1); - if (!token) { - this.throwError('is unexpected, expecting [' + e1 + ']', this.peek()); - } - return token; - }, + /* `undefined` is not a constant, it is an identifier, + * but using it as an identifier is not supported + */ + constants: { + 'true': { type: AST.Literal, value: true }, + 'false': { type: AST.Literal, value: false }, + 'null': { type: AST.Literal, value: null }, + 'undefined': {type: AST.Literal, value: undefined }, + 'this': {type: AST.ThisExpression } + } +}; - unaryFn: function(op, right) { - var fn = OPERATORS[op]; - return extend(function $parseUnaryFn(self, locals) { - return fn(self, locals, right); - }, { - constant:right.constant, - inputs: [right] +function ifDefined(v, d) { + return typeof v !== 'undefined' ? v : d; +} + +function plusFn(l, r) { + if (typeof l === 'undefined') return r; + if (typeof r === 'undefined') return l; + return l + r; +} + +function isStateless($filter, filterName) { + var fn = $filter(filterName); + return !fn.$stateful; +} + +function findConstantAndWatchExpressions(ast, $filter) { + var allConstants; + var argsToWatch; + switch (ast.type) { + case AST.Program: + allConstants = true; + forEach(ast.body, function(expr) { + findConstantAndWatchExpressions(expr.expression, $filter); + allConstants = allConstants && expr.expression.constant; }); - }, - - binaryFn: function(left, op, right, isBranching) { - var fn = OPERATORS[op]; - return extend(function $parseBinaryFn(self, locals) { - return fn(self, locals, left, right); - }, { - constant: left.constant && right.constant, - inputs: !isBranching && [left, right] - }); - }, - - identifier: function() { - var id = this.consume().text; - - //Continue reading each `.identifier` unless it is a method invocation - while (this.peek('.') && this.peekAhead(1).identifier && !this.peekAhead(2, '(')) { - id += this.consume().text + this.consume().text; + ast.constant = allConstants; + break; + case AST.Literal: + ast.constant = true; + ast.toWatch = []; + break; + case AST.UnaryExpression: + findConstantAndWatchExpressions(ast.argument, $filter); + ast.constant = ast.argument.constant; + ast.toWatch = ast.argument.toWatch; + break; + case AST.BinaryExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.left.toWatch.concat(ast.right.toWatch); + break; + case AST.LogicalExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.ConditionalExpression: + findConstantAndWatchExpressions(ast.test, $filter); + findConstantAndWatchExpressions(ast.alternate, $filter); + findConstantAndWatchExpressions(ast.consequent, $filter); + ast.constant = ast.test.constant && ast.alternate.constant && ast.consequent.constant; + ast.toWatch = ast.constant ? [] : [ast]; + break; + case AST.Identifier: + ast.constant = false; + ast.toWatch = [ast]; + break; + case AST.MemberExpression: + findConstantAndWatchExpressions(ast.object, $filter); + if (ast.computed) { + findConstantAndWatchExpressions(ast.property, $filter); } - - return getterFn(id, this.options, this.text); - }, - - constant: function() { - var value = this.consume().value; - - return extend(function $parseConstant() { - return value; - }, { - constant: true, - literal: true - }); - }, - - statements: function() { - var statements = []; - while (true) { - if (this.tokens.length > 0 && !this.peek('}', ')', ';', ']')) - statements.push(this.filterChain()); - if (!this.expect(';')) { - // optimize for the common case where there is only one statement. - // TODO(size): maybe we should not support multiple statements? - return (statements.length === 1) - ? statements[0] - : function $parseStatements(self, locals) { - var value; - for (var i = 0, ii = statements.length; i < ii; i++) { - value = statements[i](self, locals); - } - return value; - }; + ast.constant = ast.object.constant && (!ast.computed || ast.property.constant); + ast.toWatch = [ast]; + break; + case AST.CallExpression: + allConstants = ast.filter ? isStateless($filter, ast.callee.name) : false; + argsToWatch = []; + forEach(ast.arguments, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); } - } - }, - - filterChain: function() { - var left = this.expression(); - var token; - while ((token = this.expect('|'))) { - left = this.filter(left); - } - return left; - }, - - filter: function(inputFn) { - var fn = this.$filter(this.consume().text); - var argsFn; - var args; - - if (this.peek(':')) { - argsFn = []; - args = []; // we can safely reuse the array - while (this.expect(':')) { - argsFn.push(this.expression()); + }); + ast.constant = allConstants; + ast.toWatch = ast.filter && isStateless($filter, ast.callee.name) ? argsToWatch : [ast]; + break; + case AST.AssignmentExpression: + findConstantAndWatchExpressions(ast.left, $filter); + findConstantAndWatchExpressions(ast.right, $filter); + ast.constant = ast.left.constant && ast.right.constant; + ast.toWatch = [ast]; + break; + case AST.ArrayExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.elements, function(expr) { + findConstantAndWatchExpressions(expr, $filter); + allConstants = allConstants && expr.constant; + if (!expr.constant) { + argsToWatch.push.apply(argsToWatch, expr.toWatch); } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ObjectExpression: + allConstants = true; + argsToWatch = []; + forEach(ast.properties, function(property) { + findConstantAndWatchExpressions(property.value, $filter); + allConstants = allConstants && property.value.constant; + if (!property.value.constant) { + argsToWatch.push.apply(argsToWatch, property.value.toWatch); + } + }); + ast.constant = allConstants; + ast.toWatch = argsToWatch; + break; + case AST.ThisExpression: + ast.constant = false; + ast.toWatch = []; + break; + } +} + +function getInputs(body) { + if (body.length != 1) return; + var lastExpression = body[0].expression; + var candidate = lastExpression.toWatch; + if (candidate.length !== 1) return candidate; + return candidate[0] !== lastExpression ? candidate : undefined; +} + +function isAssignable(ast) { + return ast.type === AST.Identifier || ast.type === AST.MemberExpression; +} + +function assignableAST(ast) { + if (ast.body.length === 1 && isAssignable(ast.body[0].expression)) { + return {type: AST.AssignmentExpression, left: ast.body[0].expression, right: {type: AST.NGValueParameter}, operator: '='}; + } +} + +function isLiteral(ast) { + return ast.body.length === 0 || + ast.body.length === 1 && ( + ast.body[0].expression.type === AST.Literal || + ast.body[0].expression.type === AST.ArrayExpression || + ast.body[0].expression.type === AST.ObjectExpression); +} + +function isConstant(ast) { + return ast.constant; +} + +function ASTCompiler(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; +} + +ASTCompiler.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.state = { + nextId: 0, + filters: {}, + expensiveChecks: expensiveChecks, + fn: {vars: [], body: [], own: {}}, + assign: {vars: [], body: [], own: {}}, + inputs: [] + }; + findConstantAndWatchExpressions(ast, self.$filter); + var extra = ''; + var assignable; + this.stage = 'assign'; + if ((assignable = assignableAST(ast))) { + this.state.computing = 'assign'; + var result = this.nextId(); + this.recurse(assignable, result); + extra = 'fn.assign=' + this.generateFunction('assign', 's,v,l'); } + var toWatch = getInputs(ast.body); + self.stage = 'inputs'; + forEach(toWatch, function(watch, key) { + var fnKey = 'fn' + key; + self.state[fnKey] = {vars: [], body: [], own: {}}; + self.state.computing = fnKey; + var intoId = self.nextId(); + self.recurse(watch, intoId); + self.return_(intoId); + self.state.inputs.push(fnKey); + watch.watchId = key; + }); + this.state.computing = 'fn'; + this.stage = 'main'; + this.recurse(ast); + var fnString = + // The build and minification steps remove the string "use strict" from the code, but this is done using a regex. + // This is a workaround for this until we do a better job at only removing the prefix only when we should. + '"' + this.USE + ' ' + this.STRICT + '";\n' + + this.filterPrefix() + + 'var fn=' + this.generateFunction('fn', 's,l,a,i') + + extra + + this.watchFns() + + 'return fn;'; - var inputs = [inputFn].concat(argsFn || []); + /* jshint -W054 */ + var fn = (new Function('$filter', + 'ensureSafeMemberName', + 'ensureSafeObject', + 'ensureSafeFunction', + 'ifDefined', + 'plus', + 'text', + fnString))( + this.$filter, + ensureSafeMemberName, + ensureSafeObject, + ensureSafeFunction, + ifDefined, + plusFn, + expression); + /* jshint +W054 */ + this.state = this.stage = undefined; + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, - return extend(function $parseFilter(self, locals) { - var input = inputFn(self, locals); - if (args) { - args[0] = input; + USE: 'use', - var i = argsFn.length; - while (i--) { - args[i + 1] = argsFn[i](self, locals); + STRICT: 'strict', + + watchFns: function() { + var result = []; + var fns = this.state.inputs; + var self = this; + forEach(fns, function(name) { + result.push('var ' + name + '=' + self.generateFunction(name, 's')); + }); + if (fns.length) { + result.push('fn.inputs=[' + fns.join(',') + '];'); + } + return result.join(''); + }, + + generateFunction: function(name, params) { + return 'function(' + params + '){' + + this.varsPrefix(name) + + this.body(name) + + '};'; + }, + + filterPrefix: function() { + var parts = []; + var self = this; + forEach(this.state.filters, function(id, filter) { + parts.push(id + '=$filter(' + self.escape(filter) + ')'); + }); + if (parts.length) return 'var ' + parts.join(',') + ';'; + return ''; + }, + + varsPrefix: function(section) { + return this.state[section].vars.length ? 'var ' + this.state[section].vars.join(',') + ';' : ''; + }, + + body: function(section) { + return this.state[section].body.join(''); + }, + + recurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var left, right, self = this, args, expression; + recursionFn = recursionFn || noop; + if (!skipWatchIdCheck && isDefined(ast.watchId)) { + intoId = intoId || this.nextId(); + this.if_('i', + this.lazyAssign(intoId, this.computedMember('i', ast.watchId)), + this.lazyRecurse(ast, intoId, nameId, recursionFn, create, true) + ); + return; + } + switch (ast.type) { + case AST.Program: + forEach(ast.body, function(expression, pos) { + self.recurse(expression.expression, undefined, undefined, function(expr) { right = expr; }); + if (pos !== ast.body.length - 1) { + self.current().body.push(right, ';'); + } else { + self.return_(right); } - - return fn.apply(undefined, args); - } - - return fn(input); - }, { - constant: !fn.$stateful && inputs.every(isConstant), - inputs: !fn.$stateful && inputs - }); - }, - - expression: function() { - return this.assignment(); - }, - - assignment: function() { - var left = this.ternary(); - var right; - var token; - if ((token = this.expect('='))) { - if (!left.assign) { - this.throwError('implies assignment but [' + - this.text.substring(0, token.index) + '] can not be assigned to', token); - } - right = this.ternary(); - return extend(function $parseAssignment(scope, locals) { - return left.assign(scope, right(scope, locals), locals); - }, { - inputs: [left, right] }); - } - return left; - }, - - ternary: function() { - var left = this.logicalOR(); - var middle; - var token; - if ((token = this.expect('?'))) { - middle = this.assignment(); - if (this.consume(':')) { - var right = this.assignment(); - - return extend(function $parseTernary(self, locals) { - return left(self, locals) ? middle(self, locals) : right(self, locals); - }, { - constant: left.constant && middle.constant && right.constant + break; + case AST.Literal: + expression = this.escape(ast.value); + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.UnaryExpression: + this.recurse(ast.argument, undefined, undefined, function(expr) { right = expr; }); + expression = ast.operator + '(' + this.ifDefined(right, 0) + ')'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.BinaryExpression: + this.recurse(ast.left, undefined, undefined, function(expr) { left = expr; }); + this.recurse(ast.right, undefined, undefined, function(expr) { right = expr; }); + if (ast.operator === '+') { + expression = this.plus(left, right); + } else if (ast.operator === '-') { + expression = this.ifDefined(left, 0) + ast.operator + this.ifDefined(right, 0); + } else { + expression = '(' + left + ')' + ast.operator + '(' + right + ')'; + } + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.LogicalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.left, intoId); + self.if_(ast.operator === '&&' ? intoId : self.not(intoId), self.lazyRecurse(ast.right, intoId)); + recursionFn(intoId); + break; + case AST.ConditionalExpression: + intoId = intoId || this.nextId(); + self.recurse(ast.test, intoId); + self.if_(intoId, self.lazyRecurse(ast.alternate, intoId), self.lazyRecurse(ast.consequent, intoId)); + recursionFn(intoId); + break; + case AST.Identifier: + intoId = intoId || this.nextId(); + if (nameId) { + nameId.context = self.stage === 'inputs' ? 's' : this.assign(this.nextId(), this.getHasOwnProperty('l', ast.name) + '?l:s'); + nameId.computed = false; + nameId.name = ast.name; + } + ensureSafeMemberName(ast.name); + self.if_(self.stage === 'inputs' || self.not(self.getHasOwnProperty('l', ast.name)), + function() { + self.if_(self.stage === 'inputs' || 's', function() { + if (create && create !== 1) { + self.if_( + self.not(self.nonComputedMember('s', ast.name)), + self.lazyAssign(self.nonComputedMember('s', ast.name), '{}')); + } + self.assign(intoId, self.nonComputedMember('s', ast.name)); + }); + }, intoId && self.lazyAssign(intoId, self.nonComputedMember('l', ast.name)) + ); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.name)) { + self.addEnsureSafeObject(intoId); + } + recursionFn(intoId); + break; + case AST.MemberExpression: + left = nameId && (nameId.context = this.nextId()) || this.nextId(); + intoId = intoId || this.nextId(); + self.recurse(ast.object, left, undefined, function() { + self.if_(self.notNull(left), function() { + if (ast.computed) { + right = self.nextId(); + self.recurse(ast.property, right); + self.addEnsureSafeMemberName(right); + if (create && create !== 1) { + self.if_(self.not(self.computedMember(left, right)), self.lazyAssign(self.computedMember(left, right), '{}')); + } + expression = self.ensureSafeObject(self.computedMember(left, right)); + self.assign(intoId, expression); + if (nameId) { + nameId.computed = true; + nameId.name = right; + } + } else { + ensureSafeMemberName(ast.property.name); + if (create && create !== 1) { + self.if_(self.not(self.nonComputedMember(left, ast.property.name)), self.lazyAssign(self.nonComputedMember(left, ast.property.name), '{}')); + } + expression = self.nonComputedMember(left, ast.property.name); + if (self.state.expensiveChecks || isPossiblyDangerousMemberName(ast.property.name)) { + expression = self.ensureSafeObject(expression); + } + self.assign(intoId, expression); + if (nameId) { + nameId.computed = false; + nameId.name = ast.property.name; + } + } + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); + }, !!create); + break; + case AST.CallExpression: + intoId = intoId || this.nextId(); + if (ast.filter) { + right = self.filter(ast.callee.name); + args = []; + forEach(ast.arguments, function(expr) { + var argument = self.nextId(); + self.recurse(expr, argument); + args.push(argument); + }); + expression = right + '(' + args.join(',') + ')'; + self.assign(intoId, expression); + recursionFn(intoId); + } else { + right = self.nextId(); + left = {}; + args = []; + self.recurse(ast.callee, right, left, function() { + self.if_(self.notNull(right), function() { + self.addEnsureSafeFunction(right); + forEach(ast.arguments, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(self.ensureSafeObject(argument)); + }); + }); + if (left.name) { + if (!self.state.expensiveChecks) { + self.addEnsureSafeObject(left.context); + } + expression = self.member(left.context, left.name, left.computed) + '(' + args.join(',') + ')'; + } else { + expression = right + '(' + args.join(',') + ')'; + } + expression = self.ensureSafeObject(expression); + self.assign(intoId, expression); + }, function() { + self.assign(intoId, 'undefined'); + }); + recursionFn(intoId); }); } + break; + case AST.AssignmentExpression: + right = this.nextId(); + left = {}; + if (!isAssignable(ast.left)) { + throw $parseMinErr('lval', 'Trying to assing a value to a non l-value'); + } + this.recurse(ast.left, undefined, left, function() { + self.if_(self.notNull(left.context), function() { + self.recurse(ast.right, right); + self.addEnsureSafeObject(self.member(left.context, left.name, left.computed)); + expression = self.member(left.context, left.name, left.computed) + ast.operator + right; + self.assign(intoId, expression); + recursionFn(intoId || expression); + }); + }, 1); + break; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + self.recurse(expr, self.nextId(), undefined, function(argument) { + args.push(argument); + }); + }); + expression = '[' + args.join(',') + ']'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + self.recurse(property.value, self.nextId(), undefined, function(expr) { + args.push(self.escape( + property.key.type === AST.Identifier ? property.key.name : + ('' + property.key.value)) + + ':' + expr); + }); + }); + expression = '{' + args.join(',') + '}'; + this.assign(intoId, expression); + recursionFn(expression); + break; + case AST.ThisExpression: + this.assign(intoId, 's'); + recursionFn('s'); + break; + case AST.NGValueParameter: + this.assign(intoId, 'v'); + recursionFn('v'); + break; } - - return left; }, - logicalOR: function() { - var left = this.logicalAND(); - var token; - while ((token = this.expect('||'))) { - left = this.binaryFn(left, token.text, this.logicalAND(), true); + getHasOwnProperty: function(element, property) { + var key = element + '.' + property; + var own = this.current().own; + if (!own.hasOwnProperty(key)) { + own[key] = this.nextId(false, element + '&&(' + this.escape(property) + ' in ' + element + ')'); } - return left; + return own[key]; }, - logicalAND: function() { - var left = this.equality(); - var token; - while ((token = this.expect('&&'))) { - left = this.binaryFn(left, token.text, this.equality(), true); - } - return left; + assign: function(id, value) { + if (!id) return; + this.current().body.push(id, '=', value, ';'); + return id; }, - equality: function() { - var left = this.relational(); - var token; - while ((token = this.expect('==','!=','===','!=='))) { - left = this.binaryFn(left, token.text, this.relational()); + filter: function(filterName) { + if (!this.state.filters.hasOwnProperty(filterName)) { + this.state.filters[filterName] = this.nextId(true); } - return left; + return this.state.filters[filterName]; }, - relational: function() { - var left = this.additive(); - var token; - while ((token = this.expect('<', '>', '<=', '>='))) { - left = this.binaryFn(left, token.text, this.additive()); - } - return left; + ifDefined: function(id, defaultValue) { + return 'ifDefined(' + id + ',' + this.escape(defaultValue) + ')'; }, - additive: function() { - var left = this.multiplicative(); - var token; - while ((token = this.expect('+','-'))) { - left = this.binaryFn(left, token.text, this.multiplicative()); - } - return left; + plus: function(left, right) { + return 'plus(' + left + ',' + right + ')'; }, - multiplicative: function() { - var left = this.unary(); - var token; - while ((token = this.expect('*','/','%'))) { - left = this.binaryFn(left, token.text, this.unary()); - } - return left; + return_: function(id) { + this.current().body.push('return ', id, ';'); }, - unary: function() { - var token; - if (this.expect('+')) { - return this.primary(); - } else if ((token = this.expect('-'))) { - return this.binaryFn(Parser.ZERO, token.text, this.unary()); - } else if ((token = this.expect('!'))) { - return this.unaryFn(token.text, this.unary()); + if_: function(test, alternate, consequent) { + if (test === true) { + alternate(); } else { - return this.primary(); + var body = this.current().body; + body.push('if(', test, '){'); + alternate(); + body.push('}'); + if (consequent) { + body.push('else{'); + consequent(); + body.push('}'); + } } }, - fieldAccess: function(object) { - var getter = this.identifier(); - - return extend(function $parseFieldAccess(scope, locals, self) { - var o = self || object(scope, locals); - return (o == null) ? undefined : getter(o); - }, { - assign: function(scope, value, locals) { - var o = object(scope, locals); - if (!o) object.assign(scope, o = {}, locals); - return getter.assign(o, value); - } - }); + not: function(expression) { + return '!(' + expression + ')'; }, - objectIndex: function(obj) { - var expression = this.text; - - var indexFn = this.expression(); - this.consume(']'); - - return extend(function $parseObjectIndex(self, locals) { - var o = obj(self, locals), - i = indexFn(self, locals), - v; - - ensureSafeMemberName(i, expression); - if (!o) return undefined; - v = ensureSafeObject(o[i], expression); - return v; - }, { - assign: function(self, value, locals) { - var key = ensureSafeMemberName(indexFn(self, locals), expression); - // prevent overwriting of Function.constructor which would break ensureSafeObject check - var o = ensureSafeObject(obj(self, locals), expression); - if (!o) obj.assign(self, o = {}, locals); - return o[key] = value; - } - }); + notNull: function(expression) { + return expression + '!=null'; }, - functionCall: function(fnGetter, contextGetter) { - var argsFn = []; - if (this.peekToken().text !== ')') { - do { - argsFn.push(this.expression()); - } while (this.expect(',')); + nonComputedMember: function(left, right) { + return left + '.' + right; + }, + + computedMember: function(left, right) { + return left + '[' + right + ']'; + }, + + member: function(left, right, computed) { + if (computed) return this.computedMember(left, right); + return this.nonComputedMember(left, right); + }, + + addEnsureSafeObject: function(item) { + this.current().body.push(this.ensureSafeObject(item), ';'); + }, + + addEnsureSafeMemberName: function(item) { + this.current().body.push(this.ensureSafeMemberName(item), ';'); + }, + + addEnsureSafeFunction: function(item) { + this.current().body.push(this.ensureSafeFunction(item), ';'); + }, + + ensureSafeObject: function(item) { + return 'ensureSafeObject(' + item + ',text)'; + }, + + ensureSafeMemberName: function(item) { + return 'ensureSafeMemberName(' + item + ',text)'; + }, + + ensureSafeFunction: function(item) { + return 'ensureSafeFunction(' + item + ',text)'; + }, + + lazyRecurse: function(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck) { + var self = this; + return function() { + self.recurse(ast, intoId, nameId, recursionFn, create, skipWatchIdCheck); + }; + }, + + lazyAssign: function(id, value) { + var self = this; + return function() { + self.assign(id, value); + }; + }, + + stringEscapeRegex: /[^ a-zA-Z0-9]/g, + + stringEscapeFn: function(c) { + return '\\u' + ('0000' + c.charCodeAt(0).toString(16)).slice(-4); + }, + + escape: function(value) { + if (isString(value)) return "'" + value.replace(this.stringEscapeRegex, this.stringEscapeFn) + "'"; + if (isNumber(value)) return value.toString(); + if (value === true) return 'true'; + if (value === false) return 'false'; + if (value === null) return 'null'; + if (typeof value === 'undefined') return 'undefined'; + + throw $parseMinErr('esc', 'IMPOSSIBLE'); + }, + + nextId: function(skip, init) { + var id = 'v' + (this.state.nextId++); + if (!skip) { + this.current().vars.push(id + (init ? '=' + init : '')); } - this.consume(')'); - - var expressionText = this.text; - // we can safely reuse the array across invocations - var args = argsFn.length ? [] : null; - - return function $parseFunctionCall(scope, locals) { - var context = contextGetter ? contextGetter(scope, locals) : isDefined(contextGetter) ? undefined : scope; - var fn = fnGetter(scope, locals, context) || noop; - - if (args) { - var i = argsFn.length; - while (i--) { - args[i] = ensureSafeObject(argsFn[i](scope, locals), expressionText); - } - } - - ensureSafeObject(context, expressionText); - ensureSafeFunction(fn, expressionText); - - // IE doesn't have apply for some native functions - var v = fn.apply - ? fn.apply(context, args) - : fn(args[0], args[1], args[2], args[3], args[4]); - - if (args) { - // Free-up the memory (arguments of the last function call). - args.length = 0; - } - - return ensureSafeObject(v, expressionText); - }; + return id; }, - // This is used with json array declaration - arrayDeclaration: function() { - var elementFns = []; - if (this.peekToken().text !== ']') { - do { - if (this.peek(']')) { - // Support trailing commas per ES5.1. - break; - } - elementFns.push(this.expression()); - } while (this.expect(',')); - } - this.consume(']'); - - return extend(function $parseArrayLiteral(self, locals) { - var array = []; - for (var i = 0, ii = elementFns.length; i < ii; i++) { - array.push(elementFns[i](self, locals)); - } - return array; - }, { - literal: true, - constant: elementFns.every(isConstant), - inputs: elementFns - }); - }, - - object: function() { - var keys = [], valueFns = []; - if (this.peekToken().text !== '}') { - do { - if (this.peek('}')) { - // Support trailing commas per ES5.1. - break; - } - var token = this.consume(); - if (token.constant) { - keys.push(token.value); - } else if (token.identifier) { - keys.push(token.text); - } else { - this.throwError("invalid key", token); - } - this.consume(':'); - valueFns.push(this.expression()); - } while (this.expect(',')); - } - this.consume('}'); - - return extend(function $parseObjectLiteral(self, locals) { - var object = {}; - for (var i = 0, ii = valueFns.length; i < ii; i++) { - object[keys[i]] = valueFns[i](self, locals); - } - return object; - }, { - literal: true, - constant: valueFns.every(isConstant), - inputs: valueFns - }); + current: function() { + return this.state[this.state.computing]; } }; -////////////////////////////////////////////////// -// Parser helper functions -////////////////////////////////////////////////// - -function setter(obj, locals, path, setValue, fullExp) { - ensureSafeObject(obj, fullExp); - ensureSafeObject(locals, fullExp); - - var element = path.split('.'), key; - for (var i = 0; element.length > 1; i++) { - key = ensureSafeMemberName(element.shift(), fullExp); - var propertyObj = (i === 0 && locals && locals[key]) || obj[key]; - if (!propertyObj) { - propertyObj = {}; - obj[key] = propertyObj; - } - obj = ensureSafeObject(propertyObj, fullExp); - } - key = ensureSafeMemberName(element.shift(), fullExp); - ensureSafeObject(obj[key], fullExp); - obj[key] = setValue; - return setValue; +function ASTInterpreter(astBuilder, $filter) { + this.astBuilder = astBuilder; + this.$filter = $filter; } +ASTInterpreter.prototype = { + compile: function(expression, expensiveChecks) { + var self = this; + var ast = this.astBuilder.ast(expression); + this.expression = expression; + this.expensiveChecks = expensiveChecks; + findConstantAndWatchExpressions(ast, self.$filter); + var assignable; + var assign; + if ((assignable = assignableAST(ast))) { + assign = this.recurse(assignable); + } + var toWatch = getInputs(ast.body); + var inputs; + if (toWatch) { + inputs = []; + forEach(toWatch, function(watch, key) { + var input = self.recurse(watch); + watch.input = input; + inputs.push(input); + watch.watchId = key; + }); + } + var expressions = []; + forEach(ast.body, function(expression) { + expressions.push(self.recurse(expression.expression)); + }); + var fn = ast.body.length === 0 ? function() {} : + ast.body.length === 1 ? expressions[0] : + function(scope, locals) { + var lastValue; + forEach(expressions, function(exp) { + lastValue = exp(scope, locals); + }); + return lastValue; + }; + if (assign) { + fn.assign = function(scope, value, locals) { + return assign(scope, locals, value); + }; + } + if (inputs) { + fn.inputs = inputs; + } + fn.literal = isLiteral(ast); + fn.constant = isConstant(ast); + return fn; + }, + + recurse: function(ast, context, create) { + var left, right, self = this, args, expression; + if (ast.input) { + return this.inputs(ast.input, ast.watchId); + } + switch (ast.type) { + case AST.Literal: + return this.value(ast.value, context); + case AST.UnaryExpression: + right = this.recurse(ast.argument); + return this['unary' + ast.operator](right, context); + case AST.BinaryExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.LogicalExpression: + left = this.recurse(ast.left); + right = this.recurse(ast.right); + return this['binary' + ast.operator](left, right, context); + case AST.ConditionalExpression: + return this['ternary?:']( + this.recurse(ast.test), + this.recurse(ast.alternate), + this.recurse(ast.consequent), + context + ); + case AST.Identifier: + ensureSafeMemberName(ast.name, self.expression); + return self.identifier(ast.name, + self.expensiveChecks || isPossiblyDangerousMemberName(ast.name), + context, create, self.expression); + case AST.MemberExpression: + left = this.recurse(ast.object, false, !!create); + if (!ast.computed) { + ensureSafeMemberName(ast.property.name, self.expression); + right = ast.property.name; + } + if (ast.computed) right = this.recurse(ast.property); + return ast.computed ? + this.computedMember(left, right, context, create, self.expression) : + this.nonComputedMember(left, right, self.expensiveChecks, context, create, self.expression); + case AST.CallExpression: + args = []; + forEach(ast.arguments, function(expr) { + args.push(self.recurse(expr)); + }); + if (ast.filter) right = this.$filter(ast.callee.name); + if (!ast.filter) right = this.recurse(ast.callee, true); + return ast.filter ? + function(scope, locals, assign, inputs) { + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(args[i](scope, locals, assign, inputs)); + } + var value = right.apply(undefined, values, inputs); + return context ? {context: undefined, name: undefined, value: value} : value; + } : + function(scope, locals, assign, inputs) { + var rhs = right(scope, locals, assign, inputs); + var value; + if (rhs.value != null) { + ensureSafeObject(rhs.context, self.expression); + ensureSafeFunction(rhs.value, self.expression); + var values = []; + for (var i = 0; i < args.length; ++i) { + values.push(ensureSafeObject(args[i](scope, locals, assign, inputs), self.expression)); + } + value = ensureSafeObject(rhs.value.apply(rhs.context, values), self.expression); + } + return context ? {value: value} : value; + }; + case AST.AssignmentExpression: + left = this.recurse(ast.left, true, 1); + right = this.recurse(ast.right); + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + ensureSafeObject(lhs.value, self.expression); + lhs.context[lhs.name] = rhs; + return context ? {value: rhs} : rhs; + }; + case AST.ArrayExpression: + args = []; + forEach(ast.elements, function(expr) { + args.push(self.recurse(expr)); + }); + return function(scope, locals, assign, inputs) { + var value = []; + for (var i = 0; i < args.length; ++i) { + value.push(args[i](scope, locals, assign, inputs)); + } + return context ? {value: value} : value; + }; + case AST.ObjectExpression: + args = []; + forEach(ast.properties, function(property) { + args.push({key: property.key.type === AST.Identifier ? + property.key.name : + ('' + property.key.value), + value: self.recurse(property.value) + }); + }); + return function(scope, locals, assign, inputs) { + var value = {}; + for (var i = 0; i < args.length; ++i) { + value[args[i].key] = args[i].value(scope, locals, assign, inputs); + } + return context ? {value: value} : value; + }; + case AST.ThisExpression: + return function(scope) { + return context ? {value: scope} : scope; + }; + case AST.NGValueParameter: + return function(scope, locals, assign, inputs) { + return context ? {value: assign} : assign; + }; + } + }, + + 'unary+': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = +arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary-': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = argument(scope, locals, assign, inputs); + if (isDefined(arg)) { + arg = -arg; + } else { + arg = 0; + } + return context ? {value: arg} : arg; + }; + }, + 'unary!': function(argument, context) { + return function(scope, locals, assign, inputs) { + var arg = !argument(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary+': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = plusFn(lhs, rhs); + return context ? {value: arg} : arg; + }; + }, + 'binary-': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs = right(scope, locals, assign, inputs); + var arg = (isDefined(lhs) ? lhs : 0) - (isDefined(rhs) ? rhs : 0); + return context ? {value: arg} : arg; + }; + }, + 'binary*': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) * right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary/': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) / right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary%': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) % right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary===': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) === right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) !== right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary==': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) == right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary!=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) != right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) < right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) > right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary<=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) <= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary>=': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) >= right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary&&': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) && right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'binary||': function(left, right, context) { + return function(scope, locals, assign, inputs) { + var arg = left(scope, locals, assign, inputs) || right(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + 'ternary?:': function(test, alternate, consequent, context) { + return function(scope, locals, assign, inputs) { + var arg = test(scope, locals, assign, inputs) ? alternate(scope, locals, assign, inputs) : consequent(scope, locals, assign, inputs); + return context ? {value: arg} : arg; + }; + }, + value: function(value, context) { + return function() { return context ? {context: undefined, name: undefined, value: value} : value; }; + }, + identifier: function(name, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var base = locals && (name in locals) ? locals : scope; + if (create && create !== 1 && base && !(base[name])) { + base[name] = {}; + } + var value = base ? base[name] : undefined; + if (expensiveChecks) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: base, name: name, value: value}; + } else { + return value; + } + }; + }, + computedMember: function(left, right, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + var rhs; + var value; + if (lhs != null) { + rhs = right(scope, locals, assign, inputs); + ensureSafeMemberName(rhs, expression); + if (create && create !== 1 && lhs && !(lhs[rhs])) { + lhs[rhs] = {}; + } + value = lhs[rhs]; + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: rhs, value: value}; + } else { + return value; + } + }; + }, + nonComputedMember: function(left, right, expensiveChecks, context, create, expression) { + return function(scope, locals, assign, inputs) { + var lhs = left(scope, locals, assign, inputs); + if (create && create !== 1 && lhs && !(lhs[right])) { + lhs[right] = {}; + } + var value = lhs != null ? lhs[right] : undefined; + if (expensiveChecks || isPossiblyDangerousMemberName(right)) { + ensureSafeObject(value, expression); + } + if (context) { + return {context: lhs, name: right, value: value}; + } else { + return value; + } + }; + }, + inputs: function(input, watchId) { + return function(scope, value, locals, inputs) { + if (inputs) return inputs[watchId]; + return input(scope, value, locals); + }; + } +}; + +/** + * @constructor + */ +var Parser = function(lexer, $filter, options) { + this.lexer = lexer; + this.$filter = $filter; + this.options = options; + this.ast = new AST(this.lexer); + this.astCompiler = options.csp ? new ASTInterpreter(this.ast, $filter) : + new ASTCompiler(this.ast, $filter); +}; + +Parser.prototype = { + constructor: Parser, + + parse: function(text) { + return this.astCompiler.compile(text, this.options.expensiveChecks); + } +}; + var getterFnCacheDefault = createMap(); var getterFnCacheExpensive = createMap(); @@ -12560,125 +14043,6 @@ function isPossiblyDangerousMemberName(name) { return name == 'constructor'; } -/** - * Implementation of the "Black Hole" variant from: - * - http://jsperf.com/angularjs-parse-getter/4 - * - http://jsperf.com/path-evaluation-simplified/7 - */ -function cspSafeGetterFn(key0, key1, key2, key3, key4, fullExp, expensiveChecks) { - ensureSafeMemberName(key0, fullExp); - ensureSafeMemberName(key1, fullExp); - ensureSafeMemberName(key2, fullExp); - ensureSafeMemberName(key3, fullExp); - ensureSafeMemberName(key4, fullExp); - var eso = function(o) { - return ensureSafeObject(o, fullExp); - }; - var eso0 = (expensiveChecks || isPossiblyDangerousMemberName(key0)) ? eso : identity; - var eso1 = (expensiveChecks || isPossiblyDangerousMemberName(key1)) ? eso : identity; - var eso2 = (expensiveChecks || isPossiblyDangerousMemberName(key2)) ? eso : identity; - var eso3 = (expensiveChecks || isPossiblyDangerousMemberName(key3)) ? eso : identity; - var eso4 = (expensiveChecks || isPossiblyDangerousMemberName(key4)) ? eso : identity; - - return function cspSafeGetter(scope, locals) { - var pathVal = (locals && locals.hasOwnProperty(key0)) ? locals : scope; - - if (pathVal == null) return pathVal; - pathVal = eso0(pathVal[key0]); - - if (!key1) return pathVal; - if (pathVal == null) return undefined; - pathVal = eso1(pathVal[key1]); - - if (!key2) return pathVal; - if (pathVal == null) return undefined; - pathVal = eso2(pathVal[key2]); - - if (!key3) return pathVal; - if (pathVal == null) return undefined; - pathVal = eso3(pathVal[key3]); - - if (!key4) return pathVal; - if (pathVal == null) return undefined; - pathVal = eso4(pathVal[key4]); - - return pathVal; - }; -} - -function getterFnWithEnsureSafeObject(fn, fullExpression) { - return function(s, l) { - return fn(s, l, ensureSafeObject, fullExpression); - }; -} - -function getterFn(path, options, fullExp) { - var expensiveChecks = options.expensiveChecks; - var getterFnCache = (expensiveChecks ? getterFnCacheExpensive : getterFnCacheDefault); - var fn = getterFnCache[path]; - if (fn) return fn; - - - var pathKeys = path.split('.'), - pathKeysLength = pathKeys.length; - - // http://jsperf.com/angularjs-parse-getter/6 - if (options.csp) { - if (pathKeysLength < 6) { - fn = cspSafeGetterFn(pathKeys[0], pathKeys[1], pathKeys[2], pathKeys[3], pathKeys[4], fullExp, expensiveChecks); - } else { - fn = function cspSafeGetter(scope, locals) { - var i = 0, val; - do { - val = cspSafeGetterFn(pathKeys[i++], pathKeys[i++], pathKeys[i++], pathKeys[i++], - pathKeys[i++], fullExp, expensiveChecks)(scope, locals); - - locals = undefined; // clear after first iteration - scope = val; - } while (i < pathKeysLength); - return val; - }; - } - } else { - var code = ''; - if (expensiveChecks) { - code += 's = eso(s, fe);\nl = eso(l, fe);\n'; - } - var needsEnsureSafeObject = expensiveChecks; - forEach(pathKeys, function(key, index) { - ensureSafeMemberName(key, fullExp); - var lookupJs = (index - // we simply dereference 's' on any .dot notation - ? 's' - // but if we are first then we check locals first, and if so read it first - : '((l&&l.hasOwnProperty("' + key + '"))?l:s)') + '.' + key; - if (expensiveChecks || isPossiblyDangerousMemberName(key)) { - lookupJs = 'eso(' + lookupJs + ', fe)'; - needsEnsureSafeObject = true; - } - code += 'if(s == null) return undefined;\n' + - 's=' + lookupJs + ';\n'; - }); - code += 'return s;'; - - /* jshint -W054 */ - var evaledFnGetter = new Function('s', 'l', 'eso', 'fe', code); // s=scope, l=locals, eso=ensureSafeObject - /* jshint +W054 */ - evaledFnGetter.toString = valueFn(code); - if (needsEnsureSafeObject) { - evaledFnGetter = getterFnWithEnsureSafeObject(evaledFnGetter, fullExp); - } - fn = evaledFnGetter; - } - - fn.sharedGetter = true; - fn.assign = function(self, value, locals) { - return setter(self, locals, path, value, path); - }; - getterFnCache[path] = fn; - return fn; -} - var objectValueOf = Object.prototype.valueOf; function getValueOf(value) { @@ -12740,39 +14104,24 @@ function $ParseProvider() { var cacheDefault = createMap(); var cacheExpensive = createMap(); - - - this.$get = ['$filter', '$sniffer', function($filter, $sniffer) { + this.$get = ['$filter', function($filter) { + var noUnsafeEval = csp().noUnsafeEval; var $parseOptions = { - csp: $sniffer.csp, + csp: noUnsafeEval, expensiveChecks: false }, $parseOptionsExpensive = { - csp: $sniffer.csp, + csp: noUnsafeEval, expensiveChecks: true }; - function wrapSharedExpression(exp) { - var wrapped = exp; - - if (exp.sharedGetter) { - wrapped = function $parseWrapper(self, locals) { - return exp(self, locals); - }; - wrapped.literal = exp.literal; - wrapped.constant = exp.constant; - wrapped.assign = exp.assign; - } - - return wrapped; - } - return function $parse(exp, interceptorFn, expensiveChecks) { var parsedExpression, oneTime, cacheKey; switch (typeof exp) { case 'string': - cacheKey = exp = exp.trim(); + exp = exp.trim(); + cacheKey = exp; var cache = (expensiveChecks ? cacheExpensive : cacheDefault); parsedExpression = cache[cacheKey]; @@ -12782,24 +14131,18 @@ function $ParseProvider() { oneTime = true; exp = exp.substring(2); } - var parseOptions = expensiveChecks ? $parseOptionsExpensive : $parseOptions; var lexer = new Lexer(parseOptions); var parser = new Parser(lexer, $filter, parseOptions); parsedExpression = parser.parse(exp); - if (parsedExpression.constant) { parsedExpression.$$watchDelegate = constantWatchDelegate; } else if (oneTime) { - //oneTime is not part of the exp passed to the Parser so we may have to - //wrap the parsedExpression before adding a $$watchDelegate - parsedExpression = wrapSharedExpression(parsedExpression); parsedExpression.$$watchDelegate = parsedExpression.literal ? - oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; + oneTimeLiteralWatchDelegate : oneTimeWatchDelegate; } else if (parsedExpression.inputs) { parsedExpression.$$watchDelegate = inputsWatchDelegate; } - cache[cacheKey] = parsedExpression; } return addInterceptor(parsedExpression, interceptorFn); @@ -12808,25 +14151,10 @@ function $ParseProvider() { return addInterceptor(exp, interceptorFn); default: - return addInterceptor(noop, interceptorFn); + return noop; } }; - function collectExpressionInputs(inputs, list) { - for (var i = 0, ii = inputs.length; i < ii; i++) { - var input = inputs[i]; - if (!input.constant) { - if (input.inputs) { - collectExpressionInputs(input.inputs, list); - } else if (list.indexOf(input) === -1) { // TODO(perf) can we do better? - list.push(input); - } - } - } - - return list; - } - function expressionInputDirtyCheck(newValue, oldValueOfValue) { if (newValue == null || oldValueOfValue == null) { // null/undefined @@ -12852,28 +14180,28 @@ function $ParseProvider() { return newValue === oldValueOfValue || (newValue !== newValue && oldValueOfValue !== oldValueOfValue); } - function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression) { - var inputExpressions = parsedExpression.$$inputs || - (parsedExpression.$$inputs = collectExpressionInputs(parsedExpression.inputs, [])); - + function inputsWatchDelegate(scope, listener, objectEquality, parsedExpression, prettyPrintExpression) { + var inputExpressions = parsedExpression.inputs; var lastResult; if (inputExpressions.length === 1) { - var oldInputValue = expressionInputDirtyCheck; // init to something unique so that equals check fails + var oldInputValueOf = expressionInputDirtyCheck; // init to something unique so that equals check fails inputExpressions = inputExpressions[0]; return scope.$watch(function expressionInputWatch(scope) { var newInputValue = inputExpressions(scope); - if (!expressionInputDirtyCheck(newInputValue, oldInputValue)) { - lastResult = parsedExpression(scope); - oldInputValue = newInputValue && getValueOf(newInputValue); + if (!expressionInputDirtyCheck(newInputValue, oldInputValueOf)) { + lastResult = parsedExpression(scope, undefined, undefined, [newInputValue]); + oldInputValueOf = newInputValue && getValueOf(newInputValue); } return lastResult; - }, listener, objectEquality); + }, listener, objectEquality, prettyPrintExpression); } var oldInputValueOfValues = []; + var oldInputValues = []; for (var i = 0, ii = inputExpressions.length; i < ii; i++) { oldInputValueOfValues[i] = expressionInputDirtyCheck; // init to something unique so that equals check fails + oldInputValues[i] = null; } return scope.$watch(function expressionInputsWatch(scope) { @@ -12882,16 +14210,17 @@ function $ParseProvider() { for (var i = 0, ii = inputExpressions.length; i < ii; i++) { var newInputValue = inputExpressions[i](scope); if (changed || (changed = !expressionInputDirtyCheck(newInputValue, oldInputValueOfValues[i]))) { + oldInputValues[i] = newInputValue; oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue); } } if (changed) { - lastResult = parsedExpression(scope); + lastResult = parsedExpression(scope, undefined, undefined, oldInputValues); } return lastResult; - }, listener, objectEquality); + }, listener, objectEquality, prettyPrintExpression); } function oneTimeWatchDelegate(scope, listener, objectEquality, parsedExpression) { @@ -12958,11 +14287,11 @@ function $ParseProvider() { watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate; - var fn = regularWatch ? function regularInterceptedExpression(scope, locals) { - var value = parsedExpression(scope, locals); + var fn = regularWatch ? function regularInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); return interceptorFn(value, scope, locals); - } : function oneTimeInterceptedExpression(scope, locals) { - var value = parsedExpression(scope, locals); + } : function oneTimeInterceptedExpression(scope, locals, assign, inputs) { + var value = parsedExpression(scope, locals, assign, inputs); var result = interceptorFn(value, scope, locals); // we only return the interceptor's result if the // initial value is defined (for bind-once) @@ -12977,7 +14306,7 @@ function $ParseProvider() { // If there is an interceptor, but no watchDelegate then treat the interceptor like // we treat filters - it is assumed to be a pure function unless flagged with $stateful fn.$$watchDelegate = inputsWatchDelegate; - fn.inputs = [parsedExpression]; + fn.inputs = parsedExpression.inputs ? parsedExpression.inputs : [parsedExpression]; } return fn; @@ -13125,9 +14454,11 @@ function $ParseProvider() { * provide a progress indication, before the promise is resolved or rejected. * * This method *returns a new promise* which is resolved or rejected via the return value of the - * `successCallback`, `errorCallback`. It also notifies via the return value of the - * `notifyCallback` method. The promise cannot be resolved or rejected from the notifyCallback - * method. + * `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved + * with the value which is resolved in that promise using + * [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)). + * It also notifies via the return value of the `notifyCallback` method. The promise cannot be + * resolved or rejected from the notifyCallback method. * * - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)` * @@ -13255,8 +14586,11 @@ function qFactory(nextTick, exceptionHandler) { this.$$state = { status: 0 }; } - Promise.prototype = { + extend(Promise.prototype, { then: function(onFulfilled, onRejected, progressBack) { + if (isUndefined(onFulfilled) && isUndefined(onRejected) && isUndefined(progressBack)) { + return this; + } var result = new Deferred(); this.$$state.pending = this.$$state.pending || []; @@ -13277,7 +14611,7 @@ function qFactory(nextTick, exceptionHandler) { return handleCallback(error, false, callback); }, progressBack); } - }; + }); //Faster, more basic than angular.bind http://jsperf.com/angular-bind-vs-custom-vs-native function simpleBind(context, fn) { @@ -13287,24 +14621,24 @@ function qFactory(nextTick, exceptionHandler) { } function processQueue(state) { - var fn, promise, pending; + var fn, deferred, pending; pending = state.pending; state.processScheduled = false; state.pending = undefined; for (var i = 0, ii = pending.length; i < ii; ++i) { - promise = pending[i][0]; + deferred = pending[i][0]; fn = pending[i][state.status]; try { if (isFunction(fn)) { - promise.resolve(fn(state.value)); + deferred.resolve(fn(state.value)); } else if (state.status === 1) { - promise.resolve(state.value); + deferred.resolve(state.value); } else { - promise.reject(state.value); + deferred.reject(state.value); } } catch (e) { - promise.reject(e); + deferred.reject(e); exceptionHandler(e); } } @@ -13324,7 +14658,7 @@ function qFactory(nextTick, exceptionHandler) { this.notify = simpleBind(this, this.notify); } - Deferred.prototype = { + extend(Deferred.prototype, { resolve: function(val) { if (this.promise.$$state.status) return; if (val === this.promise) { @@ -13387,7 +14721,7 @@ function qFactory(nextTick, exceptionHandler) { }); } } - }; + }); /** * @ngdoc method @@ -13470,6 +14804,9 @@ function qFactory(nextTick, exceptionHandler) { * the promise comes from a source that can't be trusted. * * @param {*} value Value or a promise + * @param {Function=} successCallback + * @param {Function=} errorCallback + * @param {Function=} progressCallback * @returns {Promise} Returns a promise of the passed value or promise */ @@ -13480,6 +14817,22 @@ function qFactory(nextTick, exceptionHandler) { return result.promise.then(callback, errback, progressBack); }; + /** + * @ngdoc method + * @name $q#resolve + * @kind function + * + * @description + * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6. + * + * @param {*} value Value or a promise + * @param {Function=} successCallback + * @param {Function=} errorCallback + * @param {Function=} progressCallback + * @returns {Promise} Returns a promise of the passed value or promise + */ + var resolve = when; + /** * @ngdoc method * @name $q#all @@ -13548,6 +14901,7 @@ function qFactory(nextTick, exceptionHandler) { $Q.defer = defer; $Q.reject = reject; $Q.when = when; + $Q.resolve = resolve; $Q.all = all; return $Q; @@ -13707,6 +15061,7 @@ function $RootScopeProvider() { this.$$childHead = this.$$childTail = null; this.$$listeners = {}; this.$$listenerCount = {}; + this.$$watchersCount = 0; this.$id = nextUid(); this.$$ChildScope = null; } @@ -13770,6 +15125,7 @@ function $RootScopeProvider() { this.$$destroyed = false; this.$$listeners = {}; this.$$listenerCount = {}; + this.$$watchersCount = 0; this.$$isolateBindings = null; } @@ -13979,11 +15335,11 @@ function $RootScopeProvider() { * comparing for reference equality. * @returns {function()} Returns a deregistration function for this listener. */ - $watch: function(watchExp, listener, objectEquality) { + $watch: function(watchExp, listener, objectEquality, prettyPrintExpression) { var get = $parse(watchExp); if (get.$$watchDelegate) { - return get.$$watchDelegate(this, listener, objectEquality, get); + return get.$$watchDelegate(this, listener, objectEquality, get, watchExp); } var scope = this, array = scope.$$watchers, @@ -13991,7 +15347,7 @@ function $RootScopeProvider() { fn: listener, last: initWatchVal, get: get, - exp: watchExp, + exp: prettyPrintExpression || watchExp, eq: !!objectEquality }; @@ -14007,9 +15363,12 @@ function $RootScopeProvider() { // we use unshift since we use a while loop in $digest for speed. // the while loop reads in reverse order. array.unshift(watcher); + incrementWatchersCount(this, 1); return function deregisterWatch() { - arrayRemove(array, watcher); + if (arrayRemove(array, watcher) >= 0) { + incrementWatchersCount(scope, -1); + } lastDirtyWatch = null; }; }, @@ -14417,7 +15776,7 @@ function $RootScopeProvider() { // Insanity Warning: scope depth-first traversal // yes, this code is a bit crazy, but it works and we have tests to prove it! // this piece should be kept in sync with the traversal in $broadcast - if (!(next = (current.$$childHead || + if (!(next = ((current.$$watchersCount && current.$$childHead) || (current !== target && current.$$nextSibling)))) { while (current !== target && !(next = current.$$nextSibling)) { current = current.$parent; @@ -14484,22 +15843,27 @@ function $RootScopeProvider() { * clean up DOM bindings before an element is removed from the DOM. */ $destroy: function() { - // we can't destroy the root scope or a scope that has been already destroyed + // We can't destroy a scope that has been already destroyed. if (this.$$destroyed) return; var parent = this.$parent; this.$broadcast('$destroy'); this.$$destroyed = true; - if (this === $rootScope) return; + if (this === $rootScope) { + //Remove handlers attached to window when $rootScope is removed + $browser.$$applicationDestroyed(); + } + + incrementWatchersCount(this, -this.$$watchersCount); for (var eventName in this.$$listenerCount) { decrementListenerCount(this, this.$$listenerCount[eventName], eventName); } // sever all the references to parent scopes (after this cleanup, the current scope should // not be retained by any of our references and should be eligible for garbage collection) - if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; - if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; + if (parent && parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; + if (parent && parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; @@ -14648,11 +16012,14 @@ function $RootScopeProvider() { $apply: function(expr) { try { beginPhase('$apply'); - return this.$eval(expr); + try { + return this.$eval(expr); + } finally { + clearPhase(); + } } catch (e) { $exceptionHandler(e); } finally { - clearPhase(); try { $rootScope.$digest(); } catch (e) { @@ -14913,6 +16280,11 @@ function $RootScopeProvider() { $rootScope.$$phase = null; } + function incrementWatchersCount(current, count) { + do { + current.$$watchersCount += count; + } while ((current = current.$parent)); + } function decrementListenerCount(current, count, name) { do { @@ -15445,7 +16817,7 @@ function $SceDelegateProvider() { * Here's an example of a binding in a privileged context: * * ``` - * + * *
    * ``` * @@ -15563,7 +16935,7 @@ function $SceDelegateProvider() { * - There are exactly **two wildcard sequences** - `*` and `**`. All other characters * match themselves. * - `*`: matches zero or more occurrences of any character other than one of the following 6 - * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and ';'. It's a useful wildcard for use + * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and '`;`'. It's a useful wildcard for use * in a whitelist. * - `**`: matches zero or more occurrences of *any* character. As such, it's not * appropriate for use in a scheme, domain, etc. as it would match too much. (e.g. @@ -15829,7 +17201,7 @@ function $SceProvider() { * escaping. * * @param {string} type The kind of context in which this value is safe for use. e.g. url, - * resource_url, html, js and css. + * resourceUrl, html, js and css. * @param {*} value The value that that should be considered trusted/safe. * @returns {*} A value that can be used to stand in for the provided `value` in places * where Angular expects a $sce.trustAs() return value. @@ -16098,7 +17470,7 @@ function $SnifferProvider() { this.$get = ['$window', '$document', function($window, $document) { var eventSupport = {}, android = - int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), + toInt((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]), boxee = /Boxee/i.test(($window.navigator || {}).userAgent), document = $document[0] || {}, vendorPrefix, @@ -16125,8 +17497,8 @@ function $SnifferProvider() { animations = !!(('animation' in bodyStyle) || (vendorPrefix + 'Animation' in bodyStyle)); if (android && (!transitions || !animations)) { - transitions = isString(document.body.style.webkitTransition); - animations = isString(document.body.style.webkitAnimation); + transitions = isString(bodyStyle.webkitTransition); + animations = isString(bodyStyle.webkitAnimation); } } @@ -16184,7 +17556,7 @@ var $compileMinErr = minErr('$compile'); * @param {string|TrustedResourceUrl} tpl The HTTP request template URL * @param {boolean=} ignoreRequestError Whether or not to ignore the exception when the request fails or the template is empty * - * @return {Promise} the HTTP Promise for the given. + * @return {Promise} a promise for the HTTP response data of the given URL. * * @property {number} totalPendingRequests total amount of pending template requests being downloaded. */ @@ -16222,12 +17594,14 @@ function $TemplateRequestProvider() { handleRequestFn.totalPendingRequests--; }) .then(function(response) { + $templateCache.put(tpl, response.data); return response.data; }, handleError); function handleError(resp) { if (!ignoreRequestError) { - throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl); + throw $compileMinErr('tpload', 'Failed to load template: {0} (HTTP status: {1} {2})', + tpl, resp.status, resp.statusText); } return $q.reject(resp); } @@ -16357,6 +17731,7 @@ function $$TestabilityProvider() { function $TimeoutProvider() { this.$get = ['$rootScope', '$browser', '$q', '$$q', '$exceptionHandler', function($rootScope, $browser, $q, $$q, $exceptionHandler) { + var deferreds = {}; @@ -16369,31 +17744,42 @@ function $TimeoutProvider() { * block and delegates any exceptions to * {@link ng.$exceptionHandler $exceptionHandler} service. * - * The return value of registering a timeout function is a promise, which will be resolved when - * the timeout is reached and the timeout function is executed. + * The return value of calling `$timeout` is a promise, which will be resolved when + * the delay has passed and the timeout function, if provided, is executed. * * To cancel a timeout request, call `$timeout.cancel(promise)`. * * In tests you can use {@link ngMock.$timeout `$timeout.flush()`} to * synchronously flush the queue of deferred functions. * - * @param {function()} fn A function, whose execution should be delayed. + * If you only want a promise that will be resolved after some specified delay + * then you can call `$timeout` without the `fn` function. + * + * @param {function()=} fn A function, whose execution should be delayed. * @param {number=} [delay=0] Delay in milliseconds. * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. + * @param {...*=} Pass additional parameters to the executed function. * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this * promise will be resolved with is the return value of the `fn` function. * */ function timeout(fn, delay, invokeApply) { - var skipApply = (isDefined(invokeApply) && !invokeApply), + if (!isFunction(fn)) { + invokeApply = delay; + delay = fn; + fn = noop; + } + + var args = sliceArgs(arguments, 3), + skipApply = (isDefined(invokeApply) && !invokeApply), deferred = (skipApply ? $$q : $q).defer(), promise = deferred.promise, timeoutId; timeoutId = $browser.defer(function() { try { - deferred.resolve(fn()); + deferred.resolve(fn.apply(null, args)); } catch (e) { deferred.reject(e); $exceptionHandler(e); @@ -16561,7 +17947,7 @@ function urlIsSameOrigin(requestUrl) { }]);
    - +
    @@ -16578,6 +17964,61 @@ function $WindowProvider() { this.$get = valueFn(window); } +/** + * @name $$cookieReader + * @requires $document + * + * @description + * This is a private service for reading cookies used by $http and ngCookies + * + * @return {Object} a key/value map of the current cookies + */ +function $$CookieReader($document) { + var rawDocument = $document[0] || {}; + var lastCookies = {}; + var lastCookieString = ''; + + function safeDecodeURIComponent(str) { + try { + return decodeURIComponent(str); + } catch (e) { + return str; + } + } + + return function() { + var cookieArray, cookie, i, index, name; + var currentCookieString = rawDocument.cookie || ''; + + if (currentCookieString !== lastCookieString) { + lastCookieString = currentCookieString; + cookieArray = lastCookieString.split('; '); + lastCookies = {}; + + for (i = 0; i < cookieArray.length; i++) { + cookie = cookieArray[i]; + index = cookie.indexOf('='); + if (index > 0) { //ignore nameless cookies + name = safeDecodeURIComponent(cookie.substring(0, index)); + // the first value that is seen for a cookie is the most + // specific one. values for the same cookie name that + // follow are for less specific paths. + if (lastCookies[name] === undefined) { + lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1)); + } + } + } + } + return lastCookies; + }; +} + +$$CookieReader.$inject = ['$document']; + +function $$CookieReaderProvider() { + this.$get = $$CookieReader; +} + /* global currencyFilter: true, dateFilter: true, filterFilter: true, @@ -16693,6 +18134,7 @@ function $FilterProvider($provide) { * your filters, then you can use capitalization (`myappSubsectionFilterx`) or underscores * (`myapp_subsection_filterx`). *
    + * @param {Function} factory If the first argument was a string, a factory function for the filter to be registered. * @returns {Object} Registered filter instance, or if a map of filters was provided then a map * of the registered filter instances. */ @@ -16774,9 +18216,11 @@ function $FilterProvider($provide) { * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but * **will** be matched by `{$: 'John'}`. * - * - `function(value, index)`: A predicate function can be used to write arbitrary filters. The - * function is called for each element of `array`. The final result is an array of those - * elements that the predicate returned true for. + * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters. + * The function is called for each element of the array, with the element, its index, and + * the entire array itself as arguments. + * + * The final result is an array of those elements that the predicate returned true for. * * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in * determining if the expected value (from the filter expression) and actual value (from @@ -16794,6 +18238,9 @@ function $FilterProvider($provide) { * - `false|undefined`: A short hand for a function which will look for a substring match in case * insensitive way. * + * Primitive values are converted to strings. Objects are not compared against primitives, + * unless they have a custom `toString` method (e.g. `Date` objects). + * * @example @@ -16804,7 +18251,7 @@ function $FilterProvider($provide) { {name:'Julie', phone:'555-8765'}, {name:'Juliette', phone:'555-5678'}]"> - Search: + @@ -16813,10 +18260,10 @@ function $FilterProvider($provide) {
    NamePhone

    - Any:
    - Name only
    - Phone only
    - Equality
    +
    +
    +
    +
    @@ -16864,9 +18311,15 @@ function $FilterProvider($provide) { */ function filterFilter() { return function(array, expression, comparator) { - if (!isArray(array)) return array; + if (!isArrayLike(array)) { + if (array == null) { + return array; + } else { + throw minErr('filter')('notarray', 'Expected array but received: {0}', array); + } + } - var expressionType = (expression !== null) ? typeof expression : 'null'; + var expressionType = getTypeForFilter(expression); var predicateFn; var matchAgainstAnyProp; @@ -16888,7 +18341,7 @@ function filterFilter() { return array; } - return array.filter(predicateFn); + return Array.prototype.filter.call(array, predicateFn); }; } @@ -16909,8 +18362,8 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) { // No substring matching against `null`; only match against `null` return actual === expected; } - if (isObject(actual) || isObject(expected)) { - // Prevent an object to be considered equal to a string like `'[object'` + if (isObject(expected) || (isObject(actual) && !hasCustomToString(actual))) { + // Should not compare primitives against objects, unless they have custom `toString` method return false; } @@ -16931,8 +18384,8 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) { } function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) { - var actualType = (actual !== null) ? typeof actual : 'null'; - var expectedType = (expected !== null) ? typeof expected : 'null'; + var actualType = getTypeForFilter(actual); + var expectedType = getTypeForFilter(expected); if ((expectedType === 'string') && (expected.charAt(0) === '!')) { return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp); @@ -16979,6 +18432,11 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc } } +// Used for easily differentiating between `null` and actual `object` +function getTypeForFilter(val) { + return (val === null) ? 'null' : typeof val; +} + /** * @ngdoc filter * @name currency @@ -17004,7 +18462,7 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc }]);
    -
    +
    default currency symbol ($): {{amount | currency}}
    custom currency identifier (USD$): {{amount | currency:"USD$"}} no fractions (0): {{amount | currency:"USD$":0}} @@ -17024,9 +18482,9 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc } element(by.model('amount')).clear(); element(by.model('amount')).sendKeys('-1234'); - expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)'); - expect(element(by.id('currency-custom')).getText()).toBe('(USD$1,234.00)'); - expect(element(by.id('currency-no-fractions')).getText()).toBe('(USD$1,234)'); + expect(element(by.id('currency-default')).getText()).toBe('-$1,234.00'); + expect(element(by.id('currency-custom')).getText()).toBe('-USD$1,234.00'); + expect(element(by.id('currency-no-fractions')).getText()).toBe('-USD$1,234'); }); @@ -17063,6 +18521,7 @@ function currencyFilter($locale) { * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned. * If the input is not a number an empty string is returned. * + * * @param {number|string} number Number to format. * @param {(number|string)=} fractionSize Number of decimal places to round the number to. * If this is not provided then the fraction size is computed from the current locale's number @@ -17079,7 +18538,7 @@ function currencyFilter($locale) { }]);
    - Enter number:
    +
    Default formatting: {{val | number}}
    No fractions: {{val | number:0}}
    Negative number: {{-val | number:4}} @@ -17119,16 +18578,22 @@ function numberFilter($locale) { var DECIMAL_SEP = '.'; function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { - if (!isFinite(number) || isObject(number)) return ''; + if (isObject(number)) return ''; var isNegative = number < 0; number = Math.abs(number); + + var isInfinity = number === Infinity; + if (!isInfinity && !isFinite(number)) return ''; + var numStr = number + '', formatedText = '', + hasExponent = false, parts = []; - var hasExponent = false; - if (numStr.indexOf('e') !== -1) { + if (isInfinity) formatedText = '\u221e'; + + if (!isInfinity && numStr.indexOf('e') !== -1) { var match = numStr.match(/([\d\.]+)e(-?)(\d+)/); if (match && match[2] == '-' && match[3] > fractionSize + 1) { number = 0; @@ -17138,7 +18603,7 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { } } - if (!hasExponent) { + if (!isInfinity && !hasExponent) { var fractionLen = (numStr.split(DECIMAL_SEP)[1] || '').length; // determine fractionSize if it is not specified @@ -17207,8 +18672,9 @@ function padNumber(num, digits, trim) { } num = '' + num; while (num.length < digits) num = '0' + num; - if (trim) + if (trim) { num = num.substr(num.length - digits); + } return neg + num; } @@ -17217,8 +18683,9 @@ function dateGetter(name, size, offset, trim) { offset = offset || 0; return function(date) { var value = date['get' + name](); - if (offset > 0 || value > -offset) + if (offset > 0 || value > -offset) { value += offset; + } if (value === 0 && offset == -12) value = 12; return padNumber(value, size, trim); }; @@ -17233,8 +18700,8 @@ function dateStrGetter(name, shortForm) { }; } -function timeZoneGetter(date) { - var zone = -1 * date.getTimezoneOffset(); +function timeZoneGetter(date, formats, offset) { + var zone = -1 * offset; var paddedZone = (zone >= 0) ? "+" : ""; paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) + @@ -17378,7 +18845,9 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+| * specified in the string input, the time is considered to be in the local timezone. * @param {string=} format Formatting rules (see Description). If not specified, * `mediumDate` is used. - * @param {string=} timezone Timezone to be used for formatting. Right now, only `'UTC'` is supported. + * @param {string=} timezone Timezone to be used for formatting. It understands UTC/GMT and the + * continental US time zone abbreviations, but for general use, use a time zone offset, for + * example, `'+0430'` (4 hours, 30 minutes east of the Greenwich meridian) * If not specified, the timezone of the browser will be used. * @returns {string} Formatted string or the input if input is not recognized as date/millis. * @@ -17424,13 +18893,13 @@ function dateFilter($locale) { timeSetter = match[8] ? date.setUTCHours : date.setHours; if (match[9]) { - tzHour = int(match[9] + match[10]); - tzMin = int(match[9] + match[11]); + tzHour = toInt(match[9] + match[10]); + tzMin = toInt(match[9] + match[11]); } - dateSetter.call(date, int(match[1]), int(match[2]) - 1, int(match[3])); - var h = int(match[4] || 0) - tzHour; - var m = int(match[5] || 0) - tzMin; - var s = int(match[6] || 0); + dateSetter.call(date, toInt(match[1]), toInt(match[2]) - 1, toInt(match[3])); + var h = toInt(match[4] || 0) - tzHour; + var m = toInt(match[5] || 0) - tzMin; + var s = toInt(match[6] || 0); var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000); timeSetter.call(date, h, m, s, ms); return date; @@ -17447,14 +18916,14 @@ function dateFilter($locale) { format = format || 'mediumDate'; format = $locale.DATETIME_FORMATS[format] || format; if (isString(date)) { - date = NUMBER_STRING.test(date) ? int(date) : jsonStringToDate(date); + date = NUMBER_STRING.test(date) ? toInt(date) : jsonStringToDate(date); } if (isNumber(date)) { date = new Date(date); } - if (!isDate(date)) { + if (!isDate(date) || !isFinite(date.getTime())) { return date; } @@ -17469,13 +18938,14 @@ function dateFilter($locale) { } } - if (timezone && timezone === 'UTC') { - date = new Date(date.getTime()); - date.setMinutes(date.getMinutes() + date.getTimezoneOffset()); + var dateTimezoneOffset = date.getTimezoneOffset(); + if (timezone) { + dateTimezoneOffset = timezoneToOffset(timezone, date.getTimezoneOffset()); + date = convertTimezoneToLocal(date, timezone, true); } forEach(parts, function(value) { fn = DATE_FORMATS[value]; - text += fn ? fn(date, $locale.DATETIME_FORMATS) + text += fn ? fn(date, $locale.DATETIME_FORMATS, dateTimezoneOffset) : value.replace(/(^'|'$)/g, '').replace(/''/g, "'"); }); @@ -17561,7 +19031,10 @@ var uppercaseFilter = valueFn(uppercase); * @param {string|number} limit The length of the returned array or string. If the `limit` number * is positive, `limit` number of items from the beginning of the source array/string are copied. * If the number is negative, `limit` number of items from the end of the source array/string - * are copied. The `limit` will be trimmed if it exceeds `array.length` + * are copied. The `limit` will be trimmed if it exceeds `array.length`. If `limit` is undefined, + * the input will be returned unchanged. + * @param {(string|number)=} begin Index at which to begin limitation. As a negative index, `begin` + * indicates an offset from the end of `input`. Defaults to `0`. * @returns {Array|string} A new sub-array or substring of length `limit` or less if input array * had less than `limit` elements. * @@ -17580,11 +19053,20 @@ var uppercaseFilter = valueFn(uppercase); }]);
    - Limit {{numbers}} to: +

    Output numbers: {{ numbers | limitTo:numLimit }}

    - Limit {{letters}} to: +

    Output letters: {{ letters | limitTo:letterLimit }}

    - Limit {{longNumber}} to: +

    Output long number: {{ longNumber | limitTo:longNumberLimit }}

    @@ -17633,21 +19115,28 @@ var uppercaseFilter = valueFn(uppercase); */ function limitToFilter() { - return function(input, limit) { - if (isNumber(input)) input = input.toString(); - if (!isArray(input) && !isString(input)) return input; - + return function(input, limit, begin) { if (Math.abs(Number(limit)) === Infinity) { limit = Number(limit); } else { - limit = int(limit); + limit = toInt(limit); } + if (isNaN(limit)) return input; - //NaN check on limit - if (limit) { - return limit > 0 ? input.slice(0, limit) : input.slice(limit); + if (isNumber(input)) input = input.toString(); + if (!isArray(input) && !isString(input)) return input; + + begin = (!begin || isNaN(begin)) ? 0 : toInt(begin); + begin = (begin < 0 && begin >= -input.length) ? input.length + begin : begin; + + if (limit >= 0) { + return input.slice(begin, begin + limit); } else { - return isString(input) ? "" : []; + if (begin === 0) { + return input.slice(limit, input.length); + } else { + return input.slice(Math.max(0, begin + limit), begin); + } } }; } @@ -17660,7 +19149,7 @@ function limitToFilter() { * @description * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically * for strings and numerically for numbers. Note: if you notice numbers are not being sorted - * correctly, make sure they are actually being saved as numbers and not strings. + * as expected, make sure they are actually being saved as numbers and not strings. * * @param {Array} array The array to sort. * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be @@ -17735,19 +19224,40 @@ function limitToFilter() { {name:'Mike', phone:'555-4321', age:21}, {name:'Adam', phone:'555-5678', age:35}, {name:'Julie', phone:'555-8765', age:29}]; - $scope.predicate = '-age'; + $scope.predicate = 'age'; + $scope.reverse = true; + $scope.order = function(predicate) { + $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false; + $scope.predicate = predicate; + }; }]); +
    Sorting predicate = {{predicate}}; reverse = {{reverse}}

    [ unsorted ]
    NamePhone
    - - - + + + @@ -17807,90 +19317,120 @@ function limitToFilter() { orderByFilter.$inject = ['$parse']; function orderByFilter($parse) { return function(array, sortPredicate, reverseOrder) { + if (!(isArrayLike(array))) return array; - sortPredicate = isArray(sortPredicate) ? sortPredicate : [sortPredicate]; + + if (!isArray(sortPredicate)) { sortPredicate = [sortPredicate]; } if (sortPredicate.length === 0) { sortPredicate = ['+']; } - sortPredicate = sortPredicate.map(function(predicate) { - var descending = false, get = predicate || identity; - if (isString(predicate)) { - if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { - descending = predicate.charAt(0) == '-'; - predicate = predicate.substring(1); - } - if (predicate === '') { - // Effectively no predicate was passed so we compare identity - return reverseComparator(compare, descending); - } - get = $parse(predicate); - if (get.constant) { - var key = get(); - return reverseComparator(function(a, b) { - return compare(a[key], b[key]); - }, descending); - } - } - return reverseComparator(function(a, b) { - return compare(get(a),get(b)); - }, descending); - }); - return slice.call(array).sort(reverseComparator(comparator, reverseOrder)); - function comparator(o1, o2) { - for (var i = 0; i < sortPredicate.length; i++) { - var comp = sortPredicate[i](o1, o2); - if (comp !== 0) return comp; - } - return 0; - } - function reverseComparator(comp, descending) { - return descending - ? function(a, b) {return comp(b,a);} - : comp; + var predicates = processPredicates(sortPredicate, reverseOrder); + // Add a predicate at the end that evaluates to the element index. This makes the + // sort stable as it works as a tie-breaker when all the input predicates cannot + // distinguish between two elements. + predicates.push({ get: function() { return {}; }, descending: reverseOrder ? -1 : 1}); + + // The next three lines are a version of a Swartzian Transform idiom from Perl + // (sometimes called the Decorate-Sort-Undecorate idiom) + // See https://en.wikipedia.org/wiki/Schwartzian_transform + var compareValues = Array.prototype.map.call(array, getComparisonObject); + compareValues.sort(doComparison); + array = compareValues.map(function(item) { return item.value; }); + + return array; + + function getComparisonObject(value, index) { + return { + value: value, + predicateValues: predicates.map(function(predicate) { + return getPredicateValue(predicate.get(value), index); + }) + }; } - function isPrimitive(value) { - switch (typeof value) { - case 'number': /* falls through */ - case 'boolean': /* falls through */ - case 'string': - return true; - default: - return false; - } - } - - function objectToString(value) { - if (value === null) return 'null'; - if (typeof value.valueOf === 'function') { - value = value.valueOf(); - if (isPrimitive(value)) return value; - } - if (typeof value.toString === 'function') { - value = value.toString(); - if (isPrimitive(value)) return value; - } - return ''; - } - - function compare(v1, v2) { - var t1 = typeof v1; - var t2 = typeof v2; - if (t1 === t2 && t1 === "object") { - v1 = objectToString(v1); - v2 = objectToString(v2); - } - if (t1 === t2) { - if (t1 === "string") { - v1 = v1.toLowerCase(); - v2 = v2.toLowerCase(); - } - if (v1 === v2) return 0; - return v1 < v2 ? -1 : 1; - } else { - return t1 < t2 ? -1 : 1; + function doComparison(v1, v2) { + var result = 0; + for (var index=0, length = predicates.length; index < length; ++index) { + result = compare(v1.predicateValues[index], v2.predicateValues[index]) * predicates[index].descending; + if (result) break; } + return result; } }; + + function processPredicates(sortPredicate, reverseOrder) { + reverseOrder = reverseOrder ? -1 : 1; + return sortPredicate.map(function(predicate) { + var descending = 1, get = identity; + + if (isFunction(predicate)) { + get = predicate; + } else if (isString(predicate)) { + if ((predicate.charAt(0) == '+' || predicate.charAt(0) == '-')) { + descending = predicate.charAt(0) == '-' ? -1 : 1; + predicate = predicate.substring(1); + } + if (predicate !== '') { + get = $parse(predicate); + if (get.constant) { + var key = get(); + get = function(value) { return value[key]; }; + } + } + } + return { get: get, descending: descending * reverseOrder }; + }); + } + + function isPrimitive(value) { + switch (typeof value) { + case 'number': /* falls through */ + case 'boolean': /* falls through */ + case 'string': + return true; + default: + return false; + } + } + + function objectValue(value, index) { + // If `valueOf` is a valid function use that + if (typeof value.valueOf === 'function') { + value = value.valueOf(); + if (isPrimitive(value)) return value; + } + // If `toString` is a valid function and not the one from `Object.prototype` use that + if (hasCustomToString(value)) { + value = value.toString(); + if (isPrimitive(value)) return value; + } + // We have a basic object so we use the position of the object in the collection + return index; + } + + function getPredicateValue(value, index) { + var type = typeof value; + if (value === null) { + type = 'string'; + value = 'null'; + } else if (type === 'string') { + value = value.toLowerCase(); + } else if (type === 'object') { + value = objectValue(value, index); + } + return { value: value, type: type }; + } + + function compare(v1, v2) { + var result = 0; + if (v1.type === v2.type) { + if (v1.value !== v2.value) { + result = v1.value < v2.value ? -1 : 1; + } + } else { + result = v1.type < v2.type ? -1 : 1; + } + return result; + } } function ngDirective(directive) { @@ -17919,7 +19459,7 @@ function ngDirective(directive) { var htmlAnchorDirective = valueFn({ restrict: 'E', compile: function(element, attr) { - if (!attr.href && !attr.xlinkHref && !attr.name) { + if (!attr.href && !attr.xlinkHref) { return function(scope, element) { // If the linked element is not an anchor tag anymore, do nothing if (element[0].nodeName.toLowerCase() !== 'a') return; @@ -18006,7 +19546,7 @@ var htmlAnchorDirective = valueFn({ }, 5000, 'page should navigate to /123'); }); - xit('should execute ng-click but not reload when href empty string and name specified', function() { + it('should execute ng-click but not reload when href empty string and name specified', function() { element(by.id('link-4')).click(); expect(element(by.model('value')).getAttribute('value')).toEqual('4'); expect(element(by.id('link-4')).getAttribute('href')).toBe(''); @@ -18051,12 +19591,12 @@ var htmlAnchorDirective = valueFn({ * * The buggy way to write it: * ```html - * + * Description * ``` * * The correct way to write it: * ```html - * + * Description * ``` * * @element IMG @@ -18077,12 +19617,12 @@ var htmlAnchorDirective = valueFn({ * * The buggy way to write it: * ```html - * + * Description * ``` * * The correct way to write it: * ```html - * + * Description * ``` * * @element IMG @@ -18119,7 +19659,7 @@ var htmlAnchorDirective = valueFn({ * @example - Click me to toggle:
    +
    @@ -18144,6 +19684,13 @@ var htmlAnchorDirective = valueFn({ * @priority 100 * * @description + * Sets the `checked` attribute on the element, if the expression inside `ngChecked` is truthy. + * + * Note that this directive should not be used together with {@link ngModel `ngModel`}, + * as this can lead to unexpected behavior. + * + * ### Why do we need `ngChecked`? + * * The HTML specification does not require browsers to preserve the values of boolean attributes * such as checked. (Their presence means true and their absence means false.) * If we put an Angular interpolation expression into such an attribute then the @@ -18154,8 +19701,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to check both:
    - +
    +
    it('should check both checkBoxes', function() { @@ -18168,7 +19715,7 @@ var htmlAnchorDirective = valueFn({ * * @element INPUT * @param {expression} ngChecked If the {@link guide/expression expression} is truthy, - * then special attribute "checked" will be set on the element + * then the `checked` attribute will be set on the element */ @@ -18189,8 +19736,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to make text readonly:
    - +
    +
    it('should toggle readonly attr', function() { @@ -18225,8 +19772,8 @@ var htmlAnchorDirective = valueFn({ * @example - Check me to select:
    -
    + @@ -18262,7 +19809,7 @@ var htmlAnchorDirective = valueFn({ * @example - Check me check multiple:
    +
    Show/Hide me
    @@ -18283,22 +19830,34 @@ var htmlAnchorDirective = valueFn({ var ngAttributeAliasDirectives = {}; - // boolean attrs are evaluated forEach(BOOLEAN_ATTR, function(propName, attrName) { // binding to multiple is not supported if (propName == "multiple") return; + function defaultLinkFn(scope, element, attr) { + scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { + attr.$set(attrName, !!value); + }); + } + var normalized = directiveNormalize('ng-' + attrName); + var linkFn = defaultLinkFn; + + if (propName === 'checked') { + linkFn = function(scope, element, attr) { + // ensuring ngChecked doesn't interfere with ngModel when both are set on the same input + if (attr.ngModel !== attr[normalized]) { + defaultLinkFn(scope, element, attr); + } + }; + } + ngAttributeAliasDirectives[normalized] = function() { return { restrict: 'A', priority: 100, - link: function(scope, element, attr) { - scope.$watch(attr[normalized], function ngBooleanAttrWatchAction(value) { - attr.$set(attrName, !!value); - }); - } + link: linkFn }; }; }); @@ -18814,7 +20373,7 @@ function FormController(element, attrs, $scope, $animate, $interpolate) { * related scope, under this name. */ var formDirectiveFactory = function(isNgForm) { - return ['$timeout', function($timeout) { + return ['$timeout', '$parse', function($timeout, $parse) { var formDirective = { name: 'form', restrict: isNgForm ? 'EAC' : 'E', @@ -18856,21 +20415,21 @@ var formDirectiveFactory = function(isNgForm) { } var parentFormCtrl = controller.$$parentForm; + var setter = nameAttr ? getSetter(controller.$name) : noop; if (nameAttr) { - setter(scope, null, controller.$name, controller, controller.$name); + setter(scope, controller); attr.$observe(nameAttr, function(newValue) { if (controller.$name === newValue) return; - setter(scope, null, controller.$name, undefined, controller.$name); + setter(scope, undefined); parentFormCtrl.$$renameControl(controller, newValue); - setter(scope, null, controller.$name, controller, controller.$name); + setter = getSetter(controller.$name); + setter(scope, controller); }); } formElement.on('$destroy', function() { parentFormCtrl.$removeControl(controller); - if (nameAttr) { - setter(scope, null, attr[nameAttr], undefined, controller.$name); - } + setter(scope, undefined); extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards }); } @@ -18879,6 +20438,14 @@ var formDirectiveFactory = function(isNgForm) { }; return formDirective; + + function getSetter(expression) { + if (expression === '') { + //create an assignable expression, so forms with an empty name can be renamed later + return $parse('this[""]').assign; + } + return $parse(expression).assign || noop; + } }]; }; @@ -18898,7 +20465,7 @@ var ngFormDirective = formDirectiveFactory(true); var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/; var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/; var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i; -var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/; +var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/; var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/; var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/; var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/; @@ -18931,9 +20498,13 @@ var inputType = { * as in the ngPattern directive. * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match * a RegExp found by evaluating the Angular expression given in the attribute value. - * If the expression evaluates to a RegExp object then this is used directly. - * If the expression is a string then it will be converted to a RegExp after wrapping it in `^` and `$` - * characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. @@ -18953,13 +20524,16 @@ var inputType = { }]);
    - Single word: - - Required! - - Single word only! - + +
    + + Required! + + Single word only! +
    text = {{example.text}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19038,13 +20612,15 @@ var inputType = { }]); - Pick a date in 2013: + - - Required! - - Not a valid date! +
    + + Required! + + Not a valid date! +
    value = {{example.value | date: "yyyy-MM-dd"}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19131,13 +20707,15 @@ var inputType = { }]); - Pick a date between in 2013: + - - Required! - - Not a valid date! +
    + + Required! + + Not a valid date! +
    value = {{example.value | date: "yyyy-MM-ddTHH:mm:ss"}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19225,13 +20803,15 @@ var inputType = { }]); - Pick a between 8am and 5pm: + - - Required! - - Not a valid date! +
    + + Required! + + Not a valid date! +
    value = {{example.value | date: "HH:mm:ss"}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19318,13 +20898,17 @@ var inputType = { }]); - Pick a date between in 2013: - - - Required! - - Not a valid date! + +
    + + Required! + + Not a valid date! +
    value = {{example.value | date: "yyyy-Www"}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19411,13 +20995,15 @@ var inputType = { }]); - Pick a month in 2013: + - - Required! - - Not a valid month! +
    + + Required! + + Not a valid month! +
    value = {{example.value | date: "yyyy-MM"}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19478,6 +21064,16 @@ var inputType = { * error docs for more information and an example of how to convert your model if necessary. * * + * ## Issues with HTML5 constraint validation + * + * In browsers that follow the + * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29), + * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}. + * If a non-number is entered in the input, the browser will report the value as an empty string, + * which means the view / model values in `ngModel` and subsequently the scope value + * will also be an empty string. + * + * * @param {string} ngModel Assignable angular expression to data-bind to. * @param {string=} name Property name of the form under which the control is published. * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`. @@ -19496,9 +21092,13 @@ var inputType = { * as in the ngPattern directive. * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match * a RegExp found by evaluating the Angular expression given in the attribute value. - * If the expression evaluates to a RegExp object then this is used directly. - * If the expression is a string then it will be converted to a RegExp after wrapping it in `^` and `$` - * characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -19514,12 +21114,16 @@ var inputType = { }]); - Number: - - Required! - - Not valid number! + +
    + + Required! + + Not valid number! +
    value = {{example.value}}
    myForm.input.$valid = {{myForm.input.$valid}}
    myForm.input.$error = {{myForm.input.$error}}
    @@ -19586,9 +21190,13 @@ var inputType = { * as in the ngPattern directive. * @param {string=} ngPattern Sets `pattern` validation error key if the ngModel value does not match * a RegExp found by evaluating the Angular expression given in the attribute value. - * If the expression evaluates to a RegExp object then this is used directly. - * If the expression is a string then it will be converted to a RegExp after wrapping it in `^` and `$` - * characters. For instance, `"abc"` will be converted to `new RegExp('^abc$')`. + * If the expression evaluates to a RegExp object, then this is used directly. + * If the expression evaluates to a string, then it will be converted to a RegExp + * after wrapping it in `^` and `$` characters. For instance, `"abc"` will be converted to + * `new RegExp('^abc$')`.
    + * **Note:** Avoid using the `g` flag on the RegExp, as it will cause each successive search to + * start at the index of the last search's match, thus not taking the whole input value into + * account. * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @@ -19604,11 +21212,15 @@ var inputType = { }]); - URL: - - Required! - - Not valid url! +
    @@ -20546,7 +22207,7 @@ var ngValueDirective = function() { }]);
    - Enter name:
    +
    Hello !
    @@ -20607,8 +22268,8 @@ var ngBindDirective = ['$compile', function($compile) { }]);
    - Salutation:
    - Name:
    +
    +
    
            
    @@ -20833,7 +22494,9 @@ function classDirective(name, selector) { } function digestClassCounts(classes, count) { - var classCounts = element.data('$classCounts') || {}; + // Use createMap() to prevent class assumptions involving property + // names in Object.prototype + var classCounts = element.data('$classCounts') || createMap(); var classesToUpdate = []; forEach(classes, function(className) { if (count > 0 || classCounts[className]) { @@ -20890,12 +22553,15 @@ function classDirective(name, selector) { } function arrayClasses(classVal) { + var classes = []; if (isArray(classVal)) { - return classVal; + forEach(classVal, function(v) { + classes = classes.concat(arrayClasses(v)); + }); + return classes; } else if (isString(classVal)) { return classVal.split(' '); } else if (isObject(classVal)) { - var classes = []; forEach(classVal, function(v, k) { if (v) { classes = classes.concat(k.split(' ')); @@ -20923,16 +22589,18 @@ function classDirective(name, selector) { * 1. If the expression evaluates to a string, the string should be one or more space-delimited class * names. * - * 2. If the expression evaluates to an array, each element of the array should be a string that is - * one or more space-delimited class names. - * - * 3. If the expression evaluates to an object, then for each key-value pair of the + * 2. If the expression evaluates to an object, then for each key-value pair of the * object with a truthy value the corresponding key is used as a class name. * + * 3. If the expression evaluates to an array, each element of the array should either be a string as in + * type 1 or an object as in type 2. This means that you can mix strings and objects together in an array + * to give you more control over what CSS classes appear. See the code below for an example of this. + * + * * The directive won't add duplicate classes if a particular class was already set. * - * When the expression changes, the previously added classes are removed and only then the - * new classes are added. + * When the expression changes, the previously added classes are removed and only then are the + * new classes added. * * @animations * **add** - happens just before the class is applied to the elements @@ -20949,22 +22617,39 @@ function classDirective(name, selector) { * @example Example that demonstrates basic bindings via ngClass directive. -

    Map Syntax Example

    - deleted (apply "strike" class)
    - important (apply "bold" class)
    - error (apply "red" class) +

    Map Syntax Example

    +
    +
    +

    Using String Syntax

    - +

    Using Array Syntax

    -
    -
    -
    +
    +
    +
    +
    +

    Using Array and Map Syntax

    +
    +
    .strike { - text-decoration: line-through; + text-decoration: line-through; } .bold { font-weight: bold; @@ -20972,6 +22657,13 @@ function classDirective(name, selector) { .red { color: red; } + .has-error { + color: red; + background-color: yellow; + } + .orange { + color: orange; + } var ps = element.all(by.css('p')); @@ -20979,13 +22671,13 @@ function classDirective(name, selector) { it('should let you toggle the class', function() { expect(ps.first().getAttribute('class')).not.toMatch(/bold/); - expect(ps.first().getAttribute('class')).not.toMatch(/red/); + expect(ps.first().getAttribute('class')).not.toMatch(/has-error/); element(by.model('important')).click(); expect(ps.first().getAttribute('class')).toMatch(/bold/); element(by.model('error')).click(); - expect(ps.first().getAttribute('class')).toMatch(/red/); + expect(ps.first().getAttribute('class')).toMatch(/has-error/); }); it('should let you toggle string example', function() { @@ -20996,11 +22688,18 @@ function classDirective(name, selector) { }); it('array example should have 3 classes', function() { - expect(ps.last().getAttribute('class')).toBe(''); + expect(ps.get(2).getAttribute('class')).toBe(''); element(by.model('style1')).sendKeys('bold'); element(by.model('style2')).sendKeys('strike'); element(by.model('style3')).sendKeys('red'); - expect(ps.last().getAttribute('class')).toBe('bold strike red'); + expect(ps.get(2).getAttribute('class')).toBe('bold strike red'); + }); + + it('array with map example should have 2 classes', function() { + expect(ps.last().getAttribute('class')).toBe(''); + element(by.model('style4')).sendKeys('bold'); + element(by.model('warning')).click(); + expect(ps.last().getAttribute('class')).toBe('bold orange'); });
    @@ -21050,8 +22749,8 @@ function classDirective(name, selector) { The ngClass directive still supports CSS3 Transitions/Animations even if they do not follow the ngAnimate CSS naming structure. Upon animation ngAnimate will apply supplementary CSS classes to track the start and end of an animation, but this will not hinder any pre-existing CSS transitions already on the element. To get an idea of what happens during a class-based animation, be sure - to view the step by step details of {@link ng.$animate#addClass $animate.addClass} and - {@link ng.$animate#removeClass $animate.removeClass}. + to view the step by step details of {@link $animate#addClass $animate.addClass} and + {@link $animate#removeClass $animate.removeClass}. */ var ngClassDirective = classDirective('', true); @@ -21274,20 +22973,20 @@ var ngCloakDirective = ngDirective({ * * *
    - * Name: - * [ greet ]
    + * + *
    * Contact: *
      *
    • - * * * * - * - * [ clear - * | X ] + * + * + * *
    • - *
    • [ add ]
    • + *
    • *
    *
    *
    @@ -21337,12 +23036,12 @@ var ngCloakDirective = ngDirective({ * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe('john.smith@example.org'); * - * firstRepeat.element(by.linkText('clear')).click(); + * firstRepeat.element(by.buttonText('clear')).click(); * * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe(''); * - * container.element(by.linkText('add')).click(); + * container.element(by.buttonText('add')).click(); * * expect(container.element(by.repeater('contact in settings.contacts').row(2)) * .element(by.model('contact.value')) @@ -21357,20 +23056,20 @@ var ngCloakDirective = ngDirective({ * * *
    - * Name: - * [ greet ]
    + * + *
    * Contact: *
      *
    • - * * * * - * - * [ clear - * | X ] + * + * + * *
    • - *
    • [ add ]
    • + *
    • [ ]
    • *
    *
    *
    @@ -21420,12 +23119,12 @@ var ngCloakDirective = ngDirective({ * expect(secondRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe('john.smith@example.org'); * - * firstRepeat.element(by.linkText('clear')).click(); + * firstRepeat.element(by.buttonText('clear')).click(); * * expect(firstRepeat.element(by.model('contact.value')).getAttribute('value')) * .toBe(''); * - * container.element(by.linkText('add')).click(); + * container.element(by.buttonText('add')).click(); * * expect(container.element(by.repeater('contact in contacts').row(2)) * .element(by.model('contact.value')) @@ -21451,27 +23150,29 @@ var ngControllerDirective = [function() { * * @element html * @description - * Enables [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) support. + * + * Angular has some features that can break certain + * [CSP (Content Security Policy)](https://developer.mozilla.org/en/Security/CSP) rules. + * + * If you intend to implement these rules then you must tell Angular not to use these features. * * This is necessary when developing things like Google Chrome Extensions or Universal Windows Apps. * - * CSP forbids apps to use `eval` or `Function(string)` generated functions (among other things). - * For Angular to be CSP compatible there are only two things that we need to do differently: * - * - don't use `Function` constructor to generate optimized value getters - * - don't inject custom stylesheet into the document + * The following rules affect Angular: * - * AngularJS uses `Function(string)` generated functions as a speed optimization. Applying the `ngCsp` - * directive will cause Angular to use CSP compatibility mode. When this mode is on AngularJS will - * evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will - * be raised. + * * `unsafe-eval`: this rule forbids apps to use `eval` or `Function(string)` generated functions + * (among other things). Angular makes use of this in the {@link $parse} service to provide a 30% + * increase in the speed of evaluating Angular expressions. * - * CSP forbids JavaScript to inline stylesheet rules. In non CSP mode Angular automatically - * includes some CSS rules (e.g. {@link ng.directive:ngCloak ngCloak}). - * To make those directives work in CSP mode, include the `angular-csp.css` manually. + * * `unsafe-inline`: this rule forbids apps from inject custom styles into the document. Angular + * makes use of this to include some CSS rules (e.g. {@link ngCloak} and {@link ngHide}). + * To make these directives work when a CSP rule is blocking inline styles, you must link to the + * `angular-csp.css` in your HTML manually. * - * Angular tries to autodetect if CSP is active and automatically turn on the CSP-safe mode. This - * autodetection however triggers a CSP error to be logged in the console: + * If you do not provide `ngCsp` then Angular tries to autodetect if CSP is blocking unsafe-eval + * and automatically deactivates this feature in the {@link $parse} service. This autodetection, + * however, triggers a CSP error to be logged in the console: * * ``` * Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of @@ -21480,11 +23181,39 @@ var ngControllerDirective = [function() { * ``` * * This error is harmless but annoying. To prevent the error from showing up, put the `ngCsp` - * directive on the root element of the application or on the `angular.js` script tag, whichever - * appears first in the html document. + * directive on an element of the HTML document that appears before the ` +
    +
      +
    • + + + +
    • +
    • + +
    • +
    +
    +
    +
    + +
    + +
    + + + + Select . +
    +
    + Currently selected: {{ {selected_color:myColor} }} +
    +
    +
    +
    + + it('should check ng-options', function() { + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('red'); + element.all(by.model('myColor')).first().click(); + element.all(by.css('select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('black'); + element(by.css('.nullable select[ng-model="myColor"]')).click(); + element.all(by.css('.nullable select[ng-model="myColor"] option')).first().click(); + expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('null'); + }); + +
    + */ + +// jshint maxlen: false +// //00001111111111000000000002222222222000000000000000000000333333333300000000000000000000000004444444444400000000000005555555555555550000000006666666666666660000000777777777777777000000000000000888888888800000000000000000009999999999 +var NG_OPTIONS_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/; + // 1: value expression (valueFn) + // 2: label expression (displayFn) + // 3: group by expression (groupByFn) + // 4: disable when expression (disableWhenFn) + // 5: array item variable name + // 6: object item key variable name + // 7: object item value variable name + // 8: collection expression + // 9: track by expression +// jshint maxlen: 100 + + +var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) { + + function parseOptionsExpression(optionsExp, selectElement, scope) { + + var match = optionsExp.match(NG_OPTIONS_REGEXP); + if (!(match)) { + throw ngOptionsMinErr('iexp', + "Expected expression in form of " + + "'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'" + + " but got '{0}'. Element: {1}", + optionsExp, startingTag(selectElement)); + } + + // Extract the parts from the ngOptions expression + + // The variable name for the value of the item in the collection + var valueName = match[5] || match[7]; + // The variable name for the key of the item in the collection + var keyName = match[6]; + + // An expression that generates the viewValue for an option if there is a label expression + var selectAs = / as /.test(match[0]) && match[1]; + // An expression that is used to track the id of each object in the options collection + var trackBy = match[9]; + // An expression that generates the viewValue for an option if there is no label expression + var valueFn = $parse(match[2] ? match[1] : valueName); + var selectAsFn = selectAs && $parse(selectAs); + var viewValueFn = selectAsFn || valueFn; + var trackByFn = trackBy && $parse(trackBy); + + // Get the value by which we are going to track the option + // if we have a trackFn then use that (passing scope and locals) + // otherwise just hash the given viewValue + var getTrackByValueFn = trackBy ? + function(value, locals) { return trackByFn(scope, locals); } : + function getHashOfValue(value) { return hashKey(value); }; + var getTrackByValue = function(value, key) { + return getTrackByValueFn(value, getLocals(value, key)); + }; + + var displayFn = $parse(match[2] || match[1]); + var groupByFn = $parse(match[3] || ''); + var disableWhenFn = $parse(match[4] || ''); + var valuesFn = $parse(match[8]); + + var locals = {}; + var getLocals = keyName ? function(value, key) { + locals[keyName] = key; + locals[valueName] = value; + return locals; + } : function(value) { + locals[valueName] = value; + return locals; + }; + + + function Option(selectValue, viewValue, label, group, disabled) { + this.selectValue = selectValue; + this.viewValue = viewValue; + this.label = label; + this.group = group; + this.disabled = disabled; + } + + function getOptionValuesKeys(optionValues) { + var optionValuesKeys; + + if (!keyName && isArrayLike(optionValues)) { + optionValuesKeys = optionValues; + } else { + // if object, extract keys, in enumeration order, unsorted + optionValuesKeys = []; + for (var itemKey in optionValues) { + if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') { + optionValuesKeys.push(itemKey); + } + } + } + return optionValuesKeys; + } + + return { + trackBy: trackBy, + getTrackByValue: getTrackByValue, + getWatchables: $parse(valuesFn, function(optionValues) { + // Create a collection of things that we would like to watch (watchedArray) + // so that they can all be watched using a single $watchCollection + // that only runs the handler once if anything changes + var watchedArray = []; + optionValues = optionValues || []; + + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + + var locals = getLocals(optionValues[key], key); + var selectValue = getTrackByValueFn(optionValues[key], locals); + watchedArray.push(selectValue); + + // Only need to watch the displayFn if there is a specific label expression + if (match[2] || match[1]) { + var label = displayFn(scope, locals); + watchedArray.push(label); + } + + // Only need to watch the disableWhenFn if there is a specific disable expression + if (match[4]) { + var disableWhen = disableWhenFn(scope, locals); + watchedArray.push(disableWhen); + } + } + return watchedArray; + }), + + getOptions: function() { + + var optionItems = []; + var selectValueMap = {}; + + // The option values were already computed in the `getWatchables` fn, + // which must have been called to trigger `getOptions` + var optionValues = valuesFn(scope) || []; + var optionValuesKeys = getOptionValuesKeys(optionValues); + var optionValuesLength = optionValuesKeys.length; + + for (var index = 0; index < optionValuesLength; index++) { + var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index]; + var value = optionValues[key]; + var locals = getLocals(value, key); + var viewValue = viewValueFn(scope, locals); + var selectValue = getTrackByValueFn(viewValue, locals); + var label = displayFn(scope, locals); + var group = groupByFn(scope, locals); + var disabled = disableWhenFn(scope, locals); + var optionItem = new Option(selectValue, viewValue, label, group, disabled); + + optionItems.push(optionItem); + selectValueMap[selectValue] = optionItem; + } + + return { + items: optionItems, + selectValueMap: selectValueMap, + getOptionFromViewValue: function(value) { + return selectValueMap[getTrackByValue(value)]; + }, + getViewValueFromOption: function(option) { + // If the viewValue could be an object that may be mutated by the application, + // we need to make a copy and not return the reference to the value on the option. + return trackBy ? angular.copy(option.viewValue) : option.viewValue; + } + }; + } + }; + } + + + // we can't just jqLite('
    */ -var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interpolate) { +var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale, $interpolate, $log) { var BRACE = /{}/g, IS_WHEN = /^when(Minus)?(.+)$/; return { - restrict: 'EA', link: function(scope, element, attr) { var numberExp = attr.count, whenExp = attr.$attr.when && element.attr(attr.$attr.when), // we have {{}} in attrs @@ -24301,9 +26775,18 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp // If both `count` and `lastCount` are NaN, we don't need to re-register a watch. // In JS `NaN !== NaN`, so we have to exlicitly check. - if ((count !== lastCount) && !(countIsNaN && isNaN(lastCount))) { + if ((count !== lastCount) && !(countIsNaN && isNumber(lastCount) && isNaN(lastCount))) { watchRemover(); - watchRemover = scope.$watch(whensExpFns[count], updateElementText); + var whenExpFn = whensExpFns[count]; + if (isUndefined(whenExpFn)) { + if (newVal != null) { + $log.debug("ngPluralize: no rule defined for '" + count + "' in " + whenExp); + } + watchRemover = noop; + updateElementText(); + } else { + watchRemover = scope.$watch(whenExpFn, updateElementText); + } lastCount = count; } }); @@ -24318,6 +26801,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp /** * @ngdoc directive * @name ngRepeat + * @multiElement * * @description * The `ngRepeat` directive instantiates a template once per item from a collection. Each template @@ -24338,6 +26822,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp * Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}. * This may be useful when, for instance, nesting ngRepeats. * + * * # Iterating over object properties * * It is possible to get `ngRepeat` to iterate over the properties of an object using the following @@ -24347,19 +26832,20 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp *
    ...
    * ``` * - * You need to be aware that the JavaScript specification does not define what order - * it will return the keys for an object. In order to have a guaranteed deterministic order - * for the keys, Angular versions up to and including 1.3 **sort the keys alphabetically**. + * You need to be aware that the JavaScript specification does not define the order of keys + * returned for an object. (To mitigate this in Angular 1.3 the `ngRepeat` directive + * used to sort the keys alphabetically.) + * + * Version 1.4 removed the alphabetic sorting. We now rely on the order returned by the browser + * when running `for key in myObj`. It seems that browsers generally follow the strategy of providing + * keys in the order in which they were defined, although there are exceptions when keys are deleted + * and reinstated. See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete#Cross-browser_issues * * If this is not desired, the recommended workaround is to convert your object into an array * that is sorted into the order that you prefer before providing it to `ngRepeat`. You could * do this with a filter such as [toArrayFilter](http://ngmodules.org/modules/angular-toArrayFilter) * or implement a `$watch` on the object yourself. * - * In version 1.4 we will remove the sorting, since it seems that browsers generally follow the - * strategy of providing keys in the order in which they were defined, although there are exceptions - * when keys are deleted and reinstated. - * * * # Tracking and Duplicates * @@ -24410,6 +26896,15 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp * * ``` * + *
    + * **Note:** `track by` must always be the last expression: + *
    + * ``` + *
    + * {{model.name}} + *
    + * ``` + * * # Special repeat start and end points * To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending * the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively. @@ -24481,8 +26976,9 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp * which can be used to associate the objects in the collection with the DOM elements. If no tracking expression * is specified, ng-repeat associates elements by identity. It is an error to have * more than one tracking expression value resolve to the same key. (This would mean that two distinct objects are - * mapped to the same DOM element, which is not possible.) If filters are used in the expression, they should be - * applied before the tracking expression. + * mapped to the same DOM element, which is not possible.) + * + * Note that the tracking expression must come last, after any filters, and the alias expression. * * For example: `item in items` is equivalent to `item in items track by $id(item)`. This implies that the DOM elements * will be associated by item identity in the array. @@ -24506,6 +27002,11 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp * For example: `item in items | filter:x as results` will store the fragment of the repeated items as `results`, but only after * the items have been processed through the filter. * + * Please note that `as [variable name] is not an operator but rather a part of ngRepeat micro-syntax so it can be used only at the end + * (and not as operator, inside an expression). + * + * For example: `item in items | filter : x | orderBy : order | limitTo : limit as results` . + * * @example * This example initializes the scope to a list of names and * then uses `ngRepeat` to display every person: @@ -24524,7 +27025,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp {name:'Samantha', age:60, gender:'girl'} ]"> I have {{friends.length}} friends. They are: - +
    • [{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old. @@ -24722,14 +27223,13 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) { trackByIdFn = trackByIdExpFn || trackByIdArrayFn; } else { trackByIdFn = trackByIdExpFn || trackByIdObjFn; - // if object, extract keys, sort them and use to determine order of iteration over obj props + // if object, extract keys, in enumeration order, unsorted collectionKeys = []; for (var itemKey in collection) { - if (collection.hasOwnProperty(itemKey) && itemKey.charAt(0) != '$') { + if (collection.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') { collectionKeys.push(itemKey); } } - collectionKeys.sort(); } collectionLength = collectionKeys.length; @@ -24831,6 +27331,7 @@ var NG_HIDE_IN_PROGRESS_CLASS = 'ng-hide-animate'; /** * @ngdoc directive * @name ngShow + * @multiElement * * @description * The `ngShow` directive shows or hides the given HTML element based on the expression @@ -24924,7 +27425,7 @@ var NG_HIDE_IN_PROGRESS_CLASS = 'ng-hide-animate'; * @example - Click me:
      + Click me:
      Show:
      @@ -25006,6 +27507,7 @@ var ngShowDirective = ['$animate', function($animate) { /** * @ngdoc directive * @name ngHide + * @multiElement * * @description * The `ngHide` directive shows or hides the given HTML element based on the expression @@ -25089,7 +27591,7 @@ var ngShowDirective = ['$animate', function($animate) { * @example - Click me:
      + Click me:
      Show:
      @@ -25346,7 +27848,6 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { */ var ngSwitchDirective = ['$animate', function($animate) { return { - restrict: 'EA', require: 'ngSwitch', // asks for $scope to fool the BC controller module @@ -25455,8 +27956,8 @@ var ngSwitchDefaultDirective = ngDirective({ }]);
      -
      -
      +
      +
      {{text}}
      @@ -25541,7 +28042,106 @@ var scriptDirective = ['$templateCache', function($templateCache) { }; }]; -var ngOptionsMinErr = minErr('ngOptions'); +var noopNgModelController = { $setViewValue: noop, $render: noop }; + +/** + * @ngdoc type + * @name select.SelectController + * @description + * The controller for the ` and IE barfs otherwise. + self.unknownOption = jqLite(document.createElement('option')); + self.renderUnknownOption = function(val) { + var unknownVal = '? ' + hashKey(val) + ' ?'; + self.unknownOption.val(unknownVal); + $element.prepend(self.unknownOption); + $element.val(unknownVal); + }; + + $scope.$on('$destroy', function() { + // disable unknown option so that we don't do work when the whole select is being destroyed + self.renderUnknownOption = noop; + }); + + self.removeUnknownOption = function() { + if (self.unknownOption.parent()) self.unknownOption.remove(); + }; + + + // Read the value of the select control, the implementation of this changes depending + // upon whether the select can have multiple values and whether ngOptions is at work. + self.readValue = function readSingleValue() { + self.removeUnknownOption(); + return $element.val(); + }; + + + // Write the value to the select control, the implementation of this changes depending + // upon whether the select can have multiple values and whether ngOptions is at work. + self.writeValue = function writeSingleValue(value) { + if (self.hasOption(value)) { + self.removeUnknownOption(); + $element.val(value); + if (value === '') self.emptyOption.prop('selected', true); // to make IE9 happy + } else { + if (value == null && self.emptyOption) { + self.removeUnknownOption(); + $element.val(''); + } else { + self.renderUnknownOption(value); + } + } + }; + + + // Tell the select control that an option, with the given value, has been added + self.addOption = function(value, element) { + assertNotHasOwnProperty(value, '"option value"'); + if (value === '') { + self.emptyOption = element; + } + var count = optionsMap.get(value) || 0; + optionsMap.put(value, count + 1); + }; + + // Tell the select control that an option, with the given value, has been removed + self.removeOption = function(value) { + var count = optionsMap.get(value); + if (count) { + if (count === 1) { + optionsMap.remove(value); + if (value === '') { + self.emptyOption = undefined; + } + } else { + optionsMap.put(value, count - 1); + } + } + }; + + // Check whether the select control has an option matching the given value + self.hasOption = function(value) { + return !!optionsMap.get(value); + }; +}]; + /** * @ngdoc directive * @name select @@ -25550,735 +28150,170 @@ var ngOptionsMinErr = minErr('ngOptions'); * @description * HTML `SELECT` element with angular data-binding. * - * # `ngOptions` - * - * The `ngOptions` attribute can be used to dynamically generate a list of `
    • -
    • - [add] -
    • -
    -
    - Color (null not allowed): -
    - - Color (null allowed): - - -
    - - Color grouped by shade: -
    - - - Select bogus.
    -
    - Currently selected: {{ {selected_color:myColor} }} -
    -
    - -
    - - it('should check ng-options', function() { - expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('red'); - element.all(by.model('myColor')).first().click(); - element.all(by.css('select[ng-model="myColor"] option')).first().click(); - expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('black'); - element(by.css('.nullable select[ng-model="myColor"]')).click(); - element.all(by.css('.nullable select[ng-model="myColor"] option')).first().click(); - expect(element(by.binding('{selected_color:myColor}')).getText()).toMatch('null'); - }); - -
    */ - -var ngOptionsDirective = valueFn({ - restrict: 'A', - terminal: true -}); - -// jshint maxlen: false -var selectDirective = ['$compile', '$parse', function($compile, $parse) { - //000011111111110000000000022222222220000000000000000000003333333333000000000000004444444444444440000000005555555555555550000000666666666666666000000000000000777777777700000000000000000008888888888 - var NG_OPTIONS_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/, - nullModelCtrl = {$setViewValue: noop}; -// jshint maxlen: 100 +var selectDirective = function() { return { restrict: 'E', require: ['select', '?ngModel'], - controller: ['$element', '$scope', '$attrs', function($element, $scope, $attrs) { - var self = this, - optionsMap = {}, - ngModelCtrl = nullModelCtrl, - nullOption, - unknownOption; - - - self.databound = $attrs.ngModel; - - - self.init = function(ngModelCtrl_, nullOption_, unknownOption_) { - ngModelCtrl = ngModelCtrl_; - nullOption = nullOption_; - unknownOption = unknownOption_; - }; - - - self.addOption = function(value, element) { - assertNotHasOwnProperty(value, '"option value"'); - optionsMap[value] = true; - - if (ngModelCtrl.$viewValue == value) { - $element.val(value); - if (unknownOption.parent()) unknownOption.remove(); - } - // Workaround for https://code.google.com/p/chromium/issues/detail?id=381459 - // Adding an
    Name - (^)Phone NumberAge + Name + + + Phone Number + + + Age + +
    {{friend.name}}
    ","
    "],col:[2,"","
    "],tr:[2,"","
    "], -td:[3,"","
    "],_default:[0,"",""]};ha.optgroup=ha.option;ha.tbody=ha.tfoot=ha.colgroup=ha.caption=ha.thead;ha.th=ha.td;var Ka=P.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===V.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),P(T).on("load",a))},toString:function(){var b=[];q(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?G(this[b]):G(this[this.length+b])},length:0,push:Tf,sort:[].sort, -splice:[].splice},Gb={};q("multiple selected checked disabled readOnly required open".split(" "),function(b){Gb[O(b)]=b});var Rc={};q("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};q({data:Wb,removeData:zb},function(b,a){P[a]=b});q({data:Wb,inheritedData:Fb,scope:function(b){return G.data(b,"$scope")||Fb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return G.data(b, -"$isolateScope")||G.data(b,"$isolateScopeNoTemplate")},controller:Nc,injector:function(b){return Fb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Cb,css:function(b,a,c){a=eb(a);if(B(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==ab&&2!==d&&8!==d)if(d=O(a),Gb[d])if(B(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||D).specified?d:s;else if(B(c))b.setAttribute(a,c);else if(b.getAttribute)return b= -b.getAttribute(a,2),null===b?s:b},prop:function(b,a,c){if(B(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(y(b)){var d=a.nodeType;return d===ma||d===ab?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(y(a)){if(b.multiple&&"select"===sa(b)){var c=[];q(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(y(a))return b.innerHTML;yb(b,!0);b.innerHTML=a},empty:Oc},function(b,a){P.prototype[a]= -function(a,d){var e,f,g=this.length;if(b!==Oc&&(2==b.length&&b!==Cb&&b!==Nc?a:d)===s){if(J(a)){for(e=0;e":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a, -c)||e(a,c)},"!":function(a,c,d){return!d(a,c)},"=":!0,"|":!0}),cg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},kc=function(a){this.options=a};kc.prototype={constructor:kc,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=B(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ja("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.indexa){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},consume:function(a){if(0===this.tokens.length)throw ja("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},unaryFn:function(a,c){var d=rb[a];return E(function(a,f){return d(a,f,c)},{constant:c.constant,inputs:[c]})},binaryFn:function(a,c,d,e){var f=rb[c];return E(function(c,e){return f(c,e,a,d)},{constant:a.constant&&d.constant,inputs:!e&&[a,d]})},identifier:function(){for(var a= -this.consume().text;this.peek(".")&&this.peekAhead(1).identifier&&!this.peekAhead(2,"(");)a+=this.consume().text+this.consume().text;return Df(a,this.options,this.text)},constant:function(){var a=this.consume().value;return E(function(){return a},{constant:!0,literal:!0})},statements:function(){for(var a=[];;)if(0","<=",">=");)a=this.binaryFn(a,c.text,this.additive());return a}, -additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.text,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.text,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(lb.ZERO,a.text,this.unary()):(a=this.expect("!"))?this.unaryFn(a.text,this.unary()):this.primary()},fieldAccess:function(a){var c=this.identifier(); -return E(function(d,e,f){d=f||a(d,e);return null==d?s:c(d)},{assign:function(d,e,f){var g=a(d,f);g||a.assign(d,g={},f);return c.assign(g,e)}})},objectIndex:function(a){var c=this.text,d=this.expression();this.consume("]");return E(function(e,f){var g=a(e,f),h=d(e,f);ra(h,c);return g?ka(g[h],c):s},{assign:function(e,f,g){var h=ra(d(e,g),c),l=ka(a(e,g),c);l||a.assign(e,l={},g);return l[h]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(",")) -}this.consume(")");var e=this.text,f=d.length?[]:null;return function(g,h){var l=c?c(g,h):B(c)?s:g,k=a(g,h,l)||D;if(f)for(var m=d.length;m--;)f[m]=ka(d[m](g,h),e);ka(l,e);if(k){if(k.constructor===k)throw ja("isecfn",e);if(k===$f||k===ag||k===bg)throw ja("isecff",e);}l=k.apply?k.apply(l,f):k(f[0],f[1],f[2],f[3],f[4]);f&&(f.length=0);return ka(l,e)}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]"); -return E(function(c,d){for(var e=[],f=0,g=a.length;fa.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Kb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},Pf=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/, -Of=/^\-?\d+$/;pd.$inject=["$locale"];var Lf=ca(O),Mf=ca(wb);rd.$inject=["$parse"];var Yd=ca({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===Aa.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),xb={};q(Gb,function(a,c){if("multiple"!=a){var d=va("ng-"+c);xb[d]=function(){return{restrict:"A",priority:100,link:function(a,f,g){a.$watch(g[d], -function(a){g.$set(c,!!a)})}}}}});q(Sc,function(a,c){xb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(Sf))){f.$set("ngPattern",new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});q(["src","srcset","href"],function(a){var c=va("ng-"+a);xb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===Aa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href", -g=null);f.$observe(c,function(c){c?(f.$set(h,c),Qa&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Mb={$addControl:D,$$renameControl:function(a,c){a.$name=c},$removeControl:D,$setValidity:D,$setDirty:D,$setPristine:D,$setSubmitted:D};wd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Dd=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:wd,compile:function(d,e){d.addClass(Ra).addClass(pb);var f=e.name?"name":a&&e.ngForm?"ngForm": -!1;return{pre:function(a,d,e,k){if(!("action"in e)){var m=function(c){a.$apply(function(){k.$commitViewValue();k.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",m,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",m,!1)},0,!1)})}var r=k.$$parentForm;f&&(kb(a,null,k.$name,k,k.$name),e.$observe(f,function(c){k.$name!==c&&(kb(a,null,k.$name,s,k.$name),r.$$renameControl(k,c),kb(a,null,k.$name,k,k.$name))}));d.on("$destroy",function(){r.$removeControl(k); -f&&kb(a,null,e[f],s,k.$name);E(k,Mb)})}}}}}]},Zd=Dd(),le=Dd(!0),Rf=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,dg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,eg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,fg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Ed=/^(\d{4})-(\d{2})-(\d{2})$/,Fd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,oc=/^(\d{4})-W(\d\d)$/,Gd=/^(\d{4})-(\d\d)$/, -Hd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Id={text:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e)},date:nb("date",Ed,Ob(Ed,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",Fd,Ob(Fd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",Hd,Ob(Hd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",oc,function(a,c){if(ea(a))return a;if(K(a)){oc.lastIndex=0;var d=oc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=ud(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:nb("month",Gd,Ob(Gd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){yd(a,c,d,e);mb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:fg.test(a)?parseFloat(a):s});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!U(a))throw ob("numfmt",a);a=a.toString()}return a});if(B(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)|| -y(h)||a>=h};d.$observe("min",function(a){B(a)&&!U(a)&&(a=parseFloat(a,10));h=U(a)&&!isNaN(a)?a:s;e.$validate()})}if(B(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||y(l)||a<=l};d.$observe("max",function(a){B(a)&&!U(a)&&(a=parseFloat(a,10));l=U(a)&&!isNaN(a)?a:s;e.$validate()})}},url:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||dg.test(d)}},email:function(a,c,d,e,f,g){mb(a,c,d,e,f,g);mc(e); -e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||eg.test(d)}},radio:function(a,c,d,e){y(d.name)&&c.attr("name",++sb);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=zd(l,a,"ngTrueValue",d.ngTrueValue,!0),m=zd(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 fa(a,k)});e.$parsers.push(function(a){return a?k:m})},hidden:D,button:D,submit:D,reset:D,file:D},Cc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Id[O(h.type)]||Id.text)(f,g,h,l[0],c,a,d,e)}}}}],gg=/^(true|false|\d+)$/,De=function(){return{restrict:"A",priority:100,compile:function(a, -c){return gg.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)})}}}},de=["$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=a===s?"":a})}}}}],fe=["$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=a===s?"":a})}}}}],ee=["$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))||"")})}}}}],Ce=ca({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}), -ge=nc("",!0),ie=nc("Odd",0),he=nc("Even",1),je=Ia({compile:function(a,c){c.$set("ngCloak",s);a.removeClass("ng-cloak")}}),ke=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Hc={},hg={blur:!0,focus:!0};q("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=va("ng-"+a);Hc[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})};hg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ne=["$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++]=V.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= -vb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],oe=["$templateRequest","$anchorScroll","$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ba.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,q,n,v){var t=0,w,s,p,I=function(){s&&(s.remove(),s=null);w&&(w.$destroy(),w=null);p&&(d.leave(p).then(function(){s=null}),s=p,p=null)};e.$watch(g,function(g){var q=function(){!B(l)||l&&!e.$eval(l)|| -c()},r=++t;g?(a(g,!0).then(function(a){if(r===t){var c=e.$new();n.template=a;a=v(c,function(a){I();d.enter(a,null,f).then(q)});w=c;p=a;w.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){r===t&&(I(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(I(),n.template=null)})}}}}],Fe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Kc(f.template,V).childNodes)(c,function(a){d.append(a)}, -{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],pe=Ia({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Be=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?N(f):f;e.$parsers.push(function(a){if(!y(a)){var c=[];a&&q(a.split(h),function(a){a&&c.push(g?N(a):a)});return c}});e.$formatters.push(function(a){return A(a)?a.join(f):s});e.$isEmpty=function(a){return!a|| -!a.length}}}},pb="ng-valid",Ad="ng-invalid",Ra="ng-pristine",Nb="ng-dirty",Cd="ng-pending",ob=z("ngModel"),ig=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,m){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=s;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=s;this.$name=m(d.name||"",!1)(a);var r=f(d.ngModel),n=r.assign,v=r,t=n,w=null,u,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");v=function(a){var d=r(a);F(d)&&(d=c(a));return d};t=function(a,c){F(r(a))?g(a,{$$$p:p.$modelValue}):n(a,p.$modelValue)}}else if(!r.assign)throw ob("nonassign",d.ngModel,ta(e));};this.$render=D;this.$isEmpty=function(a){return y(a)|| -""===a||null===a||a!==a};var I=e.inheritedData("$formController")||Mb,E=0;xd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},parentForm:I,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Nb);g.addClass(e,Ra)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Ra);g.addClass(e,Nb);I.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched= -function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(w);p.$viewValue=p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!U(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:s,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators= -function(a,c,d){function e(){var d=!0;q(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(q(p.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;q(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!F(k.then))throw ob("$asyncValidators",k);g(h,s);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},D):h(!0)}function g(a,c){l===E&&p.$setValidity(a,c)}function h(a){l===E&&d(a)}E++;var l=E;(function(){var a= -p.$$parserName||"parse";if(u===s)g(a,null);else return u||(q(p.$validators,function(a,c){g(c,null)}),q(p.$asyncValidators,function(a,c){g(c,null)})),g(a,u),u;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(w);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(u=y(c)?s:!0)for(var d= -0;dC;)d=s.pop(),m(S,d.label,!1),d.element.remove()}for(;P.length>x;){l=P.pop();for(C=1;Ca&&n.removeOption(c)})}var u;if(!(u=t.match(d)))throw kg("iexp",t,ta(f));var z=c(u[2]||u[1]),D=u[4]||u[6],F=/ as /.test(u[0])&&u[1],x=F?c(F): -null,G=u[5],J=c(u[3]||""),C=c(u[2]?u[1]:D),M=c(u[7]),K=u[8]?c(u[8]):null,O={},P=[[{element:f,label:""}]],T={};w&&(a(w)(e),w.removeClass("ng-scope"),w.remove());f.empty();f.on("change",function(){e.$apply(function(){var a=M(e)||[],c;if(v)c=[],q(f.val(),function(d){d=K?O[d]:d;c.push("?"===d?s:""===d?null:h(x?x:C,d,a[d]))});else{var d=K?O[f.val()]:f.val();c="?"===d?s:""===d?null:h(x?x:C,d,a[d])}g.$setViewValue(c);r()})});g.$render=r;e.$watchCollection(M,l);e.$watchCollection(function(){var a=M(e),c; -if(a&&A(a)){c=Array(a.length);for(var d=0,f=a.length;df||e.$isEmpty(c)||c.length<=f}}}}},Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=aa(a)||0;e.$validate()});e.$validators.minlength= -function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};T.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(Sd(),Ud(ba),G(V).ready(function(){Od(V,xc)}))})(window,document);!window.angular.$$csp()&&window.angular.element(document.head).prepend(''); +(function(O,W,t){'use strict';function L(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.4/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?M(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+M(b)})}catch(d){return M(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),x(e)&&(f=x(f)?wc(f):!0,Na.call(a,e)?G(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){G(b)?m(b,function(b){a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))}):a.push(ma(d,!0)+(!0===b?"":"="+ma(b,!0)))});return a.length?a.join("&"):""}function nb(b){return ma(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ma(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=eb(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!/;O&&e.test(O.name)&&(c.debugInfoEnabled=!0,O.name=O.name.replace(e,""));if(O&&!f.test(O.name))return d();O.name=O.name.replace(f,"");aa.resumeBootstrap=function(b){m(b,function(b){a.push(b)});return d()};C(aa.resumeDeferredBootstrap)&&aa.resumeDeferredBootstrap()}function $d(){O.name="NG_ENABLE_DEBUG_INFO!"+O.name;O.location.reload()}function ae(b){b=aa.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")} +function zc(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Ac){var a=ob();la=O.jQuery;x(a)&&(la=null===a?t:O[a]);la&&la.fn.on?(z=la,Q(la.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=la.cleanData,la.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d=la._data(f,"events"))&&d.$destroy&&la(f).triggerHandler("$destroy");b(a)}):z=R;aa.element= +z;Ac=!0}}function pb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&G(b)&&(b=b[b.length-1]);pb(C(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=cb(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;I(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=W;var c;b=(c=Df.exec(b))?[a.createElement(c[1])]: +(c=Lc(b,a))?c.childNodes:[]}Mc(this,b)}function Ub(b){return b.cloneNode(!0)}function tb(b,a){a||ub(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);V.$$addScopeClass(a);var g=null;return function(b,c,d){pb(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"!==ta(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?z(Xb(g,z("
    ").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var l in h)d.data("$"+l+"Controller",h[l].instance);V.$$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,l,k,r,n,u,N;if(p)for(N=Array(c.length),r=0;r< +h.length;r+=3)f=h[r],N[f]=c[f];else N=c;r=0;for(n=h.length;rE.priority)break;if(v=E.scope)E.templateUrl||(D(v)?(O("new/isolated scope",P||S,E,ba),P=E):O("new/isolated scope", +P,E,ba)),S=S||E;x=E.name;!E.templateUrl&&E.controller&&(v=E.controller,w=w||ga(),O("'"+x+"' controller",w[x],E,ba),w[x]=E);if(v=E.transclude)m=!0,E.$$tlb||(O("transclusion",A,E,ba),A=E),"element"==v?(s=!0,J=E.priority,v=ba,ba=d.$$element=z(W.createComment(" "+x+": "+d[x]+" ")),b=ba[0],U(f,xa.call(v,0),b),y=V(v,e,J,g&&g.name,{nonTlbTranscludeDirective:A})):(v=z(Ub(b)).contents(),ba.empty(),y=V(v,e));if(E.template)if(H=!0,O("template",F,E,ba),F=E,v=C(E.template)?E.template(ba,d):E.template,v=fa(v), +E.replace){g=E;v=Sb.test(v)?Yc(Xb(E.templateNamespace,T(v))):[];b=v[0];if(1!=v.length||b.nodeType!==pa)throw ea("tplrt",x,"");U(f,ba,b);L={$attr:{}};v=ha(b,[],L);var Q=a.splice(wa+1,a.length-(wa+1));P&&Zc(v);a=a.concat(v).concat(Q);$c(d,L);L=a.length}else ba.html(v);if(E.templateUrl)H=!0,O("template",F,E,ba),F=E,E.replace&&(g=E),K=Lf(a.splice(wa,a.length-wa),ba,d,f,m&&y,h,k,{controllerDirectives:w,newScopeDirective:S!==E&&S,newIsolateScopeDirective:P,templateDirective:F,nonTlbTranscludeDirective:A}), +L=a.length;else if(E.compile)try{za=E.compile(ba,d,y),C(za)?n(null,za,Bb,M):za&&n(za.pre,za.post,Bb,M)}catch(R){c(R,ua(ba))}E.terminal&&(K.terminal=!0,J=Math.max(J,E.priority))}K.scope=S&&!0===S.scope;K.transcludeOnThisElement=m;K.templateOnThisElement=H;K.transclude=y;r.hasElementTranscludeDirective=s;return K}function Zc(a){for(var b=0,c=a.length;bn.priority)&&-1!=n.restrict.indexOf(f)&&(l&&(n=Nb(n,{$$start:l,$$end:k})),b.push(n),h=n)}catch(J){c(J)}}return h}function L(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 H.HTML;var c=ta(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b))return H.RESOURCE_URL}function X(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"===ta(a))throw ea("selmulti",ua(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw ea("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,g,h;if(a)for(g=0,h=a.length;g=a)return b;for(;a--;)8===b[a].nodeType&&Mf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");D(a)?Q(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||!D(a.$scope))throw L("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,l){var k,n,q;h=!0===h;l&&I(l)&&(q=l);if(I(f)){l=f.match(Vc);if(!l)throw Nf("ctrlfmt",f);n=l[1];q=q||l[3];f=b.hasOwnProperty(n)?b[n]:Bc(g.$scope, +n,!0)||(a?Bc(d,n,!0):t);Sa(f,n,!0)}if(h)return h=(G(f)?f[f.length-1]:f).prototype,k=Object.create(h||null),q&&e(g,q,k,n||f.name),Q(function(){var a=c.invoke(f,k,g,n);a!==k&&(D(a)||C(a))&&(k=a,q&&e(g,q,k,n||f.name));return k},{instance:k,identifier:q});k=c.instantiate(f,g,n);q&&e(g,q,k,n||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return z(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b,arguments)}}]}function Yb(b){return D(b)? +ca(b)?b.toISOString():db(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];mc(b,function(b,d){null===b||y(b)||(G(b)?m(b,function(b,c){a.push(ma(d)+"="+ma(Yb(b)))}):a.push(ma(d)+"="+ma(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||y(b)||(G(b)?m(b,function(b,c){a(b,e+"["+(D(b)?c:"")+"]")}):D(b)&&!ca(b)?mc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(ma(e)+"="+ma(Yb(b))))}if(!b)return"";var c= +[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(I(b)){var c=b.replace(Of,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(bd))||(d=(d=c.match(Pf))&&Qf[d[0]].test(c));d&&(b=uc(c))}}return b}function cd(b){var a=ga(),c;I(b)?m(b.split("\n"),function(b){c=b.indexOf(":");var e=M(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):D(b)&&m(b,function(b,c){var f=M(c),g=T(b);f&&(a[f]=a[f]?a[f]+", "+g:g)});return a}function dd(b){var a;return function(c){a||(a=cd(b));return c? +(c=a[M(c)],void 0===c&&(c=null),c):a}}function ed(b,a,c,d){if(C(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 D(a)&&"[object File]"!==sa.call(a)&&"[object Blob]"!==sa.call(a)&&"[object FormData]"!==sa.call(a)?db(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ia($b),put:ia($b),patch:ia($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"}, +a=!1;this.useApplyAsync=function(b){return x(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return x(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=Q({},a);b.data=a.data?ed(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){C(a)?(c=a(b),null!= +c&&(d[e]=c)):d[e]=a});return d}if(!aa.isObject(a))throw L("$http")("badreq",a);var f=Q({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=Q({},a.headers),f,g,h,c=Q({},c.common,c[M(a.method)]);a:for(f in c){g=M(f);for(h in d)if(M(h)===g)continue a;d[f]=c[f]}return e(d,ia(a))}(a);f.method=rb(f.method);f.paramSerializer=I(f.paramSerializer)?k.get(f.paramSerializer):f.paramSerializer;var g= +[function(a){var c=a.headers,e=ed(a.data,dd(c),t,a.transformRequest);y(e)&&m(c,function(a,b){"content-type"===M(b)&&delete c[b]});y(a.withCredentials)&&!y(b.withCredentials)&&(a.withCredentials=b.withCredentials);return q(a,e).then(d,d)},t],h=l.when(f);for(m(B,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=fd("success"),h.error=fd("error"));return h}function q(c,d){function g(b,c,d,e){function f(){k(c,b,d,e)}F&&(200<=b&&300>b?F.put(P,[b,c,cd(d),e]):F.remove(P));a?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function k(a,b,d,e){b=Math.max(b,0);(200<=b&&300>b?N.resolve:N.reject)({data:a,status:b,headers:dd(d),config:c,statusText:e})}function q(a){k(a.data,a.status, +ia(a.headers()),a.statusText)}function B(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var N=l.defer(),J=N.promise,F,m,S=c.headers,P=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);J.then(B,B);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(F=D(c.cache)?c.cache:D(b.cache)?b.cache:u);F&&(m=F.get(P),x(m)?m&&C(m.then)?m.then(q,q):G(m)?k(m[1],m[0],ia(m[2]),m[3]):k(m,200,{},"OK"):F.put(P,J));y(m)&&((m=gd(c.url)?f()[c.xsrfCookieName|| +b.xsrfCookieName]:t)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=m),e(c.method,P,d,g,S,c.timeout,c.withCredentials,c.responseType));return J}function r(a,b){0=l&&(w.resolve(B),u(p.$$intervalId),delete f[p.$$intervalId]);K||b.$apply()},h);f[p.$$intervalId]=w;return p}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]=nb(b[a]);return b.join("/")}function hd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function id(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 ra(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||"";hd(b,this);this.$$parse=function(b){var c=ra(a,b);if(!I(c))throw Db("ipthprfx",b,a);id(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b= +Pb(this.$$search),c=this.$$hash?"#"+nb(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;(f=ra(b,d))!==t?(g=f,g=(f=ra(c,f))!==t?a+(ra("/",f)||f):b+g):(f=ra(a,d))!==t?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function cc(b,a,c){hd(b,this);this.$$parse=function(d){var e=ra(b,d)||ra(a,d),f;y(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",y(e)&&(b=d,this.replace())): +(f=ra(c,e),y(f)&&(f=e));id(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?"#"+nb(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 jd(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=ra(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?"#"+nb(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 kd(b,a){return function(c){if(y(c))return this[b];this[b]=a(c);this.$$compose();return this}}function gf(){var b="",a={enabled:!1,requireBase:!0, +rewriteLinks:!0};this.hashPrefix=function(a){return x(a)?(b=a,this):b};this.html5Mode=function(b){return ab(b)?(a.enabled=b,this):D(b)?(ab(b.enabled)&&(a.enabled=b.enabled),ab(b.requireBase)&&(a.requireBase=b.requireBase),ab(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(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 q=d.url(),r;if(a.enabled){if(!n&&a.requireBase)throw Db("nobase");r=q.substring(0,q.indexOf("/",q.indexOf("//")+2))+(n||"/");n=e.history?bc:jd}else r=Ja(q),n=cc;var u=r.substr(0,Ja(r).lastIndexOf("/")+1);k=new n(r,u,"#"+b);k.$$parseLinkUrl(q,q);k.$$state=d.state();var B=/^\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= +z(b.target);"a"!==ta(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");D(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Aa(h.animVal).href);B.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(q)&&d.url(k.absUrl(),!0);var K=!0;d.onUrlChange(function(a,b){y(ra(u,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,n=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(K||n)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):(n&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function hf(){var b=!0,a=this;this.debugEnabled=function(a){return x(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||v;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 Wa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw da("isecfld",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b.window===b)throw da("isecwindow", +a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw da("isecdom",a);if(b===Object)throw da("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw da("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw da("isecff",a);}}function Xf(b,a){return"undefined"!==typeof b?b:a}function md(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 nd(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:t}}function od(b){return b.type===s.Identifier||b.type===s.MemberExpression}function pd(b){if(1===b.body.length&&od(b.body[0].expression))return{type:s.AssignmentExpression,left:b.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function qd(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 rd(b,a){this.astBuilder=b;this.$filter=a}function sd(b,a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return C(b.valueOf)?b.valueOf():Yf.call(b)}function jf(){var b=ga(),a=ga();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 l=d,g=g[0];return a.$watch(function(a){var b= +g(a);d(b,l)||(h=e(a,t,t,[b]),l=b&&dc(b));return h},b,c,f)}for(var k=[],n=[],q=0,m=g.length;q=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b, +e,f=0,g=d.length;fa)for(b in k++,f)e.hasOwnProperty(b)||(u--,delete f[b])}else f!==e&&(f=e,k++);return k}}c.$stateful=!0;var d=this,e,f,g,l=1u&&(E=4-u,w[E]||(w[E]=[]),w[E].push({msg:C(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||t.length)&&!u--)throw p.$$phase=null,c("infdig",a,w);}while(r||t.length);for(p.$$phase=null;x.length;)try{x.shift()()}catch(z){g(z)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===p&&l.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)u(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=v;this.$on=this.$watch=this.$watchGroup=function(){return v};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){p.$$phase||t.length||l.defer(function(){t.length&&p.$digest()});t.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){x.push(a)},$apply:function(a){try{q("$apply");try{return this.$eval(a)}finally{p.$$phase=null}}catch(b){g(b)}finally{try{p.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&H.push(b);w()},$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,u(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},l=cb([h],arguments,1),k,n;do{d=e.$$listeners[a]||c;h.currentScope=e;k=0;for(n=d.length;kVa)throw Ca("iequirks");var d=ia(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=Za);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=M(b);d[fb("parse_as_"+c)]=function(b){return e(a,b)};d[fb("get_trusted_"+c)]=function(b){return f(a,b)};d[fb("trust_as_"+c)]=function(b){return g(a,b)}});return d}]}function pf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(M((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 q in l)if(k=h.exec(q)){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=I(l.webkitTransition),n=I(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"=== +a&&11>=Va)return!1;if(y(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 rf(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;I(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=a.defaults&&a.defaults.transformResponse;G(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 ea("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function sf(){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)"+ud(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 q=h.match(/([\d\.]+)e(-?)(\d+)/);q&&"-"==q[2]&&q[3]>e+1?b=0:(l=h,k=!0)}if(g||k)0b&&(l=b.toFixed(e),b=parseFloat(l));else{g=(h.split(Dd)[1]||"").length;y(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(Dd),h=g[0],g=g[1]||"",q=0,r=a.lgSize,u=a.gSize;if(h.length>=r+u)for(q=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=rb(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 hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function zd(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;I(c)&&(c=fg.test(c)?Y(c):a(c));X(c)&&(c=new Date(c));if(!ca(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(h=cb(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=hg[a];g+=l?l(c,b.DATETIME_FORMATS,n):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function ag(){return function(b,a){y(a)&&(a=2);return db(b,a)}}function bg(){return function(b,a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b;X(b)&&(b=b.toString());if(!G(b)&&!I(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 Bd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,h=Za;if(C(a))h=a;else if(I(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;G(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(ca(c))return c;if(I(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};g.$observe("min",function(a){s= +r(a);h.$validate()})}if(x(g.max)||g.ngMax){var w;h.$validators.max=function(a){return!q(a)||y(w)||c(a)<=w};g.$observe("max",function(a){w=r(a);h.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=D(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?t:b})}function Jd(b,a,c,d,e){if(x(d)){b=b(d);if(!b.constant)throw kb("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+;/,Bf=/<([\w:]+)/,Cf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,na={option:[1,'"],thead:[1,"","
    "],col:[2,"", +"
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};na.optgroup=na.option;na.tbody=na.tfoot=na.colgroup=na.caption=na.thead;na.th=na.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===W.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(O).on("load",a))},toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<= +b?z(this[b]):z(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Ab={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Ab[M(b)]=b});var Rc={};m("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Sc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};m({data:Vb,removeData:ub,hasData:function(b){for(var a in gb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});m({data:Vb, +inheritedData:zb,scope:function(b){return z.data(b,"$scope")||zb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return z.data(b,"$isolateScope")||z.data(b,"$isolateScopeNoTemplate")},controller:Oc,injector:function(b){return zb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:wb,css:function(b,a,c){a=fb(a);if(x(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=M(a),Ab[d])if(x(c))c?(b[a]=!0,b.setAttribute(a, +d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||v).specified?d:t;else if(x(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(x(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(y(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(y(a)){if(b.multiple&&"select"===ta(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(y(a))return b.innerHTML;tb(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&&(2==b.length&&b!==wb&&b!==Oc?a:d)===t){if(D(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=x(c)?"s "+c+"-"+ +this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw da("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=fa(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 da("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw da("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 da("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:t},"this":{type:s.ThisExpression}}};rd.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=pd(e))this.state.computing="assign",f=this.nextId(),this.recurse(g,f),f="fn.assign="+this.generateFunction("assign","s,v,l");g=nd(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,Wa,Ba,ld,Xf,md,a);this.state= +this.stage=t;f.literal=qd(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,q;e=e||v;if(!g&&x(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,t,t,function(a){l=a});d!==a.body.length-1?k.current().body.push(l, +";"):k.return_(l)});break;case s.Literal:q=this.escape(a.value);this.assign(c,q);e(q);break;case s.UnaryExpression:this.recurse(a.argument,t,t,function(a){l=a});q=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,q);e(q);break;case s.BinaryExpression:this.recurse(a.left,t,t,function(a){h=a});this.recurse(a.right,t,t,function(a){l=a});q="+"===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,q);e(q);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);Wa(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,t,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),"{}")),q=k.ensureSafeObject(k.computedMember(h,l)),k.assign(c,q),d&&(d.computed=!0,d.name=l);else{Wa(a.property.name);f&&1!==f&&k.if_(k.not(k.nonComputedMember(h,a.property.name)),k.lazyAssign(k.nonComputedMember(h,a.property.name),"{}"));q=k.nonComputedMember(h,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))q=k.ensureSafeObject(q);k.assign(c, +q);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)}),q=l+"("+n.join(",")+")",k.assign(c,q),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(),t,function(a){n.push(k.ensureSafeObject(a))})}); +h.name?(k.state.expensiveChecks||k.addEnsureSafeObject(h.context),q=k.member(h.context,h.name,h.computed)+"("+n.join(",")+")"):q=l+"("+n.join(",")+")";q=k.ensureSafeObject(q);k.assign(c,q)},function(){k.assign(c,"undefined")});e(c)}));break;case s.AssignmentExpression:l=this.nextId();h={};if(!od(a.left))throw da("lval");this.recurse(a.left,t,h,function(){k.if_(k.notNull(h.context),function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(h.context,h.name,h.computed));q=k.member(h.context,h.name, +h.computed)+a.operator+l;k.assign(c,q);e(c||q)})},1);break;case s.ArrayExpression:n=[];m(a.elements,function(a){k.recurse(a,k.nextId(),t,function(a){n.push(a)})});q="["+n.join(",")+"]";this.assign(c,q);e(q);break;case s.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value,k.nextId(),t,function(c){n.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+c)})});q="{"+n.join(",")+"}";this.assign(c,q);e(q);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(I(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(X(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 da("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]}}; +sd.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=pd(e))g=this.recurse(f);f=nd(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=qd(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 Wa(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||(Wa(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:t,name:t,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]:t;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),q,m;null!=n&&(q=c(g,h,l,k),Wa(q,f),e&&1!==e&&n&&!n[q]&&(n[q]={}),m=n[q],Ba(m,f));return d?{context:n,name:q,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]:t;(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 sd(this.ast,c):new rd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};ga();ga();var Yf=Object.prototype.valueOf,Ca=L("$sce"),oa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ea=L("$compile"),Z=W.createElement("a"),wd=Aa(O.location.href);xd.$inject=["$document"];Jc.$inject=["$provide"];yd.$inject=["$locale"];Ad.$inject=["$locale"]; +var Dd=".",hg={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]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;zd.$inject=["$locale"];var cg=qa(M),dg=qa(rb);Bd.$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]"===sa.call(c.prop("href"))? +"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),sb={};m(Ab,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=va("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});sb[e]=function(){return{restrict:"A",priority:100,link:f}}}});m(Sc,function(a,c){sb[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=va("ng-"+a);sb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===sa.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(h,c),Va&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Ib={$addControl:v,$$renameControl:function(a,c){a.$name=c},$removeControl:v,$setValidity:v, +$setDirty:v,$setPristine:v,$setSubmitted:v};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||v}return{name:"form",restrict:a?"EAC":"E",controller:Gd,compile:function(d,g){d.addClass(Xa).addClass(lb);var h=g.name?"name":a&&g.ngForm?"ngForm":!1;return{pre:function(a,d,f,g){if(!("action"in f)){var m=function(c){a.$apply(function(){g.$commitViewValue();g.$setSubmitted()}); +c.preventDefault()};d[0].addEventListener("submit",m,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",m,!1)},0,!1)})}var s=g.$$parentForm,B=h?e(g.$name):v;h&&(B(a,g),f.$observe(h,function(c){g.$name!==c&&(B(a,t),s.$$renameControl(g,c),B=e(g.$name),B(a,g))}));d.on("$destroy",function(){s.$removeControl(g);B(a,t);Q(g,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})?)?$/,kc=/^(\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,g){ib(a,c,d,e,f,g);ic(e)},date:jb("date",Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":jb("datetimelocal",Qd,Kb(Qd, +"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:jb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:jb("week",kc,function(a,c){if(ca(a))return a;if(I(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=Ed(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:jb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){Id(a, +c,d,e);ib(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):t});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!X(a))throw kb("numfmt",a);a=a.toString()}return a});if(x(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||y(h)||a>=h};d.$observe("min",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));h=X(a)&&!isNaN(a)?a:t;e.$validate()})}if(x(d.max)||d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)|| +y(l)||a<=l};d.$observe("max",function(a){x(a)&&!X(a)&&(a=parseFloat(a,10));l=X(a)&&!isNaN(a)?a:t;e.$validate()})}},url:function(a,c,d,e,f,g){ib(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)||sg.test(d)}},email:function(a,c,d,e,f,g){ib(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)||tg.test(d)}},radio:function(a,c,d,e){y(d.name)&&c.attr("name",++mb);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=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:v, +button:v,submit:v,reset:v,file:v},Dc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Td[M(h.type)]||Td.text)(f,g,h,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=a===t?"":a})}}}}],pe=["$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=a===t?"":a})}}}}],oe=["$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))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),qe=jc("",!0),se=jc("Odd",0),re=jc("Even",1),te=Ma({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A", +scope:!0,controller:"@",priority:500}}],Ic={},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=va("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})};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,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=W.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=qb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],ye=["$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,s){var t=0,v,w,p,A=function(){w&&(w.remove(),w=null);v&&(v.$destroy(),v=null);p&&(d.leave(p).then(function(){w=null}),w=p,p=null)};e.$watch(g,function(g){var m=function(){!x(l)||l&&!e.$eval(l)||c()},q=++t;g?(a(g,!0).then(function(a){if(q===t){var c=e.$new();r.template=a;a=s(c,function(a){A();d.enter(a,null,f).then(m)});v=c;p=a;v.$emit("$includeContentLoaded", +g);e.$eval(h)}},function(){q===t&&(A(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(A(),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(Lc(f.template,W).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Ma({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)||", ",g="false"!==d.ngTrim,h=g?T(f):f;e.$parsers.push(function(a){if(!y(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 G(a)?a.join(f):t});e.$isEmpty=function(a){return!a||!a.length}}}},lb="ng-valid",Kd="ng-invalid",Xa="ng-pristine",Jb="ng-dirty",Md="ng-pending",kb=L("ngModel"),xg=["$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=t;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=t;this.$name=n(d.name||"",!1)(a);var q=f(d.ngModel),r=q.assign,s=q,B=r, +K=null,w,p=this;this.$$setOptions=function(a){if((p.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");s=function(a){var d=q(a);C(d)&&(d=c(a));return d};B=function(a,c){C(q(a))?g(a,{$$$p:p.$modelValue}):r(a,p.$modelValue)}}else if(!q.assign)throw kb("nonassign",d.ngModel,ua(e));};this.$render=v;this.$isEmpty=function(a){return y(a)||""===a||null===a||a!==a};var A=e.inheritedData("$formController")||Ib,z=0;Hd({ctrl:this,$element:e,set:function(a,c){a[c]=!0},unset:function(a, +c){delete a[c]},parentForm:A,$animate:g});this.$setPristine=function(){p.$dirty=!1;p.$pristine=!0;g.removeClass(e,Jb);g.addClass(e,Xa)};this.$setDirty=function(){p.$dirty=!0;p.$pristine=!1;g.removeClass(e,Xa);g.addClass(e,Jb);A.$setDirty()};this.$setUntouched=function(){p.$touched=!1;p.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){p.$touched=!0;p.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){h.cancel(K);p.$viewValue= +p.$$lastCommittedViewValue;p.$render()};this.$validate=function(){if(!X(p.$modelValue)||!isNaN(p.$modelValue)){var a=p.$$rawModelValue,c=p.$valid,d=p.$modelValue,e=p.$options&&p.$options.allowInvalid;p.$$runValidators(a,p.$$lastCommittedViewValue,function(f){e||c===f||(p.$modelValue=f?a:t,p.$modelValue!==d&&p.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;m(p.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d?!0:(m(p.$asyncValidators,function(a, +c){g(c,null)}),!1)}function f(){var d=[],e=!0;m(p.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!C(k.then))throw kb("$asyncValidators",k);g(h,t);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},v):h(!0)}function g(a,c){l===z&&p.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a=p.$$parserName||"parse";if(w===t)g(a,null);else return w||(m(p.$validators,function(a,c){g(c,null)}),m(p.$asyncValidators,function(a,c){g(c, +null)})),g(a,w),w;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=p.$viewValue;h.cancel(K);if(p.$$lastCommittedViewValue!==a||""===a&&p.$$hasNativeValidators)p.$$lastCommittedViewValue=a,p.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=p.$$lastCommittedViewValue;if(w=y(c)?t:!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}}}}};O.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(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(" "), +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;t===g&&(g=Math.min(c(a),3));Math.pow(10,g);return 1==f&&0==g?"one":"other"}})}]),z(W).ready(function(){Zd(W,yc)}))})(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 c4d317a3a..3c400224e 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":252, -"mappings":"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", +"lineCount":292, +"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","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","extend","dst","ii","arguments","j","jj","int","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","isUndefined","isDefined","isObject","isNumber","isDate","toString","isRegExp","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","push","result","Date","getTime","RegExp","match","lastIndex","emptyObject","getPrototypeOf","shallowCopy","src","charAt","equals","o1","o2","t1","t2","keySet","concat","array1","array2","slice","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","key_value","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","getAttribute","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","test","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","constructor","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","createMap","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","$LocaleProvider","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","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$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","$$asyncCallback","$$AsyncCallbackProvider","$$jqLite","$$jqLiteProvider","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","cloneNode","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","getAliasedAttrName","ALIASED_ATTR","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","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","prototype","returnedValue","annotate","has","$injector","instanceCache","decorator","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","supported","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","startPoller","interval","check","pollFns","pollFn","pollTimeout","cacheStateAndFireUrlChange","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","safeDecodeURIComponent","rawDocument","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","addPollFn","self.addPollFn","href","baseElement","reloadLocation","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$checkUrlChange","baseHref","self.baseHref","lastCookies","lastCookieString","cookiePath","cookies","self.cookies","cookieLength","cookie","warn","cookieArray","substring","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","options","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","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","$$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","$new","transcludeOnThisElement","createBoundTranscludeFn","transclude","elementTranscludeOnThisElement","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","elementTransclusion","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","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","retrievalMethod","$searchElement","linkNode","controllersBoundTransclude","cloneAttachFn","hasElementTranscludeDirective","scopeToChild","controllerDirectives","$scope","$attrs","$transclude","controllerInstance","controllerAs","templateDirective","$$originalDirective","isolateScopeController","isolateBindingContext","identifier","bindToController","lastValue","parentGet","parentSet","compare","$observe","$$observers","$$scope","literal","b","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","$on","invokeLinkFn","template","templateUrl","terminalPriority","newScopeDirective","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","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","newValue","$$inter","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","expando","k","kk","annotation","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","dataName","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","CNTRL_REG","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","useApplyAsync","this.useApplyAsync","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","reqHeaderName","lowercaseDefHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","params","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","v","toISOString","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","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","mustHaveExpression","unescapeText","escapedStartRegexp","escapedEndRegexp","parseStringifyInterceptor","getTrusted","valueOf","newErr","$interpolateMinErr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","compute","interpolationFn","$$watchDelegate","objectEquality","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","count","invokeApply","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","NUMBER_FORMATS","DECIMAL_SEP","GROUP_SEP","PATTERNS","minInt","minFrac","maxFrac","posPre","posSuf","negPre","negSuf","gSize","lgSize","CURRENCY_SYM","DATETIME_FORMATS","MONTH","SHORTMONTH","DAY","SHORTDAY","AMPMS","medium","fullDate","longDate","mediumDate","shortDate","mediumTime","shortTime","ERANAMES","ERAS","pluralCat","num","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","stripFile","lastIndexOf","LocationHtml5Url","appBase","basePrefix","$$html5","appBaseNoFile","$$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","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","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","isConstant","setter","setValue","fullExp","propertyObj","isPossiblyDangerousMemberName","cspSafeGetterFn","key0","key1","key2","key3","key4","expensiveChecks","eso","o","eso0","eso1","eso2","eso3","eso4","cspSafeGetter","pathVal","getterFnWithEnsureSafeObject","s","getterFn","getterFnCache","getterFnCacheExpensive","getterFnCacheDefault","pathKeys","pathKeysLength","code","needsEnsureSafeObject","lookupJs","evaledFnGetter","Function","sharedGetter","fn.assign","getValueOf","objectValueOf","cacheDefault","cacheExpensive","wrapSharedExpression","wrapped","collectExpressionInputs","inputs","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","parsedExpression","inputExpressions","$$inputs","lastResult","oldInputValue","expressionInputWatch","newInputValue","oldInputValueOfValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","$parseOptions","$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","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","timer","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","decrementListenerCount","current","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","expr","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","isNaN","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","msie","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","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","amount","currencySymbol","fractionSize","formatNumber","number","groupSep","decimalSep","isFinite","isNegative","abs","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","round","fraction","lgroup","group","padNumber","digits","neg","dateGetter","date","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","ms","format","timezone","NUMBER_STRING","DATE_FORMATS_SPLIT","setMinutes","getMinutes","getTimezoneOffset","DATE_FORMATS","object","spacing","limit","Infinity","sortPredicate","reverseOrder","reverseComparator","comp","descending","objectToString","v1","v2","map","predicate","ngDirective","FormController","controls","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","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","timezoneOffset","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","fallback","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","isActive_","active","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","off","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","$$selectors","classNameFilter","this.classNameFilter","$$classNameFilter","runAnimationPostDigest","cancelFn","$$cancelFn","defer.promise.$$cancelFn","ngAnimatePostDigest","ngAnimateNotifyComplete","resolveElementClasses","hasClasses","cachedClassManipulation","op","asyncPromise","currentDefer","applyStyles","styles","from","to","animate","enter","leave","move","$$addClassImmediately","$$removeClassImmediately","add","createdCache","STORAGE_KEY","$$setClassImmediately","APPLICATION_JSON","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","CALL","APPLY","BIND","CONSTANTS","null","true","false","constantGetter","OPERATORS","+","-","*","/","%","===","!==","==","!=","<",">","<=",">=","&&","||","!","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","operator","throwError","chars","isExpOperator","start","end","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ZERO","statements","primary","expect","filterChain","consume","arrayDeclaration","functionCall","objectIndex","fieldAccess","peekToken","e1","e2","e3","e4","peekAhead","t","unaryFn","right","$parseUnaryFn","binaryFn","left","isBranching","$parseBinaryFn","$parseConstant","$parseStatements","inputFn","argsFn","$parseFilter","every","assignment","ternary","$parseAssignment","logicalOR","middle","$parseTernary","logicalAND","equality","relational","additive","multiplicative","unary","$parseFieldAccess","indexFn","$parseObjectIndex","fnGetter","contextGetter","expressionText","$parseFunctionCall","elementFns","$parseArrayLiteral","valueFns","$parseObjectLiteral","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","xlinkHref","propName","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","ngFormCompile","formElement","nameAttr","ngFormPreLink","handleFormSubmission","parentFormCtrl","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","minutes","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","ctrls","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","newScope","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","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","lhs","rhs","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","itemKey","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","tempClasses","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","ngOptionsMinErr","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","selectMultipleWatch","setupAsOptions","callExpression","exprFn","valueName","keyName","createIsSelectedFn","selectedSet","trackFn","trackIndex","isSelected","compareValueFn","selectAsFn","scheduleRendering","renderScheduled","render","updateLabelMap","labelMap","label","added","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","existingOption","valuesFn","anySelected","optionId","trackKeysCache","groupByFn","displayFn","nullOption","groupIndex","groupLength","optionGroupsCache","optGroupTemplate","lastElement","optionTemplate","optionsExp","selectAs","track","selectionChanged","selectedKey","viewValueFn","getLabels","toDisplay","ngModelCtrl.$isEmpty","nullSelectCtrl","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","$$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","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","cloneNode","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","getAliasedAttrName","ALIASED_ATTR","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","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","reloadLocation","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","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","flush","taskQueue","task","taskCount","queueFn","asyncFn","cancelLastRAF","rafFn","cancelQueueFn","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","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","parentForm","$$parentForm","nullFormCtrl","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$addControl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","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","addRemoveClassesPostDigest","add","updateData","classesAdded","classesRemoved","existing","pin","domOperation","from","to","$$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","generateFunction","fnKey","intoId","return_","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","handleFormSubmission","parentFormCtrl","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","ctrls","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","chromeHack","selectCtrlName","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] } From 7b3a238fb9a25857ef05cda3de2df1ae3a4a4f20 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Aug 2015 12:20:46 -0400 Subject: [PATCH 004/355] (js) New progress indicator in Mail module --- .../MailerUI/UIxMailFolderTemplate.wox | 66 ++++++++++--------- .../js/Mailer/Mailbox.service.js | 2 +- .../components/progressCircular/_extends.scss | 2 +- .../progressCircular/progress-circular.scss | 16 +++++ UI/WebServerResources/scss/styles.scss | 4 +- 5 files changed, 55 insertions(+), 35 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index 04a4769a0..c7d6a2fcf 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -5,7 +5,6 @@ xmlns:label="OGo:label">
    -

    {{mailbox.selectedFolder.$messages.length}} @@ -14,38 +13,43 @@

    -
    - - -
    - -
    - -
    {{currentMessage.$shortAddress('from')}}
    -
    {{currentMessage.subject}}
    -
    -
    - warning - star - reply - forward - attach_file -
    -
    -
    + + +
    + +
    + +
    {{currentMessage.$shortAddress('from')}}
    +
    {{currentMessage.subject}}
    +
    +
    + warning + star + reply + forward + attach_file +
    +
    +
    + +
    diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index 6d3dc4de1..62fde844f 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -150,7 +150,7 @@ */ Mailbox.prototype.init = function(data) { var _this = this; - this.$isLoading = false; + this.$isLoading = true; this.$messages = []; this.uidsMap = {}; angular.extend(this, data); diff --git a/UI/WebServerResources/scss/components/progressCircular/_extends.scss b/UI/WebServerResources/scss/components/progressCircular/_extends.scss index fda3a18b0..8a6c57f15 100644 --- a/UI/WebServerResources/scss/components/progressCircular/_extends.scss +++ b/UI/WebServerResources/scss/components/progressCircular/_extends.scss @@ -1,2 +1,2 @@ /*! progressCircular/_extends.scss - */ -@import '../../../angular-material/src/components/progressCircular/progressCircular.scss'; \ No newline at end of file +@import '../../../angular-material/src/components/progressCircular/progress-circular.scss'; \ No newline at end of file diff --git a/UI/WebServerResources/scss/components/progressCircular/progress-circular.scss b/UI/WebServerResources/scss/components/progressCircular/progress-circular.scss index 72cdbcc72..bdbfa0829 100644 --- a/UI/WebServerResources/scss/components/progressCircular/progress-circular.scss +++ b/UI/WebServerResources/scss/components/progressCircular/progress-circular.scss @@ -1,2 +1,18 @@ /// progressCircular.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- @import 'extends'; + +.sg-progress-circular-floating { + &.ng-hide { + transform: translate(-50%, 0) scale(0); + } + transition: transform .3s cubic-bezier(0.18, 0.89, 0.32, 1.28); + position: absolute; + top: (10 * $baseline-grid); + left: 50%; + transform: translate(-50%, 0) scale(1); + bottom: auto; + background-color: white; + border-radius: 50%; + padding: $baseline-grid/2; + box-shadow: $whiteframe-shadow-z3; +} \ No newline at end of file diff --git a/UI/WebServerResources/scss/styles.scss b/UI/WebServerResources/scss/styles.scss index 41d7ec800..ef945b7af 100755 --- a/UI/WebServerResources/scss/styles.scss +++ b/UI/WebServerResources/scss/styles.scss @@ -46,8 +46,8 @@ @import 'components/input/input'; @import 'components/list/list'; @import 'components/menu/menu'; -//@import 'components/progressCircular/progress-circular'; -@import 'components/progressLinear/progress-linear'; +@import 'components/progressCircular/progress-circular'; +//@import 'components/progressLinear/progress-linear'; @import 'components/radioButton/radio-button'; @import 'components/select/select'; @import 'components/sidenav/sidenav'; From 1fc947d8c818f7e89f7eda4703ce1af1515e1e06 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 25 Aug 2015 13:46:33 -0400 Subject: [PATCH 005/355] (fix) Define CSS styles for ALL calendars --- UI/Templates/SchedulerUI/UIxCalMainView.wox | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxCalMainView.wox b/UI/Templates/SchedulerUI/UIxCalMainView.wox index 36ea6b086..46ea56fa2 100644 --- a/UI/Templates/SchedulerUI/UIxCalMainView.wox +++ b/UI/Templates/SchedulerUI/UIxCalMainView.wox @@ -143,10 +143,7 @@ diff --git a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox index b25833d2a..99a65ce30 100644 --- a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox +++ b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox @@ -5,6 +5,7 @@ xmlns:const="http://www.skyrix.com/od/constant" xmlns:label="OGo:label" > +
    @@ -29,7 +30,7 @@
    + ng-click="editor.close()"> close - + diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index c7d6a2fcf..2dc80b576 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -58,7 +58,8 @@
    -
    +
    diff --git a/UI/Templates/MailerUI/UIxMailViewTemplate.wox b/UI/Templates/MailerUI/UIxMailViewTemplate.wox index b7b31f715..d857ccff5 100644 --- a/UI/Templates/MailerUI/UIxMailViewTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailViewTemplate.wox @@ -85,7 +85,7 @@
    + ng-click="viewer.close()"> close diff --git a/UI/WebServerResources/js/Contacts/CardController.js b/UI/WebServerResources/js/Contacts/CardController.js index b228f326a..4f2f711b3 100644 --- a/UI/WebServerResources/js/Contacts/CardController.js +++ b/UI/WebServerResources/js/Contacts/CardController.js @@ -29,6 +29,7 @@ vm.addMember = addMember; vm.userFilter = userFilter; vm.save = save; + vm.close = close; vm.reset = reset; vm.cancel = cancel; vm.confirmDelete = confirmDelete; @@ -86,6 +87,11 @@ }); } } + function close() { + vm.card = null; + delete AddressBook.selectedFolder.selectedCard; + $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }); + } function reset() { vm.card.$reset(); } diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index 2df7a208e..22c9e223e 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -17,6 +17,7 @@ vm.service = Message; vm.tags = { searchText: '', selected: '' }; vm.doDelete = doDelete; + vm.close = close; vm.reply = reply; vm.replyAll = replyAll; vm.forward = forward; @@ -69,6 +70,13 @@ }); } + 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); diff --git a/UI/WebServerResources/scss/views/_view.scss b/UI/WebServerResources/scss/views/_view.scss index f4d54e5d4..f15762614 100644 --- a/UI/WebServerResources/scss/views/_view.scss +++ b/UI/WebServerResources/scss/views/_view.scss @@ -64,91 +64,60 @@ $detailView-width: grid-step(8) !global; margin: 0; } + + // No animation on medium to large screens @include from(md) { .viewer { position: absolute; left: 0; right: 0; max-width: 100%; - transform: translate3d(0, 0, 0); - transition: all 0.5s $swift-ease-in-out-timing-function; - &.ng-enter { - transform: translate(-105%, 0); - &.ng-enter-active { - transform: translate(0%, 0%); - transition-delay: 0.5s; - } - } - - &.ng-leave { - transition-delay: 0; - transition-duration: 0.1s; - transform: translate(0, 0); - - &.ng-leave-active { - transition-delay: 0.1s; - transition-duration: 0.4s; - transform: translate(-105%, 100%); - - } - } +// transform: translate3d(0, 0, 0); +// transition: all 0.5s $swift-ease-in-out-timing-function; +// &.ng-enter { +// transform: translate(-105%, 0); +// &.ng-enter-active { +// transform: translate(0, 0); +// transition-delay: 0.5s; +// } +// } +// &.ng-leave { +// transition-delay: 0; +// transition-duration: 0.1s; +// transform: translate(0, 0); +// &.ng-leave-active { +// transition-delay: 0.1s; +// transition-duration: 0.4s; +// transform: translate(-105%, 100%); +// } +// } } } + // On small screens, the view slides from the right and takes all screen place @include to(sm) { position: absolute; width: 100%; min-width: 100%; - // caution: limited support in Android (<=4.4), full-support in v. 37 - height: calc(100vh - #{$toolbar-tall-height}); - transform: translateX(-100%) scale(1); - transform-origin: 50% 50%; + top: $toolbar-tall-height; + bottom: 0; + left: 0; + right: 0; transition: all 0.5s $swift-ease-in-out-timing-function; -// .view-detail.sg-close hides the background &.sg-close { - transition-delay: 0.1s; - transition-duration: 0.4s; - transform: translateX(-100%) scale(0); - // .viewer is the card itself - .viewer { - &.ng-leave, - &.ng-enter, - &.ng-leave.ng-leave-active { - transform: translateY(0) scale(0); - } - // ui-sref might add ng-animate class early - &.ng-enter.ng-enter-active { - transform: translateY(0) scale(0); - } + transform: translateX(100%); + } + &.ng-leave { + &.ng-leave-active { + transform: translateX(100%); } } - // .viewer is the card itself - .viewer { - &.ng-leave, - &.ng-leave.ng-leave-active { - transform: translateY(100%) scale(0); - } - - &.ng-enter { - transition: all 0.5s $swift-ease-in-out-timing-function; - transform: translateY(100%) scale(0); - } - &.ng-enter.ng-enter-active { - transform: translateY(0) scale(1); - } - } - - &.ng-leave, - &.ng-leave.ng-leave-active { - transform: translateX(-100%) scale(0); - } - &.ng-enter { transition: all 0.5s $swift-ease-in-out-timing-function; - transform: translateX(-100%) scale(0); - } - &.ng-enter.ng-enter-active { - transform: translateX(-100%) scale(1); + transform: translateX(100%); + &.ng-enter-active { + transform: translateX(0); + } } } } From d9d59c6b52382769d7793883da50782bfb10cdbc Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 26 Aug 2015 21:22:39 -0400 Subject: [PATCH 018/355] (fix) Force a single mail composer dialog --- .../js/Mailer/MailboxController.js | 39 ++++++++++-------- .../js/Mailer/MessageController.js | 41 +++++++++++-------- 2 files changed, 46 insertions(+), 34 deletions(-) diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index 0fcba610e..dbabdf1fa 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -8,7 +8,7 @@ */ MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox']; function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) { - var vm = this; + var vm = this, messageDialog = null; Mailbox.selectedFolder = stateMailbox; @@ -127,22 +127,29 @@ } function newMessage($event) { - var message = vm.account.$newMessage(); + var message; - $mdDialog.show({ - parent: angular.element(document.body), - targetEvent: $event, - clickOutsideToClose: false, - escapeToClose: false, - templateUrl: 'UIxMailEditor', - controller: 'MessageEditorController', - controllerAs: 'editor', - locals: { - stateAccounts: vm.accounts, - stateMessage: message, - stateRecipients: [] - } - }); + if (messageDialog === null) { + message = vm.account.$newMessage(); + messageDialog = $mdDialog + .show({ + parent: angular.element(document.body), + targetEvent: $event, + clickOutsideToClose: false, + escapeToClose: false, + templateUrl: 'UIxMailEditor', + controller: 'MessageEditorController', + controllerAs: 'editor', + locals: { + stateAccounts: vm.accounts, + stateMessage: message, + stateRecipients: [] + } + }) + .finally(function() { + messageDialog = null; + }); + } } } diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index 22c9e223e..a2b8ea8ca 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -8,7 +8,7 @@ */ MessageController.$inject = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message']; function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) { - var vm = this; + var vm = this, messageDialog = null; vm.accounts = stateAccounts; vm.account = stateAccount; @@ -50,24 +50,29 @@ } function showMailEditor($event, message, recipients) { + if (messageDialog === null) { + if (!angular.isDefined(recipients)) + recipients = []; - if (!angular.isDefined(recipients)) - recipients = []; - - $mdDialog.show({ - parent: angular.element(document.body), - targetEvent: $event, - clickOutsideToClose: false, - escapeToClose: false, - templateUrl: 'UIxMailEditor', - controller: 'MessageEditorController', - controllerAs: 'editor', - locals: { - stateAccounts: vm.accounts, - stateMessage: message, - stateRecipients: recipients - } - }); + messageDialog = $mdDialog + .show({ + parent: angular.element(document.body), + targetEvent: $event, + clickOutsideToClose: false, + escapeToClose: false, + templateUrl: 'UIxMailEditor', + controller: 'MessageEditorController', + controllerAs: 'editor', + locals: { + stateAccounts: vm.accounts, + stateMessage: message, + stateRecipients: recipients + } + }) + .finally(function() { + messageDialog = null; + }); + } } function close() { From d878c69c15cc2f6ff2995558c5961538b799aecb Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Thu, 27 Aug 2015 11:01:23 -0400 Subject: [PATCH 019/355] (feat) can now create mails from address book module --- .../ContactsUI/UIxContactFoldersView.wox | 4 +- .../ContactsUI/UIxContactViewTemplate.wox | 3 +- UI/WebServerResources/Gruntfile.js | 4 +- .../js/Contacts/AddressBookController.js | 77 ++++++++++++++++++- .../js/Contacts/Card.service.js | 3 +- .../js/Contacts/Contacts.app.js | 2 +- .../js/Mailer/Account.service.js | 27 +++++-- 7 files changed, 104 insertions(+), 16 deletions(-) diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox index 34370fb77..fcb487491 100644 --- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -9,7 +9,7 @@ className="UIxPageFrame" title="title" const:userDefaultsKeys="SOGoContactsCategories" - const:jsFiles="Common.js, Preferences.services.js, Contacts.js, Contacts.services.js, vendor/angular-file-upload.min.js"> + const:jsFiles="vendor/ckeditor/ckeditor.js, vendor/ckeditor/ck.js, Common.js, Preferences.services.js, Mailer.services.js, Contacts.js, Contacts.services.js, vendor/angular-file-upload.min.js"> @@ -311,7 +311,7 @@ - + diff --git a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox index 99a65ce30..7bc8a95dd 100644 --- a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox +++ b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox @@ -118,7 +118,8 @@
    diff --git a/UI/WebServerResources/Gruntfile.js b/UI/WebServerResources/Gruntfile.js index cd24d53d5..bee2efb39 100644 --- a/UI/WebServerResources/Gruntfile.js +++ b/UI/WebServerResources/Gruntfile.js @@ -6,8 +6,8 @@ module.exports = function(grunt) { 'js/Scheduler.js': ['js/Scheduler/Scheduler.app.js', 'js/Scheduler/*Controller.js', 'js/Scheduler/*.directive.js'], 'js/Contacts.services.js': ['js/Contacts/*.service.js'], 'js/Contacts.js': ['js/Contacts/Contacts.app.js', 'js/Contacts/*Controller.js', 'js/Contacts/*.directive.js'], - 'js/Mailer.services.js': ['js/Mailer/*.service.js'], - 'js/Mailer.js': ['js/Mailer/Mailer.app.js', 'js/Mailer/*Controller.js', 'js/Mailer/*.directive.js'], + 'js/Mailer.services.js': ['js/Mailer/*.service.js', 'js/Mailer/*Controller.js'], + 'js/Mailer.js': ['js/Mailer/Mailer.app.js', 'js/Mailer/*.directive.js'], 'js/Preferences.services.js': ['js/Preferences/*.service.js'], 'js/Preferences.js': ['js/Preferences/Preferences.app.js', 'js/Preferences/*Controller.js'] }; diff --git a/UI/WebServerResources/js/Contacts/AddressBookController.js b/UI/WebServerResources/js/Contacts/AddressBookController.js index cdc845dcf..c54ad8d8e 100644 --- a/UI/WebServerResources/js/Contacts/AddressBookController.js +++ b/UI/WebServerResources/js/Contacts/AddressBookController.js @@ -6,8 +6,8 @@ /** * @ngInject */ - AddressBookController.$inject = ['$scope', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook']; - function AddressBookController($scope, $state, $timeout, $mdDialog, focus, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) { + AddressBookController.$inject = ['$scope', '$q', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Account', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook']; + function AddressBookController($scope, $q, $state, $timeout, $mdDialog, focus, Account, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) { var vm = this; AddressBook.selectedFolder = stateAddressbook; @@ -24,6 +24,9 @@ vm.sort = sort; vm.sortedBy = sortedBy; vm.cancelSearch = cancelSearch; + vm.newMessage = newMessage; + vm.newMessageWithSelectedCards = newMessageWithSelectedCards; + vm.newMessageWithRecipient = newMessageWithRecipient; vm.mode = { search: false }; function selectCard(card) { @@ -122,6 +125,76 @@ vm.mode.search = false; vm.selectedFolder.$filter(''); } + + function newMessage($event, recipients) { + Account.$findAll().then(function(accounts) { + var account = _.filter(accounts, function(o) { + if (o.id === 0) + return o; + })[0]; + + // We must initialize the Account with its mailbox + // list before proceeding with message's creation + account.$getMailboxes().then(function(mailboxes) { + account.$newMessage().then(function(message) { + $mdDialog.show({ + parent: angular.element(document.body), + targetEvent: $event, + clickOutsideToClose: false, + escapeToClose: false, + 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; }); + var promises = [], recipients = []; + + _.each(selectedCards, function(card) { + if (card.c_component == 'vcard' && card.c_mail.length) { + recipients.push({full: card.c_cn + ' <' + card.c_mail + '>'}); + } + else if (card.c_component == 'vlist') { + // If the list's members were already fetch, use them + if (angular.isDefined(card.refs) && card.refs.length) { + _.each(card.refs, function(ref) { + if (ref.email.length) + recipients.push({full: ref.c_cn + ' <' + ref.email + '>'}); + }); + } + else { + promises.push(vm.selectedFolder.$getCard(card.id).then(function(card) { + return card.$futureCardData.then(function(data) { + _.each(data.refs, function(ref) { + if (ref.email.length) + recipients.push({full: ref.c_cn + ' <' + ref.email + '>'}); + }); + }); + })); + } + } + }); + + $q.all(promises).then(function() { + if (recipients.length) + vm.newMessage($event, recipients); + }); + } } angular diff --git a/UI/WebServerResources/js/Contacts/Card.service.js b/UI/WebServerResources/js/Contacts/Card.service.js index 32c8cb60d..2254c9b87 100644 --- a/UI/WebServerResources/js/Contacts/Card.service.js +++ b/UI/WebServerResources/js/Contacts/Card.service.js @@ -452,7 +452,7 @@ // Resolve the promise this.$futureCardData.then(function(data) { // Calling $timeout will force Angular to refresh the view - Card.$timeout(function() { + return Card.$timeout(function() { _this.init(data); // Instanciate Card objects for list members angular.forEach(_this.refs, function(o, i) { @@ -465,6 +465,7 @@ } // Make a copy of the data for an eventual reset _this.$shadowData = _this.$omit(true); + return _this; }); }); }; diff --git a/UI/WebServerResources/js/Contacts/Contacts.app.js b/UI/WebServerResources/js/Contacts/Contacts.app.js index 16205a872..587fce95d 100644 --- a/UI/WebServerResources/js/Contacts/Contacts.app.js +++ b/UI/WebServerResources/js/Contacts/Contacts.app.js @@ -4,7 +4,7 @@ (function() { 'use strict'; - angular.module('SOGo.ContactsUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'SOGo.Common', 'SOGo.PreferencesUI']) + angular.module('SOGo.ContactsUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'ck', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.MailerUI']) .config(configure) .run(runBlock); diff --git a/UI/WebServerResources/js/Mailer/Account.service.js b/UI/WebServerResources/js/Mailer/Account.service.js index 8923c4ece..1a4aba21e 100644 --- a/UI/WebServerResources/js/Mailer/Account.service.js +++ b/UI/WebServerResources/js/Mailer/Account.service.js @@ -36,7 +36,7 @@ $q: $q, $timeout: $timeout, $log: $log, - $$resource: new Resource(Settings.baseURL(), Settings.activeUser()), + $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()), $Mailbox: Mailbox, $Message: Message }); @@ -64,14 +64,27 @@ * @returns the list of accounts */ Account.$findAll = function(data) { - var collection = []; - if (data) { - // Each entry is spun up as an Account instance - angular.forEach(data, function(o, i) { - o.id = i; - collection[i] = new Account(o); + if (!data) { + return Account.$$resource.fetch('', 'mailAccounts').then(function(o) { + return Account.$unwrapCollection(o); }); } + return Account.$unwrapCollection(data); + }; + + /** + * @memberof Account + * @desc Unwrap to a collection of Account instances. + * @param {object} data - the accounts information + * @returns a collection of Account objects + */ + Account.$unwrapCollection = function(data) { + var collection = []; + + angular.forEach(data, function(o, i) { + o.id = i; + collection[i] = new Account(o); + }); return collection; }; From 834aba85a67dbab0a7a87b7caf4d4ff539db0917 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Thu, 27 Aug 2015 11:47:51 -0400 Subject: [PATCH 020/355] (fix) cleanups --- UI/MailPartViewers/UIxMailPartTextViewer.h | 4 +-- UI/MailPartViewers/UIxMailPartTextViewer.m | 39 +++++++++++----------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/UI/MailPartViewers/UIxMailPartTextViewer.h b/UI/MailPartViewers/UIxMailPartTextViewer.h index dda31d780..8a99ed462 100644 --- a/UI/MailPartViewers/UIxMailPartTextViewer.h +++ b/UI/MailPartViewers/UIxMailPartTextViewer.h @@ -1,8 +1,6 @@ /* UIxMailPartTextViewer.h - this file is part of $PROJECT_NAME_HERE$ * - * Copyright (C) 2006 Inverse inc. - * - * Author: Wolfgang Sourdeau + * Copyright (C) 2006-2015 Inverse inc. * * This file is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/UI/MailPartViewers/UIxMailPartTextViewer.m b/UI/MailPartViewers/UIxMailPartTextViewer.m index eb978d4cc..e5f84d379 100644 --- a/UI/MailPartViewers/UIxMailPartTextViewer.m +++ b/UI/MailPartViewers/UIxMailPartTextViewer.m @@ -1,23 +1,22 @@ -/* - Copyright (C) 2004-2005 SKYRIX Software AG - - This file is part of OpenGroupware.org. - - OGo is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - OGo is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public - License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with OGo; see the file COPYING. If not, write to the - Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. -*/ +/* UIxMailPartTextViewer.m - this file is part of $PROJECT_NAME_HERE$ + * + * Copyright (C) 2006-2015 Inverse inc. + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ /* UIxMailPartTextViewer From bf390f17dd6c6e8c6165bd4f675f422d3f0c0fc9 Mon Sep 17 00:00:00 2001 From: Luc Charland Date: Wed, 26 Aug 2015 15:07:11 -0400 Subject: [PATCH 021/355] fixed when strings not initialized in prefs --- Tests/Integration/preferences.py | 8 ++++---- Tests/Integration/test-prevent-invitations.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Tests/Integration/preferences.py b/Tests/Integration/preferences.py index 9620b271a..ea3e7b10b 100644 --- a/Tests/Integration/preferences.py +++ b/Tests/Integration/preferences.py @@ -89,9 +89,9 @@ class preferences: get = HTTPPreferencesGET(url) get.cookie = self.cookie self.client.execute(get) - if DEBUG: print "LUC (url):", url - if DEBUG: print "LUC (status):", get.response["status"] - if DEBUG: print "LUC (body):", get.response['body'] + if DEBUG: print "DEBUG (url):", url + if DEBUG: print "DEBUG (status):", get.response["status"] + if DEBUG: print "DEBUG (body):", get.response['body'] content = simplejson.loads(get.response['body']) result = None try: @@ -117,7 +117,7 @@ class preferences: # Get the right sub-dict and change the key/value subdict = self.find_key(self.preferences, preference) if not subdict: - print "LUC(nosubdict):", preference, self.preferences + raise AttributeError("ERROR(nosubdict): looking for %s in: %s" %(preference, str(self.preferences))) subdict[preference] = value def set(self, preference, value=None): diff --git a/Tests/Integration/test-prevent-invitations.py b/Tests/Integration/test-prevent-invitations.py index 0ed60f589..c359d5369 100755 --- a/Tests/Integration/test-prevent-invitations.py +++ b/Tests/Integration/test-prevent-invitations.py @@ -28,12 +28,14 @@ class preventInvitationsTest(unittest.TestCase): self.caldav = CalDAVSchedulingTest(self) cal = self.prefs.get("Calendar") if "PreventInvitationsWhitelist" not in cal: - #print "LUC (cal):", cal cal["PreventInvitationsWhitelist"] = None self.prefs.set("PreventInvitationsWhitelist", None) + if "PreventInvitations" not in cal: + cal["PreventInvitations"] = 0 + self.prefs.set("PreventInvitations", 0) def tearDown(self): - self.prefs.set("autoReplyText", "") + #self.prefs.set("autoReplyText", "") self.prefs.set('PreventInvitations', 0) self.prefs.set("PreventInvitationsWhitelist", None) #- Manual Cleanup, not called because classs is not derived from unittest From bba0d6f44d7515343c8513b293608d09e1f1dc1f Mon Sep 17 00:00:00 2001 From: Luc Charland Date: Thu, 27 Aug 2015 11:27:23 -0400 Subject: [PATCH 022/355] make the tests more robust when data is invalid in DB/Webdav --- Tests/Integration/carddav.py | 6 +++++- Tests/Integration/test-carddav.py | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Tests/Integration/carddav.py b/Tests/Integration/carddav.py index 68a859723..c9385cb17 100644 --- a/Tests/Integration/carddav.py +++ b/Tests/Integration/carddav.py @@ -70,7 +70,11 @@ class Carddav: if not self.cards: url = "/SOGo/so/%s/Contacts/personal/view" % (self.login) content = self._get(url) - self.cards = content['cards'] + #print "\nCONTENT:", content + if 'cards' in content: + self.cards = content['cards'] + else: + self.cards = [] return self.cards def get_cards(self, pattern): diff --git a/Tests/Integration/test-carddav.py b/Tests/Integration/test-carddav.py index 5748730ed..0d642d683 100755 --- a/Tests/Integration/test-carddav.py +++ b/Tests/Integration/test-carddav.py @@ -85,6 +85,13 @@ class JsonDavPhoneTests(unittest.TestCase): self.allphones = list(self.newphone) self.allphones.extend(self.newphones_difftype) self.allphones.extend(self.newphones_sametype) + #- In case there are no cards for this user + try: + self._get_card() + except IndexError: + path = 'Contacts/personal' + (card, path, gid) = self._create_new_card(path) + self._save_card(card) def tearDown(self): self._connect_as_user() @@ -102,6 +109,23 @@ class JsonDavPhoneTests(unittest.TestCase): def _connect_as_user(self, newuser=username, newpassword=password): self.dv = carddav.Carddav(newuser, newpassword) + def _create_new_card(self, path): + gid = self.dv.newguid(path) + card = {'c_categories': None, + 'c_cn': 'John Doe', + 'c_component': 'vcard', + 'c_givenname': 'John Doe', + 'c_mail': 'johndoe@nothere.com', + 'c_name': gid, + 'c_o': '', + 'c_screenname': '', + 'c_sn': '', + 'c_telephonenumber': '123.456.7890', + 'emails': [{'type': 'pref', 'value': 'johndoe@nothere.com'}], + 'phones': [{'type': 'home', 'value': '111.222.3333'}], + 'id': gid} + return (card, path, gid) + def _get_card(self, name="John Doe"): tmp_card = self.dv.get_cards(name)[0] self.card = self.dv.get_card(tmp_card['c_name']) From 3611c4021dff18b4189eaa4f5a7b1e95e677dae7 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 27 Aug 2015 13:37:47 -0400 Subject: [PATCH 023/355] Improve view detail (messages, cards) --- UI/Contacts/English.lproj/Localizable.strings | 3 ++ UI/MailerUI/English.lproj/Localizable.strings | 3 ++ .../ContactsUI/UIxContactFoldersView.wox | 8 +++-- .../MailerUI/UIxMailFolderTemplate.wox | 8 +++-- .../js/Contacts/CardController.js | 7 ++-- .../scss/views/MailerUI.scss | 5 +++ UI/WebServerResources/scss/views/_view.scss | 35 +++++++++++++------ 7 files changed, 52 insertions(+), 17 deletions(-) diff --git a/UI/Contacts/English.lproj/Localizable.strings b/UI/Contacts/English.lproj/Localizable.strings index 7cace8968..daa2cd0d5 100644 --- a/UI/Contacts/English.lproj/Localizable.strings +++ b/UI/Contacts/English.lproj/Localizable.strings @@ -46,6 +46,9 @@ /* Number of selected contacts in list */ "selected" = "selected"; +/* Empty right pane */ +"No contact selected" = "No contact selected"; + /* Tooltips */ "Create a new address book card" = "Create a new address book card"; diff --git a/UI/MailerUI/English.lproj/Localizable.strings b/UI/MailerUI/English.lproj/Localizable.strings index 2cdbbddce..75e17db04 100644 --- a/UI/MailerUI/English.lproj/Localizable.strings +++ b/UI/MailerUI/English.lproj/Localizable.strings @@ -65,6 +65,9 @@ "Account: " = "Account: "; "Shared Account: " = "Shared Account: "; +/* Empty right pane */ +"No message selected" = "No message selected"; + /* acls */ "Access rights to" = "Access rights to"; "For user" = "For user"; diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox index fcb487491..148bee81b 100644 --- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -375,9 +375,13 @@
    -
    + ui-view="card"> + + + +
    diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index 2dc80b576..dc462a16c 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -58,8 +58,12 @@ -
    + ui-view="message"> + + + + diff --git a/UI/WebServerResources/js/Contacts/CardController.js b/UI/WebServerResources/js/Contacts/CardController.js index 4f2f711b3..b14b91f35 100644 --- a/UI/WebServerResources/js/Contacts/CardController.js +++ b/UI/WebServerResources/js/Contacts/CardController.js @@ -88,9 +88,10 @@ } } function close() { - vm.card = null; - delete AddressBook.selectedFolder.selectedCard; - $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }); + $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }).then(function() { + vm.card = null; + delete AddressBook.selectedFolder.selectedCard; + }); } function reset() { vm.card.$reset(); diff --git a/UI/WebServerResources/scss/views/MailerUI.scss b/UI/WebServerResources/scss/views/MailerUI.scss index 44ae3ad63..26c194bbd 100644 --- a/UI/WebServerResources/scss/views/MailerUI.scss +++ b/UI/WebServerResources/scss/views/MailerUI.scss @@ -27,6 +27,11 @@ flex: 1 1 auto; align-items: stretch; justify-content: flex-start; + overflow: hidden; + [class|="sg-md-display"] { + overflow: hidden; + text-overflow: ellipsis; + } } .msg-body { diff --git a/UI/WebServerResources/scss/views/_view.scss b/UI/WebServerResources/scss/views/_view.scss index f15762614..31389a900 100644 --- a/UI/WebServerResources/scss/views/_view.scss +++ b/UI/WebServerResources/scss/views/_view.scss @@ -53,7 +53,6 @@ $detailView-width: grid-step(8) !global; .view-detail { z-index: $z-index-view; overflow-x: hidden; - background-color: transparent; @include at(md) { @include flex-col(md, 9); margin: 0; @@ -69,6 +68,7 @@ $detailView-width: grid-step(8) !global; @include from(md) { .viewer { position: absolute; + top: 0; left: 0; right: 0; max-width: 100%; @@ -94,30 +94,45 @@ $detailView-width: grid-step(8) !global; } } - // On small screens, the view slides from the right and takes all screen place + // On small screens, the view slides from the right and takes all screen place. + // Expected Display Steps: + // 1. The class sg-close is used when there's no selection + // 2. An list item is selected (ui-router state changes): + // a. sg-close is removed from view-detail + // b. view-detail (transparent) slides over view-list + // c. viewer is inserted into the DOM and slides inside view-detail + // 3. An list item is closed (ui-router state changes): + // a. viewer slides out of view-detail and is removed from the DOM + // b. view-detail (transparent) slides outside view-list + // c. sg-close is added to view-detail @include to(sm) { + display: block; + background-color: transparent !important; position: absolute; - width: 100%; - min-width: 100%; top: $toolbar-tall-height; bottom: 0; left: 0; right: 0; - transition: all 0.5s $swift-ease-in-out-timing-function; + transform: translateX(0); + transition: $swift-ease-in-out; &.sg-close { transform: translateX(100%); } - &.ng-leave { - &.ng-leave-active { - transform: translateX(100%); - } + &.ng-leave.ng-leave-active { + transform: translateX(100%); } &.ng-enter { - transition: all 0.5s $swift-ease-in-out-timing-function; transform: translateX(100%); &.ng-enter-active { transform: translateX(0); } } + .viewer { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + } } } From 1667f8879ddd325fe08c9292f587716cf5f619ac Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 27 Aug 2015 14:09:43 -0400 Subject: [PATCH 024/355] (js) New progress indicator in AddressBook module --- .../ContactsUI/UIxContactFoldersView.wox | 6 +++ .../js/Contacts/AddressBook.service.js | 38 +++++-------------- 2 files changed, 15 insertions(+), 29 deletions(-) diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox index 148bee81b..cde883fc1 100644 --- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -366,6 +366,12 @@ +
    + +
    = 0; index--) { - card = cards[index]; - if (_.isUndefined(_.find(results, compareIds, card))) { - cards.splice(index, 1); - } - } - - // Add new cards - _.each(results, function(data, index) { - if (_.isUndefined(_.find(cards, compareIds, data))) { - var card = new AddressBook.$Card(data); - cards.splice(index, 0, card); - } - }); - - return cards; - }); + return this.$filter(); }; /** @@ -330,6 +304,8 @@ AddressBook.prototype.$filter = function(search, options, excludedCards) { var _this = this; + this.$isLoading = true; + return AddressBook.$Preferences.ready().then(function() { if (options) { angular.extend(AddressBook.$query, options); @@ -347,7 +323,8 @@ } } - AddressBook.$query.value = search; + if (angular.isDefined(search)) + AddressBook.$query.value = search; return _this.$id().then(function(addressbookId) { return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query); @@ -396,6 +373,7 @@ cards.splice(index, 0, removedCards[0]); } }); + _this.$isLoading = false; return cards; }); }); @@ -528,6 +506,8 @@ _this.$startRefreshTimeout(); + _this.$isLoading = false; + return _this; }); }, function(data) { From c9d9f7b47a6101de8f11762a0620401576f5b4ed Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 27 Aug 2015 15:55:56 -0400 Subject: [PATCH 025/355] (js) Add caching of cards --- .../js/Contacts/AddressBook.service.js | 19 ++++++++++- .../js/Contacts/Card.service.js | 32 ++++++++----------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/UI/WebServerResources/js/Contacts/AddressBook.service.js b/UI/WebServerResources/js/Contacts/AddressBook.service.js index d47ff9f4f..3e88988a7 100644 --- a/UI/WebServerResources/js/Contacts/AddressBook.service.js +++ b/UI/WebServerResources/js/Contacts/AddressBook.service.js @@ -471,8 +471,25 @@ * @returns a promise of the HTTP operation */ AddressBook.prototype.$getCard = function(cardId) { + var _this = this; + return this.$id().then(function(addressbookId) { - return AddressBook.$Card.$find(addressbookId, cardId); + var fullCard, + cachedCard = _.find(_this.cards, function(data) { + return cardId == data.id; + }); + + if (cachedCard && cachedCard.$futureCardData) + // Full card is available + return cachedCard; + + fullCard = AddressBook.$Card.$find(addressbookId, cardId); + fullCard.$id().then(function(cardId) { + // Extend the Card object of the addressbook list with the full card description + if (cachedCard) + angular.extend(cachedCard, fullCard); + }); + return fullCard; }); }; diff --git a/UI/WebServerResources/js/Contacts/Card.service.js b/UI/WebServerResources/js/Contacts/Card.service.js index 2254c9b87..7ea90a23d 100644 --- a/UI/WebServerResources/js/Contacts/Card.service.js +++ b/UI/WebServerResources/js/Contacts/Card.service.js @@ -447,26 +447,20 @@ var _this = this; // Expose the promise - this.$futureCardData = futureCardData; - - // Resolve the promise - this.$futureCardData.then(function(data) { - // Calling $timeout will force Angular to refresh the view - return Card.$timeout(function() { - _this.init(data); - // Instanciate Card objects for list members - angular.forEach(_this.refs, function(o, i) { - if (o.email) o.emails = [{value: o.email}]; - o.id = o.reference; - _this.refs[i] = new Card(o); - }); - if (_this.birthday) { - _this.birthday = new Date(_this.birthday * 1000); - } - // Make a copy of the data for an eventual reset - _this.$shadowData = _this.$omit(true); - return _this; + this.$futureCardData = futureCardData.then(function(data) { + _this.init(data); + // Instanciate Card objects for list members + angular.forEach(_this.refs, function(o, i) { + if (o.email) o.emails = [{value: o.email}]; + o.id = o.reference; + _this.refs[i] = new Card(o); }); + if (_this.birthday) { + _this.birthday = new Date(_this.birthday * 1000); + } + // Make a copy of the data for an eventual reset + _this.$shadowData = _this.$omit(true); + return _this; }); }; From 431c53b84d822d1be7cc31473274ec369697f45a Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 28 Aug 2015 13:59:41 -0400 Subject: [PATCH 026/355] (feat) new time picker component + enabled it in the calendar module --- .../UIxAppointmentEditorTemplate.wox | 20 +- .../SchedulerUI/UIxTaskEditorTemplate.wox | 38 ++- .../js/Scheduler/Component.service.js | 84 +++++- .../timepicker/timepicker-default-theme.css | 19 ++ .../components/timepicker/timepicker.scss | 240 ++++++++++++++++++ UI/WebServerResources/scss/styles.scss | 3 + 6 files changed, 376 insertions(+), 28 deletions(-) create mode 100644 UI/WebServerResources/scss/components/timepicker/timepicker-default-theme.css create mode 100644 UI/WebServerResources/scss/components/timepicker/timepicker.scss diff --git a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox index 231aee3dc..d143851d2 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox @@ -96,15 +96,17 @@ -
    - - - - - - - - +
    +
    + + + +
    +
    + + + +
    diff --git a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox index 87c2384f0..e79ef33c5 100644 --- a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox @@ -80,15 +80,35 @@ -
    - - - - - - - - +
    +
    + + + + + remove_circle + +
    +
    + + add_circle + + +
    +
    +
    + + + + + remove_circle + +
    +
    + + add_circle + +
    diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index b62be10b0..5d02b7792 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -345,8 +345,17 @@ if (this.startDate) this.start = new Date(this.startDate.substring(0,10) + ' ' + this.startDate.substring(11,16)); + else if (this.type == 'appointment') { + this.start = new Date(); + } + if (this.endDate) this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16)); + else if (this.type == 'appointment') { + this.end = new Date(); + this.end.addHours(1); + } + if (this.dueDate) this.due = new Date(this.dueDate.substring(0,10) + ' ' + this.dueDate.substring(11,16)); @@ -719,6 +728,45 @@ } }; + /** + * @function $addDueDate + * @memberof Component.prototype + * @desc Add a due date + */ + Component.prototype.$addDueDate = function() { + this.due = new Date(); + this.dueDate = this.due.toISOString(); + }; + + /** + * @function $deleteDueDate + * @memberof Component.prototype + * @desc Delete a due date + */ + Component.prototype.$deleteDueDate = function() { + delete this.due; + delete this.dueDate; + }; + + /** + * @function $addStartDate + * @memberof Component.prototype + * @desc Add a start date + */ + Component.prototype.$addStartDate = function() { + this.start = new Date(); + }; + + /** + * @function $deleteStartDate + * @memberof Component.prototype + * @desc Delete a start date + */ + Component.prototype.$deleteStartDate = function() { + delete this.start; + delete this.startDate; + }; + /** * @function $reset * @memberof Component.prototype @@ -821,9 +869,13 @@ } }); - // Format times - component.startTime = component.startDate ? formatTime(component.startDate) : ''; - component.endTime = component.endDate ? formatTime(component.endDate) : ''; + // Format dates and times + 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) : ''; // Update recurrence definition depending on selections if (this.$hasCustomRepeat) { @@ -867,18 +919,30 @@ component.alarm = {}; } - function formatTime(dateString) { - // YYYY-MM-DDTHH:MM-ZZ:00 => YYYY-MM-DD HH:MM - var date = new Date(dateString.substring(0,10) + ' ' + dateString.substring(11,16)), - hours = date.getHours(), - minutes = date.getMinutes(); - + function formatTime(date) { + var hours = date.getHours(); if (hours < 10) hours = '0' + hours; - if (minutes < 10) minutes = '0' + minutes; + var minutes = date.getMinutes(); + if (minutes < 10) minutes = '0' + minutes; return hours + ':' + minutes; } + function formatDate(date) { + var year = date.getYear(); + if (year < 1000) year += 1900; + + var month = '' + (date.getMonth() + 1); + if (month.length == 1) + month = '0' + month; + + var day = '' + date.getDate(); + if (day.length == 1) + day = '0' + day; + + return year + '-' + month + '-' + day; + } + return component; }; diff --git a/UI/WebServerResources/scss/components/timepicker/timepicker-default-theme.css b/UI/WebServerResources/scss/components/timepicker/timepicker-default-theme.css new file mode 100644 index 000000000..95030874c --- /dev/null +++ b/UI/WebServerResources/scss/components/timepicker/timepicker-default-theme.css @@ -0,0 +1,19 @@ + +/** Theme styles for sgTimepicker. */ +sg-timepicker.md-THEME_NAME-theme { + background: white; } + +.md-THEME_NAME-theme .sg-timepicker-input-container { + border-bottom-color: '{{background-300}}'; } + .md-THEME_NAME-theme .sg-timepicker-input-container.sg-timepicker-focused { + border-bottom-color: '{{primary-500}}'; } + .md-THEME_NAME-theme .sg-timepicker-input-container.sg-timepicker-invalid { + border-bottom-color: '{{warn-500}}'; } +.md-THEME_NAME-theme .sg-timepicker-time-pane { + border-color: '{{background-300}}'; } +.md-THEME_NAME-theme .sg-timepicker-triangle-button:hover .sg-timepicker-expand-triangle { + border-top-color: '{{foreground-2}}'; } +.md-THEME_NAME-theme .sg-timepicker-open .sg-timepicker-time-icon { + fill: '{{primary-500}}'; } +.md-THEME_NAME-theme .sg-timepicker-calendar { + background: white; } diff --git a/UI/WebServerResources/scss/components/timepicker/timepicker.scss b/UI/WebServerResources/scss/components/timepicker/timepicker.scss new file mode 100644 index 000000000..06b1fc045 --- /dev/null +++ b/UI/WebServerResources/scss/components/timepicker/timepicker.scss @@ -0,0 +1,240 @@ +/** Styles for sgTimePane. */ +$sg-time-pane-cell-size: 40px; + +$md-calendar-cell-size: 44px !default; +$md-calendar-header-height: 40px; +$md-calendar-cell-emphasis-size: 40px !default; +$md-calendar-side-padding: 16px !default; +$md-calendar-weeks-to-show: 7 !default; + +$md-calendar-month-label-padding: 8px !default; +$md-calendar-month-label-font-size: 13px !default; + +$md-calendar-width: (7 * $md-calendar-cell-size) + (2 * $md-calendar-side-padding); +$md-calendar-height: +($md-calendar-weeks-to-show * $md-calendar-cell-size) + $md-calendar-header-height; + +sg-time-pane { + font-size: 13px; + user-select: none; +} + +.hours-pane { + border-bottom: solid 1px rgb(224,224,224); +} + +.toggle-pane { + border-top: solid 1px rgb(224,224,224); +} + +.md-button.md-fab.hourBtn, +.md-button.md-fab.minuteBtn, +.md-button.md-fab.toggleBtn, +.md-button.md-fab.hourBtn.md-focused, +.md-button.md-fab.minuteBtn.md-focused, +.md-button.md-fab.toggleBtn.md-focused, +.md-button.md-fab.hourBtn.md-focus, +.md-button.md-fab.minuteBtn.md-focus, +.md-button.md-fab.toggleBtn.md-focus{ + min-width: 10px; + min-height: 10px; + background-color: transparent; + border-color: transparent; + font-family: Roboto, 'Helvetica Neue', sans-serif; + font-size: 16px; + font-weight:normal; + color: rgba(0,0,0,0.5); + height:$sg-time-pane-cell-size; + width:$sg-time-pane-cell-size; + line-height: $sg-time-pane-cell-size; + box-shadow: none; + margin: 2px; +} +.md-button.md-fab.toggleBtn{ + background-color: rgb(63, 81, 181); + color: white; + margin: 5px; +} + +.md-button.md-fab.hourBtn:hover, .md-button.md-fab.minuteBtn:hover { + background-color: lightgrey; + color: #666666; +} + +.md-button.md-fab.hourBtn.md-primary, .md-button.md-fab.minuteBtn.md-primary, +.md-button.md-fab.hourBtn.md-primary:hover, .md-button.md-fab.minuteBtn.md-primary:hover, +.md-button.md-fab.hourBtn.md-primary.md-focus, .md-button.md-fab.minuteBtn.md-primary.md-focus, +.md-button.md-fab.hourBtn.md-primary.md-focused, .md-button.md-fab.minuteBtn.md-primary.md-focused{ + background-color: lightgrey; + color: rgb(63, 81, 181);; +} + +/** Styles for sgTimepicker. */ +$md-datepicker-button-gap: 12px; // Space between the text input and the calendar-icon button. +$md-datepicker-border-bottom-gap: 5px; // Space between input and the grey underline. +$md-datepicker-open-animation-duration: 0.2s; + +sg-timepicker { + // Don't let linebreaks happen between the open icon-button and the input. + white-space: nowrap; +} + +// The calendar icon button used to open the calendar pane. +// Need absurd specificty to override md-button.md-icon-button. +.sg-timepicker-button { + display: inline-block; + box-sizing: border-box; + background: none; +} + +// The input into which the user can type the date. +.sg-timepicker-input { + //@include md-flat-input(); + min-width: 120px; + max-width: $md-calendar-width - $md-datepicker-button-gap; + background: inherit; + border: none; +} + +// Container for the datepicker input. +.sg-timepicker-input-container { + // Position relative in order to absolutely position the down-triangle button within. + position: relative; + + padding-bottom: $md-datepicker-border-bottom-gap; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: rgb(224,224,224); + + display: inline-block; + width: auto; + margin-left: $md-datepicker-button-gap; + + &.sg-timepicker-focused { + border-bottom-width: 2px; + } +} + + +// Floating pane that contains the time at the bottom of the input. +.sg-timepicker-time-pane { + position: absolute; + top: 0; + left: 0; + z-index: $z-index-menu; + + border-width: 1px; + border-style: solid; + background: inherit; + border-color: rgb(224,224,224); + box-shadow: rgba(0, 0, 0, 0.137255) 0 3px 1px -2px, rgba(0, 0, 0, 0.0980392) 0 2px 2px 0, rgba(0, 0, 0, 0.0823529) 0 1px 5px 0; + transform: scale(0); + transform-origin: 0 0; + //transition: transform $md-datepicker-open-animation-duration $swift-ease-out-timing-function; + + &.md-pane-open { + transform: scale(1); + } +} + +// Portion of the floating panel that sits, invisibly, on top of the input. +.sg-timepicker-input-mask { + height: 40px; + width: $md-calendar-width; + position: relative; + + background: transparent; + pointer-events: none; + cursor: text; +} + +.sg-timepicker-input-mask-opaque { + position: absolute; + right: 0; + left: 120px; + background: white; + + height: 100%; +} + +// The time portion of the floating pane (vs. the input mask). +.sg-timepicker-time { + opacity: 0; + // Use a modified timing function (from swift-ease-out) so that the opacity part of the + // animation doesn't come in as quickly so that the floating pane doesn't ever seem to + // cover up the trigger input. + transition: opacity $md-datepicker-open-animation-duration cubic-bezier(0.5, 0, 0.25, 1); + + .md-pane-open & { + opacity: 1; + } + + sg-time:focus { + outline: none; + } +} + +// Down triangle/arrow indicating that the datepicker can be opened. +// We can do this entirely with CSS without needing to load an icon. +// See https://css-tricks.com/snippets/css/css-triangle/ +$md-date-arrow-size: 5px; +.sg-timepicker-expand-triangle { + // Center the triangle inside of the button so that the + // ink ripple origin looks correct. + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + + width: 0; + height: 0; + border-left: $md-date-arrow-size solid transparent; + border-right: $md-date-arrow-size solid transparent; + border-top: $md-date-arrow-size solid rgba(black, 0.20); +} + +// Button containing the down "disclosure" triangle/arrow. +.sg-timepicker-triangle-button { + position: absolute; + right: 0; + top: 0; + + // TODO(jelbourn): This position isn't great on all platforms. + transform: translateY(-25%) translateX(45%); +} + +// Need crazy specificity to override .md-button.md-icon-button. +// Only apply this high specifiy to the property we need to override. +.sg-timepicker-triangle-button.md-button.md-icon-button { + height: 100%; + width: 36px; + position: absolute; +} + +// Disabled state for all elements of the picker. +sg-timepicker[disabled] { + .sg-timepicker-input-container { + border-bottom-color: transparent; + } + + .sg-timepicker-triangle-button { + display: none; + } +} + +// Open state for all of the elements of the picker. +.sg-timepicker-open { + .sg-timepicker-input-container { + margin-left: -$md-datepicker-button-gap; + border: none; + } + + .sg-timepicker-input { + margin-left: 24px; + height: 40px; + } + + .sg-timepicker-triangle-button { + display: none; + } +} \ No newline at end of file diff --git a/UI/WebServerResources/scss/styles.scss b/UI/WebServerResources/scss/styles.scss index ef945b7af..6df40aeff 100755 --- a/UI/WebServerResources/scss/styles.scss +++ b/UI/WebServerResources/scss/styles.scss @@ -63,6 +63,9 @@ @import 'components/virtualRepeat/virtual-repeat'; @import 'components/whiteframe/whiteframe'; +// Inverse components +@import 'components/timepicker/timepicker'; + // Theme //@import '../angular-material/src/components/bottomSheet/bottomSheet-theme'; //@import '../angular-material/src/components/button/button-theme'; From 624833eca9c83f6743d309d6269fae4a26a412e6 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 28 Aug 2015 14:09:20 -0400 Subject: [PATCH 027/355] (fix) updates for new packages --- UI/WebServerResources/css/styles.css | 2221 ++++++++++++++--- UI/WebServerResources/css/styles.css.map | 2 +- UI/WebServerResources/js/Common.js | 4 +- 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 | 3 +- .../js/Mailer.services.js.map | 2 +- .../js/Scheduler.services.js | 2 +- .../js/Scheduler.services.js.map | 2 +- .../js/vendor/angular-material.js | 459 ++-- .../js/vendor/angular-material.min.js | 17 +- 16 files changed, 2168 insertions(+), 558 deletions(-) diff --git a/UI/WebServerResources/css/styles.css b/UI/WebServerResources/css/styles.css index 172aa6fae..0634e924b 100644 --- a/UI/WebServerResources/css/styles.css +++ b/UI/WebServerResources/css/styles.css @@ -6114,6 +6114,10 @@ md-autocomplete { .md-autocomplete-suggestions { border: 1px solid #fff; } } +@media (max-width: 600px) { + .md-autocomplete-suggestions-container { + right: 16px; } } + /*! _extends.scss - */ md-backdrop { z-index: 50; @@ -6865,6 +6869,15 @@ md-chips.sg-readonly .md-chips { md-chips.sg-readonly .md-chips .md-chip-content { max-width: initial; } +.sg-chips-autocomplete { + width: 360px; } + +.md-contact-suggestion .md-contact-name { + width: auto; } + +.md-contact-suggestion .md-contact-email { + margin-left: 8px; } + /*! content/_extends.scss - */ md-content { display: block; @@ -7231,7 +7244,8 @@ md-dialog { border: 1px solid #fff; } } @media (max-width: 600px) { - [flex-sm="100"] { + [flex-sm="100"], + .flex-sm-100 { max-width: 100%; max-height: 100%; width: 100%; @@ -8482,262 +8496,1666 @@ md-toolbar .md-menu { md-menu-content[width="7"] { min-width: 448px; } } -/*! progressLinear/_extends.scss - */ -md-progress-linear:not([md-mode="indeterminate"]) { - display: block; - width: 100%; - height: 5px; } - md-progress-linear:not([md-mode="indeterminate"]) .md-container { - overflow: hidden; - position: relative; - height: 5px; - top: 5px; - -webkit-transform: translate(0, 5px) scale(1, 0); - -ms-transform: translate(0, 5px) scale(1, 0); - transform: translate(0, 5px) scale(1, 0); - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; } - md-progress-linear:not([md-mode="indeterminate"]) .md-container.md-ready { - -webkit-transform: translate(0, 0) scale(1, 1); - -ms-transform: translate(0, 0) scale(1, 1); - transform: translate(0, 0) scale(1, 1); } - md-progress-linear:not([md-mode="indeterminate"]) .md-bar { - height: 5px; - position: absolute; - width: 100%; } - md-progress-linear:not([md-mode="indeterminate"]) .md-bar1, md-progress-linear:not([md-mode="indeterminate"]) .md-bar2 { - -webkit-transition: all 0.2s linear; - transition: all 0.2s linear; } - md-progress-linear:not([md-mode="indeterminate"])[md-mode=determinate] .md-bar1 { - display: none; } - md-progress-linear:not([md-mode="indeterminate"])[md-mode=buffer] .md-container { - background-color: transparent !important; } - md-progress-linear:not([md-mode="indeterminate"])[md-mode=buffer] .md-dashed:before { - content: ""; - display: block; - height: 5px; - width: 100%; - margin-top: 0; - position: absolute; - background-color: transparent; - background-size: 10px 10px !important; - background-position: 0px -23px; - -webkit-animation: buffer 3s infinite linear; - animation: buffer 3s infinite linear; } - md-progress-linear:not([md-mode="indeterminate"])[md-mode=query] .md-bar2 { - -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1); - animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1); } +/*! progressCircular/_extends.scss - */ +@-webkit-keyframes outer-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } +@keyframes outer-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } -md-progress-linear[md-mode="indeterminate"] { +@-webkit-keyframes left-wobble { + 0%, 100% { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); } } + +@keyframes left-wobble { + 0%, 100% { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); } } + +@-webkit-keyframes right-wobble { + 0%, 100% { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); } } + +@keyframes right-wobble { + 0%, 100% { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); } } + +@-webkit-keyframes sporadic-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); } + 100% { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); } } + +@keyframes sporadic-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); } + 100% { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); } } + +md-progress-circular { + width: 50px; + height: 50px; display: block; - width: 100%; - height: 5px; - position: relative; } - md-progress-linear[md-mode="indeterminate"] .md-container { - width: 100%; - overflow: hidden; - position: relative; - height: 5px; - top: 5px; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; } - md-progress-linear[md-mode="indeterminate"] .md-container .md-bar { - height: 5px; - left: 0; - width: 80%; + position: relative; + padding-top: 0 !important; + margin-bottom: 0 !important; + overflow: hidden; } + md-progress-circular .md-inner { + width: 50px; + height: 50px; + position: relative; } + md-progress-circular .md-inner .md-gap { + position: absolute; + left: 24px; + right: 24px; + top: 0; + bottom: 0; + border-top-width: 5px; + border-top-style: solid; + box-sizing: border-box; } + md-progress-circular .md-inner .md-left, md-progress-circular .md-inner .md-right { position: absolute; top: 0; - bottom: 0; } - md-progress-linear[md-mode="indeterminate"] .md-container .md-bar1 { - -webkit-animation: md-progress-linear-indeterminate-scale-1 4s infinite, md-progress-linear-indeterminate-1 4s infinite; - animation: md-progress-linear-indeterminate-scale-1 4s infinite, md-progress-linear-indeterminate-1 4s infinite; } - md-progress-linear[md-mode="indeterminate"] .md-container .md-bar2 { - -webkit-animation: md-progress-linear-indeterminate-scale-2 4s infinite, md-progress-linear-indeterminate-2 4s infinite; - animation: md-progress-linear-indeterminate-scale-2 4s infinite, md-progress-linear-indeterminate-2 4s infinite; } + height: 50px; + width: 25px; + overflow: hidden; } + md-progress-circular .md-inner .md-left .md-half-circle, md-progress-circular .md-inner .md-right .md-half-circle { + position: absolute; + top: 0; + width: 50px; + height: 50px; + box-sizing: border-box; + border-width: 5px; + border-style: solid; + border-bottom-color: transparent; + border-radius: 50%; } + md-progress-circular .md-inner .md-left { + left: 0; } + md-progress-circular .md-inner .md-left .md-half-circle { + left: 0; + border-right-color: transparent; } + md-progress-circular .md-inner .md-right { + right: 0; } + md-progress-circular .md-inner .md-right .md-half-circle { + right: 0; + border-left-color: transparent; } + md-progress-circular[value="0"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="0"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-135deg); + -ms-transform: rotate(-135deg); + transform: rotate(-135deg); } + md-progress-circular[value="0"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="1"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="1"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-131.4deg); + -ms-transform: rotate(-131.4deg); + transform: rotate(-131.4deg); } + md-progress-circular[value="1"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="2"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="2"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-127.8deg); + -ms-transform: rotate(-127.8deg); + transform: rotate(-127.8deg); } + md-progress-circular[value="2"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="3"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="3"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-124.2deg); + -ms-transform: rotate(-124.2deg); + transform: rotate(-124.2deg); } + md-progress-circular[value="3"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="4"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="4"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-120.6deg); + -ms-transform: rotate(-120.6deg); + transform: rotate(-120.6deg); } + md-progress-circular[value="4"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="5"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="5"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-117deg); + -ms-transform: rotate(-117deg); + transform: rotate(-117deg); } + md-progress-circular[value="5"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="6"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="6"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-113.4deg); + -ms-transform: rotate(-113.4deg); + transform: rotate(-113.4deg); } + md-progress-circular[value="6"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="7"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="7"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-109.8deg); + -ms-transform: rotate(-109.8deg); + transform: rotate(-109.8deg); } + md-progress-circular[value="7"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="8"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="8"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-106.2deg); + -ms-transform: rotate(-106.2deg); + transform: rotate(-106.2deg); } + md-progress-circular[value="8"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="9"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="9"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-102.6deg); + -ms-transform: rotate(-102.6deg); + transform: rotate(-102.6deg); } + md-progress-circular[value="9"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="10"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="10"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-99deg); + -ms-transform: rotate(-99deg); + transform: rotate(-99deg); } + md-progress-circular[value="10"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="11"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="11"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-95.4deg); + -ms-transform: rotate(-95.4deg); + transform: rotate(-95.4deg); } + md-progress-circular[value="11"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="12"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="12"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-91.8deg); + -ms-transform: rotate(-91.8deg); + transform: rotate(-91.8deg); } + md-progress-circular[value="12"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="13"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="13"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-88.2deg); + -ms-transform: rotate(-88.2deg); + transform: rotate(-88.2deg); } + md-progress-circular[value="13"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="14"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="14"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-84.6deg); + -ms-transform: rotate(-84.6deg); + transform: rotate(-84.6deg); } + md-progress-circular[value="14"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="15"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="15"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-81deg); + -ms-transform: rotate(-81deg); + transform: rotate(-81deg); } + md-progress-circular[value="15"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="16"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="16"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-77.4deg); + -ms-transform: rotate(-77.4deg); + transform: rotate(-77.4deg); } + md-progress-circular[value="16"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="17"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="17"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-73.8deg); + -ms-transform: rotate(-73.8deg); + transform: rotate(-73.8deg); } + md-progress-circular[value="17"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="18"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="18"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-70.2deg); + -ms-transform: rotate(-70.2deg); + transform: rotate(-70.2deg); } + md-progress-circular[value="18"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="19"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="19"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-66.6deg); + -ms-transform: rotate(-66.6deg); + transform: rotate(-66.6deg); } + md-progress-circular[value="19"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="20"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="20"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-63deg); + -ms-transform: rotate(-63deg); + transform: rotate(-63deg); } + md-progress-circular[value="20"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="21"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="21"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-59.4deg); + -ms-transform: rotate(-59.4deg); + transform: rotate(-59.4deg); } + md-progress-circular[value="21"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="22"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="22"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-55.8deg); + -ms-transform: rotate(-55.8deg); + transform: rotate(-55.8deg); } + md-progress-circular[value="22"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="23"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="23"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-52.2deg); + -ms-transform: rotate(-52.2deg); + transform: rotate(-52.2deg); } + md-progress-circular[value="23"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="24"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="24"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-48.6deg); + -ms-transform: rotate(-48.6deg); + transform: rotate(-48.6deg); } + md-progress-circular[value="24"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="25"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="25"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); } + md-progress-circular[value="25"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="26"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="26"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-41.4deg); + -ms-transform: rotate(-41.4deg); + transform: rotate(-41.4deg); } + md-progress-circular[value="26"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="27"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="27"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-37.8deg); + -ms-transform: rotate(-37.8deg); + transform: rotate(-37.8deg); } + md-progress-circular[value="27"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="28"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="28"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-34.2deg); + -ms-transform: rotate(-34.2deg); + transform: rotate(-34.2deg); } + md-progress-circular[value="28"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="29"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="29"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-30.6deg); + -ms-transform: rotate(-30.6deg); + transform: rotate(-30.6deg); } + md-progress-circular[value="29"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="30"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="30"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-27deg); + -ms-transform: rotate(-27deg); + transform: rotate(-27deg); } + md-progress-circular[value="30"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="31"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="31"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-23.4deg); + -ms-transform: rotate(-23.4deg); + transform: rotate(-23.4deg); } + md-progress-circular[value="31"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="32"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="32"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-19.8deg); + -ms-transform: rotate(-19.8deg); + transform: rotate(-19.8deg); } + md-progress-circular[value="32"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="33"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="33"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-16.2deg); + -ms-transform: rotate(-16.2deg); + transform: rotate(-16.2deg); } + md-progress-circular[value="33"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="34"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="34"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-12.6deg); + -ms-transform: rotate(-12.6deg); + transform: rotate(-12.6deg); } + md-progress-circular[value="34"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="35"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="35"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-9deg); + -ms-transform: rotate(-9deg); + transform: rotate(-9deg); } + md-progress-circular[value="35"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="36"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="36"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-5.4deg); + -ms-transform: rotate(-5.4deg); + transform: rotate(-5.4deg); } + md-progress-circular[value="36"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="37"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="37"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(-1.8deg); + -ms-transform: rotate(-1.8deg); + transform: rotate(-1.8deg); } + md-progress-circular[value="37"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="38"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="38"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(1.8deg); + -ms-transform: rotate(1.8deg); + transform: rotate(1.8deg); } + md-progress-circular[value="38"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="39"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="39"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(5.4deg); + -ms-transform: rotate(5.4deg); + transform: rotate(5.4deg); } + md-progress-circular[value="39"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="40"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="40"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(9deg); + -ms-transform: rotate(9deg); + transform: rotate(9deg); } + md-progress-circular[value="40"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="41"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="41"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(12.6deg); + -ms-transform: rotate(12.6deg); + transform: rotate(12.6deg); } + md-progress-circular[value="41"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="42"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="42"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(16.2deg); + -ms-transform: rotate(16.2deg); + transform: rotate(16.2deg); } + md-progress-circular[value="42"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="43"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="43"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(19.8deg); + -ms-transform: rotate(19.8deg); + transform: rotate(19.8deg); } + md-progress-circular[value="43"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="44"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="44"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(23.4deg); + -ms-transform: rotate(23.4deg); + transform: rotate(23.4deg); } + md-progress-circular[value="44"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="45"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="45"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(27deg); + -ms-transform: rotate(27deg); + transform: rotate(27deg); } + md-progress-circular[value="45"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="46"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="46"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(30.6deg); + -ms-transform: rotate(30.6deg); + transform: rotate(30.6deg); } + md-progress-circular[value="46"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="47"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="47"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(34.2deg); + -ms-transform: rotate(34.2deg); + transform: rotate(34.2deg); } + md-progress-circular[value="47"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="48"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="48"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(37.8deg); + -ms-transform: rotate(37.8deg); + transform: rotate(37.8deg); } + md-progress-circular[value="48"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="49"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="49"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(41.4deg); + -ms-transform: rotate(41.4deg); + transform: rotate(41.4deg); } + md-progress-circular[value="49"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="50"] .md-inner .md-left .md-half-circle { + -webkit-transform: rotate(135deg); + -ms-transform: rotate(135deg); + transform: rotate(135deg); } + md-progress-circular[value="50"] .md-inner .md-right .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="50"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + border-bottom-color: transparent !important; } + md-progress-circular[value="51"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(138.6deg); + -ms-transform: rotate(138.6deg); + transform: rotate(138.6deg); } + md-progress-circular[value="51"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="51"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="52"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(142.2deg); + -ms-transform: rotate(142.2deg); + transform: rotate(142.2deg); } + md-progress-circular[value="52"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="52"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="53"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(145.8deg); + -ms-transform: rotate(145.8deg); + transform: rotate(145.8deg); } + md-progress-circular[value="53"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="53"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="54"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(149.4deg); + -ms-transform: rotate(149.4deg); + transform: rotate(149.4deg); } + md-progress-circular[value="54"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="54"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="55"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(153deg); + -ms-transform: rotate(153deg); + transform: rotate(153deg); } + md-progress-circular[value="55"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="55"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="56"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(156.6deg); + -ms-transform: rotate(156.6deg); + transform: rotate(156.6deg); } + md-progress-circular[value="56"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="56"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="57"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(160.2deg); + -ms-transform: rotate(160.2deg); + transform: rotate(160.2deg); } + md-progress-circular[value="57"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="57"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="58"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(163.8deg); + -ms-transform: rotate(163.8deg); + transform: rotate(163.8deg); } + md-progress-circular[value="58"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="58"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="59"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(167.4deg); + -ms-transform: rotate(167.4deg); + transform: rotate(167.4deg); } + md-progress-circular[value="59"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="59"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="60"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(171deg); + -ms-transform: rotate(171deg); + transform: rotate(171deg); } + md-progress-circular[value="60"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="60"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="61"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(174.6deg); + -ms-transform: rotate(174.6deg); + transform: rotate(174.6deg); } + md-progress-circular[value="61"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="61"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="62"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(178.2deg); + -ms-transform: rotate(178.2deg); + transform: rotate(178.2deg); } + md-progress-circular[value="62"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="62"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="63"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(181.8deg); + -ms-transform: rotate(181.8deg); + transform: rotate(181.8deg); } + md-progress-circular[value="63"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="63"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="64"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(185.4deg); + -ms-transform: rotate(185.4deg); + transform: rotate(185.4deg); } + md-progress-circular[value="64"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="64"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="65"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(189deg); + -ms-transform: rotate(189deg); + transform: rotate(189deg); } + md-progress-circular[value="65"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="65"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="66"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(192.6deg); + -ms-transform: rotate(192.6deg); + transform: rotate(192.6deg); } + md-progress-circular[value="66"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="66"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="67"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(196.2deg); + -ms-transform: rotate(196.2deg); + transform: rotate(196.2deg); } + md-progress-circular[value="67"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="67"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="68"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(199.8deg); + -ms-transform: rotate(199.8deg); + transform: rotate(199.8deg); } + md-progress-circular[value="68"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="68"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="69"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(203.4deg); + -ms-transform: rotate(203.4deg); + transform: rotate(203.4deg); } + md-progress-circular[value="69"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="69"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="70"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(207deg); + -ms-transform: rotate(207deg); + transform: rotate(207deg); } + md-progress-circular[value="70"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="70"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="71"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(210.6deg); + -ms-transform: rotate(210.6deg); + transform: rotate(210.6deg); } + md-progress-circular[value="71"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="71"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="72"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(214.2deg); + -ms-transform: rotate(214.2deg); + transform: rotate(214.2deg); } + md-progress-circular[value="72"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="72"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="73"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(217.8deg); + -ms-transform: rotate(217.8deg); + transform: rotate(217.8deg); } + md-progress-circular[value="73"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="73"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="74"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(221.4deg); + -ms-transform: rotate(221.4deg); + transform: rotate(221.4deg); } + md-progress-circular[value="74"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="74"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="75"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(225deg); + -ms-transform: rotate(225deg); + transform: rotate(225deg); } + md-progress-circular[value="75"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="75"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="76"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(228.6deg); + -ms-transform: rotate(228.6deg); + transform: rotate(228.6deg); } + md-progress-circular[value="76"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="76"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="77"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(232.2deg); + -ms-transform: rotate(232.2deg); + transform: rotate(232.2deg); } + md-progress-circular[value="77"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="77"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="78"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(235.8deg); + -ms-transform: rotate(235.8deg); + transform: rotate(235.8deg); } + md-progress-circular[value="78"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="78"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="79"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(239.4deg); + -ms-transform: rotate(239.4deg); + transform: rotate(239.4deg); } + md-progress-circular[value="79"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="79"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="80"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(243deg); + -ms-transform: rotate(243deg); + transform: rotate(243deg); } + md-progress-circular[value="80"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="80"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="81"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(246.6deg); + -ms-transform: rotate(246.6deg); + transform: rotate(246.6deg); } + md-progress-circular[value="81"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="81"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="82"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(250.2deg); + -ms-transform: rotate(250.2deg); + transform: rotate(250.2deg); } + md-progress-circular[value="82"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="82"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="83"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(253.8deg); + -ms-transform: rotate(253.8deg); + transform: rotate(253.8deg); } + md-progress-circular[value="83"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="83"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="84"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(257.4deg); + -ms-transform: rotate(257.4deg); + transform: rotate(257.4deg); } + md-progress-circular[value="84"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="84"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="85"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(261deg); + -ms-transform: rotate(261deg); + transform: rotate(261deg); } + md-progress-circular[value="85"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="85"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="86"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(264.6deg); + -ms-transform: rotate(264.6deg); + transform: rotate(264.6deg); } + md-progress-circular[value="86"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="86"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="87"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(268.2deg); + -ms-transform: rotate(268.2deg); + transform: rotate(268.2deg); } + md-progress-circular[value="87"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="87"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="88"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(271.8deg); + -ms-transform: rotate(271.8deg); + transform: rotate(271.8deg); } + md-progress-circular[value="88"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="88"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="89"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(275.4deg); + -ms-transform: rotate(275.4deg); + transform: rotate(275.4deg); } + md-progress-circular[value="89"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="89"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="90"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(279deg); + -ms-transform: rotate(279deg); + transform: rotate(279deg); } + md-progress-circular[value="90"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="90"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="91"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(282.6deg); + -ms-transform: rotate(282.6deg); + transform: rotate(282.6deg); } + md-progress-circular[value="91"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="91"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="92"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(286.2deg); + -ms-transform: rotate(286.2deg); + transform: rotate(286.2deg); } + md-progress-circular[value="92"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="92"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="93"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(289.8deg); + -ms-transform: rotate(289.8deg); + transform: rotate(289.8deg); } + md-progress-circular[value="93"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="93"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="94"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(293.4deg); + -ms-transform: rotate(293.4deg); + transform: rotate(293.4deg); } + md-progress-circular[value="94"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="94"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="95"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(297deg); + -ms-transform: rotate(297deg); + transform: rotate(297deg); } + md-progress-circular[value="95"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="95"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="96"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(300.6deg); + -ms-transform: rotate(300.6deg); + transform: rotate(300.6deg); } + md-progress-circular[value="96"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="96"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="97"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(304.2deg); + -ms-transform: rotate(304.2deg); + transform: rotate(304.2deg); } + md-progress-circular[value="97"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="97"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="98"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(307.8deg); + -ms-transform: rotate(307.8deg); + transform: rotate(307.8deg); } + md-progress-circular[value="98"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="98"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="99"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(311.4deg); + -ms-transform: rotate(311.4deg); + transform: rotate(311.4deg); } + md-progress-circular[value="99"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="99"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[value="100"] .md-inner .md-left .md-half-circle { + -webkit-transition: -webkit-transform 0.1s linear; + transition: transform 0.1s linear; + -webkit-transform: rotate(315deg); + -ms-transform: rotate(315deg); + transform: rotate(315deg); } + md-progress-circular[value="100"] .md-inner .md-right .md-half-circle { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); } + md-progress-circular[value="100"] .md-inner .md-gap { + border-bottom-width: 5px; + border-bottom-style: solid; + -webkit-transition: border-bottom-color 0.1s linear; + transition: border-bottom-color 0.1s linear; } + md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper { + -webkit-animation: outer-rotate 2.9166666667s linear infinite; + animation: outer-rotate 2.9166666667s linear infinite; } + md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner { + -webkit-animation: sporadic-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; + animation: sporadic-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; } + md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle, md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-duration: 1.3125s; + animation-duration: 1.3125s; + -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); + animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); } + md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle { + -webkit-animation-name: left-wobble; + animation-name: left-wobble; } + md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle { + -webkit-animation-name: right-wobble; + animation-name: right-wobble; } -@-webkit-keyframes query { - 0% { - opacity: 1; - -webkit-transform: translateX(35%) scale(0.3, 1); - transform: translateX(35%) scale(0.3, 1); } - 100% { - opacity: 0; - -webkit-transform: translateX(-50%) scale(0, 1); - transform: translateX(-50%) scale(0, 1); } } +.ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper, +md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper { + -webkit-animation: none; + animation: none; } + .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner, + md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner { + -webkit-animation: none; + animation: none; } + .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle, + md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-left .md-half-circle { + -webkit-animation-name: none; + animation-name: none; } + .ng-hide md-progress-circular[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle, + md-progress-circular.ng-hide[md-mode=indeterminate] .md-spinner-wrapper .md-inner .md-right .md-half-circle { + -webkit-animation-name: none; + animation-name: none; } -@keyframes query { - 0% { - opacity: 1; - -webkit-transform: translateX(35%) scale(0.3, 1); - transform: translateX(35%) scale(0.3, 1); } - 100% { - opacity: 0; - -webkit-transform: translateX(-50%) scale(0, 1); - transform: translateX(-50%) scale(0, 1); } } - -@-webkit-keyframes buffer { - 0% { - opacity: 1; - background-position: 0px -23px; } - 50% { - opacity: 0; } - 100% { - opacity: 1; - background-position: -200px -23px; } } - -@keyframes buffer { - 0% { - opacity: 1; - background-position: 0px -23px; } - 50% { - opacity: 0; } - 100% { - opacity: 1; - background-position: -200px -23px; } } - -@-webkit-keyframes md-progress-linear-indeterminate-scale-1 { - 0% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: linear; - animation-timing-function: linear; } - 36.6% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: cubic-bezier(0.334731432, 0.124819821, 0.785843996, 1); - animation-timing-function: cubic-bezier(0.334731432, 0.124819821, 0.785843996, 1); } - 69.15% { - -webkit-transform: scaleX(0.83); - transform: scaleX(0.83); - -webkit-animation-timing-function: cubic-bezier(0.225732004, 0, 0.233648906, 1.3709798); - animation-timing-function: cubic-bezier(0.225732004, 0, 0.233648906, 1.3709798); } - 100% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); } } - -@keyframes md-progress-linear-indeterminate-scale-1 { - 0% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: linear; - animation-timing-function: linear; } - 36.6% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: cubic-bezier(0.334731432, 0.124819821, 0.785843996, 1); - animation-timing-function: cubic-bezier(0.334731432, 0.124819821, 0.785843996, 1); } - 69.15% { - -webkit-transform: scaleX(0.83); - transform: scaleX(0.83); - -webkit-animation-timing-function: cubic-bezier(0.225732004, 0, 0.233648906, 1.3709798); - animation-timing-function: cubic-bezier(0.225732004, 0, 0.233648906, 1.3709798); } - 100% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); } } - -@-webkit-keyframes md-progress-linear-indeterminate-1 { - 0% { - left: -105.166666667%; - -webkit-animation-timing-function: linear; - animation-timing-function: linear; } - 20% { - left: -105.166666667%; - -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495818703); - animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495818703); } - 69.15% { - left: 21.5%; - -webkit-animation-timing-function: cubic-bezier(0.302435, 0.38135197, 0.55, 0.956352125); - animation-timing-function: cubic-bezier(0.302435, 0.38135197, 0.55, 0.956352125); } - 100% { - left: 95.4444444444%; } } - -@keyframes md-progress-linear-indeterminate-1 { - 0% { - left: -105.166666667%; - -webkit-animation-timing-function: linear; - animation-timing-function: linear; } - 20% { - left: -105.166666667%; - -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495818703); - animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495818703); } - 69.15% { - left: 21.5%; - -webkit-animation-timing-function: cubic-bezier(0.302435, 0.38135197, 0.55, 0.956352125); - animation-timing-function: cubic-bezier(0.302435, 0.38135197, 0.55, 0.956352125); } - 100% { - left: 95.4444444444%; } } - -@-webkit-keyframes md-progress-linear-indeterminate-scale-2 { - 0% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: cubic-bezier(0.205028172, 0.057050836, 0.57660995, 0.453970841); - animation-timing-function: cubic-bezier(0.205028172, 0.057050836, 0.57660995, 0.453970841); } - 19.15% { - -webkit-transform: scaleX(0.57); - transform: scaleX(0.57); - -webkit-animation-timing-function: cubic-bezier(0.152312994, 0.196431957, 0.648373778, 1.00431535); - animation-timing-function: cubic-bezier(0.152312994, 0.196431957, 0.648373778, 1.00431535); } - 44.15% { - -webkit-transform: scaleX(0.91); - transform: scaleX(0.91); - -webkit-animation-timing-function: cubic-bezier(0.25775882, -0.003163357, 0.211761916, 1.38178961); - animation-timing-function: cubic-bezier(0.25775882, -0.003163357, 0.211761916, 1.38178961); } - 100% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); } } - -@keyframes md-progress-linear-indeterminate-scale-2 { - 0% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); - -webkit-animation-timing-function: cubic-bezier(0.205028172, 0.057050836, 0.57660995, 0.453970841); - animation-timing-function: cubic-bezier(0.205028172, 0.057050836, 0.57660995, 0.453970841); } - 19.15% { - -webkit-transform: scaleX(0.57); - transform: scaleX(0.57); - -webkit-animation-timing-function: cubic-bezier(0.152312994, 0.196431957, 0.648373778, 1.00431535); - animation-timing-function: cubic-bezier(0.152312994, 0.196431957, 0.648373778, 1.00431535); } - 44.15% { - -webkit-transform: scaleX(0.91); - transform: scaleX(0.91); - -webkit-animation-timing-function: cubic-bezier(0.25775882, -0.003163357, 0.211761916, 1.38178961); - animation-timing-function: cubic-bezier(0.25775882, -0.003163357, 0.211761916, 1.38178961); } - 100% { - -webkit-transform: scaleX(0.1); - transform: scaleX(0.1); } } - -@-webkit-keyframes md-progress-linear-indeterminate-2 { - 0% { - left: -54.8888888889%; - -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.5150584, 0.409684966); - animation-timing-function: cubic-bezier(0.15, 0, 0.5150584, 0.409684966); } - 25% { - left: -17.25%; - -webkit-animation-timing-function: cubic-bezier(0.3103299, 0.284057684, 0.8, 0.733718979); - animation-timing-function: cubic-bezier(0.3103299, 0.284057684, 0.8, 0.733718979); } - 48.35% { - left: 29.5%; - -webkit-animation-timing-function: cubic-bezier(0.4, 0.627034903, 0.6, 0.902025796); - animation-timing-function: cubic-bezier(0.4, 0.627034903, 0.6, 0.902025796); } - 100% { - left: 117.388888889%; } } - -@keyframes md-progress-linear-indeterminate-2 { - 0% { - left: -54.8888888889%; - -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.5150584, 0.409684966); - animation-timing-function: cubic-bezier(0.15, 0, 0.5150584, 0.409684966); } - 25% { - left: -17.25%; - -webkit-animation-timing-function: cubic-bezier(0.3103299, 0.284057684, 0.8, 0.733718979); - animation-timing-function: cubic-bezier(0.3103299, 0.284057684, 0.8, 0.733718979); } - 48.35% { - left: 29.5%; - -webkit-animation-timing-function: cubic-bezier(0.4, 0.627034903, 0.6, 0.902025796); - animation-timing-function: cubic-bezier(0.4, 0.627034903, 0.6, 0.902025796); } - 100% { - left: 117.388888889%; } } +.sg-progress-circular-floating { + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); + transition: transform 0.3s cubic-bezier(0.18, 0.89, 0.32, 1.28); + position: absolute; + top: 80px; + left: 50%; + -webkit-transform: translate(-50%, 0) scale(1); + -ms-transform: translate(-50%, 0) scale(1); + transform: translate(-50%, 0) scale(1); + bottom: auto; + background-color: white; + border-radius: 50%; + padding: 4px; + box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.14), 0px 6px 10px 0px rgba(0, 0, 0, 0.098), 0px 1px 18px 0px rgba(0, 0, 0, 0.084); } + .sg-progress-circular-floating.ng-hide { + -webkit-transform: translate(-50%, 0) scale(0); + -ms-transform: translate(-50%, 0) scale(0); + transform: translate(-50%, 0) scale(0); } /*! radioButton/_extends.scss - */ md-radio-button, @@ -9147,10 +10565,8 @@ md-sidenav { display: -webkit-flex; display: -ms-flexbox; display: flex; - /* this is required as of 1.3x to properly - apply all styling in a show/hide animation */ - -webkit-transition: 0s all; - transition: 0s all; } + -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 { -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); @@ -9793,9 +11209,6 @@ md-tabs { -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0; } - md-tabs.ng-animate { - -webkit-transition: height 0.5s cubic-bezier(0.35, 0, 0.25, 1); - transition: height 0.5s cubic-bezier(0.35, 0, 0.25, 1); } md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) { min-height: 248px; } md-tabs[md-align-tabs="bottom"] md-tabs-wrapper { @@ -10537,6 +11950,174 @@ md-tooltip { md-whiteframe { border: 1px solid #fff; } } +/** Styles for sgTimePane. */ +sg-time-pane { + font-size: 13px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.hours-pane { + border-bottom: solid 1px #e0e0e0; } + +.toggle-pane { + border-top: solid 1px #e0e0e0; } + +.md-button.md-fab.hourBtn, +.md-button.md-fab.minuteBtn, +.md-button.md-fab.toggleBtn, +.md-button.md-fab.hourBtn.md-focused, +.md-button.md-fab.minuteBtn.md-focused, +.md-button.md-fab.toggleBtn.md-focused, +.md-button.md-fab.hourBtn.md-focus, +.md-button.md-fab.minuteBtn.md-focus, +.md-button.md-fab.toggleBtn.md-focus { + min-width: 10px; + min-height: 10px; + background-color: transparent; + border-color: transparent; + font-family: Roboto, 'Helvetica Neue', sans-serif; + font-size: 16px; + font-weight: normal; + color: rgba(0, 0, 0, 0.5); + height: 40px; + width: 40px; + line-height: 40px; + box-shadow: none; + margin: 2px; } + +.md-button.md-fab.toggleBtn { + background-color: #3f51b5; + color: white; + margin: 5px; } + +.md-button.md-fab.hourBtn:hover, .md-button.md-fab.minuteBtn:hover { + background-color: lightgrey; + color: #666666; } + +.md-button.md-fab.hourBtn.md-primary, .md-button.md-fab.minuteBtn.md-primary, +.md-button.md-fab.hourBtn.md-primary:hover, .md-button.md-fab.minuteBtn.md-primary:hover, +.md-button.md-fab.hourBtn.md-primary.md-focus, .md-button.md-fab.minuteBtn.md-primary.md-focus, +.md-button.md-fab.hourBtn.md-primary.md-focused, .md-button.md-fab.minuteBtn.md-primary.md-focused { + background-color: lightgrey; + color: #3f51b5; } + +/** Styles for sgTimepicker. */ +sg-timepicker { + white-space: nowrap; } + +.sg-timepicker-button { + display: inline-block; + box-sizing: border-box; + background: none; } + +.sg-timepicker-input { + min-width: 120px; + max-width: 328px; + background: inherit; + border: none; } + +.sg-timepicker-input-container { + position: relative; + padding-bottom: 5px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-bottom-color: #e0e0e0; + display: inline-block; + width: auto; + margin-left: 12px; } + .sg-timepicker-input-container.sg-timepicker-focused { + border-bottom-width: 2px; } + +.sg-timepicker-time-pane { + position: absolute; + top: 0; + left: 0; + z-index: 99; + border-width: 1px; + border-style: solid; + background: inherit; + border-color: #e0e0e0; + box-shadow: rgba(0, 0, 0, 0.137255) 0 3px 1px -2px, rgba(0, 0, 0, 0.0980392) 0 2px 2px 0, rgba(0, 0, 0, 0.0823529) 0 1px 5px 0; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; } + .sg-timepicker-time-pane.md-pane-open { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); } + +.sg-timepicker-input-mask { + height: 40px; + width: 340px; + position: relative; + background: transparent; + pointer-events: none; + cursor: text; } + +.sg-timepicker-input-mask-opaque { + position: absolute; + right: 0; + left: 120px; + background: white; + height: 100%; } + +.sg-timepicker-time { + opacity: 0; + -webkit-transition: opacity 0.2s cubic-bezier(0.5, 0, 0.25, 1); + transition: opacity 0.2s cubic-bezier(0.5, 0, 0.25, 1); } + .md-pane-open .sg-timepicker-time { + opacity: 1; } + .sg-timepicker-time sg-time:focus { + outline: none; } + +.sg-timepicker-expand-triangle { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid rgba(0, 0, 0, 0.2); } + +.sg-timepicker-triangle-button { + position: absolute; + right: 0; + top: 0; + -webkit-transform: translateY(-25%) translateX(45%); + -ms-transform: translateY(-25%) translateX(45%); + transform: translateY(-25%) translateX(45%); } + +.sg-timepicker-triangle-button.md-button.md-icon-button { + height: 100%; + width: 36px; + position: absolute; } + +sg-timepicker[disabled] .sg-timepicker-input-container { + border-bottom-color: transparent; } + +sg-timepicker[disabled] .sg-timepicker-triangle-button { + display: none; } + +.sg-timepicker-open .sg-timepicker-input-container { + margin-left: -12px; + border: none; } + +.sg-timepicker-open .sg-timepicker-input { + margin-left: 24px; + height: 40px; } + +.sg-timepicker-open .sg-timepicker-triangle-button { + display: none; } + .pseudo-input-container { display: block; padding: 0 2px; } @@ -10772,7 +12353,11 @@ md-input-container .bgroup { -webkit-box-pack: start; -webkit-justify-content: flex-start; -ms-flex-pack: start; - justify-content: flex-start; } + justify-content: flex-start; + overflow: hidden; } + .msg-header-content [class|="sg-md-display"] { + overflow: hidden; + text-overflow: ellipsis; } .msg-body { padding-top: 16px; } @@ -11462,8 +13047,7 @@ textarea.plain-text { .view-detail { z-index: 9; - overflow-x: hidden; - background-color: transparent; } + overflow-x: hidden; } @media (min-width: 601px) and (max-width: 1024px) { .view-detail { max-width: 56.25vw; @@ -11483,101 +13067,46 @@ textarea.plain-text { @media (min-width: 601px) { .view-detail .viewer { position: absolute; + top: 0; left: 0; right: 0; - max-width: 100%; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -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); } - .view-detail .viewer.ng-enter { - -webkit-transform: translate(-105%, 0); - -ms-transform: translate(-105%, 0); - transform: translate(-105%, 0); } - .view-detail .viewer.ng-enter.ng-enter-active { - -webkit-transform: translate(0%, 0%); - -ms-transform: translate(0%, 0%); - transform: translate(0%, 0%); - -webkit-transition-delay: 0.5s; - transition-delay: 0.5s; } - .view-detail .viewer.ng-leave { - -webkit-transition-delay: 0; - transition-delay: 0; - -webkit-transition-duration: 0.1s; - transition-duration: 0.1s; - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); } - .view-detail .viewer.ng-leave.ng-leave-active { - -webkit-transition-delay: 0.1s; - transition-delay: 0.1s; - -webkit-transition-duration: 0.4s; - transition-duration: 0.4s; - -webkit-transform: translate(-105%, 100%); - -ms-transform: translate(-105%, 100%); - transform: translate(-105%, 100%); } } + max-width: 100%; } } @media (max-width: 600px) { .view-detail { + display: block; + background-color: transparent !important; position: absolute; - width: 100%; - min-width: 100%; - height: calc(100vh - 128px); - -webkit-transform: translateX(-100%) scale(1); - -ms-transform: translateX(-100%) scale(1); - transform: translateX(-100%) scale(1); - -webkit-transform-origin: 50% 50%; - -ms-transform-origin: 50% 50%; - transform-origin: 50% 50%; + top: 128px; + bottom: 0; + left: 0; + right: 0; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); -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); } .view-detail.sg-close { - -webkit-transition-delay: 0.1s; - transition-delay: 0.1s; - -webkit-transition-duration: 0.4s; - transition-duration: 0.4s; - -webkit-transform: translateX(-100%) scale(0); - -ms-transform: translateX(-100%) scale(0); - transform: translateX(-100%) scale(0); } - .view-detail.sg-close .viewer.ng-leave, - .view-detail.sg-close .viewer.ng-enter, - .view-detail.sg-close .viewer.ng-leave.ng-leave-active { - -webkit-transform: translateY(0) scale(0); - -ms-transform: translateY(0) scale(0); - transform: translateY(0) scale(0); } - .view-detail.sg-close .viewer.ng-enter.ng-enter-active { - -webkit-transform: translateY(0) scale(0); - -ms-transform: translateY(0) scale(0); - transform: translateY(0) scale(0); } - .view-detail .viewer.ng-leave, - .view-detail .viewer.ng-leave.ng-leave-active { - -webkit-transform: translateY(100%) scale(0); - -ms-transform: translateY(100%) scale(0); - transform: translateY(100%) scale(0); } - .view-detail .viewer.ng-enter { - -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-transform: translateY(100%) scale(0); - -ms-transform: translateY(100%) scale(0); - transform: translateY(100%) scale(0); } - .view-detail .viewer.ng-enter.ng-enter-active { - -webkit-transform: translateY(0) scale(1); - -ms-transform: translateY(0) scale(1); - transform: translateY(0) scale(1); } - .view-detail.ng-leave, + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); } .view-detail.ng-leave.ng-leave-active { - -webkit-transform: translateX(-100%) scale(0); - -ms-transform: translateX(-100%) scale(0); - transform: translateX(-100%) scale(0); } + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); } .view-detail.ng-enter { - -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-transform: translateX(-100%) scale(0); - -ms-transform: translateX(-100%) scale(0); - transform: translateX(-100%) scale(0); } - .view-detail.ng-enter.ng-enter-active { - -webkit-transform: translateX(-100%) scale(1); - -ms-transform: translateX(-100%) scale(1); - transform: translateX(-100%) scale(1); } } + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); } + .view-detail.ng-enter.ng-enter-active { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); } + .view-detail .viewer { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; } } main { background-color: #ede5ca; } diff --git a/UI/WebServerResources/css/styles.css.map b/UI/WebServerResources/css/styles.css.map index 70f63c92d..3adf24f79 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/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/progressLinear/_extends.scss","../angular-material/src/components/progressLinear/progress-linear.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/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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AAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WA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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","../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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EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;IAAkB;MAChC,cAAY,EAAb;IADY;MAAI,WAAS,EAAV;I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","file":"styles.css"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index b3214a9f6..d1b78e5e1 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,3 +1,3 @@ -function l(){var key=arguments[0],value=key;labels[key]?value=labels[key]:clabels[key]&&(value=clabels[key]);for(var i=1,j=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=wavatar"):""}}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",replace:!0,scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){email&&!vm.url&&(vm.url=Gravatar(email,vm.size))}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)})}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(function(){scope.$eval(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 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(){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(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})}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function sgTarget(){function sgTargetLink(scope,element,attrs){console.log("sgTargetLink...");var ensureTargetRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgTarget)},function(value){element.html(value),ensureTargetRunsOnce()})}return{priority:1,restrict:"A",link:sgTargetLink}}angular.module("SOGo.Common").directive("sgTarget",sgTarget)}(),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;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=wavatar"):""}}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",replace:!0,scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){email&&!vm.url&&(vm.url=Gravatar(email,vm.size))}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)})}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(function(){scope.$eval(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 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(){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(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})}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function sgTarget(){function sgTargetLink(scope,element,attrs){console.log("sgTargetLink...");var ensureTargetRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgTarget)},function(value){element.html(value),ensureTargetRunsOnce()})}return{priority:1,restrict:"A",link:sgTargetLink}}angular.module("SOGo.Common").directive("sgTarget",sgTarget)}(),function(){"use strict";function timePaneDirective(){ +return{template:'
    {{hour.displayName}}
    {{minute.displayName}}
    {{minute.displayName}}
    ',scope:{},require:["ngModel","sgTimePane"],controller:TimePaneCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attrs,controllers){var ngModelCtrl=controllers[0],sgTimePaneCtrl=controllers[1];console.log(element);var 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).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).setMinutes(Number(val));self.setNgModelValue(updated,"minutes")},$scope.minuteClickHandler=this.minuteClickHandler,this.attachTimePaneEventListeners()}angular.module("SOGo.Common").directive("sgTimePane",timePaneDirective);var SELECTED_TIME_CLASS2="md-primary",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=new Date(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_CLASS2),prevHCell.setAttribute("aria-selected","false"));var prevM=previousSelectedTime.getMinutes(),prevMCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+prevM);prevMCell&&(prevMCell.classList.remove(SELECTED_TIME_CLASS2),prevMCell.setAttribute("aria-selected","false"));var prevM5Cell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+prevM);prevM5Cell&&(prevM5Cell.classList.remove(SELECTED_TIME_CLASS2),prevM5Cell.setAttribute("aria-selected","false"))}if(date){var mCell,d=new Date(date),newH=d.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(SELECTED_TIME_CLASS2),hCell.setAttribute("aria-selected","true"));var newM=d.getMinutes();newM%5===0?(sgTimePaneCtrl.$scope.show5min=!0,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS2),mCell.setAttribute("aria-selected","true"))):sgTimePaneCtrl.$scope.show5min=!1,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS2),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:'
    ',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,$mdTheming,$mdUtil,$mdDateLocale,$$mdDateUtil,$$rAF){this.$compile=$compile,this.$timeout=$timeout,this.dateLocale=$mdDateLocale,this.dateUtil=$$mdDateUtil,this.$mdConstant=$mdConstant,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.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),$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;TimePickerCtrl.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$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)});var ngElement=angular.element(self.inputElement);ngElement.on("input",angular.bind(self,self.resizeInputElement)),ngElement.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;angular.element(self.inputElement).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;this.$attrs.ngDisabled&&this.$element.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(!(arr.length<2)){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");var elementRect=this.inputContainer.getBoundingClientRect(),bodyRect=document.body.getBoundingClientRect();timePane.style.left=elementRect.left-bodyRect.left+"px",timePane.style.top=elementRect.top-bodyRect.top+"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.timePane.classList.remove("md-pane-open"),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.focusTime(),this.$mdUtil.disableScrollAround(this.timePane);var self=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",self.bodyClickHandler)},!1)}},TimePickerCtrl.prototype.closeTimePane=function(){this.isTimeOpen=!1,this.detachTimePane(),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler)},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 5d36d1809..921c2e553 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/decodeUri.filter.js","Common/encodeUri.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/sgSearch.directive.js","Common/sgSubscribe.directive.js","Common/sgTarget.directive.js","Common/sgToggleGrid.directive.js"],"names":["l","key","arguments","value","labels","clabels","i","j","length","replace","configure","$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","angular","module","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","decodeUri","$window","decodeURIComponent","filter","encodeUri","encodeURIComponent","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","$log","sgConstant","sgSettings","Alarm","currentDay","window","get","success","secondsBeforeTomorrow","toggleLeft","toggle","debug","toggleRight","openBottomSheet","show","parent","element","document","getElementById","templateUrl","toggleDetailView","detail","toggleClass","$watch","newVal","isGtMedium","getAlarms","Acl","folderId","factory","$q","Settings","Resource","extend","$$resource","$User","prototype","$users","_this","deferred","defer","resolve","promise","fetch","response","forEach","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","pluck","userClass","isGroup","reject","splice","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","save","$shadowRights","copy","rights","uids","join","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","position","hideDelay","template","summary","locals","Authentication","readCookie","name","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","title","content","confirm","options","prompt","label","PromptDialogController","o","body","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","index","compareUids","find","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","bindToController","controllerAs","sgAvatarImageController","$element","attributes","directive","sgColorPicker","$parse","link","iElement","iAttr","doSelect","attr","sgColorPickerController","sgColors","colors","select","color","sgCompile","$compile","sgCompileLink","attrs","ensureCompileRunsOnce","$eval","html","contents","sgEnter","ENTER_KEY","event","which","$apply","preventDefault","sgEscape","ESCAPE_KEY","elem","keyCode","sgFocusOn","$on","e","focus","sgFolderStylesheet","require","ngModel","sgSearchPreTransclude","compile","tElement","tAttr","inputEl","selectEl","buttonEl","removeAttr","compiledButtonEl","doSearch","on","cancelSearch","priority","sgSearch","transclude","clone","append","sgSearchController","previous","searchField","searchTextOptions","updateOn","debounce","blur","onChange","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","sgSubscribeController","selectFolder","folderData","sgTarget","sgTargetLink","console","log","ensureTargetRunsOnce","sgToggleGrid","ctrl","day","findIndex","modelDays","modelAttr","tile","ensureInitRunsOnce","tiles","days","isDefined","flattenedDays","sgToggleGridAttr","contains","addClass","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","t","Array","B","J","P","h","E","v","g","Y","X","W","V","C","S","Q","N","M","A","z","w","m","U","T","R","O","toLowerCase","capitalize","toUpperCase","slice","asDate","newDate","date","formatTime","hours","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","setHours","setMinutes","setSeconds","setMilliseconds","beginOfWeek","offset","firstDayOfWeek","getDay","endOfWeek","getDayString","getHourString","getHours"],"mappings":"AA0RA,QAASA,KACP,GAAIC,KAAMC,UAAU,GAChBC,MAAQF,GACRG,QAAOH,KACTE,MAAQC,OAAOH,KAERI,QAAQJ,OACfE,MAAQE,QAAQJ,KAElB,KAAK,GAAIK,GAAI,EAAGC,EAAI,EAAGD,EAAIJ,UAAUM,OAAQF,IAAKC,IAChDJ,MAAQA,MAAMM,QAAQ,KAAOF,EAAI,IAAKL,UAAUI,GAGlD,OAAOH,QCrST,WACE,YA0HA,SAASO,WAAUC,oBACjBA,mBAAmBC,cAAc,cAC/BC,GAAM,SACNC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,qBAAwB,OACxBC,mBAAsB,aACtBC,oBAAuB,gCAEzBlB,mBAAmBC,cAAc,aAC/BC,GAAM,SACNC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,qBAAwB,QACxBC,oBAAuB,KAAM,MAAO,OACpCC,qBAAwB,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,UAEnGlB,mBAAmBC,cAAc,cAC/BC,GAAM,SACNC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPC,IAAO,SACPQ,KAAQ,SACRP,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,KAAQ,SACRC,qBAAwB,OACxBE,oBAAuB,YAIzBlB,mBAAmBoB,MAAM,WACtBC,eAAe,aACdC,UAAW,MACXC,QAAS,MACTC,QAAS,MACTC,QAAS,SAEVC,cAAc,cACbJ,UAAW,MACXC,QAAS,MACTC,QAAS,MACTC,QAAS,SAEVE,kBAAkB,cACjBL,UAAW,MACXC,QAAS,MACTC,QAAS,KACTC,QAAS,QArMfG,QAAQC,OAAO,eAAgB,eAC5BrC,MAAM,cACLsC,QAAS,WACP,MAAOC,qBAAsB,MAE/BC,WAAY,SAASC,OACnB,GAAIC,WACFC,MAAOC,WAAa,KACpBC,eAAgBC,oBAAsB,KACtCC,MAAOC,WAAa,KACpBC,SAAUC,cAAgB,KAC1BC,UAAWC,eAAiB,KAC5BC,YAAaC,aAAe,KAC5BC,MACEC,SAAUC,kBAAoB,KAC9BC,SAAUC,kBAAoB,KAC9BC,KAAMC,cAAgB,KACtBC,YAAaC,qBAAuB,KACpCC,eAAiBV,YAAcW,uBAAyB,KACxDC,OAAQC,gBAAkB,MAG9B,OAAI1B,OACKC,SAASD,OAETC,YAIZ0B,SAAS,YACRC,WACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAQHD,SAAS,cACRE,GAAM,qBACNC,QAAS,qBACTC,GAAM,6CACNC,QAAS,sBACTC,GAAM,8CACNC,QAAS,wBAGVC,OAAOrE,WAEVA,UAAUsE,SAAW,yBCvHvB,WACE,YAMA,SAASC,WAAUC,SACjB,MAAOA,SAAQC,mBAFjBF,UAAUD,SAAW,WAKrBzC,QAAQC,OAAO,eACZ4C,OAAO,YAAaH,cCZzB,WACE,YAMA,SAASI,WAAUH,SACjB,MAAOA,SAAQI,mBAFjBD,UAAUL,SAAW,WAKrBzC,QAAQC,OAAO,eACZ4C,OAAO,YAAaC,cCXzB,WACE,YAKA,SAASE,OACP,MAAOvF,GAGTuC,QAAQC,OAAO,eACZ4C,OAAO,MAAOG,QCXnB,WACE,YAEA,SAASC,SACP,MAAO,UAASC,GAEd,IAAK,GADDC,QACKpF,EAAI,EAAGA,EAAIqF,SAASF,GAAInF,IAC/BoF,IAAIE,KAAKtF,EAEX,OAAOoF,MAIXnD,QAAQC,OAAO,eACZ4C,OAAO,QAASI,UClBrB,WACE,YAMA,SAASK,eAAcC,UAAWC,OAAQC,aAAcC,KAAMC,QAkB5D,QAASC,YAAWC,QAClB,MAAOH,MAAKI,QAAQD,OAAQF,OAAOI,KAAKC,OAG1C,QAASC,cACPN,OAAOI,KAAKG,oBACZX,UAAUY,OAGZ,QAASC,aACPT,OAAOI,KAAKM,mBAAmBC,KAAK,WAClCf,UAAUY,QACT,SAASI,KAAMC,QAChBhB,OAAOiB,MAAMhH,EAAE,WAAYA,EAAE,yCAIjC,QAASiH,eAAcC,MACrB,GAAIC,cAAeD,KAAKE,gBACpBD,gBACFE,GAAGF,aAAaG,SAAU,EAC1BD,GAAGF,aAAaI,QAAUJ,cAI9B,QAASK,YAAWN,MAClBhB,OAAOI,KAAKmB,YAAYP,KAAKQ,KAA7BxB,SAAwC,SAASY,KAAMC,QACrDhB,OAAOiB,MAAMhH,EAAE,WAAYA,EAAE,yCAIjC,QAAS2H,SAAQb,MACXA,MACFZ,OAAOI,KAAKsB,SAASd,MAAMD,KAAK,WAC9BQ,GAAGQ,UAAY,GACfR,GAAGS,WAAa,IACf,SAASC,OACVhC,OAAOiB,MAAMhH,EAAE,WAAY+H,SAKjC,QAASC,YAAWd,MACdG,GAAGY,cAAgBf,KACrBG,GAAGY,aAAe,MAGlBZ,GAAGY,aAAef,KAClBG,GAAGY,aAAaC,WAjEpB,GAAIb,IAAKc,IAETd,IAAGd,MAAQP,aACXqB,GAAGnB,OAASA,OACZmB,GAAGY,aAAe,KAClBZ,GAAGQ,UAAY,GACfR,GAAGS,WAAa,GAChBT,GAAGlB,WAAaA,WAChBkB,GAAGb,WAAaA,WAChBa,GAAGV,UAAYA,UACfU,GAAGJ,cAAgBA,cACnBI,GAAGG,WAAaA,WAChBH,GAAGM,QAAUA,QACbN,GAAGW,WAAaA,WAChBX,GAAGF,cAAiBG,SAAS,EACTC,QAAS,IAjB/B1B,cAAcb,SAAW,YAAa,SAAU,eAAgB,OAAQ,UAwExEzC,QACGC,OAAO,eACP4F,WAAW,gBAAiBvC,kBC7EjC,WACE,YAMA,SAASwC,eAAcC,OAAQC,SAAUC,UAAWC,MAAOC,WAAYC,eAAgBC,SAAUC,KAAMC,WAAYC,WAAYC,OAE7HV,OAAO3F,WAAaoG,WAAWpG,aAC/B2F,OAAO7F,QAAUsG,WAAWtG,UAG5B6F,OAAOW,WAAaC,OAAOD,WAC3BV,SAAS,WAEPC,UAAU,WACRC,MAAMU,IAAI,WAAWC,QAAQ,SAAStC,MACpCwB,OAAOW,WAAanC,QAErB,QACwC,IAA1CoC,OAAOD,WAAWI,uBAErBf,OAAOgB,WAAa,WAClBZ,WAAW,QAAQa,SAChB1C,KAAK,WACJgC,KAAKW,MAAM,0BAGjBlB,OAAOmB,YAAc,WACnBf,WAAW,SAASa,SACjB1C,KAAK,WACJgC,KAAKW,MAAM,2BAGjBlB,OAAOoB,gBAAkB,WACvBf,eAAegB,MACbC,OAAQrH,QAAQsH,QAAQC,SAASC,eAAe,iBAChDC,YAAa,8BAGjB1B,OAAO2B,iBAAmB,WACxB,GAAIC,QAAS3H,QAAQsH,QAAQC,SAASC,eAAe,cACrDG,QAAOC,YAAY,aAErB7B,OAAO8B,OAAO,WACZ,MAAOxB,UAASE,WAAW,WAC1B,SAASuB,QACV/B,OAAOgC,WAAaD,SAGtBrB,MAAMuB,YA7CRlC,cAAcrD,SAAY,SAAU,WAAY,YAAa,QAAS,aAAc,iBAAkB,WAAY,OAAQ,aAAc,aAAc,SAgDtJzC,QAAQC,OAAO,eACZ4F,WAAW,gBAAiBC,kBC5DjC,WACE,YAOA,SAASmC,KAAIC,UACXtC,KAAKsC,SAAWA,SAQlBD,IAAIE,SAAW,KAAM,WAAY,aAAc,WAAY,OAAQ,SAASC,GAAIpC,SAAUqC,SAAUC,SAAU5E,MAQ5G,MAPA1D,SAAQuI,OAAON,KACbG,GAAIA,GACJpC,SAAUA,SACVwC,WAAY,GAAIF,UAASD,SAASjI,WAAW,aAAciI,SAASjI,cACpEqI,MAAO/E,OAGFuE,MAOTjI,QAAQC,OAAO,eAAekI,QAAQ,MAAOF,IAAIE,SAQjDF,IAAIS,UAAUC,OAAS,WACrB,GAEIhE,MAFAiE,MAAQhD,KACRiD,SAAWZ,IAAIG,GAAGU,OAEtB,OAAIlD,MAAK5B,OACP6E,SAASE,QAAQnD,KAAK5B,OAiBjB6E,SAASG,SAdPf,IAAIO,WAAWS,MAAMrD,KAAKsC,SAAU,QAAQ5D,KAAK,SAAS4E,UAW/D,MAVAN,OAAM5E,SAENhE,QAAQmJ,QAAQD,SAASlF,MAAO,SAASO,MACvCI,KAAO,GAAIsD,KAAIQ,MAAMlE,MACrBI,KAAKyE,iBAAmBzE,KAAK0E,aAC7B1E,KAAK2E,cAAgB3E,KAAK0E,aAC1B1E,KAAKgB,QAAU3F,QAAQuJ,KAAK5E,KAAMA,KAAKZ,KAAM6E,MAAMV,UACnDU,MAAM5E,MAAMX,KAAKsB,QAEnBkE,SAASE,QAAQH,MAAM5E,OAChB4E,MAAM5E,SAYnBiE,IAAIS,UAAUrD,SAAW,SAASV,MAChC,GAAIiE,OAAQhD,KACRiD,SAAWZ,IAAIG,GAAGU,QAClBzI,OAAS8E,IAAKR,KAAKQ,IAgBvB,QAfKR,KAAKQ,KAAOqE,EAAEC,QAAQD,EAAEE,MAAM9D,KAAK5B,MAAO,OAAQW,KAAKQ,KAAO,GAEjE0D,SAASE,UAGTd,IAAIO,WAAWS,MAAMrD,KAAKsC,SAAU,gBAAiB7H,OAAOiE,KAAK,WAC/DK,KAAK2E,eAAgB,EACrB3E,KAAKgF,UAAYhF,KAAKiF,QAAU,aAAe,cAC/CjF,KAAKgB,QAAU3F,QAAQuJ,KAAK5E,KAAMA,KAAKZ,KAAM6E,MAAMV,UACnDU,MAAM5E,MAAMX,KAAKsB,MACjBkE,SAASE,QAAQH,MAAM5E,QACtB,SAASO,KAAMC,QAChBqE,SAASgB,OAAOpM,EAAE,yCAGfoL,SAASG,SASlBf,IAAIS,UAAUxD,YAAc,SAASC,KACnC,GAAIyD,OAAQhD,KACRvF,OAAS8E,IAAKA,IAClB,OAAO8C,KAAIO,WAAWS,MAAMrD,KAAKsC,SAAU,qBAAsB7H,OAAOiE,KAAK,WAC3E,GAAIvG,GAAIyL,EAAEC,QAAQD,EAAEE,MAAMd,MAAM5E,MAAO,OAAQmB,IAC3CpH,IAAK,GACP6K,MAAM5E,MAAM8F,OAAO/L,EAAG,MAU5BkK,IAAIS,UAAUxE,kBAAoB,WAChClE,QAAQmJ,QAAQvD,KAAK5B,MAAO,SAASW,MACnCA,KAAKoF,kBAUT9B,IAAIS,UAAUrE,iBAAmB,WAC/B,GAAIuE,OAAQhD,KACRoE,aAAe/B,IAAIG,GAAGU,QACtBmB,kBAAoBhC,IAAIG,GAAGU,QAC3BzI,OAAS6J,OAAQ,kBACjBlG,QA+CJ,OA5CAhE,SAAQmJ,QAAQvD,KAAK5B,MAAO,SAASW,MAC/BA,KAAKwF,mBACPnG,MAAMX,KAAKsB,KAAKyF,WAIhBpG,MAAM/F,OACRgK,IAAIO,WAAW6B,KAAKzE,KAAKsC,SAAUlE,MAAO3D,OACvCiE,KAAK,WAEJtE,QAAQmJ,QAAQP,MAAM5E,MAAO,SAASW,MAChCA,KAAKwF,oBACPxF,KAAK2F,cAAgBtK,QAAQuK,KAAK5F,KAAK6F,WAG3CR,aAAajB,WACZiB,aAAaH,QAGlBG,aAAajB,UAIf/E,SACAhE,QAAQmJ,QAAQvD,KAAK5B,MAAO,SAASW,OAC9BA,KAAK2E,eAAiB3E,KAAK0E,cAC9BrF,MAAMX,KAAKsB,KAAKQ,OAIhBnB,MAAM/F,QACRoC,OAASoK,KAAMzG,MAAM0G,KAAK,MAC1BzC,IAAIO,WAAWS,MAAMrD,KAAKsC,SAAU,iBAAkB7H,OACnDiE,KAAK,WAEJtE,QAAQmJ,QAAQP,MAAM5E,MAAO,SAASW,MACpCA,KAAK2E,cAAgB3E,KAAK0E,eAE5BY,kBAAkBlB,WACjBkB,kBAAkBJ,SAGvBI,kBAAkBlB,UAEbd,IAAIG,GAAGuC,KAAKX,aAAahB,QAASiB,kBAAkBjB,cCjL/D,WACE,YAMA,SAASvC,SACPb,KAAKgF,aAAe,KAuHtB,QAASC,cAAa7E,SAAUqC,SAAUC,SAAUwC,UAOlD,MANA9K,SAAQuI,OAAO9B,OACbT,SAAUA,SACVwC,WAAY,GAAIF,UAASD,SAASjI,WAAW,aAAe,WAAYiI,SAASjI,cACjF2K,OAAQD,WAGHrE,MAvHTA,MAAMuB,UAAY,WAChB,GAAIY,OAAQhD,KACRoF,IAAM,GAAIC,MACVC,YAAcC,KAAKC,MAAMJ,IAAIK,UAAU,IAE3CzF,MAAK4C,WAAWS,MAAM,GAAI,0BAA4BiC,aAAa5G,KAAK,SAASC,MAE/E,GAAI+G,QAAS/G,KAAK+G,OAAOC,KAAK,SAAgCC,EAAGC,GAC/D,GAAIC,GAAItI,SAASoI,EAAE,IACfG,EAAIvI,SAASqI,EAAE,GACnB,OAAQE,GAAID,GAGd,IAAIJ,OAAOrN,OAAS,EAAG,CACrB,GAAI2N,MAAON,OAAOO,MACdb,IAAM,GAAIC,MACVa,IAAMX,KAAKC,MAAMJ,IAAIK,UAAU,KAC/BU,IAAMH,KAAK,GAAK,IAAMA,KAAK,GAC3BI,UAAY5I,SAASwI,KAAK,IAC1BK,MAAQD,SACRA,WAAY,IAAGC,OAASH,IAC5B,IAIII,IAJI,GAAIjB,MAAe,IAAVe,WAIThM,QAAQuJ,KAAKX,MAAOnC,MAAM0F,UAAWJ,KAEzCnD,OAAMgC,cACRhC,MAAM5C,SAASoG,OAAOxD,MAAMgC,cAE9BhC,MAAMgC,aAAehC,MAAM5C,SAASkG,EAAS,IAAND,WAU7CxF,MAAM0F,UAAY,SAASJ,KACzB,GAAInD,OAAQhD,IAEZA,MAAK4C,WAAWS,MAAM8C,IAAK,mBAAmBzH,KAAK,SAASC,MAkD1D,QAAS8H,iBAAgBC,MAAOxB,SAAUiB,KACxCO,MAAMC,SAAW,KACjBD,MAAMF,OAAS,WACbtB,SAAS3G,QAEXmI,MAAME,GAAK,WACT5D,MAAMJ,WAAWS,MAAM8C,IAAK,oBAAsBO,MAAMC,UACxDzB,SAAS3G,QAxDbyE,MAAMmC,OAAO3D,MACXqF,SAAU,YACVC,UAAW,EACXC,UACE,aACA,wBACA,mCAAqCpI,KAAKqI,QAAU,WACpD,qCACA,0BACOnP,EAAE,aACT,mBACA,2BACOA,EAAE,cACT,mBACA,2BACOA,EAAE,cACT,mBACA,2BACOA,EAAE,cACT,mBACA,2BACOA,EAAE,cACT,mBACA,2BACOA,EAAE,UACT,mBACA,6BACOA,EAAE,SACT,mBACA,iBACA,yBACA,mCACIA,EAAE,UACN,gBACA,+BACIA,EAAE,MACN,gBACA,eACAiN,KAAK,IACPmC,QACEd,IAAKA,KAEPlG,WAAYwG,kBAMdA,gBAAgB5J,SAAW,QAAS,WAAY,UAmBpDoI,aAAapI,SAAW,WAAY,aAAc,WAAY,YAY9DzC,QACGC,OAAO,eACPkI,QAAQ,QAAS0C,iBC3ItB,WAEE,YAuBA,SAASiC,kBACP,QAASC,YAAWC,MAClB,GAAIC,aAAaC,OAAQC,MAAOpP,EAAGqP,YAAaC,KAIhD,KAHAJ,YAAc,KACdC,OAASF,KAAO,IAChBG,MAAQ5F,SAAS+F,OAAOC,MAAM,KACzBxP,EAAI,GAAIkP,aAAelP,EAAIoP,MAAMlP,OAAQF,IAAK,CAGjD,IAFAqP,YAAcD,MAAMpP,GACpBsP,MAAQ,EAC4B,KAA7BD,YAAYI,OAAOH,QACxBA,OACEA,OAAQ,IACVD,YAAcA,YAAYK,OAAOJ,QACC,IAAhCD,YAAY3D,QAAQyD,UACtBD,YAAcG,YAAYK,OAAOP,OAAOjP,SAG5C,MAAOgP,aAGT,QAASS,mBACP,GAEI9P,OAFA+P,YAAc,KACdL,OAASP,WAAW,iBAOxB,OALIO,SAAUA,OAAOrP,OAAS,IAC5BL,MAAQgF,mBAAmB0K,OAAOG,OAAO,IACzCE,YAAc/P,MAAMgQ,eAAeL,MAAM,MAGpCI,YAGT,QAASE,aAAYC,SAAUC,QAC7B,GAAIC,UAAUC,QAASC,YAAaC,eAAgBC,MAAOC,SAAUC,SAAUC,UAwB/E,OAtBAP,UAAWF,SACPC,SACFC,UAAY,IAAMD,OAAOnQ,OAC3BqQ,QAAU,GAAKtH,OAAO6H,SAASC,KAC/BP,YAAc/N,mBAAqB,IAAM4C,mBAAmBiL,UACtC,KAAlBE,YAAY,KACdE,MAAQH,QAAQV,MAAM,KACtBc,SAAWD,MAAM,GACjBE,SAAWF,MAAM,GACjBF,YAAcI,SAAW,KAAOD,SAAWH,aAE7CE,MAAQF,YAAYX,MAAM,KAC1Ba,MAAMtE,OAAO,EAAG,GAChBqE,eAAiBC,MAAM1D,KAAK,KAM1B6D,YALGN,QAAQS,WAAWR,eAAgBD,QAAQS,WAAWP,iBACtDF,QAAQU,SAAS,WAIPT,YAHAD,QAejB,QAASW,YAAWxG,GAAIlC,MAAO2I,sBAC7B,GAAkBC,SAAdlG,MAAQhD,IAsHZ,OApHAkJ,UACEvO,MAAO,SAASgE,MACd,GAII1D,UAJAkO,EAAI3G,GAAGU,QACPgF,SAAWvJ,KAAKuJ,SAChBkB,SAAWzK,KAAKyK,SAChBjB,OAASxJ,KAAKwJ,OAEdkB,cAAgB1K,KAAK0K,cAAgB,EAAI,CA+D7C,OA7DI1K,MAAK2K,cAAgBpB,SAASa,SAASpK,KAAK2K,eAC9CpB,UAAYoB,YACZnB,QAAS,GAEPxJ,KAAK1D,UAA6B,uBAAjB0D,KAAK1D,WACxBA,SAAW0D,KAAK1D,UAGlBqF,OACEiJ,OAAQ,OACRpD,IAAK,gBACLxH,MACEyJ,SAAUF,SACVkB,SAAUA,SACVjB,OAAQA,OACRlN,SAAUA,SACVoO,cAAeA,iBAEhBpI,QAAQ,SAAStC,KAAMC,QAExB,GAAI4K,aAAc1B,iBACb0B,aAKuB,mBAAf7K,MAAK8K,QAA8C,mBAAd9K,MAAK+K,MAC/C/K,KAAK8K,OAAS,GAAK9K,KAAK+K,MAAQ,EAClCP,EAAElF,QAAQyF,MAAO/K,KAAK+K,QAEb/K,KAAK8K,OAAS,GAAmB,IAAd9K,KAAK+K,MACjCP,EAAElF,QAAQwF,OAAQ9K,KAAK8K,SAIvBN,EAAEhG,QAAQ8E,YAAYC,SAAUC,SAIlCgB,EAAEhG,QAAQ8E,YAAYC,SAAUC,SAjBlCgB,EAAElF,OAAOpM,EAAE,wBAoBZ+H,MAAM,SAASjB,KAAMC,QACtB,GAAI+K,KAAKC,IACLjL,OAAQA,KAAKkL,yBACfD,KAAOjL,KAAKkL,wBAEVF,IADEC,MAAQX,qBAAqBa,cACzBjS,EAAE,+BAED+R,MAAQX,qBAAqBc,oBAC9BlS,EAAE,4DAGFA,EAAE,8CAAgD+R,MAI1DD,IAAM9R,EAAE,4BAEVsR,EAAElF,QAAQrE,MAAO+J,QAEZR,EAAE/F,SAGX4G,eAAgB,SAASC,aACvB,GAAId,GAAI3G,GAAGU,QACPsG,YAAcxG,MAAM8E,iBAsCxB,OApCAxH,QACEiJ,OAAQ,OACRpD,IAAK,0BACLxH,MACEyJ,SAAUoB,YAAY,GACtBJ,SAAUI,YAAY,GACtBS,YAAaA,eACdhJ,QAAQ,SAAStC,KAAMC,QACxBuK,EAAEhG,YACDvD,MAAM,SAASjB,KAAMC,QACtB,GAAIgB,OACAgK,KAAOjL,KAAKkL,uBAEXD,MAIIA,MAAQX,qBAAqBa,cACpClK,MAAQ/H,EAAE,0BACD+R,MAAQX,qBAAqBiB,4BACtCtK,MAAQ/H,EAAE,8CACD+R,MAAQX,qBAAqBkB,kCACtCvK,MAAQ/H,EAAE,0DACD+R,MAAQX,qBAAqBmB,uBACtCxK,MAAQ/H,EAAE,kDACD+R,MAAQX,qBAAqBoB,uBACtCzK,MAAQ/H,EAAE,kDACD+R,MAAQX,qBAAqBqB,wBACtC1K,MAAQ/H,EAAE,oDAEV+H,MAAQ/H,EAAE,gCAAgC0S,UAAUX,MACpDA,KAAOX,qBAAqBuB,wBAjB5BZ,KAAOX,qBAAqBwB,4BAC5B7K,MAAQgE,EAAE,6BAmBZuF,EAAElF,OAAOrE,SAEJuJ,EAAE/F,UA1HfpD,KAAK0K,KAAO1B,WAKZA,WAAWnM,SAAW,KAAM,QAAS,wBAtFvCzC,QAAQC,OAAO,0BAEZ+B,SAAS,wBACRuO,gCAAiC,GACjCF,4BAA6B,GAC7BD,sBAAuB,GACvBI,sBAAuB,EACvBb,oBAAqB,EACrBc,uBAAwB,EACxBX,4BAA6B,EAC7BY,4BAA6B,EAC7BX,kCAAmC,EACnCC,uBAAwB,EACxBC,uBAAwB,EACxBC,wBAAyB,EACzBR,cAAe,QAIlBiB,SAAS,iBAAkB7D,mBCxB9B,WACE,YAMA,SAAStJ,WAmGT,QAASoN,eAAcxI,GAAI7E,WAGzB,MAFAvD,SAAQuI,OAAO/E,QAAU4E,GAAIA,GAAKyI,OAAQtN,YAEnCC,OA7FTA,OAAOiB,MAAQ,SAASqM,MAAOC,SAC7B,GAAItM,OAAQmB,KAAKiL,OAAOpM,QACnBqM,MAAMA,OACNC,QAAQA,SACRvE,GAAG/O,EAAE,MACVmI,MAAKiL,OAAOzJ,KAAK3C,QAUnBjB,OAAOwN,QAAU,SAASF,MAAOC,QAASE,SACxC,GAAID,SAAUpL,KAAKiL,OAAOG,UACrBF,MAAMA,OACNC,QAAQA,SACRvE,GAAIyE,SAAWA,QAAQzE,GAAKyE,QAAQzE,GAAK/O,EAAE,OAC3C2O,OAAQ6E,SAAWA,QAAQ7E,OAAS6E,QAAQ7E,OAAS3O,EAAE,UAC5D,OAAOmI,MAAKiL,OAAOzJ,KAAK4J,UAW1BxN,OAAO0N,OAAS,SAASJ,MAAOK,MAAOF,SAoCrC,QAASG,wBAAuB9E,MAAO/I,WACrC+I,MAAMwE,MAAQA,MACdxE,MAAMU,KAAO,GACbV,MAAMF,OAAS,WACb2C,EAAElF,SACFtG,UAAUY,QAEZmI,MAAME,GAAK,WACTuC,EAAEhG,QAAQuD,MAAMU,MAChBzJ,UAAUY,QA5Cd,GAAIkN,GAAIJ,YACJlC,EAAInJ,KAAKwC,GAAGU,OA+ChB,OA7CAlD,MAAKiL,OAAOzJ,MACVC,OAAQrH,QAAQsH,QAAQC,SAAS+J,MACjCC,qBAAqB,EACrBC,eAAe,EACf7E,UACE,sCACA,wCACA,iDACA,2BACA,gBAAkBwE,MAAQ,WAC1B,uBAAyBE,EAAEI,WAAa,QAAU,IAClD,4BAA8BX,MAAQ,IACtC,qDACA,4BACA,yBACA,+BACA,wCACA,WAAarT,EAAE,UACf,qBACA,kFACA,WAAaA,EAAE,MACf,qBACA,aACA,gBACAiN,KAAK,IACP7E,WAAYuL,yBAMdA,uBAAuB3O,SAAW,QAAS,aAcpCsM,EAAE/F,SAQX4H,cAAcnO,SAAW,KAAM,aAQ/BzC,QACGC,OAAO,eACPkI,QAAQ,SAAUyI,kBCnHvB,WACE,YASA,SAASc,YACP,MAAO,UAAS/Q,MAAOgR,MACrB,GAAIjG,GAAGC,EAAGiG,KAAMC,EAAIF,IACpB,OAAKhR,QAGL+K,EAAI/K,MAAM8I,QAAQ,KACdiC,GAAK,IACPC,EAAIhL,MAAM8I,QAAQ,IAAKiC,GACnBC,EAAID,IACN/K,MAAQA,MAAMmR,UAAUpG,EAAE,EAAEC,KAE3BgG,OACHE,EAAI,IAEND,KAAOjR,MAAMoR,MAGN,mCAAqCH,KAAO,MAAQC,EAAI,cAdtD,IAkBb7R,QACGC,OAAO,eACPkI,QAAQ,WAAYuJ,aClCzB,WACE,YAUA,SAASpJ,UAASpC,MAAOkC,GAAIjH,KAAMf,WAAY6Q,SAC7CjR,QAAQuI,OAAO3C,MACboM,MAAO9L,MACP+L,GAAI7J,GACJ8J,MAAO/Q,KACPgR,YAAa/R,aAEfJ,QAAQuI,OAAO3C,KAAMqL,SAErBrL,KAAKsM,MAAQtM,KAAKsM,MAAMhU,QAAQ,MAAO,IAQzCoK,SAAS8J,UAAa,QAAS,KAAM,SAASlM,MAAOkC,IACnD,MAAO,UAASjH,KAAMf,WAAY6Q,SAChC,MAAO,IAAI3I,UAASpC,MAAOkC,GAAIjH,KAAMf,WAAY6Q,YAQrDjR,QAAQC,OAAO,eAAekI,QAAQ,WAAYG,SAAS8J,UAS3D9J,SAASI,UAAU2J,aAAe,SAASlN,KACzC,GAAIhE,MAAOqI,EAAE8I,QAAQ1M,KAAKuM,YAAYpR,UAAUwM,MAAM,KAGtD,OAFApM,MAAK2I,OAAO3I,KAAKlD,OAAS,EAAG,EAAGsU,OAAOpN,MAEhC,GAAImD,UAAS1C,KAAKoM,MAAOpM,KAAKqM,GAAI,IAAM9Q,KAAKuJ,KAAK,KAAM9E,KAAKuM,cAYtE7J,SAASI,UAAUO,MAAQ,SAASf,SAAUgC,OAAQsI,QACpD,GAAI3J,UAAWjD,KAAKqM,GAAGnJ,QACnB3H,MAAQyE,KAAKsM,MAgBjB,OAfIhK,WAAU/G,KAAKkC,KAAK6E,SAASqF,MAAM,MACnCrD,QAAU/I,KAAKkC,KAAK6G,QACxB/I,KAAOqI,EAAE8I,QAAQ9I,EAAEiJ,QAAQtR,OAAOuJ,KAAK,KAEvC9E,KAAKoM,OACH7C,OAAQ,MACRpD,IAAK5K,KACLqR,OAAQA,SAEP3L,QAAQgC,SAASE,SACjBvD,MAAM,SAASjB,KAAMC,QACpB,MAAc,MAAVA,OACKqE,SAASgB,SADlB,SAIGhB,SAASG,SASlBV,SAASI,UAAUgK,QAAU,SAASxK,UACpC,GAAIW,UAAWjD,KAAKqM,GAAGnJ,QACnB3H,KAAOyE,KAAKsM,MAAQ,IAAMhK,SAAW,UAOzC,OALAtC,MAAKoM,MACFpL,IAAIzF,MACJ0F,QAAQgC,SAASE,SACjBvD,MAAMqD,SAASgB,QAEXhB,SAASG,SAWlBV,SAASI,UAAUiK,OAAS,SAASzI,OAAQ8C,MAC3C,GAAInE,UAAWjD,KAAKqM,GAAGnJ,QACnB3H,KAAOyE,KAAKsM,MAAQ,IAAMhI,MAO9B,OALAtE,MAAKoM,MACFY,KAAKzR,MAAQ6L,KAAMA,OACnBnG,QAAQgC,SAASE,SACjBvD,MAAMqD,SAASgB,QAEXhB,SAASG,SASlBV,SAASI,UAAUkK,KAAO,SAASC,GAAI3I,OAAQ3F,MAC7C,GAAIsE,UAAWjD,KAAKqM,GAAGnJ,QACnB3H,MAAQyE,KAAKsM,MAUjB,OATIW,KAAI1R,KAAKkC,KAAKwP,IACd3I,QAAQ/I,KAAKkC,KAAK6G,QACtB/I,KAAOqI,EAAE8I,QAAQ9I,EAAEiJ,QAAQtR,OAAOuJ,KAAK,KAEvC9E,KAAKoM,MACFY,KAAKzR,KAAMoD,MACXsC,QAAQgC,SAASE,SACjBvD,MAAMqD,SAASgB,QAEXhB,SAASG,SASlBV,SAASI,UAAU2B,KAAO,SAASwI,GAAIC,SAAU7B,SAC/C,GACI/G,SADWtE,KAAKqM,GAAGnJ,QACTmI,SAAWA,QAAQ/G,OAAS+G,QAAQ/G,OAAS,OAE3D,OAAOtE,MAAKgN,KAAKC,GAAI3I,OAAQ4I,WAS/BxK,SAASI,UAAUqK,OAAS,SAAS5N,KACnC,GAAI0D,UAAWjD,KAAKqM,GAAGnJ,QACnB3H,KAAOyE,KAAKsM,MAAQ,IAAM/M,IAAM,SAOpC,OALAS,MAAKoM,MACFpL,IAAIzF,MACJ0F,QAAQgC,SAASE,SACjBvD,MAAMqD,SAASgB,QAEXhB,SAASG,YC7KpB,WACE,YAOA,SAAStF,MAAKsP,UACRA,UACFpN,KAAKqN,KAAKD,UASdtP,KAAKyE,SAAW,KAAM,OAAQ,aAAc,WAAY,WAAY,SAASC,GAAI9B,KAAM+B,SAAUC,SAAUoJ,UAUzG,MATA1R,SAAQuI,OAAO7E,MACb0E,GAAIA,GACJ9B,KAAMA,KACNkC,WAAY,GAAIF,UAASD,SAASjI,WAAW,aAAciI,SAASjI,cACpE8S,UAAWxB,SACX7N,OAAQ,GACR8E,YAGKjF,OAOT1D,QAAQC,OAAO,eAAekI,QAAQ,OAAQzE,KAAKyE,SASnDzE,KAAKI,QAAU,SAASqP,OAAQC,eAC9B,GAAI/S,QAAS8S,OAAQA,QACjBvK,MAAQhD,IAEZ,OAAKuN,QAKDzP,KAAKG,QAAUsP,OAEVzP,KAAK0E,GAAGiL,KAAK3P,KAAKiF,SAE3BjF,KAAKG,OAASsP,OAEPzP,KAAK8E,WAAWS,MAAM,KAAM,cAAe5I,OAAOiE,KAAK,SAAS4E,UACrE,GAAIoK,SAASC,MAAO5O,KAChB6O,YAAc,SAASjP,MACrB,MAAOqE,OAAMzD,KAAOZ,KAAKY,IAY/B,KAREmO,QAFEF,cAEQ5J,EAAE3G,OAAOqG,SAASlF,MAAO,SAASO,MAC1C,OAAQiF,EAAEiK,KAAKL,cAAeI,YAAa7O,QAInCuE,SAASlF,MAGhBuP,MAAQ7P,KAAKiF,OAAO1K,OAAS,EAAGsV,OAAS,EAAGA,QAC/C5O,KAAOjB,KAAKiF,OAAO4K,OACd/J,EAAEiK,KAAKH,QAASE,YAAa7O,OAChCjB,KAAKiF,OAAOmB,OAAOyJ,MAAO,EAW9B,OAPA/J,GAAEkK,KAAKJ,QAAS,SAAS/O,KAAMgP,OAC7B,GAAI/J,EAAEmK,YAAYnK,EAAEiK,KAAK/P,KAAKiF,OAAQ6K,YAAajP,OAAQ,CACzD,GAAII,MAAO,GAAIjB,MAAKa,KACpBb,MAAKiF,OAAOmB,OAAOyJ,MAAO,EAAG5O,SAGjCjB,KAAK4C,KAAKW,MAAMvD,KAAKiF,QACdjF,KAAKiF,WAtCZjF,KAAKiF,UACEjF,KAAK0E,GAAGiL,KAAK3P,KAAKiF,UA+C7BjF,KAAKgF,UAAUuK,KAAO,SAAS1O,MAC7BvE,QAAQuI,OAAO3C,KAAMrB,MAChBqB,KAAKgO,gBACRhO,KAAKgO,cAAgBhO,KAAKiO,gBACvBjO,KAAKkO,UACRlO,KAAKkO,QAAUlO,KAAKmO,OAASrQ,KAAKwP,UAAUtN,KAAKoO,UAGnDpO,KAAKqO,MAAQ,KAQfvQ,KAAKgF,UAAUmL,aAAe,SAAS5C,SACrC,GAAIiD,UAAWtO,KAAKuO,IAAMvO,KAAKoO,QAC3BrT,MAAQiF,KAAKoO,QACbI,SAAWnD,SAAWA,QAAQtQ,SAAU,CAI5C,QAHKyT,UAAYzT,OAASuT,UAAYvT,QACpCuT,UAAY,KAAOvT,MAAQ,KAEtBuT,UAUTxQ,KAAKgF,UAAU3E,KAAO,SAASmE,UAC7B,GAAIU,OAAQhD,KACRiD,SAAWnF,KAAK0E,GAAGU,QACnBzI,OAAS8E,IAAKS,KAAKT,IAkBvB,OAjBIS,MAAK0E,cACPzB,SAASE,QAAQnD,KAAK4E,QAGtB9G,KAAK8E,WAAWS,MAAMf,SAAU,aAAc7H,OAAOiE,KAAK,SAASC,MAUjE,MATAqE,OAAM4B,OAASjG,KAOfqE,MAAM0B,cAAgBtK,QAAQuK,KAAKhG,MACnCsE,SAASE,QAAQxE,MACVA,OAGJsE,SAASG,SAQlBtF,KAAKgF,UAAU2L,aAAe,WAC5B,MAAmB,aAAZzO,KAAKT,KASdzB,KAAKgF,UAAU4L,WAAa,WAC1B,MAAO1O,MAAK+D,WAA+B,eAAlB/D,KAAK+D,WAShCjG,KAAKgF,UAAU7D,eAAiB,WAC9B,GAAID,eAAe,CAEnB,OAAIgB,MAAK2O,eAEA,GAGL/K,EAAEgL,KAAKhL,EAAEiL,OAAO7O,KAAK4E,WACP,aAAZ5E,KAAKT,IACPP,aAAenH,EAAE,oLAEE,aAAZmI,KAAKT,MACZP,aAAenH,EAAE,qHAIrBmI,KAAK2O,cAAgB3P,aAEdA,eAQTlB,KAAKgF,UAAUyB,gBAAkB,WAC/B,MAAOvE,MAAK4E,SAAWhB,EAAEkL,QAAQ9O,KAAK4E,OAAQ5E,KAAK0E,gBASrD5G,KAAKgF,UAAUqB,aAAe,SAAS4K,MACrC,GAAI/L,OAAQhD,IACR+O,MAEFnL,EAAEoL,IAAIpL,EAAEqL,KAAKjP,KAAK4E,QAAS,SAAS9M,KAC9BsC,QAAQ8U,SAASlM,MAAM4B,OAAO9M,MAChCkL,MAAM4B,OAAO9M,KAAO,OAEpBkL,MAAM4B,OAAO9M,KAAO,IAKxBkI,KAAK4E,OAASxK,QAAQuK,KAAK3E,KAAK0E,gBAWpC5G,KAAKgF,UAAUqM,SAAW,SAASC,MACjC,GAAIpM,OAAQhD,KACRiD,SAAWnF,KAAK0E,GAAGU,QACnBzI,OAAS2U,KAAMA,KAUnB,OATIpP,MAAKqP,UACPpM,SAASE,QAAQnD,KAAKqP,WAGtBvR,KAAK8E,WAAW6J,aAAazM,KAAKT,KAAK8D,MAAM,KAAM,gBAAiB5I,OAAOiE,KAAK,SAAS4E,UACvFN,MAAMqM,UAAY/L,SAASgM,QAC3BrM,SAASE,QAAQG,SAASgM,WAGvBrM,SAASG,SASlBtF,KAAKgF,UAAU0B,MAAQ,WACrB,GAAIzF,QAMJ,OALA3E,SAAQmJ,QAAQvD,KAAM,SAAShI,MAAOF,KACzB,eAAPA,KAAkC,KAAVA,IAAI,KAC9BiH,KAAKjH,KAAOE,SAGT+G,MAGTjB,KAAKgF,UAAUyM,SAAW,WACxB,MAAO,SAAWvP,KAAKoO,QAAU,QCjRrC,WACE,YAUA,SAASoB,SAAQC,WAAYrP,UAC3B,MAAO,UAASgH,MACdhH,SAAS,WACPqP,WAAWC,WAAW,YAAatI,SAJzCoI,QAAQ3S,SAAW,aAAc,YASjCzC,QACGC,OAAO,eACPkI,QAAQ,UAAWiN,YCrBxB,WAEE,YAUA,SAASG,iBACP,OACEC,SAAU,KACVtX,SAAS,EACToO,OACEqF,KAAM,IACNhR,MAAO,WACP8U,IAAK,UAEP9I,SAAU,6BACV+I,kBAAkB,EAClB7P,WAAY,0BACZ8P,aAAc,MAQlB,QAASC,yBAAwB7P,OAAQ8P,SAAUnE,UACjD,GAAI5M,IAAKc,IAETG,QAAO8B,OAAO,WAAY,SAASlH,OAC7BA,QAAUmE,GAAGiH,MACfjH,GAAGiH,IAAM2F,SAAS/Q,MAAOmE,GAAG6M,SAK5B,UAAYkE,UAAS,GAAGC,YAC1B/P,OAAO8B,OAAO,SAAU,SAAS4N,KAC3BA,MACF3Q,GAAGiH,IAAM0J,OAdjBG,wBAAwBnT,SAAW,SAAU,WAAY,YAoBzDzC,QACGC,OAAO,eACP8V,UAAU,gBAAiBR,eAC3B1P,WAAW,0BAA2B+P,4BCtD3C,WAEE,YAaA,SAASI,eAAcC,QA2BrB,QAASC,MAAK5J,MAAO6J,SAAUC,MAAOvQ,YAEpCA,WAAWwQ,SAAWJ,OAAOE,SAASG,KAAK,iBA5B7C,OACEd,SAAU,IACV7I,UACE,YACA,sCACA,0CACA,wCACA,gDACA,oCACA,iBACA,mDACA,+FACA,2EACA,iEACA,wFACA,sBACA,uBACA,cACAjC,KAAK,IACPxM,SAAS,EACTwX,kBAAkB,EAClB7P,WAAY0Q,wBACZZ,aAAc,2BACdO,KAAMA,MAaV,QAASK,yBAAwBxQ,OAAQyQ,UACvC,GAAI1R,IAAKc,IAETd,IAAG2R,OAASD,SAASvU,UACrB6C,GAAG4R,OAAS,SAASC,OACnB7R,GAAGuR,SAAStQ,QAAU4Q,MAAOA,SA3CjCX,cAAcvT,SAAW,UAqCzB8T,wBAAwB9T,SAAW,SAAU,YAU7CzC,QACGC,OAAO,eACP8V,UAAU,gBAAiBC,kBC/DhC,WACE,YAaA,SAASY,WAAUC,UAMjB,QAASC,eAAcxK,MAAOhF,QAASyP,OACrC,GAAIC,uBAAwB1K,MAAMzE,OAChC,SAASyE,OAEP,MAAOA,OAAM2K,MAAMF,MAAMH,YAE3B,SAAShZ,OAEP0J,QAAQ4P,KAAKtZ,OAIbiZ,SAASvP,QAAQ6P,YAAY7K,OAG7B0K,0BApBN,OACExB,SAAU,IACVU,KAAMY,eAJVF,UAAUnU,SAAW,YA4BrBzC,QACGC,OAAO,eACP8V,UAAU,YAAaa,cC3C5B,WACE,YAWA,SAASQ,WACP,GAAIC,WAAY,EAChB,OAAO,UAAS/K,MAAOhF,QAASyP,OAC9BzP,QAAQiC,KAAK,mBAAoB,SAAS+N,OACpCA,MAAMC,QAAUF,YAClB/K,MAAMkL,OAAO,WACXlL,MAAM2K,MAAMF,MAAMK,WAEpBE,MAAMG,qBAMdzX,QACGC,OAAO,eACP8V,UAAU,UAAWqB,YC5B1B,WACE,YAWA,SAASM,YACP,GAAIC,YAAa,EACjB,OAAO,UAASrL,MAAOsL,KAAMb,OAC3Ba,KAAKrO,KAAK,UAAW,SAAS+N,OACxBA,MAAMO,UAAYF,YACpBrL,MAAMkL,OAAOT,MAAMW,aAM3B1X,QACGC,OAAO,eACP8V,UAAU,WAAY2B,aCzB3B,WACE,YAYA,SAASI,aACP,MAAO,UAASxL,MAAOsL,KAAMtB,MAC3BhK,MAAMyL,IAAI,YAAa,SAASC,EAAGhL,MAC7BA,OAASsJ,KAAKwB,YAChBF,KAAK,GAAGK,QACRL,KAAK,GAAGlB,aAMhB1W,QACGC,OAAO,eACP8V,UAAU,YAAa+B,cC1B5B,WACE,YAcA,SAASI,sBACP,OACE1C,SAAU,IACV2C,QAAS,UACT7L,OACE8L,QAAS,KAEXzL,UACE,0BACA,iCACA,wDACA,MACA,iCACA,6CACA,MACA,gDACA,wDACA,MACA,YACAjC,KAAK,KAIX1K,QACGC,OAAO,eACP8V,UAAU,qBAAsBmC,uBCxCrC,WAEE,YAyBA,SAASG,uBAAsBpC,QAS7B,QAASqC,SAAQC,SAAUC,OACzB,GACIC,UADYF,SAAS9E,KAAK,sBAChB8E,SAAS9E,KAAK,UACxBiF,SAAWH,SAAS9E,KAAK,aACzBkF,SAAWJ,SAAS9E,KAAK,YAiB7B,OAfAgF,SAAQnC,KAAK,WAAY,kCACzBmC,QAAQnC,KAAK,mBAAoB,yCACjCmC,QAAQnC,KAAK,YAAa,kCACtBoC,WACFA,SAASpC,KAAK,WAAY,mCAC1BoC,SAASpC,KAAK,YAAa,mCAEzBqC,UAAYA,SAASrC,KAAK,qBAC5BqC,SAASrC,KAAK,WAAYqC,SAASrC,KAAK,qBACxCqC,SAASC,WAAW,qBAGpBD,SAAW,KAGN,SAAkBrM,MAAO6J,SAAUC,MAAOvQ,YAC/C,GAAIgT,kBAAmB1C,SAAS1C,KAAK,SAGrC5N,YAAWiT,SAAW7C,OAAOE,SAASG,KAAK,cAGvCqC,UAAYE,kBACdA,iBAAiBE,GAAG,QAASlT,WAAWmT,eArC9C,OACExD,SAAU,IACV3P,WAAY,qBACZ8P,aAAc,sBACdsD,SAAU,KACVX,QAASA,SAsCb,QAASY,YAQP,QAASZ,SAAQC,SAAUC,OACzB,MAAO,UAAkBlM,MAAO6J,SAAUC,MAAOvQ,WAAYsT,YAC3DA,WAAW,SAASC,OAClBjD,SAASkD,OAAOD,UAVtB,OACE5D,SAAU,IACVyD,SAAU,IACVE,YAAY,EACZb,QAASA,SAgBb,QAASgB,oBAAmBvT,OAAQ8P,UAClC,GAAI/Q,IAAKc,IAGTd,IAAGyU,UAAahU,WAAY,GAAIiU,YAAa,IAC7C1U,GAAGS,WAAa,KAGhBT,GAAG2U,mBACDC,SAAU,eACVC,UACEja,UAAS,IACTka,KAAM,IAKV9U,GAAG+U,SAAW,WACU,OAAlB/U,GAAGS,aACDT,GAAGS,YAAcT,GAAGyU,SAAShU,YAAcT,GAAG0U,aAAe1U,GAAGyU,SAASC,gBACvE1U,GAAGS,WAAWtH,OAAS,GAA8B,IAAzB6G,GAAGS,WAAWtH,SAE5C6G,GAAGgU,SAAS/S,QAAUR,WAAYT,GAAGS,WAAYiU,YAAa1U,GAAG0U,cAEnE1U,GAAGyU,UAAahU,WAAYT,GAAGS,WAAYiU,YAAa1U,GAAG0U,eAMjE1U,GAAGkU,aAAe,WAChBlU,GAAGS,WAAa,IAjGpB8S,sBAAsB5V,SAAW,UAiEjC6W,mBAAmB7W,SAAW,SAAU,YAoCxCzC,QACGC,OAAO,eACP4F,WAAW,qBAAsByT,oBACjCvD,UAAU,WAAYsC,uBACtBtC,UAAU,WAAYmD,aCnI3B,WAEE,YAcA,SAASY,aAAYpW,MACnB,OACE8R,SAAU,IACVlJ,OACEyN,WAAY,eACZC,eAAgB,wBAElB9b,SAAS,EACTwX,kBAAkB,EAClB7P,WAAYoU,4BACZtE,aAAc,+BACdO,KAAMA,MAIV,QAASA,MAAK5J,MAAOhF,QAASyP,MAAOlR,YACrByB,QAAQmM,KAAK,QAC3BnM,SAAQyR,GAAG,QAASlT,WAAWqU,YAOjC,QAASD,6BAA4B1W,WACnC,GAAIuB,IAAKc,IACTd,IAAGoV,WAAa,WACd3W,UAAU6D,MACRK,YAAa,qCACb8J,qBAAqB,EACrB1E,QACEkN,WAAYjV,GAAGiV,WACfC,eAAgBlV,GAAGkV,gBAErBnU,WAAYsU,sBACZxE,aAAc,eASpB,QAASwE,uBAAsBJ,WAAYC,eAAgBtW,MACzD,GAAIoB,IAAKc,IAETd,IAAGY,aAAe,KAClBZ,GAAGd,MAAQN,KAAKiF,OAEhB7D,GAAG2U,mBACDC,SAAU,eACVC,UACEja,UAAS,IACTka,KAAM,IAIV9U,GAAG+U,SAAW,WACZnW,KAAKI,QAAQgB,GAAGS,YAAYjB,KAAK,WAC3BQ,GAAGY,cAED8D,EAAEmK,YAAYnK,EAAEiK,KAAK/P,KAAKiF,OAAQ,SAAShE,MAC7C,MAAOA,MAAKQ,KAAOL,GAAGY,aAAaP,SAEnCL,GAAGY,aAAe,SAM1BZ,GAAGW,WAAa,SAAS1H,GACnB+G,GAAGY,cAAgBZ,GAAGd,MAAMjG,GAC9B+G,GAAGY,aAAe,KAIlBZ,GAAGd,MAAMjG,GAAGgX,SAASgF,YAAYzV,KAAK,WACpCQ,GAAGY,aAAeZ,GAAGd,MAAMjG,MAMjC+G,GAAGsV,aAAe,SAASzW,QACzBqW,gBAAgBK,WAAY1W,UAtFhCmW,YAAYrX,SAAW,QAwBvBwX,4BAA4BxX,SAAW,aAoBvC0X,sBAAsB1X,SAAW,aAAc,iBAAkB,QA8CjEzC,QACGC,OAAO,eACP8V,UAAU,cAAe+D,gBC3G9B,WACE,YAYA,SAASQ,YAOP,QAASC,cAAajO,MAAOhF,QAASyP,OACpCyD,QAAQC,IAAI,kBAEZ,IAAIC,sBAAuBpO,MAAMzE,OAC/B,SAASyE,OAEP,MAAOA,OAAM2K,MAAMF,MAAMuD,WAE3B,SAAS1c,OA+BP0J,QAAQ4P,KAAKtZ,OACb8c,yBA9CN,OACEzB,SAAU,EACVzD,SAAU,IACVU,KAAMqE,cAiDVva,QACGC,OAAO,eACP8V,UAAU,WAAYuE,aCpE3B,WACE,YAgBA,SAASK,cAAa1E;AAMpB,QAASC,MAAK5J,MAAO6J,SAAUY,MAAO6D,MA6CpC,QAAS5T,QAAO6T,KACd,GAAI9c,GAAIyL,EAAEsR,UAAUC,UAAW,SAAS1J,GACtC,MAAI2J,WACK3J,EAAE2J,YAAcH,IAEhBxJ,GAAKwJ,KAEhB,IAAQ,EAAJ9c,EACF,GAAIid,UAAW,CACb,GAAI3J,KACJA,GAAE2J,WAAaH,IACfE,UAAU1X,KAAKgO,OAGf0J,WAAU1X,KAAKwX,SAGjBE,WAAUjR,OAAO/L,EAAG,GA7DxB,GACIkd,MACAld,EACAgd,UACAC,UACAE,mBACAtT,YANAuT,MAAQhF,SAAS1C,KAAK,eAqC1B,KA7BAyH,mBAAqB5O,MAAMzE,OAAO,WAEhC,MAAOoO,QAAOc,MAAM4D,cAAcrO,QACjC,SAAS8O,MACV,GAAIpb,QAAQqb,UAAUD,MAAO,CAC3B,GAAIE,eAAgBF,IACpBL,WAAYK,KACRrE,MAAMwE,mBACRP,UAAYjE,MAAMwE,iBAClBD,cAAgB9R,EAAEE,MAAM0R,KAAMrE,MAAMwE,mBAEtC/R,EAAEkK,KAAKyH,MAAO,SAAS9J,GACrB,GAAI4J,MAAOjb,QAAQsH,QAAQ+J,EACvB7H,GAAEgS,SAASF,cAAeL,KAAK3E,KAAK,WACtC2E,KAAKQ,SAAS,eAGlBP,wBAIJtT,YAAc,WAEV,GAAIqT,MAAOjb,QAAQsH,QAAQ1B,MACvBiV,IAAMI,KAAK3E,KAAK,QACpB2E,MAAKrT,YAAY,aACjBZ,OAAO6T,MAGN9c,EAAI,EAAGA,EAAIod,MAAMld,OAAQF,IAC5Bkd,KAAOjb,QAAQsH,QAAQ6T,MAAMpd,IAC7Bkd,KAAKQ,SAAS,cACdR,KAAKxH,KAAK,UAAUgI,SAAS,WAC7BR,KAAKlC,GAAG,QAASnR,aA/CrB,OACE4N,SAAU,IACVU,KAAMA,MAJVyE,aAAalY,SAAW,UA0ExBzC,QACGC,OAAO,eACP8V,UAAU,eAAgB4E,iB1B5F/Be,OAAOhT,UAAUiG,SAAW,SAASgN,QACnC,MAA6D,KAAtD/V,KAAK6D,QAAQkS,OAAQ/V,KAAK3H,OAAS0d,OAAO1d,SAGnDyd,OAAOhT,UAAUgG,WAAa,SAASkN,QAASnP,UAE9C,MADAA,UAAWzM,QAAQ6b,SAASpP,UAAYA,SAAW,EAC5C7G,KAAKkW,YAAYF,QAASnP,YAAcA,UAGjDiP,OAAOhT,UAAUqT,eAAiB,oEAClCL,OAAOhT,UAAUsT,aAAe,WAO9B,IANA,GACIC,MAAMC,KAAMC,KAAMC,KAAMC,KAAMC,KAAMC,KADpCC,OAAS,GAETze,EAAI,EAEJ0e,MAAQ7W,KAAK8W,aAEV3e,EAAI0e,MAAMxe,QACfge,KAAOQ,MAAME,WAAW5e,KACxBme,KAAOO,MAAME,WAAW5e,KACxBoe,KAAOM,MAAME,WAAW5e,KAExBqe,KAAOH,MAAQ,EACfI,MAAgB,EAAPJ,OAAa,EAAMC,MAAQ,EACpCI,MAAgB,GAAPJ,OAAc,EAAMC,MAAQ,EACrCI,KAAc,GAAPJ,KAEHS,MAAMV,MACRI,KAAOC,KAAO,GACLK,MAAMT,QACfI,KAAO,IAGTC,OAASA,OACP5W,KAAKmW,eAAevO,OAAO4O,MAAQxW,KAAKmW,eAAevO,OAAO6O,MAC9DzW,KAAKmW,eAAevO,OAAO8O,MAAQ1W,KAAKmW,eAAevO,OAAO+O,KAGlE,OAAOC,SAGTd,OAAOhT,UAAUkF,aAAe,WAO9B,IANA,GACIqO,MAAMC,KAAMC,KACZC,KAAMC,KAAMC,KAAMC,KAFlBC,OAAS,GAGTze,EAAI,EAEJ0e,MAAQ,GAAK7W,KACV7H,EAAI0e,MAAMxe,QACfme,KAAOxW,KAAKmW,eAAetS,QAAQgT,MAAMjP,OAAOzP,MAChDse,KAAOzW,KAAKmW,eAAetS,QAAQgT,MAAMjP,OAAOzP,MAChDue,KAAO1W,KAAKmW,eAAetS,QAAQgT,MAAMjP,OAAOzP,MAChDwe,KAAO3W,KAAKmW,eAAetS,QAAQgT,MAAMjP,OAAOzP,MAEhDke,KAAQG,MAAQ,EAAMC,MAAQ,EAC9BH,MAAgB,GAAPG,OAAc,EAAMC,MAAQ,EACrCH,MAAgB,EAAPG,OAAa,EAAKC,KAE3BC,QAAkBd,OAAOmB,aAAaZ,MAE1B,IAARK,OACFE,QAAkBd,OAAOmB,aAAaX,OAE5B,IAARK,OACFC,QAAkBd,OAAOmB,aAAaV,MAI1C,OAAOK,SAGTd,OAAOhT,UAAUqJ,IAAM,WACrB,GAAKnM,KAAK3H,OAAV,CAEA,GAAI8T,KAAM,SAASF,GAAG,QAASiL,GAAEC,EAAEhO,GAAG,MAAOgO,IAAGhO,EAAIgO,IAAK,GAAGhO,EAAK,QAASiO,GAAEC,EAAEF,GAAG,GAAIG,GAAEnO,EAAEoO,EAAEC,EAAE1R,CAAsG,OAApGyR,GAAK,WAAFF,EAAcG,EAAK,WAAFL,EAAcG,EAAK,WAAFD,EAAclO,EAAK,WAAFgO,EAAcrR,GAAK,WAAFuR,IAAiB,WAAFF,GAAiBG,EAAEnO,EAAY,WAAFrD,EAAayR,EAAEC,EAAOF,EAAEnO,EAAQ,WAAFrD,EAAuB,WAAFA,EAAayR,EAAEC,EAAkB,WAAF1R,EAAayR,EAAEC,EAAiB1R,EAAEyR,EAAEC,EAAK,QAASC,GAAEtO,EAAEoO,EAAEJ,GAAG,MAAOhO,GAAEoO,GAAMpO,EAAGgO,EAAI,QAASO,GAAEvO,EAAEoO,EAAEJ,GAAG,MAAOhO,GAAEgO,EAAII,GAAIJ,EAAK,QAASQ,GAAExO,EAAEoO,EAAEJ,GAAG,MAAOhO,GAAEoO,EAAEJ,EAAI,QAAS7Z,GAAE6L,EAAEoO,EAAEJ,GAAG,MAAOI,IAAGpO,GAAIgO,GAAM,QAASS,GAAEP,EAAEE,EAAEM,GAAGC,EAAEX,EAAEK,EAAEF,GAA8B,MAA3BD,GAAED,EAAEC,EAAED,EAAEA,EAAEK,EAAEF,EAAEM,GAAGC,GAAGX,GAAGG,IAAWF,EAAEF,EAAEG,EAAEG,GAAGD,GAAI,QAASjR,GAAE+Q,EAAEE,EAAEM,GAAGC,EAAEX,EAAEK,EAAEF,GAA8B,MAA3BD,GAAED,EAAEC,EAAED,EAAEA,EAAEM,EAAEH,EAAEM,GAAGC,GAAGX,GAAGG,IAAWF,EAAEF,EAAEG,EAAEG,GAAGD,GAAI,QAASQ,GAAEV,EAAEE,EAAEM,GAAGC,EAAEX,EAAEK,EAAEF,GAA8B,MAA3BD,GAAED,EAAEC,EAAED,EAAEA,EAAEO,EAAEJ,EAAEM,GAAGC,GAAGX,GAAGG,IAAWF,EAAEF,EAAEG,EAAEG,GAAGD,GAAI,QAASS,GAAEX,EAAEE,EAAEM,GAAGC,EAAEX,EAAEK,EAAEF,GAA8B,MAA3BD,GAAED,EAAEC,EAAED,EAAEA,EAAE9Z,EAAEia,EAAEM,GAAGC,GAAGX,GAAGG,IAAWF,EAAEF,EAAEG,EAAEG,GAAGD,GAAI,QAASnF,GAAEiF,GAAuG,IAApG,GAAIS,GAAMP,EAAEF,EAAEhf,OAAWyN,EAAEyR,EAAE,EAAMJ,GAAGrR,EAAGA,EAAE,IAAK,GAAOwR,EAAQ,IAALH,EAAE,GAAUU,GAAGI,MAAMX,EAAE,GAAOnO,EAAE,EAAMqO,EAAE,EAAUD,EAAFC,GAAKM,GAAGN,EAAGA,EAAE,GAAI,EAAErO,EAAGqO,EAAE,EAAG,EAAEK,GAAGC,GAAID,GAAGC,GAAIT,EAAEN,WAAWS,IAAIrO,EAAIqO,GAA8E,OAAzEM,IAAGN,EAAGA,EAAE,GAAI,EAAErO,EAAGqO,EAAE,EAAG,EAAEK,GAAGC,GAAGD,GAAGC,GAAI,KAAK3O,EAAG0O,GAAGP,EAAE,GAAGC,GAAG,EAAEM,GAAGP,EAAE,GAAGC,IAAI,GAAUM,GAAI,QAASK,GAAEpS,GAAG,GAAcuR,GAAElO,EAAZgO,EAAE,GAAGI,EAAE,EAAO,KAAIpO,EAAE,EAAK,GAAHA,EAAKA,IAAKkO,EAAGvR,IAAO,EAAFqD,EAAM,IAAIoO,EAAE,IAAIF,EAAE9H,SAAS,IAAI4H,GAAII,EAAE1P,OAAO0P,EAAElf,OAAO,EAAE,EAAI,OAAO8e,GAAG,QAASgB,GAAEhB,GAAGA,EAAEA,EAAE7e,QAAQ,MAAM,IAAc,KAAI,GAAT6Q,GAAE,GAAWoO,EAAE,EAAEA,EAAEJ,EAAE9e,OAAOkf,IAAI,CAAC,GAAIzR,GAAEqR,EAAEJ,WAAWQ,EAAQ,KAAFzR,EAAOqD,GAAG2M,OAAOmB,aAAanR,GAAaA,EAAE,KAAS,KAAFA,GAASqD,GAAG2M,OAAOmB,aAAcnR,GAAG,EAAG,KAAKqD,GAAG2M,OAAOmB,aAAgB,GAAFnR,EAAM,OAAWqD,GAAG2M,OAAOmB,aAAcnR,GAAG,GAAI,KAAKqD,GAAG2M,OAAOmB,aAAenR,GAAG,EAAG,GAAI,KAAKqD,GAAG2M,OAAOmB,aAAgB,GAAFnR,EAAM,MAAQ,MAAOqD,GAAG,GAAkBiP,GAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAA9BC,EAAEZ,QAAkCa,EAAE,EAAEC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAOC,EAAE,EAAEC,EAAE,EAAEpT,EAAE,GAAGqT,EAAE,GAAO3N,EAAE,EAAE4N,EAAE,GAAGxhB,EAAE,GAAGO,EAAE,GAAOkhB,EAAE,EAAEC,EAAE,GAAGC,EAAE,GAAGC,EAAE,EAAoE,KAAjExN,EAAEkM,EAAElM,GAAG4M,EAAEzG,EAAEnG,GAAGwM,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAcR,EAAE,EAAEA,EAAES,EAAExgB,OAAO+f,GAAG,GAAIC,EAAEI,EAAEH,EAAEI,EAAEH,EAAEI,EAAEH,EAAEI,EAAEH,EAAEb,EAAEa,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGU,EAAE,YAAYF,EAAEhB,EAAEgB,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGW,EAAE,YAAYJ,EAAEf,EAAEe,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGY,EAAE,WAAWN,EAAEd,EAAEc,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGa,EAAE,YAAYR,EAAEb,EAAEa,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGU,EAAE,YAAYF,EAAEhB,EAAEgB,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGW,EAAE,YAAYJ,EAAEf,EAAEe,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGY,EAAE,YAAYN,EAAEd,EAAEc,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGa,EAAE,YAAYR,EAAEb,EAAEa,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGU,EAAE,YAAYF,EAAEhB,EAAEgB,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGW,EAAE,YAAYJ,EAAEf,EAAEe,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIY,EAAE,YAAYN,EAAEd,EAAEc,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIa,EAAE,YAAYR,EAAEb,EAAEa,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,IAAIU,EAAE,YAAYF,EAAEhB,EAAEgB,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAIW,EAAE,YAAYJ,EAAEf,EAAEe,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIY,EAAE,YAAYN,EAAEd,EAAEc,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIa,EAAE,YAAYR,EAAEnS,EAAEmS,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGc,EAAE,YAAYN,EAAEtS,EAAEsS,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGe,EAAE,YAAYR,EAAErS,EAAEqS,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIrS,EAAE,WAAW2S,EAAEpS,EAAEoS,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGgB,EAAE,YAAYX,EAAEnS,EAAEmS,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGc,EAAE,YAAYN,EAAEtS,EAAEsS,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAIe,EAAE,UAAUR,EAAErS,EAAEqS,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIrS,EAAE,YAAY2S,EAAEpS,EAAEoS,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGgB,EAAE,YAAYX,EAAEnS,EAAEmS,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGc,EAAE,WAAWN,EAAEtS,EAAEsS,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAIe,EAAE,YAAYR,EAAErS,EAAEqS,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGrS,EAAE,YAAY2S,EAAEpS,EAAEoS,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGgB,EAAE,YAAYX,EAAEnS,EAAEmS,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,IAAIc,EAAE,YAAYN,EAAEtS,EAAEsS,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGe,EAAE,YAAYR,EAAErS,EAAEqS,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGrS,EAAE,YAAY2S,EAAEpS,EAAEoS,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIgB,EAAE,YAAYX,EAAEV,EAAEU,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAG3M,EAAE,YAAYmN,EAAEb,EAAEa,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGiB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIvgB,EAAE,YAAY6gB,EAAEX,EAAEW,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIhgB,EAAE,YAAYqgB,EAAEV,EAAEU,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAG3M,EAAE,YAAYmN,EAAEb,EAAEa,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGiB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGvgB,EAAE,YAAY6gB,EAAEX,EAAEW,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIhgB,EAAE,YAAYqgB,EAAEV,EAAEU,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,IAAI3M,EAAE,WAAWmN,EAAEb,EAAEa,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGiB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGvgB,EAAE,YAAY6gB,EAAEX,EAAEW,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGhgB,EAAE,UAAUqgB,EAAEV,EAAEU,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAG3M,EAAE,YAAYmN,EAAEb,EAAEa,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAIiB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIvgB,EAAE,WAAW6gB,EAAEX,EAAEW,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGhgB,EAAE,YAAYqgB,EAAET,EAAES,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGkB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGmB,EAAE,YAAYZ,EAAEX,EAAEW,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIoB,EAAE,YAAYd,EAAEV,EAAEU,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGqB,EAAE,YAAYhB,EAAET,EAAES,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,IAAIkB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,GAAGmB,EAAE,YAAYZ,EAAEX,EAAEW,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,IAAIoB,EAAE,YAAYd,EAAEV,EAAEU,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGqB,EAAE,YAAYhB,EAAET,EAAES,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGkB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAImB,EAAE,YAAYZ,EAAEX,EAAEW,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGoB,EAAE,YAAYd,EAAEV,EAAEU,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,IAAIqB,EAAE,YAAYhB,EAAET,EAAES,EAAEC,EAAEC,EAAEC,EAAEC,EAAET,EAAE,GAAGkB,EAAE,YAAYV,EAAEZ,EAAEY,EAAEH,EAAEC,EAAEC,EAAEE,EAAET,EAAE,IAAImB,EAAE,YAAYZ,EAAEX,EAAEW,EAAEC,EAAEH,EAAEC,EAAEG,EAAET,EAAE,GAAGoB,EAAE,WAAWd,EAAEV,EAAEU,EAAEC,EAAEC,EAAEH,EAAEI,EAAET,EAAE,GAAGqB,EAAE,YAAYhB,EAAErB,EAAEqB,EAAEJ,GAAGK,EAAEtB,EAAEsB,EAAEJ,GAAGK,EAAEvB,EAAEuB,EAAEJ,GAAGK,EAAExB,EAAEwB,EAAEJ,EAAI,IAAIrgB,GAAE+f,EAAEO,GAAGP,EAAEQ,GAAGR,EAAES,GAAGT,EAAEU,EAAG,OAAOzgB,GAAEuhB,cACp4H,OAAOvN,KAAInM,KAAK0Z,iBAGlB5D,OAAOhT,UAAU6W,WAAa,WAC5B,MAAO3Z,MAAK4H,OAAO,GAAGgS,cAAgB5Z,KAAK6Z,MAAM,IAGnD/D,OAAOhT,UAAUgX,OAAS,WACtB,GAAIC,SACAC,KAAOha,KAAK2H,MAAM,IAgBtB,OAfmB,IAAfqS,KAAK3hB,OACL0hB,QAAU,GAAI1U,MAAK2U,KAAK,GAAIA,KAAK,GAAK,EAAGA,KAAK,KAE9CA,KAAOha,KAAK2H,MAAM,KACC,GAAfqS,KAAK3hB,OACL0hB,QAAU,GAAI1U,MAAK2U,KAAK,GAAIA,KAAK,GAAK,EAAGA,KAAK,IAE3B,GAAfha,KAAK3H,SACL0hB,QAAU,GAAI1U,MAAKrF,KAAKkM,UAAU,EAAG,GAClBlM,KAAKkM,UAAU,EAAG,GAAK,EACvBlM,KAAKkM,UAAU,EAAG,MAK1C6N,SAGXjE,OAAOhT,UAAUmX,WAAa,SAASC,MAAOC,SAC1C,GAAIC,WAAYpa,KAGZ2X,EAAI,KAAMxf,EAAI+hB,MAAOb,EAAIc,OAkB7B,OAjBID,OAAQ,KACRvC,EAAI,KACJxf,EAAI+hB,MAAQ,IAEF,GAAVC,UACAd,EAAI,IAAMc,SAIdC,UAAYA,UAAU9hB,QAAQ,KAAc,GAAR4hB,MAAa,IAAMA,MAAQA,OAE/DE,UAAYA,UAAU9hB,QAAQ,KAAU,GAAJH,EAAS,IAAMA,EAAIA,GAEvDiiB,UAAYA,UAAU9hB,QAAQ,KAAM+gB,GAEpCe,UAAYA,UAAU9hB,QAAQ,KAAMqf,IAKxCtS,KAAKvC,UAAUuX,SAAW,SAASC,WAC/B,GAAI9E,SAEA+E,KAAOva,KAAKyF,UACZ+U,KAAOF,UAAU7U,SACrB,IAAI8U,KAAOC,KAAM,CACb,GAAIC,KAAMF,IACVA,MAAOC,KACPA,KAAOC,IAIX,IAAK,GADDC,SAAUnV,KAAKoV,OAAOH,KAAOD,MAAQ,OAAY,EAC5CpiB,EAAI,EAAOuiB,QAAJviB,EAAaA,IAAK,CAC9B,GAAI4hB,SAAU,GAAI1U,KAClB0U,SAAQa,QAAQL,KAAY,MAAJpiB,GACxBqd,KAAK/X,KAAKsc,SAGd,MAAOvE,OAGXM,OAAOhT,UAAU+X,aAAe,WAC9B,GAAIC,SAAU,6LACd,OAAOA,SAAQC,KAAK/a,OAGtB8V,OAAOhT,UAAUkY,gBAAkB,WAKjC,IAAK,GAJDC,aAAe,IAAO,MAAO,IAAO,IAAO,MAAO,IAAO,IAAQ,IAAQ,IAAQ,IAAQ,OACzFC,UAAe,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAEzFd,UAAYpa,KACP7H,EAAI,EAAGA,EAAI8iB,WAAW5iB,OAAQF,IAAK,CAC1C,GAAIgjB,IAAK,GAAIC,QAAOH,WAAW9iB,GAAI,IACnCiiB,WAAYA,UAAU9hB,QAAQ6iB,GAAID,SAAS/iB,IAO7C,MAJI,OAAO4iB,KAAKX,aACdA,UAAY,IAAMA,WAGbA,WAGTtE,OAAOhT,UAAUuY,aAAe,WAC9B,GAAIC,SASJ,OAPEA,UADU,iBAARtb,KACS,KACI,gBAARA,KACI,GAE2B,GAA3BxC,SAASwC,KAAK6H,OAAO,KAMpCxC,KAAKvC,UAAUyY,oBAAsB,SAASC,WAC1C,GAAIC,OAAQ,IAAMzb,KAAK0b,WAAa,GAChCzG,IAAM,GAAKjV,KAAK2b,UAChBC,KAAO5b,KAAK6b,SAahB,OAZW,KAAPD,OACAA,KAAO,IAAMA,KAAO,OACJ,GAAhBH,MAAMpjB,SACNojB,MAAQ,IAAMA,OACA,GAAdxG,IAAI5c,SACJ4c,IAAM,IAAMA,KAEC,KAAbuG,UACAM,IAAMF,KAAO,IAAMH,MAAQ,IAAMxG,IAEjC6G,IAAM7G,IAAM,IAAMwG,MAAQ,IAAMG,KAE7BE,KAGXzW,KAAKvC,UAAUiZ,QAAU,SAASrB,SAC9B,GAAIsB,cAAehc,KAAKyF,SACxBuW,eAAgB,MAAWtB,QAC3B1a,KAAK4a,QAAQoB,eAGjB3W,KAAKvC,UAAUmZ,SAAW,SAASC,UACjC,GAAIF,cAAehc,KAAKyF,SACxBuW,eAAgB,KAAUE,SAC1Blc,KAAK4a,QAAQoB,eAGf3W,KAAKvC,UAAUqZ,WAAa,SAASC,YACnC,GAAIJ,cAAehc,KAAKyF,SACxBuW,eAAgB,IAAQI,WACxBpc,KAAK4a,QAAQoB,eAGf3W,KAAKvC,UAAUuZ,WAAa,WACxB,GAAIA,YAAa,GAAIhX,MAAKrF,KAAKyF,UAM/B,OALA4W,YAAWC,SAAS,GACpBD,WAAWE,WAAW,GACtBF,WAAWG,WAAW,GACtBH,WAAWI,gBAAgB,GAEpBJ,YAGXhX,KAAKvC,UAAU4Z,YAAc,WACzB,GAAIC,QAASC,eAAiB5c,KAAK6c,QAC/BF,QAAS,IACTA,QAAU,EAEd,IAAID,aAAc1c,KAAKqc,YAIvB,OAHAK,aAAYJ,SAAS,IACrBI,YAAYX,QAAQY,QAEbD,aAGXrX,KAAKvC,UAAUga,UAAY,WACvB,GAAIA,WAAY9c,KAAK0c,aAQrB,OAPAI,WAAUf,QAAQ,GAElBe,UAAUR,SAAS,IACnBQ,UAAUP,WAAW,IACrBO,UAAUN,WAAW,IACrBM,UAAUL,gBAAgB,KAEnBK,WAIXzX,KAAKvC,UAAUia,aAAe,WAC1B,GAAI3C,WAAYpa,KAAK6b,SACL,KAAZzB,YAAkBA,WAAa,KACnC,IAAIqB,OAAQ,IAAMzb,KAAK0b,WAAa,EAChB,IAAhBD,MAAMpjB,SACNojB,MAAQ,IAAMA,OAClBrB,WAAaqB,KACb,IAAIxG,KAAM,GAAKjV,KAAK2b,SAKpB,OAJkB,IAAd1G,IAAI5c,SACJ4c,IAAM,IAAMA,KAChBmF,WAAanF,KAMjB5P,KAAKvC,UAAUka,cAAgB,WAC3B,GAAI5C,WAAYpa,KAAKid,WAAa,IAIlC,OAHwB,IAApB7C,UAAU/hB,SACV+hB,UAAY,IAAMA,WAEfA","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', ['ngMaterial'])\n .value('sgSettings', {\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 configure.$inject = ['$mdThemingProvider'];\n function configure($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 // .primaryColor will soon be deprecated in favor of primaryPalette (already on dev builds https://groups.google.com/forum/m/#!topic/ngmaterial/-sXR8CYBMPg)\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('sogo-paper', {\n 'default': '100',\n 'hue-1': '200',\n 'hue-2': '50',\n 'hue-3': '500'\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 * 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.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=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 replace: true,\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\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 if (email && !vm.url) {\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\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(function() {\n scope.$eval(attrs.sgEnter);\n });\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 /* 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 (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 = ['folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController(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\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgTarget - Replace target for in DOM.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgTarget - the expression to process\n * @ngInject\n * @example:\n\n
    \n */\n function sgTarget() {\n return {\n priority: 1,\n restrict: 'A',\n link: sgTargetLink\n };\n\n function sgTargetLink(scope, element, attrs) {\n console.log(\"sgTargetLink...\");\n\n var ensureTargetRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-target expression for changes\n return scope.$eval(attrs.sgTarget);\n },\n function(value) {\n \n var onAnchorClick = function (event) {\n if (this.href)\n window.open(this.href);\n if (event) {\n if (event.preventDefault)\n event.preventDefault(); // W3C DOM\n else\n event.returnValue = false; // IE\n }\n };\n //var anchors = angular.element(value)[0].getElementsByTagName('a');\n //for (var i = 0; i < anchors.length; i++) {\n //var anchor = angular.element(anchors[i]);\n // if (!anchor.href && anchor.readAttribute(\"moz-do-not-send\")) {\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // anchor.removeClassName(\"moz-txt-link-abbreviated\");\n // anchor.href = \"mailto:\" + anchors[i].innerHTML;\n // }\n // if (anchor.href.substring(0,7) == \"mailto:\") {\n // anchor.observe(\"click\", onEmailTo);\n // if (typeof onEmailAddressClick == 'function')\n // anchor.observe(\"contextmenu\", onEmailAddressClick);\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // }\n // els\n //if (!anchor.id)\n // anchor.observe(\"click\", onAnchorClick);\n //}\n\n element.html(value);\n ensureTargetRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgTarget', sgTarget);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgToggleGrid - Convert the tiles of a grid to toggle buttons\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgToggleGrid - the model of the source objects\n * @param {string} [sgToggleGridAttr] - the attribute that specifies if an object is enabled (toggled)\n * @ngInject\n * @example:\n\n ..\n */\n sgToggleGrid.$inject = ['$parse'];\n function sgToggleGrid($parse) {\n return {\n restrict: 'A',\n link: link\n };\n\n function link(scope, iElement, attrs, ctrl) {\n var tiles = iElement.find('md-grid-tile'),\n tile,\n i,\n modelDays,\n modelAttr,\n ensureInitRunsOnce,\n toggleClass;\n\n ensureInitRunsOnce = scope.$watch(function() {\n // Parse attribute until it returns a valid object\n return $parse(attrs.sgToggleGrid)(scope);\n }, function(days) {\n if (angular.isDefined(days)) {\n var flattenedDays = days;\n modelDays = days;\n if (attrs.sgToggleGridAttr) {\n modelAttr = attrs.sgToggleGridAttr;\n flattenedDays = _.pluck(days, attrs.sgToggleGridAttr);\n }\n _.each(tiles, function(o) {\n var tile = angular.element(o);\n if (_.contains(flattenedDays, tile.attr('value'))) {\n tile.addClass('sg-active');\n }\n });\n ensureInitRunsOnce();\n }\n });\n\n toggleClass = function() {\n // Toggle class on click event and call toggle function\n var tile = angular.element(this),\n day = tile.attr('value');\n tile.toggleClass('sg-active');\n toggle(day);\n };\n\n for (i = 0; i < tiles.length; i++) {\n tile = angular.element(tiles[i]);\n tile.addClass('iconButton');\n tile.find('figure').addClass('md-icon');\n tile.on('click', toggleClass);\n }\n\n function toggle(day) {\n var i = _.findIndex(modelDays, function(o) {\n if (modelAttr)\n return o[modelAttr] == day;\n else\n return o == day;\n });\n if (i < 0) {\n if (modelAttr) {\n var o = {};\n o[modelAttr] = day;\n modelDays.push(o);\n }\n else\n modelDays.push(day);\n }\n else\n modelDays.splice(i, 1);\n }\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgToggleGrid', sgToggleGrid);\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Common.js","sources":["Common/utils.js","Common/Common.app.js","Common/decodeUri.filter.js","Common/encodeUri.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/sgSearch.directive.js","Common/sgSubscribe.directive.js","Common/sgTarget.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js"],"names":["l","key","arguments","value","labels","clabels","i","j","length","replace","configure","$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","angular","module","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","decodeUri","$window","decodeURIComponent","filter","encodeUri","encodeURIComponent","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","$log","sgConstant","sgSettings","Alarm","currentDay","window","get","success","secondsBeforeTomorrow","toggleLeft","toggle","debug","toggleRight","openBottomSheet","show","parent","element","document","getElementById","templateUrl","toggleDetailView","detail","toggleClass","$watch","newVal","isGtMedium","getAlarms","Acl","folderId","factory","$q","Settings","Resource","extend","$$resource","$User","prototype","$users","_this","deferred","defer","resolve","promise","fetch","response","forEach","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","pluck","userClass","isGroup","reject","splice","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","save","$shadowRights","copy","rights","uids","join","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","position","hideDelay","template","summary","locals","Authentication","readCookie","name","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","title","content","confirm","options","prompt","label","PromptDialogController","o","body","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","index","compareUids","find","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","bindToController","controllerAs","sgAvatarImageController","$element","attributes","directive","sgColorPicker","$parse","link","iElement","iAttr","doSelect","attr","sgColorPickerController","sgColors","colors","select","color","sgCompile","$compile","sgCompileLink","attrs","ensureCompileRunsOnce","$eval","html","contents","sgEnter","ENTER_KEY","event","which","$apply","preventDefault","sgEscape","ESCAPE_KEY","elem","keyCode","sgFocusOn","$on","e","focus","sgFolderStylesheet","require","ngModel","sgSearchPreTransclude","compile","tElement","tAttr","inputEl","selectEl","buttonEl","removeAttr","compiledButtonEl","doSearch","on","cancelSearch","priority","sgSearch","transclude","clone","append","sgSearchController","previous","searchField","searchTextOptions","updateOn","debounce","blur","onChange","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","sgSubscribeController","selectFolder","folderData","sgTarget","sgTargetLink","console","log","ensureTargetRunsOnce","timePaneDirective","TimePaneCtrl","controllers","ngModelCtrl","sgTimePaneCtrl","timePaneElement","configureNgModel","$attrs","$animate","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil","m","querySelector","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_CLASS2","FOCUSED_TIME_CLASS","$render","changeSelectedTime","$viewValue","date","previousSelectedTime","changeDisplayTime","prevH","getHours","prevHCell","classList","setAttribute","prevM","getMinutes","prevMCell","prevM5Cell","mCell","newH","hCell","add","newM","isValidDate","buildInitialTimePaneDisplay","today","handleKeyEvent","ESCAPE","TAB","$emit","ENTER","mode","changed","$setViewValue","opt_date","previousFocus","timePickerDirective","placeholder","TimePickerCtrl","mdTimePickerCtrl","$$rAF","dateLocale","inputElement","inputContainer","timePane","timeButton","inputMask","isFocused","isDisabled","setDisabled","disabled","isTimeOpen","timePaneOpenedFrom","nextUid","bodyClickHandler","handleBodyClick","installPropertyInterceptors","attachChangeListeners","attachInteractionListeners","detachTimePane","EXTRA_INPUT_SIZE","INVALID_CLASS","DEFAULT_DEBOUNCE_INTERVAL","time","formatTime","resizeInputElement","t","h","closeTimePane","ngElement","handleInputEvent","keyCodes","altKey","DOWN_ARROW","openTimePane","$digest","ngDisabled","Object","defineProperty","set","inputString","arr","isDate","attachTimePane","addClass","elementRect","getBoundingClientRect","bodyRect","style","left","top","appendChild","width","removeClass","parentNode","removeChild","target","focusTime","disableScrollAround","nextTick","addEventListener","enableScrolling","removeEventListener","getTimePaneCtrl","ctrl","setFocused","isInTime","getClosest","sgToggleGrid","day","findIndex","modelDays","modelAttr","tile","ensureInitRunsOnce","tiles","days","isDefined","flattenedDays","sgToggleGridAttr","contains","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', ['ngMaterial'])\n .value('sgSettings', {\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 configure.$inject = ['$mdThemingProvider'];\n function configure($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 // .primaryColor will soon be deprecated in favor of primaryPalette (already on dev builds https://groups.google.com/forum/m/#!topic/ngmaterial/-sXR8CYBMPg)\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('sogo-paper', {\n 'default': '100',\n 'hue-1': '200',\n 'hue-2': '50',\n 'hue-3': '500'\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 * 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.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=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 replace: true,\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\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 if (email && !vm.url) {\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\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(function() {\n scope.$eval(attrs.sgEnter);\n });\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 /* 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 (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 = ['folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController(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\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgTarget - Replace target for
    in DOM.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgTarget - the expression to process\n * @ngInject\n * @example:\n\n
    \n */\n function sgTarget() {\n return {\n priority: 1,\n restrict: 'A',\n link: sgTargetLink\n };\n\n function sgTargetLink(scope, element, attrs) {\n console.log(\"sgTargetLink...\");\n\n var ensureTargetRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-target expression for changes\n return scope.$eval(attrs.sgTarget);\n },\n function(value) {\n \n var onAnchorClick = function (event) {\n if (this.href)\n window.open(this.href);\n if (event) {\n if (event.preventDefault)\n event.preventDefault(); // W3C DOM\n else\n event.returnValue = false; // IE\n }\n };\n //var anchors = angular.element(value)[0].getElementsByTagName('a');\n //for (var i = 0; i < anchors.length; i++) {\n //var anchor = angular.element(anchors[i]);\n // if (!anchor.href && anchor.readAttribute(\"moz-do-not-send\")) {\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // anchor.removeClassName(\"moz-txt-link-abbreviated\");\n // anchor.href = \"mailto:\" + anchors[i].innerHTML;\n // }\n // if (anchor.href.substring(0,7) == \"mailto:\") {\n // anchor.observe(\"click\", onEmailTo);\n // if (typeof onEmailAddressClick == 'function')\n // anchor.observe(\"contextmenu\", onEmailAddressClick);\n // anchor.writeAttribute(\"moz-do-not-send\", false);\n // }\n // els\n //if (!anchor.id)\n // anchor.observe(\"click\", onAnchorClick);\n //}\n\n element.html(value);\n ensureTargetRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgTarget', sgTarget);\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 '{{hour.displayName}}'+\n '
    ' +\n '
    ' +\n '
    ' +\n '{{minute.displayName}}'+\n '
    ' +\n '
    ' +\n '
    ' +\n '{{minute.displayName}}' +\n '
    ' +\n '
    ',\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 console.log(element);\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-calendar-selected-date';\n //var SELECTED_TIME_CLASS1 = 'md-raised';\n var SELECTED_TIME_CLASS2 = 'md-primary';\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).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).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 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 = new Date(date);\n this.changeDisplayTime(date).then(function() {\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_CLASS2);\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_CLASS2);\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_CLASS2);\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 d = new Date(date);\n var newH = d.getHours();\n var mCell, hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(SELECTED_TIME_CLASS2);\n hCell.setAttribute('aria-selected', 'true');\n }\n var newM = d.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_CLASS2);\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_CLASS2);\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 //'' +\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 '
    ' +\n '
    ' +\n '
    ' +\n '' +\n '
    ' +\n '
    ',\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 * Controller for sg-timepicker.\n *\n * ngInject @constructor\n */\n function TimePickerCtrl($scope, $element, $attrs, $compile, $timeout, $mdConstant, $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.$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 /** @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 // 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\", \"$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 var ngElement = angular.element(self.inputElement);\n ngElement.on('input', angular.bind(self, self.resizeInputElement));\n ngElement.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 angular.element(self.inputElement).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 this.$element.scope().$watch(this.$attrs.ngDisabled, function(isDisabled) {\n self.setDisabled(isDisabled);\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 if(arr.length < 2) {return;}\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 // If there's an input string, it's an invalid time.\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\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\n var elementRect = this.inputContainer.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n\n timePane.style.left = (elementRect.left - bodyRect.left) + 'px';\n timePane.style.top = (elementRect.top - bodyRect.top) + '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 flowing, 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.timePane.classList.remove('md-pane-open');\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 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.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){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.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"]}(),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 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.selectedFolder=stateAddressbook,vm.selectCard=selectCard,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(folder){vm.editMode=!1,AddressBook.$query.value="",$state.go("app.addressbook",{addressbookId:folder.id})}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 4c7382628..24ab62e4d 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","$state","$timeout","$mdDialog","focus","Dialog","Settings","selectCard","go","id","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","selected","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","this","AddressBooksController","$mdToast","FileUploader","User","select","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","length","$rename","confirmDelete","service","isSubscription","$delete","importCards","$event","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","o","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","push","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', 'SOGo.Common', '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('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', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $state, $timeout, $mdDialog, focus, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\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.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 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\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.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 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","$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","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","selected","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","$event","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","AddressBooksController","$mdToast","FileUploader","User","select","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","$rename","confirmDelete","service","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.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\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 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 diff --git a/UI/WebServerResources/js/Contacts.services.js b/UI/WebServerResources/js/Contacts.services.js index 1910b14c0..1dbb30fd4 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==search)return AddressBook.$q.when(AddressBook.$cards);return AddressBook.$query=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.$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.$$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.$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(){var _this=this;return this.$startRefreshTimeout(),AddressBook.$$resource.fetch(this.id,"view").then(function(response){var index,card,results=response.cards,cards=_this.cards,compareIds=function(data){return this.id==data.id};for(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);cards.splice(index,0,card)}}),cards})},AddressBook.prototype.$filter=function(search,options,excludedCards){var _this=this;return 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 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]))}),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){return this.$id().then(function(addressbookId){return AddressBook.$Card.$find(addressbookId,cardId)})},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})},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.org&&description.push(this.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"])}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==search)return AddressBook.$q.when(AddressBook.$cards);return AddressBook.$query=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.$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 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.org&&description.push(this.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 c9ac6b12a..955d1a129 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","$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","cards","isOwned","isSuperUser","owner","login","$id","$futureAddressBookData","$selectedCount","count","selected","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","$reload","timeInterval","$filter","dry","oldIndex","removedCards","findIndex","$rename","$save","$delete","promise","d","defer","remove","resolve","status","reject","$deleteCards","uids","map","post","difference","$copyCards","folder","save","$omit","$getCard","cardId","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","$futureCardData","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","org","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 == search) {\n // Query hasn't changed\n return AddressBook.$q.when(AddressBook.$cards);\n }\n AddressBook.$query = 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 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.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\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.$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\n return AddressBook.$$resource.fetch(this.id, 'view')\n .then(function(response) {\n var index, card,\n results = response.cards,\n cards = _this.cards,\n compareIds = function(data) {\n return this.id == data.id;\n };\n\n // Remove cards that no longer exist\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\n // Add new cards\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(cards, compareIds, data))) {\n var card = new AddressBook.$Card(data);\n cards.splice(index, 0, card);\n }\n });\n\n return cards;\n });\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 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 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 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 return this.$id().then(function(addressbookId) {\n return AddressBook.$Card.$find(addressbookId, cardId);\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 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.org) description.push(this.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;\n\n // Resolve the promise\n this.$futureCardData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n Card.$timeout(function() {\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 });\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","$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","org","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":"CAEA,WACE,YAOA,SAASA,aAAYC,uBAEnB,GAA0C,kBAA/BA,uBAAsBC,KAE/B,GADAC,KAAKC,KAAKH,uBACNE,KAAKE,OAASF,KAAKG,GAAI,CAEzB,GAAIC,oBAAqBP,YAAYQ,WAAWC,OAAO,eAAgBN,KAAKE,KAC5EF,MAAKO,QAAQH,wBAENJ,MAAKG,KACZH,KAAKQ,KAAO,GAAIX,aAAYY,MAAM,YAAcT,KAAKG,SAKvDH,MAAKO,QAAQT,uBASjBD,YAAYa,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,OAAQ,MAAO,cAAe,SAASC,GAAIC,SAAUC,KAAMC,SAAUC,SAAUC,KAAMC,IAAKC,aAqBpK,MApBAC,SAAQC,OAAOvB,aACbc,GAAIA,GACJC,SAAUA,SACVC,KAAMA,KACNR,WAAY,GAAIU,UAASD,SAASO,WAAW,aAAe,WAAYP,SAASO,cACjFC,MAAON,KACPP,MAAOQ,IACPM,aAAcL,YACdM,QAASC,OAAQ,kBAAmBC,MAAO,GAAIC,KAAM,OAAQC,IAAK,GAClEP,WAAYP,SAASO,aACrBQ,eAAgB,KAChBC,gBAAiB,OAGnBZ,YAAYa,QAAQhC,KAAK,WACnBmB,YAAYc,SAASC,QAAQC,eAC/BrC,YAAY2B,OAAOG,KAAOT,YAAYc,SAASC,QAAQC,aAAa,GACpErC,YAAY2B,OAAOI,IAAMO,SAASjB,YAAYc,SAASC,QAAQC,aAAa,OAGzErC,aAOT,KACEsB,QAAQiB,OAAO,mBAEjB,MAAMC,GACJlB,QAAQiB,OAAO,mBAAoB,gBAErCjB,QAAQiB,OAAO,mBACZE,QAAQ,cAAezC,YAAYa,UAUtCb,YAAY0C,WAAa,SAASd,OAAQe,QAASC,eACjD,GAAIC,SAAUjB,OAAQA,OAEtB,KAAKA,OAGH,MADA5B,aAAY8C,UACL9C,YAAYc,GAAGiC,KAAK/C,YAAY8C,OAEzC,IAAIxB,QAAQ0B,YAAYhD,YAAY8C,QAElC9C,YAAY8C,cAET,IAAI9C,YAAY2B,QAAUC,OAE7B,MAAO5B,aAAYc,GAAGiC,KAAK/C,YAAY8C,OAMzC,OAJA9C,aAAY2B,OAASC,OAErBN,QAAQC,OAAOsB,OAAQF,SAEhB3C,YAAYQ,WAAWyC,MAAM,KAAM,mBAAoBJ,QAAQ3C,KAAK,SAASgD,UAClF,GAAIC,SAASC,KAAMC,MACfC,WAAa,SAASC,MACpB,MAAOpD,MAAKG,IAAMiD,KAAKjD,GAY7B,KARE6C,QAFEP,cAEQY,EAAEC,OAAOP,SAASQ,SAAU,SAASH,MAC7C,MAAOC,GAAER,YAAYQ,EAAEG,KAAKf,cAAeU,WAAYC,SAI/CL,SAASQ,SAGhBL,MAAQrD,YAAY8C,OAAOc,OAAS,EAAGP,OAAS,EAAGA,QACtDD,KAAOpD,YAAY8C,OAAOO,OACtBG,EAAER,YAAYQ,EAAEG,KAAKR,QAASG,WAAYF,QAC5CpD,YAAY8C,OAAOe,OAAOR,MAAO,EAUrC,OANAG,GAAEM,KAAKX,QAAS,SAASI,KAAMF,OAC7B,GAAIG,EAAER,YAAYQ,EAAEG,KAAK3D,YAAY8C,OAAQQ,WAAYC,OAAQ,CAC/D,GAAIH,MAAO,GAAIpD,aAAYyB,MAAM8B,KAAM3B,OACvC5B,aAAY8C,OAAOe,OAAOR,MAAO,EAAGD,SAGjCpD,YAAY8C,UASvB9C,YAAY+D,KAAO,SAASC,aAE1B,GAAIC,MAAMC,QAASC,CAEnBF,MAAOD,YAAYI,eAAgBjE,KAAKkE,eAAiBlE,KAAKmE,cAC9DJ,QAAUV,EAAEG,KAAKM,KAAM,SAASM,GAC9B,MAA0B,YAAlBP,YAAY1D,IACH,YAARiE,EAAEjE,IACyC,IAA3CiE,EAAElE,KAAKmE,cAAcR,YAAY3D,QAE5C8D,EAAID,QAAUV,EAAEiB,QAAQjB,EAAEkB,MAAMT,KAAM,MAAOC,QAAQ5D,IAAM,EAC3D2D,KAAKJ,OAAOM,EAAG,EAAGH,cASpBhE,YAAY2E,SAAW,SAASpB,MAC9B,GAAIqB,OAAQzE,IAgBZ,OAfIoD,QACFpD,KAAKmE,iBACLnE,KAAKkE,kBACLlE,KAAK0E,YAELvD,QAAQwD,QAAQvB,KAAM,SAASgB,EAAGJ,GAChC,GAAIH,aAAc,GAAIhE,aAAYuE,EAC9BP,aAAYe,SACdH,MAAMC,SAASG,KAAKhB,aACbA,YAAYI,eACnBQ,MAAMP,eAAeW,KAAKhB,aAE1BY,MAAMN,cAAcU,KAAKhB,gBAGxBR,EAAEyB,MAAM9E,KAAKmE,cAAenE,KAAKkE,eAAgBlE,KAAK0E,WAS/D7E,YAAYkF,MAAQ,SAASC,eAC3B,GAAIlF,uBAAwBD,YAAY0B,aAAaQ,QAAQhC,KAAK,WAChE,MAAOF,aAAYQ,WAAWyC,MAAMkC,cAAe,OAAQnF,YAAY2B,SAEzE,OAAO,IAAI3B,aAAYC,wBAUzBD,YAAYoF,WAAa,SAASC,IAAKC,MACrC,GAAIV,OAAQzE,IACZ,OAAOH,aAAYQ,WAAW+E,aAAaF,KAAKpC,MAAMqC,KAAM,aAAapF,KAAK,SAASsF,iBACrF,GAAIxB,aAAc,GAAIhE,aAAYwF,gBAOlC,OANIhC,GAAER,YAAYQ,EAAEG,KAAKiB,MAAMP,eAAgB,SAASE,GACtD,MAAOA,GAAEjE,IAAMkF,gBAAgBlF,OAG/BN,YAAY+D,KAAKC,aAEZA,eAUXhE,YAAYyF,UAAUrF,KAAO,SAASmD,MACpCpD,KAAKuF,YAAa,EAClBvF,KAAK2C,UACL3C,KAAKwF,SACLrE,QAAQC,OAAOpB,KAAMoD,MAErBpD,KAAKyF,QAAU5F,YAAYwB,WAAWqE,aAAe1F,KAAK2F,OAAS9F,YAAYwB,WAAWuE,MAC1F5F,KAAKiE,gBAAkBjE,KAAK4E,UAAY5E,KAAK2F,OAAS9F,YAAYwB,WAAWuE,OAS/E/F,YAAYyF,UAAUO,IAAM,WAC1B,MAAI7F,MAAKG,GAEAN,YAAYc,GAAGiC,KAAK5C,KAAKG,IAIzBH,KAAK8F,uBAAuB/F,KAAK,SAAS8D,aAC/C,MAAOA,aAAY1D,MAWzBN,YAAYyF,UAAUS,eAAiB,WACrC,GAAIC,MAMJ,OAJAA,OAAQ,EACJhG,KAAKwF,QACPQ,MAAS3C,EAAEC,OAAOtD,KAAKwF,MAAO,SAASvC,MAAQ,MAAOA,MAAKgD,WAAcxC,QAEpEuC,OAQTnG,YAAYyF,UAAUY,qBAAuB,WAC3C,GAAIzB,OAAQzE,IAERH,aAAYiC,iBACdjC,YAAYe,SAASuF,OAAOtG,YAAYiC,iBAE1CjC,YAAY0B,aAAaQ,QAAQhC,KAAK,WAEpC,GAAIqG,kBAAmBvG,YAAY0B,aAAa8E,SAASC,oBACzD,IAAIF,kBAAwC,YAApBA,iBAAgC,CACtD,GAAIG,GAAIpF,QAAQqF,KAAK/B,MAAO5E,YAAYyF,UAAUmB,QAClD5G,aAAYiC,gBAAkBjC,YAAYe,SAAS2F,EAAmC,IAAhCH,iBAAiBM,oBAW7E7G,YAAYyF,UAAUmB,QAAU,WAI9B,MADAzG,MAAKkG,uBACElG,KAAK2G,WAWd9G,YAAYyF,UAAUqB,QAAU,SAASlF,OAAQe,QAASC,eACxD,GAAIgC,OAAQzE,IAIZ,OAFAA,MAAKuF,YAAa,EAEX1F,YAAY0B,aAAaQ,QAAQhC,KAAK,WAC3C,GAAIyC,UACFrB,QAAQC,OAAOvB,YAAY2B,OAAQgB,SAE/BA,QAAQoE,KAAK,CACf,IAAKnF,OAGH,MADAgD,OAAM9B,UACC9C,YAAYc,GAAGiC,KAAK6B,MAAM9B,OAE9B,IAAI9C,YAAY2B,OAAOE,OAASD,OAEnC,MAAO5B,aAAYc,GAAGiC,KAAK6B,MAAM9B,QAQvC,MAHIxB,SAAQ0F,UAAUpF,UACpB5B,YAAY2B,OAAOE,MAAQD,QAEtBgD,MAAMoB,MAAM9F,KAAK,SAASiF,eAC/B,MAAOnF,aAAYQ,WAAWyC,MAAMkC,cAAe,OAAQnF,YAAY2B,UACtEzB,KAAK,SAASgD,UACf,GAAIC,SAASwC,MAAOvC,KAAMC,MACtBC,WAAa,SAASC,MACpB,MAAOqB,OAAMtE,IAAMiD,KAAKjD,GAoB9B,KAfEqF,MAHEhD,SAAWA,QAAQoE,IAGbnC,MAAM9B,OAGN8B,MAAMe,MAIdxC,QAFEP,cAEQY,EAAEC,OAAOP,SAASyC,MAAO,SAASvC,MAC1C,MAAOI,GAAER,YAAYQ,EAAEG,KAAKf,cAAeU,WAAYF,SAI/CF,SAASyC,MAGhBtC,MAAQsC,MAAM/B,OAAS,EAAGP,OAAS,EAAGA,QACzCD,KAAOuC,MAAMtC,OACTG,EAAER,YAAYQ,EAAEG,KAAKR,QAASG,WAAYF,QAC5CuC,MAAM9B,OAAOR,MAAO,EAoBxB,OAhBAG,GAAEM,KAAKX,QAAS,SAASI,KAAMF,OAC7B,GAAIG,EAAER,YAAYQ,EAAEG,KAAKgC,MAAOrC,WAAYC,OAAQ,CAClD,GAAIH,MAAO,GAAIpD,aAAYyB,MAAM8B,KAAM3B,OACvC+D,OAAM9B,OAAOR,MAAO,EAAGD,SAI3BI,EAAEM,KAAKX,QAAS,SAASI,KAAMF,OAC7B,GAAI4D,UAAUC,YACVvB,OAAMtC,OAAO/C,IAAMiD,KAAKjD,KAC1B2G,SAAWzD,EAAE2D,UAAUxB,MAAOrC,WAAYC,MAC1C2D,aAAevB,MAAM9B,OAAOoD,SAAU,GACtCtB,MAAM9B,OAAOR,MAAO,EAAG6D,aAAa,OAGxCtC,MAAMc,YAAa,EACZC,WAYb3F,YAAYyF,UAAU2B,QAAU,SAAS/G,MACvC,GAAI8D,GAAIX,EAAEiB,QAAQjB,EAAEkB,MAAM1E,YAAYsE,cAAe,MAAOnE,KAAKG,GAIjE,OAHAH,MAAKE,KAAOA,KACZL,YAAYsE,cAAcT,OAAOM,EAAG,GACpCnE,YAAY+D,KAAK5D,MACVA,KAAKkH,SASdrH,YAAYyF,UAAU6B,QAAU,WAC9B,GAEIrD,MACAsD,QAHA3C,MAAQzE,KACRqH,EAAIxH,YAAYc,GAAG2G,OAoBvB,OAhBItH,MAAKiE,gBACPmD,QAAUvH,YAAYQ,WAAWyC,MAAM9C,KAAKG,GAAI,eAChD2D,KAAOjE,YAAYqE,iBAGnBkD,QAAUvH,YAAYQ,WAAWkH,OAAOvH,KAAKG,IAC7C2D,KAAOjE,YAAYsE,eAGrBiD,QAAQrH,KAAK,WACX,GAAIiE,GAAIX,EAAEiB,QAAQjB,EAAEkB,MAAMT,KAAM,MAAOW,MAAMtE,GAC7C2D,MAAKJ,OAAOM,EAAG,GACfqD,EAAEG,WACD,SAASpE,KAAMqE,QAChBJ,EAAEK,OAAOtE,QAEJiE,EAAED,SASXvH,YAAYyF,UAAUqC,aAAe,SAASnC,OAE5C,GAAIoC,MAAOvE,EAAEwE,IAAIrC,MAAO,SAASvC,MAAQ,MAAOA,MAAK9C,KACjDsE,MAAQzE,IAEZ,OAAOH,aAAYQ,WAAWyH,KAAK9H,KAAKG,GAAI,eAAgByH,KAAMA,OAAO7H,KAAK,WAC5E0E,MAAMe,MAAQnC,EAAE0E,WAAWtD,MAAMe,MAAOA,UAU5C3F,YAAYyF,UAAU0C,WAAa,SAASxC,MAAOyC,QACjD,GAAIL,MAAOvE,EAAEwE,IAAIrC,MAAO,SAASvC,MAAQ,MAAOA,MAAK9C,IACrD,OAAON,aAAYQ,WAAWyH,KAAK9H,KAAKG,GAAI,QAASyH,KAAMA,KAAMK,OAAQA,UAS3EpI,YAAYyF,UAAU4B,MAAQ,WAC5B,MAAOrH,aAAYQ,WAAW6H,KAAKlI,KAAKG,GAAIH,KAAKmI,SAASpI,KAAK,SAASqD,MACtE,MAAOA,SAUXvD,YAAYyF,UAAU8C,SAAW,SAASC,QACxC,GAAI5D,OAAQzE,IAEZ,OAAOA,MAAK6F,MAAM9F,KAAK,SAASiF,eAC9B,GAAIsD,UACAC,WAAalF,EAAEG,KAAKiB,MAAMe,MAAO,SAASpC,MACxC,MAAOiF,SAAUjF,KAAKjD,IAG5B,OAAIoI,aAAcA,WAAWC,gBAEpBD,YAETD,SAAWzI,YAAYyB,MAAMyD,MAAMC,cAAeqD,QAClDC,SAASzC,MAAM9F,KAAK,SAASsI,QAEvBE,YACFpH,QAAQC,OAAOmH,WAAYD,YAExBA,aAUXzI,YAAYyF,UAAU/E,QAAU,SAAST,uBACvC,GAAI2E,OAAQzE,IAGZA,MAAK8F,uBAAyBhG,sBAAsBC,KAAK,SAASqD,MAChE,MAAOvD,aAAYe,SAAS,WAqB1B,MAlBAO,SAAQwD,QAAQ9E,YAAY2E,WAAY,SAASJ,EAAGJ,GAC9CI,EAAEjE,IAAMiD,KAAKjD,IACfgB,QAAQC,OAAOqD,MAAOL,KAI1BK,MAAMxE,KAAKmD,MAEXjC,QAAQwD,QAAQF,MAAMe,MAAO,SAASpB,EAAGJ,GACvCS,MAAMe,MAAMxB,GAAK,GAAInE,aAAYyB,MAAM8C,KAGzCK,MAAMjE,KAAO,GAAIX,aAAYY,MAAM,YAAcgE,MAAMtE,IAEvDsE,MAAMyB,uBAENzB,MAAMc,YAAa,EAEZd,SAER,SAASrB,MACVqB,MAAMgE,SAAU,EACZtH,QAAQuH,SAAStF,OACnBvD,YAAYe,SAAS,WACnBO,QAAQC,OAAOqD,MAAOrB,WAY9BvD,YAAYyF,UAAU6C,MAAQ,WAC5B,GAAItE,eAQJ,OAPA1C,SAAQwD,QAAQ3E,KAAM,SAAS0B,MAAOiH,KACzB,eAAPA,KACO,SAAPA,KACU,KAAVA,IAAI,KACN9E,YAAY8E,KAAOjH,SAGhBmC,gBCxiBX,WACE,YAQA,SAAS7C,MAAK4H,eAAgBC,SAG5B,GAAmC,kBAAxBD,gBAAe7I,MAExB,GADAC,KAAKC,KAAK2I,eAAgBC,SACtB7I,KAAK8I,MAAQ9I,KAAKG,GAAI,CAGxB,GAAI4I,aAAc/H,KAAKX,WAAW2I,QAAQhJ,KAAK8I,IAC/C9I,MAAKO,QAAQwI,aACb/I,KAAKiJ,OAAQ,OAKfjJ,MAAKO,QAAQqI,gBAIjB5H,KAAKkI,YAAc,OAAQ,OAAQ,OAAQ,MAAO,SAClDlI,KAAKmI,cAAgB,OAAQ,OAAQ,QACrCnI,KAAKoI,YAAc,OAAQ,OAAQ,QACnCpI,KAAKqI,gBAAkB,OAAQ,QAO/BrI,KAAKN,UAAY,WAAY,aAAc,WAAY,cAAe,WAAY,SAASE,SAAUE,SAAUC,SAAUG,YAAaoI,UAapI,MAZAnI,SAAQC,OAAOJ,MACbX,WAAY,GAAIU,UAASD,SAASO,WAAW,aAAe,WAAYP,SAASO,cACjFT,SAAUA,SACV2I,UAAWD,WAGbpI,YAAYa,QAAQhC,KAAK,WACnBmB,YAAYmF,SAASmD,yBACvBxI,KAAKyI,YAAcvI,YAAYmF,SAASmD,0BAIrCxI,MAOT,KACEG,QAAQiB,OAAO,mBAEjB,MAAMC,GACJlB,QAAQiB,OAAO,mBAAoB,gBAErCjB,QAAQiB,OAAO,mBACZE,QAAQ,OAAQtB,KAAKN,UASxBM,KAAK+D,MAAQ,SAASC,cAAeqD,QACnC,GAAIO,gBAAiB5I,KAAKK,WAAWyC,OAAOkC,cAAeqD,QAAQqB,KAAK,KAAM,OAE9E,OAAIrB,QAAe,GAAIrH,MAAK4H,gBAErB5H,KAAK2I,kBAAkBf,iBAUhC5H,KAAK4I,iBAAmB,SAASC,OAC/B,GAAIC,IAAK,GAAIC,QAAOF,MAAO,IAC3B,OAAOxG,GAAEC,OAAOtC,KAAKyI,YAAa,SAASO,UACzC,MAA8B,IAAvBA,SAASvI,OAAOqI,OAS3B9I,KAAK2I,kBAAoB,SAASf,gBAChC,GAAIqB,cAYJ,OAVAA,YAAWzB,gBAAkBI,eAE7BA,eAAe7I,KAAK,SAASyF,OAC3BxE,KAAKJ,SAAS,WACZO,QAAQwD,QAAQa,MAAO,SAASpC,KAAMF,OACpC+G,WAAW7G,KAAKjD,IAAM,GAAIa,MAAKoC,YAK9B6G,YASTjJ,KAAKsE,UAAUrF,KAAO,SAASmD,KAAMyF,SACnC7I,KAAKkK,QACL/I,QAAQC,OAAOpB,KAAMoD,MAChBpD,KAAKmK,aACRnK,KAAKmK,WAAanK,KAAKoK,aACpBpK,KAAKqK,UACRrK,KAAKqK,QAAUrK,KAAKsK,gBAAgBzB,UACjC7I,KAAKuK,UACRvK,KAAKuK,QAAUvK,KAAKwK,OAASxJ,KAAKuI,UAAUvJ,KAAKsK,gBAAgBzB,SAAU,KAC7E7I,KAAKiG,UAAW,EAGhBjG,KAAKyK,MAAQ,KASfzJ,KAAKsE,UAAUO,IAAM,WACnB,MAAO7F,MAAKwI,gBAAgBzI,KAAK,SAASqD,MACxC,MAAOA,MAAKjD,MAShBa,KAAKsE,UAAU4B,MAAQ,WACrB,GAAIzC,OAAQzE,KACR0K,OAAS,eAIb,OAFwB,SAApB1K,KAAK2K,cAAwBD,OAAS,cAEnC1J,KAAKX,WAAW6H,MAAMlI,KAAK8I,IAAK9I,KAAKG,IAAM,SAASuJ,KAAK,KACpC1J,KAAKmI,SACHuC,OAAQA,SACnC3K,KAAK,SAASqD,MAGb,MADAqB,OAAMmG,YAAcnG,MAAM0D,OAAM,GACzB/E,QAIbpC,KAAKsE,UAAU6B,QAAU,SAAS0D,UAAW3H,OAC3C,MAAI2H,gBACE3H,MAAQ,IAAMlD,KAAK6K,WAAWpH,OAASP,MACzClD,KAAK6K,WAAWnH,OAAOR,MAAO,SAGvBlD,MAAK6K,YAIP7J,KAAKX,WAAWkH,QAAQvH,KAAK8I,IAAK9I,KAAKG,IAAIuJ,KAAK,OAI3D1I,KAAKsE,UAAU8E,UAAY,WACzB,GAA0BU,OAAtBC,GAAK/K,KAAKgL,MAAQ,EAsBtB,OArBkB,KAAdD,GAAGtH,SACLqH,SACI9K,KAAKiL,aAAejL,KAAKiL,YAAYxH,OAAS,GAChDqH,MAAMjG,KAAK7E,KAAKiL,aACdjL,KAAKkL,UAAYlL,KAAKkL,SAASzH,OAAS,GAC1CqH,MAAMjG,KAAK,OAAS7E,KAAKkL,SAAW,SAClClL,KAAKmL,MAAQnL,KAAKmL,KAAK1H,OAAS,GAClCqH,MAAMjG,KAAK7E,KAAKmL,MACdL,MAAMrH,OAAS,EACjBsH,GAAKD,MAAMpB,KAAK,KACT1J,KAAKoL,OAASpL,KAAKoL,MAAM3H,OAAS,EACzCsH,GAAK/K,KAAKoL,MAEHpL,KAAKqL,QAAUrL,KAAKqL,OAAO5H,OAAS,EAC3CsH,GAAK1H,EAAEG,KAAKxD,KAAKqL,OAAQ,SAASrH,GAAK,MAAmB,KAAZA,EAAEtC,QAAiBA,MAE1D1B,KAAKgL,MAAQhL,KAAKgL,KAAKvH,OAAS,IACvCsH,GAAK/K,KAAKgL,OAIPD,IAGT/J,KAAKsE,UAAUgG,aAAe,WAC5B,GAAIC,eAWJ,OAVIvL,MAAKwL,OAAOD,YAAY1G,KAAK7E,KAAKwL,OAClCxL,KAAKyL,MAAMF,YAAY1G,KAAK7E,KAAKyL,MACjCzL,KAAK0L,UAAY1L,KAAK0L,SAASjI,OAAS,GAC1CJ,EAAEsB,QAAQ3E,KAAK0L,SAAU,SAASC,MACb,KAAfA,KAAKjK,OACP6J,YAAY1G,KAAK8G,KAAKjK,SAExB1B,KAAK4L,KAAKL,YAAY1G,KAAK7E,KAAK4L,KAChC5L,KAAKuL,aAAaA,YAAY1G,KAAK7E,KAAKuL,aAErCA,YAAY7B,KAAK,OAU1B1I,KAAKsE,UAAUgF,gBAAkB,SAASzB,SACxC,GAAIgD,OAAO/B,EAyBX,OAxBIjB,WACFiB,GAAK,GAAIC,QAAOlB,QAAS,KACzBgD,MAAQxI,EAAEG,KAAKxD,KAAKqL,OAAQ,SAASjH,GACnC,MAAO0F,IAAGgC,KAAK1H,EAAE1C,UAGjBmK,MACFA,MAAQA,MAAMnK,OAGdmK,MAAQxI,EAAEG,KAAKxD,KAAKqL,OAAQ,SAASjH,GACnC,MAAiB,QAAVA,EAAE2H,OAGTF,MADEA,MACMA,MAAMnK,MAEP1B,KAAKqL,QAAUrL,KAAKqL,OAAO5H,OAC1BzD,KAAKqL,OAAO,GAAG3J,MAGf,IAILmK,OAST7K,KAAKsE,UAAU0G,aAAe,SAASnD,SACrC,GAAIoD,UAAWjM,KAAKoK,YAChByB,MAAQ7L,KAAKsK,gBAAgBzB,QAGjC,OAFIgD,QAASA,OAASI,WACpBA,UAAY,KAAOJ,MAAQ,KACtBI,UAQTjL,KAAKsE,UAAU4G,UAAY,WACzB,MAAIlM,MAAKmM,UACCnM,KAAKmM,SAASC,cAAepM,KAAKmM,SAASE,WAAa,EAAGrM,KAAKmM,SAASG,WAAW5C,KAAK,KAE5F,IAGT1I,KAAKsE,UAAUiH,QAAU,WACvB,MAA2B,SAApBvM,KAAK2K,aAGd3J,KAAKsE,UAAUkH,QAAU,WACvB,MAA2B,SAApBxM,KAAK2K,aAGd3J,KAAKsE,UAAUmH,YAAc,SAASC,SACpC,GAAIvL,QAAQ0B,YAAY7C,KAAK0L,UAC3B1L,KAAK0L,WAAahK,MAAOgL,cAEtB,CACH,IAAK,GAAI1I,GAAI,EAAGA,EAAIhE,KAAK0L,SAASjI,QAC5BzD,KAAK0L,SAAS1H,GAAGtC,OAASgL,QADU1I,KAKtCA,GAAKhE,KAAK0L,SAASjI,QACrBzD,KAAK0L,SAAS7G,MAAMnD,MAAOgL,UAE/B,MAAO1M,MAAK0L,SAASjI,OAAS,GAGhCzC,KAAKsE,UAAUqH,aAAe,SAAS3C,UACrC,GAAI7I,QAAQ0B,YAAY7C,KAAK4M,YAC3B5M,KAAK4M,aAAelL,MAAOsI,eAExB,CACH,IAAK,GAAIhG,GAAI,EAAGA,EAAIhE,KAAK4M,WAAWnJ,QAC9BzD,KAAK4M,WAAW5I,GAAGtC,OAASsI,SADUhG,KAKxCA,GAAKhE,KAAK4M,WAAWnJ,QACvBzD,KAAK4M,WAAW/H,MAAMnD,MAAOsI,aAInChJ,KAAKsE,UAAUuH,UAAY,SAASd,MAOlC,MANI5K,SAAQ0B,YAAY7C,KAAKqL,QAC3BrL,KAAKqL,SAAWU,KAAMA,KAAMrK,MAAO,KAE5B2B,EAAER,YAAYQ,EAAEG,KAAKxD,KAAKqL,OAAQ,SAASrH,GAAK,MAAmB,KAAZA,EAAEtC,UAChE1B,KAAKqL,OAAOxG,MAAMkH,KAAMA,KAAMrK,MAAO,KAEhC1B,KAAKqL,OAAO5H,OAAS,GAG9BzC,KAAKsE,UAAUwH,UAAY,SAASf,MAOlC,MANI5K,SAAQ0B,YAAY7C,KAAK+M,QAC3B/M,KAAK+M,SAAWhB,KAAMA,KAAMrK,MAAO,KAE5B2B,EAAER,YAAYQ,EAAEG,KAAKxD,KAAK+M,OAAQ,SAAS/I,GAAK,MAAmB,KAAZA,EAAEtC,UAChE1B,KAAK+M,OAAOlI,MAAMkH,KAAMA,KAAMrK,MAAO,KAEhC1B,KAAK+M,OAAOtJ,OAAS,GAG9BzC,KAAKsE,UAAU0H,QAAU,SAASjB,KAAMkB,KAOtC,MANI9L,SAAQ0B,YAAY7C,KAAKkN,MAC3BlN,KAAKkN,OAASnB,KAAMA,KAAMrK,MAAOuL,MAE1B5J,EAAER,YAAYQ,EAAEG,KAAKxD,KAAKkN,KAAM,SAASlJ,GAAK,MAAOA,GAAEtC,OAASuL,QACvEjN,KAAKkN,KAAKrI,MAAMkH,KAAMA,KAAMrK,MAAOuL,MAE9BjN,KAAKkN,KAAKzJ,OAAS,GAG5BzC,KAAKsE,UAAU6H,YAAc,SAASpB,KAAMqB,WAAYC,OAAQC,QAASC,SAAUC,OAAQC,QAASC,YAalG,MAZIvM,SAAQ0B,YAAY7C,KAAK2N,WAC3B3N,KAAK2N,YAAc5B,KAAMA,KAAMqB,WAAYA,WAAYC,OAAQA,OAAQC,QAASA,QAASC,SAAUA,SAAUC,OAAQA,OAAQC,QAASA,QAASC,WAAYA,aAEnJrK,EAAEG,KAAKxD,KAAK2N,UAAW,SAAS3J,GACxC,MAAOA,GAAEqJ,QAAUA,QACjBrJ,EAAEsJ,SAAWA,SACbtJ,EAAEuJ,UAAYA,UACdvJ,EAAEyJ,SAAWA,SACbzJ,EAAE0J,YAAcA,cAElB1N,KAAK2N,UAAU9I,MAAMkH,KAAMA,KAAMqB,WAAYA,WAAYC,OAAQA,OAAQC,QAASA,QAASC,SAAUA,SAAUC,OAAQA,OAAQC,QAASA,QAASC,WAAYA,aAExJ1N,KAAK2N,UAAUlK,OAAS,GAGjCzC,KAAKsE,UAAUsI,WAAa,SAAS/B,OACnC,GACI7H,GADAf,KAAO,GAAIjC,OAAM6K,MAAOA,MAAOR,SAAU3J,MAAOmK,SAEpD,IAAI1K,QAAQ0B,YAAY7C,KAAKkK,MAC3BlK,KAAKkK,MAAQjH,UAEV,IAAqB,IAAjB4I,MAAMpI,OACbzD,KAAKkK,KAAKrF,KAAK5B,UAEZ,CACH,IAAKe,EAAI,EAAGA,EAAIhE,KAAKkK,KAAKzG,QACpBzD,KAAKkK,KAAKlG,GAAG6H,OAASA,MADM7H,KAK9BA,GAAKhE,KAAKkK,KAAKzG,QACjBzD,KAAKkK,KAAKrF,KAAK5B,MAEnB,MAAOjD,MAAKkK,KAAKzG,OAAS,GAQ5BzC,KAAKsE,UAAUuI,OAAS,WACtB,GAAIpJ,OAAQzE,IACZmB,SAAQwD,QAAQ3E,KAAM,SAAS0B,MAAOiH,KACzB,eAAPA,KAAkC,KAAVA,IAAI,UACvBlE,OAAMkE,OAGjBxH,QAAQC,OAAOpB,KAAMA,KAAK4K,aAE1BzJ,QAAQwD,QAAQ3E,KAAKkK,KAAM,SAAS9F,EAAGJ,GACjCI,EAAEyH,QAAOzH,EAAEiH,SAAW3J,MAAO0C,EAAEyH,SACnCpH,MAAMyF,KAAKlG,GAAK,GAAIhD,MAAKoD,KAE3BpE,KAAK4K,YAAc5K,KAAKmI,OAAM,IA+BhCnH,KAAKsE,UAAU/E,QAAU,SAASqI,gBAChC,GAAInE,OAAQzE,IAGZA,MAAKwI,gBAAkBI,eAAe7I,KAAK,SAASqD,MAalD,MAZAqB,OAAMxE,KAAKmD,MAEXjC,QAAQwD,QAAQF,MAAMyF,KAAM,SAAS9F,EAAGJ,GAClCI,EAAEyH,QAAOzH,EAAEiH,SAAW3J,MAAO0C,EAAEyH,SACnCzH,EAAEjE,GAAKiE,EAAE0J,UACTrJ,MAAMyF,KAAKlG,GAAK,GAAIhD,MAAKoD,KAEvBK,MAAM0H,WACR1H,MAAM0H,SAAW,GAAI4B,MAAsB,IAAjBtJ,MAAM0H,WAGlC1H,MAAMmG,YAAcnG,MAAM0D,OAAM,GACzB1D,SAWXzD,KAAKsE,UAAU6C,MAAQ,SAAS6F,MAC9B,GAAI/K,QAuBJ,OAtBA9B,SAAQwD,QAAQ3E,KAAM,SAAS0B,MAAOiH,KACzB,QAAPA,IACF1F,KAAKiH,KAAO7G,EAAEwE,IAAInG,MAAO,SAAS0C,GAChC,MAAOA,GAAE+D,MAAM6F,QAGH,eAAPrF,KAAkC,KAAVA,IAAI,KAC/BqF,KACF/K,KAAK0F,KAAOxH,QAAQ8M,KAAKvM,OAEzBuB,KAAK0F,KAAOjH,SAKbsM,OACC/K,KAAKkJ,SACPlJ,KAAKkJ,SAAWlJ,KAAKkJ,SAAS+B,UAAU,IAExCjL,KAAKkJ,SAAW,GAGblJ,MAGTjC,KAAKsE,UAAU6I,SAAW,WACxB,GAAIC,MAAOpO,KAAKG,GAAK,IAAMH,KAAKmK,UAKhC,OAHInK,MAAKqK,UACP+D,MAAQ,KAAOpO,KAAKqK,QAAU,KAEzB,IAAM+D,KAAO","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 == search) {\n // Query hasn't changed\n return AddressBook.$q.when(AddressBook.$cards);\n }\n AddressBook.$query = 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 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 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.org) description.push(this.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 86c1ec0b3..c2228f815 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.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($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(stateMailbox){return stateMailbox.$filter()}function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId});return message?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.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=["$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["stateMailbox"],stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function MailboxController($state,$timeout,$mdDialog,stateAccounts,stateAccount,stateMailbox,encodeUriFilter,focus,Dialog,Account,Mailbox){function selectMessage(message){$state.go("mail.account.mailbox.message",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path),messageId:message.uid})}function unselectMessages(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!1})}function confirmDeleteSelectedMessages(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected messages?")).then(function(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$deleteMessages(selectedUIDs).then(function(){var unseenCount=_.filter(selectedMessages,function(message){return!message.isread});vm.selectedFolder.$messages=_.difference(vm.selectedFolder.$messages,selectedMessages),vm.selectedFolder.unseenCount=-unseenCount},function(error){Dialog.alert(l("Error"),error)})})}function copySelectedMessages(folder){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$copyMessages(selectedUIDs,"/"+folder).then(function(){},function(error){Dialog.alert(l("Error"),error)})}function saveSelectedMessages(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");window.location.href=ApplicationBaseURL+"/"+vm.selectedFolder.id+"/saveMessages?uid="+selectedUIDs.join(",")}function selectAll(){_.each(vm.selectedFolder.$messages,function(message){message.selected=!0})}function markSelectedMessagesAsFlagged(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"\\Flagged","add").then(function(d){_.forEach(selectedMessages,function(message){message.isflagged=!0})})}function markSelectedMessagesAsUnread(){var selectedMessages=_.filter(vm.selectedFolder.$messages,function(message){return message.selected}),selectedUIDs=_.pluck(selectedMessages,"uid");vm.selectedFolder.$flagMessages(selectedUIDs,"seen","remove").then(function(d){_.forEach(selectedMessages,function(message){message.isread=!1,vm.selectedFolder.unseenCount++})})}function sort(field){vm.selectedFolder.$filter({sort:field})}function sortedBy(field){return Mailbox.$query.sort==field}function cancelSearch(){vm.mode.search=!1,vm.selectedFolder.$filter()}function newMessage($event){var message=vm.account.$newMessage();$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:[]}})}var vm=this;Mailbox.selectedFolder=stateMailbox,vm.service=Mailbox,vm.accounts=stateAccounts,vm.account=stateAccount,vm.selectedFolder=stateMailbox,vm.selectMessage=selectMessage,vm.unselectMessages=unselectMessages,vm.confirmDeleteSelectedMessages=confirmDeleteSelectedMessages,vm.copySelectedMessages=copySelectedMessages,vm.saveSelectedMessages=saveSelectedMessages,vm.markSelectedMessagesAsFlagged=markSelectedMessagesAsFlagged,vm.markSelectedMessagesAsUnread=markSelectedMessagesAsUnread,vm.selectAll=selectAll,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.newMessage=newMessage,vm.mode={search:!1}}MailboxController.$inject=["$state","$timeout","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgFocus","Dialog","Account","Mailbox"],angular.module("SOGo.MailerUI").controller("MailboxController",MailboxController)}(),function(){"use strict";function MailboxesController($state,$timeout,$mdDialog,focus,encodeUriFilter,Dialog,Settings,Account,Mailbox,User,Preferences,stateAccounts){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,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename()}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,"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","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,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){angular.isDefined(recipients)||(recipients=[]),$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}})}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 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;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,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=["$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$state,$q,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,encodeUriFilter,focus,Dialog,Account,Mailbox,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){var deferred=$q.defer();return AddressBook.$filterAll($query).then(function(results){deferred.resolve(_.invoke(results,"$shortFormat",$query))}),deferred.promise}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;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","$state","$q","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","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 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.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($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(stateMailbox){return stateMailbox.$filter()}function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId});return message?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.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=["$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["stateMailbox"],stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope"]}(),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.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 3145f748f..3a1804345 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","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateMessages","message","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$filter","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","module","config","run","$inject","MailboxController","$timeout","$mdDialog","focus","Dialog","Mailbox","selectMessage","unselectMessages","each","vm","selectedFolder","selected","confirmDeleteSelectedMessages","confirm","l","selectedMessages","filter","selectedUIDs","pluck","$deleteMessages","unseenCount","isread","difference","alert","copySelectedMessages","folder","$copyMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","join","selectAll","markSelectedMessagesAsFlagged","$flagMessages","d","isflagged","markSelectedMessagesAsUnread","sort","field","sortedBy","$query","cancelSearch","mode","search","newMessage","$event","$newMessage","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateRecipients","this","service","MailboxesController","Settings","User","Preferences","newFolder","parentFolder","prompt","name","$newMailbox","data","status","delegate","MailboxDelegationController","$scope","userFilter","delegates","closeModal","hide","removeUser","user","$removeDelegate","addUser","$addDelegate","userToAdd","searchText","users","editFolder","editMode","revertEditing","$reset","selectFolder","saveFolder","$rename","compactFolder","$compact","emptyTrashFolder","$emptyTrash","exportMails","confirmDelete","$delete","markFolderRead","$markAsRead","share","$acl","$users","usersWithACL","metadataForFolder","type","icon","setFolderAs","$setFolderAs","reload","refreshUnseenCount","unseenCountFolders","includes","$$flattenMailboxes","isDefined","$$resource","post","ready","refreshViewCheck","defaults","SOGoRefreshViewCheck","timeInterval","MessageController","Message","doDelete","index","findIndex","splice","showMailEditor","recipients","reply","$reply","replyAll","$replyAll","forward","$forward","edit","$editableContent","recipient","saveMessage","viewRawSource","MessageRawSourceDialogController","scope","close","tags","$watchCollection","oldTags","newTags","tag","removeTag","MessageEditorController","FileUploader","AddressBook","cancel","autosave","send","$send","contactFilter","deferred","defer","$filterAll","results","invoke","promise","autosaveDrafts","$save","SOGoMailAutoSave","autocomplete","to","cc","bcc","hideCc","hideBcc","identities","flatten","uploader","$absolutePath","asDraft","autoUpload","alias","onProgressItem","item","progress","debug","onSuccessItem","response","headers","$setUID","JSON","stringify","undefined","onCancelItem","$deleteAttachment","file","removeFromQueue","onErrorItem","actionName","msgObject","editable","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","action","receiveUpdates","c_email","viewer","$imipAction","directive"],"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,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,aACdC,cAAeA,iBAgBlBf,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEU,aAAcA,gBA4BpBlB,mBAAmBmB,UAAU,SAc/B,QAASV,eAAcW,GAAIC,SACzB,GAAIC,UAAWD,QAAQE,SAASC,cAC5BC,WAQJ,OANAC,SAAQC,QAAQL,SAAU,SAASM,QAASC,GAC1C,GAAIzB,WAAYwB,QAAQE,eACxBL,UAASM,KAAK3B,UAAU4B,KAAK,SAASC,SACpC,MAAOL,cAGJR,GAAGc,IAAIT,UAOhB,QAASZ,cAAasB,aAAc1B,eAClC,MAAO2B,GAAEC,KAAK5B,cAAe,SAASmB,SACpC,MAAOA,SAAQU,IAAMH,aAAaI,YAQtC,QAASxB,cAAaoB,aAActB,aAAc2B,iBAChD,GACIC,OADAC,UAAYF,gBAAgBL,aAAaO,UAgB7C,QAbAD,MAAQ,SAASrC,WACf,GAAIO,SAAUyB,EAAEC,KAAKjC,UAAW,SAASuC,GACvC,MAAOA,GAAEC,MAAQF,WASnB,OAPK/B,UACHe,QAAQC,QAAQvB,UAAW,SAASuC,IAC7BhC,SAAWgC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDnC,QAAU8B,MAAME,EAAEE,aAIjBlC,UAEIE,aAAakC,YAO5B,QAAS/B,eAAcD,cACrB,MAAOA,cAAaiC,UAetB,QAAS9B,cAAa+B,gBAAiBd,aAAce,OAAQnC,aAAcC,eACzE,GAAIC,SAAUmB,EAAEC,KAAKtB,aAAaoC,UAAW,SAASC,eACpD,MAAOA,eAAcC,KAAOlB,aAAamB,WAG3C,OAAIrC,UACFF,aAAawC,gBAAkBpB,aAAamB,UACrCrC,QAAQuC,eAIfN,QAAOO,GAAG,wBAA0BlB,UAAWxB,aAAa2C,SAASpB,GAAII,UAAWO,gBAAgBlC,aAAa6B,QAgBrH,QAASe,UAASC,YAChBA,WAAWC,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,WACrEC,QAAQC,MAAML,MAAOC,QAASC,SAAUC,aAlN5CvC,QAAQ0C,OAAO,iBAAkB,aAAc,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,YAAa,uBACnIC,OAAOvE,WACPwE,IAAIX,UAKP7D,UAAUyE,SAAW,iBAAkB,sBA0GvC9D,cAAc8D,SAAW,KAAM,WAiB/B1D,aAAa0D,SAAW,eAAgB,iBAUxCxD,aAAawD,SAAW,eAAgB,eAAgB,mBAwBxDvD,cAAcuD,SAAW,gBAgBzBrD,aAAaqD,SAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBA2BrFZ,SAASY,SAAW,iBCnNtB,WACE,YAMA,SAASC,mBAAkBtB,OAAQuB,SAAUC,UAAWjE,cAAeI,aAAcE,aAAckC,gBAAiB0B,MAAOC,OAAQvD,QAASwD,SAwB1I,QAASC,eAAc7D,SACrBiC,OAAOO,GAAG,gCAAiClB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,MAAOU,UAAWrC,QAAQoC,MAG3I,QAAS0B,oBACP3C,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAAWA,QAAQkE,UAAW,IAG7E,QAASC,iCACPR,OAAOS,QAAQC,EAAE,WACFA,EAAE,2DACdtD,KAAK,WAEJ,GAAIuD,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAeS,gBAAgBF,cAAczD,KAAK,WAEnD,GAAI4D,aAAcxD,EAAEoD,OAAOD,iBAAkB,SAAStE,SAAW,OAAQA,QAAQ4E,QACjFZ,IAAGC,eAAe/B,UAAYf,EAAE0D,WAAWb,GAAGC,eAAe/B,UAAWoC,kBACxEN,GAAGC,eAAeU,aAAeA,aAC/B,SAASzB,OACXS,OAAOmB,MAAMT,EAAE,SAAUnB,WAKjC,QAAS6B,sBAAqBC,QAC5B,GAAIV,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7CN,IAAGC,eAAegB,cAAcT,aAAc,IAAMQ,QAAQjE,KAAK,aAE9D,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,SAAUnB,SAa7B,QAASgC,wBACP,GAAIZ,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAC7Ca,QAAOC,SAASC,KAAOC,mBAAqB,IAAMtB,GAAGC,eAAe5C,GAAK,qBAAuBmD,aAAae,KAAK,KAGpH,QAASC,aACPrE,EAAE4C,KAAKC,GAAGC,eAAe/B,UAAW,SAASlC,SAC3CA,QAAQkE,UAAW,IAIvB,QAASuB,iCACP,GAAInB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,YAAa,OAAOzD,KAAK,SAAS4E,GAE9ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4F,WAAY,MAK1B,QAASC,gCACP,GAAIvB,kBAAmBnD,EAAEoD,OAAOP,GAAGC,eAAe/B,UAAW,SAASlC,SAAW,MAAOA,SAAQkE,WAC5FM,aAAerD,EAAEsD,MAAMH,iBAAkB,MAE7CN,IAAGC,eAAeyB,cAAclB,aAAc,OAAQ,UAAUzD,KAAK,SAAS4E,GAE5ExE,EAAET,QAAQ4D,iBAAkB,SAAStE,SACnCA,QAAQ4E,QAAS,EACjBZ,GAAGC,eAAeU,kBAKxB,QAASmB,MAAKC,OACZ/B,GAAGC,eAAelC,SAAU+D,KAAMC,QAGpC,QAASC,UAASD,OAChB,MAAOnC,SAAQqC,OAAOH,MAAQC,MAGhC,QAASG,gBACPlC,GAAGmC,KAAKC,QAAS,EACjBpC,GAAGC,eAAelC,UAGpB,QAASsE,YAAWC,QAClB,GAAItG,SAAUgE,GAAGrD,QAAQ4F,aAEzB9C,WAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,sBApIN,GAAIjD,IAAKkD,IAETtD,SAAQK,eAAiBnE,aAEzBkE,GAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGC,eAAiBnE,aACpBkE,GAAGH,cAAgBA,cACnBG,GAAGF,iBAAmBA,iBACtBE,GAAGG,8BAAgCA,8BACnCH,GAAGe,qBAAuBA,qBAE1Bf,GAAGkB,qBAAuBA,qBAC1BlB,GAAGyB,8BAAgCA,8BACnCzB,GAAG6B,6BAA+BA,6BAClC7B,GAAGwB,UAAYA,UACfxB,GAAG8B,KAAOA,KACV9B,GAAGgC,SAAWA,SACdhC,GAAGkC,aAAeA,aAClBlC,GAAGqC,WAAaA,WAChBrC,GAAGmC,MAASC,QAAQ,GAvBtB7C,kBAAkBD,SAAW,SAAU,WAAY,YAAa,gBAAiB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,WA4IpK7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqBkE,sBCpJrC,WACE,YAMA,SAAS6D,qBAAoBnF,OAAQuB,SAAUC,UAAWC,MAAO1B,gBAAiB2B,OAAQ0D,SAAUjH,QAASwD,QAAS0D,KAAMC,YAAa/H,eA8BvI,QAASgI,WAAUC,cACjB9D,OAAO+D,OAAOrD,EAAE,cACFA,EAAE,wCACbtD,KAAK,SAAS4G,MACbF,aAAaG,YAAYH,aAAapG,GAAIsG,MACvC5G,KAAK,aAEH,SAAS8G,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDsD,MACzDtD,EAAEwD,KAAK3E,YAK9B,QAAS6E,UAASpH,SAiBhB,QAASqH,6BAA4BC,OAAQxE,UAAW6D,KAAM3G,SAY5D,QAASuH,YAAWjC,QAClB,MAAOqB,MAAKvF,QAAQkE,OAAQtF,QAAQwH,WAGtC,QAASC,cACP3E,UAAU4E,OAGZ,QAASC,YAAWC,MAClB5H,QAAQ6H,gBAAgBD,KAAKnG,KAA7BzB,SAAwC,SAASkH,KAAMC,QACrDnE,OAAOmB,MAAMT,EAAE,WAAYA,EAAE,yCAIjC,QAASoE,SAAQZ,MACXA,MACFlH,QAAQ+H,aAAab,MAAM9G,KAAK,WAC9BiD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,IACf,SAAS1F,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SA/BjC,GAAIc,IAAKkD,IAETlD,IAAG6E,MAAQlI,QAAQwH,UACnBnE,GAAGrD,QAAUA,QACbqD,GAAG2E,UAAY,GACf3E,GAAG4E,WAAa,GAChB5E,GAAGkE,WAAaA,WAChBlE,GAAGoE,WAAaA,WAChBpE,GAAGsE,WAAaA,WAChBtE,GAAGyE,QAAUA,QA1BfhF,UAAU+C,MACRpH,YAAauB,QAAQU,GAAK,cAC1BhC,WAAY2I,4BACZ1I,aAAc,WACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEM,KAAMA,KACN3G,QAASA,WAObqH,4BAA4B1E,SAAW,SAAU,YAAa,OAAQ,WAwCxE,QAASwF,YAAW9D,QAClBhB,GAAG+E,SAAW/D,OAAOrD,KACrB+B,MAAM,eAAiBsB,OAAOrD,MAGhC,QAASqH,eAAchE,QACrBA,OAAOiE,SACPjF,GAAG+E,UAAW,EAGhB,QAASG,cAAavI,QAASqE,QACzBhB,GAAG+E,UAAY/D,OAAOrD,OAE1BqC,GAAG+E,UAAW,EACd9G,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBgD,OAAOrD,SAG/F,QAASwH,YAAWnE,QAClBA,OAAOoE,UAGT,QAASC,eAAcrE,QACrBA,OAAOsE,WAAWvI,KAAK,aAEpB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASqG,kBAAiBvE,QACxBA,OAAOwE,cAAczI,KAAK,aAEvB,SAASmC,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASuG,aAAYzE,QACnBG,OAAOC,SAASC,KAAOC,mBAAqB,IAAMN,OAAO3D,GAAK,gBAGhE,QAASqI,eAAc1E,QACrBrB,OAAOS,QAAQC,EAAE,gBAAiBA,EAAE,4DACjCtD,KAAK,WACJiE,OAAO2E,UACJ5I,KAAK,WACJkB,OAAOO,GAAG,SACT,SAASqF,KAAMC,QAChBnE,OAAOmB,MAAMT,EAAE,sDAAuDW,OAAO2C,MAChEtD,EAAEwD,KAAK3E,YAK9B,QAAS0G,gBAAe5E,QACtBA,OAAO6E,cAGT,QAASC,OAAM9E,QAEbA,OAAO+E,KAAKC,SAASjJ,KAAK,WAExB0C,UAAU+C,MACRpH,YAAa4F,OAAO3D,GAAK,gBACzBhC,WAAY,gBACZC,aAAc,MACdwH,qBAAqB,EACrBC,eAAe,EACfC,QACEiD,aAAcjF,OAAO+E,KAAKlB,MAC1BvB,KAAMA,KACNtC,OAAQA,YAMhB,QAASkF,mBAAkBlF,QACzB,MAAmB,SAAfA,OAAOmF,MACDxC,KAAM3C,OAAO2C,KAAMyC,KAAK,SACV,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,oBAAqB+F,KAAM,UACrB,QAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,kBAAmB+F,KAAM,QACnB,SAAfpF,OAAOmF,MACNxC,KAAMtD,EAAE,mBAAoB+F,KAAM,UACpB,cAAfpF,OAAOmF,MACNxC,KAAM3C,OAAO2C,KAAMyC,KAAM,kBAK3BzC,KAAM3C,OAAO2C,KAAMyC,KAAM,UAGnC,QAASC,aAAYrF,OAAQmF,MAC3BnF,OAAOsF,aAAaH,MAAMpJ,KAAK,WAC7BiE,OAAOvC,SAAS5B,eAAe0J,QAAQ,KACtC,SAASrH,OACVS,OAAOmB,MAAMT,EAAE,WAAYnB,SAI/B,QAASsH,sBACP,GAAIC,oBAAqBtF,OAAOsF,kBAEhCtJ,GAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAGzBQ,EAAEuJ,SAASD,mBAAoB9J,QAAQU,GAAK,iBAC/CoJ,mBAAmB3J,KAAKH,QAAQU,GAAK,gBAEvCF,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCe,QAAQmK,UAAUlL,QAAQiF,eACzBxD,EAAEuJ,SAASD,mBAAoB/K,QAAQ2B,KAC1CoJ,mBAAmB3J,KAAKpB,QAAQ2B,QAItCjB,QAAQyK,WAAWC,KAAK,GAAI,eAAgB3L,UAAWsL,qBAAqB1J,KAAK,SAAS8G,MACxF1G,EAAET,QAAQsD,GAAG3D,SAAU,SAASM,SAC9BQ,EAAET,QAAQC,QAAQgK,mBAAoB,SAASjL,SACzCmI,KAAKnI,QAAQ2B,MACf3B,QAAQiF,YAAckD,KAAKnI,QAAQ2B,WAK3CkG,YAAYwD,QAAQhK,KAAK,WACvB,GAAIiK,kBAAmBzD,YAAY0D,SAASC,oBACxCF,mBAAwC,YAApBA,kBACtBxH,SAASQ,GAAGwG,mBAAoD,IAAhCQ,iBAAiBG,kBAtOvD,GACIxK,SACAjB,QAFAsE,GAAKkD,IAITlD,IAAGmD,QAAUvD,QACbI,GAAG3D,SAAWb,cACdwE,GAAGwD,UAAYA,UACfxD,GAAG+D,SAAWA,SACd/D,GAAG8E,WAAaA,WAChB9E,GAAGgF,cAAgBA,cACnBhF,GAAGkF,aAAeA,aAClBlF,GAAGmF,WAAaA,WAChBnF,GAAGqF,cAAgBA,cACnBrF,GAAGuF,iBAAmBA,iBACtBvF,GAAGyF,YAAcA,YACjBzF,GAAG0F,cAAgBA,cACnB1F,GAAG4F,eAAiBA,eACpB5F,GAAG8F,MAAQA,MACX9F,GAAGkG,kBAAoBA,kBACvBlG,GAAGqG,YAAcA,YACjBrG,GAAGwG,mBAAqBA,mBAEG,QAAvBvI,OAAOa,QAAQ6E,MAAkB3D,GAAG3D,SAASwB,OAAS,GAAKmC,GAAG3D,SAAS,GAAGyB,WAAWD,OAAS,IAEhGlB,QAAUqD,GAAG3D,SAAS,GACtBX,QAAUiB,QAAQmB,WAAW,GAC7BG,OAAOO,GAAG,wBAA0BlB,UAAWX,QAAQU,GAAII,UAAWO,gBAAgBtC,QAAQiC,SAgNhGqC,GAAGwG,qBA5OLpD,oBAAoB9D,SAAW,SAAU,WAAY,YAAa,UAAW,kBAAmB,SAAU,aAAc,UAAW,UAAW,OAAQ,cAAe,iBA+OrK7C,QACG0C,OAAO,iBACP9D,WAAW,sBAAuB+H,wBCvPvC,WACE,YAMA,SAASgE,mBAAkBnD,OAAQhG,OAAQwB,UAAWjE,cAAeI,aAAcE,aAAcG,aAAc+B,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASyH,SA2B/J,QAASC,YACPxL,aAAa4E,iBAAiBzE,aAAamC,MAAMrB,KAAK,WAEpD,GAAIwK,OAAQpK,EAAEqK,UAAU1L,aAAaoC,UAAW,SAASR,GACvD,MAAOA,GAAEU,KAAOnC,aAAamC,KAElB,KAATmJ,OACFzL,aAAaoC,UAAUuJ,OAAOF,MAAO,GAEvCvH,GAAGhE,QAAU,KACbiC,OAAOO,GAAG,wBAA0BlB,UAAW1B,aAAayB,GAAII,UAAWO,gBAAgBlC,aAAa6B,UAI5G,QAAS+J,gBAAepF,OAAQtG,QAAS2L,YAElClL,QAAQmK,UAAUe,cACrBA,eAEFlI,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACf3H,YAAa,gBACbC,WAAY,0BACZC,aAAc,SACd0H,QACExH,cAAewE,GAAG3D,SAClBJ,aAAcD,QACdiH,gBAAiB0E,cAKvB,QAASC,OAAMtF,QACb,GAAItG,SAAUgE,GAAGhE,QAAQ6L,QACzBH,gBAAepF,OAAQtG,SAGzB,QAAS8L,UAASxF,QAChB,GAAItG,SAAUgE,GAAGhE,QAAQ+L,WACzBL,gBAAepF,OAAQtG,SAGzB,QAASgM,SAAQ1F,QACf,GAAItG,SAAUgE,GAAGhE,QAAQiM,UACzBP,gBAAepF,OAAQtG,SAGzB,QAASkM,MAAK5F,QACZtC,GAAGhE,QAAQmM,mBAAmBpL,KAAK,WACjC2K,eAAepF,OAAQtC,GAAGhE,WAI9B,QAASqG,YAAWC,OAAQ8F,WAC1B,GAAIpM,SAAUgE,GAAGrD,QAAQ4F,aACzBmF,gBAAepF,OAAQtG,SAAUoM,YAGnC,QAASC,eACPlH,OAAOC,SAASC,KAAOC,mBAAqB,IAAMtB,GAAGtE,QAAQ2B,GAAK,qBAAuB2C,GAAGhE,QAAQoC,IAGtG,QAASkK,eAAchG,QACrB+E,QAAQR,WAAWC,KAAK9G,GAAGhE,QAAQqB,GAAI,cAAcN,KAAK,SAAS8G,MAyBjE,QAAS0E,kCAAiCC,MAAO/I,WAC/C+I,MAAMC,MAAQ,WACZhJ,UAAU4E,QA1Bd5E,UAAU+C,MACRC,OAAQhG,QAAQiG,QAAQC,SAASC,MACjCC,YAAaP,OACbQ,qBAAqB,EACrBC,eAAe,EACfpH,UACE,kDAAoD0E,EAAE,uBAAyB,KAC/E,wBACA,YACAwD,KACA,aACA,yBACA,6BACA,qCAAuCxD,EAAE,SAAW,eACpD,WACA,gBACAkB,KAAK,IACPlG,WAAYkN,mCAMdA,iCAAiCjJ,SAAW,QAAS,eApHzD,GAAIU,IAAKkD,IAETlD,IAAG3D,SAAWb,cACdwE,GAAGrD,QAAUf,aACboE,GAAGtE,QAAUI,aACbkE,GAAGhE,QAAUC,aACb+D,GAAGmD,QAAUkE,QACbrH,GAAG0I,MAAS9D,WAAY,GAAI1E,SAAU,IACtCF,GAAGsH,SAAWA,SACdtH,GAAG4H,MAAQA,MACX5H,GAAG8H,SAAWA,SACd9H,GAAGgI,QAAUA,QACbhI,GAAGkI,KAAOA,KACVlI,GAAGqC,WAAaA,WAChBrC,GAAGqI,YAAcA,YACjBrI,GAAGsI,cAAgBA,cAKnBrE,OAAO0E,iBAAiB,uBAAwB,SAASC,QAASC,SAChE1L,EAAE4C,KAAK5C,EAAE0D,WAAWgI,QAASD,SAAU,SAASE,KAC9C9I,GAAGhE,QAAQ+M,UAAUD,SAxB3B1B,kBAAkB9H,SAAW,SAAU,SAAU,YAAa,gBAAiB,eAAgB,eAAgB,eAAgB,kBAAmB,UAAW,SAAU,UAAW,UAAW,WAgI7L7C,QACG0C,OAAO,iBACP9D,WAAW,oBAAqB+L,sBCxIrC,WACE,YAMA,SAAS4B,yBAAwB9L,aAAce,OAAQ9B,GAAIsD,UAAWwJ,aAAczN,cAAeS,aAAcgH,gBAAiBzD,SAAUxB,gBAAiB0B,MAAOC,OAAQvD,QAASwD,QAASsJ,YAAa3F,aA+DzM,QAAS4F,UAEHnJ,GAAGoJ,UACL5J,SAAS2J,OAAOnJ,GAAGoJ,UAErB3J,UAAU0J,SAGZ,QAASE,QACHrJ,GAAGoJ,UACL5J,SAAS2J,OAAOnJ,GAAGoJ,UAErBpJ,GAAGhE,QAAQsN,QAAQvM,KAAK,SAAS8G,MAC/BpE,UAAU4E,QACT,SAASR,MACVlE,OAAOmB,MAAMT,EAAEwD,KAAKC,QAASzD,EAAEwD,KAAK7H,YAIxC,QAASuN,eAActH,QACrB,GAAIuH,UAAWrN,GAAGsN,OAIlB,OAHAP,aAAYQ,WAAWzH,QAAQlF,KAAK,SAAS4M,SAC3CH,SAASjO,QAAQ4B,EAAEyM,OAAOD,QAAS,eAAgB1H,WAE9CuH,SAASK,QAIlB,QAASC,kBACP9J,GAAGhE,QAAQ+N,QACPxG,YAAY0D,SAAS+C,mBACvBhK,GAAGoJ,SAAW5J,SAASQ,GAAG8J,eAAsD,IAAtCvG,YAAY0D,SAAS+C,iBAAsB,KA7FzF,GAAIhK,IAAKkD,IAETlD,IAAGiK,cAAgBC,MAAQC,MAAQC,QACnCpK,GAAGoJ,SAAW,KACdpJ,GAAG8J,eAAiBA,eACpB9J,GAAGqK,QAAS,EACZrK,GAAGsK,SAAU,EACbtK,GAAGmJ,OAASA,OACZnJ,GAAGqJ,KAAOA,KACVrJ,GAAGuJ,cAAgBA,cACnBvJ,GAAGuK,WAAapN,EAAEsD,MAAMtD,EAAEqN,QAAQrN,EAAEsD,MAAMjF,cAAe,eAAgB,QACzEwE,GAAGyK,SAAW,GAAIxB,eAChBhO,IAAKgB,aAAayO,eAAeC,SAAS,IAAS,QACnDC,YAAY,EACZC,MAAO,cACPC,eAAgB,SAASC,KAAMC,UAC7B/L,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAMD,WAErCE,cAAe,SAASH,KAAMI,SAAUrH,OAAQsH,SAC9CnP,aAAaoP,QAAQF,SAAS/M,KAC9BnC,aAAasC,UACbU,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,aAAeK,KAAKC,UAAUJ,SAAUK,OAAW,KAExFC,aAAc,SAASV,KAAMI,SAAUrH,OAAQsH,SAC7CnM,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,YAAcK,KAAKC,UAAUJ,SAAUK,OAAW,IAGrFvP,aAAayP,kBAAkBX,KAAKY,KAAKhI,MACzCT,KAAK0I,gBAAgBb,OAEvBc,YAAa,SAASd,KAAMI,SAAUrH,OAAQsH,SAC5CnM,QAAQgM,MAAMF,MAAO9L,QAAQgM,MAAM,WAAaK,KAAKC,UAAUJ,SAAUK,OAAW,OAIzD,SAA3BtO,aAAa4O,WACf7P,aAAa4L,SAAS9K,KAAK,SAASgP,WAClC/L,GAAGhE,QAAU+P,UACb/L,GAAGqK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGtM,OAC7DmC,GAAGsK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAIvM,SAGhC,YAA3BX,aAAa4O,WACpB7P,aAAa8L,YAAYhL,KAAK,SAASgP,WACrC/L,GAAGhE,QAAU+P,UACb/L,GAAGqK,QAAW0B,UAAUC,SAAS7B,IAAuC,IAAjC4B,UAAUC,SAAS7B,GAAGtM,OAC7DmC,GAAGsK,SAAYyB,UAAUC,SAAS5B,KAAyC,IAAlC2B,UAAUC,SAAS5B,IAAIvM,SAGhC,WAA3BX,aAAa4O,WACpB7P,aAAagM,WAAWlL,KAAK,SAASgP,WACpC/L,GAAGhE,QAAU+P,YAGRtP,QAAQmK,UAAU3K,gBACzB+D,GAAGhE,QAAUC,cAGXQ,QAAQmK,UAAU3D,mBACpBjD,GAAGhE,QAAQgQ,SAAS9B,GAAK/M,EAAE8O,MAAMjM,GAAGhE,QAAQgQ,SAAS9B,GAAI/M,EAAEsD,MAAMwC,gBAAiB,UAsCpFM,YAAYwD,QAAQhK,KAAK,WACnBwG,YAAY0D,SAAS+C,mBACvBhK,GAAGoJ,SAAW5J,SAASQ,GAAG8J,eAAsD,IAAtCvG,YAAY0D,SAAS+C,iBAAsB,KACvFhK,GAAGkM,WAAa3I,YAAY0D,SAASkF,aAtGzCnD,wBAAwB1J,SAAW,eAAgB,SAAU,KAAM,YAAa,eAAgB,gBAAiB,eAAgB,kBAAmB,WAAY,kBAAmB,UAAW,SAAU,UAAW,UAAW,cAAe,eA0G7O7C,QACG0C,OAAO,iBACP9D,WAAW,0BAA2B2N,4BClH3C,WAEE,YAQA,SAASoD,UAOP,QAASC,MAAK7D,MAAO8D,SAAUC,MAAOC,MACpCA,KAAKC,iBAAmBF,MAAMG,WAPhC,OACEC,SAAU,IACVN,KAAMA,KACNhR,WAAY,oBAYhB,QAASuR,kBAAiB3I,OAAQX,MAChC,GAAItD,IAAKkD,IAETe,QAAO4I,oBAAqB,EAC5B5I,OAAO6I,YAAc,GACrB7I,OAAOW,WAAa,GAEpBX,OAAOC,WAAa,SAASjC,QAC3B,MAAOqB,MAAKvF,QAAQkE,SAGtBgC,OAAO8I,gBAAkB,SAASC,QAChC,GAAInJ,KAEU,aAAVmJ,SACFnJ,MACEoJ,gBAAgB,EAChBH,YAAa7I,OAAO6I,YAAYI,UAIpCjJ,OAAOkJ,OAAOnR,QAAQoR,YAAYpN,GAAGyM,iBAAkBO,OAAQnJ,OAtBnE+I,iBAAiBtN,SAAW,SAAU,QA0BtC7C,QACG0C,OAAO,iBACP9D,WAAW,mBAAoBuR,kBAC/BS,UAAU,SAAUjB","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.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 = ['$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox($stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\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 return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['stateMailbox'];\n function stateMessages(stateMailbox) {\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 * @ngInject\n */\n stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var 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'];\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 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;\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.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 $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path), messageId: message.uid});\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 = vm.account.$newMessage();\n\n $mdDialog.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 }\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', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, 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 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 $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename();\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 = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {\n var vm = this;\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.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\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\n if (!angular.isDefined(recipients))\n recipients = [];\n\n $mdDialog.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 }\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 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', '$state', '$q', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $state, $q, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox, AddressBook, Preferences) {\n var vm = this;\n\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 var deferred = $q.defer();\n AddressBook.$filterAll($query).then(function(results) {\n deferred.resolve(_.invoke(results, '$shortFormat', $query));\n });\n return deferred.promise;\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.js","sources":["Mailer/Mailer.app.js","Mailer/sgIMIP.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateMessages","message","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$filter","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","module","config","run","$inject","sgImip","link","scope","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","$scope","User","vm","this","delegateInvitation","delegatedTo","searchText","userFilter","$query","iCalendarAction","action","data","receiveUpdates","c_email","viewer","$imipAction","directive"],"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.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 = ['$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox($stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\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 return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['stateMailbox'];\n function stateMessages(stateMailbox) {\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 * @ngInject\n */\n stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var 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'];\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 /* 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/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index 79a413ba1..79321a3f5 100644 --- a/UI/WebServerResources/js/Mailer.services.js +++ b/UI/WebServerResources/js/Mailer.services.js @@ -1,2 +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.baseURL(),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){var collection=[];return data&&angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this,deferred=Account.$q.defer();return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){_this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),deferred.resolve(_this.$mailboxes)}):deferred.resolve(this.$mailboxes),deferred.promise},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,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,deferred=Mailbox.$q.defer();return this.name==this.$shadowData.name?(deferred.resolve(),deferred.promise):(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),deferred.resolve()},function(data){deferred.reject(data)}),deferred.promise)},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)),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){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},"function"!=typeof futureMessageData.then?(angular.extend(this,futureMessageData),this.id=this.$absolutePath(),this.$formatFullAddresses()):this.$unwrap(futureMessageData),this.selected=!1,this.$tapette+=1}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()),$tapette:0}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors)}),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");return _.filter(_.keys(Message.$tags),function(tag){var value=Message.$tags[tag];return-1!=value[0].search(re)})},Message.prototype.$absolutePath=function(options){var path;return 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),path.join("/")},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,this.id=this.$absolutePath(),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?(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":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,deferred=Account.$q.defer();return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){_this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),deferred.resolve(_this.$mailboxes)}):deferred.resolve(this.$mailboxes),deferred.promise},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,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,deferred=Mailbox.$q.defer();return this.name==this.$shadowData.name?(deferred.resolve(),deferred.promise):(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),deferred.resolve()},function(data){deferred.reject(data)}),deferred.promise)},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)}),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");return _.filter(_.keys(Message.$tags),function(tag){var value=Message.$tags[tag];return-1!=value[0].search(re)})},Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)){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?(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;i0&&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","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,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 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;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.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=["$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$state,$q,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,encodeUriFilter,focus,Dialog,Account,Mailbox,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","$state","$q","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","encodeUriFilter","sgFocus","Dialog","Account","Mailbox","AddressBook","Preferences"],angular.module("SOGo.MailerUI").controller("MessageEditorController",MessageEditorController)}(); //# 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 9cb5681ee..6660173df 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"],"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","baseURL","activeUser","$Mailbox","$Message","module","e","factory","$findAll","data","collection","forEach","o","i","id","prototype","$getMailboxes","options","_this","deferred","defer","$mailboxes","reload","$find","$flattenMailboxes","resolve","promise","allMailboxes","_visit","mailboxes","push","children","length","$$flattenMailboxes","$getMailboxByType","type","mailbox","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","post","toString","$newMessage","fetch","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","param","uid","indexOf","pluck","delegates","users","status","reject","l","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","Preferences","PRELOAD","$$Acl","$Preferences","$query","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Mail","SortingState","parseInt","constant","LOOKAHEAD","SIZE","$unwrapCollection","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","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","$tapette","$sce","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","filterTags","query","re","RegExp","keys","tag","search","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","response","$send","$futureMessageData","isread"],"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.baseURL(), 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 var collection = [];\n if (data) {\n // Each entry is spun up as an Account instance\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\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 deferred = Account.$q.defer();\n\n if (this.$mailboxes && !(options && options.reload)) {\n deferred.resolve(this.$mailboxes);\n }\n else {\n Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n _this.$flattenMailboxes({reload: true});\n deferred.resolve(_this.$mailboxes);\n });\n }\n\n return deferred.promise;\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 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 = false;\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 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 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 deferred = Mailbox.$q.defer(),\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n deferred.resolve();\n return deferred.promise;\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 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 deferred.resolve();\n }, function(data) {\n deferred.reject(data);\n });\n\n return deferred.promise;\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));\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 */\n function Message(accountId, mailbox, futureMessageData) {\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 // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n angular.extend(this, futureMessageData);\n this.id = this.$absolutePath();\n this.$formatFullAddresses();\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n this.selected = false;\n\n //console.log(\"new message instance! \" + this.$tapette);\n this.$tapette += 1;\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 $tapette: 0\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 });\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 return _.filter(_.keys(Message.$tags), function(tag) {\n var value = Message.$tags[tag];\n return value[0].search(re) != -1;\n });\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 var path;\n\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 return path.join('/');\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 this.id = this.$absolutePath();\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) {\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 }\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.id, '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.id, 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.id, '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.id, 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() {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.id, '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.id, 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));\n angular.extend(message.editable, data);\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(); // 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 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 }\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 deferred = Message.$q.defer();\n\n // Expose the promise\n this.$futureMessageData = futureMessageData;\n\n // Resolve the promise\n this.$futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n Message.$timeout(function() {\n angular.extend(_this, data);\n _this.id = _this.$absolutePath();\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n deferred.resolve(_this);\n });\n if (!_this.isread) {\n Message.$$resource.fetch(_this.id, 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Message.$log.error(_this.error);\n deferred.reject();\n });\n\n return deferred.promise;\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"]} \ 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/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.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","deferred","defer","$mailboxes","reload","$find","$flattenMailboxes","resolve","promise","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","param","uid","indexOf","pluck","delegates","users","status","reject","l","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","Preferences","PRELOAD","$$Acl","$Preferences","$query","sort","asc","selectedFolder","$refreshTimeout","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","filterTags","query","re","RegExp","keys","tag","search","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","response","$send","$futureMessageData","isread","MailboxController","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","focus","Dialog","selectMessage","go","mailboxId","unselectMessages","vm","confirmDeleteSelectedMessages","confirm","selectedMessages","selectedUIDs","difference","alert","copySelectedMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","selectAll","markSelectedMessagesAsFlagged","d","markSelectedMessagesAsUnread","field","sortedBy","cancelSearch","mode","newMessage","$event","messageDialog","show","body","targetEvent","clickOutsideToClose","escapeToClose","templateUrl","controller","controllerAs","locals","accounts","stateMessage","stateRecipients","service","$inject","MailboxesController","User","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","current","MessageController","doDelete","findIndex","showMailEditor","recipients","close","selectedMessage","reply","replyAll","forward","edit","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","url","autoUpload","alias","onProgressItem","item","progress","onSuccessItem","onCancelItem","file","removeFromQueue","onErrorItem","actionName","msgObject","union","localeCode","LocaleCode"],"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 deferred = Account.$q.defer();\n\n if (this.$mailboxes && !(options && options.reload)) {\n deferred.resolve(this.$mailboxes);\n }\n else {\n Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n _this.$flattenMailboxes({reload: true});\n deferred.resolve(_this.$mailboxes);\n });\n }\n\n return deferred.promise;\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 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 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 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 deferred = Mailbox.$q.defer(),\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n deferred.resolve();\n return deferred.promise;\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 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 deferred.resolve();\n }, function(data) {\n deferred.reject(data);\n });\n\n return deferred.promise;\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 });\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 return _.filter(_.keys(Message.$tags), function(tag) {\n var value = Message.$tags[tag];\n return value[0].search(re) != -1;\n });\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)) {\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) {\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 }\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() {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.$absolutePath(), '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));\n angular.extend(message.editable, data);\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(); // 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 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 }\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 deferred = Message.$q.defer();\n\n // Expose the promise\n this.$futureMessageData = futureMessageData;\n\n // Resolve the promise\n this.$futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n Message.$timeout(function() {\n angular.extend(_this, data);\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n deferred.resolve(_this);\n });\n if (!_this.isread) {\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 }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Message.$log.error(_this.error);\n deferred.reject();\n });\n\n return deferred.promise;\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 * @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.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 $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path), messageId: message.uid});\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', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, 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 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 $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename();\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 = ['$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, focus, Dialog, Account, Mailbox, Message) {\n var vm = this, messageDialog = 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.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 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', '$state', '$q', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $state, $q, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, encodeUriFilter, focus, Dialog, Account, Mailbox, 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"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.services.js b/UI/WebServerResources/js/Scheduler.services.js index 991a7e733..fb1694ef4 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.$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.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},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(name){var i=_.indexOf(_.pluck(Calendar.$calendars,"id"),this.id);return this.name=name,Calendar.$calendars.splice(i,1),Calendar.$add(this),this.$save()},Calendar.prototype.$delete=function(){var list,promise,_this=this,d=Calendar.$q.defer();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),d.resolve()},function(data,status){d.reject(data)}),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.$save=function(){return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return 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"}}),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(event){return event.selected}).length),count},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 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={};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]}),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.$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(dateString){var date=new Date(dateString.substring(0,10)+" "+dateString.substring(11,16)),hours=date.getHours(),minutes=date.getMinutes();return 10>hours&&(hours="0"+hours),10>minutes&&(minutes="0"+minutes),hours+":"+minutes}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startTime=component.startDate?formatTime(component.startDate):"",component.endTime=component.endDate?formatTime(component.endDate):"",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.$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.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},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(name){var i=_.indexOf(_.pluck(Calendar.$calendars,"id"),this.id);return this.name=name,Calendar.$calendars.splice(i,1),Calendar.$add(this),this.$save()},Calendar.prototype.$delete=function(){var list,promise,_this=this,d=Calendar.$q.defer();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),d.resolve()},function(data,status){d.reject(data)}),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.$save=function(){return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return 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"}}),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(event){return event.selected}).length),count},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 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={};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]}),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},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}}(); //# 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 b723be1a3..c83ee312b 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","$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","prototype","isOwned","isSuperUser","getClassName","base","isUndefined","$rename","$save","$delete","remove","status","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","save","$omit","$setActivation","active","$getComponent","componentId","recurrenceId","$find","value","key","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","$filter","type","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","reduce","events","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","flatten","block","nbr","$blocks","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","classification","substring","end","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","$reset","$shadowData","$reply","reply","delegatedTo","$futureComponentData","isError","error","formatTime","dateString","hours","minutes","copy","startTime","endTime","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 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 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 };\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(name) {\n var i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), this.id);\n this.name = name;\n Calendar.$calendars.splice(i, 1);\n Calendar.$add(this);\n return this.$save();\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 d = Calendar.$q.defer(),\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 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 $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 $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 return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\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 });\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(event) { return event.selected; })).length;\n }\n return count;\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 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 = {};\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 // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[startDate.getDayString()] = data.blocks[i];\n startDate.addDays(1);\n }\n\n Component.$log.debug('blocks ready (' + _.keys(blocks).length + ')');\n\n // Save the blocks to the object model\n Component.$blocks = blocks;\n\n deferred.resolve(blocks);\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 if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\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 $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 times\n component.startTime = component.startDate ? formatTime(component.startDate) : '';\n component.endTime = component.endDate ? formatTime(component.endDate) : '';\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(dateString) {\n // YYYY-MM-DDTHH:MM-ZZ:00 => YYYY-MM-DD HH:MM\n var date = new Date(dateString.substring(0,10) + ' ' + dateString.substring(11,16)),\n hours = date.getHours(),\n minutes = date.getMinutes();\n\n if (hours < 10) hours = '0' + hours;\n if (minutes < 10) minutes = '0' + minutes;\n\n return hours + ':' + minutes;\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","$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","prototype","isOwned","isSuperUser","getClassName","base","isUndefined","$rename","$save","$delete","remove","status","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","save","$omit","$setActivation","active","$getComponent","componentId","recurrenceId","$find","value","key","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","$filter","type","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","reduce","events","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","flatten","block","nbr","$blocks","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","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","$reset","$shadowData","$reply","reply","delegatedTo","$futureComponentData","isError","error","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 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 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 };\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(name) {\n var i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), this.id);\n this.name = name;\n Calendar.$calendars.splice(i, 1);\n Calendar.$add(this);\n return this.$save();\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 d = Calendar.$q.defer(),\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 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 $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 $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 return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\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 });\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(event) { return event.selected; })).length;\n }\n return count;\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 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 = {};\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 // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[startDate.getDayString()] = data.blocks[i];\n startDate.addDays(1);\n }\n\n Component.$log.debug('blocks ready (' + _.keys(blocks).length + ')');\n\n // Save the blocks to the object model\n Component.$blocks = blocks;\n\n deferred.resolve(blocks);\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 //this.startDate = this.start.toISOString();\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 //this.endDate = this.end.toISOString();\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 //this.startDate = this.due.toISOString();\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 diff --git a/UI/WebServerResources/js/vendor/angular-material.js b/UI/WebServerResources/js/vendor/angular-material.js index d41c03a66..e7f616120 100644 --- a/UI/WebServerResources/js/vendor/angular-material.js +++ b/UI/WebServerResources/js/vendor/angular-material.js @@ -2,7 +2,7 @@ * Angular Material Design * https://github.com/angular/material * @license MIT - * v0.10.1-master-e4ca61f + * v0.10.1-master-e26a275 */ (function( window, angular, undefined ){ "use strict"; @@ -2632,7 +2632,6 @@ function InterimElementProvider() { "use strict"; (function () { - 'use strict'; /** @@ -2674,131 +2673,175 @@ function InterimElementProvider() { * } * ``` */ - angular.module('material.layout', [ ]) + angular.module('material.layout', [ 'ng' ]) // Attribute directives with optional value(s) - .directive('layout' , attribute_withValue('layout' , true) ) - .directive('layoutSm' , attribute_withValue('layout-sm' , true) ) - .directive('layoutGtSm' , attribute_withValue('layout-gt-sm', true) ) - .directive('layoutMd' , attribute_withValue('layout-md' , true) ) - .directive('layoutGtMd' , attribute_withValue('layout-gt-md', true) ) - .directive('layoutLg' , attribute_withValue('layout-lg' , true) ) - .directive('layoutGtLg' , attribute_withValue('layout-gt-lg', true) ) + .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' , attribute_withValue('flex' , true) ) - .directive('flexSm' , attribute_withValue('flex-sm' , true) ) - .directive('flexGtSm' , attribute_withValue('flex-gt-sm' , true) ) - .directive('flexMd' , attribute_withValue('flex-md' , true) ) - .directive('flexGtMd' , attribute_withValue('flex-gt-md' , true) ) - .directive('flexLg' , attribute_withValue('flex-lg' , true) ) - .directive('flexGtLg' , attribute_withValue('flex-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' , attribute_withValue('layout-align') ) - .directive('layoutAlignSm' , attribute_withValue('layout-align-sm') ) - .directive('layoutAlignGtSm' , attribute_withValue('layout-align-gt-sm') ) - .directive('layoutAlignMd' , attribute_withValue('layout-align-md') ) - .directive('layoutAlignGtMd' , attribute_withValue('layout-align-gt-md') ) - .directive('layoutAlignLg' , attribute_withValue('layout-align-lg') ) - .directive('layoutAlignGtLg' , attribute_withValue('layout-align-gt-lg') ) + .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' , attribute_withValue('flex-order') ) - .directive('flexOrderSm' , attribute_withValue('flex-order-sm') ) - .directive('flexOrderGtSm' , attribute_withValue('flex-order-gt-sm') ) - .directive('flexOrderMd' , attribute_withValue('flex-order-md') ) - .directive('flexOrderGtMd' , attribute_withValue('flex-order-gt-md') ) - .directive('flexOrderLg' , attribute_withValue('flex-order-lg') ) - .directive('flexOrderGtLg' , attribute_withValue('flex-order-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' , attribute_withValue('offset') ) - .directive('offsetSm' , attribute_withValue('offset-sm') ) - .directive('offsetGtSm' , attribute_withValue('offset-gt-sm') ) - .directive('offsetMd' , attribute_withValue('offset-md') ) - .directive('offsetGtMd' , attribute_withValue('offset-gt-md') ) - .directive('offsetLg' , attribute_withValue('offset-lg') ) - .directive('offsetGtLg' , attribute_withValue('offset-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 ) + // Attribute directives with no value(s) - .directive('layoutMargin' , attribute_noValue('layout-margin') ) - .directive('layoutPadding' , attribute_noValue('layout-padding') ) - .directive('layoutWrap' , attribute_noValue('layout-wrap') ) - .directive('layoutFill' , attribute_noValue('layout-fill') ) + .directive('layoutMargin' , attributeWithoutValue('layout-margin') ) + .directive('layoutPadding' , attributeWithoutValue('layout-padding') ) + .directive('layoutWrap' , attributeWithoutValue('layout-wrap') ) + .directive('layoutFill' , attributeWithoutValue('layout-fill') ) - .directive('hide' , attribute_noValue('hide') ) - .directive('hideSm' , attribute_noValue('hide-sm') ) - .directive('hideGtSm' , attribute_noValue('hide-gt-sm') ) - .directive('hideMd' , attribute_noValue('hide-md') ) - .directive('hideGtMd' , attribute_noValue('hide-gt-md') ) - .directive('hideLg' , attribute_noValue('hide-lg') ) - .directive('hideGtLg' , attribute_noValue('hide-gt-lg') ) - .directive('show' , attribute_noValue('show') ) - .directive('showSm' , attribute_noValue('show-sm') ) - .directive('showGtSm' , attribute_noValue('show-gt-sm') ) - .directive('showMd' , attribute_noValue('show-md') ) - .directive('showGtMd' , attribute_noValue('show-gt-md') ) - .directive('showLg' , attribute_noValue('show-lg') ) - .directive('showGtLg' , attribute_noValue('show-gt-lg') ); + .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') ); /** - * Creates a registration function with for ngMaterial Layout attribute directive - * - * Note: This provides easy translation to switch ngMaterial - * attribute selectors to CLASS selectors and directives. - * - * !! This is important for IE Browser performance - * - * @param classname String attribute name; eg `layout-gt-md` with value ="row" - * @param addDirectiveAsClass Boolean + * 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 */ - function attribute_withValue(className, addDirectiveAsClass) { - return [function() { - return { - compile : function (element, attr) { - attributeValueToClass(null, element, attr); - // !! use for postLink to account for transforms after ng-transclude - return attributeValueToClass; - } - }; - }]; + /** + * 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 { + compile: function(element, attr) { + attributeValueToClass(null, element, attr); - /** - * Add as transformed class selector(s), then - * remove the deprecated attribute selector - */ - function attributeValueToClass(scope, element, attr) { - var directive = attr.$normalize(className); + // Use for postLink to account for transforms after ng-transclude. + return attributeValueToClass; + } + }; + }; - // Add transformed class selector(s) - if (addDirectiveAsClass) element.addClass(className); - if (attr[directive]) - element.addClass(className + "-" + attr[directive].replace(/\s+/g, "-")); + /** + * Add as transformed class selector(s), then + * remove the deprecated attribute selector + */ + function attributeValueToClass(scope, element, attr) { + var directive = attr.$normalize(className); - try { - element.removeAttr(className); - } catch(e) { } + // 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 - * - * Simple transpose of attribute usage to class usage + * Creates a registration function with for ngMaterial Layout attribute directive. + * This is a `simple` transpose of attribute usage to class usage */ - function attribute_noValue(className) { - return [function() { - return { - compile : function (element, attr) { - attributeToClass(null, element); + function attributeWithoutValue(className) { + return function() { + return { + compile: function(element, attr) { + attributeToClass(null, element); - // !! use for postLink to account for transforms after ng-transclude - return attributeToClass; - } - }; - }]; + // Use for postLink to account for transforms after ng-transclude. + return attributeToClass; + } + }; + }; /** * Add as transformed class selector, then @@ -2806,12 +2849,27 @@ function InterimElementProvider() { */ function attributeToClass(scope, element) { element.addClass(className); - try { + + if ( scope ) { + // After link-phase, remove deprecated layout attribute selector element.removeAttr(className); - } catch(e) { } + } } } + /** + * 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; + }]; + + } + })(); })(); @@ -3776,9 +3834,9 @@ angular.module('material.core.theming', ['material.core.theming.palette']) .run(generateThemes); /** - * @ngdoc provider + * @ngdoc service * @name $mdThemingProvider - * @module material.core + * @module material.core.theming * * @description Provider to configure the `$mdTheming` service. */ @@ -5125,10 +5183,11 @@ angular * @description * BottomSheet */ -angular.module('material.components.bottomSheet', [ - 'material.core', - 'material.components.backdrop' -]) +angular + .module('material.components.bottomSheet', [ + 'material.core', + 'material.components.backdrop' + ]) .directive('mdBottomSheet', MdBottomSheetDirective) .provider('$mdBottomSheet', MdBottomSheetProvider); @@ -5282,7 +5341,7 @@ function MdBottomSheetProvider($$interimElementProvider) { $mdTheming.inherit(bottomSheet.element, options.parent); if (options.disableParentScroll) { - options.restoreScroll = $mdUtil.disableScrollAround(options.parent); + options.restoreScroll = $mdUtil.disableScrollAround(bottomSheet.element, options.parent); } return $animate.enter(bottomSheet.element, options.parent) @@ -11339,9 +11398,9 @@ var SELECT_EDGE_MARGIN = 8; var selectNextId = 0; angular.module('material.components.select', [ - 'material.core', - 'material.components.backdrop' -]) + 'material.core', + 'material.components.backdrop' + ]) .directive('mdSelect', SelectDirective) .directive('mdSelectMenu', SelectMenuDirective) .directive('mdOption', OptionDirective) @@ -12668,7 +12727,8 @@ SelectProvider.$inject = ["$$interimElementProvider"]; * @description * A Sidenav QP component. */ -angular.module('material.components.sidenav', [ +angular + .module('material.components.sidenav', [ 'material.core', 'material.components.backdrop' ]) @@ -12679,7 +12739,6 @@ angular.module('material.components.sidenav', [ /** - * @private * @ngdoc service * @name $mdSidenav * @module material.components.sidenav @@ -13478,21 +13537,21 @@ SliderDirective.$inject = ["$$rAF", "$window", "$mdAria", "$mdUtil", "$mdConstan (function(){ "use strict"; -/* +/** * @ngdoc module * @name material.components.sticky * @description - * * Sticky effects for md + * */ - -angular.module('material.components.sticky', [ - 'material.core', - 'material.components.content' -]) +angular + .module('material.components.sticky', [ + 'material.core', + 'material.components.content' + ]) .factory('$mdSticky', MdSticky); -/* +/** * @ngdoc service * @name $mdSticky * @module material.components.sticky @@ -13507,7 +13566,6 @@ angular.module('material.components.sticky', [ * when the user starts scrolling past the original element. * If not provided, it will use the result of `element.clone()`. */ - function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { var browserStickySupport = checkStickySupport(); @@ -13614,7 +13672,6 @@ function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { setCurrentItem(item); } - /*************** * Private ***************/ @@ -13639,7 +13696,6 @@ function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { } } - // As we scroll, push in and select the correct sticky element. function onScroll() { var scrollTop = contentEl.prop('scrollTop'); @@ -13687,7 +13743,7 @@ function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { } // If the next item is close to the current one, pull the current one down into view - if (self.next && scrollTop >= self.next.top - self.current.height) { + if (self.next && self.current && (scrollTop >= (self.next.top - self.current.height))) { translate(self.current, scrollTop + (self.next.top - scrollTop - self.current.height)); return; } @@ -13700,55 +13756,55 @@ function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { translate(self.current, scrollTop); } } - - function setCurrentItem(item) { - if (self.current === item) return; - // Deactivate currently active item - if (self.current) { - translate(self.current, null); - setStickyState(self.current, null); - } - // Activate new item if given - if (item) { - setStickyState(item, 'active'); - } + function setCurrentItem(item) { + if (self.current === item) return; + // Deactivate currently active item + if (self.current) { + translate(self.current, null); + setStickyState(self.current, null); + } - self.current = item; - var index = self.items.indexOf(item); - // If index === -1, index + 1 = 0. It works out. - self.next = self.items[index + 1]; - self.prev = self.items[index - 1]; - setStickyState(self.next, 'next'); - setStickyState(self.prev, 'prev'); - } + // Activate new item if given + if (item) { + setStickyState(item, 'active'); + } - function setStickyState(item, state) { - if (!item || item.state === state) return; - if (item.state) { - item.clone.attr('sticky-prev-state', item.state); - item.element.attr('sticky-prev-state', item.state); - } - item.clone.attr('sticky-state', state); - item.element.attr('sticky-state', state); - item.state = state; - } + self.current = item; + var index = self.items.indexOf(item); + // If index === -1, index + 1 = 0. It works out. + self.next = self.items[index + 1]; + self.prev = self.items[index - 1]; + setStickyState(self.next, 'next'); + setStickyState(self.prev, 'prev'); + } - function translate(item, amount) { - if (!item) return; - if (amount === null || amount === undefined) { - if (item.translateY) { - item.translateY = null; - item.clone.css($mdConstant.CSS.TRANSFORM, ''); - } - } else { - item.translateY = amount; - item.clone.css( - $mdConstant.CSS.TRANSFORM, - 'translate3d(' + item.left + 'px,' + amount + 'px,0)' - ); - } - } + function setStickyState(item, state) { + if (!item || item.state === state) return; + if (item.state) { + item.clone.attr('sticky-prev-state', item.state); + item.element.attr('sticky-prev-state', item.state); + } + item.clone.attr('sticky-state', state); + item.element.attr('sticky-state', state); + item.state = state; + } + + function translate(item, amount) { + if (!item) return; + if (amount === null || amount === undefined) { + if (item.translateY) { + item.translateY = null; + item.clone.css($mdConstant.CSS.TRANSFORM, ''); + } + } else { + item.translateY = amount; + item.clone.css( + $mdConstant.CSS.TRANSFORM, + 'translate3d(' + item.left + 'px,' + amount + 'px,0)' + ); + } + } } // Function to check for browser sticky support @@ -13824,10 +13880,11 @@ MdSticky.$inject = ["$document", "$mdConstant", "$$rAF", "$mdUtil"]; * > To improve the visual grouping of content, use the system color for your subheaders. * */ -angular.module('material.components.subheader', [ - 'material.core', - 'material.components.sticky' -]) +angular + .module('material.components.subheader', [ + 'material.core', + 'material.components.sticky' + ]) .directive('mdSubheader', MdSubheaderDirective); /** @@ -20230,7 +20287,7 @@ angular * @ngInject */ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipple, - $mdUtil, $animate, $attrs, $compile, $mdTheming) { + $mdUtil, $animateCss, $attrs, $compile, $mdTheming) { // define private properties var ctrl = this, locked = false, @@ -20859,17 +20916,41 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp newHeight = contentHeight + tabsHeight, currentHeight = $element.prop('clientHeight'); if (currentHeight === newHeight) return; + + // Lock during animation so the user can't change tabs locked = true; - $animate - .animate( - $element, - { height: currentHeight + 'px' }, - { height: newHeight + 'px' } - ) - .then(function () { - $element.css('height', ''); - locked = false; - }); + + 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 + // first animates to 0, then back to the proper height causing a visual glitch + $element.css(fromHeight); + + // Animate the height from the old to the new + $animateCss($element, { + from: fromHeight, + to: toHeight, + easing: 'cubic-bezier(0.35, 0, 0.25, 1)', + duration: 0.5 + }).start().done(function () { + // Then (to fix the same iOS issue as above), disable transitions and remove the specific + // pixel height so the height can size with browser width/content changes, etc. + $element.css({ + transition: 'none', + height: '' + }); + + // In the next tick, re-allow transitions (if we do it all at once, $element.css is "smart" + // enough to batch it for us instead of doing it immediately, which undoes the original + // transition: none) + $mdUtil.nextTick(function() { + $element.css('transition', ''); + }); + + // And unlock so tab changes can occur + locked = false; + }); } /** @@ -20938,7 +21019,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp $mdTabInkRipple.attach(scope, element, options); } } -MdTabsController.$inject = ["$scope", "$element", "$window", "$mdConstant", "$mdTabInkRipple", "$mdUtil", "$animate", "$attrs", "$compile", "$mdTheming"]; +MdTabsController.$inject = ["$scope", "$element", "$window", "$mdConstant", "$mdTabInkRipple", "$mdUtil", "$animateCss", "$attrs", "$compile", "$mdTheming"]; })(); (function(){ diff --git a/UI/WebServerResources/js/vendor/angular-material.min.js b/UI/WebServerResources/js/vendor/angular-material.min.js index 7c54a4a37..717a6db70 100644 --- a/UI/WebServerResources/js/vendor/angular-material.min.js +++ b/UI/WebServerResources/js/vendor/angular-material.min.js @@ -2,14 +2,13 @@ * Angular Material Design * https://github.com/angular/material * @license MIT - * v0.10.1-master-e4ca61f + * v0.10.1-master-e26a275 */ -!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.layout","material.core.theming.palette","material.core.theming","material.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.animate","material.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 p.disableScrollAround._enableScrolling}}function i(){var e=d.parentNode,t=e.getAttribute("style")||"",n=d.getAttribute("style")||"",o=p.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(p.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)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=p.now();(!n||i-n>t)&&(e.apply(o,r),n=i)}},time:function(e){var t=p.now();return e(),p.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++},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){for(var o=0,r=e.length;r>o;o++)if(e[o].nodeName.toLowerCase()===n)return t.element(e[o]);return 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){function n(){var e=o.queue,t=o.digest;o.queue=[],o.timeout=null,o.digest=!1,e.forEach(function(e){e()}),t&&d.$digest()}var o=p.nextTick,r=o.timeout,a=o.queue||[];return a.push(e),null==t&&(t=!0),o.digest=o.digest||t,o.queue=a,r||(o.timeout=i(n,0,!1))},processTemplate:function(e){return h?e:e&&t.isString(e)?e.replace(/\{\{/g,m).replace(/}}/g,u):e}};return p.dom.animator=c(p),p}var r=0;t.module("material.core").factory("$mdUtil",o),o.$inject=["$document","$timeout","$compile","$rootScope","$$mdAnimate","$interpolate"],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=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),s.show(t.extend({},l,e))}function i(t,n){var r={};return r[e]=m,o.invoke(t||function(){return n},{},r)}var a,l,s=n(),m={hide:s.hide,cancel:s.cancel,show:r};return a=c.methods||[],l=i(c.optionsFactory,{}),t.forEach(d,function(e,t){m[t]=e}),t.forEach(c.presets,function(e,n){function o(e){this._options=t.extend({},r,e)}var r=i(e.optionsFactory,{}),d=(e.methods||[]).concat(a);if(t.extend(r,{$type:n}),t.forEach(d,function(e){o.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var c="show"+n.charAt(0).toUpperCase()+n.slice(1);m[c]=function(e){var t=m[n](e);return m.show(t)}}m[n]=function(n){return arguments.length&&e.argOption&&!t.isObject(n)&&!t.isArray(n)?(new o)[e.argOption](n):new o(n)}}),m}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){return function(){function m(e){e=e||{};var t=new p(e),n=!e.skipHide&&E.length?f.hide():o.when(!0);return n["finally"](function(){E.push(t),t.show()["catch"](function(e){})}),t.deferred.promise}function u(e,t){function r(t){return t.remove(e||b,!1)["catch"](function(e){}),t.deferred.promise}if(!E.length)return o.when(e);if(t=t||{},t.closeAll){var i=o.all(E.reverse().map(r));return E=[],i}if(t.closeTo!==n)return o.all(E.splice(t.closeTo).map(r));var a=E.pop();return r(a)}function h(e){var t=E.shift();return t?(t.remove(e||g,!0)["catch"](function(e){}),t.deferred.promise):o.when(e)}function p(m){function u(){return o(function(e,t){function n(e){y.deferred.reject(e),t(e)}g(m).then(function(t){A=b(t,m),C=M(A,m,t.controller).then(e,n)})})}function h(e,t){return m.cancelAutoHide&&m.cancelAutoHide(),o(function(n,r){function i(){y.deferred.resolve(e),n(e)}function a(e){y.deferred.reject(e),r(e)}o.when(C)["finally"](function(){m.element.triggerHandler("$mdInterimElementRemove"),$(m.element,m).then(function(){t&&a(e)||i()},a)})})}function p(e){return e=e||{},e.template&&(e.template=c.processTemplate(e.template)),t.extend({preserveScope:!1,cancelAutoHide:t.noop,scope:e.scope||r.$new(e.isolateScope),onShow:function(e,t,n){return d.enter(t,n.parent)},onRemove:function(e,t){return t&&d.leave(t)||o.when()}},e)}function g(e){var t=e.skipCompile?null:l.compile(e);return t||o(function(t){t({locals:{},link:function(){return e.element}})})}function b(e,n){t.extend(e.locals,n);var o=e.link(n.scope);return n.element=o,n.parent=E(o,n),n.themable&&s(o),o}function E(n,o){var r=o.parent;if(r=t.isFunction(r)?r(o.scope,n,o):t.element(t.isString(r)?e[0].querySelector(r):r),!(r||{}).length){var i;return a[0]&&a[0].querySelector&&(i=a[0].querySelector(":not(svg) > body")),i||(i=a[0]),"#comment"==i.nodeName&&(i=e[0].body),t.element(i)}return r}function v(){var e,o=t.noop;m.hideDelay&&(e=i(f.hide,m.hideDelay),o=function(){i.cancel(e)}),m.cancelAutoHide=function(){o(),m.cancelAutoHide=n}}function M(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),v(),t(e)},a)}catch(d){a(d.message)}})}function $(e,n){var r=n.onRemoving||t.noop;return o(function(t,i){try{var a=o.when(e?n.onRemove(n.scope,e,n):!0);r(e,a),a.then(function(){!n.preserveScope&&n.scope.$destroy(),t(e)},i)}catch(d){i(d.message)}})}var y,A,C=o.when(!0);return m=p(m),y={options:m,deferred:o.defer(),show:u,remove:h}}var f,g=!1,b=!0,E=[];return f={show:m,hide:u,cancel:h}}}return e.$get=o,o.$inject=["$document","$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);t&&o.addClass(e),r[i]&&o.addClass(e+"-"+r[i].replace(/\s+/g,"-"));try{o.removeAttr(e)}catch(a){}}return[function(){return{compile:function(e,t){return n(null,e,t),n}}}]}function n(e){function t(t,n){n.addClass(e);try{n.removeAttr(e)}catch(o){}}return[function(){return{compile:function(e,n){return t(null,e),t}}}]}t.module("material.layout",[]).directive("layout",e("layout",!0)).directive("layoutSm",e("layout-sm",!0)).directive("layoutGtSm",e("layout-gt-sm",!0)).directive("layoutMd",e("layout-md",!0)).directive("layoutGtMd",e("layout-gt-md",!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("flexMd",e("flex-md",!0)).directive("flexGtMd",e("flex-gt-md",!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("layoutAlignMd",e("layout-align-md")).directive("layoutAlignGtMd",e("layout-align-gt-md")).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("flexOrderMd",e("flex-order-md")).directive("flexOrderGtMd",e("flex-order-gt-md")).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("offsetMd",e("offset-md")).directive("offsetGtMd",e("offset-gt-md")).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("hideMd",n("hide-md")).directive("hideGtMd",n("hide-gt-md")).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("showMd",n("show-md")).directive("showGtMd",n("show-gt-md")).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(n,r,i){var a=o(r);return e.attach(n,r,t.extend(a,i))}function o(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:n}}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=!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(){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.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))}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()}}(),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":"300","hue-2":"600","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"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.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.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(e,t){var i=[],l=M(e);t.transitionStyle&&i.push([a+"transition",t.transitionStyle]),t.keyframeStyle&&i.push([a+"animation",t.keyframeStyle]),t.delay&&i.push([a+"transition-delay",t.delay+"s"]),t.duration&&i.push([a+"transition-duration",t.duration+"s"]);var s=t.keyframeStyle||t.to&&(t.duration>0||t.transitionStyle),u=!!t.addClass||!!t.removeClass,f=s||u;$(e,!0),E(e,t);var y,A,C=!1;return{close:close,start:function(){function s(){return C?void 0:(C=!0,y&&A&&e.off(y,A),h(e,t),b(e,t),r(i,function(e){l.style[o(e[0])]=""}),u.complete(!0),u)}var u=new n;return g(function(){if($(e,!1),!f)return s();r(i,function(e){var t=e[0],n=e[1];l.style[o(t)]=n}),h(e,t);var n=p(e);if(0===n.duration)return s();var u=[];t.easing&&(n.transitionDuration&&u.push([a+"transition-timing-function",t.easing]),n.animationDuration&&u.push([a+"animation-timing-function",t.easing])),t.delay&&n.animationDelay&&u.push([a+"animation-delay",t.delay+"s"]),t.duration&&n.animationDuration&&u.push([a+"animation-duration",t.duration+"s"]),r(u,function(e){var t=e[0],n=e[1];l.style[o(t)]=n,i.push(e)});var g=n.delay,b=1e3*g,E=n.duration,M=1e3*E,C=Date.now();y=[],n.transitionDuration&&y.push(d),n.animationDuration&&y.push(c),y=y.join(" "),A=function(e){e.stopPropagation();var t=e.originalEvent||e,n=t.timeStamp||Date.now(),o=parseFloat(t.elapsedTime.toFixed(3));Math.max(n-C,0)>=b&&o>=E&&s()},e.on(y,A),v(e,t),m(s,b+1.5*M,!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),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(){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=document.createElement("tr"),t=0;7>t;t++){var n=document.createElement("th");n.textContent=this.dateLocale.shortDays[t],e.appendChild(n)}this.$element.find("thead").append(e)},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=n.getDay(),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}}()}(),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.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){return e?e.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,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 e(){return{template:'
    ',require:["ngModel","mdDatepicker"],scope:{minDate:"=mdMinDate",maxDate:"=mdMaxDate",placeholder:"@mdPlaceholder"},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,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),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",e);var o=3,r="md-datepicker-invalid",i=500;n.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],n.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()}},n.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(r)}),e.ngInputElement.on("input",t.bind(e,e.resizeInputElement)),e.ngInputElement.on("input",e.$mdUtil.debounce(e.handleInputEvent,i,e))},n.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()})},n.prototype.installPropertyInterceptors=function(){var e=this;this.$attrs.ngDisabled&&this.$element.scope().$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||""}})},n.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.calendarButton.disabled=e},n.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+o},n.prototype.handleInputEvent=function(){var e=this.inputElement.value,t=this.dateLocale.parseDate(e);this.dateUtil.setDateTimeToMidnight(t),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(r)):this.inputContainer.classList.toggle(r,e)},n.prototype.attachCalendarPane=function(){var e=this.calendarPane;this.$element.addClass("md-datepicker-open");var t=this.inputContainer.getBoundingClientRect(),n=document.body.getBoundingClientRect();e.style.left=t.left-n.left+"px",e.style.top=t.top-n.top+"px",document.body.appendChild(this.calendarPane),this.inputMask.style.left=t.width+"px",this.$$rAF(function(){e.classList.add("md-pane-open")})},n.prototype.detachCalendarPane=function(){this.$element.removeClass("md-datepicker-open"),this.calendarPane.classList.remove("md-pane-open"),this.calendarPane.parentNode&&this.calendarPane.parentNode.removeChild(this.calendarPane)},n.prototype.openCalendarPane=function(e){if(!this.isCalendarOpen&&!this.isDisabled){this.isCalendarOpen=!0,this.calendarPaneOpenedFrom=e.target,this.attachCalendarPane(),this.focusCalendar(),this.$mdUtil.disableScrollAround(this.calendarPane);var t=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",t.bodyClickHandler)},!1)}},n.prototype.closeCalendarPane=function(){this.isCalendarOpen=!1,this.detachCalendarPane(),this.calendarPaneOpenedFrom.focus(),this.calendarPaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler)},n.prototype.getCalendarCtrl=function(){return t.element(this.calendarPane.querySelector("md-calendar")).controller("mdCalendar")},n.prototype.focusCalendar=function(){var e=this;this.$mdUtil.nextTick(function(){e.getCalendarCtrl().focus()},!1)},n.prototype.setFocused=function(e){this.isFocused=e},n.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 o.setDate(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){return{restrict:"E",link:function(o,r,i){n(r),e(function(){function e(){r.toggleClass("md-content-overflow",o.scrollHeight>o.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}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 n=o.extractElementByName(n,"md-dialog"),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){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function m(e,n){var o={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},o,n.origin||{});var r=t.element((n.targetEvent||{}).target);r&&r.length&&(n.origin.element=r,n.origin.bounds=r[0].getBoundingClientRect(),n.origin.focus=function(){r.focus()}),n.parent=t.element(n.parent||c)}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.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(){n.backdrop&&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'+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"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],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(){H.direction=H.direction||"down",H.isOpen=H.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(){I=[]}function s(e){var n,o,r,i=0;do o=e.map(function(e){return e.replace("?","")}),n=t.equals(I,o),n||(e=m(e),r=e.length>=I.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 I.push(e.type),s(["mousedown","focusout?","focusin?","mouseup","click"])?(N(e),void l()):s(["touchstart?","touchend?","click"])?(N(e),void l()):s(["focusin"])?(H.open(),void l()):s(["focusout"])?(H.close(),void l()):void h()}function h(){D&&e.clearTimeout(D),D=e.setTimeout(function(){l()},250)}function p(){H.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=S()),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 H.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=S()[0].querySelectorAll(".md-fab-action-item");t.forEach(o,function(e){t.element(t.element(e).children()[0]).attr("tabindex",-1)}),H.currentActionIndex=H.currentActionIndex+n,H.currentActionIndex=Math.min(o.length-1,H.currentActionIndex),H.currentActionIndex=Math.max(0,H.currentActionIndex);var r=t.element(o[H.currentActionIndex]).children()[0];t.element(r).attr("tabindex",0),r.focus(),e.preventDefault(),e.stopImmediatePropagation()}function A(e){"left"===H.direction?$(e):M(e)}function C(e){"down"===H.direction?M(e):$(e)}function T(e){"left"===H.direction?M(e):$(e)}function k(e){"up"===H.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)&&H.toggle(),x(e.target)&&H.close()}function _(){return o.find("md-fab-trigger")}function S(){return o.find("md-fab-actions")}var H=this;H.open=function(){n.$evalAsync("vm.isOpen = true")},H.close=function(){n.$evalAsync("vm.isOpen = false"),o.find("md-fab-trigger")[0].focus()},H.toggle=function(){n.$evalAsync("vm.isOpen = !vm.isOpen")},d(),c(),f(),g();var D,I=[]}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.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=0/0,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* , - -
    - - - - - - - - - -
    -
    +
    - -
    - - - - - - - - - - - -
    - + - + diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox index b301a7e9a..28d35af6d 100644 --- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -176,21 +176,23 @@ diff --git a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox index 7bc8a95dd..fbb66e50a 100644 --- a/UI/Templates/ContactsUI/UIxContactViewTemplate.wox +++ b/UI/Templates/ContactsUI/UIxContactViewTemplate.wox @@ -3,51 +3,31 @@ xmlns="http://www.w3.org/1999/xhtml" xmlns:var="http://www.skyrix.com/od/binding" xmlns:const="http://www.skyrix.com/od/constant" - xmlns:label="OGo:label" - > - - -
    -
    - -
    -
    - -
    -
    -

    -
    {{editor.card.$description()}}
    - - - {{$chip.value}} - - -
    -
    - - close - - - - mode_edit - - - - delete - + xmlns:label="OGo:label"> +
    + +
    + + close + +
    + + + mode_edit + + + + delete + more_vert @@ -67,110 +47,133 @@ - -
    -
    -
    - -
    -
    - +
    + + +
    +
    +
    +
    -
    - {{editor.card.$birthday()}} +
    +
    -
    +
    +

    +
    {{editor.card.$description()}}
    + + + {{$chip.value}} + + +
    +
    +
    - -
    - - - - - - - - - -
    - -
    -
    +
    - -
    - -
    - -
    - -
    -
    - -
    -
    -
    - -
    - - - -
    -
    -
    -
    -
    -
    - - -
    -
    -
    -
    -
    - -
    -
    -
    + {{editor.card.$birthday()}}
    -
    -
    -
    + + +
    + + + + + + + +
    -
    -
    + +
    +
    +
    + +
    + +
    + +
    + +
    -
    -
    - - + +
    +
    +
    + +
    + + + +
    +
    +
    +
    +
    + +
    + + + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + diff --git a/UI/Templates/MailerUI/UIxMailEditor.wox b/UI/Templates/MailerUI/UIxMailEditor.wox index f8f0fabb3..0596911cd 100644 --- a/UI/Templates/MailerUI/UIxMailEditor.wox +++ b/UI/Templates/MailerUI/UIxMailEditor.wox @@ -6,7 +6,7 @@ xmlns:label="OGo:label"> - +
    edit @@ -34,166 +34,166 @@ -
    -
    +
    +
    - -
    - - - - - - {{user.$$fullname}} - {{user.$$email}} - - - - {{$chip}} - -
    - - -
    - - - - - - {{user.$$fullname}} - {{user.$$email}} - - - - {{$chip}} - -
    - - -
    - - - - - - {{user.$$fullname}} - {{user.$$email}} - - - - {{$chip}} - -
    - - - - - - + +
    + + + + + + {{user.$$fullname}} + {{user.$$email}} + + + + {{$chip}} +
    - -
    - Cc - Bcc - - - more_vert - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
    + + + + + + {{user.$$fullname}} + {{user.$$email}} + + + + {{$chip}} +
    -
    - - @@ -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"] } From 1118dbceff4f51ccf70e32434924cfc64301c87d Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 13 Oct 2015 16:09:36 -0400 Subject: [PATCH 194/355] Bump version to 3.0.0b3 --- Version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version b/Version index 0e2b74261..b8514dd8a 100644 --- a/Version +++ b/Version @@ -4,4 +4,4 @@ MAJOR_VERSION=3 MINOR_VERSION=0 -SUBMINOR_VERSION=0b2 +SUBMINOR_VERSION=0b3 From 43248fb5ea4cfdb704c1aaf85ec70393ae6da9b5 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 14 Oct 2015 08:55:57 -0400 Subject: [PATCH 195/355] (html) Minor improvements to message viewer --- UI/Templates/MailerUI/UIxMailViewTemplate.wox | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailViewTemplate.wox b/UI/Templates/MailerUI/UIxMailViewTemplate.wox index 64b45470e..c41f7426d 100644 --- a/UI/Templates/MailerUI/UIxMailViewTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailViewTemplate.wox @@ -51,7 +51,7 @@ delete - @@ -162,7 +162,8 @@
    collections
    -

    +

    +
    From 737a19e6536b4158b2989866d013ccebdd9f1e2c Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 14 Oct 2015 08:57:11 -0400 Subject: [PATCH 196/355] (html) Add labels in appointment & task editors --- UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox | 6 ++++-- UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox index bb05d5cde..cb28c37c4 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox @@ -102,7 +102,8 @@
    - +
    @@ -112,7 +113,8 @@
    - +
    diff --git a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox index c068a1523..327c4735a 100644 --- a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox @@ -85,7 +85,8 @@
    - + remove_circle @@ -104,7 +105,8 @@
    - + remove_circle From d5c09f61149465aa8b6083e26936cee80bfc5e9c Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 14 Oct 2015 09:00:01 -0400 Subject: [PATCH 197/355] Change order of JS files in Mail module --- UI/Templates/MailerUI/UIxMailMainFrame.wox | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/Templates/MailerUI/UIxMailMainFrame.wox b/UI/Templates/MailerUI/UIxMailMainFrame.wox index 85d01a2a7..adb350175 100644 --- a/UI/Templates/MailerUI/UIxMailMainFrame.wox +++ b/UI/Templates/MailerUI/UIxMailMainFrame.wox @@ -8,7 +8,7 @@ xmlns:label="OGo:label" className="UIxPageFrame" title="title" - const:jsFiles="Common.js, Contacts.services.js, Preferences.services.js, Mailer.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, vendor/ckeditor/ck.js, vendor/angular-file-upload.min.js"> + const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Mailer.js, Mailer.services.js, vendor/ckeditor/ckeditor.js, vendor/ckeditor/ck.js, vendor/angular-file-upload.min.js"> + + + diff --git a/UI/WebServerResources/js/Contacts/AddressBooksController.js b/UI/WebServerResources/js/Contacts/AddressBooksController.js index 54df1434c..d70ca3983 100644 --- a/UI/WebServerResources/js/Contacts/AddressBooksController.js +++ b/UI/WebServerResources/js/Contacts/AddressBooksController.js @@ -116,38 +116,9 @@ targetEvent: $event, clickOutsideToClose: true, escapeToClose: true, - 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(''), + templateUrl: 'UIxContactsImportDialog', controller: CardsImportDialogController, + controllerAs: '$CardsImportDialogController', locals: { folder: folder } @@ -158,36 +129,67 @@ */ CardsImportDialogController.$inject = ['scope', '$mdDialog', 'folder']; function CardsImportDialogController(scope, $mdDialog, folder) { + var vm = this; - scope.uploader = new FileUploader({ - url: ApplicationBaseURL + '/' + folder.id + '/import', - onProgressItem: function(item, progress) { - console.debug(item); console.debug(progress); - }, + vm.uploader = new FileUploader({ + url: ApplicationBaseURL + [folder.id, 'import'].join('/'), + autoUpload: true, + queueLimit: 1, + filters: [{ name: filterByExtension, fn: filterByExtension }], onSuccessItem: function(item, response, status, headers) { - console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2)); + var msg; + $mdDialog.hide(); + + if (response.imported === 0) + msg = l('No card was imported.'); + else { + msg = l('A total of %{0} cards were imported in the addressbook.', response.imported); + AddressBook.selectedFolder.$reload(); + } + $mdToast.show( $mdToast.simple() - .content(l('A total of %{0} cards were imported in the addressbook.', response.imported)) + .content(msg) .position('top right') .hideDelay(3000)); - AddressBook.selectedFolder.$reload(); - }, - onCancelItem: function(item, response, status, headers) { - console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2)); }, onErrorItem: function(item, response, status, headers) { - console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2)); + $mdToast.show({ + template: [ + '', + ' error_outline', + ' ' + l('An error occured while importing contacts.') + '', + '' + ].join(''), + position: 'top right', + hideDelay: 3000 + }); } }); - scope.close = function() { + vm.close = function() { $mdDialog.hide(); }; - scope.upload = function() { - scope.uploader.uploadAll(); - }; + + function filterByExtension(item) { + var isTextFile = item.type.indexOf('text') === 0 || + /\.(ldif|vcf|vcard)$/.test(item.name); + + if (!isTextFile) + $mdToast.show({ + template: [ + '', + ' error_outline', + ' ' + l('Select a vCard or LDIF file.') + '', + '' + ].join(''), + position: 'top right', + hideDelay: 3000 + }); + + return isTextFile; + } } } diff --git a/UI/WebServerResources/scss/components/toast/toast.scss b/UI/WebServerResources/scss/components/toast/toast.scss index 48c4ab4ca..ee7218357 100644 --- a/UI/WebServerResources/scss/components/toast/toast.scss +++ b/UI/WebServerResources/scss/components/toast/toast.scss @@ -1 +1,7 @@ -@import 'extends'; \ No newline at end of file +@import 'extends'; + +md-toast { + > md-icon { + margin-right: 12px; + } +} \ No newline at end of file From c7ef7a1d2fdf475a9c05a16c5778f933997a034f Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Wed, 11 Nov 2015 11:18:49 -0500 Subject: [PATCH 274/355] (feat) added calendar import/export feature --- UI/Scheduler/UIxCalFolderActions.m | 20 ++-- UI/Templates/SchedulerUI/UIxCalMainView.wox | 43 ++++++++- .../js/Scheduler/CalendarsController.js | 93 ++++++++++++++++++- .../js/Scheduler/Scheduler.app.js | 2 +- 4 files changed, 141 insertions(+), 17 deletions(-) diff --git a/UI/Scheduler/UIxCalFolderActions.m b/UI/Scheduler/UIxCalFolderActions.m index f108961bd..f8ee346c0 100644 --- a/UI/Scheduler/UIxCalFolderActions.m +++ b/UI/Scheduler/UIxCalFolderActions.m @@ -72,18 +72,14 @@ rc = [NSMutableDictionary dictionary]; request = [context request]; folder = [self clientObject]; - data = [request formValueForKey: @"calendarFile"]; - if ([data respondsToSelector: @selector(isEqualToString:)]) - fileContent = (NSString *) data; - else - { - fileContent = [[NSString alloc] initWithData: (NSData *) data - encoding: NSUTF8StringEncoding]; - if (fileContent == nil) - fileContent = [[NSString alloc] initWithData: (NSData *) data - encoding: NSISOLatin1StringEncoding]; - [fileContent autorelease]; - } + data = [[[[[request httpRequest] body] parts] lastObject] body]; + + fileContent = [[NSString alloc] initWithData: (NSData *) data + encoding: NSUTF8StringEncoding]; + if (fileContent == nil) + fileContent = [[NSString alloc] initWithData: (NSData *) data + encoding: NSISOLatin1StringEncoding]; + [fileContent autorelease]; if (fileContent && [fileContent length] && [fileContent hasPrefix: @"BEGIN:"]) diff --git a/UI/Templates/SchedulerUI/UIxCalMainView.wox b/UI/Templates/SchedulerUI/UIxCalMainView.wox index b4d843768..9a41c7ca6 100644 --- a/UI/Templates/SchedulerUI/UIxCalMainView.wox +++ b/UI/Templates/SchedulerUI/UIxCalMainView.wox @@ -8,7 +8,7 @@ xmlns:label="OGo:label" className="UIxPageFrame" title="title" - const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Mailer.services.js, Scheduler.js, Scheduler.services.js"> + const:jsFiles="Common.js, Preferences.services.js, Contacts.services.js, Mailer.services.js, vendor/angular-file-upload.min.js, Scheduler.js, Scheduler.services.js"> + + + + diff --git a/UI/WebServerResources/js/Scheduler/CalendarsController.js b/UI/WebServerResources/js/Scheduler/CalendarsController.js index 30350f160..5bc3dd27f 100644 --- a/UI/WebServerResources/js/Scheduler/CalendarsController.js +++ b/UI/WebServerResources/js/Scheduler/CalendarsController.js @@ -6,8 +6,8 @@ /** * @ngInject */ - CalendarsController.$inject = ['$rootScope', '$scope', '$window', '$mdDialog', '$log', 'sgFocus', 'Dialog', 'sgSettings', 'Calendar', 'User', 'stateCalendars']; - function CalendarsController($rootScope, $scope, $window, $mdDialog, $log, focus, Dialog, Settings, Calendar, User, stateCalendars) { + CalendarsController.$inject = ['$rootScope', '$scope', '$window', '$mdDialog', '$log', '$mdToast', 'FileUploader', 'sgFocus', 'Dialog', 'sgSettings', 'Calendar', 'User', 'stateCalendars']; + function CalendarsController($rootScope, $scope, $window, $mdDialog, $log, $mdToast, FileUploader, focus, Dialog, Settings, Calendar, User, stateCalendars) { var vm = this; vm.activeUser = Settings.activeUser; @@ -19,6 +19,8 @@ vm.revertEditing = revertEditing; vm.renameFolder = renameFolder; vm.share = share; + vm.importCalendar = importCalendar; + vm.exportCalendar = exportCalendar; vm.showLinks = showLinks; vm.showProperties = showProperties; vm.subscribeToFolder = subscribeToFolder; @@ -97,6 +99,93 @@ } } + function importCalendar($event, folder) { + $mdDialog.show({ + parent: angular.element(document.body), + targetEvent: $event, + clickOutsideToClose: true, + escapeToClose: true, + templateUrl: 'UIxCalendarImportDialog', + controller: CalendarImportDialogController, + controllerAs: '$CalendarImportDialogController', + locals: { + folder: folder + } + }); + + /** + * @ngInject + */ + CalendarImportDialogController.$inject = ['scope', '$mdDialog', 'folder']; + function CalendarImportDialogController(scope, $mdDialog, folder) { + var vm = this; + + vm.uploader = new FileUploader({ + url: ApplicationBaseURL + [folder.id, 'import'].join('/'), + autoUpload: true, + queueLimit: 1, + filters: [{ name: filterByExtension, fn: filterByExtension }], + onSuccessItem: function(item, response, status, headers) { + var msg; + + $mdDialog.hide(); + + if (response.imported === 0) + msg = l('No event was imported.'); + else { + msg = l('A total of %{0} events were imported in the calendar.', response.imported); + $rootScope.$emit('calendars:list'); + } + + $mdToast.show( + $mdToast.simple() + .content(msg) + .position('top right') + .hideDelay(3000)); + }, + onErrorItem: function(item, response, status, headers) { + $mdToast.show({ + template: [ + '', + ' error_outline', + ' ' + l('An error occurred while importing calendar.') + '', + '' + ].join(''), + position: 'top right', + hideDelay: 3000 + }); + } + }); + + vm.close = function() { + $mdDialog.hide(); + }; + + function filterByExtension(item) { + var isTextFile = item.type.indexOf('text') === 0 || + /\.(ics)$/.test(item.name); + + if (!isTextFile) + $mdToast.show({ + template: [ + '', + ' error_outline', + ' ' + l('Select an iCalendar file (.ics).') + '', + '' + ].join(''), + position: 'top right', + hideDelay: 3000 + }); + + return isTextFile; + } + } + } + + function exportCalendar(calendar) { + window.location.href = ApplicationBaseURL + '/' + calendar.id + '.ics' + '/export'; + } + function showLinks(calendar) { $mdDialog.show({ parent: angular.element(document.body), diff --git a/UI/WebServerResources/js/Scheduler/Scheduler.app.js b/UI/WebServerResources/js/Scheduler/Scheduler.app.js index 6813f1dc8..2931f7f5e 100644 --- a/UI/WebServerResources/js/Scheduler/Scheduler.app.js +++ b/UI/WebServerResources/js/Scheduler/Scheduler.app.js @@ -4,7 +4,7 @@ (function() { 'use strict'; - angular.module('SOGo.SchedulerUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI']) + angular.module('SOGo.SchedulerUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI']) .config(configure) .run(runBlock); From 87fc7b39cc30ba2984d8530fdcb512696c7e9a5e Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 11 Nov 2015 16:01:37 -0500 Subject: [PATCH 275/355] Handle ExpandedFolders settings from v2 --- UI/MailerUI/UIxMailMainFrame.m | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/UI/MailerUI/UIxMailMainFrame.m b/UI/MailerUI/UIxMailMainFrame.m index bc5d6930f..99ce6edc7 100644 --- a/UI/MailerUI/UIxMailMainFrame.m +++ b/UI/MailerUI/UIxMailMainFrame.m @@ -328,12 +328,17 @@ - (WOResponse *) getFoldersStateAction { - NSString *expandedFolders; + id o; + NSArray *expandedFolders; [self _setupContext]; - expandedFolders = [moduleSettings objectForKey: @"ExpandedFolders"]; + o = [moduleSettings objectForKey: @"ExpandedFolders"]; + if ([o isKindOfClass: [NSString class]]) + expandedFolders = [o componentsSeparatedByString: @","]; + else + expandedFolders = o; - return [self responseWithStatus: 200 andString: expandedFolders]; + return [self responseWithStatus: 200 andJSONRepresentation: expandedFolders]; } - (NSString *) verticalDragHandleStyle From b30f20e1b3aa2c6770de11eb00b823019f08beb1 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 11 Nov 2015 16:42:46 -0500 Subject: [PATCH 276/355] (js) Fix creation of a Calendar --- .../js/Scheduler/Calendar.service.js | 48 ++++++++++++++++++- .../js/Scheduler/CalendarsController.js | 4 +- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/UI/WebServerResources/js/Scheduler/Calendar.service.js b/UI/WebServerResources/js/Scheduler/Calendar.service.js index 1d8293baa..9d8244713 100644 --- a/UI/WebServerResources/js/Scheduler/Calendar.service.js +++ b/UI/WebServerResources/js/Scheduler/Calendar.service.js @@ -14,7 +14,7 @@ if (this.name && !this.id) { // Create a new calendar on the server var newCalendarData = Calendar.$$resource.create('createFolder', this.name); - angular.extend(this, newCalendarData); + this.$unwrap(newCalendarData); } if (this.id) { this.$acl = new Calendar.$$Acl('Calendar/' + this.id); @@ -239,6 +239,7 @@ * @param {object} data - attributes of calendar */ Calendar.prototype.init = function(data) { + this.color = this.color || '#AAAAAA'; angular.extend(this, data); // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?) this.isOwned = Calendar.activeUser.isSuperUser || this.owner == Calendar.activeUser.login; @@ -249,6 +250,25 @@ } }; + /** + * @function $id + * @memberof Calendar.prototype + * @desc Resolve the calendar id. + * @returns a promise of the calendar id + */ + Calendar.prototype.$id = function() { + if (this.id) { + // Object already unwrapped + return Calendar.$q.when(this.id); + } + else { + // Wait until object is unwrapped + return this.$futureCalendarData.then(function(calendar) { + return calendar.id; + }); + } + }; + /** * @function getClassName * @memberof Calendar.prototype @@ -383,6 +403,32 @@ return Calendar.$Component.$find(this.id, componentId, recurrenceId); }; + /** + * @function $unwrap + * @memberof Calendar.prototype + * @desc Unwrap a promise + * @param {promise} futureCalendarData - a promise of the Calendar's data + */ + Calendar.prototype.$unwrap = function(futureCalendarData) { + var _this = this; + + // Expose and resolve the promise + this.$futureCalendarData = futureCalendarData.then(function(data) { + return Calendar.$timeout(function() { + // Extend Calendar instance with received data + _this.init(data); + return _this; + }); + }, function(data) { + _this.isError = true; + if (angular.isObject(data)) { + Calendar.$timeout(function() { + angular.extend(_this, data); + }); + } + }); + }; + /** * @function $omit * @memberof Calendar.prototype diff --git a/UI/WebServerResources/js/Scheduler/CalendarsController.js b/UI/WebServerResources/js/Scheduler/CalendarsController.js index 5bc3dd27f..77ef4e6ad 100644 --- a/UI/WebServerResources/js/Scheduler/CalendarsController.js +++ b/UI/WebServerResources/js/Scheduler/CalendarsController.js @@ -63,7 +63,9 @@ owner: UserLogin } ); - Calendar.$add(calendar); + calendar.$id().then(function() { + Calendar.$add(calendar); + }); }); } From 98493fbcac8f78efb97b2b91ede0c89438bb43e5 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Wed, 11 Nov 2015 16:44:26 -0500 Subject: [PATCH 277/355] (css) Fix scrollbars in Calendar views --- UI/Templates/SchedulerUI/UIxCalMonthView.wox | 2 +- UI/WebServerResources/scss/views/SchedulerUI.scss | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxCalMonthView.wox b/UI/Templates/SchedulerUI/UIxCalMonthView.wox index 26eda9e41..10b80c2f5 100644 --- a/UI/Templates/SchedulerUI/UIxCalMonthView.wox +++ b/UI/Templates/SchedulerUI/UIxCalMonthView.wox @@ -47,7 +47,7 @@
    - +
    Date: Thu, 12 Nov 2015 12:29:10 -0500 Subject: [PATCH 278/355] Display description for alarm & repeat definitions This is not the perfect solution has the localization may be unsuitable in some languages. --- .../UIxAppointmentViewTemplate.wox | 6 +-- .../SchedulerUI/UIxTaskViewTemplate.wox | 10 ++--- .../js/Scheduler/Component.service.js | 40 +++++++++++++++++++ 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox index 837c28c90..1c42cf81b 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox @@ -120,12 +120,12 @@ repeat -

    +

    {{editor.component.repeatDescription()}}

    - + alarm_on -

    +

    {{editor.component.alarmDescription()}}

    people diff --git a/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox index 53ff9407f..324190d1d 100644 --- a/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox @@ -111,24 +111,24 @@

    {{editor.component.percentComplete}} %

    - + link

    {{url.value}}

    mode_comment -

    {{editor.component.comment}}

    +

    {{::editor.component.comment}}

    repeat -

    +

    {{editor.component.repeatDescription()}}

    - alarm -

    + alarm_on +

    {{editor.component.alarmDescription()}}

    diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index 61b54a86d..f309d3045 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -1114,4 +1114,44 @@ return component; }; + /** + * @function repeatDescription + * @memberof Component.prototype + * @desc Return a localized description of the recurrence definition + * @return a localized string + */ + Component.prototype.repeatDescription = function() { + var localizedString = null; + if (this.repeat) + localizedString = l('repeat_' + this.repeat.frequency.toUpperCase()); + + return localizedString; + }; + + /** + * @function alarmDescription + * @memberof Component.prototype + * @desc Return a localized description of the reminder definition + * @return a localized string + */ + Component.prototype.alarmDescription = function() { + var key, localizedString = null; + if (this.alarm) { + key = ['reminder' + this.alarm.quantity, this.alarm.unit, this.alarm.reference].join('_'); + localizedString = l(key); + if (key === localizedString) + // No localized string for this reminder definition + localizedString = [this.alarm.quantity, + l('reminder_' + this.alarm.unit), + l('reminder_' + this.alarm.reference)].join(' '); + } + + return localizedString; + }; + + Component.prototype.toString = function() { + return '[Component ' + this.id + ']'; + }; + + })(); From 4f6c09956424060f26866a665620ee73fc5f87a2 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 12 Nov 2015 16:04:31 -0500 Subject: [PATCH 279/355] (js) Fix creation of a task --- UI/WebServerResources/js/Scheduler/CalendarListController.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/WebServerResources/js/Scheduler/CalendarListController.js b/UI/WebServerResources/js/Scheduler/CalendarListController.js index 16d0d6f22..bc053e494 100644 --- a/UI/WebServerResources/js/Scheduler/CalendarListController.js +++ b/UI/WebServerResources/js/Scheduler/CalendarListController.js @@ -123,9 +123,9 @@ } else { // TODO respect SOGoDefaultCalendar - component = new Component({ pid: 'personal', type: type }); if (vm.componentType == 'tasks') type = 'task'; + component = new Component({ pid: 'personal', type: type }); } // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or From fc1dfcff106d24c5ed9ecfa8453fb546b0d04e2e Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 13 Nov 2015 10:46:32 -0500 Subject: [PATCH 280/355] (js) Fix display and refresh of freebusy --- .../UIxAppointmentEditorTemplate.wox | 6 +-- .../js/Scheduler/Component.service.js | 39 ++++++++++++------- .../js/Scheduler/ComponentController.js | 11 ++++-- .../scss/views/SchedulerUI.scss | 6 +++ 4 files changed, 42 insertions(+), 20 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox index 39974263e..82278033c 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox @@ -259,18 +259,18 @@
    -
    + - -
    + diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index f309d3045..d13a4166b 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -522,19 +522,12 @@ // Allow the component to be moved to a different calendar this.destinationCalendar = this.pid; - if (this.organizer && this.organizer.email) { - this.organizer.$image = Component.$gravatar(this.organizer.email, 32); - } + // if (this.organizer && this.organizer.email) { + // this.organizer.$image = Component.$gravatar(this.organizer.email, 32); + // } // Load freebusy of attendees - this.freebusy = this.updateFreeBusyCoverage(); - - if (this.attendees) { - _.each(this.attendees, function(attendee) { - attendee.image = Component.$gravatar(attendee.email, 32); - _this.updateFreeBusy(attendee); - }); - } + this.updateFreeBusy(); this.selected = false; }; @@ -677,6 +670,24 @@ } }; + /** + * @function updateFreeBusy + * @memberof Component.prototype + * @desc Update the freebusy coverage representation and the attendees freebusy information + */ + Component.prototype.updateFreeBusy = function() { + var _this = this; + + this.freebusy = this.updateFreeBusyCoverage(); + + if (this.attendees) { + _.each(this.attendees, function(attendee) { + attendee.image = Component.$gravatar(attendee.email, 32); + _this.updateFreeBusyAttendee(attendee); + }); + } + }; + /** * @function setDelta * @memberof Component.prototype @@ -691,12 +702,12 @@ }; /** - * @function updateFreeBusy + * @function updateFreeBusyAttendee * @memberof Component.prototype * @desc Update the freebusy information for the component's period for a specific attendee. * @param {Object} card - an Card object instance of the attendee */ - Component.prototype.updateFreeBusy = function(attendee) { + Component.prototype.updateFreeBusyAttendee = function(attendee) { var params, url, days; if (attendee.uid) { params = @@ -775,7 +786,7 @@ this.attendees.push(attendee); else this.attendees = [attendee]; - this.updateFreeBusy(attendee); + this.updateFreeBusyAttendee(attendee); } } }; diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index d41abb37e..134cebb0a 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -162,9 +162,7 @@ vm.cancel = cancel; vm.save = save; vm.attendeesEditor = { - // startDate: vm.component.startDate, - // endDate: vm.component.endDate, - // days: getDays(), + days: getDays(), hours: getHours() }; vm.addStartDate = addStartDate; @@ -289,6 +287,7 @@ oldEndDate = new Date(vm.component.end.getTime()); } } + updateFreeBusy(); } function updateEndTime() { @@ -306,6 +305,7 @@ vm.component.delta = delta; oldEndDate = new Date(vm.component.end.getTime()); } + updateFreeBusy(); } function updateDueTime() { @@ -317,6 +317,11 @@ function adjustDueTime() { oldDueDate = new Date(vm.component.due.getTime()); } + + function updateFreeBusy() { + vm.attendeesEditor.days = getDays(); + vm.component.updateFreeBusy(); + } } angular diff --git a/UI/WebServerResources/scss/views/SchedulerUI.scss b/UI/WebServerResources/scss/views/SchedulerUI.scss index 407d51252..aa57830dc 100644 --- a/UI/WebServerResources/scss/views/SchedulerUI.scss +++ b/UI/WebServerResources/scss/views/SchedulerUI.scss @@ -479,8 +479,14 @@ $block_margin: 2%; // See sgCalendarDayBlock.directive.js // img { // margin-right: $mg/4; // } + > .md-avatar { + // Overwrite default margin to gain some space and match 48px + margin-top: $baseline-grid/2; + margin-bottom: $baseline-grid/2; + } } .md-tile-left { + // Use in the top-left empty cell, which is in the first item of the attendees list height: initial; min-height: 48px; width: initial; From 5ed142853a21532e294ec987f22eb16444ca75f2 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 13 Nov 2015 10:48:27 -0500 Subject: [PATCH 281/355] (html) Mark recurrent events in Calendar views --- .../js/Scheduler/sgCalendarDayBlock.directive.js | 2 ++ .../js/Scheduler/sgCalendarMonthEvent.directive.js | 5 +++++ UI/WebServerResources/scss/components/icon/icon.scss | 3 +++ 3 files changed, 10 insertions(+) diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js index c4975c5ea..1a4cf0bab 100644 --- a/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js @@ -35,6 +35,8 @@ '
    ', '
    {{ block.component.summary }}', ' ', + // Component is reccurent + ' ', // Component has an alarm ' ', // Component is confidential diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js index f842453d2..8a23fc75b 100644 --- a/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js @@ -28,8 +28,13 @@ ' {{ block.starthour }} - ', ' {{ block.component.summary }}', ' ', + // Component is reccurent + ' ', + // Component has an alarm ' ', + // Component is confidential ' ', + // Component is private ' ', ' ', '
    ', diff --git a/UI/WebServerResources/scss/components/icon/icon.scss b/UI/WebServerResources/scss/components/icon/icon.scss index 8a6fb2f35..43113c27f 100644 --- a/UI/WebServerResources/scss/components/icon/icon.scss +++ b/UI/WebServerResources/scss/components/icon/icon.scss @@ -108,6 +108,9 @@ md-icon { &.icon-remove-circle:before { content: "\e15c"; } + &.icon-repeat:before { + content: "\e040"; + } &.icon-search:before { content: "\e8b6"; } From 9d0bc5570b9dcf86eb1efe946d030f9aebdc1470 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 13 Nov 2015 14:19:11 -0500 Subject: [PATCH 282/355] (js) Highlight selected color in color picker --- .../js/Common/sgColorPicker.directive.js | 3 ++- .../scss/components/gridList/grid-list.scss | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/UI/WebServerResources/js/Common/sgColorPicker.directive.js b/UI/WebServerResources/js/Common/sgColorPicker.directive.js index 4bbe79640..479215e04 100644 --- a/UI/WebServerResources/js/Common/sgColorPicker.directive.js +++ b/UI/WebServerResources/js/Common/sgColorPicker.directive.js @@ -31,7 +31,8 @@ ' ', ' ', + ' ng-class="{ selected: color == sgColor }"', + ' ng-click="setColor(color)">check_box', ' ', ' ', '' diff --git a/UI/WebServerResources/scss/components/gridList/grid-list.scss b/UI/WebServerResources/scss/components/gridList/grid-list.scss index b1f06b73f..7e9321f3b 100644 --- a/UI/WebServerResources/scss/components/gridList/grid-list.scss +++ b/UI/WebServerResources/scss/components/gridList/grid-list.scss @@ -1,18 +1,29 @@ @import "extends"; -// Color picker +// sgColorPicker directive .sg-color-picker { md-grid-tile { border-radius: 25%; - &:hover, - &:active { + &:hover:not(.selected), + &:active:not(.selected) { cursor: pointer; transform: scale(1.5); } + &.selected { + background-color: transparent !important; + md-icon { + display: inline-block; + font-size: 32px; + margin: 0; + } + } + md-icon { + display: none; + } } } -// See sgToggleGrid directive +// sgToggleGrid directive [sg-toggle-grid] { md-grid-tile { border-radius: 5%; From 58dfa2e43be894ec9c617da79264e88ddd6faa50 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 13 Nov 2015 14:43:03 -0500 Subject: [PATCH 283/355] Return categories (from quick table) as an array --- UI/Scheduler/UIxCalListingActions.m | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/UI/Scheduler/UIxCalListingActions.m b/UI/Scheduler/UIxCalListingActions.m index 2ff577d48..6157b42ec 100644 --- a/UI/Scheduler/UIxCalListingActions.m +++ b/UI/Scheduler/UIxCalListingActions.m @@ -364,7 +364,7 @@ static NSArray *tasksFields = nil; NSMutableDictionary *newInfo; NSMutableArray *infos, *quickInfos, *allInfos, *quickInfosName; NSNull *marker; - NSString *owner, *role, *calendarName, *iCalString, *recurrenceTime; + NSString *owner, *role, *calendarName, *iCalString, *recurrenceTime, *categories; NSRange match; iCalCalendar *calendar; iCalEntityObject *master; @@ -423,7 +423,7 @@ static NSArray *tasksFields = nil; if (quickInfosFlag == YES) { for (i = ([allInfos count] - 1); i >= 0 ; i--) { - if([quickInfosName containsObject:[[allInfos objectAtIndex:i] objectForKey:@"c_name"]]) + if ([quickInfosName containsObject:[[allInfos objectAtIndex:i] objectForKey:@"c_name"]]) [allInfos removeObjectAtIndex:i]; } } @@ -522,6 +522,11 @@ static NSArray *tasksFields = nil; [newInfo setObject: calendarName forKey: @"calendarName"]; + // Split comma-delimited categories + categories = [newInfo objectForKey: @"c_category"]; + if ([categories length]) + [newInfo setObject: [categories componentsSeparatedByString: @","] forKey: @"c_category"]; + // Fix empty title if (![[newInfo objectForKey: @"c_title"] length]) [self _fixComponentTitle: newInfo withType: component]; @@ -941,7 +946,7 @@ static inline iCalPersonPartStat _userStateInEvent (NSArray *event) eventStart = eventEnd; eventEnd = swap; [self warnWithFormat: @"event '%@' has end < start: %d < %d", - [event objectAtIndex: eventNameIndex], eventEnd, eventStart]; + [event objectAtIndex: eventNameIndex], eventEnd, eventStart]; } startSecs = (unsigned int) [startDate timeIntervalSince1970]; @@ -994,21 +999,21 @@ static inline iCalPersonPartStat _userStateInEvent (NSArray *event) currentDay = [blocks objectAtIndex: offset]; } - computedEventEnd = eventEnd; + computedEventEnd = eventEnd; - // We add 5 mins to the end date of an event if the end date - // is equal or smaller than the event's start date. - if (eventEnd <= currentStart) + // We add 5 mins to the end date of an event if the end date + // is equal or smaller than the event's start date. + if (eventEnd <= currentStart) computedEventEnd = currentStart + (5*60); - eventBlock = [self _eventBlockWithStart: currentStart + eventBlock = [self _eventBlockWithStart: currentStart end: computedEventEnd number: number onDay: currentDayStart recurrenceTime: recurrenceTime userState: userState]; - [currentDay addObject: eventBlock]; - } + [currentDay addObject: eventBlock]; + } } } } @@ -1319,7 +1324,7 @@ _computeBlocksPosition (NSArray *blocks) for (i = 0; i < [calendars count]; i++) // For each calendar { calendar = [calendars objectAtIndex:i]; - calendarName =[calendar objectForKey: @"name"]; + calendarName = [calendar objectForKey: @"name"]; calendarId = [calendar objectForKey: @"id"]; eventsForCalendar = [NSMutableArray array]; [self _prepareEventBlocks: &blocks withAllDays: &allDayBlocks]; From ace9fa9e4e4ce59ad770720f8905edb087a968d4 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 13 Nov 2015 15:45:44 -0500 Subject: [PATCH 284/355] (html) Show event location in Calendar days views --- .../Scheduler/sgCalendarDayBlock.directive.js | 1 + .../sgCalendarMonthEvent.directive.js | 2 +- .../scss/views/SchedulerUI.scss | 24 ++++++++----------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js index 1a4cf0bab..2702d4757 100644 --- a/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgCalendarDayBlock.directive.js @@ -44,6 +44,7 @@ // Component is private ' ', '
    ', + '
    place {{block.component.c_location}}
    ', '
    ', '
    ', '
    ' diff --git a/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js b/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js index 8a23fc75b..5619c0d6e 100644 --- a/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js +++ b/UI/WebServerResources/js/Scheduler/sgCalendarMonthEvent.directive.js @@ -25,7 +25,7 @@ replace: true, template: [ '
    ', - ' {{ block.starthour }} - ', + ' {{ block.starthour }} - ', ' {{ block.component.summary }}', ' ', // Component is reccurent diff --git a/UI/WebServerResources/scss/views/SchedulerUI.scss b/UI/WebServerResources/scss/views/SchedulerUI.scss index aa57830dc..98492231c 100644 --- a/UI/WebServerResources/scss/views/SchedulerUI.scss +++ b/UI/WebServerResources/scss/views/SchedulerUI.scss @@ -200,24 +200,15 @@ $block_margin: 2%; // See sgCalendarDayBlock.directive.js position: relative; } - // The outer event container - .sg-event { - font-size: $sg-font-size-2; - &, md-icon { - //color: #fff !important; // Overwrite dynamic CSS theme - } - .material-icons { - font-size: $sg-font-size-2; - } - } - // Events from editable calendars are draggable .sg-draggable-calendar-block, .sg-event--ghost { cursor: move; } + // The outer event container .sg-event { + font-size: $sg-font-size-2; border-radius: 3px; position: absolute; left: 0; @@ -255,6 +246,14 @@ $block_margin: 2%; // See sgCalendarDayBlock.directive.js overflow: hidden; } + .material-icons { + font-size: $sg-font-size-2; + } + + .secondary { // location in days view, hours in month view + font-weight: $sg-font-light; + } + // Event DnD drag grips &:hover { @@ -413,9 +412,6 @@ $block_margin: 2%; // See sgCalendarDayBlock.directive.js margin: $block_margin; text-overflow: ellipsis; white-space: nowrap; - span { // hours - font-weight: $sg-font-light; - } } } From 4685c0ff2a79bf8f9d25c32b455d73af9d113567 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Sat, 14 Nov 2015 14:29:21 -0500 Subject: [PATCH 285/355] (js) Show events categories as color bands --- UI/Templates/SchedulerUI/UIxCalMainView.wox | 41 ++++--------------- .../js/Common/sgFolderStylesheet.directive.js | 36 ++++++++-------- .../js/Scheduler/Component.service.js | 1 + .../js/Scheduler/Scheduler.app.js | 2 +- .../Scheduler/sgCalendarDayBlock.directive.js | 9 +++- .../sgCalendarDayBlockGhost.directive.js | 12 +++++- .../scss/views/SchedulerUI.scss | 12 ++++++ 7 files changed, 61 insertions(+), 52 deletions(-) diff --git a/UI/Templates/SchedulerUI/UIxCalMainView.wox b/UI/Templates/SchedulerUI/UIxCalMainView.wox index 9a41c7ca6..7d7923b22 100644 --- a/UI/Templates/SchedulerUI/UIxCalMainView.wox +++ b/UI/Templates/SchedulerUI/UIxCalMainView.wox @@ -106,45 +106,20 @@

    !- space -

    !- space -

    -
    - - - - - --> + -->
    - diff --git a/UI/Templates/PreferencesUI/UIxAccountEditor.wox b/UI/Templates/PreferencesUI/UIxAccountEditor.wox index b4ee5dd22..44094e29c 100644 --- a/UI/Templates/PreferencesUI/UIxAccountEditor.wox +++ b/UI/Templates/PreferencesUI/UIxAccountEditor.wox @@ -136,8 +136,8 @@ -
    + -
    +
    diff --git a/UI/Templates/PreferencesUI/UIxFilterEditor.wox b/UI/Templates/PreferencesUI/UIxFilterEditor.wox index e065fc6e7..88653df48 100644 --- a/UI/Templates/PreferencesUI/UIxFilterEditor.wox +++ b/UI/Templates/PreferencesUI/UIxFilterEditor.wox @@ -170,9 +170,9 @@ -
    + -
    + diff --git a/UI/Templates/SchedulerUI/UIxCalendarProperties.wox b/UI/Templates/SchedulerUI/UIxCalendarProperties.wox index 440eb7693..ba60ae186 100644 --- a/UI/Templates/SchedulerUI/UIxCalendarProperties.wox +++ b/UI/Templates/SchedulerUI/UIxCalendarProperties.wox @@ -88,10 +88,10 @@ -
    + -
    + diff --git a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox index 41cdb8e44..542d27ee1 100644 --- a/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox @@ -224,7 +224,7 @@ -
    + @@ -235,7 +235,7 @@ ng-disabled="editor.eventForm.$invalid"> -
    + diff --git a/UI/Templates/UIxAclEditor.wox b/UI/Templates/UIxAclEditor.wox index b300310a7..dbc6e3808 100644 --- a/UI/Templates/UIxAclEditor.wox +++ b/UI/Templates/UIxAclEditor.wox @@ -94,10 +94,10 @@
    -
    + -
    -
    + + {{acl.confirmation.message}} @@ -105,7 +105,7 @@ -
    + From 39455a283aa05719507b56df896864d6ba52466c Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 27 Nov 2015 13:56:31 -0500 Subject: [PATCH 333/355] (fix) replace .md-actions with md-dialog-actions in JS files --- UI/WebServerResources/js/Contacts/CardController.js | 4 ++-- UI/WebServerResources/js/Mailer/MessageController.js | 4 ++-- UI/WebServerResources/js/Scheduler/ComponentController.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/UI/WebServerResources/js/Contacts/CardController.js b/UI/WebServerResources/js/Contacts/CardController.js index a0b3f9608..057425d06 100644 --- a/UI/WebServerResources/js/Contacts/CardController.js +++ b/UI/WebServerResources/js/Contacts/CardController.js @@ -151,9 +151,9 @@ data, ' ', ' ', - '
    ', + ' ', ' ' + l('Close') + '', - '
    ', + ' ', '' ].join(''), controller: CardRawSourceDialogController diff --git a/UI/WebServerResources/js/Mailer/MessageController.js b/UI/WebServerResources/js/Mailer/MessageController.js index 563b7d982..6a7908c33 100644 --- a/UI/WebServerResources/js/Mailer/MessageController.js +++ b/UI/WebServerResources/js/Mailer/MessageController.js @@ -156,9 +156,9 @@ data, ' ', ' ', - '
    ', + ' ', ' ' + l('Close') + '', - '
    ', + ' ', '' ].join(''), controller: MessageRawSourceDialogController diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index 134cebb0a..dccebaf66 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -120,9 +120,9 @@ data, ' ', ' ', - '
    ', + ' ', ' ' + l('Close') + '', - '
    ', + ' ', '' ].join(''), controller: ComponentRawSourceDialogController From 403d6fa54f1d8765ccb3b5446c225275d37685d3 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Fri, 27 Nov 2015 16:04:12 -0500 Subject: [PATCH 334/355] (feat) you can now select your alternate avatar --- SoObjects/SOGo/SOGoDefaults.plist | 1 + SoObjects/SOGo/SOGoUserDefaults.h | 3 ++ SoObjects/SOGo/SOGoUserDefaults.m | 10 ++++++ .../English.lproj/Localizable.strings | 7 ++++ UI/PreferencesUI/UIxJSONPreferences.m | 3 ++ UI/PreferencesUI/UIxPreferences.m | 12 +++++++ UI/Templates/PreferencesUI/UIxPreferences.wox | 11 +++++++ .../js/Common/Gravatar.service.js | 11 ++++--- .../js/Common/sgAvatarImage.directive.js | 33 ++++++++++--------- 9 files changed, 71 insertions(+), 20 deletions(-) diff --git a/SoObjects/SOGo/SOGoDefaults.plist b/SoObjects/SOGo/SOGoDefaults.plist index 24f91bcf4..3a2a2a726 100644 --- a/SoObjects/SOGo/SOGoDefaults.plist +++ b/SoObjects/SOGo/SOGoDefaults.plist @@ -58,6 +58,7 @@ SOGoMailDomain = "localhost"; SOGoSelectedAddressBook = "collected"; SOGoRefreshViewCheck = "manually"; + SOGoAlternateAvatar = "none"; SOGoMailMessageForwarding = "inline"; SOGoMailReplyPlacement = "below"; SOGoMailSignaturePlacement = "below"; diff --git a/SoObjects/SOGo/SOGoUserDefaults.h b/SoObjects/SOGo/SOGoUserDefaults.h index 465aca2f8..ca84a661f 100644 --- a/SoObjects/SOGo/SOGoUserDefaults.h +++ b/SoObjects/SOGo/SOGoUserDefaults.h @@ -120,6 +120,9 @@ extern NSString *SOGoWeekStartFirstFullWeek; - (void) setRefreshViewCheck: (NSString *) newValue; - (NSString *) refreshViewCheck; +- (void) setAlternateAvatar: (NSString *) newValue; +- (NSString *) alternateAvatar; + - (void) setMailComposeMessageType: (NSString *) newValue; - (NSString *) mailComposeMessageType; diff --git a/SoObjects/SOGo/SOGoUserDefaults.m b/SoObjects/SOGo/SOGoUserDefaults.m index c0062ac18..100de9c95 100644 --- a/SoObjects/SOGo/SOGoUserDefaults.m +++ b/SoObjects/SOGo/SOGoUserDefaults.m @@ -498,6 +498,16 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; return [self stringForKey: @"SOGoRefreshViewCheck"]; } +- (void) setAlternateAvatar: (NSString *) newValue +{ + [self setObject: newValue forKey: @"SOGoAlternateAvatar"]; +} + +- (NSString *) alternateAvatar +{ + return [self stringForKey: @"SOGoAlternateAvatar"]; +} + - (void) setMailComposeMessageType: (NSString *) newValue { [self setObject: newValue forKey: @"SOGoMailComposeMessageType"]; diff --git a/UI/PreferencesUI/English.lproj/Localizable.strings b/UI/PreferencesUI/English.lproj/Localizable.strings index 12e4dc386..990522a71 100644 --- a/UI/PreferencesUI/English.lproj/Localizable.strings +++ b/UI/PreferencesUI/English.lproj/Localizable.strings @@ -344,3 +344,10 @@ "Unhandled error response" = "Unhandled error response"; "Password change is not supported." = "Password change is not supported."; "Unhandled HTTP error code: %{0}" = "Unhandled HTTP error code: %{0}"; + +/* Avatars */ +"none" = "None"; +"identicon" = "Ident Icon"; +"monsterid" = "Monster"; +"wavatar" = "Wavatar"; +"retro" = "Retro"; \ No newline at end of file diff --git a/UI/PreferencesUI/UIxJSONPreferences.m b/UI/PreferencesUI/UIxJSONPreferences.m index ed6c2f95f..8a7dd9418 100644 --- a/UI/PreferencesUI/UIxJSONPreferences.m +++ b/UI/PreferencesUI/UIxJSONPreferences.m @@ -96,6 +96,9 @@ static SoProduct *preferencesProduct = nil; if (![[defaults source] objectForKey: @"SOGoRefreshViewCheck"]) [[defaults source] setObject: [defaults refreshViewCheck] forKey: @"SOGoRefreshViewCheck"]; + if (![[defaults source] objectForKey: @"SOGoAlternateAvatar"]) + [[defaults source] setObject: [defaults alternateAvatar] forKey: @"SOGoAlternateAvatar"]; + // // Default Calendar preferences // diff --git a/UI/PreferencesUI/UIxPreferences.m b/UI/PreferencesUI/UIxPreferences.m index 9a4adf36c..2213dd9a6 100644 --- a/UI/PreferencesUI/UIxPreferences.m +++ b/UI/PreferencesUI/UIxPreferences.m @@ -1380,6 +1380,18 @@ static NSArray *reminderValues = nil; return [self labelForKey: item]; } +- (NSArray *) alternateAvatar +{ + // See: https://en.gravatar.com/site/implement/images/ + return [NSArray arrayWithObjects: @"none", @"identicon", @"monsterid", @"wavatar", @"retro", nil]; +} + +- (NSString *) itemAlternateAvatarText +{ + return [self labelForKey: item]; +} + + // - (NSString *) userDefaultModule // { // NSString *userDefaultModule; diff --git a/UI/Templates/PreferencesUI/UIxPreferences.wox b/UI/Templates/PreferencesUI/UIxPreferences.wox index 18e4a9a13..24ae11631 100644 --- a/UI/Templates/PreferencesUI/UIxPreferences.wox +++ b/UI/Templates/PreferencesUI/UIxPreferences.wox @@ -185,6 +185,17 @@ + + + + + + + + + + + diff --git a/UI/WebServerResources/js/Common/Gravatar.service.js b/UI/WebServerResources/js/Common/Gravatar.service.js index 5a5956940..3c9f37832 100644 --- a/UI/WebServerResources/js/Common/Gravatar.service.js +++ b/UI/WebServerResources/js/Common/Gravatar.service.js @@ -8,10 +8,11 @@ * @memberof SOGo.Common * @param {string} email * @param {number} [size] - the size of the image + * @param {string} alternate avatar to use * @ngInject */ function Gravatar() { - return function(email, size) { + return function(email, size, alternate_avatar) { var x, y, hash, s = size; if (!email) { return ''; @@ -27,10 +28,10 @@ } hash = email.md5(); - return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=404'; - //return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=retro'; - // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=identicon'; - // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=wavatar'; + if (alternate_avatar == "none") + alternate_avatar = "404"; + + return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=' + alternate_avatar; }; } diff --git a/UI/WebServerResources/js/Common/sgAvatarImage.directive.js b/UI/WebServerResources/js/Common/sgAvatarImage.directive.js index 541148041..13efe3fb9 100644 --- a/UI/WebServerResources/js/Common/sgAvatarImage.directive.js +++ b/UI/WebServerResources/js/Common/sgAvatarImage.directive.js @@ -48,25 +48,28 @@ /** * @ngInject */ - sgAvatarImageController.$inject = ['$scope', '$element', 'Gravatar']; - function sgAvatarImageController($scope, $element, Gravatar) { + sgAvatarImageController.$inject = ['$scope', '$element', 'Preferences', 'Gravatar']; + function sgAvatarImageController($scope, $element, Preferences, Gravatar) { var vm = this; $scope.$watch('vm.email', function(email) { - var img = $element.find('img')[0]; - if (!email && !vm.genericAvatar) { - // If no email is specified, insert a generic avatar - vm.insertGenericAvatar(img); - } - else if (email && !vm.url) { - if (vm.genericAvatar) { - // Remove generic avatar and restore visibility of image - vm.genericAvatar.parentNode.removeChild(vm.genericAvatar); - delete vm.genericAvatar; - img.classList.remove('ng-hide'); + + Preferences.ready().then(function() { + var img = $element.find('img')[0]; + if (!email && !vm.genericAvatar) { + // If no email is specified, insert a generic avatar + vm.insertGenericAvatar(img); } - vm.url = Gravatar(email, vm.size); - } + else if (email && !vm.url) { + if (vm.genericAvatar) { + // Remove generic avatar and restore visibility of image + vm.genericAvatar.parentNode.removeChild(vm.genericAvatar); + delete vm.genericAvatar; + img.classList.remove('ng-hide'); + } + vm.url = Gravatar(email, vm.size, Preferences.defaults.SOGoAlternateAvatar); + } + }); }); // If sg-src is defined, watch the expression for the URL of a local image From d19593afc31b71c4ae7fc7ee18ba23505f55c198 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Fri, 27 Nov 2015 16:40:23 -0500 Subject: [PATCH 335/355] (js) Allow hiding the sidenav on large screens Position of button is not final as it causes an issue with the tabs of the Calendar module. --- UI/Templates/ContactsUI/UIxContactFoldersView.wox | 10 +++++++++- UI/Templates/MailerUI/UIxMailFolderTemplate.wox | 3 +++ UI/Templates/MailerUI/UIxMailMainFrame.wox | 4 +++- UI/WebServerResources/js/Common/navController.js | 15 ++++++++++++--- .../scss/components/sidenav/sidenav.scss | 9 +++++++-- UI/WebServerResources/scss/views/_view.scss | 2 +- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox index 35f09da5c..0b3ee9f0b 100644 --- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox +++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox @@ -20,7 +20,9 @@