diff --git a/UI/WebServerResources/css/styles.css b/UI/WebServerResources/css/styles.css index ed673642a..49cbddd4b 100644 --- a/UI/WebServerResources/css/styles.css +++ b/UI/WebServerResources/css/styles.css @@ -209,7 +209,7 @@ input[type="search"] { z-index: 65; box-shadow: inset 0px 0px 1px rgba(0, 0, 0, 0.3); } -@media (min-width: 600px) { +@media (min-width: 960px) { .md-padding { padding: 16px; } } @@ -223,8 +223,10 @@ html * { * References: * 1) https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties#flex * 2) https://css-tricks.com/almanac/properties/f/flex/ -* 3) https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items -* 4) http://godban.com.ua/projects/flexgrid +* 3) https://css-tricks.com/snippets/css/a-guide-to-flexbox/ +* 4) https://github.com/philipwalton/flexbugs#3-min-height-on-a-flex-container-wont-apply-to-its-flex-items +* 5) http://godban.com.ua/projects/flexgrid +* * */ @-moz-document url-prefix() { @@ -425,30 +427,49 @@ html * { margin-left: 95%; } .offset-33, .flex-offset-33 { - margin-left: 33%; } - -.offset-34, .flex-offset-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-66, .flex-offset-66 { - margin-left: 66%; } + margin-left: calc(200% / 3); } -.offset-67, .flex-offset-67 { - margin-left: 67%; } +.layout-align { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + +.layout-align-start, +.layout-align-start-start, +.layout-align-start-center, +.layout-align-start-end, +.layout-align-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .layout-align-center, -.layout-align-center-center, .layout-align-center-start, -.layout-align-center-end { +.layout-align-center-center, +.layout-align-center-end, +.layout-align-center-stretch { -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-center, +.layout-align-end-end, +.layout-align-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -457,7 +478,8 @@ html * { .layout-align-space-around, .layout-align-space-around-center, .layout-align-space-around-start, -.layout-align-space-around-end { +.layout-align-space-around-end, +.layout-align-space-around-stretch { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } @@ -465,24 +487,28 @@ html * { .layout-align-space-between, .layout-align-space-between-center, .layout-align-space-between-start, -.layout-align-space-between-end { +.layout-align-space-between-end, +.layout-align-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } -.layout-align-center-start, .layout-align-start-start, +.layout-align-center-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; } + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } -.layout-align-center-center, .layout-align-start-center, +.layout-align-center-center, .layout-align-end-center, .layout-align-space-between-center, .layout-align-space-around-center { @@ -490,25 +516,44 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } -.layout-align-center-center > *, .layout-align-start-center > *, +.layout-align-center-center > *, .layout-align-end-center > *, .layout-align-space-between-center > *, .layout-align-space-around-center > * { max-width: 100%; box-sizing: border-box; } -.layout-align-center-end, .layout-align-start-end, +.layout-align-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + +.layout-align-start-stretch, +.layout-align-center-stretch, +.layout-align-end-stretch, +.layout-align-space-between-stretch, +.layout-align-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex { -webkit-box-flex: 1; @@ -546,684 +591,648 @@ html * { box-sizing: border-box; } .flex-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-0, .layout-row > .flex-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-0, .layout-column > .flex-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-5, .layout-row > .flex-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-5, .layout-column > .flex-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-10, .layout-row > .flex-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-10, .layout-column > .flex-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-15, .layout-row > .flex-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-15, .layout-column > .flex-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-20, .layout-row > .flex-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-20, .layout-column > .flex-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-25, .layout-row > .flex-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-25, .layout-column > .flex-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-30, .layout-row > .flex-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-30, .layout-column > .flex-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-35, .layout-row > .flex-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-35, .layout-column > .flex-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-40, .layout-row > .flex-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-40, .layout-column > .flex-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-45, .layout-row > .flex-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-45, .layout-column > .flex-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-50, .layout-row > .flex-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-50, .layout-column > .flex-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-55, .layout-row > .flex-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-55, .layout-column > .flex-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-60, .layout-row > .flex-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-60, .layout-column > .flex-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-65, .layout-row > .flex-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-65, .layout-column > .flex-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-70, .layout-row > .flex-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-70, .layout-column > .flex-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-75, .layout-row > .flex-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-75, .layout-column > .flex-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-80, .layout-row > .flex-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-80, .layout-column > .flex-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-85, .layout-row > .flex-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-85, .layout-column > .flex-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-90, .layout-row > .flex-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-90, .layout-column > .flex-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-95, .layout-row > .flex-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-95, .layout-column > .flex-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-100, .layout-row > .flex-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-100, .layout-column > .flex-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-33, .layout-row > .flex-33, .layout-row > .flex-33, .layout-row > .flex-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - -.layout-row > .flex-34, .layout-row > .flex-34, .layout-row > .flex-34, .layout-row > .flex-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-66, .layout-row > .flex-66, .layout-row > .flex-66, .layout-row > .flex-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - -.layout-row > .flex-67, .layout-row > .flex-67, .layout-row > .flex-67, .layout-row > .flex-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-33, .layout-column > .flex-33, .layout-column > .flex-33, .layout-column > .flex-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - -.layout-column > .flex-34, .layout-column > .flex-34, .layout-column > .flex-34, .layout-column > .flex-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-66, .layout-column > .flex-66, .layout-column > .flex-66, .layout-column > .flex-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - -.layout-column > .flex-67, .layout-column > .flex-67, .layout-column > .flex-67, .layout-column > .flex-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout, .layout-column, .layout-row { @@ -1247,33 +1256,51 @@ html * { -ms-flex-direction: row; flex-direction: row; } -.layout-padding > .flex-sm, .layout-padding > .flex-lt-md { +.layout-padding-sm > *, +.layout-padding > .flex-sm { padding: 4px; } .layout-padding, +.layout-padding-gt-sm, +.layout-padding-md, +.layout-padding > *, +.layout-padding-gt-sm > *, +.layout-padding-md > *, .layout-padding > .flex, .layout-padding > .flex-gt-sm, -.layout-padding > .flex-md, -.layout-padding > .flex-lt-lg { +.layout-padding > .flex-md { padding: 8px; } +.layout-padding-gt-md > *, +.layout-padding-lg > *, +.layout-padding-gt-lg > *, .layout-padding > .flex-gt-md, -.layout-padding > .flex-lg { +.layout-padding > .flex-lg, +.layout-padding > .flex-lg, +.layout-padding > .flex-gt-lg { padding: 16px; } -.layout-margin > .flex-sm, -.layout-margin > .flex-lt-md { +.layout-margin-sm > *, +.layout-margin > .flex-sm { margin: 4px; } .layout-margin, +.layout-margin-gt-sm, +.layout-margin-md, +.layout-margin > *, +.layout-margin-gt-sm > *, +.layout-margin-md > *, .layout-margin > .flex, .layout-margin > .flex-gt-sm, -.layout-margin > .flex-md, -.layout-margin > .flex-lt-lg { +.layout-margin > .flex-md { margin: 8px; } +.layout-margin-gt-md > *, +.layout-margin-lg > *, +.layout-margin-gt-lg > *, .layout-margin > .flex-gt-md, -.layout-margin > .flex-lg { +.layout-margin > .flex-lg, +.layout-margin > .flex-gt-lg { margin: 16px; } .layout-wrap { @@ -1299,11 +1326,1782 @@ html * { * * hide means hide everywhere * Sizes: - * 0 <= size < 600 Phone - * 600 <= size < 960 Tablet - * 960 <= size < 1200 Tablet-Landscape + * $layout-breakpoint-xs: 600px !default; + * $layout-breakpoint-sm: 960px !default; + * $layout-breakpoint-md: 1280px !default; + * $layout-breakpoint-lg: 1920px !default; */ @media (max-width: 599px) { + .hide-xs:not(.show-xs):not(.show), .hide:not(.show-xs):not(.show) { + display: none; } + .flex-order-xs-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-xs-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-xs-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-xs-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-xs-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-xs-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-xs-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-xs-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-xs-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-xs-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-xs-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-xs-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-xs-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-xs-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-xs-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-xs-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-xs-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-xs-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-xs-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-xs-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-xs-0, .flex-offset-xs-0 { + margin-left: 0%; } + .offset-xs-5, .flex-offset-xs-5 { + margin-left: 5%; } + .offset-xs-10, .flex-offset-xs-10 { + margin-left: 10%; } + .offset-xs-15, .flex-offset-xs-15 { + margin-left: 15%; } + .offset-xs-20, .flex-offset-xs-20 { + margin-left: 20%; } + .offset-xs-25, .flex-offset-xs-25 { + margin-left: 25%; } + .offset-xs-30, .flex-offset-xs-30 { + margin-left: 30%; } + .offset-xs-35, .flex-offset-xs-35 { + margin-left: 35%; } + .offset-xs-40, .flex-offset-xs-40 { + margin-left: 40%; } + .offset-xs-45, .flex-offset-xs-45 { + margin-left: 45%; } + .offset-xs-50, .flex-offset-xs-50 { + margin-left: 50%; } + .offset-xs-55, .flex-offset-xs-55 { + margin-left: 55%; } + .offset-xs-60, .flex-offset-xs-60 { + margin-left: 60%; } + .offset-xs-65, .flex-offset-xs-65 { + margin-left: 65%; } + .offset-xs-70, .flex-offset-xs-70 { + margin-left: 70%; } + .offset-xs-75, .flex-offset-xs-75 { + margin-left: 75%; } + .offset-xs-80, .flex-offset-xs-80 { + margin-left: 80%; } + .offset-xs-85, .flex-offset-xs-85 { + margin-left: 85%; } + .offset-xs-90, .flex-offset-xs-90 { + margin-left: 90%; } + .offset-xs-95, .flex-offset-xs-95 { + margin-left: 95%; } + .offset-xs-33, .flex-offset-xs-33 { + margin-left: calc(100% / 3); } + .offset-xs-66, .flex-offset-xs-66 { + margin-left: calc(200% / 3); } + .layout-align-xs { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-xs-start, + .layout-align-xs-start-start, + .layout-align-xs-start-center, + .layout-align-xs-start-end, + .layout-align-xs-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } + .layout-align-xs-center, + .layout-align-xs-center-start, + .layout-align-xs-center-center, + .layout-align-xs-center-end, + .layout-align-xs-center-stretch { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .layout-align-xs-end, + .layout-align-xs-end-start, + .layout-align-xs-end-center, + .layout-align-xs-end-end, + .layout-align-xs-end-stretch { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } + .layout-align-xs-space-around, + .layout-align-xs-space-around-center, + .layout-align-xs-space-around-start, + .layout-align-xs-space-around-end, + .layout-align-xs-space-around-stretch { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; } + .layout-align-xs-space-between, + .layout-align-xs-space-between-center, + .layout-align-xs-space-between-start, + .layout-align-xs-space-between-end, + .layout-align-xs-space-between-stretch { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; } + .layout-align-xs-start-start, + .layout-align-xs-center-start, + .layout-align-xs-end-start, + .layout-align-xs-space-between-start, + .layout-align-xs-space-around-start { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } + .layout-align-xs-start-center, + .layout-align-xs-center-center, + .layout-align-xs-end-center, + .layout-align-xs-space-between-center, + .layout-align-xs-space-around-center { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; + max-width: 100%; } + .layout-align-xs-start-center > *, + .layout-align-xs-center-center > *, + .layout-align-xs-end-center > *, + .layout-align-xs-space-between-center > *, + .layout-align-xs-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } + .layout-align-xs-start-end, + .layout-align-xs-center-end, + .layout-align-xs-end-end, + .layout-align-xs-space-between-end, + .layout-align-xs-space-around-end { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-xs-start-stretch, + .layout-align-xs-center-stretch, + .layout-align-xs-end-stretch, + .layout-align-xs-space-between-stretch, + .layout-align-xs-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } + .flex-xs { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-xs-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-xs-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-xs-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-xs-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-0, + .layout-xs-row > .flex-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-0, + .layout-xs-column > .flex-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-5, + .layout-xs-row > .flex-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-5, + .layout-xs-column > .flex-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-10, + .layout-xs-row > .flex-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-10, + .layout-xs-column > .flex-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-15, + .layout-xs-row > .flex-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-15, + .layout-xs-column > .flex-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-20, + .layout-xs-row > .flex-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-20, + .layout-xs-column > .flex-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-25, + .layout-xs-row > .flex-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-25, + .layout-xs-column > .flex-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-30, + .layout-xs-row > .flex-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-30, + .layout-xs-column > .flex-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-35, + .layout-xs-row > .flex-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-35, + .layout-xs-column > .flex-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-40, + .layout-xs-row > .flex-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-40, + .layout-xs-column > .flex-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-45, + .layout-xs-row > .flex-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-45, + .layout-xs-column > .flex-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-50, + .layout-xs-row > .flex-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-50, + .layout-xs-column > .flex-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-55, + .layout-xs-row > .flex-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-55, + .layout-xs-column > .flex-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-60, + .layout-xs-row > .flex-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-60, + .layout-xs-column > .flex-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-65, + .layout-xs-row > .flex-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-65, + .layout-xs-column > .flex-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-70, + .layout-xs-row > .flex-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-70, + .layout-xs-column > .flex-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-75, + .layout-xs-row > .flex-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-75, + .layout-xs-column > .flex-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-80, + .layout-xs-row > .flex-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-80, + .layout-xs-column > .flex-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-85, + .layout-xs-row > .flex-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-85, + .layout-xs-column > .flex-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-90, + .layout-xs-row > .flex-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-90, + .layout-xs-column > .flex-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-95, + .layout-xs-row > .flex-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-95, + .layout-xs-column > .flex-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-100, + .layout-xs-row > .flex-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-100, + .layout-xs-column > .flex-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-33, .layout-row > .flex-xs-33, .layout-xs-row > .flex-xs-33, .layout-xs-row > .flex-xs-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xs-66, .layout-row > .flex-xs-66, .layout-xs-row > .flex-xs-66, .layout-xs-row > .flex-xs-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xs-33, .layout-column > .flex-xs-33, .layout-xs-column > .flex-xs-33, .layout-xs-column > .flex-xs-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: 100%; + max-height: calc(100% / 3); + box-sizing: border-box; } + .layout-column > .flex-xs-66, .layout-column > .flex-xs-66, .layout-xs-column > .flex-xs-66, .layout-xs-column > .flex-xs-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: 100%; + max-height: calc(200% / 3); + box-sizing: border-box; } + .layout-xs, .layout-xs-column, .layout-xs-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-xs-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-xs-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } + +@media (min-width: 600px) { + .flex-order-gt-xs-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-gt-xs-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-gt-xs-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-gt-xs-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-gt-xs-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-gt-xs-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-gt-xs-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-gt-xs-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-gt-xs-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-gt-xs-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-gt-xs-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-gt-xs-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-gt-xs-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-gt-xs-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-gt-xs-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-gt-xs-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-gt-xs-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-gt-xs-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-gt-xs-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-gt-xs-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-gt-xs-0, .flex-offset-gt-xs-0 { + margin-left: 0%; } + .offset-gt-xs-5, .flex-offset-gt-xs-5 { + margin-left: 5%; } + .offset-gt-xs-10, .flex-offset-gt-xs-10 { + margin-left: 10%; } + .offset-gt-xs-15, .flex-offset-gt-xs-15 { + margin-left: 15%; } + .offset-gt-xs-20, .flex-offset-gt-xs-20 { + margin-left: 20%; } + .offset-gt-xs-25, .flex-offset-gt-xs-25 { + margin-left: 25%; } + .offset-gt-xs-30, .flex-offset-gt-xs-30 { + margin-left: 30%; } + .offset-gt-xs-35, .flex-offset-gt-xs-35 { + margin-left: 35%; } + .offset-gt-xs-40, .flex-offset-gt-xs-40 { + margin-left: 40%; } + .offset-gt-xs-45, .flex-offset-gt-xs-45 { + margin-left: 45%; } + .offset-gt-xs-50, .flex-offset-gt-xs-50 { + margin-left: 50%; } + .offset-gt-xs-55, .flex-offset-gt-xs-55 { + margin-left: 55%; } + .offset-gt-xs-60, .flex-offset-gt-xs-60 { + margin-left: 60%; } + .offset-gt-xs-65, .flex-offset-gt-xs-65 { + margin-left: 65%; } + .offset-gt-xs-70, .flex-offset-gt-xs-70 { + margin-left: 70%; } + .offset-gt-xs-75, .flex-offset-gt-xs-75 { + margin-left: 75%; } + .offset-gt-xs-80, .flex-offset-gt-xs-80 { + margin-left: 80%; } + .offset-gt-xs-85, .flex-offset-gt-xs-85 { + margin-left: 85%; } + .offset-gt-xs-90, .flex-offset-gt-xs-90 { + margin-left: 90%; } + .offset-gt-xs-95, .flex-offset-gt-xs-95 { + margin-left: 95%; } + .offset-gt-xs-33, .flex-offset-gt-xs-33 { + margin-left: calc(100% / 3); } + .offset-gt-xs-66, .flex-offset-gt-xs-66 { + margin-left: calc(200% / 3); } + .layout-align-gt-xs { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-gt-xs-start, + .layout-align-gt-xs-start-start, + .layout-align-gt-xs-start-center, + .layout-align-gt-xs-start-end, + .layout-align-gt-xs-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } + .layout-align-gt-xs-center, + .layout-align-gt-xs-center-start, + .layout-align-gt-xs-center-center, + .layout-align-gt-xs-center-end, + .layout-align-gt-xs-center-stretch { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .layout-align-gt-xs-end, + .layout-align-gt-xs-end-start, + .layout-align-gt-xs-end-center, + .layout-align-gt-xs-end-end, + .layout-align-gt-xs-end-stretch { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } + .layout-align-gt-xs-space-around, + .layout-align-gt-xs-space-around-center, + .layout-align-gt-xs-space-around-start, + .layout-align-gt-xs-space-around-end, + .layout-align-gt-xs-space-around-stretch { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; } + .layout-align-gt-xs-space-between, + .layout-align-gt-xs-space-between-center, + .layout-align-gt-xs-space-between-start, + .layout-align-gt-xs-space-between-end, + .layout-align-gt-xs-space-between-stretch { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; } + .layout-align-gt-xs-start-start, + .layout-align-gt-xs-center-start, + .layout-align-gt-xs-end-start, + .layout-align-gt-xs-space-between-start, + .layout-align-gt-xs-space-around-start { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } + .layout-align-gt-xs-start-center, + .layout-align-gt-xs-center-center, + .layout-align-gt-xs-end-center, + .layout-align-gt-xs-space-between-center, + .layout-align-gt-xs-space-around-center { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; + max-width: 100%; } + .layout-align-gt-xs-start-center > *, + .layout-align-gt-xs-center-center > *, + .layout-align-gt-xs-end-center > *, + .layout-align-gt-xs-space-between-center > *, + .layout-align-gt-xs-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } + .layout-align-gt-xs-start-end, + .layout-align-gt-xs-center-end, + .layout-align-gt-xs-end-end, + .layout-align-gt-xs-space-between-end, + .layout-align-gt-xs-space-around-end { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-gt-xs-start-stretch, + .layout-align-gt-xs-center-stretch, + .layout-align-gt-xs-end-stretch, + .layout-align-gt-xs-space-between-stretch, + .layout-align-gt-xs-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } + .flex-gt-xs { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-gt-xs-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-gt-xs-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-gt-xs-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-gt-xs-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-gt-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-0, + .layout-gt-xs-row > .flex-gt-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-0, + .layout-gt-xs-column > .flex-gt-xs-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-gt-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-5, + .layout-gt-xs-row > .flex-gt-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-5, + .layout-gt-xs-column > .flex-gt-xs-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-gt-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-10, + .layout-gt-xs-row > .flex-gt-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-10, + .layout-gt-xs-column > .flex-gt-xs-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-gt-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-15, + .layout-gt-xs-row > .flex-gt-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-15, + .layout-gt-xs-column > .flex-gt-xs-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-gt-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-20, + .layout-gt-xs-row > .flex-gt-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-20, + .layout-gt-xs-column > .flex-gt-xs-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-gt-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-25, + .layout-gt-xs-row > .flex-gt-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-25, + .layout-gt-xs-column > .flex-gt-xs-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-gt-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-30, + .layout-gt-xs-row > .flex-gt-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-30, + .layout-gt-xs-column > .flex-gt-xs-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-gt-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-35, + .layout-gt-xs-row > .flex-gt-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-35, + .layout-gt-xs-column > .flex-gt-xs-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-gt-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-40, + .layout-gt-xs-row > .flex-gt-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-40, + .layout-gt-xs-column > .flex-gt-xs-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-gt-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-45, + .layout-gt-xs-row > .flex-gt-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-45, + .layout-gt-xs-column > .flex-gt-xs-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-gt-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-50, + .layout-gt-xs-row > .flex-gt-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-50, + .layout-gt-xs-column > .flex-gt-xs-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-gt-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-55, + .layout-gt-xs-row > .flex-gt-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-55, + .layout-gt-xs-column > .flex-gt-xs-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-gt-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-60, + .layout-gt-xs-row > .flex-gt-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-60, + .layout-gt-xs-column > .flex-gt-xs-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-gt-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-65, + .layout-gt-xs-row > .flex-gt-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-65, + .layout-gt-xs-column > .flex-gt-xs-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-gt-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-70, + .layout-gt-xs-row > .flex-gt-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-70, + .layout-gt-xs-column > .flex-gt-xs-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-gt-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-75, + .layout-gt-xs-row > .flex-gt-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-75, + .layout-gt-xs-column > .flex-gt-xs-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-gt-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-80, + .layout-gt-xs-row > .flex-gt-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-80, + .layout-gt-xs-column > .flex-gt-xs-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-gt-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-85, + .layout-gt-xs-row > .flex-gt-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-85, + .layout-gt-xs-column > .flex-gt-xs-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-gt-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-90, + .layout-gt-xs-row > .flex-gt-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-90, + .layout-gt-xs-column > .flex-gt-xs-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-gt-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-95, + .layout-gt-xs-row > .flex-gt-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-95, + .layout-gt-xs-column > .flex-gt-xs-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-gt-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-100, + .layout-gt-xs-row > .flex-gt-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-100, + .layout-gt-xs-column > .flex-gt-xs-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-33, .layout-row > .flex-gt-xs-33, .layout-gt-xs-row > .flex-gt-xs-33, .layout-gt-xs-row > .flex-gt-xs-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-xs-66, .layout-row > .flex-gt-xs-66, .layout-gt-xs-row > .flex-gt-xs-66, .layout-gt-xs-row > .flex-gt-xs-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-xs-33, .layout-column > .flex-gt-xs-33, .layout-gt-xs-column > .flex-gt-xs-33, .layout-gt-xs-column > .flex-gt-xs-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: 100%; + max-height: calc(100% / 3); + box-sizing: border-box; } + .layout-column > .flex-gt-xs-66, .layout-column > .flex-gt-xs-66, .layout-gt-xs-column > .flex-gt-xs-66, .layout-gt-xs-column > .flex-gt-xs-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: 100%; + max-height: calc(200% / 3); + box-sizing: border-box; } + .layout-gt-xs, .layout-gt-xs-column, .layout-gt-xs-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-gt-xs-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-gt-xs-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } + +@media (min-width: 600px) and (max-width: 959px) { .hide-sm:not(.show-sm):not(.show), .hide:not(.show-sm):not(.show) { display: none; } .flex-order-sm-0 { @@ -1447,25 +3245,44 @@ html * { .offset-sm-95, .flex-offset-sm-95 { margin-left: 95%; } .offset-sm-33, .flex-offset-sm-33 { - margin-left: 33%; } - .offset-sm-34, .flex-offset-sm-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-sm-66, .flex-offset-sm-66 { - margin-left: 66%; } - .offset-sm-67, .flex-offset-sm-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-sm { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-sm-start, + .layout-align-sm-start-start, + .layout-align-sm-start-center, + .layout-align-sm-start-end, + .layout-align-sm-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .layout-align-sm-center, - .layout-align-sm-center-center, .layout-align-sm-center-start, - .layout-align-sm-center-end { + .layout-align-sm-center-center, + .layout-align-sm-center-end, + .layout-align-sm-center-stretch { -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-center, + .layout-align-sm-end-end, + .layout-align-sm-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -1473,29 +3290,34 @@ html * { .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-end, + .layout-align-sm-space-around-stretch { -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-end, + .layout-align-sm-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-sm-center-start, .layout-align-sm-start-start, + .layout-align-sm-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-sm-start-center, + .layout-align-sm-center-center, .layout-align-sm-end-center, .layout-align-sm-space-between-center, .layout-align-sm-space-around-center { @@ -1503,23 +3325,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-sm-center-center > *, .layout-align-sm-start-center > *, + .layout-align-sm-center-center > *, .layout-align-sm-end-center > *, .layout-align-sm-space-between-center > *, .layout-align-sm-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-sm-center-end, .layout-align-sm-start-end, + .layout-align-sm-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-sm-start-stretch, + .layout-align-sm-center-stretch, + .layout-align-sm-end-stretch, + .layout-align-sm-space-between-stretch, + .layout-align-sm-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-sm { -webkit-box-flex: 1; -webkit-flex: 1; @@ -1551,614 +3391,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-0, .layout-sm-row > .flex-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-0, .layout-sm-column > .flex-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-5, .layout-sm-row > .flex-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-5, .layout-sm-column > .flex-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-10, .layout-sm-row > .flex-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-10, .layout-sm-column > .flex-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-15, .layout-sm-row > .flex-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-15, .layout-sm-column > .flex-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-20, .layout-sm-row > .flex-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-20, .layout-sm-column > .flex-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-25, .layout-sm-row > .flex-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-25, .layout-sm-column > .flex-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-30, .layout-sm-row > .flex-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-30, .layout-sm-column > .flex-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-35, .layout-sm-row > .flex-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-35, .layout-sm-column > .flex-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-40, .layout-sm-row > .flex-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-40, .layout-sm-column > .flex-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-45, .layout-sm-row > .flex-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-45, .layout-sm-column > .flex-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-50, .layout-sm-row > .flex-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-50, .layout-sm-column > .flex-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-55, .layout-sm-row > .flex-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-55, .layout-sm-column > .flex-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-60, .layout-sm-row > .flex-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-60, .layout-sm-column > .flex-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-65, .layout-sm-row > .flex-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-65, .layout-sm-column > .flex-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-70, .layout-sm-row > .flex-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-70, .layout-sm-column > .flex-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-75, .layout-sm-row > .flex-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-75, .layout-sm-column > .flex-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-80, .layout-sm-row > .flex-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-80, .layout-sm-column > .flex-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-85, .layout-sm-row > .flex-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-85, .layout-sm-column > .flex-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-90, .layout-sm-row > .flex-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-90, .layout-sm-column > .flex-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-95, .layout-sm-row > .flex-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-95, .layout-sm-column > .flex-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-100, .layout-sm-row > .flex-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-100, .layout-sm-column > .flex-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-33, .layout-row > .flex-sm-33, .layout-sm-row > .flex-sm-33, .layout-sm-row > .flex-sm-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-sm-34, .layout-row > .flex-sm-34, .layout-sm-row > .flex-sm-34, .layout-sm-row > .flex-sm-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-sm-66, .layout-row > .flex-sm-66, .layout-sm-row > .flex-sm-66, .layout-sm-row > .flex-sm-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-sm-67, .layout-row > .flex-sm-67, .layout-sm-row > .flex-sm-67, .layout-sm-row > .flex-sm-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-sm-33, .layout-column > .flex-sm-33, .layout-sm-column > .flex-sm-33, .layout-sm-column > .flex-sm-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-sm-34, .layout-column > .flex-sm-34, .layout-sm-column > .flex-sm-34, .layout-sm-column > .flex-sm-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-sm-66, .layout-column > .flex-sm-66, .layout-sm-column > .flex-sm-66, .layout-sm-column > .flex-sm-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-sm-67, .layout-column > .flex-sm-67, .layout-sm-column > .flex-sm-67, .layout-sm-column > .flex-sm-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-sm, .layout-sm-column, .layout-sm-row { box-sizing: border-box; @@ -2179,7 +3987,7 @@ html * { -ms-flex-direction: row; flex-direction: row; } } -@media (min-width: 600px) { +@media (min-width: 960px) { .flex-order-gt-sm-0 { -webkit-box-ordinal-group: 1; -webkit-order: 0; @@ -2321,25 +4129,44 @@ html * { .offset-gt-sm-95, .flex-offset-gt-sm-95 { margin-left: 95%; } .offset-gt-sm-33, .flex-offset-gt-sm-33 { - margin-left: 33%; } - .offset-gt-sm-34, .flex-offset-gt-sm-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-gt-sm-66, .flex-offset-gt-sm-66 { - margin-left: 66%; } - .offset-gt-sm-67, .flex-offset-gt-sm-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-gt-sm { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-gt-sm-start, + .layout-align-gt-sm-start-start, + .layout-align-gt-sm-start-center, + .layout-align-gt-sm-start-end, + .layout-align-gt-sm-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .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-center, + .layout-align-gt-sm-center-end, + .layout-align-gt-sm-center-stretch { -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-center, + .layout-align-gt-sm-end-end, + .layout-align-gt-sm-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -2347,29 +4174,34 @@ html * { .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-end, + .layout-align-gt-sm-space-around-stretch { -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-end, + .layout-align-gt-sm-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-gt-sm-center-start, .layout-align-gt-sm-start-start, + .layout-align-gt-sm-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-gt-sm-start-center, + .layout-align-gt-sm-center-center, .layout-align-gt-sm-end-center, .layout-align-gt-sm-space-between-center, .layout-align-gt-sm-space-around-center { @@ -2377,23 +4209,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-gt-sm-center-center > *, .layout-align-gt-sm-start-center > *, + .layout-align-gt-sm-center-center > *, .layout-align-gt-sm-end-center > *, .layout-align-gt-sm-space-between-center > *, .layout-align-gt-sm-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-gt-sm-center-end, .layout-align-gt-sm-start-end, + .layout-align-gt-sm-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-gt-sm-start-stretch, + .layout-align-gt-sm-center-stretch, + .layout-align-gt-sm-end-stretch, + .layout-align-gt-sm-space-between-stretch, + .layout-align-gt-sm-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-gt-sm { -webkit-box-flex: 1; -webkit-flex: 1; @@ -2425,614 +4275,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-gt-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-0, .layout-gt-sm-row > .flex-gt-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-0, .layout-gt-sm-column > .flex-gt-sm-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-gt-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-5, .layout-gt-sm-row > .flex-gt-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-5, .layout-gt-sm-column > .flex-gt-sm-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-gt-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-10, .layout-gt-sm-row > .flex-gt-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-10, .layout-gt-sm-column > .flex-gt-sm-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-gt-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-15, .layout-gt-sm-row > .flex-gt-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-15, .layout-gt-sm-column > .flex-gt-sm-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-gt-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-20, .layout-gt-sm-row > .flex-gt-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-20, .layout-gt-sm-column > .flex-gt-sm-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-gt-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-25, .layout-gt-sm-row > .flex-gt-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-25, .layout-gt-sm-column > .flex-gt-sm-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-gt-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-30, .layout-gt-sm-row > .flex-gt-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-30, .layout-gt-sm-column > .flex-gt-sm-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-gt-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-35, .layout-gt-sm-row > .flex-gt-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-35, .layout-gt-sm-column > .flex-gt-sm-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-gt-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-40, .layout-gt-sm-row > .flex-gt-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-40, .layout-gt-sm-column > .flex-gt-sm-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-gt-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-45, .layout-gt-sm-row > .flex-gt-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-45, .layout-gt-sm-column > .flex-gt-sm-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-gt-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-50, .layout-gt-sm-row > .flex-gt-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-50, .layout-gt-sm-column > .flex-gt-sm-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-gt-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-55, .layout-gt-sm-row > .flex-gt-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-55, .layout-gt-sm-column > .flex-gt-sm-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-gt-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-60, .layout-gt-sm-row > .flex-gt-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-60, .layout-gt-sm-column > .flex-gt-sm-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-gt-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-65, .layout-gt-sm-row > .flex-gt-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-65, .layout-gt-sm-column > .flex-gt-sm-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-gt-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-70, .layout-gt-sm-row > .flex-gt-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-70, .layout-gt-sm-column > .flex-gt-sm-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-gt-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-75, .layout-gt-sm-row > .flex-gt-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-75, .layout-gt-sm-column > .flex-gt-sm-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-gt-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-80, .layout-gt-sm-row > .flex-gt-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-80, .layout-gt-sm-column > .flex-gt-sm-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-gt-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-85, .layout-gt-sm-row > .flex-gt-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-85, .layout-gt-sm-column > .flex-gt-sm-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-gt-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-90, .layout-gt-sm-row > .flex-gt-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-90, .layout-gt-sm-column > .flex-gt-sm-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-gt-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-95, .layout-gt-sm-row > .flex-gt-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-95, .layout-gt-sm-column > .flex-gt-sm-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-gt-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-100, .layout-gt-sm-row > .flex-gt-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-100, .layout-gt-sm-column > .flex-gt-sm-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-33, .layout-row > .flex-gt-sm-33, .layout-gt-sm-row > .flex-gt-sm-33, .layout-gt-sm-row > .flex-gt-sm-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-sm-34, .layout-row > .flex-gt-sm-34, .layout-gt-sm-row > .flex-gt-sm-34, .layout-gt-sm-row > .flex-gt-sm-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-sm-66, .layout-row > .flex-gt-sm-66, .layout-gt-sm-row > .flex-gt-sm-66, .layout-gt-sm-row > .flex-gt-sm-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-sm-67, .layout-row > .flex-gt-sm-67, .layout-gt-sm-row > .flex-gt-sm-67, .layout-gt-sm-row > .flex-gt-sm-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-sm-33, .layout-column > .flex-gt-sm-33, .layout-gt-sm-column > .flex-gt-sm-33, .layout-gt-sm-column > .flex-gt-sm-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-gt-sm-34, .layout-column > .flex-gt-sm-34, .layout-gt-sm-column > .flex-gt-sm-34, .layout-gt-sm-column > .flex-gt-sm-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-gt-sm-66, .layout-column > .flex-gt-sm-66, .layout-gt-sm-column > .flex-gt-sm-66, .layout-gt-sm-column > .flex-gt-sm-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-gt-sm-67, .layout-column > .flex-gt-sm-67, .layout-gt-sm-column > .flex-gt-sm-67, .layout-gt-sm-column > .flex-gt-sm-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-gt-sm, .layout-gt-sm-column, .layout-gt-sm-row { box-sizing: border-box; @@ -3053,7 +4871,7 @@ html * { -ms-flex-direction: row; flex-direction: row; } } -@media (min-width: 600px) and (max-width: 1023px) { +@media (min-width: 960px) and (max-width: 1023px) { .hide:not(.show-gt-sm):not(.show-md):not(.show), .hide-gt-sm:not(.show-gt-sm):not(.show-md):not(.show) { display: none; } .hide-md:not(.show-md):not(.show) { @@ -3199,25 +5017,44 @@ html * { .offset-md-95, .flex-offset-md-95 { margin-left: 95%; } .offset-md-33, .flex-offset-md-33 { - margin-left: 33%; } - .offset-md-34, .flex-offset-md-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-md-66, .flex-offset-md-66 { - margin-left: 66%; } - .offset-md-67, .flex-offset-md-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-md { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-md-start, + .layout-align-md-start-start, + .layout-align-md-start-center, + .layout-align-md-start-end, + .layout-align-md-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .layout-align-md-center, - .layout-align-md-center-center, .layout-align-md-center-start, - .layout-align-md-center-end { + .layout-align-md-center-center, + .layout-align-md-center-end, + .layout-align-md-center-stretch { -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-center, + .layout-align-md-end-end, + .layout-align-md-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -3225,29 +5062,34 @@ html * { .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-end, + .layout-align-md-space-around-stretch { -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-end, + .layout-align-md-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-md-center-start, .layout-align-md-start-start, + .layout-align-md-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-md-start-center, + .layout-align-md-center-center, .layout-align-md-end-center, .layout-align-md-space-between-center, .layout-align-md-space-around-center { @@ -3255,23 +5097,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-md-center-center > *, .layout-align-md-start-center > *, + .layout-align-md-center-center > *, .layout-align-md-end-center > *, .layout-align-md-space-between-center > *, .layout-align-md-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-md-center-end, .layout-align-md-start-end, + .layout-align-md-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-md-start-stretch, + .layout-align-md-center-stretch, + .layout-align-md-end-stretch, + .layout-align-md-space-between-stretch, + .layout-align-md-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-md { -webkit-box-flex: 1; -webkit-flex: 1; @@ -3303,614 +5163,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-0, .layout-md-row > .flex-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-0, .layout-md-column > .flex-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-5, .layout-md-row > .flex-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-5, .layout-md-column > .flex-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-10, .layout-md-row > .flex-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-10, .layout-md-column > .flex-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-15, .layout-md-row > .flex-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-15, .layout-md-column > .flex-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-20, .layout-md-row > .flex-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-20, .layout-md-column > .flex-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-25, .layout-md-row > .flex-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-25, .layout-md-column > .flex-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-30, .layout-md-row > .flex-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-30, .layout-md-column > .flex-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-35, .layout-md-row > .flex-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-35, .layout-md-column > .flex-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-40, .layout-md-row > .flex-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-40, .layout-md-column > .flex-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-45, .layout-md-row > .flex-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-45, .layout-md-column > .flex-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-50, .layout-md-row > .flex-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-50, .layout-md-column > .flex-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-55, .layout-md-row > .flex-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-55, .layout-md-column > .flex-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-60, .layout-md-row > .flex-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-60, .layout-md-column > .flex-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-65, .layout-md-row > .flex-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-65, .layout-md-column > .flex-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-70, .layout-md-row > .flex-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-70, .layout-md-column > .flex-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-75, .layout-md-row > .flex-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-75, .layout-md-column > .flex-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-80, .layout-md-row > .flex-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-80, .layout-md-column > .flex-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-85, .layout-md-row > .flex-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-85, .layout-md-column > .flex-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-90, .layout-md-row > .flex-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-90, .layout-md-column > .flex-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-95, .layout-md-row > .flex-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-95, .layout-md-column > .flex-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-100, .layout-md-row > .flex-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-100, .layout-md-column > .flex-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-33, .layout-row > .flex-md-33, .layout-md-row > .flex-md-33, .layout-md-row > .flex-md-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-md-34, .layout-row > .flex-md-34, .layout-md-row > .flex-md-34, .layout-md-row > .flex-md-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-md-66, .layout-row > .flex-md-66, .layout-md-row > .flex-md-66, .layout-md-row > .flex-md-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-md-67, .layout-row > .flex-md-67, .layout-md-row > .flex-md-67, .layout-md-row > .flex-md-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-md-33, .layout-column > .flex-md-33, .layout-md-column > .flex-md-33, .layout-md-column > .flex-md-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-md-34, .layout-column > .flex-md-34, .layout-md-column > .flex-md-34, .layout-md-column > .flex-md-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-md-66, .layout-column > .flex-md-66, .layout-md-column > .flex-md-66, .layout-md-column > .flex-md-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-md-67, .layout-column > .flex-md-67, .layout-md-column > .flex-md-67, .layout-md-column > .flex-md-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-md, .layout-md-column, .layout-md-row { box-sizing: border-box; @@ -4073,25 +5901,44 @@ html * { .offset-gt-md-95, .flex-offset-gt-md-95 { margin-left: 95%; } .offset-gt-md-33, .flex-offset-gt-md-33 { - margin-left: 33%; } - .offset-gt-md-34, .flex-offset-gt-md-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-gt-md-66, .flex-offset-gt-md-66 { - margin-left: 66%; } - .offset-gt-md-67, .flex-offset-gt-md-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-gt-md { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-gt-md-start, + .layout-align-gt-md-start-start, + .layout-align-gt-md-start-center, + .layout-align-gt-md-start-end, + .layout-align-gt-md-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .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-center, + .layout-align-gt-md-center-end, + .layout-align-gt-md-center-stretch { -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-center, + .layout-align-gt-md-end-end, + .layout-align-gt-md-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -4099,29 +5946,34 @@ html * { .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-end, + .layout-align-gt-md-space-around-stretch { -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-end, + .layout-align-gt-md-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-gt-md-center-start, .layout-align-gt-md-start-start, + .layout-align-gt-md-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-gt-md-start-center, + .layout-align-gt-md-center-center, .layout-align-gt-md-end-center, .layout-align-gt-md-space-between-center, .layout-align-gt-md-space-around-center { @@ -4129,23 +5981,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-gt-md-center-center > *, .layout-align-gt-md-start-center > *, + .layout-align-gt-md-center-center > *, .layout-align-gt-md-end-center > *, .layout-align-gt-md-space-between-center > *, .layout-align-gt-md-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-gt-md-center-end, .layout-align-gt-md-start-end, + .layout-align-gt-md-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-gt-md-start-stretch, + .layout-align-gt-md-center-stretch, + .layout-align-gt-md-end-stretch, + .layout-align-gt-md-space-between-stretch, + .layout-align-gt-md-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-gt-md { -webkit-box-flex: 1; -webkit-flex: 1; @@ -4177,614 +6047,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-gt-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-0, .layout-gt-md-row > .flex-gt-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-0, .layout-gt-md-column > .flex-gt-md-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-gt-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-5, .layout-gt-md-row > .flex-gt-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-5, .layout-gt-md-column > .flex-gt-md-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-gt-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-10, .layout-gt-md-row > .flex-gt-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-10, .layout-gt-md-column > .flex-gt-md-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-gt-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-15, .layout-gt-md-row > .flex-gt-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-15, .layout-gt-md-column > .flex-gt-md-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-gt-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-20, .layout-gt-md-row > .flex-gt-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-20, .layout-gt-md-column > .flex-gt-md-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-gt-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-25, .layout-gt-md-row > .flex-gt-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-25, .layout-gt-md-column > .flex-gt-md-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-gt-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-30, .layout-gt-md-row > .flex-gt-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-30, .layout-gt-md-column > .flex-gt-md-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-gt-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-35, .layout-gt-md-row > .flex-gt-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-35, .layout-gt-md-column > .flex-gt-md-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-gt-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-40, .layout-gt-md-row > .flex-gt-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-40, .layout-gt-md-column > .flex-gt-md-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-gt-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-45, .layout-gt-md-row > .flex-gt-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-45, .layout-gt-md-column > .flex-gt-md-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-gt-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-50, .layout-gt-md-row > .flex-gt-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-50, .layout-gt-md-column > .flex-gt-md-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-gt-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-55, .layout-gt-md-row > .flex-gt-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-55, .layout-gt-md-column > .flex-gt-md-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-gt-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-60, .layout-gt-md-row > .flex-gt-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-60, .layout-gt-md-column > .flex-gt-md-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-gt-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-65, .layout-gt-md-row > .flex-gt-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-65, .layout-gt-md-column > .flex-gt-md-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-gt-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-70, .layout-gt-md-row > .flex-gt-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-70, .layout-gt-md-column > .flex-gt-md-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-gt-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-75, .layout-gt-md-row > .flex-gt-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-75, .layout-gt-md-column > .flex-gt-md-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-gt-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-80, .layout-gt-md-row > .flex-gt-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-80, .layout-gt-md-column > .flex-gt-md-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-gt-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-85, .layout-gt-md-row > .flex-gt-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-85, .layout-gt-md-column > .flex-gt-md-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-gt-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-90, .layout-gt-md-row > .flex-gt-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-90, .layout-gt-md-column > .flex-gt-md-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-gt-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-95, .layout-gt-md-row > .flex-gt-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-95, .layout-gt-md-column > .flex-gt-md-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-gt-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-100, .layout-gt-md-row > .flex-gt-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-100, .layout-gt-md-column > .flex-gt-md-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-33, .layout-row > .flex-gt-md-33, .layout-gt-md-row > .flex-gt-md-33, .layout-gt-md-row > .flex-gt-md-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-md-34, .layout-row > .flex-gt-md-34, .layout-gt-md-row > .flex-gt-md-34, .layout-gt-md-row > .flex-gt-md-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-md-66, .layout-row > .flex-gt-md-66, .layout-gt-md-row > .flex-gt-md-66, .layout-gt-md-row > .flex-gt-md-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-md-67, .layout-row > .flex-gt-md-67, .layout-gt-md-row > .flex-gt-md-67, .layout-gt-md-row > .flex-gt-md-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-md-33, .layout-column > .flex-gt-md-33, .layout-gt-md-column > .flex-gt-md-33, .layout-gt-md-column > .flex-gt-md-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-gt-md-34, .layout-column > .flex-gt-md-34, .layout-gt-md-column > .flex-gt-md-34, .layout-gt-md-column > .flex-gt-md-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-gt-md-66, .layout-column > .flex-gt-md-66, .layout-gt-md-column > .flex-gt-md-66, .layout-gt-md-column > .flex-gt-md-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-gt-md-67, .layout-column > .flex-gt-md-67, .layout-gt-md-column > .flex-gt-md-67, .layout-gt-md-column > .flex-gt-md-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-gt-md, .layout-gt-md-column, .layout-gt-md-row { box-sizing: border-box; @@ -4951,25 +6789,44 @@ html * { .offset-lg-95, .flex-offset-lg-95 { margin-left: 95%; } .offset-lg-33, .flex-offset-lg-33 { - margin-left: 33%; } - .offset-lg-34, .flex-offset-lg-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-lg-66, .flex-offset-lg-66 { - margin-left: 66%; } - .offset-lg-67, .flex-offset-lg-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-lg { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-lg-start, + .layout-align-lg-start-start, + .layout-align-lg-start-center, + .layout-align-lg-start-end, + .layout-align-lg-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .layout-align-lg-center, - .layout-align-lg-center-center, .layout-align-lg-center-start, - .layout-align-lg-center-end { + .layout-align-lg-center-center, + .layout-align-lg-center-end, + .layout-align-lg-center-stretch { -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-center, + .layout-align-lg-end-end, + .layout-align-lg-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -4977,29 +6834,34 @@ html * { .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-end, + .layout-align-lg-space-around-stretch { -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-end, + .layout-align-lg-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-lg-center-start, .layout-align-lg-start-start, + .layout-align-lg-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-lg-start-center, + .layout-align-lg-center-center, .layout-align-lg-end-center, .layout-align-lg-space-between-center, .layout-align-lg-space-around-center { @@ -5007,23 +6869,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-lg-center-center > *, .layout-align-lg-start-center > *, + .layout-align-lg-center-center > *, .layout-align-lg-end-center > *, .layout-align-lg-space-between-center > *, .layout-align-lg-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-lg-center-end, .layout-align-lg-start-end, + .layout-align-lg-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-lg-start-stretch, + .layout-align-lg-center-stretch, + .layout-align-lg-end-stretch, + .layout-align-lg-space-between-stretch, + .layout-align-lg-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-lg { -webkit-box-flex: 1; -webkit-flex: 1; @@ -5055,614 +6935,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-0, .layout-lg-row > .flex-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-0, .layout-lg-column > .flex-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-5, .layout-lg-row > .flex-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-5, .layout-lg-column > .flex-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-10, .layout-lg-row > .flex-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-10, .layout-lg-column > .flex-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-15, .layout-lg-row > .flex-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-15, .layout-lg-column > .flex-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-20, .layout-lg-row > .flex-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-20, .layout-lg-column > .flex-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-25, .layout-lg-row > .flex-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-25, .layout-lg-column > .flex-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-30, .layout-lg-row > .flex-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-30, .layout-lg-column > .flex-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-35, .layout-lg-row > .flex-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-35, .layout-lg-column > .flex-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-40, .layout-lg-row > .flex-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-40, .layout-lg-column > .flex-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-45, .layout-lg-row > .flex-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-45, .layout-lg-column > .flex-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-50, .layout-lg-row > .flex-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-50, .layout-lg-column > .flex-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-55, .layout-lg-row > .flex-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-55, .layout-lg-column > .flex-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-60, .layout-lg-row > .flex-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-60, .layout-lg-column > .flex-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-65, .layout-lg-row > .flex-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-65, .layout-lg-column > .flex-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-70, .layout-lg-row > .flex-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-70, .layout-lg-column > .flex-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-75, .layout-lg-row > .flex-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-75, .layout-lg-column > .flex-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-80, .layout-lg-row > .flex-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-80, .layout-lg-column > .flex-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-85, .layout-lg-row > .flex-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-85, .layout-lg-column > .flex-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-90, .layout-lg-row > .flex-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-90, .layout-lg-column > .flex-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-95, .layout-lg-row > .flex-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-95, .layout-lg-column > .flex-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-100, .layout-lg-row > .flex-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-100, .layout-lg-column > .flex-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-33, .layout-row > .flex-lg-33, .layout-lg-row > .flex-lg-33, .layout-lg-row > .flex-lg-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-lg-34, .layout-row > .flex-lg-34, .layout-lg-row > .flex-lg-34, .layout-lg-row > .flex-lg-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-lg-66, .layout-row > .flex-lg-66, .layout-lg-row > .flex-lg-66, .layout-lg-row > .flex-lg-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-lg-67, .layout-row > .flex-lg-67, .layout-lg-row > .flex-lg-67, .layout-lg-row > .flex-lg-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-lg-33, .layout-column > .flex-lg-33, .layout-lg-column > .flex-lg-33, .layout-lg-column > .flex-lg-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-lg-34, .layout-column > .flex-lg-34, .layout-lg-column > .flex-lg-34, .layout-lg-column > .flex-lg-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-lg-66, .layout-column > .flex-lg-66, .layout-lg-column > .flex-lg-66, .layout-lg-column > .flex-lg-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-lg-67, .layout-column > .flex-lg-67, .layout-lg-column > .flex-lg-67, .layout-lg-column > .flex-lg-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-lg, .layout-lg-column, .layout-lg-row { box-sizing: border-box; @@ -5684,7 +7532,9 @@ html * { flex-direction: row; } } @media (min-width: 1280px) { - .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-lg:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show) { + .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), .hide-gt-lg:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show), .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show) { + display: none; } + .hide-xl:not(.show-xl):not(.show) { display: none; } .flex-order-gt-lg-0 { -webkit-box-ordinal-group: 1; @@ -5827,25 +7677,44 @@ html * { .offset-gt-lg-95, .flex-offset-gt-lg-95 { margin-left: 95%; } .offset-gt-lg-33, .flex-offset-gt-lg-33 { - margin-left: 33%; } - .offset-gt-lg-34, .flex-offset-gt-lg-34 { - margin-left: 34%; } + margin-left: calc(100% / 3); } .offset-gt-lg-66, .flex-offset-gt-lg-66 { - margin-left: 66%; } - .offset-gt-lg-67, .flex-offset-gt-lg-67 { - margin-left: 67%; } + margin-left: calc(200% / 3); } + .layout-align-gt-lg { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-gt-lg-start, + .layout-align-gt-lg-start-start, + .layout-align-gt-lg-start-center, + .layout-align-gt-lg-start-end, + .layout-align-gt-lg-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } .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-center, + .layout-align-gt-lg-center-end, + .layout-align-gt-lg-center-stretch { -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-center, + .layout-align-gt-lg-end-end, + .layout-align-gt-lg-end-stretch { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; @@ -5853,29 +7722,34 @@ html * { .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-end, + .layout-align-gt-lg-space-around-stretch { -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-end, + .layout-align-gt-lg-space-between-stretch { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - .layout-align-gt-lg-center-start, .layout-align-gt-lg-start-start, + .layout-align-gt-lg-center-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-center, + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } .layout-align-gt-lg-start-center, + .layout-align-gt-lg-center-center, .layout-align-gt-lg-end-center, .layout-align-gt-lg-space-between-center, .layout-align-gt-lg-space-around-center { @@ -5883,23 +7757,41 @@ html * { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; max-width: 100%; } - .layout-align-gt-lg-center-center > *, .layout-align-gt-lg-start-center > *, + .layout-align-gt-lg-center-center > *, .layout-align-gt-lg-end-center > *, .layout-align-gt-lg-space-between-center > *, .layout-align-gt-lg-space-around-center > * { max-width: 100%; box-sizing: border-box; } - .layout-align-gt-lg-center-end, .layout-align-gt-lg-start-end, + .layout-align-gt-lg-center-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; } + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-gt-lg-start-stretch, + .layout-align-gt-lg-center-stretch, + .layout-align-gt-lg-end-stretch, + .layout-align-gt-lg-space-between-stretch, + .layout-align-gt-lg-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } .flex-gt-lg { -webkit-box-flex: 1; -webkit-flex: 1; @@ -5931,614 +7823,582 @@ html * { flex: 0 0 auto; box-sizing: border-box; } .flex-gt-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-0, .layout-gt-lg-row > .flex-gt-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 0%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-0, .layout-gt-lg-column > .flex-gt-lg-0 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 0%; - -ms-flex: 0 0 0%; - flex: 0 0 0%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; max-width: 100%; max-height: 0%; box-sizing: border-box; } .flex-gt-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-5, .layout-gt-lg-row > .flex-gt-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 5%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-5, .layout-gt-lg-column > .flex-gt-lg-5 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; max-width: 100%; max-height: 5%; box-sizing: border-box; } .flex-gt-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-10, .layout-gt-lg-row > .flex-gt-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 10%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-10, .layout-gt-lg-column > .flex-gt-lg-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; max-width: 100%; max-height: 10%; box-sizing: border-box; } .flex-gt-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-15, .layout-gt-lg-row > .flex-gt-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 15%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-15, .layout-gt-lg-column > .flex-gt-lg-15 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; max-width: 100%; max-height: 15%; box-sizing: border-box; } .flex-gt-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-20, .layout-gt-lg-row > .flex-gt-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 20%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-20, .layout-gt-lg-column > .flex-gt-lg-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; max-width: 100%; max-height: 20%; box-sizing: border-box; } .flex-gt-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-25, .layout-gt-lg-row > .flex-gt-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 25%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-25, .layout-gt-lg-column > .flex-gt-lg-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; max-width: 100%; max-height: 25%; box-sizing: border-box; } .flex-gt-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-30, .layout-gt-lg-row > .flex-gt-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 30%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-30, .layout-gt-lg-column > .flex-gt-lg-30 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; max-width: 100%; max-height: 30%; box-sizing: border-box; } .flex-gt-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-35, .layout-gt-lg-row > .flex-gt-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 35%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-35, .layout-gt-lg-column > .flex-gt-lg-35 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; max-width: 100%; max-height: 35%; box-sizing: border-box; } .flex-gt-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-40, .layout-gt-lg-row > .flex-gt-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 40%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-40, .layout-gt-lg-column > .flex-gt-lg-40 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; max-width: 100%; max-height: 40%; box-sizing: border-box; } .flex-gt-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-45, .layout-gt-lg-row > .flex-gt-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 45%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-45, .layout-gt-lg-column > .flex-gt-lg-45 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; max-width: 100%; max-height: 45%; box-sizing: border-box; } .flex-gt-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-50, .layout-gt-lg-row > .flex-gt-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 50%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-50, .layout-gt-lg-column > .flex-gt-lg-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; max-width: 100%; max-height: 50%; box-sizing: border-box; } .flex-gt-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-55, .layout-gt-lg-row > .flex-gt-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 55%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-55, .layout-gt-lg-column > .flex-gt-lg-55 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; max-width: 100%; max-height: 55%; box-sizing: border-box; } .flex-gt-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-60, .layout-gt-lg-row > .flex-gt-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 60%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-60, .layout-gt-lg-column > .flex-gt-lg-60 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; max-width: 100%; max-height: 60%; box-sizing: border-box; } .flex-gt-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-65, .layout-gt-lg-row > .flex-gt-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 65%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-65, .layout-gt-lg-column > .flex-gt-lg-65 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; max-width: 100%; max-height: 65%; box-sizing: border-box; } .flex-gt-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-70, .layout-gt-lg-row > .flex-gt-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 70%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-70, .layout-gt-lg-column > .flex-gt-lg-70 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; max-width: 100%; max-height: 70%; box-sizing: border-box; } .flex-gt-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-75, .layout-gt-lg-row > .flex-gt-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 75%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-75, .layout-gt-lg-column > .flex-gt-lg-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; max-width: 100%; max-height: 75%; box-sizing: border-box; } .flex-gt-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-80, .layout-gt-lg-row > .flex-gt-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 80%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-80, .layout-gt-lg-column > .flex-gt-lg-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; max-width: 100%; max-height: 80%; box-sizing: border-box; } .flex-gt-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-85, .layout-gt-lg-row > .flex-gt-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 85%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-85, .layout-gt-lg-column > .flex-gt-lg-85 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; max-width: 100%; max-height: 85%; box-sizing: border-box; } .flex-gt-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-90, .layout-gt-lg-row > .flex-gt-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 90%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-90, .layout-gt-lg-column > .flex-gt-lg-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; max-width: 100%; max-height: 90%; box-sizing: border-box; } .flex-gt-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-95, .layout-gt-lg-row > .flex-gt-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 95%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-95, .layout-gt-lg-column > .flex-gt-lg-95 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; max-width: 100%; max-height: 95%; box-sizing: border-box; } .flex-gt-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-100, .layout-gt-lg-row > .flex-gt-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-100, .layout-gt-lg-column > .flex-gt-lg-100 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; max-width: 100%; max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-33, .layout-row > .flex-gt-lg-33, .layout-gt-lg-row > .flex-gt-lg-33, .layout-gt-lg-row > .flex-gt-lg-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-lg-34, .layout-row > .flex-gt-lg-34, .layout-gt-lg-row > .flex-gt-lg-34, .layout-gt-lg-row > .flex-gt-lg-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 34%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); max-height: 100%; box-sizing: border-box; } .layout-row > .flex-gt-lg-66, .layout-row > .flex-gt-lg-66, .layout-gt-lg-row > .flex-gt-lg-66, .layout-gt-lg-row > .flex-gt-lg-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; - max-width: 66%; - max-height: 100%; - box-sizing: border-box; } - .layout-row > .flex-gt-lg-67, .layout-row > .flex-gt-lg-67, .layout-gt-lg-row > .flex-gt-lg-67, .layout-gt-lg-row > .flex-gt-lg-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); max-height: 100%; box-sizing: border-box; } .layout-column > .flex-gt-lg-33, .layout-column > .flex-gt-lg-33, .layout-gt-lg-column > .flex-gt-lg-33, .layout-gt-lg-column > .flex-gt-lg-33 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; max-width: 100%; - max-height: 33%; - box-sizing: border-box; } - .layout-column > .flex-gt-lg-34, .layout-column > .flex-gt-lg-34, .layout-gt-lg-column > .flex-gt-lg-34, .layout-gt-lg-column > .flex-gt-lg-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 34%; - -ms-flex: 0 0 34%; - flex: 0 0 34%; - max-width: 100%; - max-height: 34%; + max-height: calc(100% / 3); box-sizing: border-box; } .layout-column > .flex-gt-lg-66, .layout-column > .flex-gt-lg-66, .layout-gt-lg-column > .flex-gt-lg-66, .layout-gt-lg-column > .flex-gt-lg-66 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66%; - -ms-flex: 0 0 66%; - flex: 0 0 66%; + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; max-width: 100%; - max-height: 66%; - box-sizing: border-box; } - .layout-column > .flex-gt-lg-67, .layout-column > .flex-gt-lg-67, .layout-gt-lg-column > .flex-gt-lg-67, .layout-gt-lg-column > .flex-gt-lg-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 100%; - max-height: 67%; + max-height: calc(200% / 3); box-sizing: border-box; } .layout-gt-lg, .layout-gt-lg-column, .layout-gt-lg-row { box-sizing: border-box; @@ -6553,6 +8413,888 @@ html * { -ms-flex-direction: column; flex-direction: column; } .layout-gt-lg-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + .flex-order-xl-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-xl-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-xl-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-xl-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-xl-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-xl-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-xl-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-xl-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-xl-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-xl-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-xl-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-xl-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-xl-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-xl-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-xl-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-xl-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-xl-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-xl-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-xl-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-xl-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-xl-0, .flex-offset-xl-0 { + margin-left: 0%; } + .offset-xl-5, .flex-offset-xl-5 { + margin-left: 5%; } + .offset-xl-10, .flex-offset-xl-10 { + margin-left: 10%; } + .offset-xl-15, .flex-offset-xl-15 { + margin-left: 15%; } + .offset-xl-20, .flex-offset-xl-20 { + margin-left: 20%; } + .offset-xl-25, .flex-offset-xl-25 { + margin-left: 25%; } + .offset-xl-30, .flex-offset-xl-30 { + margin-left: 30%; } + .offset-xl-35, .flex-offset-xl-35 { + margin-left: 35%; } + .offset-xl-40, .flex-offset-xl-40 { + margin-left: 40%; } + .offset-xl-45, .flex-offset-xl-45 { + margin-left: 45%; } + .offset-xl-50, .flex-offset-xl-50 { + margin-left: 50%; } + .offset-xl-55, .flex-offset-xl-55 { + margin-left: 55%; } + .offset-xl-60, .flex-offset-xl-60 { + margin-left: 60%; } + .offset-xl-65, .flex-offset-xl-65 { + margin-left: 65%; } + .offset-xl-70, .flex-offset-xl-70 { + margin-left: 70%; } + .offset-xl-75, .flex-offset-xl-75 { + margin-left: 75%; } + .offset-xl-80, .flex-offset-xl-80 { + margin-left: 80%; } + .offset-xl-85, .flex-offset-xl-85 { + margin-left: 85%; } + .offset-xl-90, .flex-offset-xl-90 { + margin-left: 90%; } + .offset-xl-95, .flex-offset-xl-95 { + margin-left: 95%; } + .offset-xl-33, .flex-offset-xl-33 { + margin-left: calc(100% / 3); } + .offset-xl-66, .flex-offset-xl-66 { + margin-left: calc(200% / 3); } + .layout-align-xl { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; } + .layout-align-xl-start, + .layout-align-xl-start-start, + .layout-align-xl-start-center, + .layout-align-xl-start-end, + .layout-align-xl-start-stretch { + -webkit-box-pack: start; + -webkit-justify-content: start; + -ms-flex-pack: start; + justify-content: start; } + .layout-align-xl-center, + .layout-align-xl-center-start, + .layout-align-xl-center-center, + .layout-align-xl-center-end, + .layout-align-xl-center-stretch { + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } + .layout-align-xl-end, + .layout-align-xl-end-start, + .layout-align-xl-end-center, + .layout-align-xl-end-end, + .layout-align-xl-end-stretch { + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; } + .layout-align-xl-space-around, + .layout-align-xl-space-around-center, + .layout-align-xl-space-around-start, + .layout-align-xl-space-around-end, + .layout-align-xl-space-around-stretch { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; } + .layout-align-xl-space-between, + .layout-align-xl-space-between-center, + .layout-align-xl-space-between-start, + .layout-align-xl-space-between-end, + .layout-align-xl-space-between-stretch { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; } + .layout-align-xl-start-start, + .layout-align-xl-center-start, + .layout-align-xl-end-start, + .layout-align-xl-space-between-start, + .layout-align-xl-space-around-start { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; } + .layout-align-xl-start-center, + .layout-align-xl-center-center, + .layout-align-xl-end-center, + .layout-align-xl-space-between-center, + .layout-align-xl-space-around-center { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-align-content: center; + -ms-flex-line-pack: center; + align-content: center; + max-width: 100%; } + .layout-align-xl-start-center > *, + .layout-align-xl-center-center > *, + .layout-align-xl-end-center > *, + .layout-align-xl-space-between-center > *, + .layout-align-xl-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } + .layout-align-xl-start-end, + .layout-align-xl-center-end, + .layout-align-xl-end-end, + .layout-align-xl-space-between-end, + .layout-align-xl-space-around-end { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + -webkit-align-content: flex-end; + -ms-flex-line-pack: end; + align-content: flex-end; } + .layout-align-xl-start-stretch, + .layout-align-xl-center-stretch, + .layout-align-xl-end-stretch, + .layout-align-xl-space-between-stretch, + .layout-align-xl-space-around-stretch { + -webkit-box-align: stretch; + -webkit-align-items: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-align-content: stretch; + -ms-flex-line-pack: stretch; + align-content: stretch; } + .flex-xl { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-xl-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-xl-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-xl-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-xl-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-xl-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-0, + .layout-xl-row > .flex-xl-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-0, + .layout-xl-column > .flex-xl-0 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0%; + -ms-flex: 1 1 0%; + flex: 1 1 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-xl-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-5, + .layout-xl-row > .flex-xl-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-5, + .layout-xl-column > .flex-xl-5 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 5%; + -ms-flex: 1 1 5%; + flex: 1 1 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-xl-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-10, + .layout-xl-row > .flex-xl-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-10, + .layout-xl-column > .flex-xl-10 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 10%; + -ms-flex: 1 1 10%; + flex: 1 1 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-xl-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-15, + .layout-xl-row > .flex-xl-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-15, + .layout-xl-column > .flex-xl-15 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 15%; + -ms-flex: 1 1 15%; + flex: 1 1 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-xl-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-20, + .layout-xl-row > .flex-xl-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-20, + .layout-xl-column > .flex-xl-20 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 20%; + -ms-flex: 1 1 20%; + flex: 1 1 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-xl-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-25, + .layout-xl-row > .flex-xl-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-25, + .layout-xl-column > .flex-xl-25 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 25%; + -ms-flex: 1 1 25%; + flex: 1 1 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-xl-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-30, + .layout-xl-row > .flex-xl-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-30, + .layout-xl-column > .flex-xl-30 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 30%; + -ms-flex: 1 1 30%; + flex: 1 1 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-xl-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-35, + .layout-xl-row > .flex-xl-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-35, + .layout-xl-column > .flex-xl-35 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 35%; + -ms-flex: 1 1 35%; + flex: 1 1 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-xl-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-40, + .layout-xl-row > .flex-xl-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-40, + .layout-xl-column > .flex-xl-40 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 40%; + -ms-flex: 1 1 40%; + flex: 1 1 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-xl-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-45, + .layout-xl-row > .flex-xl-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-45, + .layout-xl-column > .flex-xl-45 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 45%; + -ms-flex: 1 1 45%; + flex: 1 1 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-xl-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-50, + .layout-xl-row > .flex-xl-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-50, + .layout-xl-column > .flex-xl-50 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 50%; + -ms-flex: 1 1 50%; + flex: 1 1 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-xl-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-55, + .layout-xl-row > .flex-xl-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-55, + .layout-xl-column > .flex-xl-55 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 55%; + -ms-flex: 1 1 55%; + flex: 1 1 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-xl-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-60, + .layout-xl-row > .flex-xl-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-60, + .layout-xl-column > .flex-xl-60 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 60%; + -ms-flex: 1 1 60%; + flex: 1 1 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-xl-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-65, + .layout-xl-row > .flex-xl-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-65, + .layout-xl-column > .flex-xl-65 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 65%; + -ms-flex: 1 1 65%; + flex: 1 1 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-xl-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-70, + .layout-xl-row > .flex-xl-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-70, + .layout-xl-column > .flex-xl-70 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 70%; + -ms-flex: 1 1 70%; + flex: 1 1 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-xl-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-75, + .layout-xl-row > .flex-xl-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-75, + .layout-xl-column > .flex-xl-75 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 75%; + -ms-flex: 1 1 75%; + flex: 1 1 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-xl-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-80, + .layout-xl-row > .flex-xl-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-80, + .layout-xl-column > .flex-xl-80 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 80%; + -ms-flex: 1 1 80%; + flex: 1 1 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-xl-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-85, + .layout-xl-row > .flex-xl-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-85, + .layout-xl-column > .flex-xl-85 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 85%; + -ms-flex: 1 1 85%; + flex: 1 1 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-xl-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-90, + .layout-xl-row > .flex-xl-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-90, + .layout-xl-column > .flex-xl-90 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 90%; + -ms-flex: 1 1 90%; + flex: 1 1 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-xl-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-95, + .layout-xl-row > .flex-xl-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-95, + .layout-xl-column > .flex-xl-95 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 95%; + -ms-flex: 1 1 95%; + flex: 1 1 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-xl-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-100, + .layout-xl-row > .flex-xl-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-100, + .layout-xl-column > .flex-xl-100 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-33, .layout-row > .flex-xl-33, .layout-xl-row > .flex-xl-33, .layout-xl-row > .flex-xl-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: calc(100% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-xl-66, .layout-row > .flex-xl-66, .layout-xl-row > .flex-xl-66, .layout-xl-row > .flex-xl-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: calc(200% / 3); + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-xl-33, .layout-column > .flex-xl-33, .layout-xl-column > .flex-xl-33, .layout-xl-column > .flex-xl-33 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 33%; + -ms-flex: 1 1 33%; + flex: 1 1 33%; + max-width: 100%; + max-height: calc(100% / 3); + box-sizing: border-box; } + .layout-column > .flex-xl-66, .layout-column > .flex-xl-66, .layout-xl-column > .flex-xl-66, .layout-xl-column > .flex-xl-66 { + -webkit-box-flex: 1; + -webkit-flex: 1 1 66%; + -ms-flex: 1 1 66%; + flex: 1 1 66%; + max-width: 100%; + max-height: calc(200% / 3); + box-sizing: border-box; } + .layout-xl, .layout-xl-column, .layout-xl-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-xl-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-xl-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; @@ -6583,7 +9325,7 @@ html * { -ms-flex: 1 1 0; flex: 1 1 0; } -@media (max-width: 600px) { +@media (max-width: 960px) { .sg-app-content { width: 100%; overflow-x: hidden; } } @@ -6653,7 +9395,7 @@ html, body { letter-spacing: 0.010em; line-height: 24px; } -.md-caption { +.md-caption, .sg-attachment-size { font-size: 12px; letter-spacing: 0.020em; } @@ -6996,6 +9738,11 @@ md-autocomplete { position: absolute; bottom: -2px; left: 0; } + md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline { + bottom: 40px; + right: 2px; + left: 2px; + width: auto; } md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate { position: absolute; top: 0; @@ -7103,6 +9850,9 @@ md-autocomplete { max-height: 225.5px; z-index: 100; } +.md-virtual-repeat-container.md-not-found { + height: 48px; } + .md-autocomplete-suggestions { margin: 0; list-style: none; @@ -7128,7 +9878,7 @@ md-autocomplete { .md-autocomplete-suggestions { border: 1px solid #fff; } } -@media (max-width: 600px) { +@media (max-width: 960px) { .md-autocomplete-suggestions-container { right: 16px; } } @@ -7144,7 +9894,7 @@ md-backdrop { z-index: 50; } md-backdrop.md-menu-backdrop { position: fixed !important; - z-index: 98; } + z-index: 94; } md-backdrop.md-select-backdrop { z-index: 81; -webkit-transition-duration: 0; @@ -7268,16 +10018,18 @@ button.md-button::-moz-focus-inner { background: none; } .md-button.md-raised:not([disabled]) { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); } - .md-button.md-icon-button { + .md-button.md-icon-button, a.md-button.sg-icon-button, + .md-button.sg-icon-button, + md-list md-list-item button.md-button.sg-icon-button { margin: 0 6px; - height: 48px; + height: 40px; min-width: 0; - line-height: 48px; - padding-left: 0; - padding-right: 0; - width: 48px; + line-height: 24px; + padding: 8px; + width: 40px; border-radius: 50%; } - .md-button.md-icon-button .md-ripple-container { + .md-button.md-icon-button .md-ripple-container, + .md-button.sg-icon-button .md-ripple-container { border-radius: 50%; background-clip: padding-box; overflow: hidden; @@ -7293,10 +10045,10 @@ button.md-button::-moz-focus-inner { border-radius: 50%; background-clip: padding-box; overflow: hidden; - -webkit-transition: 0.2s linear; - transition: 0.2s linear; - -webkit-transition-property: background-color, box-shadow; - transition-property: background-color, box-shadow; } + -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); + transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); + -webkit-transition-property: background-color, box-shadow, -webkit-transform; + transition-property: background-color, box-shadow, transform; } .md-button.md-fab.md-fab-bottom-right { top: auto; right: 20px; @@ -7330,6 +10082,9 @@ button.md-button::-moz-focus-inner { line-height: 40px; width: 40px; height: 40px; } + .md-button.md-fab.ng-hide, .md-button.md-fab.ng-leave { + -webkit-transition: none; + transition: none; } .md-button:not([disabled]).md-raised.md-focused, .md-button:not([disabled]).md-fab.md-focused { box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); } .md-button:not([disabled]).md-raised:active, .md-button:not([disabled]).md-fab:active { @@ -7342,6 +10097,8 @@ button.md-button::-moz-focus-inner { .md-toast-open-top .md-button.md-fab-top-left, .md-toast-open-top .md-button.md-fab-top-right { + -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); -webkit-transform: translate3d(0, 42px, 0); transform: translate3d(0, 42px, 0); } .md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused, .md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover, @@ -7352,6 +10109,8 @@ button.md-button::-moz-focus-inner { .md-toast-open-bottom .md-button.md-fab-bottom-left, .md-toast-open-bottom .md-button.md-fab-bottom-right { + -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); -webkit-transform: translate3d(0, -42px, 0); transform: translate3d(0, -42px, 0); } .md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused, .md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover, @@ -7404,23 +10163,36 @@ button.md-button::-moz-focus-inner { .sg-expandable { width: 100%; } +.md-toolbar-tools md-menu:first-child .md-icon-button:first-child { + margin-left: 0; } + a.md-button.sg-icon-button, .md-button.sg-icon-button, md-list md-list-item button.md-button.sg-icon-button { - z-index: 1; - border-radius: 50%; - min-width: 36px; -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); } - a.md-button.sg-icon-button .md-ripple-container, - .md-button.sg-icon-button .md-ripple-container, - md-list md-list-item button.md-button.sg-icon-button .md-ripple-container { - border-radius: 50%; } + a.md-button.sg-icon-button:hover:not([disabled]), a.md-button.sg-icon-button:active, + .md-button.sg-icon-button:hover:not([disabled]), + .md-button.sg-icon-button:active, + md-list md-list-item button.md-button.sg-icon-button:hover:not([disabled]), + md-list md-list-item button.md-button.sg-icon-button:active { + background-color: transparent; + -webkit-transform: scale(1.25); + -ms-transform: scale(1.25); + transform: scale(1.25); } .md-avatar .sg-icon-button { margin-top: 1px; margin-left: 2px; } +.md-subheader-content .md-icon-button:first-child { + padding-left: 0; + margin-left: 3px; + margin-right: 9px; } + +md-tab-content .md-subheader-content .md-icon-button:first-child { + margin-right: 3px; } + .sg-icon-bar--vertical { display: -webkit-box; display: -webkit-flex; @@ -7440,7 +10212,7 @@ md-list md-list-item button.md-button.sg-icon-button { -webkit-justify-content: space-between; -ms-flex-pack: justify; justify-content: space-between; } - @media (min-width: 1) and (max-width: 600px) { + @media (min-width: 601px) and (max-width: 960px) { .sg-icon-bar--vertical { margin-left: 6px; } } @@ -7484,18 +10256,184 @@ md-card { flex-direction: column; margin: 8px; box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12); } + md-card md-card-header { + padding: 16px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + md-card md-card-header:first-child md-card-avatar { + margin-right: 12px; } + md-card md-card-header:last-child md-card-avatar { + margin-left: 12px; } + md-card md-card-header md-card-avatar { + width: 40px; + height: 40px; } + md-card md-card-header md-card-avatar .md-user-avatar, + md-card md-card-header md-card-avatar md-icon { + border-radius: 50%; } + md-card md-card-header md-card-avatar md-icon { + padding: 8px; } + md-card md-card-header md-card-avatar + md-card-header-text { + max-height: 40px; } + md-card md-card-header md-card-avatar + md-card-header-text .md-title { + font-size: 14px; } + md-card md-card-header md-card-header-text { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + md-card md-card-header md-card-header-text .md-subhead { + font-size: 14px; } md-card > img, md-card > :not(md-card-content) img { - width: 100%; } + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + width: 100%; + height: auto; } + md-card md-card-title { + padding: 24px 16px 16px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + md-card md-card-title + md-card-content { + padding-top: 0; } + md-card md-card-title md-card-title-text { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + md-card md-card-title md-card-title-text .md-subhead { + padding-top: 0; + font-size: 14px; } + md-card md-card-title md-card-title-text:only-child .md-subhead { + padding-top: 12px; } + md-card md-card-title md-card-title-media { + margin-top: -8px; } + md-card md-card-title md-card-title-media .md-media-sm { + height: 80px; + width: 80px; } + md-card md-card-title md-card-title-media .md-media-md { + height: 112px; + width: 112px; } + md-card md-card-title md-card-title-media .md-media-lg { + height: 152px; + width: 152px; } md-card md-card-content { + display: block; padding: 16px; } - md-card .md-actions { - margin: 0; } - md-card .md-actions .md-button { - margin-bottom: 8px; - margin-top: 8px; - margin-right: 4px; - margin-left: 4px; } + md-card md-card-content > p { + margin: 0; } + md-card md-card-content .md-media-xl { + height: 240px; + width: 240px; } + md-card .md-actions, md-card md-card-actions { + margin: 8px; } + md-card .md-actions.layout-column .md-button:not(.md-icon-button), md-card md-card-actions.layout-column .md-button:not(.md-icon-button) { + margin: 2px 0; } + md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type, md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type { + margin-top: 0; } + md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type, md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type { + margin-bottom: 0; } + md-card .md-actions.layout-column .md-button.md-icon-button, md-card .md-actions.layout-column + .md-button.sg-icon-button, md-card md-card-actions.layout-column .md-button.md-icon-button, md-card md-card-actions.layout-column + .md-button.sg-icon-button { + margin-top: 6px; + margin-bottom: 6px; } + md-card .md-actions md-card-icon-actions, md-card md-card-actions md-card-icon-actions { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + 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; } + md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button), md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button) { + margin: 0 4px; } + md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type, md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type { + margin-left: 0; } + md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type, md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type { + margin-right: 0; } + md-card .md-actions:not(.layout-column) .md-button.md-icon-button, md-card .md-actions:not(.layout-column) + .md-button.sg-icon-button, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button, md-card md-card-actions:not(.layout-column) + .md-button.sg-icon-button { + margin-left: 6px; + margin-right: 6px; } + md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type, md-card .md-actions:not(.layout-column) + .md-button.sg-icon-button:first-of-type, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type, md-card md-card-actions:not(.layout-column) + .md-button.sg-icon-button:first-of-type { + margin-left: 12px; } + md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type, md-card .md-actions:not(.layout-column) + .md-button.sg-icon-button:last-of-type, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type, md-card md-card-actions:not(.layout-column) + .md-button.sg-icon-button:last-of-type { + margin-right: 12px; } + md-card .md-actions:not(.layout-column) .md-button + md-card-icon-actions, md-card md-card-actions:not(.layout-column) .md-button + md-card-icon-actions { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + 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; } md-card md-card-footer { margin-top: auto; padding: 16px; } @@ -7509,6 +10447,11 @@ md-card md-card-content { -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); } +md-card md-card-actions:not(.layout-column) .md-button.md-icon-button, md-card md-card-actions:not(.layout-column) +.md-button.sg-icon-button, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type, md-card md-card-actions:not(.layout-column) +.md-button.sg-icon-button:last-of-type, md-card md-card-actions:not(.layout-column) .md-button.sg-icon-button, md-card md-card-actions:not(.layout-column) .md-button.sg-icon-button:last-of-type { + margin: 0 4px; } + md-card.sg-collapsed, md-card.sg-expanded { -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); @@ -7566,10 +10509,13 @@ md-card .md-button .sg-tile-content { text-transform: none; } /*! checkbox/_extends.scss - */ +.md-inline-form md-checkbox { + margin: 19px 0 18px; } + md-checkbox { box-sizing: border-box; - display: block; - margin: 8px; + display: inline-block; + margin-bottom: 16px; white-space: nowrap; cursor: pointer; outline: none; @@ -7577,17 +10523,16 @@ md-checkbox { -moz-user-select: none; -ms-user-select: none; user-select: none; - padding-left: 18px; - padding-right: 0; position: relative; - line-height: 26px; - min-width: 18px; - min-height: 18px; } + min-width: 20px; + min-height: 20px; + margin-left: inherit; + margin-right: 16px; } html[dir=rtl] md-checkbox { - padding-left: 0; + margin-left: 16px; unicode-bidi: embed; } body[dir=rtl] md-checkbox { - padding-left: 0; + margin-left: 16px; unicode-bidi: embed; } md-checkbox bdo[dir=rtl] { direction: rtl; @@ -7596,10 +10541,10 @@ md-checkbox { direction: ltr; unicode-bidi: bidi-override; } html[dir=rtl] md-checkbox { - padding-right: 18px; + margin-right: inherit; unicode-bidi: embed; } body[dir=rtl] md-checkbox { - padding-right: 18px; + margin-right: inherit; unicode-bidi: embed; } md-checkbox bdo[dir=rtl] { direction: rtl; @@ -7607,6 +10552,33 @@ md-checkbox { md-checkbox bdo[dir=ltr] { direction: ltr; unicode-bidi: bidi-override; } + md-checkbox:last-of-type { + margin-left: inherit; + margin-right: 0; } + html[dir=rtl] md-checkbox:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + body[dir=rtl] md-checkbox:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + md-checkbox:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-checkbox:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-checkbox:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + body[dir=rtl] md-checkbox:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + md-checkbox:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-checkbox:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } md-checkbox.md-focused:not([disabled]) .md-container:before { left: -8px; top: -8px; @@ -7622,8 +10594,8 @@ md-checkbox { transform: translateY(-50%); box-sizing: border-box; display: inline-block; - width: 18px; - height: 18px; + width: 20px; + height: 20px; left: 0; right: auto; } html[dir=rtl] md-checkbox .md-container { @@ -7691,8 +10663,8 @@ md-checkbox { position: absolute; top: 0; left: 0; - width: 18px; - height: 18px; + width: 20px; + height: 20px; border-width: 2px; border-style: solid; border-radius: 2px; } @@ -7706,11 +10678,11 @@ md-checkbox { -ms-transform: rotate(45deg); transform: rotate(45deg); position: absolute; - left: 6px; - top: 2px; + left: 6.6666666667px; + top: 2.2222222222px; display: table; - width: 6px; - height: 12px; + width: 6.6666666667px; + height: 13.3333333333px; border-width: 2px; border-style: solid; border-top: 0; @@ -7726,7 +10698,7 @@ md-checkbox { -moz-user-select: text; -ms-user-select: text; user-select: text; - margin-left: 10px; + margin-left: 30px; margin-right: 0; } html[dir=rtl] md-checkbox .md-label { margin-left: 0; @@ -7741,10 +10713,10 @@ md-checkbox { direction: ltr; unicode-bidi: bidi-override; } html[dir=rtl] md-checkbox .md-label { - margin-right: 10px; + margin-right: 30px; unicode-bidi: embed; } body[dir=rtl] md-checkbox .md-label { - margin-right: 10px; + margin-right: 30px; unicode-bidi: embed; } md-checkbox .md-label bdo[dir=rtl] { direction: rtl; @@ -7798,7 +10770,7 @@ md-sidenav md-checkbox { clear: both; } .md-chips:not(.md-readonly) { cursor: text; } - .md-chips:not(.md-readonly) .md-chip { + .md-chips:not(.md-readonly) .md-chip:not(.md-readonly) { padding-right: 22px; } .md-chips .md-chip { cursor: default; @@ -7849,7 +10821,7 @@ md-sidenav md-checkbox { display: block; line-height: 32px; margin: 8px 8px 0 0; - padding: 0 12px 0 12px; + padding: 0; 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; @@ -7906,6 +10878,28 @@ md-chips.sg-readonly .md-chips { md-chips.sg-readonly .md-chips .sg-chip-remove:hover { cursor: pointer; } +md-chips .sg-chip-progress { + border-radius: 16px; + bottom: 0; + left: 0; + overflow: hidden; + position: absolute; + right: 0; + top: 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); } + md-chips .sg-chip-progress.ng-hide { + background-color: #fff; } + md-chips .sg-chip-progress span { + bottom: 0; + left: 0; + opacity: 0.5; + position: absolute; + top: 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); + width: 0; } + .sg-chips-autocomplete { width: 360px; } @@ -7937,7 +10931,7 @@ md-content { md-content.md-padding { padding: 16px; } -@media (min-width: 1) and (max-width: 600px) { +@media (min-width: 601px) and (max-width: 960px) { md-content.md-padding { padding: 16px; } } @@ -8036,7 +11030,13 @@ md-calendar { /*! datepicker/_extends.scss - */ /** Styles for mdDatepicker. */ md-datepicker { - white-space: nowrap; } + white-space: nowrap; + overflow: hidden; + padding-right: 18px; + margin-right: -18px; } + +.md-inline-form md-datepicker { + margin-top: 8px; } .md-datepicker-button { display: inline-block; @@ -8070,7 +11070,7 @@ md-datepicker { position: absolute; top: 0; left: 0; - z-index: 99; + z-index: 95; border-width: 1px; border-style: solid; background: transparent; @@ -8131,7 +11131,8 @@ md-datepicker { -ms-transform: translateY(-25%) translateX(45%); transform: translateY(-25%) translateX(45%); } -.md-datepicker-triangle-button.md-button.md-icon-button, .md-button.md-icon-button.sg-timepicker-triangle-button { +.md-datepicker-triangle-button.md-button.md-icon-button, +.md-datepicker-triangle-button.md-button.sg-icon-button, .md-button.sg-icon-button.sg-timepicker-triangle-button, .md-button.md-icon-button.sg-timepicker-triangle-button { height: 100%; width: 36px; position: absolute; } @@ -8271,7 +11272,7 @@ md-dialog { padding-top: 0; } md-dialog md-dialog-content .md-dialog-content-body { width: 100%; } - md-dialog .md-actions { + md-dialog .md-actions, md-dialog md-dialog-actions { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; @@ -8294,12 +11295,12 @@ md-dialog { padding-left: 16px; min-height: 52px; overflow: hidden; } - md-dialog .md-actions .md-button { + md-dialog .md-actions .md-button, md-dialog md-dialog-actions .md-button { margin-bottom: 8px; margin-left: 8px; margin-right: 0; margin-top: 8px; } - md-dialog.md-content-overflow .md-actions { + md-dialog.md-content-overflow .md-actions, md-dialog.md-content-overflow md-dialog-actions { border-top-width: 1px; border-top-style: solid; } @@ -8307,7 +11308,13 @@ md-dialog { md-dialog { border: 1px solid #fff; } } -body.popup md-dialog[flex-sm="100"], body.popup md-dialog.flex-sm-100 { +@media (max-width: 960px) { + md-dialog.md-dialog-fullscreen { + min-height: 100%; + min-width: 100%; + border-radius: 0; } } + +body.popup md-dialog[flex-xs="100"], body.popup md-dialog.flex-xs-100 { max-width: 100%; max-height: 100%; width: 100%; @@ -8316,11 +11323,11 @@ body.popup md-dialog[flex-sm="100"], body.popup md-dialog.flex-sm-100 { -webkit-flex-basis: 100%; -ms-flex-preferred-size: 100%; flex-basis: 100%; } - body.popup md-dialog[flex-sm="100"] md-dialog-content, body.popup md-dialog.flex-sm-100 md-dialog-content { + body.popup md-dialog[flex-xs="100"] md-dialog-content, body.popup md-dialog.flex-xs-100 md-dialog-content { padding: 16px; } @media (max-width: 600px) { - md-dialog[flex-sm="100"], md-dialog.flex-sm-100 { + md-dialog[flex-xs="100"], md-dialog.flex-xs-100 { max-width: 100%; max-height: 100%; width: 100%; @@ -8329,7 +11336,7 @@ body.popup md-dialog[flex-sm="100"], body.popup md-dialog.flex-sm-100 { -webkit-flex-basis: 100%; -ms-flex-preferred-size: 100%; flex-basis: 100%; } - md-dialog[flex-sm="100"] md-dialog-content, md-dialog.flex-sm-100 md-dialog-content { + md-dialog[flex-xs="100"] md-dialog-content, md-dialog.flex-xs-100 md-dialog-content { padding: 16px; } } /*! divider/_extends.scss - */ @@ -8341,6 +11348,11 @@ md-divider { md-divider[md-inset] { margin-left: 80px; } +.layout-row > md-divider { + border-top-width: 0; + border-right-width: 1px; + border-right-style: solid; } + /*! fabSpeedDial/_extends.scss - */ md-fab-speed-dial { position: relative; @@ -8353,6 +11365,9 @@ md-fab-speed-dial { -ms-flex-align: center; align-items: center; z-index: 20; + /* + * Hide some graphics glitches if switching animation types + */ /* * Handle the animations */ } @@ -8389,7 +11404,6 @@ md-fab-speed-dial { md-fab-speed-dial .md-css-variables { z-index: 20; } md-fab-speed-dial.md-is-open .md-fab-action-item { - visibility: visible; -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; @@ -8401,7 +11415,6 @@ md-fab-speed-dial { display: flex; height: auto; } md-fab-speed-dial md-fab-actions .md-fab-action-item { - visibility: hidden; -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } md-fab-speed-dial.md-down { @@ -8494,11 +11507,13 @@ md-fab-speed-dial { md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item { -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } + md-fab-speed-dial.md-fling-remove .md-fab-action-item > *, md-fab-speed-dial.md-scale-remove .md-fab-action-item > * { + visibility: hidden; } md-fab-speed-dial.md-scale .md-fab-action-item { opacity: 0; - -webkit-transform: scale(0); - -ms-transform: scale(0); - transform: scale(0); + -webkit-transform: scale(0.1); + -ms-transform: scale(0.1); + transform: scale(0.1); -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); -webkit-transition-duration: 0.1428571429s; @@ -8584,11 +11599,19 @@ md-grid-list { .sg-color-picker md-grid-tile { border-radius: 25%; } - .sg-color-picker md-grid-tile:hover, .sg-color-picker md-grid-tile:active { + .sg-color-picker md-grid-tile:hover:not(.selected), .sg-color-picker md-grid-tile:active:not(.selected) { cursor: pointer; -webkit-transform: scale(1.5); -ms-transform: scale(1.5); transform: scale(1.5); } + .sg-color-picker md-grid-tile.selected { + background-color: transparent !important; } + .sg-color-picker md-grid-tile.selected md-icon { + display: inline-block; + font-size: 32px; + margin: 0; } + .sg-color-picker md-grid-tile md-icon { + display: none; } [sg-toggle-grid] md-grid-tile { border-radius: 5%; } @@ -8693,6 +11716,8 @@ md-icon { content: "\e7fd"; } md-icon.icon-declined:before, md-icon.icon-remove-circle:before { content: "\e15c"; } + md-icon.icon-repeat:before { + content: "\e040"; } md-icon.icon-search:before { content: "\e8b6"; } md-icon.icon-star:before { @@ -8708,29 +11733,29 @@ md-icon { /*! input/_extends.scss - */ md-input-container { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; + display: inline-block; position: relative; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; padding: 2px; - padding-bottom: 26px; + margin: 18px 0; /* * The .md-input class is added to the input/textarea */ } + md-input-container:after { + content: ''; + display: table; + clear: both; } + md-input-container.md-block { + display: block; } + md-input-container.md-has-icon { + padding-left: 36px; } + md-input-container.md-has-icon > label { + left: 36px; } md-input-container.md-input-has-messages { padding-bottom: 2px; } md-input-container > md-icon { position: absolute; top: 5px; left: 2px; } - md-input-container > md-icon + input { - margin-left: 36px; } md-input-container textarea, md-input-container input[type="text"], md-input-container input[type="password"], @@ -8761,10 +11786,11 @@ md-input-container { md-input-container textarea.md-input { min-height: 26px; -ms-flex-preferred-size: auto; } - md-input-container label { - position: relative; - top: -2px; } - md-input-container label:not(.md-no-float), + md-input-container label:not(.md-container-ignore) { + position: absolute; + bottom: 100%; + left: 0; } + md-input-container label:not(.md-no-float):not(.md-container-ignore), md-input-container .md-placeholder { -webkit-box-ordinal-group: 2; -webkit-order: 1; @@ -8781,23 +11807,23 @@ md-input-container { -webkit-transform-origin: left top; -ms-transform-origin: left top; transform-origin: left top; } - html[dir=rtl] md-input-container label:not(.md-no-float), html[dir=rtl] + html[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore), html[dir=rtl] md-input-container .md-placeholder { -webkit-transform-origin: right top; -ms-transform-origin: right top; transform-origin: right top; unicode-bidi: embed; } - body[dir=rtl] md-input-container label:not(.md-no-float), body[dir=rtl] + body[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore), body[dir=rtl] md-input-container .md-placeholder { -webkit-transform-origin: right top; -ms-transform-origin: right top; transform-origin: right top; unicode-bidi: embed; } - md-input-container label:not(.md-no-float) bdo[dir=rtl], + md-input-container label:not(.md-no-float):not(.md-container-ignore) bdo[dir=rtl], md-input-container .md-placeholder bdo[dir=rtl] { direction: rtl; unicode-bidi: bidi-override; } - md-input-container label:not(.md-no-float) bdo[dir=ltr], + md-input-container label:not(.md-no-float):not(.md-container-ignore) bdo[dir=ltr], md-input-container .md-placeholder bdo[dir=ltr] { direction: ltr; unicode-bidi: bidi-override; } @@ -8809,8 +11835,6 @@ md-input-container { transition-property: opacity, transform; -webkit-transform: translate3d(0, 30px, 0); transform: translate3d(0, 30px, 0); } - md-input-container .md-placeholder.md-static { - position: static; } md-input-container.md-input-focused .md-placeholder { opacity: 1; -webkit-transform: translate3d(0, 24px, 0); @@ -8845,10 +11869,13 @@ md-input-container { padding-right: 2px; border-width: 0 0 1px 0; line-height: 26px; + height: 30px; -ms-flex-preferred-size: 26px; border-radius: 0; border-style: solid; - width: auto; } + width: 100%; + box-sizing: border-box; + float: left; } md-input-container .md-input:focus { outline: none; } md-input-container .md-input:invalid { @@ -8863,6 +11890,9 @@ md-input-container { position: absolute; right: 2px; bottom: 7px; } + md-input-container.md-input-invalid ng-messages, md-input-container.md-input-invalid data-ng-messages, md-input-container.md-input-invalid x-ng-messages, + md-input-container.md-input-invalid [ng-messages], md-input-container.md-input-invalid [data-ng-messages], md-input-container.md-input-invalid [x-ng-messages] { + opacity: 1; } md-input-container ng-messages, md-input-container data-ng-messages, md-input-container x-ng-messages, md-input-container [ng-messages], md-input-container [data-ng-messages], md-input-container [x-ng-messages] { position: relative; @@ -8870,7 +11900,14 @@ md-input-container { -webkit-order: 4; -ms-flex-order: 4; order: 4; - min-height: 24px; } + min-height: 24px; + overflow: hidden; + -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-duration: 0.2666666667s; + transition-duration: 0.2666666667s; + opacity: 0; + clear: left; } md-input-container ng-messages .md-char-counter, md-input-container data-ng-messages .md-char-counter, md-input-container x-ng-messages .md-char-counter, md-input-container [ng-messages] .md-char-counter, md-input-container [data-ng-messages] .md-char-counter, md-input-container [x-ng-messages] .md-char-counter { position: absolute; @@ -8899,7 +11936,15 @@ md-input-container { -webkit-transition-delay: 0.2s; transition-delay: 0.2s; -webkit-transition-duration: 0.2s; - transition-duration: 0.2s; } + transition-duration: 0.2s; + opacity: 0; + margin-top: -19px; } + md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-enter.ng-enter-active, + md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-enter.ng-enter-active, + md-input-container [ng-message-exp].ng-enter.ng-enter-active, md-input-container [data-ng-message-exp].ng-enter.ng-enter-active, md-input-container [x-ng-message-exp].ng-enter.ng-enter-active, + md-input-container .md-char-counter.ng-enter.ng-enter-active { + opacity: 1; + margin-top: 0; } md-input-container ng-message.ng-leave, md-input-container data-ng-message.ng-leave, md-input-container x-ng-message.ng-leave, md-input-container [ng-message].ng-leave, md-input-container [data-ng-message].ng-leave, md-input-container [x-ng-message].ng-leave, md-input-container [ng-message-exp].ng-leave, md-input-container [data-ng-message-exp].ng-leave, md-input-container [x-ng-message-exp].ng-leave, @@ -8908,24 +11953,12 @@ md-input-container { transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); -webkit-transition-duration: 0.2666666667s; transition-duration: 0.2666666667s; } - md-input-container ng-message.ng-enter, md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-enter, md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-enter, md-input-container x-ng-message.ng-leave.ng-leave-active, - md-input-container [ng-message].ng-enter, - md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-enter, md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-enter, md-input-container [x-ng-message].ng-leave.ng-leave-active, - md-input-container [ng-message-exp].ng-enter, - md-input-container [ng-message-exp].ng-leave.ng-leave-active, md-input-container [data-ng-message-exp].ng-enter, md-input-container [data-ng-message-exp].ng-leave.ng-leave-active, md-input-container [x-ng-message-exp].ng-enter, md-input-container [x-ng-message-exp].ng-leave.ng-leave-active, - md-input-container .md-char-counter.ng-enter, - md-input-container .md-char-counter.ng-leave.ng-leave-active { - margin-top: -19px; - opacity: 0; } - md-input-container ng-message.ng-leave, md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-leave, md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-leave, md-input-container x-ng-message.ng-enter.ng-enter-active, - md-input-container [ng-message].ng-leave, - md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-leave, md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-leave, md-input-container [x-ng-message].ng-enter.ng-enter-active, - md-input-container [ng-message-exp].ng-leave, - md-input-container [ng-message-exp].ng-enter.ng-enter-active, md-input-container [data-ng-message-exp].ng-leave, md-input-container [data-ng-message-exp].ng-enter.ng-enter-active, md-input-container [x-ng-message-exp].ng-leave, md-input-container [x-ng-message-exp].ng-enter.ng-enter-active, - md-input-container .md-char-counter.ng-leave, - md-input-container .md-char-counter.ng-enter.ng-enter-active { - margin-top: 0; - opacity: 1; } + md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-leave.ng-leave-active, + md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-leave.ng-leave-active, + md-input-container [ng-message-exp].ng-leave.ng-leave-active, md-input-container [data-ng-message-exp].ng-leave.ng-leave-active, md-input-container [x-ng-message-exp].ng-leave.ng-leave-active, + md-input-container .md-char-counter.ng-leave.ng-leave-active { + margin-top: -19px; + opacity: 0; } md-input-container.md-input-focused label:not(.md-no-float), md-input-container.md-input-has-placeholder label:not(.md-no-float), md-input-container.md-input-has-value label:not(.md-no-float) { -webkit-transform: translate3d(0, 6px, 0) scale(0.75); transform: translate3d(0, 6px, 0) scale(0.75); } @@ -8944,29 +11977,19 @@ md-input-container { margin-bottom: -1px; } md-input-container.md-icon-float { - margin-top: -16px; -webkit-transition: margin-top 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); transition: margin-top 0.5s cubic-bezier(0.25, 0.8, 0.25, 1); } md-input-container.md-icon-float > label { pointer-events: none; - position: absolute; - margin-left: 36px; } + position: absolute; } md-input-container.md-icon-float > md-icon { - top: 26px; + top: 2px; left: 2px; } - md-input-container.md-icon-float > md-icon + input, - md-input-container.md-icon-float > md-icon + textarea { - margin-left: 36px; } - md-input-container.md-icon-float > input, - md-input-container.md-icon-float > textarea { - padding-top: 24px; } - md-input-container.md-icon-float.md-input-focused, md-input-container.md-icon-float.md-input-has-value { - margin-top: -8px; } - md-input-container.md-icon-float.md-input-focused label, md-input-container.md-icon-float.md-input-has-value label { - -webkit-transform: translate3d(0, 6px, 0) scale(0.75); - transform: translate3d(0, 6px, 0) scale(0.75); - -webkit-transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; - transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; } + md-input-container.md-icon-float.md-input-focused label, md-input-container.md-icon-float.md-input-has-value label { + -webkit-transform: translate3d(0, 6px, 0) scale(0.75); + transform: translate3d(0, 6px, 0) scale(0.75); + -webkit-transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; + transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; } md-input-container.md-icon-right input { margin-right: 36px; } @@ -9029,54 +12052,56 @@ md-list { letter-spacing: 0.010em; line-height: 1em; } -md-list-item.md-proxy-focus.md-focused .md-no-style { - -webkit-transition: background-color 0.15s linear; - transition: background-color 0.15s linear; } - -md-list-item.md-no-proxy, -md-list-item .md-no-style { - position: relative; - padding: 0px 16px; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; } - md-list-item.md-no-proxy.md-button, - md-list-item .md-no-style.md-button { - font-size: inherit; - height: inherit; - text-align: left; - text-transform: none; - width: 100%; - white-space: normal; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: inherit; - -ms-flex-direction: inherit; - flex-direction: inherit; - -webkit-box-align: inherit; - -webkit-align-items: inherit; - -ms-flex-align: inherit; - align-items: inherit; } - md-list-item.md-no-proxy:focus, - md-list-item .md-no-style:focus { - outline: none; } - -md-list-item.md-with-secondary { +md-list-item { position: relative; } - -md-list-item.md-clickable:hover { - cursor: pointer; } - -md-list-item md-divider { - position: absolute; - bottom: 0; - left: 0; - width: 100%; } - md-list-item md-divider[md-inset] { - left: 96px; - width: calc(100% - 96px); - margin: 0; } + md-list-item.md-proxy-focus.md-focused .md-no-style { + -webkit-transition: background-color 0.15s linear; + transition: background-color 0.15s linear; } + md-list-item.md-no-proxy, + md-list-item .md-no-style { + position: relative; + padding: 0px 16px; + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; } + md-list-item.md-no-proxy.md-button, + md-list-item .md-no-style.md-button { + font-size: inherit; + height: inherit; + text-align: left; + text-transform: none; + width: 100%; + white-space: normal; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: inherit; + -ms-flex-direction: inherit; + flex-direction: inherit; + -webkit-box-align: inherit; + -webkit-align-items: inherit; + -ms-flex-align: inherit; + align-items: inherit; + border-radius: 0; } + md-list-item.md-no-proxy.md-button > .md-ripple-container, + md-list-item .md-no-style.md-button > .md-ripple-container { + border-radius: 0; } + md-list-item.md-no-proxy:focus, + md-list-item .md-no-style:focus { + outline: none; } + md-list-item.md-with-secondary { + position: relative; } + md-list-item.md-clickable:hover { + cursor: pointer; } + md-list-item md-divider { + position: absolute; + bottom: 0; + left: 0; + width: 100%; } + md-list-item md-divider[md-inset] { + left: 96px; + width: calc(100% - 96px); + margin: 0; } md-list-item, md-list-item .md-list-item-inner { display: -webkit-box; @@ -9091,7 +12116,8 @@ md-list-item, md-list-item .md-list-item-inner { -webkit-align-items: center; -ms-flex-align: center; align-items: center; - min-height: 48px; } + min-height: 48px; + height: auto; } md-list-item > div.md-primary > md-icon:not(.md-avatar-icon), md-list-item > div.md-secondary > md-icon:not(.md-avatar-icon), md-list-item > md-icon:first-child:not(.md-avatar-icon), @@ -9105,45 +12131,49 @@ md-list-item, md-list-item .md-list-item-inner { box-sizing: content-box; } md-list-item > div.md-primary > md-checkbox, md-list-item > div.md-secondary > md-checkbox, - md-list-item > md-checkbox:first-child, + md-list-item > md-checkbox, md-list-item md-checkbox.md-secondary, md-list-item .md-list-item-inner > div.md-primary > md-checkbox, md-list-item .md-list-item-inner > div.md-secondary > md-checkbox, - md-list-item .md-list-item-inner > md-checkbox:first-child, + md-list-item .md-list-item-inner > md-checkbox, md-list-item .md-list-item-inner md-checkbox.md-secondary { -webkit-align-self: center; -ms-flex-item-align: center; align-self: center; } md-list-item > div.md-primary > md-checkbox .md-label, md-list-item > div.md-secondary > md-checkbox .md-label, - md-list-item > md-checkbox:first-child .md-label, + md-list-item > md-checkbox .md-label, md-list-item md-checkbox.md-secondary .md-label, md-list-item .md-list-item-inner > div.md-primary > md-checkbox .md-label, md-list-item .md-list-item-inner > div.md-secondary > md-checkbox .md-label, - md-list-item .md-list-item-inner > md-checkbox:first-child .md-label, + md-list-item .md-list-item-inner > md-checkbox .md-label, md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label { display: none; } md-list-item > md-icon:first-child:not(.md-avatar-icon), md-list-item .md-list-item-inner > md-icon:first-child:not(.md-avatar-icon) { margin-right: 32px; } - md-list-item > md-checkbox:first-child, md-list-item .md-list-item-inner > md-checkbox:first-child { + md-list-item > md-checkbox, md-list-item .md-list-item-inner > md-checkbox { width: 24px; margin-left: 3px; - margin-right: 29px; } - md-list-item > .md-avatar, md-list-item .md-avatar-icon, md-list-item .md-list-item-inner > .md-avatar, md-list-item .md-list-item-inner .md-avatar-icon { + margin-right: 29px; + margin-top: 16px; } + md-list-item .md-avatar, md-list-item .md-avatar-icon, md-list-item .md-list-item-inner .md-avatar, md-list-item .md-list-item-inner .md-avatar-icon { margin-top: 8px; margin-bottom: 8px; margin-right: 16px; border-radius: 50%; box-sizing: content-box; } - md-list-item > .md-avatar, md-list-item .md-list-item-inner > .md-avatar { + md-list-item .md-avatar, md-list-item .md-list-item-inner .md-avatar { width: 40px; height: 40px; } - md-list-item > .md-avatar-icon, md-list-item .md-list-item-inner > .md-avatar-icon { + md-list-item .md-avatar-icon, md-list-item .md-list-item-inner .md-avatar-icon { padding: 8px; } md-list-item md-checkbox.md-secondary, md-list-item md-switch.md-secondary, md-list-item .md-list-item-inner md-checkbox.md-secondary, md-list-item .md-list-item-inner md-switch.md-secondary { - margin-right: 0; margin-top: 0; margin-bottom: 0; } + md-list-item md-checkbox.md-secondary, md-list-item .md-list-item-inner md-checkbox.md-secondary { + margin-right: 0; } + md-list-item md-switch.md-secondary, md-list-item .md-list-item-inner md-switch.md-secondary { + margin-right: -6px; } md-list-item button.md-button.md-secondary-container, md-list-item .md-list-item-inner button.md-button.md-secondary-container { background-color: transparent; -webkit-align-self: center; @@ -9156,17 +12186,21 @@ md-list-item, md-list-item .md-list-item-inner { md-list-item button.md-button.md-secondary-container .md-ripple-container, md-list-item .md-list-item-inner button.md-button.md-secondary-container .md-ripple, md-list-item .md-list-item-inner button.md-button.md-secondary-container .md-ripple-container { border-radius: 50%; } + md-list-item button.md-button.md-secondary-container.md-icon-button, md-list-item + button.md-secondary-container.md-button.sg-icon-button, md-list-item .md-list-item-inner button.md-button.md-secondary-container.md-icon-button, md-list-item .md-list-item-inner + button.md-secondary-container.md-button.sg-icon-button { + margin-right: -12px; } md-list-item .md-secondary-container, md-list-item .md-secondary, md-list-item .md-list-item-inner .md-secondary-container, md-list-item .md-list-item-inner .md-secondary { - margin-left: 16px; position: absolute; - right: 16px; top: 50%; + right: 16px; + margin: 0 0 0 16px; -webkit-transform: translate3d(0, -50%, 0); transform: translate3d(0, -50%, 0); } md-list-item > .md-button.md-secondary-container > .md-secondary, md-list-item .md-list-item-inner > .md-button.md-secondary-container > .md-secondary { - margin-left: 0px; + margin-left: 0; position: static; } md-list-item > p, md-list-item > .md-list-item-inner > p, md-list-item .md-list-item-inner > p, md-list-item .md-list-item-inner > .md-list-item-inner > p { -webkit-box-flex: 1; @@ -9238,7 +12272,11 @@ md-list-item.md-3-line > .md-no-style { md-list-item.md-2-line, md-list-item.md-2-line > .md-no-style { - height: 72px; } + height: auto; + min-height: 72px; } + md-list-item.md-2-line.md-long-text, + md-list-item.md-2-line > .md-no-style.md-long-text { + margin: 1.6em; } md-list-item.md-2-line > .md-avatar, md-list-item.md-2-line .md-avatar-icon, md-list-item.md-2-line > .md-no-style > .md-avatar, md-list-item.md-2-line > .md-no-style .md-avatar-icon { @@ -9257,7 +12295,11 @@ md-list-item.md-2-line > .md-no-style { md-list-item.md-3-line, md-list-item.md-3-line > .md-no-style { - height: 88px; } + height: auto; + min-height: 88px; } + md-list-item.md-3-line.md-long-text, + md-list-item.md-3-line > .md-no-style.md-long-text { + margin: 1.6em; } md-list-item.md-3-line > md-icon:first-child, md-list-item.md-3-line > .md-avatar, md-list-item.md-3-line > .md-no-style > md-icon:first-child, @@ -9269,6 +12311,8 @@ md-list-item .md-list-item-inner { -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; } + md-list-item .md-list-item-inner > md-checkbox { + margin-top: 0px; } md-list-item md-icon, md-list-item .md-button md-icon { @@ -9290,11 +12334,13 @@ md-list-item .sg-inline-list-icon-label { text-transform: uppercase; } .md-sidenav-left md-input-container, md-sidenav md-input-container { + margin: 0; padding: 0; } .md-sidenav-left md-input-container .md-input, md-sidenav md-input-container .md-input { padding-left: 0; } .md-sidenav-left md-list-item .md-button, md-sidenav md-list-item .md-button { + margin: 0; -webkit-transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } @@ -9398,7 +12444,7 @@ div.md-tile-left { .sg-counter-badge { border-left-width: 1px; - border-left-color: #999; + border-left-color: #9e9e9e; border-style: solid; margin: 0; padding: 0 5px; @@ -9408,7 +12454,6 @@ div.md-tile-left { .sg-tile-content md-icon, .sg-tile-icons md-icon { font-size: 12px; - color: rgba(0, 0, 0, 0.54); margin: 1px 2px; } .card-picture .md-avatar { @@ -9446,13 +12491,15 @@ sg-avatar-image img { position: fixed; left: 0; top: 0; - z-index: 99; + z-index: 95; opacity: 0; border-radius: 2px; } .md-open-menu-container md-menu-divider { margin-top: 4px; margin-bottom: 4px; height: 1px; + min-height: 1px; + max-height: 1px; width: 100%; } .md-open-menu-container md-menu-content > * { opacity: 0; } @@ -9533,6 +12580,7 @@ md-menu-item { font-size: 15px; text-transform: none; font-weight: 400; + text-align: left; text-align: start; height: 100%; padding-left: 16px; @@ -9542,9 +12590,9 @@ md-menu-item { -webkit-align-items: baseline; -ms-flex-align: baseline; align-items: baseline; - -webkit-align-content: left; - -ms-flex-line-pack: left; - align-content: left; + -webkit-align-content: flex-start; + -ms-flex-line-pack: start; + align-content: flex-start; width: 100%; } md-menu-item > .md-button md-icon { margin: auto 16px auto 0; } @@ -9562,9 +12610,10 @@ md-menu-item { md-toolbar .md-menu { height: auto; - margin: auto; } + margin: auto; + padding: 0; } -@media (max-width: 599px) { +@media (max-width: 959px) { md-menu-content { min-width: 112px; } md-menu-content[width="3"] { @@ -9578,7 +12627,7 @@ md-toolbar .md-menu { md-menu-content[width="7"] { min-width: 392px; } } -@media (min-width: 600px) { +@media (min-width: 960px) { md-menu-content { min-width: 96px; } md-menu-content[width="3"] { @@ -9592,6 +12641,9 @@ md-toolbar .md-menu { md-menu-content[width="7"] { min-width: 448px; } } +md-card md-card-actions:not(.layout-column) .md-menu { + padding: 0; } + /*! progressCircular/_extends.scss - */ md-progress-circular { display: block; @@ -9600,13 +12652,13 @@ md-progress-circular { height: 100px; padding-top: 0 !important; margin-bottom: 0 !important; - -webkit-transform: scale(0.5); - -ms-transform: scale(0.5); - transform: scale(0.5); } + z-index: 2; } md-progress-circular .md-spinner-wrapper { display: block; - position: relative; - overflow: hidden; } + position: absolute; + overflow: hidden; + top: 50%; + left: 50%; } md-progress-circular .md-spinner-wrapper .md-inner { width: 100px; height: 100px; @@ -9646,23 +12698,23 @@ md-progress-circular { md-progress-circular .md-spinner-wrapper .md-inner .md-right .md-half-circle { right: 0; border-left-color: transparent; } - md-progress-circular .md-spinner-wrapper.md-mode-indeterminate { + 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-spinner-wrapper.md-mode-indeterminate .md-inner { + 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-spinner-wrapper.md-mode-indeterminate .md-inner .md-left .md-half-circle, md-progress-circular .md-spinner-wrapper.md-mode-indeterminate .md-inner .md-right .md-half-circle { + 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-spinner-wrapper.md-mode-indeterminate .md-inner .md-left .md-half-circle { + 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-spinner-wrapper.md-mode-indeterminate .md-inner .md-right .md-half-circle { + 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; } md-progress-circular md-progress-circular.ng-hide .md-spinner-wrapper { @@ -9691,14 +12743,20 @@ md-progress-circular { animation-name: none; } @-webkit-keyframes outer-rotate { + 0% { + -webkit-transform: rotate(0deg) scale(0.5); + transform: rotate(0deg) scale(0.5); } 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } + -webkit-transform: rotate(360deg) scale(0.5); + transform: rotate(360deg) scale(0.5); } } @keyframes outer-rotate { + 0% { + -webkit-transform: rotate(0deg) scale(0.5); + transform: rotate(0deg) scale(0.5); } 100% { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); } } + -webkit-transform: rotate(360deg) scale(0.5); + transform: rotate(360deg) scale(0.5); } } @-webkit-keyframes left-wobble { 0%, 100% { @@ -9803,32 +12861,60 @@ md-progress-circular { transform: translate(-50%, 0) scale(0); } /*! radioButton/_extends.scss - */ -md-radio-button, -.md-switch-thumb { +md-radio-button { box-sizing: border-box; display: block; - margin: 15px; + margin-bottom: 16px; white-space: nowrap; - cursor: pointer; } - md-radio-button .md-container, - .md-switch-thumb .md-container { + cursor: pointer; + position: relative; } + md-radio-button .md-container { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); box-sizing: border-box; - position: relative; - top: 4px; display: inline-block; - width: 16px; - height: 16px; - cursor: pointer; } - md-radio-button .md-container .md-ripple-container, - .md-switch-thumb .md-container .md-ripple-container { + width: 20px; + height: 20px; + cursor: pointer; + left: 0; + right: auto; } + html[dir=rtl] md-radio-button .md-container { + left: auto; + unicode-bidi: embed; } + body[dir=rtl] md-radio-button .md-container { + left: auto; + unicode-bidi: embed; } + md-radio-button .md-container bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-button .md-container bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-radio-button .md-container { + right: 0; + unicode-bidi: embed; } + body[dir=rtl] md-radio-button .md-container { + right: 0; + unicode-bidi: embed; } + md-radio-button .md-container bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-button .md-container bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + md-radio-button .md-container .md-ripple-container { position: absolute; display: block; - width: 48px; - height: 48px; - left: -16px; - top: -16px; } - md-radio-button .md-container:before, - .md-switch-thumb .md-container:before { + width: auto; + height: auto; + left: -15px; + top: -15px; + right: -15px; + bottom: -15px; } + md-radio-button .md-container:before { box-sizing: border-box; background-color: transparent; border-radius: 50%; @@ -9843,88 +12929,134 @@ md-radio-button, -webkit-transition: all 0.5s; transition: all 0.5s; width: auto; } - md-radio-button.md-align-top-left > div.md-container, - .md-switch-thumb.md-align-top-left > div.md-container { - top: -15px; } - md-radio-button .md-off, - .md-switch-thumb .md-off { + md-radio-button.md-align-top-left > div.md-container { + top: 12px; } + md-radio-button .md-off { box-sizing: border-box; position: absolute; top: 0; left: 0; - width: 16px; - height: 16px; + width: 20px; + height: 20px; border-style: solid; border-width: 2px; border-radius: 50%; -webkit-transition: border-color ease 0.28s; transition: border-color ease 0.28s; } - md-radio-button .md-on, - .md-switch-thumb .md-on { + md-radio-button .md-on { box-sizing: border-box; position: absolute; top: 0; left: 0; - width: 16px; - height: 16px; + width: 20px; + height: 20px; border-radius: 50%; -webkit-transition: -webkit-transform ease 0.28s; transition: transform ease 0.28s; -webkit-transform: scale(0); -ms-transform: scale(0); transform: scale(0); } - md-radio-button.md-checked .md-on, - .md-switch-thumb.md-checked .md-on { + md-radio-button.md-checked .md-on { -webkit-transform: scale(0.5); -ms-transform: scale(0.5); transform: scale(0.5); } - md-radio-button .md-label, - .md-switch-thumb .md-label { + md-radio-button .md-label { box-sizing: border-box; position: relative; display: inline-block; - margin-left: 10px; + margin-left: 30px; margin-right: 0; vertical-align: middle; white-space: normal; pointer-events: none; width: auto; } - html[dir=rtl] md-radio-button .md-label, html[dir=rtl] - .md-switch-thumb .md-label { + html[dir=rtl] md-radio-button .md-label { margin-left: 0; unicode-bidi: embed; } - body[dir=rtl] md-radio-button .md-label, body[dir=rtl] - .md-switch-thumb .md-label { + body[dir=rtl] md-radio-button .md-label { margin-left: 0; unicode-bidi: embed; } - md-radio-button .md-label bdo[dir=rtl], - .md-switch-thumb .md-label bdo[dir=rtl] { + md-radio-button .md-label bdo[dir=rtl] { direction: rtl; unicode-bidi: bidi-override; } - md-radio-button .md-label bdo[dir=ltr], - .md-switch-thumb .md-label bdo[dir=ltr] { + md-radio-button .md-label bdo[dir=ltr] { direction: ltr; unicode-bidi: bidi-override; } - html[dir=rtl] md-radio-button .md-label, html[dir=rtl] - .md-switch-thumb .md-label { - margin-right: 10px; + html[dir=rtl] md-radio-button .md-label { + margin-right: 30px; unicode-bidi: embed; } - body[dir=rtl] md-radio-button .md-label, body[dir=rtl] - .md-switch-thumb .md-label { - margin-right: 10px; + body[dir=rtl] md-radio-button .md-label { + margin-right: 30px; unicode-bidi: embed; } - md-radio-button .md-label bdo[dir=rtl], - .md-switch-thumb .md-label bdo[dir=rtl] { + md-radio-button .md-label bdo[dir=rtl] { direction: rtl; unicode-bidi: bidi-override; } - md-radio-button .md-label bdo[dir=ltr], - .md-switch-thumb .md-label bdo[dir=ltr] { + md-radio-button .md-label bdo[dir=ltr] { direction: ltr; unicode-bidi: bidi-override; } - md-radio-button .circle, - .md-switch-thumb .circle { + md-radio-button .circle { border-radius: 50%; } +md-radio-group md-radio-button:not(:first-child) { + margin-top: 16px; } + +md-radio-group.layout-row md-radio-button { + margin-top: 0; + margin-bottom: 0; + margin-left: inherit; + margin-right: 16px; } + html[dir=rtl] md-radio-group.layout-row md-radio-button { + margin-left: 16px; + unicode-bidi: embed; } + body[dir=rtl] md-radio-group.layout-row md-radio-button { + margin-left: 16px; + unicode-bidi: embed; } + md-radio-group.layout-row md-radio-button bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-group.layout-row md-radio-button bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-radio-group.layout-row md-radio-button { + margin-right: inherit; + unicode-bidi: embed; } + body[dir=rtl] md-radio-group.layout-row md-radio-button { + margin-right: inherit; + unicode-bidi: embed; } + md-radio-group.layout-row md-radio-button bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-group.layout-row md-radio-button bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + md-radio-group.layout-row md-radio-button:last-of-type { + margin-left: inherit; + margin-right: 0; } + html[dir=rtl] md-radio-group.layout-row md-radio-button:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + body[dir=rtl] md-radio-group.layout-row md-radio-button:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + md-radio-group.layout-row md-radio-button:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-group.layout-row md-radio-button:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-radio-group.layout-row md-radio-button:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + body[dir=rtl] md-radio-group.layout-row md-radio-button:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + md-radio-group.layout-row md-radio-button:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-radio-group.layout-row md-radio-button:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + md-radio-group:focus { outline: none; } @@ -9934,6 +13066,16 @@ md-radio-group.md-focused .md-checked .md-container:before { right: -8px; bottom: -8px; } +.md-inline-form md-radio-group { + margin: 18px 0 19px; } + .md-inline-form md-radio-group md-radio-button { + display: inline-block; + height: 30px; + padding: 2px; + box-sizing: border-box; + margin-top: 0; + margin-bottom: 0; } + @media screen and (-ms-high-contrast: active) { md-radio-button.md-default-theme .md-on { background-color: #fff; } } @@ -9943,14 +13085,16 @@ md-radio-group.md-focused .md-checked .md-container:before { position: fixed; left: 0; top: 0; - z-index: 99; - opacity: 0; } + z-index: 90; + opacity: 0; + display: none; } .md-select-menu-container:not(.md-clickable) { pointer-events: none; } .md-select-menu-container md-progress-circular { display: table; margin: 24px auto !important; } .md-select-menu-container.md-active { + display: block; opacity: 1; } .md-select-menu-container.md-active md-select-menu { -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); @@ -10027,13 +13171,12 @@ md-select { flex-grow: 1; } .md-select-value *:first-child { -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; + -webkit-flex: 1 0 auto; + -ms-flex: 1 0 auto; + flex: 1 0 auto; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; - max-width: calc(100% - 2*8px); -webkit-transform: translate3d(0, 2px, 0); transform: translate3d(0, 2px, 0); } .md-select-value .md-select-icon { @@ -10198,9 +13341,8 @@ md-sidenav { -ms-flex-direction: column; flex-direction: column; z-index: 60; - width: 304px; - min-width: 304px; - max-width: 304px; + width: 320px; + max-width: 320px; bottom: 0; overflow: auto; } md-sidenav ul { @@ -10225,10 +13367,6 @@ md-sidenav { display: flex; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } - md-sidenav.md-locked-open { - width: 304px; - min-width: 304px; - max-width: 304px; } md-sidenav.md-locked-open, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-left, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-right, md-sidenav.md-locked-open-remove.md-closed { position: static; display: -webkit-box; @@ -10250,8 +13388,8 @@ md-sidenav { md-sidenav.md-closed.md-locked-open-add-active { -webkit-transition: width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2), min-width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); transition: width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2), min-width 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); - width: 304px; - min-width: 304px; + width: 320px; + min-width: 320px; -webkit-transform: translate3d(0%, 0, 0); transform: translate3d(0%, 0, 0); } @@ -10276,9 +13414,15 @@ md-sidenav { -webkit-transform: translate3d(0%, 0, 0); transform: translate3d(0%, 0, 0); } -@media (max-width: 360px) { +@media screen and (min-width: 960px) { md-sidenav { - width: 85%; } } + max-width: 400px; } } + +@media screen and (max-width: 456px) { + md-sidenav { + width: calc(100% - 56px); + min-width: calc(100% - 56px); + max-width: calc(100% - 56px); } } @media screen and (-ms-high-contrast: active) { .md-sidenav-left, md-sidenav { @@ -10286,13 +13430,18 @@ md-sidenav { .md-sidenav-right { border-left: 1px solid #fff; } } -@media (min-width: 1025px) { +@media (min-width: 961px) { md-sidenav.md-locked-open { max-width: 20vw; -webkit-box-flex: 1; -webkit-flex: 1 0 20vw; -ms-flex: 1 0 20vw; - flex: 1 0 20vw; } } + flex: 1 0 20vw; } + md-sidenav.md-locked-open.sg-closed.md-sidenav-left, md-sidenav.md-locked-open.sg-closed { + -webkit-transform: translateX(-100%); + -ms-transform: translateX(-100%); + transform: translateX(-100%); + margin-right: -20vw; } } .sg-child-level-1 { padding-left: 16px; } @@ -10327,7 +13476,8 @@ md-sidenav { .sg-child-level-11 { padding-left: 176px; } -[class^=sg-child-level] md-icon, [class^=sg-child-level] md-checkbox { +[class^=sg-child-level] md-icon, +[class^=sg-child-level] md-checkbox { margin-right: 16px; max-width: 24px; } @@ -10624,11 +13774,10 @@ md-slider { font-weight: 500; line-height: 1em; margin: 0 0 0 0; - margin-right: 16px; position: relative; } .md-subheader .md-subheader-inner { display: block; - padding: 16px 0px 16px 16px; } + padding: 16px; } .md-subheader .md-subheader-content { display: block; z-index: 1; @@ -10641,6 +13790,9 @@ md-slider { .md-subheader .md-subheader-inner { padding: 0 0 0 16px; } +md-tab-content .md-subheader .md-subheader-inner { + padding-left: 8px; } + .sg-md-subheader--fixed { position: fixed; z-index: auto; @@ -10656,23 +13808,82 @@ md-slider { font-weight: 600; } /*! switch/_extends.scss - */ +.md-inline-form md-switch { + margin-top: 18px; + margin-bottom: 19px; } + md-switch { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - margin: 15px; + margin: 16px 0; white-space: nowrap; cursor: pointer; outline: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; - user-select: none; } + user-select: none; + height: 30px; + line-height: 28px; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-left: inherit; + margin-right: 16px; } + html[dir=rtl] md-switch { + margin-left: 16px; + unicode-bidi: embed; } + body[dir=rtl] md-switch { + margin-left: 16px; + unicode-bidi: embed; } + md-switch bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-switch bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-switch { + margin-right: inherit; + unicode-bidi: embed; } + body[dir=rtl] md-switch { + margin-right: inherit; + unicode-bidi: embed; } + md-switch bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-switch bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + md-switch:last-of-type { + margin-left: inherit; + margin-right: 0; } + html[dir=rtl] md-switch:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + body[dir=rtl] md-switch:last-of-type { + margin-left: 0; + unicode-bidi: embed; } + md-switch:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-switch:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } + html[dir=rtl] md-switch:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + body[dir=rtl] md-switch:last-of-type { + margin-right: inherit; + unicode-bidi: embed; } + md-switch:last-of-type bdo[dir=rtl] { + direction: rtl; + unicode-bidi: bidi-override; } + md-switch:last-of-type bdo[dir=ltr] { + direction: ltr; + unicode-bidi: bidi-override; } md-switch .md-container { cursor: -webkit-grab; cursor: grab; @@ -10683,7 +13894,8 @@ md-switch { -moz-user-select: none; -ms-user-select: none; user-select: none; - margin-right: 8px; } + margin-right: 8px; + float: left; } md-switch:not([disabled]) .md-dragging, md-switch:not([disabled]).md-dragging .md-container { cursor: -webkit-grabbing; @@ -10697,7 +13909,8 @@ md-switch { background-color: rgba(0, 0, 0, 0.12); } md-switch .md-label { border-color: transparent; - border-width: 0; } + border-width: 0; + float: left; } md-switch .md-bar { left: 1px; width: 34px; @@ -10956,9 +14169,6 @@ md-tab-content { left: 0; right: 0; bottom: 0; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); -webkit-transition: -webkit-transform 0.5s cubic-bezier(0.35, 0, 0.25, 1); transition: transform 0.5s cubic-bezier(0.35, 0, 0.25, 1); overflow: auto; } @@ -11063,7 +14273,7 @@ md-toast { display: -ms-flexbox; display: flex; position: absolute; - z-index: 90; + z-index: 105; box-sizing: border-box; -webkit-box-align: center; -webkit-align-items: center; @@ -11085,7 +14295,11 @@ md-toast { transform: translate3d(0, 0, 0) rotateZ(0deg); -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); - /* Transition differently when swiping */ } + /* Transition differently when swiping */ + /* + * When the toast doesn't take up the whole screen, + * make it rotate when the user swipes it away + */ } md-toast.md-capsule { border-radius: 24px; } md-toast.ng-leave-active { @@ -11109,25 +14323,26 @@ md-toast { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } + md-toast.ng-leave.ng-leave-active.md-swipeup { + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0); } + md-toast.ng-leave.ng-leave-active.md-swipedown { + -webkit-transform: translate3d(0, 50%, 0); + transform: translate3d(0, 50%, 0); } md-toast.ng-leave.ng-leave-active.md-top { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } - md-toast.ng-leave.ng-leave-active.md-swipeleft { - -webkit-transform: translate3d(-100%, 0%, 0); - transform: translate3d(-100%, 0%, 0); } - md-toast.ng-leave.ng-leave-active.md-swiperight { - -webkit-transform: translate3d(100%, 0%, 0); - transform: translate3d(100%, 0%, 0); } md-toast .md-action { line-height: 19px; margin-left: 24px; + margin-right: 0; cursor: pointer; text-transform: uppercase; float: right; } md-toast .md-action.md-button { min-width: 0; } -@media (max-width: 600px) { +@media (max-width: 960px) { md-toast { left: 0; right: 0; @@ -11136,17 +14351,20 @@ md-toast { min-width: 0; border-radius: 0; bottom: 0; } - md-toast.md-top { - bottom: auto; - top: 0; } } + md-toast.ng-leave.ng-leave-active.md-swipeup { + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0); } + md-toast.ng-leave.ng-leave-active.md-swipedown { + -webkit-transform: translate3d(0, 50%, 0); + transform: translate3d(0, 50%, 0); } } -@media (min-width: 600px) { +@media (min-width: 960px) { md-toast { min-width: 288px; /* - * When the toast doesn't take up the whole screen, - * make it rotate when the user swipes it away - */ } + * When the toast doesn't take up the whole screen, + * make it rotate when the user swipes it away + */ } md-toast.md-bottom { bottom: 8px; } md-toast.md-left { @@ -11156,17 +14374,11 @@ md-toast { md-toast.md-top { top: 8px; } md-toast.ng-leave.ng-leave-active.md-swipeleft { - -webkit-transform: translate3d(-100%, 25%, 0) rotateZ(-15deg); - transform: translate3d(-100%, 25%, 0) rotateZ(-15deg); } + -webkit-transform: translate3d(-50%, 0, 0); + transform: translate3d(-50%, 0, 0); } md-toast.ng-leave.ng-leave-active.md-swiperight { - -webkit-transform: translate3d(100%, 25%, 0) rotateZ(15deg); - transform: translate3d(100%, 25%, 0) rotateZ(15deg); } - md-toast.ng-leave.ng-leave-active.md-top.md-swipeleft { - -webkit-transform: translate3d(-100%, 0, 0) rotateZ(-15deg); - transform: translate3d(-100%, 0, 0) rotateZ(-15deg); } - md-toast.ng-leave.ng-leave-active.md-top.md-swiperight { - -webkit-transform: translate3d(100%, 0, 0) rotateZ(15deg); - transform: translate3d(100%, 0, 0) rotateZ(15deg); } } + -webkit-transform: translate3d(50%, 0, 0); + transform: translate3d(50%, 0, 0); } } @media (min-width: 1280px) { md-toast { @@ -11176,6 +14388,9 @@ md-toast { md-toast { border: 1px solid #fff; } } +md-toast > md-icon { + margin-right: 12px; } + /*! toolbar/_extends.scss - */ md-toolbar { box-sizing: border-box; @@ -11275,14 +14490,14 @@ md-toolbar { .md-toolbar-tools { border-bottom: 1px solid #fff; } } -@media only screen and (min-width: 0) and (max-width: 600px) and (orientation: portrait) { +@media only screen and (min-width: 0) and (max-width: 960px) and (orientation: portrait) { md-toolbar { min-height: 56px; } .md-toolbar-tools { height: 56px; max-height: 56px; } } -@media only screen and (min-width: 0) and (max-width: 600px) and (orientation: landscape) { +@media only screen and (min-width: 0) and (max-width: 960px) and (orientation: landscape) { md-toolbar { min-height: 48px; } .md-toolbar-tools { @@ -11293,6 +14508,14 @@ md-toolbar { z-index: 10; font-size: 1em !important; } +md-dialog md-toolbar, +md-dialog md-toolbar .md-input, +md-dialog md-toolbar md-input-container.md-input-has-value label, +md-dialog md-toolbar md-input-container label:not(.md-no-float), +md-dialog md-toolbar md-icon { + -webkit-transition: background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); } + .md-toolbar-tools { font-size: 1em !important; } @@ -11314,6 +14537,10 @@ md-toolbar.sg-toolbar-secondary.ng-hide > .sg-icon-button:first-child, -ms-transform: translateX(-36px); transform: translateX(-36px); } +md-toolbar.md-accent.md-hue-1 md-icon, +.md-toolbar-tools.md-accent.md-hue-1 md-icon { + color: rgba(0, 0, 0, 0.54); } + .md-toolbar-tools.md-toolbar-tools-top { -webkit-box-align: start; -webkit-align-items: flex-start; @@ -11410,48 +14637,26 @@ md-tooltip { border-radius: 4px; font-weight: 500; font-size: 14px; } - @media screen and (min-width: 600px) { + @media screen and (min-width: 960px) { md-tooltip { font-size: 10px; } } - md-tooltip .md-background { - position: absolute; - border-radius: 50%; - -webkit-transform: translate(-50%, -50%) scale(0); - -ms-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - opacity: 1; } - md-tooltip .md-background.md-show-add { - -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - -webkit-transform: translate(-50%, -50%) scale(0); - -ms-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - opacity: 0; } - md-tooltip .md-background.md-show, md-tooltip .md-background.md-show-add-active { - -webkit-transform: translate(-50%, -50%) scale(1); - -ms-transform: translate(-50%, -50%) scale(1); - transform: translate(-50%, -50%) scale(1); - opacity: 1; } - md-tooltip .md-background.md-show-remove { - -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-tooltip .md-background.md-show-remove.md-show-remove-active { - -webkit-transform: translate(-50%, -50%) scale(0); - -ms-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - opacity: 0; } md-tooltip .md-content { position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - background: transparent; + -webkit-transform-origin: center top; + -ms-transform-origin: center top; + transform-origin: center top; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); opacity: 0; height: 32px; line-height: 32px; padding-left: 16px; padding-right: 16px; } - @media screen and (min-width: 600px) { + @media screen and (min-width: 960px) { md-tooltip .md-content { height: 22px; line-height: 22px; @@ -11460,13 +14665,26 @@ md-tooltip { md-tooltip .md-content.md-show-add { -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-duration: .2s; + transition-duration: .2s; + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); opacity: 0; } md-tooltip .md-content.md-show, md-tooltip .md-content.md-show-add-active { + -webkit-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); opacity: 1; } md-tooltip .md-content.md-show-remove { - -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); - transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } + -webkit-transition: 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-duration: .2s; + transition-duration: .2s; } md-tooltip .md-content.md-show-remove.md-show-remove-active { + -webkit-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); opacity: 0; } md-tooltip.md-hide { -webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); @@ -11531,7 +14749,7 @@ md-tooltip { .md-whiteframe-2dp { box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12); } -.md-whiteframe-3dp { +.md-whiteframe-3dp, .msg-attachment-image:not(.sg-zoom):hover md-card { box-shadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 3px 3px -2px rgba(0, 0, 0, 0.12); } .md-whiteframe-4dp, .md-whiteframe-z2, md-card.sg-expanded { @@ -11899,34 +15117,35 @@ md-input-container .bgroup { .PseudoField input:focus { outline: none; } -@media (max-width: 600px) { - [ui-view="login"] md-content [id=logo] { - text-align: center; } - [ui-view="login"] md-content [id=logo] img { - max-width: 75%; } } - -@media (min-width: 601px) { - [ui-view="login"] md-content.ng-hide [id=logo] { - opacity: 0; - -webkit-transform: translateX(50%); - -ms-transform: translateX(50%); - transform: translateX(50%); } - [ui-view="login"] md-content.ng-hide .sg-login { - opacity: 0; - -webkit-transform: translateX(100%); - -ms-transform: translateX(100%); - transform: translateX(100%); } - [ui-view="login"] md-content [id=logo], [ui-view="login"] md-content .sg-login { - opacity: 1; - -webkit-transform: translateX(0%); - -ms-transform: translateX(0%); - transform: translateX(0%); } - [ui-view="login"] md-content [id=logo] { - -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms, opacity 400ms linear; - transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms, opacity 400ms linear; } - [ui-view="login"] md-content .sg-login { - -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms; - transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms; } } +[ui-view="login"] md-content { + padding: 0; } + @media (max-width: 600px) { + [ui-view="login"] md-content [id=logo] { + text-align: center; } + [ui-view="login"] md-content [id=logo] img { + max-width: 75%; } } + @media (min-width: 601px) { + [ui-view="login"] md-content.ng-hide [id=logo] { + opacity: 0; + -webkit-transform: translateX(50%); + -ms-transform: translateX(50%); + transform: translateX(50%); } + [ui-view="login"] md-content.ng-hide .sg-login { + opacity: 0; + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + transform: translateX(100%); } + [ui-view="login"] md-content [id=logo], [ui-view="login"] md-content .sg-login { + opacity: 1; + -webkit-transform: translateX(0%); + -ms-transform: translateX(0%); + transform: translateX(0%); } + [ui-view="login"] md-content [id=logo] { + -webkit-transition: -webkit-transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms, opacity 400ms linear; + transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms, opacity 400ms linear; } + [ui-view="login"] md-content .sg-login { + -webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms; + transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) 600ms; } } [ui-view="login"] > md-content > div { width: 320px; } @@ -11977,8 +15196,7 @@ md-input-container .bgroup { padding-top: 16px; } .msg-date { - font-size: 14px; - text-align: right; } + font-size: 14px; } md-sidenav md-checkbox.sg-folder .md-container:after { color: rgba(0, 0, 0, 0.54); @@ -12001,29 +15219,56 @@ md-sidenav md-checkbox.sg-folder.md-checked .md-icon { md-sidenav md-checkbox.sg-folder.md-checked .md-icon:after { border-style: none; } +md-sidenav .sg-item-name { + line-height: 48px; } + md-sidenav .sg-item-name:focus { + outline: none; } + @media (min-width: 600px) { - .msg-attachment-image { + .msg-attachment-image, + .msg-attachment-link { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; - flex: 0 0 100%; - max-width: 100%; } } + flex: 0 0 100%; } } + +@media (min-width: 960px) { + .msg-attachment-image, + .msg-attachment-link { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; } } @media (min-width: 1024px) { - .msg-attachment-image { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.66%; - -ms-flex: 0 0 66.66%; - flex: 0 0 66.66%; - max-width: 66%; } } - -@media (min-width: 1280px) { - .msg-attachment-image { + .msg-attachment-image, + .msg-attachment-link { -webkit-box-flex: 0; -webkit-flex: 0 0 33.33%; -ms-flex: 0 0 33.33%; - flex: 0 0 33.33%; - max-width: 33%; } } + flex: 0 0 33.33%; } } + +.msg-attachment-image > div, +.msg-attachment-link > div { + max-width: 100%; + width: 100%; } + +.msg-attachment-image { + -webkit-transition: -webkit-flex-basis 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + -webkit-transition: -webkit-flex-basis 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: -webkit-flex-basis 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: -ms-flex-preferred-size 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); + transition: flex-basis 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); } + .msg-attachment-image.sg-zoom { + -webkit-flex-basis: 100%; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; } + .msg-attachment-image [sg-zoomable-image] img { + cursor: pointer; } .msg-attachment-other { -webkit-box-flex: 0; @@ -12032,12 +15277,39 @@ md-sidenav md-checkbox.sg-folder.md-checked .md-icon { flex: 0 0 100%; max-width: 100%; } +.sg-attachment-size { + padding-left: 8px; + color: #424242; } + .sg-md-title-msg { margin: 0; margin-bottom: 8px; white-space: normal; font-weight: 400; } +.mailer_mailcontent md-card md-card-content { + padding: 8px; } + .mailer_mailcontent md-card md-card-content p { + overflow: hidden; + text-overflow: ellipsis; } + +.sg-mail-editor .pseudo-input-container { + max-height: 400px; + overflow: hidden; + overflow-y: auto; + -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); } + .sg-mail-editor .pseudo-input-container.ng-hide { + max-height: 0; + overflow: hidden; } + +.sg-mail-editor md-dialog-content { + padding-bottom: 0; + padding-top: 0; } + +.sg-mail-editor md-chip-template md-icon[ng-click] { + cursor: pointer; } + [id="contactsList"] .sg-md-subheader { -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); @@ -12067,8 +15339,8 @@ textarea.plain-text { * - SchedulerUI/UIxCalMulticolumnDayView.wox */ [ui-view=calendars] .view-list { - min-width: 192px; } - @media (min-width: 601px) and (max-width: 1024px) { + min-width: 128px; } + @media (min-width: 601px) and (max-width: 960px) { [ui-view=calendars] .view-list { max-width: 37.5vw; -webkit-box-flex: 1; @@ -12076,7 +15348,7 @@ textarea.plain-text { -ms-flex: 1 1 37.5vw; flex: 1 1 37.5vw; min-width: 192px; } } - @media (min-width: 1025px) { + @media (min-width: 961px) { [ui-view=calendars] .view-list { max-width: 25vw; -webkit-box-flex: 1; @@ -12088,7 +15360,7 @@ textarea.plain-text { [ui-view=calendars] .view-list .sg-avatar-selected.md-avatar:first-child { margin-right: 0; } -@media (min-width: 601px) and (max-width: 1024px) { +@media (min-width: 601px) and (max-width: 960px) { [ui-view=calendars] .view-detail { max-width: 62.5vw; -webkit-box-flex: 1; @@ -12096,13 +15368,13 @@ textarea.plain-text { -ms-flex: 1 1 62.5vw; flex: 1 1 62.5vw; } } -@media (min-width: 1025px) { +@media (min-width: 961px) { [ui-view=calendars] .view-detail { - max-width: 55vw; -webkit-box-flex: 1; - -webkit-flex: 1 1 55vw; - -ms-flex: 1 1 55vw; - flex: 1 1 55vw; } } + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + margin: 0; } } [ui-view=calendars] .calendarView { position: absolute; @@ -12112,13 +15384,16 @@ textarea.plain-text { left: 0; } [ui-view=calendars] md-toolbar.daysView, [ui-view=calendars] md-toolbar.monthView { + background-color: #fff; overflow: hidden; z-index: 9; } [ui-view=calendars] md-toolbar.daysView .days, [ui-view=calendars] md-toolbar.monthView .days { margin-left: 50px; - margin-right: 16px; } + overflow-y: scroll; } [ui-view=calendars] md-toolbar.daysView .days.dayLabels .day, [ui-view=calendars] md-toolbar.monthView .days.dayLabels .day { padding-left: 1%; } + [ui-view=calendars] md-toolbar.daysView .days.dayLabels .day div, [ui-view=calendars] md-toolbar.monthView .days.dayLabels .day div { + overflow: hidden; } [ui-view=calendars] md-toolbar[sg-view$=dayview] .dayLabels .day { display: -webkit-box; @@ -12130,15 +15405,52 @@ textarea.plain-text { -ms-flex-align: center; align-items: center; } +[ui-view=calendars] md-toolbar.monthView > div { + overflow-y: scroll; } + [ui-view=calendars] .allDaysView { border-bottom: 1px solid #e6d8ba; max-height: 120px; } + [ui-view=calendars] .allDaysView .day { + position: relative; } [ui-view=calendars] .allDaysView .sg-event { margin: 2%; line-height: initial; position: relative; } - [ui-view=calendars] .allDaysView .gradient, [ui-view=calendars] .allDaysView .text { - position: relative; } + [ui-view=calendars] .allDaysView .sg-event--ghost { + position: absolute; + top: 0; + left: 0; + right: 0; + margin-left: 0; + margin-right: 0; + border-radius: 0; + padding-left: 2%; + padding-right: 2%; } + [ui-view=calendars] .allDaysView .sg-event--ghost--first { + margin-left: 2%; + padding-left: 0; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + [ui-view=calendars] .allDaysView .sg-event--ghost--last { + margin-right: 2%; + padding-right: 0; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + [ui-view=calendars] .allDaysView .text { + position: static; + padding: 3px 1%; } + +[ui-view=calendars] md-card { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; } + +[ui-view=calendars] md-content[sg-calendar-scroll-view] { + overflow-y: scroll; + overflow-x: hidden; } [ui-view=calendars] .days { display: -webkit-box; @@ -12165,16 +15477,22 @@ textarea.plain-text { border-left: 1px solid #e6d8ba; } [ui-view=calendars] .days .day .clickableHourCell { height: 40px; - border-bottom: 1px solid #e6d8ba; } + border-bottom: 1px solid #e6d8ba; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + [ui-view=calendars] .days .day .clickableHourCell.outOfDay { + background-color: #fafafa; } [ui-view=calendars] .sg-calendar-tile-header { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; font-size: 14px; - padding: 2px; - min-height: 18px; - overflow: hidden; } + min-height: 22px; + overflow: hidden; + padding: 4px; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; } [ui-view=calendars] .hours { color: #7db3b0; @@ -12200,23 +15518,24 @@ textarea.plain-text { [ui-view=calendars] .hourCells { position: relative; } -[ui-view=calendars] .sg-event { - font-size: 14px; } - [ui-view=calendars] .sg-event, [ui-view=calendars] .sg-event md-icon { - color: #fff !important; } - [ui-view=calendars] .sg-event .material-icons { - font-size: 14px; } - -[ui-view=calendars] .sg-draggable { +[ui-view=calendars] .sg-draggable-calendar-block, +[ui-view=calendars] .sg-event--ghost { cursor: move; } [ui-view=calendars] .sg-event { + font-size: 14px; + font-weight: 600; border-radius: 3px; position: absolute; left: 0; right: 0; opacity: 0.9; - overflow: hidden; } + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all 0.08s linear; + transition: all 0.08s linear; } [ui-view=calendars] .sg-event.starts0 { top: 0px; } [ui-view=calendars] .sg-event.lasts0 { @@ -12601,10 +15920,93 @@ textarea.plain-text { top: 950px; } [ui-view=calendars] .sg-event.lasts95 { height: 950px; } + [ui-view=calendars] .sg-event--notransition { + -webkit-transition: none; + transition: none; } + [ui-view=calendars] .sg-event--ghost { + opacity: 1; + left: 2%; + right: 2%; } + [ui-view=calendars] .sg-event--dragging { + background-image: -webkit-repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2) 2px, transparent 2px, transparent 4px); + background-image: repeating-linear-gradient(-45deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2) 2px, transparent 2px, transparent 4px); + opacity: 0.5; } + [ui-view=calendars] .sg-event.lasts1 .text { + top: 0px; + bottom: 0px; } [ui-view=calendars] .sg-event .eventInside { overflow: hidden; } + [ui-view=calendars] .sg-event .material-icons { + font-size: 14px; } + [ui-view=calendars] .sg-event .icons md-icon { + float: right; } + [ui-view=calendars] .sg-event .secondary { + font-weight: 300; } + [ui-view=calendars] .sg-event .sg-category:first-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + [ui-view=calendars] .sg-event:hover .dragGrip-top, [ui-view=calendars] .sg-event:hover .dragGrip-bottom { + display: block; + cursor: ns-resize; } + [ui-view=calendars] .sg-event:hover .dragGrip-left, [ui-view=calendars] .sg-event:hover .dragGrip-right { + display: block; + cursor: ew-resize; } + [ui-view=calendars] .sg-event .dragGrip-top, [ui-view=calendars] .sg-event .dragGrip-bottom, [ui-view=calendars] .sg-event .dragGrip-left, [ui-view=calendars] .sg-event .dragGrip-right { + display: none; + position: absolute; } + [ui-view=calendars] .sg-event .dragGrip-top, [ui-view=calendars] .sg-event .dragGrip-bottom { + left: 1px; + right: 1px; + height: 8px; + line-height: 8px; } + [ui-view=calendars] .sg-event .dragGrip-top { + top: 0; } + [ui-view=calendars] .sg-event .dragGrip-top .dragGrip { + right: 0; + top: -3px; } + [ui-view=calendars] .sg-event .dragGrip-bottom { + bottom: 0; } + [ui-view=calendars] .sg-event .dragGrip-bottom .dragGrip { + bottom: -3px; } + [ui-view=calendars] .sg-event .dragGrip-left, [ui-view=calendars] .sg-event .dragGrip-right { + top: 1px; + bottom: 1px; + width: 8px; + line-height: 8px; } + [ui-view=calendars] .sg-event .dragGrip-left { + left: -2%; } + [ui-view=calendars] .sg-event .dragGrip-left .dragGrip { + bottom: 0; + left: -1px; } + [ui-view=calendars] .sg-event .dragGrip-right { + right: -2%; } + [ui-view=calendars] .sg-event .dragGrip-right .dragGrip { + right: -1px; } + [ui-view=calendars] .sg-event .dragGrip { + background-color: white; + border-radius: 50%; + border-style: solid; + border-width: 1px; + display: inline-block; + height: 8px; + position: absolute; + width: 8px; } + [ui-view=calendars] .sg-event .ghostStartHour, + [ui-view=calendars] .sg-event .ghostEndHour { + position: absolute; + width: 100%; + vertical-align: baseline; + height: 14px; + left: 0px; + color: #222; + text-align: center; } + [ui-view=calendars] .sg-event .ghostStartHour { + top: -14px; } + [ui-view=calendars] .sg-event .ghostEndHour { + bottom: -14px; } [ui-view=calendars] .multicolumnDay { + color: #212121; font-size: 16px; font-weight: 300; overflow: hidden; @@ -12612,15 +16014,26 @@ textarea.plain-text { padding-left: 2px; margin-right: 2px; } +[ui-view=calendars] .monthView .dayLabels { + -webkit-box-flex: 1; + -webkit-flex: 1 1 0; + -ms-flex: 1 1 0; + flex: 1 1 0; + text-align: center; } + [ui-view=calendars] .monthView md-grid-tile { - border-right: 1px solid #f2f2f2; - border-bottom: 1px solid #f2f2f2; - overflow: auto; } + border-right: 1px solid #f5f5f5; + border-bottom: 1px solid #f5f5f5; + overflow: auto; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth { background-color: #fafafa; } [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth .sg-calendar-tile-header, [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth .sg-calendar-tile-header > span { - color: #dddddd !important; } + color: #e0e0e0 !important; } [ui-view=calendars] .monthView md-grid-tile.dayOfToday .sg-calendar-tile-header > span { border-radius: 50%; color: #fff; @@ -12634,18 +16047,36 @@ textarea.plain-text { text-align: center; } [ui-view=calendars] .monthView md-content { - background-color: transparent; } + background-color: transparent; + height: 100%; + overflow: hidden; + overflow-y: auto; } [ui-view=calendars] .monthView .sg-event { position: relative; - border-radius: 1px; - overflow: hidden; - padding: 2%; + padding: 3px 1%; margin: 2%; - text-overflow: ellipsis; - white-space: nowrap; } - [ui-view=calendars] .monthView .sg-event span { - font-weight: 300; } + overflow: hidden; } + [ui-view=calendars] .monthView .sg-event--ghost { + position: absolute; + top: 0; + left: 0; + right: 0; + margin-left: 0; + margin-right: 0; + border-radius: 0; + padding-left: 2%; + padding-right: 2%; } + [ui-view=calendars] .monthView .sg-event--ghost--first { + margin-left: 2%; + padding-left: 0; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + [ui-view=calendars] .monthView .sg-event--ghost--last { + margin-right: 2%; + padding-right: 0; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } [ui-view=calendars] .minutes15, [ui-view=calendars] .minutes30, [ui-view=calendars] .minutes45 { display: block; @@ -12654,13 +16085,15 @@ textarea.plain-text { [ui-view=calendars] .minutes30 { border-bottom: 1px dotted #e6d8ba; } -[ui-view=calendars] .gradient, [ui-view=calendars] .text { +[ui-view=calendars] .text { position: absolute; - top: 1px; - left: 4px; - right: 2px; - bottom: 1px; - overflow: hidden; } + top: 3px; + left: 1%; + right: 1%; + bottom: 3px; + margin: 0 2px; + overflow: hidden; + line-height: 14px; } [ui-view=calendars] .gradient > IMG { position: absolute; @@ -12691,9 +16124,13 @@ textarea.plain-text { -ms-flex-align: stretch; align-items: stretch; } .attendees md-list-item { - padding-left: 0; } + padding-left: 0; + padding-right: 0; } .attendees md-list-item:hover { background-color: initial; } + .attendees md-list-item > .md-avatar { + margin-top: 4px; + margin-bottom: 4px; } .attendees .md-tile-left { height: initial; min-height: 48px; @@ -12742,7 +16179,7 @@ textarea.plain-text { [ui-view="administration"] [id="usersList"] > md-list { position: absolute; - top: 0; + top: 36px; bottom: 0; left: 0; right: 0; @@ -12756,7 +16193,7 @@ textarea.plain-text { text-align: left; text-transform: none; } -@media (min-width: 601px) { +@media (min-width: 961px) { [ui-view="administration"] .view-detail .viewer { top: 128px; } } @@ -12780,7 +16217,9 @@ body.popup .view-detail { .view-list { z-index: 8; min-width: 256px; } - @media (min-width: 601px) and (max-width: 1024px) { + .view-list md-list-item .md-button { + margin: 0; } + @media (min-width: 601px) and (max-width: 960px) { .view-list { max-width: 37.5vw; -webkit-box-flex: 1; @@ -12788,7 +16227,7 @@ body.popup .view-detail { -ms-flex: 1 1 37.5vw; flex: 1 1 37.5vw; min-width: 192px; } } - @media (min-width: 1025px) { + @media (min-width: 961px) { .view-list { max-width: 30vw; -webkit-box-flex: 1; @@ -12802,8 +16241,12 @@ body.popup .view-detail { .view-detail { z-index: 9; - overflow: hidden; } - @media (min-width: 601px) and (max-width: 1024px) { + overflow: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; } + .view-detail md-card { + overflow: hidden; } + @media (min-width: 601px) and (max-width: 960px) { .view-detail { max-width: 62.5vw; -webkit-box-flex: 1; @@ -12811,13 +16254,12 @@ body.popup .view-detail { -ms-flex: 1 1 62.5vw; flex: 1 1 62.5vw; margin: 0; } } - @media (min-width: 1025px) { + @media (min-width: 961px) { .view-detail { - max-width: 50vw; - -webkit-box-flex: 2; - -webkit-flex: 2 1 50vw; - -ms-flex: 2 1 50vw; - flex: 2 1 50vw; + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; margin: 0; } } @media (min-width: 601px) { .view-detail .md-static { @@ -12867,7 +16309,34 @@ body.popup .view-detail { bottom: 0; left: 0; right: 0; - overflow-x: hidden; } } + overflow-x: hidden; } + .view-detail md-card { + height: 100%; + margin: 0; } } + .view-detail .sg-reversible { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; + -webkit-transition: -webkit-transform 0.5s; + transition: transform 0.5s; + left: 0; + width: 100%; + height: 100%; + position: absolute; } + .view-detail .sg-reversible.sg-flip { + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); } + .view-detail .sg-reversible .sg-face, .view-detail .sg-reversible .sg-back { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + position: absolute; + width: 100%; + height: 100%; } + .view-detail .sg-reversible .sg-face { + -webkit-transform: rotateY(0deg); + transform: rotateY(0deg); } + .view-detail .sg-reversible .sg-back { + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); } .sg-padded { padding-left: 16px; @@ -12888,4 +16357,10 @@ body.popup .view-detail { -webkit-transform: translateY(-10%); -ms-transform: translateY(-10%); transform: translateY(-10%); } + +.sg-category { + position: absolute; + top: 0; + bottom: 0; + width: 3px; } /*# 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 bf179828d..8ed563218 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","../angular-material/src/components/autocomplete/autocomplete.scss","../scss/components/autocomplete/autocomplete.scss","../scss/components/backdrop/_extends.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/components/backdrop/backdrop.scss","../scss/components/button/_extends.scss","../angular-material/src/components/button/button.scss","../scss/components/button/button.scss","../scss/components/card/_extends.scss","../angular-material/src/components/card/card.scss","../scss/components/card/card.scss","../scss/components/checkbox/_extends.scss","../angular-material/src/components/checkbox/checkbox.scss","../scss/components/checkbox/checkbox.scss","../scss/components/chips/_extends.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../scss/components/content/_extends.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/datepicker/_extends-calendar.scss","../angular-material/src/components/datepicker/calendar.scss","../scss/components/datepicker/_extends-datePicker.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/datepicker/datePicker.scss","../scss/components/dialog/_extends.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../scss/components/divider/_extends.scss","../angular-material/src/components/divider/divider.scss","../scss/components/fabSpeedDial/_extends.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../scss/components/icon/_extends.scss","../angular-material/src/components/icon/icon.scss","../scss/components/icon/icon.scss","../scss/components/input/_extends.scss","../angular-material/src/components/input/input.scss","../scss/components/input/input.scss","../scss/components/list/_extends.scss","../angular-material/src/components/list/list.scss","../scss/components/list/list.scss","../scss/components/menu/_extends.scss","../angular-material/src/components/menu/menu.scss","../scss/components/progressCircular/_extends.scss","../angular-material/src/components/progressCircular/progress-circular.scss","../scss/components/progressCircular/progress-circular.scss","../scss/components/radioButton/_extends.scss","../angular-material/src/components/radioButton/radio-button.scss","../scss/components/select/_extends.scss","../angular-material/src/components/select/select.scss","../scss/components/select/select.scss","../scss/components/sidenav/_extends.scss","../angular-material/src/components/sidenav/sidenav.scss","../scss/components/sidenav/sidenav.scss","../scss/components/slider/_extends.scss","../angular-material/src/components/slider/slider.scss","../scss/components/sticky/_extends.scss","../angular-material/src/components/sticky/sticky.scss","../scss/components/subheader/_extends.scss","../angular-material/src/components/subheader/subheader.scss","../scss/components/subheader/subheader.scss","../scss/components/switch/_extends.scss","../angular-material/src/components/switch/switch.scss","../scss/components/tabs/_extends.scss","../angular-material/src/components/tabs/tabs.scss","../scss/components/toast/_extends.scss","../angular-material/src/components/toast/toast.scss","../scss/components/toolbar/_extends.scss","../angular-material/src/components/toolbar/toolbar.scss","../scss/components/toolbar/toolbar.scss","../scss/components/tooltip/_extends.scss","../angular-material/src/components/tooltip/tooltip.scss","../scss/components/virtualRepeat/_extends.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/virtualRepeat/virtual-repeat.scss","../scss/components/whiteframe/_extends.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/timepicker/timepicker.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/MailerUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/SchedulerUI.scss","../scss/views/AdministrationUI.scss","../scss/views/_view.scss","../scss/core/base_styles/_base_style.scss"],"names":[],"mappings":"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moR3B;IiGpoRM,WAAS,EAAS;EjGsoRxB;IiGroRM,cAAY,EAAS;EjGuoR3B;IiGxoRM,WAAS,EAAS;EjG0oRxB;IiGzoRM,cAAY,EAAS;EjG2oR3B;IiG5oRM,WAAS,EAAS;EjG8oRxB;IiG7oRM,cAAY,EAAS;EjG+oR3B;IiGhpRM,WAAS,EAAS;EjGkpRxB;IiGjpRM,cAAY,EAAS;EjGmpR3B;IiGppRM,WAAS,EAAS;EjGspRxB;IiGrpRM,cAAY,EAAS;EjGupR3B;IiGxpRM,WAAS,EAAS;EjG0pRxB;IiGzpRM,cAAY,EAAS;EjG2pR3B;IiG5pRM,WAAS,EAAS;EjG8pRxB;IiG7pRM,cAAY,EAAS;EjG+pR3B;IiGhqRM,WAAS,EAAS;EjGkqRxB;IiGjqRM,cAAY,EAAS;EjGmqR3B;IiGpqRM,WAAS,EAAS;EjGsqRxB;IiGrqRM,cAAY,EAAS;EjGuqR3B;IiGxqRM,WAAS,EAAS;EjG0qRxB;IiGzqRM,cAAY,EAAS;EjG2qR3B;IiG5qRM,WAAS,EAAS;EjG8qRxB;IiG7qRM,cAAY,EAAS;EjG+qR3B;IiGhrRM,WAAS,EAAS;EjGkrRxB;IiGjrRM,cAAY,EAAS;EjGmrR3B;IiGprRM,WAAS,EAAS;EjGsrRxB;IiGrrRM,cAAY,EAAS;EjGurR3B;IiGxrRM,WAAS,EAAS;EjG0rRxB;IiGzrRM,cAAY,EAAS;EjG2rR3B;IiG5rRM,WAAS,EAAS;EjG8rRxB;IiG7rRM,cAAY,EAAS;EjG+rR3B;IiGhsRM,WAAS,EAAS;EjGksRxB;IiGjsRM,cAAY,EAAS;EjGmsR3B;IiGpsRM,WAAS,EAAS;EjGssRxB;IiGrsRM,cAAY,EAAS;EjGusR3B;IiGxsRM,WAAS,EAAS;EjG0sRxB;IiGzsRM,cAAY,EAAS;EjG2sR3B;IiG5sRM,WAAS,EAAS;EjG8sRxB;IiG7sRM,cAAY,EAAS;EjG+sR3B;IiGhtRM,WAAS,EAAS;EjGktRxB;IiGjtRM,cAAY,EAAS;EjGmtR3B;IiGptRM,WAAS,EAAS;EjGstRxB;IiGrtRM,cAAY,EAAS;EjGutR3B;IiGxtRM,WAAS,EAAS;EjG0tRxB;IiGztRM,cAAY,EAAS;EjG2tR3B;IiG5tRM,WAAS,EAAS;EjG8tRxB;IiG7tRM,cAAY,EAAS;EjG+tR3B;IiGhuRM,WAAS,EAAS;EjGkuRxB;IiGjuRM,cAAY,EAAS;EjGmuR3B;IiGpuRM,WAAS,EAAS;EjGsuRxB;IiGruRM,cAAY,EAAS;EjGuuR3B;IiGxuRM,WAAS,EAAS;EjG0uRxB;IiGzuRM,cAAY,EAAS;EjG2uR3B;IiG5uRM,WAAS,EAAS;EjG8uRxB;IiG7uRM,cAAY,EAAS;EjG+uR3B;IiGhvRM,WAAS,EAAS;EjGkvRxB;IiGjvRM,cAAY,EAAS;EjGmvR3B;IiGpvRM,WAAS,EAAS;EjGsvRxB;IiGrvRM,cAAY,EAAS;EjGuvR3B;IiGxvRM,WAAS,EAAS;EjG0vRxB;IiGzvRM,cAAY,EAAS;EjG2vR3B;IiG5vRM,WAAS,EAAS;EjG8vRxB;IiG7vRM,cAAY,EAAS;EjG+vR3B;IiGhwRM,WAAS,EAAS;EjGkwRxB;IiGjwRM,cAAY,EAAS;EjGmwR3B;IiGpwRM,WAAS,EAAS;EjGswRxB;IiGrwRM,cAAY,EAAS;EjGuwR3B;IiGxwRM,WAAS,EAAS;EjG0wRxB;IiGzwRM,cAAY,EAAS;EjG2wR3B;IiG5wRM,WAAS,EAAS;EjG8wRxB;IiG7wRM,cAAY,EAAS;EjG+wR3B;IiGhxRM,WAAS,EAAS;EjGkxRxB;IiGjxRM,cAAY,EAAS;EjGmxR3B;IiGpxRM,WAAS,EAAS;EjGsxRxB;IiGrxRM,cAAY,EAAS;EjGuxR3B;IiGxxRM,WAAS,EAAS;EjG0xRxB;IiGzxRM,cAAY,EAAS;EjG2xR3B;IiG5xRM,WAAS,EAAS;EjG8xRxB;IiG7xRM,cAAY,EAAS;EjG+xR3B;IiGhyRM,WAAS,EAAS;EjGkyRxB;IiGjyRM,cAAY,EAAS;EjGmyR3B;IiGpyRM,WAAS,EAAS;EjGsyRxB;IiGryRM,cAAY,EAAS;EjGuyR3B;IiGxyRM,WAAS,EAAS;EjG0yRxB;IiGzyRM,cAAY,EAAS;EjG2yR3B;IiG5yRM,WAAS,EAAS;EjG8yRxB;IiG7yRM,cAAY,EAAS;EjG+yR3B;IiGhzRM,WAAS,EAAS;EjGkzRxB;IiGjzRM,cAAY,EAAS;EjGmzR3B;IiGpzRM,WAAS,EAAS;EjGszRxB;IiGrzRM,cAAY,EAAS;EjGuzR3B;IiGxzRM,WAAS,EAAS;EjG0zRxB;IiGzzRM,cAAY,EAAS;EjG2zR3B;IiG5zRM,WAAS,EAAS;EjG8zRxB;IiG7zRM,cAAY,EAAS;EjG+zR3B;IiGh0RM,WAAS,EAAS;EjGk0RxB;IiGj0RM,cAAY,EAAS;EjGm0R3B;IiGp0RM,WAAS,EAAS;EjGs0RxB;IiGr0RM,cAAY,EAAS;EjGu0R3B;IiGx0RM,WAAS,EAAS;EjG00RxB;IiGz0RM,cAAY,EAAS;EjG20R3B;IiG50RM,WAAS,EAAS;EjG80RxB;IiG70RM,cAAY,EAAS;EjG+0R3B;IiGh1RM,WAAS,EAAS;EjGk1RxB;IiGj1RM,cAAY,EAAS;EjGm1R3B;IiGp1RM,WAAS,EAAS;EjGs1RxB;IiGr1RM,cAAY,EAAS;EjGu1R3B;IiGx1RM,WAAS,EAAS;EjG01RxB;IiGz1RM,cAAY,EAAS;EjG21R3B;IiG51RM,WAAS,EAAS;EjG81RxB;IiG71RM,cAAY,EAAS;EjG+1R3B;IiGh2RM,WAAS,EAAS;EjGk2RxB;IiGj2RM,cAAY,EAAS;EjGm2R3B;IiGp2RM,WAAS,EAAS;EjGs2RxB;IiGr2RM,cAAY,EAAS;EjGu2R3B;IiGx2RM,WAAS,EAAS;EjG02RxB;IiGz2RM,cAAY,EAAS;EjG22R3B;IiG52RM,WAAS,EAAS;EjG82RxB;IiG72RM,cAAY,EAAS;EjG+2R3B;IiGh3RM,WAAS,EAAS;EjGk3RxB;IiGj3RM,cAAY,EAAS;EjGm3R3B;IiGp3RM,WAAS,EAAS;EjGs3RxB;IiGr3RM,cAAY,EAAS;EjGu3R3B;IiGx3RM,WAAS,EAAS;EjG03RxB;IiGz3RM,cAAY,EAAS;EjG23R3B;IiG53RM,WAAS,EAAS;EjG83RxB;IiG73RM,cAAY,EAAS;EjG+3R3B;IiGh4RM,WAAS,EAAS;EjGk4RxB;IiGj4RM,cAAY,EAAS;EjGm4R3B;IiGp4RM,WAAS,EAAS;EjGs4RxB;IiGr4RM,cAAY,EAAS;EjGu4R3B;IiGx4RM,WAAS,EAAS;EjG04RxB;IiGz4RM,cAAY,EAAS;EjG24R3B;IiG54RM,WAAS,EAAS;EjG84RxB;IiG74RM,cAAY,EAAS;EjG+4R3B;IiGh5RM,WAAS,EAAS;EjGk5RxB;IiGj5RM,cAAY,EAAS;EjGm5R3B;IiGp5RM,WAAS,EAAS;EjGs5RxB;IiGr5RM,cAAY,EAAS;EjGu5R3B;IiGx5RM,WAAS,EAAS;EjG05RxB;IiGz5RM,cAAY,EAAS;EjG25R3B;IiG55RM,WAAS,EAAS;EjG85RxB;IiG75RM,cAAY,EAAS;EjG+5R3B;IiGh6RM,WAAS,EAAS;EjGk6RxB;IiGj6RM,cAAY,EAAS;EjGm6R3B;IiGp6RM,WAAS,EAAS;EjGs6RxB;IiGr6RM,cAAY,EAAS;EjGu6R3B;IiGx6RM,WAAS,EAAS;EjG06RxB;IiGz6RM,cAAY,EAAS;EjG26R3B;IiG56RM,WAAS,EAAS;EjG86RxB;IiG76RM,cAAY,EAAS;EjG+6R3B;IiGh7RM,WAAS,EAAS;EjGk7RxB;IiGj7RM,cAAY,EAAS;EjGm7R3B;IiGp7RM,WAAS,EAAS;EjGs7RxB;IiGr7RM,cAAY,EAAS;EjGu7R3B;IiGx7RM,WAAS,EAAS;EjG07RxB;IiGz7RM,cAAY,EAAS;EjG27R3B;IiG57RM,WAAS,EAAS;EjG87RxB;IiG77RM,cAAY,EAAS;EjG+7R3B;IiGh8RM,WAAS,EAAS;EjGk8RxB;IiGj8RM,cAAY,EAAS;EjGm8R3B;IiGp8RM,WAAS,EAAS;EjGs8RxB;IiGr8RM,cAAY,EAAS;EjGu8R3B;IiGx8RM,WAAS,EAAS;EjG08RxB;IiGz8RM,cAAY,EAAS;EjG28R3B;IiG58RM,WAAS,EAAS;EjG88RxB;IiG78RM,cAAY,EAAS;EjG+8R3B;IiGh9RM,WAAS,EAAS;EjGk9RxB;IiGj9RM,cAAY,EAAS;EjGm9R3B;IiG/8RI,iBAAiB,EAClB;;AjGi9RL;EiG58RI,gB5FjKgC;E4FkKhC,iBtFEe;EsFDf,iBAAiB;EACjB,iB5FpKgC;E4FqKhC,kBAAkB;EAClB,kBAAkB,EACnB;;AjG88RH;EiGz8RM,gCAA2B;EAC3B,iCAA4B;EAC5B,eAAe,EAyBhB;EjGk7RH;IiGz8RM,0BAAqB,EAMtB;IjGq8RH;;MiGv8RM,0BAAoC,EACrC;EjGy8RP;IiGp8RU,mBAAmB;IACnB,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,gBtFvFN;IsFwFM,iBtFxFN;IsFyFM,kBtFzFN;IsF0FM,mBAAmB,EACpB;;AjGs8RX;EiGj8RM,8BAA8B,EAC/B;;AjGm8RL;EiGj8RM,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EACjB,YAAY;EACZ,WAAW;EACX,wBAAwB;EACxB,oBAAoB,EAIrB;EjG+7RH;IiGj8RM,iBtFhDW,EsFiDZ;;AjGm8RP;EiG97RI,eAAe;EACf,YAAY,EACb;;AjGg8RH;EiG77RI,kCnG5LU,EmG6LX;;AjG+7RH;EiG57RI,mBAAmB;EACnB,SAAS;EACT,UAAU;EACV,WAAW;EACX,YAAY;EACZ,iBAAiB,EAClB;;AjG87RH;EiG37RI,mBAAmB;EACnB,OAAO;EACP,UAAU;EACV,QAAQ;EACR,SAAS;EACT,aAAa;EACb,iBAAiB;EAAE,0BAA0B;EAC7C,YAAY,EACb;;AAGH,sBAAsB;AACtB;EACE,iBAAiB;EACjB,iBAAiB,EAyDlB;EA3DD;IAII,mBAAmB,EACpB;EALH;IAOI,oBAAoB;IACpB,oBAAoB;IACpB,eAAe,EAQhB;IAjBH;MAWM,iBAAiB,EAKlB;MAhBL;QAcQ,2BAAqB;QAArB,6BAAqB;YAArB,wBAAqB;gBAArB,qBAAqB,EACtB;EAfP;IAmBI,gBAAgB,EAOjB;IA1BH;MAqBM,0BAA0B,EAC3B;EAtBL;IA4BI,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,aAAa,EACd;EAhCH;IAkCI,eAAe,EAChB;EAnCH;IAqCI,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,+BnG7PU;ImG8PV,gBAAgB;IAChB,iBAAiB;IACjB,0BAAkB;QAAlB,sBAAkB;YAAlB,kBAAkB;IAClB,oBAAa;IAAb,qBAAa;QAAb,qBAAa;YAAb,aAAa;IACb,yBAAiB;QAAjB,8BAAiB;YAAjB,iBAAiB;IACjB,2BAAqB;IAArB,6BAAqB;QAArB,wBAAqB;YAArB,qBAAqB,EACtB;EA7CH;IA+CI,eAAe;IACf,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,2BAAqB;IAArB,6BAAqB;QAArB,wBAAqB;YAArB,qBAAqB,EAStB;IA1DH;MAmDM,cAAc;MACd,eAAe;MACf,0BnGvQQ,EmGwQT;IAtDL;MAwDM,0BnG5OO,EmG6OR;;AjG86RL;EkG9vSI,mBAAmB;EACnB,OAAO;EACP,UAAU;EACV,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,iBAAiB,EASlB;ElGuvSD;IkG3vSI,oBAAe;IAAf,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,iBAAiB;IACjB,qBAAqB,EACtB;;AzF6CD;ETitSF;IkGvvSM,W7FuBoB,E6FtBrB,EAAA;;AClBP;;EAEE,iBAAiB,EAClB;;AAED;EAEI,YAAY,EACb;;AAHH;EAKI,gBAAgB,EACjB;;A1F4CC;E0FlDJ;IASM,iBAAiB,EAClB,EAAA;;AnG0wSL;EmGnvSE,mBAAmB,EAEpB;;AAED;EACE,W9FwGc;E8FvGd,iB9FJ0B,E8FgB3B;E1FDG;I0FbJ;M3FqHK,kBADc;MAEd,oBAFc;MAEd,yBAFc;UAEd,qBAFc;cAEd,iBAFc;M2F/Gf,iB9FPwB,E8FgB3B,EAAA;E1FDG;I0FbJ;M3FqHK,gBADc;MAEd,oBAFc;MAEd,uBAFc;UAEd,mBAFc;cAEd,eAFc,E2FtGlB,EAAA;E1FDG;I0FbJ;MAWI,YAAY;MACZ,gBAAgB,EAEnB,EAAA;;AAED;EACE,W9FwFc;E8FtFd,iBAAiB,EAyFlB;E1F/FG;I0FGJ;M3FqGK,kBADc;MAEd,oBAFc;MAEd,yBAFc;UAEd,qBAFc;cAEd,iBAFc;M2F9Ff,UAAU,EAsFb,EAAA;E1F/FG;I0FGJ;M3FqGK,gBADc;MAEd,oBAFc;MAEd,uBAFc;UAEd,mBAFc;cAEd,eAFc;M2F1Ff,UAAU,EAkFb,EAAA;E1F/FG;I0FGJ;MAgBM,iBAAiB,EAClB;IAjBL;MAmBM,mBAAmB;MACnB,U9FtCsB;M8FuCtB,QAAQ;MACR,SAAS;MACT,UAAU;MACV,gBAAgB;MAChB,iBAAiB,EAoBlB,EAAA;E1FhDD;I0FGJ;MA4DI,eAAe;MACf,yCAAyC;MACzC,mBAAmB;MAEnB,OAAO;MACP,UAAU;MACV,QAAQ;MACR,SAAS;MACT,Y9FoBgB;M8FnBhB,iCAAqB;UAArB,6BAAqB;cAArB,yBAAqB;MACrB,4D9FiC4C;c8FjC5C,oD9FiC4C,E8FX/C;MA5FD;QAwEM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EACtB;MAzEL;QA2EM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EACtB;MA5EL;QA8EM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EAItB;QAlFL;UAgFQ,iCAAqB;cAArB,6BAAqB;kBAArB,yBAAqB,EACtB;MAjFP;QAoFM,mBAAmB;QACnB,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,mBAAmB,EACpB,EAAA;;ACxJL;EACE,mB/FsC4B;E+FrC5B,oB/FqC4B,E+F3B7B;EAZD;IAII,mB/FmC0B,E+FlC3B;EALH;IAOI,oB/FgC0B,E+F/B3B;EARH;IAUI,kB/F6B0B,E+F5B3B;;AAGH;EACE,8CAAqB;EACrB,yBAAyB;EACzB,6BAA6B;EAC7B,aAAS;EACT,iBAAa;EAEb,oCAAqB;MAArB,gCAAqB;UAArB,4BAAqB,EACtB","file":"styles.css"} \ No newline at end of file +{"version":3,"sources":["../scss/components/_palette.scss","../scss/core/reset.scss","styles.css","../scss/core/angular.scss","../scss/styles.scss","../angular-material/src/core/style/structure.scss","../angular-material/src/core/style/mixins.scss","../scss/core/variables.scss","../scss/core/structure.scss","../angular-material/src/core/services/layout/layout.scss","../scss/core/layout.scss","../bower_components/breakpoint-sass/stylesheets/_breakpoint.scss","../angular-material/src/core/style/typography.scss","../scss/core/typography.scss","../angular-material/src/components/autocomplete/autocomplete.scss","../scss/components/autocomplete/autocomplete.scss","../scss/components/backdrop/_extends.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/components/backdrop/backdrop.scss","../scss/components/button/_extends.scss","../angular-material/src/components/button/button.scss","../scss/components/button/button.scss","../scss/components/card/_extends.scss","../angular-material/src/components/card/card.scss","../scss/components/card/card.scss","../scss/components/checkbox/_extends.scss","../angular-material/src/components/checkbox/checkbox.scss","../scss/components/checkbox/checkbox.scss","../scss/components/chips/_extends.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../scss/components/content/_extends.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/datepicker/_extends-calendar.scss","../angular-material/src/components/datepicker/calendar.scss","../scss/components/datepicker/_extends-datePicker.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/datepicker/datePicker.scss","../scss/components/dialog/_extends.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../scss/components/divider/_extends.scss","../angular-material/src/components/divider/divider.scss","../scss/components/fabSpeedDial/_extends.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../scss/components/icon/_extends.scss","../angular-material/src/components/icon/icon.scss","../scss/components/icon/icon.scss","../scss/components/input/_extends.scss","../angular-material/src/components/input/input.scss","../scss/components/input/input.scss","../scss/components/list/_extends.scss","../angular-material/src/components/list/list.scss","../scss/components/list/list.scss","../scss/components/menu/_extends.scss","../angular-material/src/components/menu/menu.scss","../scss/components/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/toast/toast.scss","../scss/components/toolbar/_extends.scss","../angular-material/src/components/toolbar/toolbar.scss","../scss/components/toolbar/toolbar.scss","../scss/components/tooltip/_extends.scss","../angular-material/src/components/tooltip/tooltip.scss","../scss/components/virtualRepeat/_extends.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/virtualRepeat/virtual-repeat.scss","../scss/components/whiteframe/_extends.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/timepicker/timepicker.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/MailerUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/SchedulerUI.scss","../scss/views/AdministrationUI.scss","../scss/views/_view.scss","../scss/core/base_styles/_base_style.scss"],"names":[],"mappings":"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AAY,EAAS;EnGuuV3B;ImGxuVM,WAAS,EAAS;EnG0uVxB;ImGzuVM,cAAY,EAAS;EnG2uV3B;ImG5uVM,WAAS,EAAS;EnG8uVxB;ImG7uVM,cAAY,EAAS;EnG+uV3B;ImGhvVM,WAAS,EAAS;EnGkvVxB;ImGjvVM,cAAY,EAAS;EnGmvV3B;ImGpvVM,WAAS,EAAS;EnGsvVxB;ImGrvVM,cAAY,EAAS;EnGuvV3B;ImGxvVM,WAAS,EAAS;EnG0vVxB;ImGzvVM,cAAY,EAAS;EnG2vV3B;ImG5vVM,WAAS,EAAS;EnG8vVxB;ImG7vVM,cAAY,EAAS;EnG+vV3B;ImGhwVM,WAAS,EAAS;EnGkwVxB;ImGjwVM,cAAY,EAAS;EnGmwV3B;ImGpwVM,WAAS,EAAS;EnGswVxB;ImGrwVM,cAAY,EAAS;EnGuwV3B;ImGxwVM,WAAS,EAAS;EnG0wVxB;ImGzwVM,cAAY,EAAS;EnG2wV3B;ImG5wVM,WAAS,EAAS;EnG8wVxB;ImG7wVM,cAAY,EAAS;EnG+wV3B;ImGhxVM,WAAS,EAAS;EnGkxVxB;ImGjxVM,cAAY,EAAS;EnGmxV3B;ImGpxVM,WAAS,EAAS;EnGsxVxB;ImGrxVM,cAAY,EAAS;EnGuxV3B;ImGxxVM,WAAS,EAAS;EnG0xVxB;ImGzxVM,cAAY,EAAS;EnG2xV3B;ImG5xVM,WAAS,EAAS;EnG8xVxB;ImG7xVM,cAAY,EAAS;EnG+xV3B;ImGhyVM,WAAS,EAAS;EnGkyVxB;ImGjyVM,cAAY,EAAS;EnGmyV3B;ImGpyVM,WAAS,EAAS;EnGsyVxB;ImGryVM,cAAY,EAAS;EnGuyV3B;ImGxyVM,WAAS,EAAS;EnG0yVxB;ImGzyVM,cAAY,EAAS;EnG2yV3B;ImG5yVM,WAAS,EAAS;EnG8yVxB;ImG7yVM,cAAY,EAAS;EnG+yV3B;ImGhzVM,WAAS,EAAS;EnGkzVxB;ImGjzVM,cAAY,EAAS;EnGmzV3B;ImGpzVM,WAAS,EAAS;EnGszVxB;ImGrzVM,cAAY,EAAS;EnGuzV3B;ImGxzVM,WAAS,EAAS;EnG0zVxB;ImGzzVM,cAAY,EAAS;EnG2zV3B;ImG5zVM,WAAS,EAAS;EnG8zVxB;ImG7zVM,cAAY,EAAS;EnG+zV3B;ImGh0VM,WAAS,EAAS;EnGk0VxB;ImGj0VM,cAAY,EAAS;EnGm0V3B;ImGp0VM,WAAS,EAAS;EnGs0VxB;ImGr0VM,cAAY,EAAS;EnGu0V3B;ImGx0VM,WAAS,EAAS;EnG00VxB;ImGz0VM,cAAY,EAAS;EnG20V3B;ImG50VM,WAAS,EAAS;EnG80VxB;ImG70VM,cAAY,EAAS;EnG+0V3B;ImGh1VM,WAAS,EAAS;EnGk1VxB;ImGj1VM,cAAY,EAAS;EnGm1V3B;ImGp1VM,WAAS,EAAS;EnGs1VxB;ImGr1VM,cAAY,EAAS;EnGu1V3B;ImGx1VM,WAAS,EAAS;EnG01VxB;ImGz1VM,cAAY,EAAS;EnG21V3B;ImG51VM,WAAS,EAAS;EnG81VxB;ImG71VM,cAAY,EAAS;EnG+1V3B;ImGh2VM,WAAS,EAAS;EnGk2VxB;ImGj2VM,cAAY,EAAS;EnGm2V3B;ImGp2VM,WAAS,EAAS;EnGs2VxB;ImGr2VM,cAAY,EAAS;EnGu2V3B;ImGx2VM,WAAS,EAAS;EnG02VxB;ImGz2VM,cAAY,EAAS;EnG22V3B;ImG52VM,WAAS,EAAS;EnG82VxB;ImG72VM,cAAY,EAAS;EnG+2V3B;ImGh3VM,WAAS,EAAS;EnGk3VxB;ImGj3VM,cAAY,EAAS;EnGm3V3B;ImGp3VM,WAAS,EAAS;EnGs3VxB;ImGr3VM,cAAY,EAAS;EnGu3V3B;ImGx3VM,WAAS,EAAS;EnG03VxB;ImGz3VM,cAAY,EAAS;EnG23V3B;ImG53VM,WAAS,EAAS;EnG83VxB;ImG73VM,cAAY,EAAS;EnG+3V3B;ImGh4VM,WAAS,EAAS;EnGk4VxB;ImGj4VM,cAAY,EAAS;EnGm4V3B;ImGp4VM,WAAS,EAAS;EnGs4VxB;ImGr4VM,cAAY,EAAS;EnGu4V3B;ImGx4VM,WAAS,EAAS;EnG04VxB;ImGz4VM,cAAY,EAAS;EnG24V3B;ImG54VM,WAAS,EAAS;EnG84VxB;ImG74VM,cAAY,EAAS;EnG+4V3B;ImGh5VM,WAAS,EAAS;EnGk5VxB;ImGj5VM,cAAY,EAAS;EnGm5V3B;ImGp5VM,WAAS,EAAS;EnGs5VxB;ImGr5VM,cAAY,EAAS;EnGu5V3B;ImGx5VM,WAAS,EAAS;EnG05VxB;ImGz5VM,cAAY,EAAS;EnG25V3B;ImG55VM,WAAS,EAAS;EnG85VxB;ImG75VM,cAAY,EAAS;EnG+5V3B;ImGh6VM,WAAS,EAAS;EnGk6VxB;ImGj6VM,cAAY,EAAS;EnGm6V3B;ImGp6VM,WAAS,EAAS;EnGs6VxB;ImGr6VM,cAAY,EAAS;EnGu6V3B;ImGx6VM,WAAS,EAAS;EnG06VxB;ImGz6VM,cAAY,EAAS;EnG26V3B;ImG56VM,WAAS,EAAS;EnG86VxB;ImG76VM,cAAY,EAAS;EnG+6V3B;ImGh7VM,WAAS,EAAS;EnGk7VxB;ImGj7VM,cAAY,EAAS;EnGm7V3B;ImGp7VM,WAAS,EAAS;EnGs7VxB;ImGr7VM,cAAY,EAAS;EnGu7V3B;ImGx7VM,WAAS,EAAS;EnG07VxB;ImGz7VM,cAAY,EAAS;EnG27V3B;ImG57VM,WAAS,EAAS;EnG87VxB;ImG77VM,cAAY,EAAS;EnG+7V3B;ImGh8VM,WAAS,EAAS;EnGk8VxB;ImGj8VM,cAAY,EAAS;EnGm8V3B;ImGp8VM,WAAS,EAAS;EnGs8VxB;ImGr8VM,cAAY,EAAS;EnGu8V3B;ImGx8VM,WAAS,EAAS;EnG08VxB;ImGz8VM,cAAY,EAAS;EnG28V3B;ImG58VM,WAAS,EAAS;EnG88VxB;ImG78VM,cAAY,EAAS;EnG+8V3B;ImGh9VM,WAAS,EAAS;EnGk9VxB;ImGj9VM,cAAY,EAAS;EnGm9V3B;ImGp9VM,WAAS,EAAS;EnGs9VxB;ImGr9VM,cAAY,EAAS;EnGu9V3B;ImGx9VM,WAAS,EAAS;EnG09VxB;ImGz9VM,cAAY,EAAS;EnG29V3B;ImG59VM,WAAS,EAAS;EnG89VxB;ImG79VM,cAAY,EAAS;EnG+9V3B;ImGh+VM,WAAS,EAAS;EnGk+VxB;ImGj+VM,cAAY,EAAS;EnGm+V3B;ImGp+VM,WAAS,EAAS;EnGs+VxB;ImGr+VM,cAAY,EAAS;EnGu+V3B;ImGx+VM,WAAS,EAAS;EnG0+VxB;ImGz+VM,cAAY,EAAS;EnG2+V3B;ImG5+VM,WAAS,EAAS;EnG8+VxB;ImG7+VM,cAAY,EAAS;EnG++V3B;ImGh/VM,WAAS,EAAS;EnGk/VxB;ImGj/VM,cAAY,EAAS;EnGm/V3B;ImGp/VM,WAAS,EAAS;EnGs/VxB;ImGr/VM,cAAY,EAAS;EnGu/V3B;ImGx/VM,WAAS,EAAS;EnG0/VxB;ImGz/VM,cAAY,EAAS;EnG2/V3B;ImG5/VM,WAAS,EAAS;EnG8/VxB;ImG7/VM,cAAY,EAAS;EnG+/V3B;ImGhgWM,WAAS,EAAS;EnGkgWxB;ImGjgWM,cAAY,EAAS;EnGmgW3B;ImGpgWM,WAAS,EAAS;EnGsgWxB;ImGrgWM,cAAY,EAAS;EnGugW3B;ImGxgWM,WAAS,EAAS;EnG0gWxB;ImGzgWM,cAAY,EAAS;EnG2gW3B;ImG5gWM,WAAS,EAAS;EnG8gWxB;ImG7gWM,cAAY,EAAS;EnG+gW3B;ImGhhWM,WAAS,EAAS;EnGkhWxB;ImGjhWM,cAAY,EAAS;EnGmhW3B;ImGphWM,WAAS,EAAS;EnGshWxB;ImGrhWM,cAAY,EAAS;EnGuhW3B;ImGxhWM,WAAS,EAAS;EnG0hWxB;ImGzhWM,cAAY,EAAS;EnG2hW3B;ImG5hWM,WAAS,EAAS;EnG8hWxB;ImG7hWM,cAAY,EAAS;EnG+hW3B;ImGhiWM,WAAS,EAAS;EnGkiWxB;ImGjiWM,cAAY,EAAS;EnGmiW3B;ImGpiWM,WAAS,EAAS;EnGsiWxB;ImGriWM,cAAY,EAAS;EnGuiW3B;ImGliWI,yBAAiB;YAAjB,iBAAiB,EAClB;EnGmiWH;ImGhiWI,WAAW;IACX,SAlPW;IAmPX,UAnPW,EAoPZ;EnGiiWH;ImG9hWI,sJAA2C;IAA3C,8IAA2C;IAK3C,aAAa,EACd;EnG2hWH;ImGvhWM,SAAS;IACT,YAAY,EACb;EnGwhWL;ImGphWI,iBAAiB,EAClB;EnGqhWH;ImGlhWG,gBxFhIC,EwFiID;EnGmhWH;ImGhhWI,aAAa,EACd;EnGihWH;ImG9gWI,iBxF7Ea,EwF8Ed;EnG+gWH;ImG3gWM,6BAvRU;IAwRV,gCAxRU,EAyRX;EnG4gWL;ImGpgWQ,eAAe;IACf,kBAAkB,EACnB;EnGqgWP;ImGngWQ,eAAe;IACf,kBAAkB,EACnB;EnGogWP;ImG9/VM,cAAc;IACd,mBAAmB,EACpB;EnG+/VL;ImG5/VM,UAAU;IACV,WAAW;IACX,YAAY;IACZ,iBAAiB,EAClB;EnG6/VL;ImG1/VM,OAAO,EAKR;InGu/VH;MmG1/VM,SAAS;MACT,UAAU,EACX;EnG2/VP;ImGv/VM,UAAU,EAIX;InGq/VH;MmGv/VM,aAAa,EACd;EnGw/VP;ImGp/VM,SAAS;IACT,YAAY;IACZ,WAAW;IACX,iBAAiB,EAClB;EnGq/VL;ImGl/VM,UAhVS,EAqVV;InG++VH;MmGl/VM,UAAU;MACV,WAAW,EACZ;EnGm/VP;ImG/+VM,WAxVS,EA4VV;InG6+VH;MmG/+VM,YAAY,EACb;EnGg/VP;ImG3+VI,wBAAwB;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,sBAAsB;IACtB,YAAY;IACZ,mBAAmB;IACnB,WAAW,EACZ;EnG4+VH;;ImGt+VI,mBAAmB;IACnB,YAAY;IACZ,yBAAyB;IACzB,aAAa;IACb,UAAU;IACV,YAAY;IACZ,mBAAmB,EACpB;EnGw+VH;ImGr+VI,WAAW,EACZ;EnGs+VH;ImGn+VI,cAAc,EACf;;AnGq+VL;EmGh+VI,erGpUyF;EqGqUzF,gB9FtWgC;E8FuWhC,iBxF9Le;EwF+Lf,iBAAiB;EACjB,iB9FzWgC;E8F0WhC,kBAAkB;EAClB,kBAAkB,EACnB;;AnGk+VH;EmG59VM,oBAAY;EAAZ,oBAAY;MAAZ,gBAAY;UAAZ,YAAY;EACZ,mBAAmB,EACpB;;AnG89VL;EmG39VM,gCrGtVuB;EqGuVvB,iCrGvVuB;EqGwVvB,eAAe;EACf,0BAAkB;KAAlB,uBAAkB;MAAlB,sBAAkB;UAAlB,kBAAkB,EA0BnB;EnGm8VH;ImG19VM,0BrG5Va,EqGiWd;InGu9VH;;MmGz9VM,0BAA+B,EAChC;EnG29VP;ImGr9VU,mBAAmB;IACnB,YAAY;IACZ,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,gBxF/RN;IwFgSM,iBxFhSN;IwFiSM,kBxFjSN;IwFkSM,mBAAmB,EACpB;;AnGu9VX;EmGl9VM,8BAA8B;EAC9B,aAAa;EACb,iBAAiB;EACjB,iBAAiB,EAClB;;AnGo9VL;EmGl9VM,mBAAmB;EACnB,gBAAgB;EAChB,WA3bW;EA4bX,iBAAiB,EAwBlB;EnG47VH;ImGl9VM,mBAAmB;IACnB,OAAO;IACP,QAAQ;IACR,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,iBArcS;IAscT,kBAtcS,EAmdV;InGu8VH;MmGl9VM,gBAxcO;MAycP,gBAAgB;MAChB,4BAzcQ;MA0cR,+BA1cQ,EA2cT;InGm9VL;MmGj9VM,iBA9cO;MA+cP,iBAAiB;MACjB,6BA/cQ;MAgdR,gCAhdQ,EAidT;;AnGm9VT;EmG78VI,eAAe;EACf,YAAY,EACb;;AnG+8VH;EmG58VI,kCrGtZU,EqGuZX;;AnG88VH;EmG38VI,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT,UAAU;EACV,YAAY;EACZ,cAAc;EACd,iBAAiB;EACjB,kBxF7VE,EwF8VH;;AnG68VH;EmG18VI,mBAAmB;EACnB,OAAO;EACP,UAAU;EACV,QAAQ;EACR,SAAS;EACT,aAAa;EACb,iBAAiB;EAAE,0BAA0B;EAC7C,YAAY,EACb;;AAGH,sBAAsB;AACtB;EACE,iBAAiB;EACjB,iBAAiB,EAgElB;EAlED;IAII,mBAAmB,EACpB;EALH;IAOI,oBAAoB;IACpB,oBAAoB;IACpB,eAAe,EAQhB;IAjBH;MAWM,iBAAiB,EAKlB;MAhBL;QAcQ,2BAAqB;QAArB,6BAAqB;YAArB,wBAAqB;gBAArB,qBAAqB,EACtB;EAfP;IAmBI,gBAAgB;IAChB,iBAAiB,EAYlB;IAhCH;MAsBM,0BAA0B,EAC3B;IAvBL;MA6BM,gB9FhfwB;M8FifxB,mB9FjfwB,E8FkfzB;EA/BL;IAmCI,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,aAAa,EACd;EAvCH;IAyCI,eAAe,EAChB;EA1CH;IA4CI,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,+BrGheU;IqGieV,gBAAgB;IAChB,iBAAiB;IACjB,0BAAkB;QAAlB,sBAAkB;YAAlB,kBAAkB;IAClB,oBAAa;IAAb,qBAAa;QAAb,qBAAa;YAAb,aAAa;IACb,yBAAiB;QAAjB,8BAAiB;YAAjB,iBAAiB;IACjB,2BAAqB;IAArB,6BAAqB;QAArB,wBAAqB;YAArB,qBAAqB,EACtB;EApDH;IAsDI,eAAe;IACf,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,2BAAqB;IAArB,6BAAqB;QAArB,wBAAqB;YAArB,qBAAqB,EAStB;IAjEH;MA0DM,cAAc;MACd,eAAe;MACf,0BrG1eQ,EqG2eT;IA7DL;MA+DM,0BrG/cO,EqGgdR;;AnG07VL;EoG/+WI,mBAAmB;EACnB,U/F4CmB;E+F3CnB,UAAU;EACV,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,iBAAiB,EASlB;EpGw+WD;IoG5+WI,oBAAe;IAAf,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,iBAAiB;IACjB,qBAAqB,EACtB;;A3F6CD;ETk8WF;IoGx+WM,W/FkBoB,E+FjBrB,EAAA;;AClBP;;EAEE,iBAAiB,EAClB;;AAED;EAEI,YAAY,EACb;;AAHH;EAKI,gBAAgB,EACjB;;A5F4CC;E4FlDJ;IASM,iBAAiB,EAClB,EAAA;;ArG2/WL;EqGp+WE,mBAAmB,EAEpB;;AAED;EACE,WhGwGc;EgGvGd,iBhGT0B,EgG0B3B;EAnBD;IAKM,UAAU,EACX;E5FOD;I4FbJ;M7FqHK,kBADc;MAEd,oBAFc;MAEd,yBAFc;UAEd,qBAFc;cAEd,iBAFc;M6F1Gf,iBhGjBwB,EgG0B3B,EAAA;E5FNG;I4FbJ;M7FqHK,gBADc;MAEd,oBAFc;MAEd,uBAFc;UAEd,mBAFc;cAEd,eAFc,E6FjGlB,EAAA;E5FNG;I4FbJ;MAgBI,YAAY;MACZ,gBAAgB,EAEnB,EAAA;;AAED;EACE,WhGmFc;EgGjFd,iBAAiB;EAmGjB,4BAAoB;UAApB,oBAAoB,EAwBrB;EA9HD;IAKI,iBAAiB,EAClB;E5FdC;I4FQJ;M7FgGK,kBADc;MAEd,oBAFc;MAEd,yBAFc;UAEd,qBAFc;cAEd,iBAFc;M6FrFf,UAAU,EAoHb,EAAA;E5FtIG;I4FQJ;MAaI,oBAAe;MAAf,uBAAe;UAAf,mBAAe;cAAf,eAAe;MACf,UAAU,EAgHb,EAAA;E5FtIG;I4FQJ;MAoBM,iBAAiB,EAClB;IArBL;MAuBM,mBAAmB;MACnB,UhGpDsB;MgGqDtB,QAAQ;MACR,SAAS;MACT,UAAU;MACV,gBAAgB;MAChB,iBAAiB,EAoBlB,EAAA;E5FzDD;I4FQJ;MAgEI,eAAe;MACf,yCAAyC;MACzC,mBAAmB;MAEnB,OAAO;MACP,UAAU;MACV,QAAQ;MACR,SAAS;MACT,YhGWgB;MgGVhB,iCAAqB;UAArB,6BAAqB;cAArB,yBAAqB;MACrB,4DhGwB4C;cgGxB5C,oDhGwB4C,EgG4B/C;MA9HD;QA4EM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EACtB;MA7EL;QA+EM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EACtB;MAhFL;QAkFM,oCAAqB;YAArB,gCAAqB;gBAArB,4BAAqB,EAItB;QAtFL;UAoFQ,iCAAqB;cAArB,6BAAqB;kBAArB,yBAAqB,EACtB;MArFP;QAwFM,mBAAmB;QACnB,OAAO;QACP,UAAU;QACV,QAAQ;QACR,SAAS;QACT,mBAAmB,EACpB;MA9FL;QAgGM,aAAa;QACb,UAAU,EACX,EAAA;EAlGL;IAwGI,qCAA6B;YAA7B,6BAA6B;IAC7B,2CAA2B;YAA3B,2BAA2B;IAC3B,QAAQ;IACR,YAAY;IACZ,aAAa;IACb,mBAAmB,EAgBpB;IA7HH;MA+GM,mCAAkB;cAAlB,2BAAkB,EACnB;IAhHL;MAkHM,oCAA4B;cAA5B,4BAA4B;MAC5B,mBAAmB;MACnB,YAAY;MACZ,aAAa,EACd;IAtHL;MAwHM,iCAAkB;cAAlB,yBAAkB,EACnB;IAzHL;MA2HM,mCAAkB;cAAlB,2BAAkB,EACnB;;AC/LL;EACE,mBjGiC4B;EiGhC5B,oBjGgC4B,EiGtB7B;EAZD;IAII,mBjG8B0B,EiG7B3B;EALH;IAOI,oBjG2B0B,EiG1B3B;EARH;IAUI,kBjGwB0B,EiGvB3B;;AAGH;EACE,8CAAqB;EACrB,yBAAyB;EACzB,6BAA6B;EAC7B,aAAS;EACT,iBAAa;EAEb,oCAAqB;MAArB,gCAAqB;UAArB,4BAAqB,EACtB;;AAED;EACE,mBAAmB;EACnB,OAAO;EACP,UAAU;EACV,WAAW,EACZ","file":"styles.css"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.js b/UI/WebServerResources/js/Administration.js index 45b45991b..6e98a241c 100644 --- a/UI/WebServerResources/js/Administration.js +++ b/UI/WebServerResources/js/Administration.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("administration",{"abstract":!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:stateUser,stateFolder:stateFolder}}),$urlRouterProvider.otherwise("/rights")}function stateUser($q,$stateParams,User){var user;return user=_.find(User.$users,function(user){return user.uid==$stateParams.userId}),angular.isUndefined(user)?User.$filter($stateParams.userId).then(function(users){return user=_.find(User.$users,function(user){return user.uid==$stateParams.userId}),angular.isUndefined(user)?$q.reject("User with ID "+$stateParams.userId+" not found"):user.$folders().then(function(){return user})}):user}function stateFolder($state,$stateParams,decodeUriFilter,stateUser,AddressBook,Calendar){var folder,o,folderId=decodeUriFilter($stateParams.folderId);return folder=_.find(stateUser.$$folders,function(folder){return folder.name==folderId}),o="Appointment"==folder.type?new Calendar({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName}):new AddressBook({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName}),stateUser.selectedFolder=o.id,o}function runBlock($log,$rootScope,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("administration.rights")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.AdministrationUI",["ngSanitize","ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateUser.$inject=["$q","$stateParams","User"],stateFolder.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],runBlock.$inject=["$log","$rootScope","$state"]}(),function(){"use strict";function AdministrationAclController($animate,$state,$mdToast,stateUser,stateFolder,User){function getTemplate(){return angular.isDefined(stateFolder.$cards)?"../"+stateFolder.owner+"/Contacts/"+stateFolder.id+"/UIxContactsUserRightsEditor":"../"+stateFolder.owner+"/Calendar/"+stateFolder.id+"/UIxCalUserRightsEditor"}function selectUser(user){vm.selectedUid==user.uid?vm.selectedUid=null:(vm.selectedUid=user.uid,vm.selectedUser=user,vm.selectedUser.$rights())}function userFilter($query){return User.$filter($query,stateFolder.$acl.users,{dry:!0})}function removeUser(user){stateFolder.$acl.$removeUser(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&stateFolder.$acl.$addUser(data,stateFolder.owner).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}function close(){$state.go("administration.rights").then(function(){delete vm.user.selectedFolder,vm.user=null})}function save(){stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function(){$mdToast.show($mdToast.simple().content(l("ACLs saved")).position("top right").hideDelay(3e3))},function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}var vm=this;vm.user=stateUser,vm.folder=stateFolder,vm.folderType=angular.isDefined(stateFolder.$cards)?"AddressBook":"Calendar",vm.selectedUser=null,vm.selectedUid=null,vm.selectUser=selectUser,vm.removeUser=removeUser,vm.getTemplate=getTemplate,vm.close=close,vm.save=save,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.addUser=addUser,stateFolder.$acl.$users(stateFolder.owner).then(function(data){vm.users=data})}AdministrationAclController.$inject=["$animate","$state","$mdToast","stateUser","stateFolder","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",AdministrationAclController)}(),function(){"use strict";function AdministrationController($state,$mdDialog,$mdToast,Dialog,encodeUriFilter,User,Administration){function go(module){$state.go("administration."+module)}function filter(searchText){User.$filter(searchText)}function selectUser(i){vm.selectedUser==vm.users[i]?vm.selectedUser=null:vm.users[i].$folders().then(function(){vm.selectedUser=vm.users[i]})}function selectFolder(folder){$state.go("administration.rights.edit",{userId:vm.selectedUser.uid,folderId:encodeUriFilter(folder.name)})}var vm=this;vm.administration=Administration,vm.selectedUser=null,vm.users=User.$users,vm.go=go,vm.filter=filter,vm.selectUser=selectUser,vm.selectFolder=selectFolder}AdministrationController.$inject=["$state","$mdDialog","$mdToast","Dialog","encodeUriFilter","User","Administration"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",AdministrationController)}(); +(function(){"use strict";angular.module("SOGo.AdministrationUI",["ngSanitize","ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(configure).run(runBlock);configure.$inject=["$stateProvider","$urlRouterProvider"];function configure($stateProvider,$urlRouterProvider){$stateProvider.state("administration",{"abstract":true,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:stateUser,stateFolder:stateFolder}});$urlRouterProvider.otherwise("/rights")}stateUser.$inject=["$q","$stateParams","User"];function stateUser($q,$stateParams,User){var user;user=_.find(User.$users,function(user){return user.uid==$stateParams.userId});if(angular.isUndefined(user)){return User.$filter($stateParams.userId).then(function(users){user=_.find(User.$users,function(user){return user.uid==$stateParams.userId});if(angular.isUndefined(user)){return $q.reject("User with ID "+$stateParams.userId+" not found")}else{return user.$folders().then(function(){return user})}return user})}return user}stateFolder.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"];function stateFolder($state,$stateParams,decodeUriFilter,stateUser,AddressBook,Calendar){var folder,o,folderId=decodeUriFilter($stateParams.folderId);folder=_.find(stateUser.$$folders,function(folder){return folder.name==folderId});if(folder.type=="Appointment"){o=new Calendar({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName})}else{o=new AddressBook({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName})}stateUser.selectedFolder=o.id;return o}runBlock.$inject=["$log","$rootScope","$state"];function runBlock($log,$rootScope,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error);$state.go("administration.rights")});$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}})();(function(){"use strict";AdministrationAclController.$inject=["$animate","$state","$mdToast","stateUser","stateFolder","User"];function AdministrationAclController($animate,$state,$mdToast,stateUser,stateFolder,User){var vm=this;vm.user=stateUser;vm.folder=stateFolder;vm.folderType=angular.isDefined(stateFolder.$cards)?"AddressBook":"Calendar";vm.selectedUser=null;vm.selectedUid=null;vm.selectUser=selectUser;vm.removeUser=removeUser;vm.getTemplate=getTemplate;vm.close=close;vm.save=save;vm.userToAdd="";vm.searchText="";vm.userFilter=userFilter;vm.addUser=addUser;stateFolder.$acl.$users(stateFolder.owner).then(function(data){vm.users=data});function getTemplate(){if(angular.isDefined(stateFolder.$cards))return"../"+stateFolder.owner+"/Contacts/"+stateFolder.id+"/UIxContactsUserRightsEditor";return"../"+stateFolder.owner+"/Calendar/"+stateFolder.id+"/UIxCalUserRightsEditor"}function selectUser(user){if(vm.selectedUid==user.uid){vm.selectedUid=null}else{vm.selectedUid=user.uid;vm.selectedUser=user;vm.selectedUser.$rights()}}function userFilter($query){return User.$filter($query,stateFolder.$acl.users,{dry:true})}function removeUser(user){stateFolder.$acl.$removeUser(user.uid).catch(function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){if(data){stateFolder.$acl.$addUser(data,stateFolder.owner).then(function(){vm.userToAdd="";vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}}function close(){$state.go("administration.rights").then(function(){delete vm.user.selectedFolder;vm.user=null})}function save(){stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function(){$mdToast.show($mdToast.simple().content(l("ACLs saved")).position("top right").hideDelay(3e3))},function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}}angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",AdministrationAclController)})();(function(){"use strict";AdministrationController.$inject=["$state","$mdToast","Dialog","encodeUriFilter","User"];function AdministrationController($state,$mdToast,Dialog,encodeUriFilter,User){var vm=this;vm.service=User;vm.selectedUser=null;vm.users=User.$users;vm.go=go;vm.filter=filter;vm.selectUser=selectUser;vm.selectFolder=selectFolder;function go(module){$state.go("administration."+module)}function filter(searchText){User.$filter(searchText)}function selectUser(i){if(vm.selectedUser==vm.users[i]){vm.selectedUser=null}else{vm.users[i].$folders().then(function(){vm.selectedUser=vm.users[i]})}}function selectFolder(folder){$state.go("administration.rights.edit",{userId:vm.selectedUser.uid,folderId:encodeUriFilter(folder.name)})}}angular.module("SOGo.AdministrationUI").controller("AdministrationController",AdministrationController)})(); //# sourceMappingURL=Administration.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.js.map b/UI/WebServerResources/js/Administration.js.map index 4f6d38551..a49f278b1 100644 --- a/UI/WebServerResources/js/Administration.js.map +++ b/UI/WebServerResources/js/Administration.js.map @@ -1 +1 @@ -{"version":3,"file":"Administration.js","sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folder","o","folderId","$$folders","name","type","id","split","pop","owner","displayName","selectedFolder","runBlock","$log","$rootScope","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","config","run","$inject","AdministrationAclController","$animate","$mdToast","getTemplate","isDefined","$cards","selectUser","vm","selectedUid","selectedUser","$rights","userFilter","$query","$acl","dry","removeUser","$removeUser","data","status","Dialog","alert","l","addUser","$addUser","userToAdd","searchText","close","save","$saveUsersRights","show","simple","content","position","hideDelay","this","folderType","AdministrationController","$mdDialog","encodeUriFilter","Administration","filter","i","selectFolder"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.AdministrationUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.Authentication', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.SchedulerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('administration', {\n abstract: true,\n views: {\n administration: {\n templateUrl: 'administration.html',\n controller: 'AdministrationController',\n controllerAs: 'app'\n }\n }\n })\n .state('administration.rights', {\n url: '/rights',\n views: {\n module: {\n templateUrl: 'rights.html'\n }\n }\n })\n .state('administration.rights.edit', {\n url: '/:userId/:folderId/edit',\n views: {\n acl: {\n templateUrl: 'UIxAdministrationAclEditor', // UI/Templates/Administration/UIxAdministrationAclEditor.wox\n controller: 'AdministrationAclController',\n controllerAs: 'acl'\n }\n },\n resolve: {\n stateUser: stateUser,\n stateFolder: stateFolder\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/rights');\n }\n\n /**\n * @ngInject\n */\n stateUser.$inject = ['$q', '$stateParams', 'User'];\n function stateUser($q, $stateParams, User) {\n var user;\n\n user = _.find(User.$users, function(user) {\n return user.uid == $stateParams.userId;\n });\n\n if (angular.isUndefined(user)) {\n return User.$filter($stateParams.userId).then(function(users) {\n user = _.find(User.$users, function(user) {\n return user.uid == $stateParams.userId;\n });\n if (angular.isUndefined(user)) {\n return $q.reject('User with ID ' + $stateParams.userId + ' not found');\n }\n else {\n // Resolve folders\n return user.$folders().then(function() {\n return user;\n });\n }\n return user;\n });\n }\n\n return user;\n }\n\n /**\n * @ngInject\n */\n stateFolder.$inject = ['$state', '$stateParams', 'decodeUriFilter', 'stateUser', 'AddressBook', 'Calendar'];\n function stateFolder($state, $stateParams, decodeUriFilter, stateUser, AddressBook, Calendar) {\n var folder, o,\n folderId = decodeUriFilter($stateParams.folderId);\n\n folder = _.find(stateUser.$$folders, function(folder) {\n return folder.name == folderId;\n });\n \n if (folder.type == \"Appointment\") {\n o = new Calendar({ id: folder.name.split('/').pop(),\n owner: folder.owner,\n name: folder.displayName });\n } else {\n o = new AddressBook({ id: folder.name.split('/').pop(),\n owner: folder.owner,\n name: folder.displayName });\n }\n\n stateUser.selectedFolder = o.id;\n\n return o;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$log', '$rootScope', '$state'];\n function runBlock($log, $rootScope, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('administration.rights');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n AdministrationAclController.$inject = ['$animate', '$state', '$mdToast', 'stateUser', 'stateFolder', 'User'];\n function AdministrationAclController($animate, $state, $mdToast, stateUser, stateFolder, User) {\n var vm = this;\n\n vm.user = stateUser;\n vm.folder = stateFolder;\n vm.folderType = angular.isDefined(stateFolder.$cards)? 'AddressBook' : 'Calendar';\n vm.selectedUser = null;\n vm.selectedUid = null;\n vm.selectUser = selectUser;\n vm.removeUser = removeUser;\n vm.getTemplate = getTemplate;\n vm.close = close;\n vm.save = save;\n\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.addUser = addUser;\n\n stateFolder.$acl.$users(stateFolder.owner).then(function(data) {\n vm.users = data;\n });\n\n function getTemplate() {\n if (angular.isDefined(stateFolder.$cards))\n return '../' + stateFolder.owner + '/Contacts/' + stateFolder.id + '/UIxContactsUserRightsEditor';\n\n return '../' + stateFolder.owner + '/Calendar/' + stateFolder.id + '/UIxCalUserRightsEditor';\n }\n\n function selectUser(user) {\n if (vm.selectedUid == user.uid) {\n vm.selectedUid = null;\n }\n else {\n vm.selectedUid = user.uid;\n vm.selectedUser = user;\n vm.selectedUser.$rights();\n }\n }\n\n function userFilter($query) {\n return User.$filter($query, stateFolder.$acl.users, { dry: true });\n }\n\n function removeUser(user) {\n stateFolder.$acl.$removeUser(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n stateFolder.$acl.$addUser(data, stateFolder.owner).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n\n function close() {\n $state.go('administration.rights').then(function() {\n delete vm.user.selectedFolder;\n vm.user = null;\n });\n }\n\n function save() {\n stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function() {\n $mdToast.show(\n $mdToast.simple()\n .content(l('ACLs saved'))\n .position('top right')\n .hideDelay(3000)\n );\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n }\n\n angular\n .module('SOGo.AdministrationUI')\n .controller('AdministrationAclController', AdministrationAclController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n AdministrationController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'encodeUriFilter', 'User', 'Administration'];\n function AdministrationController($state, $mdDialog, $mdToast, Dialog, encodeUriFilter, User, Administration) {\n var vm = this;\n\n vm.administration = Administration;\n\n vm.selectedUser = null;\n vm.users = User.$users;\n\n vm.go = go;\n vm.filter = filter;\n vm.selectUser = selectUser;\n vm.selectFolder = selectFolder;\n\n function go(module) {\n $state.go('administration.' + module);\n }\n\n function filter(searchText) {\n User.$filter(searchText);\n }\n\n function selectUser(i) {\n if (vm.selectedUser == vm.users[i]) {\n vm.selectedUser = null;\n }\n else {\n // Fetch folders of specific type for selected user\n vm.users[i].$folders().then(function() {\n vm.selectedUser = vm.users[i];\n });\n }\n }\n\n function selectFolder(folder) {\n $state.go('administration.rights.edit', {userId: vm.selectedUser.uid, folderId: encodeUriFilter(folder.name)});\n }\n\n }\n\n angular\n .module('SOGo.AdministrationUI')\n .controller('AdministrationController', AdministrationController);\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js"],"names":["angular","module","config","configure","run","runBlock","$inject","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","acl","resolve","stateUser","stateFolder","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folder","o","folderId","$$folders","name","type","id","split","pop","owner","displayName","selectedFolder","$log","$rootScope","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","AdministrationAclController","$animate","$mdToast","vm","this","folderType","isDefined","$cards","selectedUser","selectedUid","selectUser","removeUser","getTemplate","close","save","userToAdd","searchText","userFilter","addUser","$acl","data","$rights","$query","dry","$removeUser","catch","status","Dialog","alert","l","$addUser","$saveUsersRights","show","simple","content","position","hideDelay","AdministrationController","encodeUriFilter","service","filter","selectFolder","i"],"mappings":"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","file":"Administration.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.services.js b/UI/WebServerResources/js/Administration.services.js index b33cc4ec7..a6871ac22 100644 --- a/UI/WebServerResources/js/Administration.services.js +++ b/UI/WebServerResources/js/Administration.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function Administration(){}Administration.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function($q,$timeout,$log,Settings,Resource,User){return angular.extend(Administration,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),activeUser:Settings.activeUser(),$User:User}),new Administration}];try{angular.module("SOGo.AdministrationUI")}catch(e){angular.module("SOGo.AdministrationUI",["SOGo.Common"])}angular.module("SOGo.AdministrationUI").factory("Administration",Administration.$factory)}(); +(function(){"use strict";function Administration(){}Administration.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function($q,$timeout,$log,Settings,Resource,User){angular.extend(Administration,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),activeUser:Settings.activeUser(),$User:User});return new Administration}];try{angular.module("SOGo.AdministrationUI")}catch(e){angular.module("SOGo.AdministrationUI",["SOGo.Common"])}angular.module("SOGo.AdministrationUI").factory("Administration",Administration.$factory)})(); //# sourceMappingURL=Administration.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.services.js.map b/UI/WebServerResources/js/Administration.services.js.map index a7276d414..6a49b7680 100644 --- a/UI/WebServerResources/js/Administration.services.js.map +++ b/UI/WebServerResources/js/Administration.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Administration.services.js","sources":["Administration/Administration.service.js"],"names":["Administration","$factory","$q","$timeout","$log","Settings","Resource","User","angular","extend","$$resource","activeUser","$User","module","e","factory"],"mappings":"CAEA,WACE,YAMA,SAASA,mBASTA,eAAeC,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,OAAQ,SAASC,GAAIC,SAAUC,KAAMC,SAAUC,SAAUC,MAUtI,MATAC,SAAQC,OAAOT,gBACbE,GAAIA,GACJC,SAAUA,SACVC,KAAMA,KACNM,WAAY,GAAIJ,UAASD,SAASM,WAAW,aAAcN,SAASM,cACpEA,WAAYN,SAASM,aACrBC,MAAOL,OAGF,GAAIP,iBAIb,KACEQ,QAAQK,OAAO,yBAEjB,MAAMC,GACJN,QAAQK,OAAO,yBAA0B,gBAI3CL,QAAQK,OAAO,yBACZE,QAAQ,iBAAkBf,eAAeC","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Administration\n * @constructor\n */\n function Administration() {\n\n }\n\n /**\n * @memberof Administration\n * @desc The factory we'll use to register with Angular\n * @returns the Administration constructor\n */\n Administration.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'User', function($q, $timeout, $log, Settings, Resource, User) {\n angular.extend(Administration, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n activeUser: Settings.activeUser(),\n $User: User\n });\n\n return new Administration(); // return unique instance\n }];\n\n /* Initialize module if necessary */\n try {\n angular.module('SOGo.AdministrationUI');\n }\n catch(e) {\n angular.module('SOGo.AdministrationUI', ['SOGo.Common']);\n }\n\n /* Factory registration in Angular module */\n angular.module('SOGo.AdministrationUI')\n .factory('Administration', Administration.$factory);\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Administration/Administration.service.js"],"names":["Administration","$factory","$q","$timeout","$log","Settings","Resource","User","angular","extend","$$resource","activeUser","$User","module","e","factory"],"mappings":"CAEA,WACE,YAMA,SAASA,mBASTA,eAAeC,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,OAAQ,SAASC,GAAIC,SAAUC,KAAMC,SAAUC,SAAUC,MACtIC,QAAQC,OAAOT,gBACbE,GAAIA,GACJC,SAAUA,SACVC,KAAMA,KACNM,WAAY,GAAIJ,UAASD,SAASM,WAAW,aAAcN,SAASM,cACpEA,WAAYN,SAASM,aACrBC,MAAOL,MAGT,OAAO,IAAIP,iBAIb,KACEQ,QAAQK,OAAO,yBAEjB,MAAMC,GACJN,QAAQK,OAAO,yBAA0B,gBAI3CL,QAAQK,OAAO,yBACZE,QAAQ,iBAAkBf,eAAeC","file":"Administration.services.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index 0d50ecfd9..081394a4e 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,4 +1,4 @@ -function l(){var key=arguments[0],value=key;labels[key]?value=labels[key]:clabels[key]&&(value=clabels[key]);for(var i=1,j=0;i0;)customSheet.deleteRule(0);angular.forEach(_$mdThemingProvider._THEMES,function(theme,themeName){addRule(fgDefault,bgDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-2"]],"hue-2"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-3"]],"hue-3"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-1"]],"hue-1"),addBorderRule(bdrDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),angular.forEach(theme.colors,function(color,paletteName){addRule(fgColor,bgColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addBorderRule(bdrColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-2"]],"hue-2"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-3"]],"hue-3"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-1"]],"hue-1")})})}var _$mdThemingProvider;angular.module("mdColors",["ngMaterial"]).config(configure).run(runBlock),configure.$inject=["$mdThemingProvider"],runBlock.$inject=["$interpolate","$document","$log"]}(),function(){"use strict";function decodeUri($window){return $window.decodeURIComponent}decodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("decodeUri",decodeUri)}(),function(){"use strict";function encodeUri($window){return $window.encodeURIComponent}encodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("encodeUri",encodeUri)}(),function(){"use strict";function ensureTarget($sce){return function(element){var tree=angular.element("
"+element+"
");return tree.find("a").attr("target","_blank"),$sce.trustAs("html",tree.html())}}ensureTarget.$inject=["$sce"],angular.module("SOGo.Common").filter("ensureTarget",ensureTarget)}(),function(){"use strict";function loc(){return l}angular.module("SOGo.Common").filter("loc",loc)}(),function(){"use strict";function range(){return function(n){for(var res=[],i=0;i-1)deferred.resolve();else{var acls;acls=angular.isDefined(owner)?Acl.$$resource.userResource(owner).fetch(this.folderId,"addUserInAcls",param):Acl.$$resource.fetch(this.folderId,"addUserInAcls",param),acls.then(function(){user.wasSubscribed=!1,user.userClass=user.isGroup?"normal-group":"normal-user",user.$rights=angular.bind(user,user.$acl,_this.folderId),_this.users.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))})}return deferred.promise},Acl.prototype.$removeUser=function(uid){var _this=this,param={uid:uid};return Acl.$$resource.fetch(this.folderId,"removeUserFromAcls",param).then(function(){var i=_.indexOf(_.pluck(_this.users,"uid"),uid);i>=0&&_this.users.splice(i,1)})},Acl.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(user){user.$resetRights()})},Acl.prototype.$saveUsersRights=function(owner){var _this=this,deferredSave=Acl.$q.defer(),deferredSubscribe=Acl.$q.defer(),param={action:"saveUserRights"},users=[];if(angular.forEach(this.users,function(user){user.$rightsAreDirty()&&users.push(user.$omit())}),users.length){var acls;acls=angular.isDefined(owner)?Acl.$$resource.userResource(owner).save(this.folderId,users,param):Acl.$$resource.save(this.folderId,users,param),acls.then(function(){angular.forEach(_this.users,function(user){user.$rightsAreDirty()&&(user.$shadowRights=angular.copy(user.rights))}),deferredSave.resolve()},deferredSave.reject)}else deferredSave.resolve();return users=[],angular.forEach(this.users,function(user){!user.wasSubscribed&&user.isSubscribed&&users.push(user.uid)}),users.length?(param={uids:users.join(",")},Acl.$$resource.fetch(this.folderId,"subscribeUsers",param).then(function(){angular.forEach(_this.users,function(user){user.wasSubscribed=user.isSubscribed}),deferredSubscribe.resolve()},deferredSubscribe.reject)):deferredSubscribe.resolve(),Acl.$q.all([deferredSave.promise,deferredSubscribe.promise])}}(),function(){"use strict";function Alarm(){this.currentAlarm=null}function AlarmService($timeout,Settings,Resource,$mdToast){return angular.extend(Alarm,{$timeout:$timeout,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$toast:$mdToast}),Alarm}Alarm.getAlarms=function(){var _this=this,now=new Date,browserTime=Math.floor(now.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+browserTime).then(function(data){var alarms=data.alarms.sort(function(a,b){var x=parseInt(a[2]),y=parseInt(b[2]);return y-x});if(alarms.length>0){var next=alarms.pop(),now=new Date,utc=Math.floor(now.getTime()/1e3),url=next[0]+"/"+next[1],alarmTime=parseInt(next[2]),delay=alarmTime;alarmTime>0&&(delay-=utc);var f=(new Date(1e3*alarmTime),angular.bind(_this,Alarm.showAlarm,url));_this.currentAlarm&&_this.$timeout.cancel(_this.currentAlarm),_this.currentAlarm=_this.$timeout(f,1e3*delay)}})},Alarm.showAlarm=function(url){var _this=this;this.$$resource.fetch(url,"?resetAlarm=yes").then(function(data){function AlarmController(scope,$mdToast,url){scope.reminder="10",scope.cancel=function(){$mdToast.hide()},scope.ok=function(){_this.$$resource.fetch(url,"view?snoozeAlarm="+scope.reminder),$mdToast.hide()}}_this.$toast.show({position:"top right",hideDelay:0,template:[""," ",' ",' '," ",l("5 minutes")," "," ",l("10 minutes")," "," ",l("15 minutes")," "," ",l("30 minutes")," "," ",l("45 minutes")," "," ",l("1 hour")," "," ",l("1 day")," "," "," ",' ',l("Cancel")," ",' ',l("Ok")," ",""].join(""),locals:{url:url},controller:AlarmController}),AlarmController.$inject=["scope","$mdToast","url"]})},AlarmService.$inject=["$timeout","sgSettings","Resource","$mdToast"],angular.module("SOGo.Common").factory("Alarm",AlarmService)}(),function(){"use strict";function Authentication(){function readCookie(name){var foundCookie,prefix,pairs,i,currentPair,start;for(foundCookie=null,prefix=name+"=",pairs=document.cookie.split(";"),i=0;!foundCookie&&i0&&(currentPair=currentPair.substr(start)),0===currentPair.indexOf(prefix)&&(foundCookie=currentPair.substr(prefix.length))}return foundCookie}function readLoginCookie(){var value,loginValues=null,cookie=readCookie("0xHIGHFLYxSOGo");return cookie&&cookie.length>8&&(value=decodeURIComponent(cookie.substr(8)),loginValues=value.base64decode().split(":")),loginValues}function redirectUrl(username,domain){var userName,address,baseAddress,altBaseAddress,parts,hostpart,protocol,newAddress;return userName=username,domain&&(userName+="@"+domain.value),address=""+window.location.href,baseAddress=ApplicationBaseURL+"/"+encodeURIComponent(userName),"/"==baseAddress[0]&&(parts=address.split("/"),hostpart=parts[2],protocol=parts[0],baseAddress=protocol+"//"+hostpart+baseAddress),parts=baseAddress.split("/"),parts.splice(0,3),altBaseAddress=parts.join("/"),newAddress=!address.startsWith(baseAddress)&&!address.startsWith(altBaseAddress)||address.endsWith("/logoff")?baseAddress:address}function getService($q,$http,passwordPolicyConfig){var service,_this=this;return service={login:function(data){var language,d=$q.defer(),username=data.username,password=data.password,domain=data.domain,rememberLogin=data.rememberLogin?1:0;return data.loginSuffix&&!username.endsWith(data.loginSuffix)&&(username+=loginSuffix,domain=!1),data.language&&"WONoSelectionString"!=data.language&&(language=data.language),$http({method:"POST",url:"/SOGo/connect",data:{userName:username,password:password,domain:domain,language:language,rememberLogin:rememberLogin}}).success(function(data,status){var loginCookie=readLoginCookie();loginCookie?"undefined"!=typeof data.expire&&"undefined"!=typeof data.grace?data.expire<0&&data.grace>0?d.reject({grace:data.grace}):data.expire>0&&-1==data.grace?d.reject({expire:data.expire}):d.resolve(redirectUrl(username,domain)):d.resolve(redirectUrl(username,domain)):d.reject(l("cookiesNotEnabled"))}).error(function(data,status){var msg,perr;data&&data.LDAPPasswordPolicyError?(perr=data.LDAPPasswordPolicyError,msg=perr==passwordPolicyConfig.PolicyNoError?l("Wrong username or password."):perr==passwordPolicyConfig.PolicyAccountLocked?l("Your account was locked due to too many failed attempts."):l("Login failed due to unhandled error case: ")+perr):msg=l("Unhandled error response"),d.reject({error:msg})}),d.promise},changePassword:function(newPassword){var d=$q.defer(),loginCookie=_this.readLoginCookie();return $http({method:"POST",url:"/SOGo/so/changePassword",data:{userName:loginCookie[0],password:loginCookie[1],newPassword:newPassword}}).success(function(data,status){d.resolve()}).error(function(data,status){var error,perr=data.LDAPPasswordPolicyError;perr?perr==passwordPolicyConfig.PolicyNoError?error=l("Password change failed"):perr==passwordPolicyConfig.PolicyPasswordModNotAllowed?error=l("Password change failed - Permission denied"):perr==passwordPolicyConfig.PolicyInsufficientPasswordQuality?error=l("Password change failed - Insufficient password quality"):perr==passwordPolicyConfig.PolicyPasswordTooShort?error=l("Password change failed - Password is too short"):perr==passwordPolicyConfig.PolicyPasswordTooYoung?error=l("Password change failed - Password is too young"):perr==passwordPolicyConfig.PolicyPasswordInHistory?error=l("Password change failed - Password is in history"):(error=l("Unhandled policy error: %{0}").formatted(perr),perr=passwordPolicyConfig.PolicyPasswordUnknown):(perr=passwordPolicyConfig.PolicyPasswordSystemUnknown,error=_("Unhandled error response")),d.reject(error)}),d.promise}}}this.$get=getService,getService.$inject=["$q","$http","passwordPolicyConfig"]}angular.module("SOGo.Authentication",[]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyNoError:65535}).provider("Authentication",Authentication)}(),function(){"use strict";function Dialog(){}function DialogService($q,$mdDialog){return angular.extend(Dialog,{$q:$q,$modal:$mdDialog}),Dialog}Dialog.alert=function(title,content){var alert=this.$modal.alert().title(title).content(content).ok(l("OK"));this.$modal.show(alert)},Dialog.confirm=function(title,content,options){var confirm=this.$modal.confirm().title(title).content(content).ok(options&&options.ok?options.ok:l("OK")).cancel(options&&options.cancel?options.cancel:l("Cancel"));return this.$modal.show(confirm)},Dialog.prompt=function(title,label,options){function PromptDialogController(scope,$mdDialog){scope.title=title,scope.name="",scope.cancel=function(){d.reject(),$mdDialog.hide()},scope.ok=function(){d.resolve(scope.name),$mdDialog.hide()}}var o=options||{},d=this.$q.defer();return this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,template:['',' ','

'," "," ",' '," ","
",'
',' '," "+l("Cancel")," ",' '," "+l("OK")," ","
","
"].join(""),controller:PromptDialogController}),PromptDialogController.$inject=["scope","$mdDialog"],d.promise},DialogService.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",DialogService)}(),function(){"use strict";function Gravatar(){return function(email,size){var x,y,hash,s=size;return email?(x=email.indexOf("<"),x>=0&&(y=email.indexOf(">",x),y>x&&(email=email.substring(x+1,y))),size||(s=48),hash=email.md5(),"https://www.gravatar.com/avatar/"+hash+"?s="+s+"&d=404"):""}}angular.module("SOGo.Common").factory("Gravatar",Gravatar)}(),function(){"use strict";function Resource($http,$q,path,activeUser,options){angular.extend(this,{_http:$http,_q:$q,_path:path,_activeUser:activeUser}),angular.extend(this,options),this._path=this._path.replace(/\/$/,"")}Resource.$factory=["$http","$q",function($http,$q){return function(path,activeUser,options){return new Resource($http,$q,path,activeUser,options)}}],angular.module("SOGo.Common").factory("Resource",Resource.$factory),Resource.prototype.userResource=function(uid){var path=_.compact(this._activeUser.folderURL.split("/"));return path.splice(path.length-1,1,escape(uid)),new Resource(this._http,this._q,"/"+path.join("/"),this._activeUser)},Resource.prototype.fetch=function(folderId,action,params){var deferred=this._q.defer(),path=[this._path];return folderId&&path.push(folderId.split("/")),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http({method:"GET",url:path,params:params}).success(deferred.resolve).error(function(data,status){return 404==status?deferred.reject():void 0}),deferred.promise},Resource.prototype.newguid=function(folderId){var deferred=this._q.defer(),path=this._path+"/"+folderId+"/newguid";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.create=function(action,name){var deferred=this._q.defer(),path=this._path+"/"+action;return this._http.post(path,{name:name}).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.post=function(id,action,data){var deferred=this._q.defer(),path=[this._path];return id&&path.push(id),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http.post(path,data).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.save=function(id,newValue,options){var action=(this._q.defer(),options&&options.action?options.action:"save");return this.post(id,action,newValue)},Resource.prototype.remove=function(uid){var deferred=this._q.defer(),path=this._path+"/"+uid+"/delete";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise}}(),function(){"use strict";function User(userData){userData&&this.init(userData)}User.factory=["$q","$log","sgSettings","Resource","Gravatar",function($q,$log,Settings,Resource,Gravatar){return angular.extend(User,{$q:$q,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),$gravatar:Gravatar,$query:"",$users:[]}),User}],angular.module("SOGo.Common").factory("User",User.factory),User.$filter=function(search,excludedUsers,options){var param={search:search};if(!options||!options.dry){if(!search)return User.$users.splice(0,User.$users.length),User.$q.when(User.$users);if(User.$query==search)return User.$q.when(User.$users);User.$query=search}return User.$$resource.fetch(null,"usersSearch",param).then(function(response){var results,index,user,users,compareUids=function(data){return this.uid==data.uid};for(users=options&&options.dry?[]:User.$users,results=excludedUsers?_.filter(response.users,function(user){return!_.find(excludedUsers,compareUids,user)}):response.users,index=users.length-1;index>=0;index--)user=users[index],_.find(results,compareUids,user)||users.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(users,compareUids,data))){var user=new User(data);users.splice(index,0,user)}}),User.$log.debug(users),users})},User.prototype.init=function(data){angular.extend(this,data),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image||User.$gravatar(this.c_email)),this.empty=" "},User.prototype.$shortFormat=function(options){var fullname=this.cn||this.c_email,email=this.c_email,no_email=options&&options.email===!1;return!no_email&&email&&fullname!=email&&(fullname+=" <"+email+">"),fullname},User.prototype.$acl=function(folderId,owner){var _this=this,deferred=User.$q.defer(),param={uid:this.uid};if(this.$shadowRights)deferred.resolve(this.rights);else{var rights;rights=angular.isDefined(owner)?User.$$resource.userResource(owner).fetch(folderId,"userRights",param):User.$$resource.fetch(folderId,"userRights",param),rights.then(function(data){return _this.rights=data,_this.$shadowRights=angular.copy(data),deferred.resolve(data),data})}return deferred.promise},User.prototype.$isAnonymous=function(){return"anonymous"==this.uid},User.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},User.prototype.$confirmRights=function(){var confirmation=!1;return this.$confirmation?!1:(_.some(_.values(this.rights))&&("anonymous"==this.uid?confirmation=l("Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?"):""==this.uid&&(confirmation=l("Any user with an account on this system will be able to access your folder. Are you certain you trust them all?"))),this.$confirmation=confirmation,confirmation)},User.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},User.prototype.$resetRights=function(zero){var _this=this;zero?_.map(_.keys(this.rights),function(key){angular.isString(_this.rights[key])?_this.rights[key]="None":_this.rights[key]=0}):this.rights=angular.copy(this.$shadowRights)},User.prototype.$folders=function(type){var _this=this,deferred=User.$q.defer(),param={type:type};return this.$$folders?deferred.resolve(this.$$folders):User.$$resource.userResource(this.uid).fetch(null,"foldersSearch",param).then(function(response){_this.$$folders=response.folders,deferred.resolve(response.folders)}),deferred.promise},User.prototype.$omit=function(){var user={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(user[key]=value)}),user},User.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function sgFocus($rootScope,$timeout){return function(name){$timeout(function(){$rootScope.$broadcast("sgFocusOn",name)})}}sgFocus.$inject=["$rootScope","$timeout"],angular.module("SOGo.Common").factory("sgFocus",sgFocus)}(),function(){"use strict";function sgAvatarImage(){return{restrict:"AE",scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',link:link,bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function link(scope,element,attrs,controller){var el=element[0],imgElement=(el.className,element.find("img")),img=imgElement[0];attrs.size&&(imgElement.attr("width",attrs.size),imgElement.attr("height",attrs.size)),imgElement.bind("error",function(){controller.insertGenericAvatar(img)})}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){var img=$element.find("img")[0];email||vm.genericAvatar?email&&!vm.url&&(vm.genericAvatar&&(vm.genericAvatar.parentNode.removeChild(vm.genericAvatar),delete vm.genericAvatar,img.classList.remove("ng-hide")),vm.url=Gravatar(email,vm.size)):vm.insertGenericAvatar(img)}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)}),vm.insertGenericAvatar=function(img){var avatar;vm.genericAvatar||(avatar=document.createElement("md-icon"),avatar.className="material-icons icon-person",img.classList.add("ng-hide"),vm.genericAvatar=img.parentNode.insertBefore(avatar,img))}}sgAvatarImageController.$inject=["$scope","$element","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",sgAvatarImage).controller("sgAvatarImageController",sgAvatarImageController)}(),function(){"use strict";function sgColorPicker($parse){function link(scope,iElement,iAttr,controller){controller.doSelect=$parse(iElement.attr("sg-on-select"))}return{restrict:"E",template:["",' '," color_lens"," ",' ',' ',' '," "," ",""].join(""),replace:!0,bindToController:!0,controller:sgColorPickerController,controllerAs:"$sgColorPickerController",link:link}}function sgColorPickerController($scope,sgColors){var vm=this;vm.colors=sgColors.selection,vm.select=function(color){ -vm.doSelect($scope,{color:color})}}sgColorPicker.$inject=["$parse"],sgColorPickerController.$inject=["$scope","sgColors"],angular.module("SOGo.Common").directive("sgColorPicker",sgColorPicker)}(),function(){"use strict";function sgCompile($compile){function sgCompileLink(scope,element,attrs){var ensureCompileRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgCompile)},function(value){element.html(value),$compile(element.contents())(scope),ensureCompileRunsOnce()})}return{restrict:"A",link:sgCompileLink}}sgCompile.$inject=["$compile"],angular.module("SOGo.Common").directive("sgCompile",sgCompile)}(),function(){"use strict";function sgEnter(){var ENTER_KEY=13;return function(scope,element,attrs){element.bind("keydown keypress",function(event){event.which===ENTER_KEY&&(scope.$apply(attrs.sgEnter),event.preventDefault())})}}angular.module("SOGo.Common").directive("sgEnter",sgEnter)}(),function(){"use strict";function sgEscape(){var ESCAPE_KEY=27;return function(scope,elem,attrs){elem.bind("keydown",function(event){event.keyCode===ESCAPE_KEY&&scope.$apply(attrs.sgEscape)})}}angular.module("SOGo.Common").directive("sgEscape",sgEscape)}(),function(){"use strict";function sgFocusOn(){return function(scope,elem,attr){scope.$on("sgFocusOn",function(e,name){name===attr.sgFocusOn&&(elem[0].focus(),elem[0].select())})}}angular.module("SOGo.Common").directive("sgFocusOn",sgFocusOn)}(),function(){"use strict";function sgFolderStylesheet(){return{restrict:"A",require:"ngModel",scope:{ngModel:"="},template:['"].join("")}}angular.module("SOGo.Common").directive("sgFolderStylesheet",sgFolderStylesheet)}(),function(){"use strict";function sgPlaceholder(){return{restrict:"A",scope:{placeholder:"=sgPlaceholder"},link:function(scope,elem,attr){scope.$watch("placeholder",function(){elem[0].placeholder=scope.placeholder})}}}angular.module("SOGo.Common").directive("sgPlaceholder",sgPlaceholder)}(),function(){"use strict";function sgSearchPreTransclude($parse){function compile(tElement,tAttr){var inputEl=(tElement.find("md-input-container"),tElement.find("input")),selectEl=tElement.find("md-select"),buttonEl=tElement.find("md-button");return inputEl.attr("ng-model","$sgSearchController.searchText"),inputEl.attr("ng-model-options","$sgSearchController.searchTextOptions"),inputEl.attr("ng-change","$sgSearchController.onChange()"),selectEl&&(selectEl.attr("ng-model","$sgSearchController.searchField"),selectEl.attr("ng-change","$sgSearchController.onChange()")),buttonEl&&buttonEl.attr("sg-search-cancel")?(buttonEl.attr("ng-click",buttonEl.attr("sg-search-cancel")),buttonEl.removeAttr("sg-search-cancel")):buttonEl=null,function(scope,iElement,iAttr,controller){var compiledButtonEl=iElement.find("button");controller.doSearch=$parse(iElement.attr("sg-search")),buttonEl&&compiledButtonEl&&compiledButtonEl.on("click",controller.cancelSearch)}}return{restrict:"A",controller:"sgSearchController",controllerAs:"$sgSearchController",priority:1001,compile:compile}}function sgSearch(){function compile(tElement,tAttr){return function(scope,iElement,iAttr,controller,transclude){transclude(function(clone){iElement.append(clone)})}}return{restrict:"A",priority:1e3,transclude:!0,compile:compile}}function sgSearchController($scope,$element){var vm=this;vm.previous={searchText:"",searchField:""},vm.searchText=null,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){"undefined"!=typeof vm.searchText&&null!==vm.searchText&&(vm.searchText!=vm.previous.searchText||vm.searchField!=vm.previous.searchField)&&((vm.searchText.length>2||0===vm.searchText.length)&&vm.doSearch($scope,{searchText:vm.searchText,searchField:vm.searchField}),vm.previous={searchText:vm.searchText,searchField:vm.searchField})},vm.cancelSearch=function(){vm.searchText=""}}sgSearchPreTransclude.$inject=["$parse"],sgSearchController.$inject=["$scope","$element"],angular.module("SOGo.Common").controller("sgSearchController",sgSearchController).directive("sgSearch",sgSearchPreTransclude).directive("sgSearch",sgSearch)}(),function(){"use strict";function sgSubscribe(User){return{restrict:"A",scope:{folderType:"@sgSubscribe",onFolderSelect:"&sgSubscribeOnSelect"},replace:!1,bindToController:!0,controller:sgSubscribeDialogController,controllerAs:"$sgSubscribeDialogController",link:link}}function link(scope,element,attrs,controller){element.find("input");element.on("click",controller.showDialog)}function sgSubscribeDialogController($mdDialog){var vm=this;vm.showDialog=function(){$mdDialog.show({templateUrl:"../Contacts/UIxContactsUserFolders",clickOutsideToClose:!0,locals:{folderType:vm.folderType,onFolderSelect:vm.onFolderSelect},controller:sgSubscribeController,controllerAs:"subscribe"})}}function sgSubscribeController($mdDialog,folderType,onFolderSelect,User){var vm=this;vm.selectedUser=null,vm.users=User.$users,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){User.$filter(vm.searchText).then(function(){vm.selectedUser&&_.isUndefined(_.find(User.$users,function(user){return user.uid==vm.selectedUser.uid}))&&(vm.selectedUser=null)})},vm.selectUser=function(i){vm.selectedUser==vm.users[i]?vm.selectedUser=null:vm.users[i].$folders(folderType).then(function(){vm.selectedUser=vm.users[i]})},vm.selectFolder=function(folder){onFolderSelect({folderData:folder})},vm.close=function(){$mdDialog.hide()}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["$mdDialog","folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function timePaneDirective(){return{template:['
','
','
','
',' {{hour.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
',' ',"
","
"].join(""),scope:{},require:["ngModel","sgTimePane"],controller:TimePaneCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attrs,controllers){var ngModelCtrl=controllers[0],sgTimePaneCtrl=controllers[1],timePaneElement=element;sgTimePaneCtrl.configureNgModel(ngModelCtrl,sgTimePaneCtrl,timePaneElement)}}}function TimePaneCtrl($element,$attrs,$scope,$animate,$q,$mdConstant,$mdTheming,$$mdDateUtil,$mdDateLocale,$mdInkRipple,$mdUtil){var m;this.$scope=$scope,this.$element=$element,this.timePaneElement=$element[0].querySelector(".sg-time-pane"),this.$animate=$animate,this.$q=$q,this.$mdInkRipple=$mdInkRipple,this.$mdUtil=$mdUtil,this.keyCode=$mdConstant.KEY_CODE,this.dateUtil=$$mdDateUtil,this.id=nextTimePaneUniqueId++,this.ngModelCtrl=null,this.selectedTime=null,this.displayTime=null,this.isInitialized=!1,$scope.hours=[],$scope.hours[0]=[],$scope.hours[0][0]=[],$scope.hours[0][1]=[],$scope.hours[1]=[],$scope.hours[1][0]=[],$scope.hours[1][1]=[];for(var i=0;6>i;i++)$scope.hours[0][0][i]={id:"tp-"+this.id+"-hour-"+i,displayName:10>i?"0"+i:""+i,selected:!1},$scope.hours[0][1][i]={id:"tp-"+this.id+"-hour-"+(i+6),displayName:10>i+6?"0"+(i+6):""+(i+6),selected:!1},$scope.hours[1][0][i]={id:"tp-"+this.id+"-hour-"+(i+12),displayName:""+(i+12),selected:!1},$scope.hours[1][1][i]={id:"tp-"+this.id+"-hour-"+(i+18),displayName:""+(i+18),selected:!1};for($scope.min5=[],$scope.min5[0]=[],$scope.min5[1]=[],i=0;6>i;i++)m=5*i,$scope.min5[0][i]={id:"tp-"+this.id+"-minute5-"+m,displayName:10>m?":0"+m:":"+m,selected:!0},$scope.min5[1][i]={id:"tp-"+this.id+"-minute5-"+(m+30),displayName:":"+(m+30),selected:!1};for($scope.min1=[],i=0;12>i;i++){$scope.min1[i]=[];for(var ii=0;5>ii;ii++)m=5*i+ii,$scope.min1[i][ii]={id:"tp-"+this.id+"-minute-"+m,displayName:10>m?":0"+m:":"+m,selected:!0}}$scope.show5min=!0,$scope.getToggleBtnLbl=function(){return $scope.is5min()?">>":"<<"},$scope.toggleManual5min=function(){$scope.manual5min=!$scope.is5min()},$scope.is5min=function(){return $scope.manual5min===!0||$scope.manual5min===!1?$scope.manual5min:$scope.show5min},$attrs.tabindex||$element.attr("tabindex","-1");var self=this;this.hourClickHandler=function(displayVal){var updated=new Date(self.displayTime);updated.setHours(Number(displayVal)),self.setNgModelValue(updated,"hours")},$scope.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(displayVal){var val=displayVal.substr(1),updated=new Date(self.displayTime);updated.setMinutes(Number(val)),self.setNgModelValue(updated,"minutes")},$scope.minuteClickHandler=this.minuteClickHandler,this.attachTimePaneEventListeners()}angular.module("SOGo.Common").directive("sgTimePane",timePaneDirective);var SELECTED_TIME_CLASS="md-bg",FOCUSED_TIME_CLASS="md-focus",nextTimePaneUniqueId=0;TimePaneCtrl.$inject=["$element","$attrs","$scope","$animate","$q","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil"],TimePaneCtrl.prototype.configureNgModel=function(ngModelCtrl,sgTimePaneCtrl,timePaneElement){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.changeSelectedTime(self.ngModelCtrl.$viewValue,sgTimePaneCtrl,timePaneElement)}},TimePaneCtrl.prototype.changeSelectedTime=function(date,sgTimePaneCtrl,timePaneElement){var previousSelectedTime=this.selectedTime;this.selectedTime=date,this.changeDisplayTime(date).then(function(){if(previousSelectedTime){var prevH=previousSelectedTime.getHours(),prevHCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+prevH);prevHCell&&(prevHCell.classList.remove(SELECTED_TIME_CLASS),prevHCell.setAttribute("aria-selected","false"));var prevM=previousSelectedTime.getMinutes(),prevMCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+prevM);prevMCell&&(prevMCell.classList.remove(SELECTED_TIME_CLASS),prevMCell.setAttribute("aria-selected","false"));var prevM5Cell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+prevM);prevM5Cell&&(prevM5Cell.classList.remove(SELECTED_TIME_CLASS),prevM5Cell.setAttribute("aria-selected","false"))}if(date){var mCell,newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(SELECTED_TIME_CLASS),hCell.setAttribute("aria-selected","true"));var newM=date.getMinutes();newM%5===0?(sgTimePaneCtrl.$scope.show5min=!0,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))):sgTimePaneCtrl.$scope.show5min=!1,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))}})},TimePaneCtrl.prototype.changeDisplayTime=function(date){var d=new Date(date);return this.isInitialized?this.dateUtil.isValidDate(d)?(this.displayTime=d,this.$q.when()):this.$q.when():(this.buildInitialTimePaneDisplay(),this.$q.when())},TimePaneCtrl.prototype.buildInitialTimePaneDisplay=function(){this.displayTime=this.selectedTime||this.today,this.isInitialized=!0},TimePaneCtrl.prototype.attachTimePaneEventListeners=function(){this.$element.on("keydown",angular.bind(this,this.handleKeyEvent))},TimePaneCtrl.prototype.handleKeyEvent=function(event){var self=this;this.$scope.$apply(function(){return event.which==self.keyCode.ESCAPE||event.which==self.keyCode.TAB?(self.$scope.$emit("md-time-pane-close"),void(event.which==self.keyCode.TAB&&event.preventDefault())):event.which===self.keyCode.ENTER?(self.setNgModelValue(self.displayTime,"enter"),void event.preventDefault()):void 0})},TimePaneCtrl.prototype.setNgModelValue=function(date,mode){this.$scope.$emit("sg-time-pane-change",{date:date,changed:mode}),this.ngModelCtrl.$setViewValue(date),this.ngModelCtrl.$render()},TimePaneCtrl.prototype.focus=function(opt_date,sgTimePaneCtrl){var date=opt_date||this.selectedTime||this.today,previousFocus=this.timePaneElement.querySelector(".md-focus");if(previousFocus&&previousFocus.classList.remove(FOCUSED_TIME_CLASS),date){var newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(FOCUSED_TIME_CLASS),hCell.focus())}}}(),function(){"use strict";function timePickerDirective(){return{template:['",'
",' ',' ','
',"
","
",'
','
','
',"
",'
',' ',"
","
"].join(""),require:["ngModel","sgTimepicker"],scope:{placeholder:"@mdPlaceholder"},controller:TimePickerCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attr,controllers){var ngModelCtrl=controllers[0],mdTimePickerCtrl=controllers[1];mdTimePickerCtrl.configureNgModel(ngModelCtrl)}}}function TimePickerCtrl($scope,$element,$attrs,$compile,$timeout,$mdConstant,$mdMedia,$mdTheming,$mdUtil,$mdDateLocale,$$mdDateUtil,$$rAF){this.$compile=$compile,this.$timeout=$timeout,this.dateLocale=$mdDateLocale,this.dateUtil=$$mdDateUtil,this.$mdConstant=$mdConstant,this.$mdMedia=$mdMedia,this.$mdUtil=$mdUtil,this.$$rAF=$$rAF,this.ngModelCtrl=null,this.inputElement=$element[0].querySelector("input"),this.inputContainer=$element[0].querySelector(".sg-timepicker-input-container"),this.ngInputElement=angular.element(this.inputElement),this.timePane=$element[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=$element[0].querySelector(".sg-timepicker-button"),this.inputMask=$element[0].querySelector(".sg-timepicker-input-mask-opaque"),this.$element=$element,this.$attrs=$attrs,this.$scope=$scope,this.date=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled($element[0].disabled||angular.isString($attrs.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePane.id="sg-time-pane"+$mdUtil.nextUid(),$mdTheming($element),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowResizeHandler=$mdUtil.debounce(angular.bind(this,this.closeTimePane),100),$attrs.tabindex||$element.attr("tabindex","-1"),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var self=this;$scope.$on("$destroy",function(){self.detachTimePane()})}angular.module("SOGo.Common").directive("sgTimepicker",timePickerDirective);var EXTRA_INPUT_SIZE=3,INVALID_CLASS="sg-timepicker-invalid",DEFAULT_DEBOUNCE_INTERVAL=500,TIME_PANE_HEIGHT={MIN5:{GTSM:192,SM:312},MIN1:{GTSM:384,SM:474}},TIME_PANE_WIDTH={GTSM:530,SM:292};TimePickerCtrl.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdMedia","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],TimePickerCtrl.prototype.configureNgModel=function(ngModelCtrl){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.time=self.ngModelCtrl.$viewValue,self.inputElement.value=self.formatTime(self.time),self.resizeInputElement()}},TimePickerCtrl.prototype.formatTime=function(time){var t=new Date(time);if(t){var h=t.getHours(),m=t.getMinutes();return(10>h?"0"+h:h)+":"+(10>m?"0"+m:m)}return""},TimePickerCtrl.prototype.attachChangeListeners=function(){var self=this;self.$scope.$on("sg-time-pane-change",function(event,data){var time=new Date(data.date);self.ngModelCtrl.$setViewValue(time),self.time=time,self.inputElement.value=self.formatTime(self.time),"minutes"==data.changed&&self.closeTimePane(),self.resizeInputElement(),self.inputContainer.classList.remove(INVALID_CLASS)}),self.ngInputElement.on("input",angular.bind(self,self.resizeInputElement)),self.ngInputElement.on("input",self.$mdUtil.debounce(self.handleInputEvent,DEFAULT_DEBOUNCE_INTERVAL,self))},TimePickerCtrl.prototype.attachInteractionListeners=function(){var self=this,$scope=this.$scope,keyCodes=this.$mdConstant.KEY_CODE;self.ngInputElement.on("keydown",function(event){event.altKey&&event.keyCode==keyCodes.DOWN_ARROW&&(self.openTimePane(event),$scope.$digest())}),$scope.$on("md-time-close",function(){self.closeTimePane()})},TimePickerCtrl.prototype.installPropertyInterceptors=function(){var self=this;if(this.$attrs.ngDisabled){var scope=this.$mdUtil.validateScope(this.$element)?this.$element.scope():null;scope&&scope.$watch(this.$attrs.ngDisabled,function(isDisabled){self.setDisabled(isDisabled)})}Object.defineProperty(this,"placeholder",{get:function(){return self.inputElement.placeholder},set:function(value){self.inputElement.placeholder=value||""}})},TimePickerCtrl.prototype.setDisabled=function(isDisabled){this.isDisabled=isDisabled,this.inputElement.disabled=isDisabled,this.timeButton.disabled=isDisabled},TimePickerCtrl.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+EXTRA_INPUT_SIZE},TimePickerCtrl.prototype.handleInputEvent=function(self){var inputString=this.inputElement.value,arr=inputString.split(":");if(""===inputString)this.ngModelCtrl.$setViewValue(null),this.time=null,this.inputContainer.classList.remove(INVALID_CLASS);else if(arr.length<2)this.inputContainer.classList.toggle(INVALID_CLASS,inputString);else{var h=Number(arr[0]),m=Number(arr[1]),newVal=new Date(this.time);h&&h>=0&&23>=h&&m&&m>=0&&59>=m&&angular.isDate(newVal)?(newVal.setHours(h),newVal.setMinutes(m),this.ngModelCtrl.$setViewValue(newVal),this.time=newVal,this.inputContainer.classList.remove(INVALID_CLASS)):this.inputContainer.classList.toggle(INVALID_CLASS,inputString)}},TimePickerCtrl.prototype.attachTimePane=function(){var timePane=this.timePane;this.$element.addClass("sg-timepicker-open"),this.$element.find("button").addClass("md-primary");var elementRect=this.inputContainer.getBoundingClientRect(),bodyRect=document.body.getBoundingClientRect(),paneTop=elementRect.top-bodyRect.top,paneLeft=elementRect.left-bodyRect.left,paneWidth=this.$mdMedia("sm")?TIME_PANE_WIDTH.SM:TIME_PANE_WIDTH.GTSM;paneLeft+paneWidth>bodyRect.right&&bodyRect.right-paneWidth>0&&(paneLeft=bodyRect.right-paneWidth,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.left=paneLeft+"px";var min="object"==typeof this.time&&this.time.getMinutes()%5===0?"MIN5":"MIN1",paneHeight=this.$mdMedia("sm")?TIME_PANE_HEIGHT[min].SM:TIME_PANE_HEIGHT[min].GTSM;paneTop+paneHeight>bodyRect.bottom&&bodyRect.bottom-paneHeight>0&&(paneTop=bodyRect.bottom-paneHeight,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.top=paneTop+"px",document.body.appendChild(this.timePane),this.inputMask.style.left=elementRect.width+"px",this.$$rAF(function(){timePane.classList.add("md-pane-open")})},TimePickerCtrl.prototype.detachTimePane=function(){this.$element.removeClass("sg-timepicker-open"),this.$element.find("button").removeClass("md-primary"),this.timePane.classList.remove("md-pane-open"),this.timePane.classList.remove("md-timepicker-pos-adjusted"),this.timePane.parentNode&&this.timePane.parentNode.removeChild(this.timePane)},TimePickerCtrl.prototype.openTimePane=function(event){if(!this.isTimeOpen&&!this.isDisabled){this.isTimeOpen=!0,this.timePaneOpenedFrom=event.target,this.attachTimePane(),this.$mdUtil.disableScrollAround(this.timePane);var self=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",self.bodyClickHandler)},!1),window.addEventListener("resize",this.windowResizeHandler)}},TimePickerCtrl.prototype.closeTimePane=function(){this.isTimeOpen=!1,this.detachTimePane(),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler),window.removeEventListener("resize",this.windowResizeHandler)},TimePickerCtrl.prototype.getTimePaneCtrl=function(){return angular.element(this.timePane.querySelector("sg-time-pane")).controller("sgTimePane")},TimePickerCtrl.prototype.focusTime=function(){var self=this;this.$mdUtil.nextTick(function(){var ctrl=self.getTimePaneCtrl();self.getTimePaneCtrl().focus(null,ctrl)},!1)},TimePickerCtrl.prototype.setFocused=function(isFocused){this.isFocused=isFocused},TimePickerCtrl.prototype.handleBodyClick=function(event){if(this.isTimeOpen){var isInTime=this.$mdUtil.getClosest(event.target,"sg-time-pane");isInTime||this.closeTimePane(),this.$scope.$digest()}}}(),function(){"use strict";function sgToggleGrid($parse){function link(scope,iElement,attrs,ctrl){function toggle(day){var i=_.findIndex(modelDays,function(o){return modelAttr?o[modelAttr]==day:o==day});if(0>i)if(modelAttr){var o={};o[modelAttr]=day,modelDays.push(o)}else modelDays.push(day);else modelDays.splice(i,1)}var tile,i,modelDays,modelAttr,ensureInitRunsOnce,toggleClass,tiles=iElement.find("md-grid-tile");for(ensureInitRunsOnce=scope.$watch(function(){return $parse(attrs.sgToggleGrid)(scope)},function(days){if(angular.isDefined(days)){var flattenedDays=days;modelDays=days,attrs.sgToggleGridAttr&&(modelAttr=attrs.sgToggleGridAttr,flattenedDays=_.pluck(days,attrs.sgToggleGridAttr)),_.each(tiles,function(o){var tile=angular.element(o);_.contains(flattenedDays,tile.attr("value"))&&tile.addClass("sg-active")}),ensureInitRunsOnce()}}),toggleClass=function(){var tile=angular.element(this),day=tile.attr("value");tile.toggleClass("sg-active"),toggle(day)},i=0;i>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+this._base64_keyStr.charAt(enc1)+this._base64_keyStr.charAt(enc2)+this._base64_keyStr.charAt(enc3)+this._base64_keyStr.charAt(enc4);return output},String.prototype.base64decode=function(){for(var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0,input=""+this;i>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));return output},String.prototype.md5=function(){if(this.length){var md5=function(s){function L(k,d){return k<>>32-d}function K(G,k){var I,d,F,H,x;return F=2147483648&G,H=2147483648&k,I=1073741824&G,d=1073741824&k,x=(1073741823&G)+(1073741823&k),I&d?2147483648^x^F^H:I|d?1073741824&x?3221225472^x^F^H:1073741824^x^F^H:x^F^H}function r(d,F,k){return d&F|~d&k}function q(d,F,k){return d&k|F&~k}function p(d,F,k){return d^F^k}function n(d,F,k){return F^(d|~k)}function u(G,F,aa,Z,k,H,I){return G=K(G,K(K(r(F,aa,Z),k),I)),K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){return G=K(G,K(K(q(F,aa,Z),k),I)),K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){return G=K(G,K(K(p(F,aa,Z),k),I)),K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){return G=K(G,K(K(n(F,aa,Z),k),I)),K(L(G,H),F)}function e(G){for(var Z,F=G.length,x=F+8,k=(x-x%64)/64,I=16*(k+1),aa=Array(I-1),d=0,H=0;F>H;)Z=(H-H%4)/4,d=H%4*8,aa[Z]=aa[Z]|G.charCodeAt(H)<>>29,aa}function B(x){var G,d,k="",F="";for(d=0;3>=d;d++)G=x>>>8*d&255,F="0"+G.toString(16),k+=F.substr(F.length-2,2);return k}function J(k){k=k.replace(/rn/g,"n");for(var d="",F=0;Fx?d+=String.fromCharCode(x):x>127&&2048>x?(d+=String.fromCharCode(x>>6|192),d+=String.fromCharCode(63&x|128)):(d+=String.fromCharCode(x>>12|224),d+=String.fromCharCode(x>>6&63|128),d+=String.fromCharCode(63&x|128))}return d}var P,h,E,v,g,Y,X,W,V,C=Array(),S=7,Q=12,N=17,M=22,A=5,z=9,y=14,w=20,o=4,m=11,l=16,j=23,U=6,T=10,R=15,O=21;for(s=J(s),C=e(s),Y=1732584193,X=4023233417,W=2562383102,V=271733878,P=0;P12&&(p="pm",i=hours%12),10>minutes&&(m="0"+minutes),newString=newString.replace("%H",10>hours?"0"+hours:hours),newString=newString.replace("%I",10>i?"0"+i:i),newString=newString.replace("%M",m),newString=newString.replace("%p",p)},Date.prototype.daysUpTo=function(otherDate){var days=[],day1=this.getTime(),day2=otherDate.getTime();if(day1>day2){var tmp=day1;day1=day2,day2=tmp}for(var nbrDays=Math.round((day2-day1)/864e5)+1,i=0;nbrDays>i;i++){var newDate=new Date;newDate.setTime(day1+864e5*i),days.push(newDate)}return days},String.prototype.isValidEmail=function(){var emailRE=/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i;return emailRE.test(this)},String.prototype.asCSSIdentifier=function(){for(var characters=["_","\\.","#","@","\\*",":",","," ","'","&","\\+"],escapeds=["_U_","_D_","_H_","_A_","_S_","_C_","_CO_","_SP_","_SQ_","_AM_","_P_"],newString=this,i=0;iyear&&(year=""+(year+1900)),1==month.length&&(month="0"+month),1==day.length&&(day="0"+day),"-"==separator?str=year+"-"+month+"-"+day:str=day+"/"+month+"/"+year,str},Date.prototype.addDays=function(nbrDays){var milliSeconds=this.getTime();milliSeconds+=864e5*nbrDays,this.setTime(milliSeconds); -},Date.prototype.addHours=function(nbrHours){var milliSeconds=this.getTime();milliSeconds+=36e5*nbrHours,this.setTime(milliSeconds)},Date.prototype.addMinutes=function(nbrMinutes){var milliSeconds=this.getTime();milliSeconds+=6e4*nbrMinutes,this.setTime(milliSeconds)},Date.prototype.beginOfDay=function(){var beginOfDay=new Date(this.getTime());return beginOfDay.setHours(0),beginOfDay.setMinutes(0),beginOfDay.setSeconds(0),beginOfDay.setMilliseconds(0),beginOfDay},Date.prototype.beginOfWeek=function(){var offset=firstDayOfWeek-this.getDay();offset>0&&(offset-=7);var beginOfWeek=this.beginOfDay();return beginOfWeek.setHours(12),beginOfWeek.addDays(offset),beginOfWeek},Date.prototype.endOfWeek=function(){var endOfWeek=this.beginOfWeek();return endOfWeek.addDays(6),endOfWeek.setHours(23),endOfWeek.setMinutes(59),endOfWeek.setSeconds(59),endOfWeek.setMilliseconds(999),endOfWeek},Date.prototype.getDayString=function(){var newString=this.getYear();1e3>newString&&(newString+=1900);var month=""+(this.getMonth()+1);1==month.length&&(month="0"+month),newString+=month;var day=""+this.getDate();return 1==day.length&&(day="0"+day),newString+=day},Date.prototype.getHourString=function(){var newString=this.getHours()+"00";return 3==newString.length&&(newString="0"+newString),newString}; +(function(){"use strict";angular.module("SOGo.Common",["ngAnimate","ngMaterial","mdColors"]).value("sgSettings",{isPopup:document.body.classList.contains("popup"),baseURL:function(){return ApplicationBaseURL||null},activeUser:function(param){var settings={login:UserLogin||null,identification:UserIdentification||null,email:UserEmail||null,language:UserLanguage||null,folderURL:UserFolderURL||null,isSuperUser:IsSuperUser||null,path:{calendar:UserCalendarPath||null,contacts:UserContactsPath||null,mail:UserMailPath||null,preferences:UserPreferencesPath||null,administration:IsSuperUser?UserAdministrationPath:null,logoff:UserLogoffPath||null}};if(param)return settings[param];else return settings}}).constant("sgColors",{selection:["#FFFFFF","#330033","#C0C0C0","#999999","#666666","#333333","#000000","#FFCCCC","#FF6666","#FF0000","#CC0000","#990000","#660000","#330000","#FFCC99","#FF9966","#FF9900","#FF6600","#CC6600","#993300","#663300","#FFFF99","#FFFF66","#FFCC66","#FFCC33","#CC9933","#996633","#663333","#FFFFCC","#FFFF33","#FFFF00","#FFCC00","#999900","#666600","#333300","#CCCCCC","#66FF99","#33FF33","#33CC00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#99FF99"]}).constant("sgConstant",{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1279px)","gt-md":"(min-width: 1280px)",lg:"(min-width: 1280px) and (max-width: 1919px)","gt-lg":"(min-width: 1920px)",xl:"(min-width: 1920px)"}).config(configure).factory("AuthInterceptor",AuthInterceptor);configure.$inject=["$logProvider","$compileProvider","$mdThemingProvider","$httpProvider"];function configure($logProvider,$compileProvider,$mdThemingProvider,$httpProvider){$mdThemingProvider.definePalette("sogo-green",{50:"eaf5e9",100:"cbe5c8",200:"aad6a5",300:"88c781",400:"66b86a",500:"56b04c",600:"4da143",700:"388e3c",800:"367d2e",900:"225e1b",A100:"ffffff",A200:"69f0ae",A400:"00e676",A700:"00c853",contrastDefaultColor:"dark",contrastLightColors:["300","400","500","600","700","800","900"]});$mdThemingProvider.definePalette("sogo-blue",{50:"f0faf9",100:"e1f5f3",200:"ceebe8",300:"bfe0dd",400:"b2d6d3",500:"a1ccc8",600:"8ebfbb",700:"7db3b0",800:"639997",900:"4d8080",A100:"d4f7fa",A200:"c3f5fa",A400:"53e3f0",A700:"00b0c0",contrastDefaultColor:"light",contrastDarkColors:["50","100","200"]});$mdThemingProvider.definePalette("sogo-paper",{50:"fcf7f8",100:"f7f1dc",200:"ede5ca",300:"e6d8ba",400:"e2d2a3",500:"d6c48d",600:"baa870",700:"857545",800:"524517",900:"433809",1000:"000000",A100:"ffffff",A200:"eeeeee",A400:"bdbdbd",A700:"616161",contrastDefaultColor:"dark",contrastLightColors:["800","900"]});$mdThemingProvider.theme("default").primaryPalette("sogo-blue",{"default":"900","hue-1":"400","hue-2":"800","hue-3":"A700"}).accentPalette("sogo-green",{"default":"500","hue-1":"A100","hue-2":"300","hue-3":"A700"}).backgroundPalette("grey",{"default":"A100","hue-1":"200","hue-2":"300","hue-3":"500"});if(!DebugEnabled){$logProvider.debugEnabled(false);$compileProvider.debugInfoEnabled(false)}$httpProvider.interceptors.push("AuthInterceptor")}AuthInterceptor.$inject=["$window","$q"];function AuthInterceptor($window,$q){return{response:function(response){if(/^application\/json/.test(response.config.headers.Accept)&&/^/.test(response.data)){$window.location.reload(true);return $q.reject()}return response}}}})();(function(){"use strict";var _$mdThemingProvider;angular.module("mdColors",["ngMaterial"]).config(configure).run(runBlock);configure.$inject=["$mdThemingProvider"];function configure($mdThemingProvider){_$mdThemingProvider=$mdThemingProvider}runBlock.$inject=["$interpolate","$document","$log"];function runBlock($interpolate,$document,$log){function buildCssSelectors(selectors){var result=selectors.join("");return result}var fgDefault=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-fg"])+" { color:{{value}};}"),bgDefault=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-bg"])+" { background-color:{{value}};}"),bdrDefault=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-bdr"])+" { border-color:{{value}};}"),fgDefaultHue=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{hue}}",".md-fg"])+" { color:{{value}};}"),bgDefaultHue=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),fgColor=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{palette}}",".md-fg"])+" { color:{{value}};}"),bgColor=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{palette}}",".md-bg"])+" { background-color:{{value}}; color:{{contrast}}; }"),bdrColor=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{palette}}",".md-bdr"])+" { border-color:{{value}};}"),fgHue=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-fg"])+" { color:{{value}};}"),bgHue=$interpolate(buildCssSelectors([".md-{{theme}}-theme",".md-{{palette}}.md-{{hue}}",".md-bg"])+" { background-color:{{value}};}"),customSheet=getStyleSheet(),index=0;while(customSheet.cssRules.length>0){customSheet.deleteRule(0)}angular.forEach(_$mdThemingProvider._THEMES,function(theme,themeName){addRule(fgDefault,bgDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues.default]);addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-2"]],"hue-2");addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-3"]],"hue-3");addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-1"]],"hue-1");addBorderRule(bdrDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues.default]);angular.forEach(theme.colors,function(color,paletteName){addRule(fgColor,bgColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues.default]);addBorderRule(bdrColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues.default]);addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-2"]],"hue-2");addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-3"]],"hue-3");addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-1"]],"hue-1")})});function addRule(fgInterpolate,bgInterpolate,themeName,paletteName,colorArray,hueName){if(!colorArray)return;var colorValue="rgb("+colorArray.value[0]+","+colorArray.value[1]+","+colorArray.value[2]+")",colorContrast="rgb("+colorArray.contrast[0]+","+colorArray.contrast[1]+","+colorArray.contrast[2]+")",context={theme:themeName,palette:paletteName,value:colorValue,contrast:colorContrast,hue:hueName};customSheet.insertRule(fgInterpolate(context),index);index+=1;customSheet.insertRule(bgInterpolate(context),index);index+=1}function addBorderRule(bdrInterpolate,themeName,paletteName,colorArray,hueName){if(!colorArray)return;var colorValue="rgb("+colorArray.value[0]+","+colorArray.value[1]+","+colorArray.value[2]+")";customSheet.insertRule(bdrInterpolate({theme:themeName,palette:paletteName,value:colorValue,hue:hueName}),index);index+=1}function getStyleSheet(){var style=$document[0].head.querySelector('style[title="Dynamic-Generated-by-mdColors"]');if(style===null){style=$document[0].createElement("style");style.title="Dynamic-Generated-by-mdColors";style.appendChild($document[0].createTextNode(""));$document[0].head.appendChild(style)}return style.sheet}}})();(function(){"use strict";decodeUri.$inject=["$window"];function decodeUri($window){return $window.decodeURIComponent}angular.module("SOGo.Common").filter("decodeUri",decodeUri)})();(function(){"use strict";encodeUri.$inject=["$window"];function encodeUri($window){return $window.encodeURIComponent}angular.module("SOGo.Common").filter("encodeUri",encodeUri)})();(function(){"use strict";ensureTarget.$inject=["$sce"];function ensureTarget($sce){return function(element){var tree=angular.element("
"+element+"
");tree.find("a").attr("target","_blank");return $sce.trustAs("html",tree.html())}}angular.module("SOGo.Common").filter("ensureTarget",ensureTarget)})();(function(){"use strict";function loc(){return l}angular.module("SOGo.Common").filter("loc",loc)})();(function(){"use strict";function range(){return function(n){var res=[];for(var i=0;i-1){deferred.resolve()}else{var acls;if(angular.isDefined(owner))acls=Acl.$$resource.userResource(owner).fetch(this.folderId,"addUserInAcls",param);else acls=Acl.$$resource.fetch(this.folderId,"addUserInAcls",param);acls.then(function(){user.wasSubscribed=false;user.userClass=user.isGroup?"normal-group":"normal-user";user.$rights=angular.bind(user,user.$acl,_this.folderId);_this.users.push(user);deferred.resolve(user)},function(data,status){deferred.reject(l("An error occured please try again."))})}return deferred.promise};Acl.prototype.$removeUser=function(uid){var _this=this,param={uid:uid};return Acl.$$resource.fetch(this.folderId,"removeUserFromAcls",param).then(function(){var i=_.indexOf(_.pluck(_this.users,"uid"),uid);if(i>=0){_this.users.splice(i,1)}})};Acl.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(user){user.$resetRights()})};Acl.prototype.$saveUsersRights=function(owner){var _this=this,deferredSave=Acl.$q.defer(),deferredSubscribe=Acl.$q.defer(),param={action:"saveUserRights"},users=[];angular.forEach(this.users,function(user){if(user.$rightsAreDirty()){users.push(user.$omit())}});if(users.length){var acls;if(angular.isDefined(owner))acls=Acl.$$resource.userResource(owner).save(this.folderId,users,param);else acls=Acl.$$resource.save(this.folderId,users,param);acls.then(function(){angular.forEach(_this.users,function(user){if(user.$rightsAreDirty()){user.$shadowRights=angular.copy(user.rights)}});deferredSave.resolve()},deferredSave.reject)}else{deferredSave.resolve()}users=[];angular.forEach(this.users,function(user){if(!user.wasSubscribed&&user.isSubscribed){users.push(user.uid)}});if(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)}else{deferredSubscribe.resolve()}return Acl.$q.all([deferredSave.promise,deferredSubscribe.promise])}})();(function(){"use strict";function Alarm(){this.currentAlarm=null}Alarm.getAlarms=function(){var _this=this;var now=new Date;var browserTime=Math.floor(now.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+browserTime).then(function(data){var alarms=data.alarms.sort(function reverseSortByAlarmTime(a,b){var x=parseInt(a[2]);var y=parseInt(b[2]);return y-x});if(alarms.length>0){var next=alarms.pop();var now=new Date;var utc=Math.floor(now.getTime()/1e3);var url=next[0]+"/"+next[1];var alarmTime=parseInt(next[2]);var delay=alarmTime;if(alarmTime>0)delay-=utc;var d=new Date(alarmTime*1e3);var f=angular.bind(_this,Alarm.showAlarm,url);if(_this.currentAlarm)_this.$timeout.cancel(_this.currentAlarm);_this.currentAlarm=_this.$timeout(f,delay*1e3)}})};Alarm.showAlarm=function(url){var _this=this;this.$$resource.fetch(url,"?resetAlarm=yes").then(function(data){_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"];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()}}})};AlarmService.$inject=["$timeout","sgSettings","Resource","$mdToast"];function AlarmService($timeout,Settings,Resource,$mdToast){angular.extend(Alarm,{$timeout:$timeout,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$toast:$mdToast});return Alarm}angular.module("SOGo.Common").factory("Alarm",AlarmService)})();(function(){"use strict";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 Authentication(){function readCookie(name){var foundCookie,prefix,pairs,i,currentPair,start;foundCookie=null;prefix=name+"=";pairs=document.cookie.split(";");for(i=0;!foundCookie&&i0)currentPair=currentPair.substr(start);if(currentPair.indexOf(prefix)===0)foundCookie=currentPair.substr(prefix.length)}return foundCookie}function readLoginCookie(){var loginValues=null,cookie=readCookie("0xHIGHFLYxSOGo"),value;if(cookie&&cookie.length>8){value=decodeURIComponent(cookie.substr(8));loginValues=value.base64decode().split(":")}return loginValues}function redirectUrl(username,domain){var userName,address,baseAddress,altBaseAddress,parts,hostpart,protocol,newAddress;userName=username;if(domain)userName+="@"+domain.value;address=""+window.location.href;baseAddress=ApplicationBaseURL+"/"+encodeURIComponent(userName);if(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("/");if((address.startsWith(baseAddress)||address.startsWith(altBaseAddress))&&!address.endsWith("/logoff")){newAddress=address}else{newAddress=baseAddress}return newAddress}this.$get=getService;getService.$inject=["$q","$http","passwordPolicyConfig"];function getService($q,$http,passwordPolicyConfig){var _this=this,service;service={login:function(data){var d=$q.defer(),username=data.username,password=data.password,domain=data.domain,language,rememberLogin=data.rememberLogin?1:0;if(data.loginSuffix&&!username.endsWith(data.loginSuffix)){username+=loginSuffix;domain=false}if(data.language&&data.language!="WONoSelectionString"){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();if(!loginCookie){d.reject(l("cookiesNotEnabled"))}else{if(typeof data.expire!="undefined"&&typeof data.grace!="undefined"){if(data.expire<0&&data.grace>0){d.reject({grace:data.grace})}else if(data.expire>0&&data.grace==-1){d.reject({expire:data.expire})}else{d.resolve(redirectUrl(username,domain))}}else{d.resolve(redirectUrl(username,domain))}}}).error(function(data,status){var msg,perr;if(data&&data.LDAPPasswordPolicyError){perr=data.LDAPPasswordPolicyError;if(perr==passwordPolicyConfig.PolicyNoError){msg=l("Wrong username or password.")}else if(perr==passwordPolicyConfig.PolicyAccountLocked){msg=l("Your account was locked due to too many failed attempts.")}else{msg=l("Login failed due to unhandled error case: ")+perr}}else{msg=l("Unhandled error response")}d.reject({error:msg})});return d.promise},changePassword:function(newPassword){var d=$q.defer(),loginCookie=_this.readLoginCookie();$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;if(!perr){perr=passwordPolicyConfig.PolicyPasswordSystemUnknown;error=_("Unhandled error response")}else if(perr==passwordPolicyConfig.PolicyNoError){error=l("Password change failed")}else if(perr==passwordPolicyConfig.PolicyPasswordModNotAllowed){error=l("Password change failed - Permission denied")}else if(perr==passwordPolicyConfig.PolicyInsufficientPasswordQuality){error=l("Password change failed - Insufficient password quality")}else if(perr==passwordPolicyConfig.PolicyPasswordTooShort){error=l("Password change failed - Password is too short")}else if(perr==passwordPolicyConfig.PolicyPasswordTooYoung){error=l("Password change failed - Password is too young")}else if(perr==passwordPolicyConfig.PolicyPasswordInHistory){error=l("Password change failed - Password is in history")}else{error=l("Unhandled policy error: %{0}").formatted(perr);perr=passwordPolicyConfig.PolicyPasswordUnknown}d.reject(error)});return d.promise}};return service}}})();(function(){"use strict";function Dialog(){}Dialog.alert=function(title,content){var alert=this.$modal.alert().title(title).textContent(content).ok(l("OK"));this.$modal.show(alert)};Dialog.confirm=function(title,content,options){var confirm=this.$modal.confirm().title(title).textContent(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){var o=options||{},d=this.$q.defer();this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:true,escapeToClose:true,template:['',' ','

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

',\n ' ',\n ' ',\n ' ',\n ' ',\n '
',\n '
',\n ' ',\n ' ' + l('Cancel'),\n ' ',\n ' ',\n ' ' + l('OK'),\n ' ',\n '
',\n '
'\n ].join(''),\n controller: PromptDialogController\n });\n\n /**\n * @ngInject\n */\n PromptDialogController.$inject = ['scope', '$mdDialog'];\n function PromptDialogController(scope, $mdDialog) {\n scope.title = title;\n scope.name = \"\";\n scope.cancel = function() {\n d.reject();\n $mdDialog.hide();\n };\n scope.ok = function() {\n d.resolve(scope.name);\n $mdDialog.hide();\n };\n }\n\n return d.promise;\n };\n\n /**\n * @memberof Dialog\n * @desc The factory we'll register as Dialog in the Angular module SOGo.Common\n * @ngInject\n */\n DialogService.$inject = ['$q', '$mdDialog'];\n function DialogService($q, $mdDialog) {\n angular.extend(Dialog, { $q: $q , $modal: $mdDialog });\n\n return Dialog; // return constructor\n }\n\n /* Factory registration in Angular module */\n angular\n .module('SOGo.Common')\n .factory('Dialog', DialogService);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Gravatar - A service to build the Gravatar URL for an email address\n * @memberof SOGo.Common\n * @param {string} email\n * @param {number} [size] - the size of the image\n * @ngInject\n */\n function Gravatar() {\n return function(email, size) {\n var x, y, hash, s = size;\n if (!email) {\n return '';\n }\n x = email.indexOf('<');\n if (x >= 0) {\n y = email.indexOf('>', x);\n if (y > x)\n email = email.substring(x+1,y);\n }\n if (!size) {\n s = 48; // default to 48 pixels\n }\n hash = email.md5();\n\n return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=404';\n //return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=retro';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=identicon';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=wavatar';\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('Gravatar', Gravatar);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Resource\n * @constructor\n * @param {Object} $http - the Angular HTTP service\n * @param {Object} $q - the Angular promise/deferred service\n * @param {String} path - the base path of the external resource\n * @param {Object} options - extra attributes to be associated to the object\n */\n function Resource($http, $q, path, activeUser, options) {\n angular.extend(this, {\n _http: $http,\n _q: $q,\n _path: path,\n _activeUser: activeUser\n });\n angular.extend(this, options);\n // Trim trailing slash\n this._path = this._path.replace(/\\/$/, '');\n }\n\n /**\n * @memberof Resource\n * @desc The factory we'll use to register with Angular.\n * @return a new Resource object\n */\n Resource.$factory = ['$http', '$q', function($http, $q) {\n return function(path, activeUser, options) {\n return new Resource($http, $q, path, activeUser, options);\n };\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of Resource in Angular module.\n */\n angular.module('SOGo.Common').factory('Resource', Resource.$factory);\n\n /**\n * @function userResource\n * @memberof Resource.prototype\n * @desc Create a new Resource object associated to a username different than the active user.\n * @param {String} uid - the user UID\n * @return a new Resource object\n */\n Resource.prototype.userResource = function(uid) {\n var path = _.compact(this._activeUser.folderURL.split('/'));\n path.splice(path.length - 1, 1, escape(uid));\n\n return new Resource(this._http, this._q, '/' + path.join('/'), this._activeUser);\n };\n\n /**\n * @function fetch\n * @memberof Resource.prototype\n * @desc Fetch resource using a specific folder, action and/or parameters.\n * @param {string} folderId - the folder on which the action will be applied (ex: addressbook, calendar)\n * @param {string} action - the action to be used in the URL\n * @param {Object} params - Object parameters injected through the $http service\n * @return a promise\n */\n Resource.prototype.fetch = function(folderId, action, params) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (folderId) path.push(folderId.split('/'));\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http({\n method: 'GET',\n url: path,\n params: params\n })\n .success(deferred.resolve)\n .error(function(data, status) {\n if (status == 404)\n return deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function newguid\n * @memberof Resource.prototype\n * @desc Fetch a new GUID on the specified folder ID.\n * @return a promise of the new data structure\n */\n Resource.prototype.newguid = function(folderId) {\n var deferred = this._q.defer(),\n path = this._path + '/' + folderId + '/newguid';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function create\n * @memberof Resource.prototype\n * @desc Create a new resource using a specific action (post).\n * @param {string} action - the action to be used in the URL\n * @param {string} name - the new resource's name\n * @return a promise\n */\n Resource.prototype.create = function(action, name) {\n var deferred = this._q.defer(),\n path = this._path + '/' + action;\n\n this._http\n .post(path, { name: name })\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function post\n * @memberof Resource.prototype\n * @desc Post a resource attributes on the server.\n * @return a promise\n */\n Resource.prototype.post = function(id, action, data) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (id) path.push(id);\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http\n .post(path, data)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function save\n * @memberof Resource.prototype\n * @desc Save a resource attributes on the server (post /save).\n * @return a promise\n */\n Resource.prototype.save = function(id, newValue, options) {\n var deferred = this._q.defer(),\n action = (options && options.action)? options.action : 'save';\n\n return this.post(id, action, newValue);\n };\n\n /**\n * @function remove\n * @memberof Resource.prototype\n * @desc Delete a resource (get /delete).\n * @return a promise\n */\n Resource.prototype.remove = function(uid) {\n var deferred = this._q.defer(),\n path = this._path + '/' + uid + '/delete';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n})();\n","(function() {\n 'use strict';\n\n /**\n * @name User\n * @constructor\n * @param {object} [userData] - some default values for the user\n */\n function User(userData) {\n if (userData) {\n this.init(userData);\n }\n }\n\n /**\n * @memberof User\n * @desc The factory we'll use to register with Angular.\n * @return the User constructor\n */\n User.factory = ['$q', '$log', 'sgSettings', 'Resource', 'Gravatar', function($q, $log, Settings, Resource, Gravatar) {\n angular.extend(User, {\n $q: $q,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n $gravatar: Gravatar,\n $query: '',\n $users: []\n });\n\n return User;\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of User in Angular module.\n */\n angular.module('SOGo.Common').factory('User', User.factory);\n\n /**\n * @memberof User\n * @desc Search for users that match a string.\n * @param {string} search - a string used to performed the search\n * @param {object[]} excludedUsers - a list of User objects that must be excluded from the results\n * @return a promise of an array of matching User objects\n */\n User.$filter = function(search, excludedUsers, options) {\n var _this = this, param = {search: search};\n\n if (!options || !options.dry) {\n if (!search) {\n // No query specified\n User.$users.splice(0, User.$users.length);\n return User.$q.when(User.$users);\n }\n if (User.$query == search) {\n // Query hasn't changed\n return User.$q.when(User.$users);\n }\n User.$query = search;\n }\n\n return User.$$resource.fetch(null, 'usersSearch', param).then(function(response) {\n var results, index, user, users,\n compareUids = function(data) {\n return this.uid == data.uid;\n };\n\n if (options && options.dry)\n users = [];\n else\n users = User.$users;\n\n if (excludedUsers) {\n // Remove excluded users from response\n results = _.filter(response.users, function(user) {\n return !_.find(excludedUsers, compareUids, user);\n });\n }\n else {\n results = response.users;\n }\n\n // Remove users that no longer match the search query\n for (index = users.length - 1; index >= 0; index--) {\n user = users[index];\n if (!_.find(results, compareUids, user)) {\n users.splice(index, 1);\n }\n }\n // Add new users matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(users, compareUids, data))) {\n var user = new User(data);\n users.splice(index, 0, user);\n }\n });\n User.$log.debug(users);\n return users;\n });\n };\n\n /**\n * @function init\n * @memberof User.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of user\n */\n User.prototype.init = function(data) {\n angular.extend(this, data);\n if (!this.$$shortFormat)\n this.$$shortFormat = this.$shortFormat();\n if (!this.$$image)\n this.$$image = this.image || User.$gravatar(this.c_email);\n\n // An empty attribute to trick md-autocomplete when adding users from the ACLs editor\n this.empty = ' ';\n };\n\n /**\n * @function $shortFormat\n * @memberof User.prototype\n * @return the fullname along with the email address\n */\n User.prototype.$shortFormat = function(options) {\n var fullname = this.cn || this.c_email;\n var email = this.c_email;\n var no_email = options && options.email === false;\n if (!no_email && email && fullname != email) {\n fullname += ' <' + email + '>';\n }\n return fullname;\n };\n\n /**\n * @function $acl\n * @memberof User.prototype\n * @desc Fetch the user rights associated to a specific folder and populate the 'rights' attribute.\n * @param {string} the folder ID\n * @param {Object} owner - the owner to use when fetching the ACL as it might not be the Settings.activeUser\n * @return a promise\n */\n User.prototype.$acl = function(folderId, owner) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {uid: this.uid};\n if (this.$shadowRights) {\n deferred.resolve(this.rights);\n }\n else {\n var rights;\n\n if (angular.isDefined(owner))\n rights = User.$$resource.userResource(owner).fetch(folderId, 'userRights', param);\n else\n rights = User.$$resource.fetch(folderId, 'userRights', param);\n\n rights.then(function(data) {\n _this.rights = data;\n // Convert numbers (0|1) to boolean values\n //angular.forEach(_.keys(_this.rights), function(key) {\n // _this.rights[key] = _this.rights[key] ? true : false;\n //});\n // console.debug('rights ' + _this.uid + ' => ' + JSON.stringify(data, undefined, 2));\n // Keep a copy of the server's version\n _this.$shadowRights = angular.copy(data);\n deferred.resolve(data);\n return data;\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $isAnonymous\n * @memberof User.prototype\n * @return true if it's the special anonymous user\n */\n User.prototype.$isAnonymous = function() {\n return this.uid == 'anonymous';\n };\n\n /**\n * @function $isSpecial\n * @memberof User.prototype\n * @desc Only accurate from the ACL editor.\n * @return true if the user is not a regular system user\n */\n User.prototype.$isSpecial = function() {\n return this.userClass && this.userClass == 'public-user';\n };\n\n /**\n * @function $confirmRights\n * @memberof User.prototype\n * @desc Check if a confirmation is required before giving some rights.\n * @return the confirmation message or false if no confirmation is required\n */\n User.prototype.$confirmRights = function() {\n var confirmation = false;\n\n if (this.$confirmation) {\n // Don't bother the user more than once\n return false;\n }\n\n if (_.some(_.values(this.rights))) {\n if (this.uid == 'anonymous') {\n confirmation = l('Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?');\n }\n else if (this.uid == '') {\n confirmation = l('Any user with an account on this system will be able to access your folder. Are you certain you trust them all?');\n }\n }\n\n this.$confirmation = confirmation;\n\n return confirmation;\n };\n\n /**\n * @function $rightsAreDirty\n * @memberof User.prototype\n * @return whether or not the rights have changed from their initial values\n */\n User.prototype.$rightsAreDirty = function() {\n return this.rights && !_.isEqual(this.rights, this.$shadowRights);\n };\n\n /**\n * @function $resetRights\n * @memberof User.prototype\n * @desc Restore initial rights or disable all rights\n * @param {boolean} [zero] - reset all rights to zero when true\n */\n User.prototype.$resetRights = function(zero) {\n var _this = this;\n if (zero) {\n // Disable all rights\n _.map(_.keys(this.rights), function(key) {\n if (angular.isString(_this.rights[key]))\n _this.rights[key] = 'None';\n else\n _this.rights[key] = 0;\n });\n }\n else {\n // Restore initial rights\n this.rights = angular.copy(this.$shadowRights);\n }\n };\n\n /**\n * @function $folders\n * @memberof User.prototype\n * @desc Retrieve the list of folders of a specific type\n * @param {string} type - either 'contact' or 'calendar'\n * @return a promise of the HTTP query result or the cached result\n */\n User.prototype.$folders = function(type) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {type: type};\n if (this.$$folders) {\n deferred.resolve(this.$$folders);\n }\n else {\n User.$$resource.userResource(this.uid).fetch(null, 'foldersSearch', param).then(function(response) {\n _this.$$folders = response.folders;\n deferred.resolve(response.folders);\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $omit\n * @memberof User.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the User instance\n */\n User.prototype.$omit = function() {\n var user = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n user[key] = value;\n }\n });\n return user;\n };\n\n User.prototype.toString = function() {\n return '[User ' + this.c_email + ']';\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n \n /**\n * sgFocus - A service to set the focus on the element associated to a specific string\n * @memberof SOGo.Common\n * @param {string} name - the string identifier of the element\n * @see {@link SOGo.Common.sgFocusOn}\n * @ngInject\n */\n sgFocus.$inject = ['$rootScope', '$timeout'];\n function sgFocus($rootScope, $timeout) {\n return function(name) {\n $timeout(function() {\n $rootScope.$broadcast('sgFocusOn', name);\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('sgFocus', sgFocus);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true, newcap: false */\n 'use strict';\n\n /**\n * sgAvatarImage - An avatar directive that returns un img element with either a local URL (if sg-src is specified)\n * or a Gravatar URL built from the Gravatar factory.\n * Based on http://blog.lingohub.com/2014/08/better-ux-with-angularjs-directives/.\n * @memberof SOGo.Common\n * @example:\n \n */\n function sgAvatarImage() {\n return {\n restrict: 'AE',\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n link: link,\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\n };\n }\n\n function link(scope, element, attrs, controller) {\n var el = element[0],\n className = el.className,\n imgElement = element.find('img'),\n img = imgElement[0];\n\n if (attrs.size) {\n imgElement.attr('width', attrs.size);\n imgElement.attr('height', attrs.size);\n }\n\n imgElement.bind('error', function() {\n // Error while loading external link; insert a generic avatar\n controller.insertGenericAvatar(img);\n });\n }\n\n /**\n * @ngInject\n */\n sgAvatarImageController.$inject = ['$scope', '$element', 'Gravatar'];\n function sgAvatarImageController($scope, $element, Gravatar) {\n var vm = this;\n\n $scope.$watch('vm.email', function(email) {\n var img = $element.find('img')[0];\n if (!email && !vm.genericAvatar) {\n // If no email is specified, insert a generic avatar\n vm.insertGenericAvatar(img);\n }\n else if (email && !vm.url) {\n if (vm.genericAvatar) {\n // Remove generic avatar and restore visibility of image\n vm.genericAvatar.parentNode.removeChild(vm.genericAvatar);\n delete vm.genericAvatar;\n img.classList.remove('ng-hide');\n }\n vm.url = Gravatar(email, vm.size);\n }\n });\n\n // If sg-src is defined, watch the expression for the URL of a local image\n if ('sg-src' in $element[0].attributes) {\n $scope.$watch('vm.src', function(src) {\n if (src) {\n vm.url = src;\n }\n });\n }\n\n vm.insertGenericAvatar = function(img) {\n var avatar;\n\n if (!vm.genericAvatar) {\n avatar = document.createElement('md-icon');\n avatar.className = 'material-icons icon-person';\n img.classList.add('ng-hide');\n vm.genericAvatar = img.parentNode.insertBefore(avatar, img);\n }\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgAvatarImage', sgAvatarImage)\n .controller('sgAvatarImageController', sgAvatarImageController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgColorPicker - Color picker widget\n * @restrict element\n * @param {function} sgOnSelect - the function to call when clicking on a color.\n * One variable is available: color.\n * @ngInject\n * @example:\n\n \n */\n sgColorPicker.$inject = ['$parse'];\n function sgColorPicker($parse) {\n return {\n restrict: 'E',\n template: [\n '',\n ' ',\n ' color_lens',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ''\n ].join(''),\n replace: true,\n bindToController: true,\n controller: sgColorPickerController,\n controllerAs: '$sgColorPickerController',\n link: link\n };\n\n function link(scope, iElement, iAttr, controller) {\n // Associate callback to controller\n controller.doSelect = $parse(iElement.attr('sg-on-select'));\n }\n }\n \n /**\n * @ngInject\n */\n sgColorPickerController.$inject = ['$scope', 'sgColors'];\n function sgColorPickerController($scope, sgColors) {\n var vm = this;\n\n vm.colors = sgColors.selection;\n vm.select = function(color) {\n vm.doSelect($scope, { color: color });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgColorPicker', sgColorPicker);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCompile - Assign an expression to a DOM element and compile it.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgCompile - the expression to compile\n * @ngInject\n * @example:\n\n
\n */\n sgCompile.$inject = ['$compile'];\n function sgCompile($compile) {\n return {\n restrict: 'A',\n link: sgCompileLink\n };\n\n function sgCompileLink(scope, element, attrs) {\n var ensureCompileRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-compile expression for changes\n return scope.$eval(attrs.sgCompile);\n },\n function(value) {\n // When the sg-compile expression changes, assign it into the current DOM\n element.html(value);\n \n // Compile the new DOM and link it to the current scope.\n // NOTE: we only compile .childNodes so that we don't get into infinite loop compiling ourselves\n $compile(element.contents())(scope);\n \n // Use un-watch feature to ensure compilation happens only once.\n ensureCompileRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgCompile', sgCompile);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEnter - A directive evaluated when the enter key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEnter() {\n var ENTER_KEY = 13;\n return function(scope, element, attrs) {\n element.bind(\"keydown keypress\", function(event) {\n if (event.which === ENTER_KEY) {\n scope.$apply(attrs.sgEnter);\n event.preventDefault();\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEnter', sgEnter);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEscape - A directive evaluated when the escape key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEscape() {\n var ESCAPE_KEY = 27;\n return function(scope, elem, attrs) {\n elem.bind('keydown', function(event) {\n if (event.keyCode === ESCAPE_KEY) {\n scope.$apply(attrs.sgEscape);\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEscape', sgEscape);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgFocusOn - A directive that sets the focus on its element when the specified string is broadcasted\n * @memberof SOGo.Common\n * @see {@link SOGo.Common.sgFocus}\n * @ngInject\n * @example:\n\n \n */\n function sgFocusOn() {\n return function(scope, elem, attr) {\n scope.$on('sgFocusOn', function(e, name) {\n if (name === attr.sgFocusOn) {\n elem[0].focus();\n elem[0].select();\n }\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFocusOn', sgFocusOn);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgFolderStylesheet - Add CSS stylesheet for folder (addressbook or calendar)\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} ngModel - the object literal describing the folder (an Addressbook or Calendar instance)\n * @example:\n\n
\n
\n */\n function sgFolderStylesheet() {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: {\n ngModel: '='\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFolderStylesheet', sgFolderStylesheet);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgPlaceholder - A directive for dynamic placeholder\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgPlaceholder() {\n return {\n restrict: 'A',\n scope: {\n placeholder: '=sgPlaceholder'\n },\n link: function(scope, elem, attr) {\n scope.$watch('placeholder',function() {\n elem[0].placeholder = scope.placeholder;\n });\n }\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgPlaceholder', sgPlaceholder);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSearch - Search within a list of items\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {function} sgSearch - the function to call when performing a search.\n * Two variables are available: searchField and searchText.\n * @example:\n\n
\n \n arrow_back\n \n \n \n \n \n Subject\n sender\n \n
\n */\n sgSearchPreTransclude.$inject = ['$parse'];\n function sgSearchPreTransclude($parse) {\n return {\n restrict: 'A',\n controller: 'sgSearchController',\n controllerAs: '$sgSearchController',\n priority: 1001,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n var mdInputEl = tElement.find('md-input-container'),\n inputEl = tElement.find('input'),\n selectEl = tElement.find('md-select'),\n buttonEl = tElement.find('md-button');\n\n inputEl.attr('ng-model', '$sgSearchController.searchText');\n inputEl.attr('ng-model-options', '$sgSearchController.searchTextOptions');\n inputEl.attr('ng-change', '$sgSearchController.onChange()');\n if (selectEl) {\n selectEl.attr('ng-model', '$sgSearchController.searchField');\n selectEl.attr('ng-change', '$sgSearchController.onChange()');\n }\n if (buttonEl && buttonEl.attr('sg-search-cancel')) {\n buttonEl.attr('ng-click', buttonEl.attr('sg-search-cancel'));\n buttonEl.removeAttr('sg-search-cancel');\n }\n else {\n buttonEl = null;\n }\n\n return function postLink(scope, iElement, iAttr, controller) {\n var compiledButtonEl = iElement.find('button');\n\n // Associate callback to controller\n controller.doSearch = $parse(iElement.attr('sg-search'));\n\n // Reset the input field when cancelling the search\n if (buttonEl && compiledButtonEl) {\n compiledButtonEl.on('click', controller.cancelSearch);\n }\n };\n }\n }\n\n function sgSearch() {\n return {\n restrict: 'A',\n priority: 1000,\n transclude: true,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n return function postLink(scope, iElement, iAttr, controller, transclude) {\n transclude(function(clone) {\n iElement.append(clone);\n });\n };\n }\n }\n\n /**\n * @ngInject\n */\n sgSearchController.$inject = ['$scope', '$element'];\n function sgSearchController($scope, $element) {\n var vm = this;\n\n // Controller variables\n vm.previous = { searchText: '', searchField: '' };\n vm.searchText = null;\n\n // Model options\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n // Method to call on data changes\n vm.onChange = function() {\n if (typeof vm.searchText !== 'undefined' && vm.searchText !== null) {\n if (vm.searchText != vm.previous.searchText || vm.searchField != vm.previous.searchField) {\n if (vm.searchText.length > 2 || vm.searchText.length === 0) {\n // doSearch is the compiled expression of the sg-search attribute\n vm.doSearch($scope, { searchText: vm.searchText, searchField: vm.searchField });\n }\n vm.previous = { searchText: vm.searchText, searchField: vm.searchField };\n }\n }\n };\n\n // Reset input field when cancelling the search\n vm.cancelSearch = function() {\n vm.searchText = \"\";\n };\n }\n\n angular\n .module('SOGo.Common')\n .controller('sgSearchController', sgSearchController)\n .directive('sgSearch', sgSearchPreTransclude)\n .directive('sgSearch', sgSearch);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSubscribe - Common subscription widget\n * @restrict attribute\n * @param {string} sgSubscribe - the folder type\n * @param {function} sgSubscribeOnSelect - the function to call when subscribing to a folder.\n * One variable is available: folderData.\n * @ngInject\n * @example:\n\n Subscribe ..\n */\n sgSubscribe.$inject = ['User'];\n function sgSubscribe(User) {\n return {\n restrict: 'A',\n scope: {\n folderType: '@sgSubscribe',\n onFolderSelect: '&sgSubscribeOnSelect'\n },\n replace: false,\n bindToController: true,\n controller: sgSubscribeDialogController,\n controllerAs: '$sgSubscribeDialogController',\n link: link\n };\n }\n\n function link(scope, element, attrs, controller) {\n var inputEl = element.find('input');\n element.on('click', controller.showDialog);\n }\n\n /**\n * @ngInject\n */\n sgSubscribeDialogController.$inject = ['$mdDialog'];\n function sgSubscribeDialogController($mdDialog) {\n var vm = this;\n vm.showDialog = function() {\n $mdDialog.show({\n templateUrl: '../Contacts/UIxContactsUserFolders',\n clickOutsideToClose: true,\n locals: {\n folderType: vm.folderType,\n onFolderSelect: vm.onFolderSelect\n },\n controller: sgSubscribeController,\n controllerAs: 'subscribe'\n });\n };\n }\n\n /**\n * @ngInject\n */\n sgSubscribeController.$inject = ['$mdDialog', 'folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController($mdDialog, folderType, onFolderSelect, User) {\n var vm = this;\n\n vm.selectedUser = null;\n vm.users = User.$users;\n\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n vm.onChange = function() {\n User.$filter(vm.searchText).then(function() {\n if (vm.selectedUser) {\n // If selected user is no longer part of the matching users, unselect it\n if (_.isUndefined(_.find(User.$users, function(user) {\n return user.uid == vm.selectedUser.uid;\n }))) {\n vm.selectedUser = null;\n }\n }\n });\n };\n\n vm.selectUser = function(i) {\n if (vm.selectedUser == vm.users[i]) {\n vm.selectedUser = null;\n }\n else {\n // Fetch folders of specific type for selected user\n vm.users[i].$folders(folderType).then(function() {\n vm.selectedUser = vm.users[i];\n });\n }\n };\n\n // Callback upon subscription to a folder\n vm.selectFolder = function(folder) {\n onFolderSelect({folderData: folder});\n };\n\n vm.close = function() {\n $mdDialog.hide();\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","(function() {\n 'use strict';\n\n angular\n .module('SOGo.Common')\n .directive('sgTimePane', timePaneDirective);\n \n function timePaneDirective() {\n return {\n template: [\n '
',\n '
',\n '
',\n '
',\n ' {{hour.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n scope: {},\n require: ['ngModel', 'sgTimePane'],\n controller: TimePaneCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attrs, controllers) {\n var ngModelCtrl = controllers[0];\n var sgTimePaneCtrl = controllers[1];\n var timePaneElement = element;\n sgTimePaneCtrl.configureNgModel(ngModelCtrl, sgTimePaneCtrl, timePaneElement);\n }\n };\n }\n\n /** Class applied to the selected hour or minute cell/. */\n var SELECTED_TIME_CLASS = 'md-bg';\n\n /** Class applied to the focused hour or minute cell/. */\n var FOCUSED_TIME_CLASS = 'md-focus';\n\n /** Next identifier for calendar instance. */\n var nextTimePaneUniqueId = 0;\n\n function TimePaneCtrl($element, $attrs, $scope, $animate, $q, $mdConstant,\n $mdTheming, $$mdDateUtil, $mdDateLocale, $mdInkRipple, $mdUtil) {\n var m;\n this.$scope = $scope;\n this.$element = $element;\n this.timePaneElement = $element[0].querySelector('.sg-time-pane');\n this.$animate = $animate;\n this.$q = $q;\n this.$mdInkRipple = $mdInkRipple;\n this.$mdUtil = $mdUtil;\n this.keyCode = $mdConstant.KEY_CODE;\n this.dateUtil = $$mdDateUtil;\n this.id = nextTimePaneUniqueId++;\n this.ngModelCtrl = null;\n this.selectedTime = null;\n this.displayTime = null;\n this.isInitialized = false;\n\n $scope.hours=[];\n $scope.hours[0]=[];\n $scope.hours[0][0]=[];\n $scope.hours[0][1]=[];\n $scope.hours[1]=[];\n $scope.hours[1][0]=[];\n $scope.hours[1][1]=[];\n for(var i=0; i<6; i++){\n $scope.hours[0][0][i] = {id:'tp-'+this.id+'-hour-'+i, displayName:i<10?\"0\"+i:\"\"+i, selected:false};\n $scope.hours[0][1][i] = {id:'tp-'+this.id+'-hour-'+(i+6),displayName:(i+6)<10?\"0\"+(i+6):\"\"+(i+6), selected:false};\n $scope.hours[1][0][i] = {id:'tp-'+this.id+'-hour-'+(i+12), displayName:\"\"+(i+12), selected:false};\n $scope.hours[1][1][i] = {id:'tp-'+this.id+'-hour-'+(i+18), displayName:\"\"+(i+18), selected:false};\n }\n\n $scope.min5=[];\n $scope.min5[0]=[];\n $scope.min5[1]=[];\n for(i=0; i<6; i++){\n m=i*5;\n $scope.min5[0][i] = {id:'tp-'+this.id+'-minute5-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n $scope.min5[1][i] = {id:'tp-'+this.id+'-minute5-'+(m+30), displayName:\":\"+(m+30), selected:false};\n }\n\n $scope.min1=[];\n for(i=0; i<12; i++){\n $scope.min1[i]=[];\n for(var ii=0; ii<5; ii++){\n m=i*5 + ii;\n $scope.min1[i][ii] = {id:'tp-'+this.id+'-minute-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n }\n }\n\n $scope.show5min = true;\n $scope.getToggleBtnLbl = function() {\n return ($scope.is5min()) ? '>>' : '<<';\n };\n $scope.toggleManual5min = function() {\n $scope.manual5min = !$scope.is5min();\n };\n $scope.is5min = function() {\n if ($scope.manual5min === true || $scope.manual5min === false) {\n return $scope.manual5min;\n }\n else {\n return $scope.show5min;\n }\n };\n\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n var self = this;\n\n this.hourClickHandler = function(displayVal) {\n var updated = new Date(self.displayTime);\n updated.setHours(Number(displayVal));\n self.setNgModelValue(updated, 'hours');\n };\n $scope.hourClickHandler = this.hourClickHandler;\n\n this.minuteClickHandler = function(displayVal) {\n //remove leading ':'\n var val = displayVal.substr(1);\n var updated = new Date(self.displayTime);\n updated.setMinutes(Number(val));\n self.setNgModelValue(updated, 'minutes');\n };\n $scope.minuteClickHandler = this.minuteClickHandler;\n\n this.attachTimePaneEventListeners();\n }\n TimePaneCtrl.$inject = [\"$element\", \"$attrs\", \"$scope\", \"$animate\", \"$q\", \"$mdConstant\", \"$mdTheming\", \"$$mdDateUtil\", \"$mdDateLocale\", \"$mdInkRipple\", \"$mdUtil\"];\n\n TimePaneCtrl.prototype.configureNgModel = function(ngModelCtrl, sgTimePaneCtrl, timePaneElement) {\n this.ngModelCtrl = ngModelCtrl;\n\n var self = this;\n ngModelCtrl.$render = function() {\n self.changeSelectedTime(self.ngModelCtrl.$viewValue, sgTimePaneCtrl, timePaneElement);\n };\n };\n\n /**\n * Change the selected date in the time (ngModel value has already been changed).\n */\n TimePaneCtrl.prototype.changeSelectedTime = function(date, sgTimePaneCtrl, timePaneElement) {\n var self = this;\n var previousSelectedTime = this.selectedTime;\n this.selectedTime = date;\n this.changeDisplayTime(date).then(function() {\n\n // Remove the selected class from the previously selected date, if any.\n if (previousSelectedTime) {\n var prevH = previousSelectedTime.getHours();\n var prevHCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+prevH);\n if (prevHCell) {\n prevHCell.classList.remove(SELECTED_TIME_CLASS);\n prevHCell.setAttribute('aria-selected', 'false');\n }\n var prevM = previousSelectedTime.getMinutes();\n var prevMCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+prevM);\n if (prevMCell) {\n prevMCell.classList.remove(SELECTED_TIME_CLASS);\n prevMCell.setAttribute('aria-selected', 'false');\n }\n var prevM5Cell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+prevM);\n if (prevM5Cell) {\n prevM5Cell.classList.remove(SELECTED_TIME_CLASS);\n prevM5Cell.setAttribute('aria-selected', 'false');\n }\n }\n\n // Apply the select class to the new selected date if it is set.\n if (date) {\n var newH = date.getHours();\n var mCell, hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(SELECTED_TIME_CLASS);\n hCell.setAttribute('aria-selected', 'true');\n }\n var newM = date.getMinutes();\n if (newM % 5 === 0) {\n sgTimePaneCtrl.$scope.show5min = true;\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n }\n else {\n sgTimePaneCtrl.$scope.show5min = false;\n }\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n\n }\n });\n };\n\n TimePaneCtrl.prototype.changeDisplayTime = function(date) {\n var d = new Date(date);\n if (!this.isInitialized) {\n this.buildInitialTimePaneDisplay();\n return this.$q.when();\n }\n if (!this.dateUtil.isValidDate(d)) {\n return this.$q.when();\n }\n\n this.displayTime = d;\n\n return this.$q.when();\n };\n TimePaneCtrl.prototype.buildInitialTimePaneDisplay = function() {\n this.displayTime = this.selectedTime || this.today;\n this.isInitialized = true;\n };\n\n TimePaneCtrl.prototype.attachTimePaneEventListeners = function() {\n // Keyboard interaction.\n this.$element.on('keydown', angular.bind(this, this.handleKeyEvent));\n };\n\n /*** User input handling ***/\n\n /**\n * Handles a key event in the calendar with the appropriate action. The action will either\n * be to select the focused date or to navigate to focus a new date.\n * @param {KeyboardEvent} event\n */\n TimePaneCtrl.prototype.handleKeyEvent = function(event) {\n var self = this;\n this.$scope.$apply(function() {\n // Capture escape and emit back up so that a wrapping component\n // (such as a time-picker) can decide to close.\n if (event.which == self.keyCode.ESCAPE || event.which == self.keyCode.TAB) {\n self.$scope.$emit('md-time-pane-close');\n\n if (event.which == self.keyCode.TAB) {\n event.preventDefault();\n }\n\n return;\n }\n\n // Remaining key events fall into two categories: selection and navigation.\n // Start by checking if this is a selection event.\n if (event.which === self.keyCode.ENTER) {\n self.setNgModelValue(self.displayTime, 'enter');\n event.preventDefault();\n return;\n }\n\n // Selection isn't occuring, so the key event is either navigation or nothing.\n /*var date = self.getFocusDateFromKeyEvent(event);\n if (date) {\n event.preventDefault();\n event.stopPropagation();\n\n // Since this is a keyboard interaction, actually give the newly focused date keyboard\n // focus after the been brought into view.\n self.changeDisplayTime(date).then(function () {\n self.focus(date);\n });\n }*/\n });\n };\n\n /**\n * Sets the ng-model value for the time pane and emits a change event.\n * @param {Date} date\n */\n TimePaneCtrl.prototype.setNgModelValue = function(date, mode) {\n this.$scope.$emit('sg-time-pane-change', {date:date, changed:mode});\n this.ngModelCtrl.$setViewValue(date);\n this.ngModelCtrl.$render();\n };\n\n /**\n * Focus the cell corresponding to the given date.\n * @param {Date=} opt_date\n */\n TimePaneCtrl.prototype.focus = function(opt_date, sgTimePaneCtrl) {\n var date = opt_date || this.selectedTime || this.today;\n\n var previousFocus = this.timePaneElement.querySelector('.md-focus');\n if (previousFocus) {\n previousFocus.classList.remove(FOCUSED_TIME_CLASS);\n }\n\n if (date) {\n var newH = date.getHours();\n var hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(FOCUSED_TIME_CLASS);\n hCell.focus();\n }\n }\n };\n})();\n\n(function() {\n 'use strict';\n \n angular.module('SOGo.Common')\n .directive('sgTimepicker', timePickerDirective);\n\n /**\n * @ngdoc directive\n * @name mdTimepicker\n * @module material.components.timepicker\n *\n * @param {Date} ng-model The component's model. Expects a JavaScript Date object.\n * @param {expression=} ng-change Expression evaluated when the model value changes.\n * @param {boolean=} disabled Whether the timepicker is disabled.\n *\n * @description\n * `` is a component used to select a single time.\n * For information on how to configure internationalization for the time picker,\n * see `$mdTimeLocaleProvider`.\n *\n * @usage\n * \n * \n * \n *\n */\n function timePickerDirective() {\n return {\n template: [\n // Buttons are not in the tab order because users can open the hours pane via keyboard\n // interaction on the text input, and multiple tab stops for one component (picker)\n // may be confusing.\n '',\n ' access_time',\n '',\n '
',\n ' ',\n ' ',\n '
',\n '
',\n '
',\n // This pane will be detached from here and re-attached to the document body.\n '
',\n '
',\n '
', // using mdColors\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n require: ['ngModel', 'sgTimepicker'],\n scope: {\n placeholder: '@mdPlaceholder'\n },\n controller: TimePickerCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attr, controllers) {\n var ngModelCtrl = controllers[0];\n var mdTimePickerCtrl = controllers[1];\n\n mdTimePickerCtrl.configureNgModel(ngModelCtrl);\n }\n };\n }\n\n /** Additional offset for the input's `size` attribute, which is updated based on its content. */\n var EXTRA_INPUT_SIZE = 3;\n\n /** Class applied to the container if the date is invalid. */\n var INVALID_CLASS = 'sg-timepicker-invalid';\n\n /** Default time in ms to debounce input event by. */\n var DEFAULT_DEBOUNCE_INTERVAL = 500;\n\n /**\n * Height of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-height is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_HEIGHT = { MIN5: { GTSM: 172 + 20, SM: 292 + 20 },\n MIN1: { GTSM: 364 + 20, SM: 454 + 20 } };\n\n /**\n * Width of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-width is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_WIDTH = { GTSM: 510 + 20, SM: 272 + 20 };\n\n /**\n * Controller for sg-timepicker.\n *\n * ngInject @constructor\n */\n function TimePickerCtrl($scope, $element, $attrs, $compile, $timeout, $mdConstant, $mdMedia, $mdTheming,\n $mdUtil, $mdDateLocale, $$mdDateUtil, $$rAF) {\n /** @final */\n this.$compile = $compile;\n\n /** @final */\n this.$timeout = $timeout;\n\n /** @final */\n this.dateLocale = $mdDateLocale;\n\n /** @final */\n this.dateUtil = $$mdDateUtil;\n\n /** @final */\n this.$mdConstant = $mdConstant;\n\n /** @final */\n this.$mdMedia = $mdMedia;\n\n /* @final */\n this.$mdUtil = $mdUtil;\n\n /** @final */\n this.$$rAF = $$rAF;\n\n /** @type {!angular.NgModelController} */\n this.ngModelCtrl = null;\n\n /** @type {HTMLInputElement} */\n this.inputElement = $element[0].querySelector('input');\n\n /** @type {HTMLElement} */\n this.inputContainer = $element[0].querySelector('.sg-timepicker-input-container');\n\n /** @final {!angular.JQLite} */\n this.ngInputElement = angular.element(this.inputElement);\n\n /** @type {HTMLElement} Floating time pane. */\n this.timePane = $element[0].querySelector('.sg-timepicker-time-pane');\n\n /** @type {HTMLElement} Time icon button. */\n this.timeButton = $element[0].querySelector('.sg-timepicker-button');\n\n /**\n * Element covering everything but the input in the top of the floating calendar pane.\n * @type {HTMLElement}\n */\n this.inputMask = $element[0].querySelector('.sg-timepicker-input-mask-opaque');\n\n /** @final {!angular.JQLite} */\n this.$element = $element;\n\n /** @final {!angular.Attributes} */\n this.$attrs = $attrs;\n\n /** @final {!angular.Scope} */\n this.$scope = $scope;\n\n /** @type {Date} */\n this.date = null;\n\n /** @type {boolean} */\n this.isFocused = false;\n\n /** @type {boolean} */\n this.isDisabled = false;\n this.setDisabled($element[0].disabled || angular.isString($attrs.disabled));\n\n /** @type {boolean} Whether the date-picker's calendar pane is open. */\n this.isTimeOpen = false;\n\n /**\n * Element from which the calendar pane was opened. Keep track of this so that we can return\n * focus to it when the pane is closed.\n * @type {HTMLElement}\n */\n this.timePaneOpenedFrom = null;\n\n this.timePane.id = 'sg-time-pane' + $mdUtil.nextUid();\n\n $mdTheming($element);\n\n /** Pre-bound click handler is saved so that the event listener can be removed. */\n this.bodyClickHandler = angular.bind(this, this.handleBodyClick);\n\n /** Pre-bound resize handler so that the event listener can be removed. */\n this.windowResizeHandler = $mdUtil.debounce(angular.bind(this, this.closeTimePane), 100);\n\n // Unless the user specifies so, the datepicker should not be a tab stop.\n // This is necessary because ngAria might add a tabindex to anything with an ng-model\n // (based on whether or not the user has turned that particular feature on/off).\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n this.installPropertyInterceptors();\n this.attachChangeListeners();\n this.attachInteractionListeners();\n\n var self = this;\n $scope.$on('$destroy', function() {\n self.detachTimePane();\n });\n }\n\n TimePickerCtrl.$inject = [\"$scope\", \"$element\", \"$attrs\", \"$compile\", \"$timeout\", \"$mdConstant\", \"$mdMedia\", \"$mdTheming\",\n \"$mdUtil\", \"$mdDateLocale\", \"$$mdDateUtil\", \"$$rAF\"];\n\n /**\n * Sets up the controller's reference to ngModelController.\n * @param {!angular.NgModelController} ngModelCtrl\n */\n TimePickerCtrl.prototype.configureNgModel = function(ngModelCtrl) {\n this.ngModelCtrl = ngModelCtrl;\n var self = this;\n ngModelCtrl.$render = function() {\n self.time = self.ngModelCtrl.$viewValue;\n self.inputElement.value = self.formatTime(self.time);\n self.resizeInputElement();\n };\n };\n\n TimePickerCtrl.prototype.formatTime = function(time) {\n var t = new Date(time);\n if (t) {\n var h = t.getHours();\n var m = t.getMinutes();\n return (h < 10? ('0' + h) : h) + ':' + (m < 10? ('0' + m) : m);\n }\n else return '';\n };\n /**\n * Attach event listeners for both the text input and the md-time.\n * Events are used instead of ng-model so that updates don't infinitely update the other\n * on a change. This should also be more performant than using a $watch.\n */\n TimePickerCtrl.prototype.attachChangeListeners = function() {\n var self = this;\n\n self.$scope.$on('sg-time-pane-change', function(event, data) {\n var time = new Date(data.date);\n self.ngModelCtrl.$setViewValue(time);\n self.time = time;\n self.inputElement.value = self.formatTime(self.time);\n if (data.changed == 'minutes') {\n self.closeTimePane();\n }\n self.resizeInputElement();\n self.inputContainer.classList.remove(INVALID_CLASS);\n });\n\n self.ngInputElement.on('input', angular.bind(self, self.resizeInputElement));\n self.ngInputElement.on('input', self.$mdUtil.debounce(self.handleInputEvent,\n DEFAULT_DEBOUNCE_INTERVAL, self));\n };\n\n /** Attach event listeners for user interaction. */\n TimePickerCtrl.prototype.attachInteractionListeners = function() {\n var self = this;\n var $scope = this.$scope;\n var keyCodes = this.$mdConstant.KEY_CODE;\n\n // Add event listener through angular so that we can triggerHandler in unit tests.\n self.ngInputElement.on('keydown', function(event) {\n if (event.altKey && event.keyCode == keyCodes.DOWN_ARROW) {\n self.openTimePane(event);\n $scope.$digest();\n }\n });\n\n $scope.$on('md-time-close', function() {\n self.closeTimePane();\n });\n };\n\n /**\n * Capture properties set to the time-picker and imperitively handle internal changes.\n * This is done to avoid setting up additional $watches.\n */\n TimePickerCtrl.prototype.installPropertyInterceptors = function() {\n var self = this;\n\n if (this.$attrs.ngDisabled) {\n // The expression is to be evaluated against the directive element's scope and not\n // the directive's isolate scope.\n var scope = this.$mdUtil.validateScope(this.$element) ? this.$element.scope() : null;\n if (scope) {\n scope.$watch(this.$attrs.ngDisabled, function(isDisabled) {\n self.setDisabled(isDisabled);\n });\n }\n }\n\n Object.defineProperty(this, 'placeholder', {\n get: function() { return self.inputElement.placeholder; },\n set: function(value) { self.inputElement.placeholder = value || ''; }\n });\n };\n\n /**\n * Sets whether the date-picker is disabled.\n * @param {boolean} isDisabled\n */\n TimePickerCtrl.prototype.setDisabled = function(isDisabled) {\n this.isDisabled = isDisabled;\n this.inputElement.disabled = isDisabled;\n this.timeButton.disabled = isDisabled;\n };\n\n /**\n * Resizes the input element based on the size of its content.\n */\n TimePickerCtrl.prototype.resizeInputElement = function() {\n this.inputElement.size = this.inputElement.value.length + EXTRA_INPUT_SIZE;\n };\n\n /**\n * Sets the model value if the user input is a valid time.\n * Adds an invalid class to the input element if not.\n */\n TimePickerCtrl.prototype.handleInputEvent = function(self) {\n var inputString = this.inputElement.value;\n var arr = inputString.split(':');\n\n if (inputString === '') {\n this.ngModelCtrl.$setViewValue(null);\n this.time = null;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else if (arr.length < 2) {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n else {\n var h = Number(arr[0]);\n var m = Number(arr[1]);\n var newVal = new Date(this.time);\n if (h && h >= 0 && h <= 23 && m && m >= 0 && m <= 59 && angular.isDate(newVal)) {\n newVal.setHours(h);\n newVal.setMinutes(m);\n this.ngModelCtrl.$setViewValue(newVal);\n this.time = newVal;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n }\n };\n\n /** Position and attach the floating calendar to the document. */\n TimePickerCtrl.prototype.attachTimePane = function() {\n var timePane = this.timePane;\n this.$element.addClass('sg-timepicker-open');\n this.$element.find('button').addClass('md-primary');\n\n var elementRect = this.inputContainer.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n\n // Check to see if the calendar pane would go off the screen. If so, adjust position\n // accordingly to keep it within the viewport.\n var paneTop = elementRect.top - bodyRect.top;\n var paneLeft = elementRect.left - bodyRect.left;\n\n // If the right edge of the pane would be off the screen and shifting it left by the\n // difference would not go past the left edge of the screen.\n var paneWidth = this.$mdMedia('sm')? TIME_PANE_WIDTH.SM : TIME_PANE_WIDTH.GTSM;\n if (paneLeft + paneWidth > bodyRect.right &&\n bodyRect.right - paneWidth > 0) {\n paneLeft = bodyRect.right - paneWidth;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n timePane.style.left = paneLeft + 'px';\n\n // If the bottom edge of the pane would be off the screen and shifting it up by the\n // difference would not go past the top edge of the screen.\n var min = (typeof this.time == 'object' && this.time.getMinutes() % 5 === 0)? 'MIN5' : 'MIN1';\n var paneHeight = this.$mdMedia('sm')? TIME_PANE_HEIGHT[min].SM : TIME_PANE_HEIGHT[min].GTSM;\n if (paneTop + paneHeight > bodyRect.bottom &&\n bodyRect.bottom - paneHeight > 0) {\n paneTop = bodyRect.bottom - paneHeight;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n\n timePane.style.top = paneTop + 'px';\n document.body.appendChild(this.timePane);\n\n // The top of the calendar pane is a transparent box that shows the text input underneath.\n // Since the pane is floating, though, the page underneath the pane *adjacent* to the input is\n // also shown unless we cover it up. The inputMask does this by filling up the remaining space\n // based on the width of the input.\n this.inputMask.style.left = elementRect.width + 'px';\n\n // Add CSS class after one frame to trigger open animation.\n this.$$rAF(function() {\n timePane.classList.add('md-pane-open');\n });\n };\n\n /** Detach the floating time pane from the document. */\n TimePickerCtrl.prototype.detachTimePane = function() {\n this.$element.removeClass('sg-timepicker-open');\n this.$element.find('button').removeClass('md-primary');\n this.timePane.classList.remove('md-pane-open');\n this.timePane.classList.remove('md-timepicker-pos-adjusted');\n\n if (this.timePane.parentNode) {\n // Use native DOM removal because we do not want any of the angular state of this element\n // to be disposed.\n this.timePane.parentNode.removeChild(this.timePane);\n }\n };\n\n /**\n * Open the floating time pane.\n * @param {Event} event\n */\n TimePickerCtrl.prototype.openTimePane = function(event) {\n if (!this.isTimeOpen && !this.isDisabled) {\n this.isTimeOpen = true;\n this.timePaneOpenedFrom = event.target;\n this.attachTimePane();\n //this.focusTime();\n\n // Because the time pane is attached directly to the body, it is possible that the\n // rest of the component (input, etc) is in a different scrolling container, such as\n // an md-content. This means that, if the container is scrolled, the pane would remain\n // stationary. To remedy this, we disable scrolling while the time pane is open, which\n // also matches the native behavior for things like `'," ",' '+l("No file chosen")+"",' {{ uploader.queue[0].file.name }}'," "," ",'
',' '+l("Upload")+"","
",""].join(""),controller:CardsImportDialogController,locals:{folder:folder}}),CardsImportDialogController.$inject=["scope","$mdDialog","folder"]}function exportCards(){window.location.href=ApplicationBaseURL+"/"+vm.service.selectedFolder.id+"/exportFolder"}function showLinks(addressbook){function LinksDialogController($mdDialog,addressbook){function close(){$mdDialog.hide()}this.addressbook=addressbook,this.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:addressbook.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{addressbook:addressbook}}),LinksDialogController.$inject=["$mdDialog","addressbook"]}function share(addressbook){addressbook.$acl.$users().then(function(){$mdDialog.show({templateUrl:addressbook.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:addressbook.$acl.users,User:User,folder:addressbook}})})}function subscribeToFolder(addressbookData){console.debug("subscribeToFolder "+addressbookData.owner+addressbookData.name),AddressBook.$subscribe(addressbookData.owner,addressbookData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}var vm=this;vm.activeUser=Settings.activeUser,vm.service=AddressBook,vm.select=select,vm.newAddressbook=newAddressbook,vm.edit=edit,vm.revertEditing=revertEditing,vm.save=save,vm.confirmDelete=confirmDelete,vm.importCards=importCards,vm.exportCards=exportCards,vm.showLinks=showLinks,vm.share=share,vm.subscribeToFolder=subscribeToFolder}AddressBooksController.$inject=["$state","$scope","$rootScope","$stateParams","$timeout","$mdDialog","$mdToast","FileUploader","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"],angular.module("SOGo.ContactsUI").controller("AddressBooksController",AddressBooksController)}(),function(){"use strict";function CardController($scope,$timeout,$mdDialog,AddressBook,Card,Dialog,focus,$state,$stateParams,stateCard){function addOrgUnit(){var i=vm.card.$addOrgUnit("");focus("orgUnit_"+i)}function addBirthday(){vm.card.birthday=new Date}function addEmail(){var i=vm.card.$addEmail("");focus("email_"+i)}function addPhone(){var i=vm.card.$addPhone("");focus("phone_"+i)}function addUrl(){var i=vm.card.$addUrl("","");focus("url_"+i)}function addAddress(){var i=vm.card.$addAddress("","","","","","","","");focus("address_"+i)}function addMember(){var i=vm.card.$addMember("");focus("ref_"+i)}function userFilter($query,excludedCards){return AddressBook.selectedFolder.$filter($query,{dry:!0,excludeLists:!0},excludedCards),AddressBook.selectedFolder.$cards}function save(form){form.$valid&&vm.card.$save().then(function(data){var i=_.indexOf(_.pluck(AddressBook.selectedFolder.cards,"id"),vm.card.id);0>i?AddressBook.selectedFolder.$reload():AddressBook.selectedFolder.cards[i]=angular.copy(vm.card),$state.go("app.addressbook.card.view",{cardId:vm.card.id})})["catch"](function(err){console.log(err)})}function close(){$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id}).then(function(){vm.card=null,delete AddressBook.selectedFolder.selectedCard})}function reset(){vm.card.$reset()}function cancel(){vm.card.$reset(),vm.card.isNew?(vm.card=null,delete AddressBook.selectedFolder.selectedCard,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})):$state.go("app.addressbook.card.view",{cardId:vm.card.id})}function confirmDelete(card){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the card of %{0}?",card.$fullname()),{ok:l("Yes"),cancel:l("No")}).then(function(){card.$delete().then(function(){AddressBook.selectedFolder.cards=_.reject(AddressBook.selectedFolder.cards,function(o){return o.id==card.id}),vm.card=null,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})},function(data,status){Dialog.alert(l("Warning"),l('An error occured while deleting the card "%{0}".',card.$fullname()))})})}function exportCard(){window.location.href=ApplicationBaseURL+"/"+vm.currentFolder.id+"/export?uid="+vm.card.id}function viewRawSource($event){Card.$$resource.post(vm.currentFolder.id+"/"+vm.card.id,"raw").then(function(data){function CardRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:CardRawSourceDialogController}),CardRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this;vm.card=stateCard,vm.currentFolder=AddressBook.selectedFolder,vm.allEmailTypes=Card.$EMAIL_TYPES,vm.allTelTypes=Card.$TEL_TYPES,vm.allUrlTypes=Card.$URL_TYPES,vm.allAddressTypes=Card.$ADDRESS_TYPES,vm.categories={},vm.userFilterResults=[],vm.addOrgUnit=addOrgUnit,vm.addBirthday=addBirthday,vm.addEmail=addEmail,vm.addPhone=addPhone,vm.addUrl=addUrl,vm.addAddress=addAddress,vm.addMember=addMember,vm.userFilter=userFilter,vm.save=save,vm.close=close,vm.reset=reset,vm.cancel=cancel,vm.confirmDelete=confirmDelete,vm.exportCard=exportCard,vm.viewRawSource=viewRawSource}CardController.$inject=["$scope","$timeout","$mdDialog","AddressBook","Card","Dialog","sgFocus","$state","$stateParams","stateCard"],angular.module("SOGo.ContactsUI").controller("CardController",CardController)}(),function(){"use strict";function sgAddress(){return{restrict:"A",scope:{data:"=sgAddress"},controller:["$scope",function($scope){$scope.addressLines=function(data){var lines=[],locality_region=[];return data.street&&lines.push(data.street),data.street2&&lines.push(data.street2),data.locality&&locality_region.push(data.locality),data.region&&locality_region.push(data.region),locality_region.length>0&&lines.push(locality_region.join(", ")),data.country&&lines.push(data.country),data.postalcode&&lines.push(data.postalcode),lines.join("
")}}],template:'
'}}angular.module("SOGo.Common").directive("sgAddress",sgAddress)}(); +(function(){"use strict";angular.module("SOGo.ContactsUI",["ngSanitize","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(configure).run(runBlock);configure.$inject=["$stateProvider","$urlRouterProvider"];function configure($stateProvider,$urlRouterProvider){$stateProvider.state("app",{url:"/addressbooks","abstract":true,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":true,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")}stateAddressbooks.$inject=["AddressBook"];function stateAddressbooks(AddressBook){return AddressBook.$findAll(window.contactFolders)}stateAddressbook.$inject=["$stateParams","stateAddressbooks","AddressBook"];function stateAddressbook($stateParams,stateAddressbooks,AddressBook){var addressbook=_.find(stateAddressbooks,function(addressbook){return addressbook.id==$stateParams.addressbookId});addressbook.$reload();return addressbook}stateNewCard.$inject=["$stateParams","stateAddressbook","Card"];function stateNewCard($stateParams,stateAddressbook,Card){var tag="v"+$stateParams.contactType,card=new Card({pid:$stateParams.addressbookId,c_component:tag});stateAddressbook.selectedCard=true;return card}stateCard.$inject=["$stateParams","stateAddressbook"];function stateCard($stateParams,stateAddressbook){stateAddressbook.selectedCard=$stateParams.cardId;return stateAddressbook.$getCard($stateParams.cardId)}runBlock.$inject=["$rootScope","$log","$state"];function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error);$state.go("app")});$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}})();(function(){"use strict";AddressBookController.$inject=["$scope","$q","$state","$timeout","$mdDialog","Account","Card","AddressBook","Dialog","sgSettings","stateAddressbooks","stateAddressbook"];function AddressBookController($scope,$q,$state,$timeout,$mdDialog,Account,Card,AddressBook,Dialog,Settings,stateAddressbooks,stateAddressbook){var vm=this;AddressBook.selectedFolder=stateAddressbook;vm.service=AddressBook;vm.selectedFolder=stateAddressbook;vm.selectCard=selectCard;vm.toggleCardSelection=toggleCardSelection;vm.newComponent=newComponent;vm.notSelectedComponent=notSelectedComponent;vm.unselectCards=unselectCards;vm.confirmDeleteSelectedCards=confirmDeleteSelectedCards;vm.saveSelectedCards=saveSelectedCards;vm.copySelectedCards=copySelectedCards;vm.selectAll=selectAll;vm.sort=sort;vm.sortedBy=sortedBy;vm.cancelSearch=cancelSearch;vm.newMessage=newMessage;vm.newMessageWithSelectedCards=newMessageWithSelectedCards;vm.newMessageWithRecipient=newMessageWithRecipient;vm.mode={search:false};function selectCard(card){$state.go("app.addressbook.card.view",{addressbookId:stateAddressbook.id,cardId:card.id})}function toggleCardSelection($event,card){card.selected=!card.selected;$event.preventDefault();$event.stopPropagation()}function newComponent(ev){$mdDialog.show({parent:angular.element(document.body),targetEvent:ev,clickOutsideToClose:true,escapeToClose:true,template:[''," ",'
'," "," "+l("Contact")," "," "," "+l("List")," ","
","
","
"].join(""),locals:{addressbookId:vm.selectedFolder.id},controller:ComponentDialogController});ComponentDialogController.$inject=["scope","$mdDialog","$state","addressbookId"];function ComponentDialogController(scope,$mdDialog,$state,addressbookId){scope.create=function(type){$mdDialog.hide();$state.go("app.addressbook.new",{addressbookId:addressbookId,contactType:type})}}}function notSelectedComponent(currentCard,type){return currentCard&¤tCard.c_component==type&&!currentCard.selected}function unselectCards(){_.each(vm.selectedFolder.cards,function(card){card.selected=false})}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});var 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=true})}function sort(field){vm.selectedFolder.$filter("",{sort:field})}function sortedBy(field){return AddressBook.$query.sort==field}function cancelSearch(){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];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(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.module("SOGo.ContactsUI").controller("AddressBookController",AddressBookController)})();(function(){"use strict";AddressBooksController.$inject=["$state","$scope","$rootScope","$stateParams","$timeout","$mdDialog","$mdToast","$mdMedia","$mdSidenav","FileUploader","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"];function AddressBooksController($state,$scope,$rootScope,$stateParams,$timeout,$mdDialog,$mdToast,$mdMedia,$mdSidenav,FileUploader,focus,Card,AddressBook,Dialog,Settings,User,stateAddressbooks){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.showProperties=showProperties;vm.share=share;vm.subscribeToFolder=subscribeToFolder;function select($event,folder){if($state.params.addressbookId!=folder.id&&vm.editMode!=folder.id){vm.editMode=false;AddressBook.$query.value="";if($mdMedia("sm"))$mdSidenav("left").close();$state.go("app.addressbook",{addressbookId:folder.id})}else{$event.preventDefault();$event.stopPropagation()}}function newAddressbook(){Dialog.prompt(l("New addressbook"),l("Name of new addressbook")).then(function(name){var addressbook=new AddressBook({name:name,isEditable:true,isRemote:false,owner:UserLogin});AddressBook.$add(addressbook)})}function edit(folder){if(!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=false}function save(folder){var name=folder.name;if(name&&name.length>0&&name!=vm.originalAddressbook.name){folder.$rename(name).then(function(data){vm.editMode=false},function(data,status){Dialog.alert(l("Warning"),data)})}}function confirmDelete(){if(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))})}else{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(){vm.service.selectedFolder=null;return true}).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){$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:true,escapeToClose:true,templateUrl:"UIxContactsImportDialog",controller:CardsImportDialogController,controllerAs:"$CardsImportDialogController",locals:{folder:folder}});CardsImportDialogController.$inject=["scope","$mdDialog","folder"];function CardsImportDialogController(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 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(msg).position("top right").hideDelay(3e3))},onErrorItem:function(item,response,status,headers){$mdToast.show({template:["",' error_outline'," "+l("An error occured while importing contacts.")+"",""].join(""),position:"top right",hideDelay:3e3})}});vm.close=function(){$mdDialog.hide()};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:3e3});return isTextFile}}}function exportCards(){window.location.href=ApplicationBaseURL+"/"+vm.service.selectedFolder.id+"/exportFolder"}function showLinks(addressbook){$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:true,escapeToClose:true,templateUrl:addressbook.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{addressbook:addressbook}});LinksDialogController.$inject=["$mdDialog","addressbook"];function LinksDialogController($mdDialog,addressbook){var vm=this;this.addressbook=addressbook;this.close=close;function close(){$mdDialog.hide()}}}function showProperties(addressbook){$mdDialog.show({templateUrl:addressbook.id+"/properties",controller:PropertiesDialogController,controllerAs:"properties",clickOutsideToClose:true,escapeToClose:true,locals:{srcAddressBook:addressbook}}).catch(function(){});PropertiesDialogController.$inject=["$scope","$mdDialog","srcAddressBook"];function PropertiesDialogController($scope,$mdDialog,srcAddressBook){var vm=this;vm.addressbook=new AddressBook(srcAddressBook.$omit());vm.saveProperties=saveProperties;vm.close=close;function saveProperties(){vm.addressbook.$save().then(function(){srcAddressBook.init(vm.addressbook.$omit());$mdDialog.hide()},function(){})}function close(){$mdDialog.cancel()}}}function share(addressbook){addressbook.$acl.$users().then(function(){$mdDialog.show({templateUrl:addressbook.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:true,escapeToClose:true,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."))})}}angular.module("SOGo.ContactsUI").controller("AddressBooksController",AddressBooksController)})();(function(){"use strict";CardController.$inject=["$scope","$timeout","$mdDialog","AddressBook","Card","Dialog","sgFocus","$state","$stateParams","stateCard"];function CardController($scope,$timeout,$mdDialog,AddressBook,Card,Dialog,focus,$state,$stateParams,stateCard){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.addScreenName=addScreenName;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.toggleRawSource=toggleRawSource;vm.showRawSource=false;function addOrgUnit(){var i=vm.card.$addOrgUnit("");focus("orgUnit_"+i)}function addBirthday(){vm.card.birthday=new Date}function addScreenName(){vm.card.$addScreenName("")}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){AddressBook.selectedFolder.$filter($query,{dry:true,excludeLists:true},excludedCards);return AddressBook.selectedFolder.$cards}function save(form){if(form.$valid){vm.card.$save().then(function(data){var i=_.indexOf(_.pluck(AddressBook.selectedFolder.cards,"id"),vm.card.id);if(i<0){AddressBook.selectedFolder.$reload()}else{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();if(vm.card.isNew){vm.card=null;delete AddressBook.selectedFolder.selectedCard;$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})}else{$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});close()},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 toggleRawSource($event){if(!vm.showRawSource&&!vm.rawSource){Card.$$resource.post(vm.currentFolder.id+"/"+vm.card.id,"raw").then(function(data){vm.rawSource=data;vm.showRawSource=true})}else{vm.showRawSource=!vm.showRawSource}}}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=[];if(data.street)lines.push(data.street);if(data.street2)lines.push(data.street2);if(data.locality)locality_region.push(data.locality);if(data.region)locality_region.push(data.region);if(locality_region.length>0)lines.push(locality_region.join(", "));if(data.country)lines.push(data.country);if(data.postalcode)lines.push(data.postalcode);return 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 bb01f35a8..e9670d1a9 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","$log","$state","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","angular","module","config","run","$inject","AddressBookController","$scope","$q","$timeout","$mdDialog","focus","Account","Dialog","Settings","selectCard","id","toggleCardSelection","$event","selected","preventDefault","stopPropagation","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","unselectCards","_","each","cards","confirmDeleteSelectedCards","confirm","then","selectedCards","filter","$deleteCards","data","status","saveSelectedCards","selectedUIDs","pluck","location","href","ApplicationBaseURL","copySelectedCards","folder","$copyCards","alert","selectAll","sort","field","$filter","sortedBy","$query","cancelSearch","mode","search","newMessage","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","stateAccounts","stateMessage","stateRecipients","newMessageWithRecipient","recipient","fn","full","newMessageWithSelectedCards","promises","c_mail","length","push","c_cn","isDefined","refs","ref","email","$futureCardData","all","this","service","AddressBooksController","$mdToast","FileUploader","User","select","params","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","$rename","confirmDelete","isSubscription","$delete","importCards","CardsImportDialogController","uploader","onProgressItem","item","progress","console","debug","onSuccessItem","response","headers","JSON","stringify","undefined","simple","content","imported","position","hideDelay","$reload","onCancelItem","onErrorItem","close","upload","uploadAll","exportCards","showLinks","LinksDialogController","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","$subscribe","activeUser","CardController","addOrgUnit","i","$addOrgUnit","addBirthday","birthday","Date","addEmail","$addEmail","addPhone","$addPhone","addUrl","$addUrl","addAddress","$addAddress","addMember","$addMember","userFilter","excludedCards","dry","excludeLists","$cards","form","$valid","$save","indexOf","copy","err","log","reset","$reset","cancel","isNew","$fullname","ok","reject","exportCard","currentFolder","viewRawSource","$$resource","post","CardRawSourceDialogController","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoContacts */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.ContactsUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'ck', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('app', {\n url: '/addressbooks',\n abstract: true,\n views: {\n addressbooks: {\n templateUrl: 'UIxContactFoldersView', // UI/Templates/Contacts/UIxContactFoldersView.wox\n controller: 'AddressBooksController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAddressbooks: stateAddressbooks\n }\n })\n .state('app.addressbook', {\n url: '/:addressbookId',\n views: {\n addressbook: {\n templateUrl: 'addressbook',\n controller: 'AddressBookController',\n controllerAs: 'addressbook'\n }\n },\n resolve: {\n stateAddressbook: stateAddressbook\n }\n })\n .state('app.addressbook.new', {\n url: '/{contactType:(?:card|list)}/new',\n views: {\n card: {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n },\n resolve: {\n stateCard: stateNewCard\n }\n })\n .state('app.addressbook.card', {\n url: '/:cardId',\n abstract: true,\n views: {\n card: {\n template: ''\n }\n },\n resolve: {\n stateCard: stateCard\n }\n })\n .state('app.addressbook.card.view', {\n url: '/view',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactViewTemplate', // UI/Templates/Contacts/UIxContactViewTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n })\n .state('app.addressbook.card.editor', {\n url: '/edit',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/addressbooks/personal');\n }\n\n /**\n * @ngInject\n */\n stateAddressbooks.$inject = ['AddressBook'];\n function stateAddressbooks(AddressBook) {\n return AddressBook.$findAll(window.contactFolders);\n }\n\n /**\n * @ngInject\n */\n stateAddressbook.$inject = ['$stateParams', 'AddressBook'];\n function stateAddressbook($stateParams, AddressBook) {\n return AddressBook.$find($stateParams.addressbookId).$futureAddressBookData;\n }\n\n /**\n * @ngInject\n */\n stateNewCard.$inject = ['$stateParams', 'stateAddressbook', 'Card'];\n function stateNewCard($stateParams, stateAddressbook, Card) {\n var tag = 'v' + $stateParams.contactType,\n card = new Card({ pid: $stateParams.addressbookId, c_component: tag });\n stateAddressbook.selectedCard = true;\n return card;\n }\n\n /**\n * @ngInject\n */\n stateCard.$inject = ['$stateParams', 'stateAddressbook'];\n function stateCard($stateParams, stateAddressbook) {\n stateAddressbook.selectedCard = $stateParams.cardId;\n return stateAddressbook.$getCard($stateParams.cardId);\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$state'];\n function runBlock($rootScope, $log, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('app');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBookController.$inject = ['$scope', '$q', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Account', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $q, $state, $timeout, $mdDialog, focus, Account, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.service = AddressBook;\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\n vm.toggleCardSelection = toggleCardSelection;\n vm.newComponent = newComponent;\n vm.notSelectedComponent = notSelectedComponent;\n vm.unselectCards = unselectCards;\n vm.confirmDeleteSelectedCards = confirmDeleteSelectedCards;\n vm.saveSelectedCards = saveSelectedCards;\n vm.copySelectedCards = copySelectedCards;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.newMessageWithSelectedCards = newMessageWithSelectedCards;\n vm.newMessageWithRecipient = newMessageWithRecipient;\n vm.mode = { search: false };\n \n function selectCard(card) {\n $state.go('app.addressbook.card.view', {addressbookId: stateAddressbook.id, cardId: card.id});\n }\n \n function toggleCardSelection($event, card) {\n card.selected = !card.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function newComponent(ev) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: ev,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' ',\n ' ' + l('Contact'),\n ' ',\n ' ',\n ' ' + l('List'),\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n locals: {\n addressbookId: vm.selectedFolder.id\n },\n controller: ComponentDialogController\n });\n \n /**\n * @ngInject\n */\n ComponentDialogController.$inject = ['scope', '$mdDialog', '$state', 'addressbookId'];\n function ComponentDialogController(scope, $mdDialog, $state, addressbookId) {\n scope.create = function(type) {\n $mdDialog.hide();\n $state.go('app.addressbook.new', { addressbookId: addressbookId, contactType: type });\n };\n }\n }\n\n function notSelectedComponent(currentCard, type) {\n return (currentCard && currentCard.c_component == type && !currentCard.selected);\n }\n\n function unselectCards() {\n _.each(vm.selectedFolder.cards, function(card) { card.selected = false; });\n }\n \n function confirmDeleteSelectedCards() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected contacts?'))\n .then(function() {\n // User confirmed the deletion\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$deleteCards(selectedCards);\n delete vm.selectedFolder.selectedCard;\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function saveSelectedCards() {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var selectedUIDs = _.pluck(selectedCards, 'id');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/export?uid=' + selectedUIDs.join('&uid=');\n }\n\n function copySelectedCards(folder) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$copyCards(selectedCards, folder).then(function() {\n // TODO: refresh target addressbook?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.cards, function(card) {\n card.selected = true;\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter('', { sort: field });\n }\n\n function sortedBy(field) {\n return AddressBook.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter('');\n }\n\n function newMessage($event, recipients) {\n Account.$findAll().then(function(accounts) {\n var account = _.filter(accounts, function(o) {\n if (o.id === 0)\n return o;\n })[0];\n\n // We must initialize the Account with its mailbox\n // list before proceeding with message's creation\n account.$getMailboxes().then(function(mailboxes) {\n account.$newMessage().then(function(message) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: '../Mail/UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n });\n });\n });\n });\n }\n\n function newMessageWithRecipient($event, recipient, fn) {\n var recipients = [{full: fn + ' <' + recipient + '>'}];\n vm.newMessage($event, recipients);\n }\n\n function newMessageWithSelectedCards($event) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var promises = [], recipients = [];\n\n _.each(selectedCards, function(card) {\n if (card.c_component == 'vcard' && card.c_mail.length) {\n recipients.push({full: card.c_cn + ' <' + card.c_mail + '>'});\n }\n else if (card.c_component == 'vlist') {\n // If the list's members were already fetch, use them\n if (angular.isDefined(card.refs) && card.refs.length) {\n _.each(card.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n }\n else {\n promises.push(vm.selectedFolder.$getCard(card.id).then(function(card) {\n return card.$futureCardData.then(function(data) {\n _.each(data.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n });\n }));\n }\n }\n });\n\n $q.all(promises).then(function() {\n if (recipients.length)\n vm.newMessage($event, recipients);\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI') \n .controller('AddressBookController', AddressBookController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBooksController.$inject = ['$state', '$scope', '$rootScope', '$stateParams', '$timeout', '$mdDialog', '$mdToast', 'FileUploader', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'User', 'stateAddressbooks'];\n function AddressBooksController($state, $scope, $rootScope, $stateParams, $timeout, $mdDialog, $mdToast, FileUploader, focus, Card, AddressBook, Dialog, Settings, User, stateAddressbooks) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = AddressBook;\n vm.select = select;\n vm.newAddressbook = newAddressbook;\n vm.edit = edit;\n vm.revertEditing = revertEditing;\n vm.save = save;\n vm.confirmDelete = confirmDelete;\n vm.importCards = importCards;\n vm.exportCards = exportCards;\n vm.showLinks = showLinks;\n vm.share = share;\n vm.subscribeToFolder = subscribeToFolder;\n\n function select($event, folder) {\n if ($state.params.addressbookId != folder.id &&\n vm.editMode != folder.id) {\n vm.editMode = false;\n AddressBook.$query.value = '';\n $state.go('app.addressbook', {addressbookId: folder.id});\n }\n else {\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n function newAddressbook() {\n Dialog.prompt(l('New addressbook'),\n l('Name of new addressbook'))\n .then(function(name) {\n var addressbook = new AddressBook(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n AddressBook.$add(addressbook);\n });\n }\n\n function edit(folder) {\n if (!folder.isRemote) {\n vm.editMode = folder.id;\n vm.originalAddressbook = angular.extend({}, folder.$omit());\n focus('addressBookName_' + folder.id);\n }\n }\n\n function revertEditing(folder) {\n folder.name = vm.originalAddressbook.name;\n vm.editMode = false;\n }\n\n function save(folder) {\n var name = folder.name;\n if (name && name.length > 0 && name != vm.originalAddressbook.name) {\n folder.$rename(name)\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n }\n\n function confirmDelete() {\n if (vm.service.selectedFolder.isSubscription) {\n // Unsubscribe without confirmation\n vm.service.selectedFolder.$delete()\n .then(function() {\n vm.service.selectedFolder = null;\n $state.go('app.addressbook', { addressbookId: 'personal' });\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the addressbook %{0}?',\n vm.service.selectedFolder.name))\n .then(function() {\n return vm.service.selectedFolder.$delete();\n })\n .then(function() {\n vm.service.selectedFolder = null;\n return true;\n })\n .catch(function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n }\n\n function importCards($event, folder) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' import_export',\n '
',\n '
' + l('Import Cards') + '
',\n '
',\n ' ',\n ' close',\n ' ',\n '
',\n '
',\n ' ',\n '
',\n '
',\n ' ' + l('Select a vCard or LDIF file.') + '',\n ' ',\n ' ',\n '
',\n ' ' + l('No file chosen') + '',\n ' 0\">{{ uploader.queue[0].file.name }}',\n '
',\n '
',\n '
',\n ' ' + l('Upload') + '',\n '
',\n '
'\n ].join(''),\n controller: CardsImportDialogController,\n locals: {\n folder: folder\n }\n });\n\n /**\n * @ngInject\n */\n CardsImportDialogController.$inject = ['scope', '$mdDialog', 'folder'];\n function CardsImportDialogController(scope, $mdDialog, folder) {\n\n scope.uploader = new FileUploader({\n url: ApplicationBaseURL + '/' + folder.id + '/import',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n $mdDialog.hide();\n $mdToast.show(\n $mdToast.simple()\n .content(l('A total of %{0} cards were imported in the addressbook.', response.imported))\n .position('top right')\n .hideDelay(3000));\n AddressBook.selectedFolder.$reload();\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n scope.close = function() {\n $mdDialog.hide();\n };\n scope.upload = function() {\n scope.uploader.uploadAll();\n };\n }\n }\n\n function exportCards() {\n window.location.href = ApplicationBaseURL + '/' + vm.service.selectedFolder.id + '/exportFolder';\n }\n\n function showLinks(addressbook) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: addressbook.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n addressbook: addressbook\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'addressbook'];\n function LinksDialogController($mdDialog, addressbook) {\n var vm = this;\n this.addressbook = addressbook;\n this.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function share(addressbook) {\n // Fetch list of ACL users\n addressbook.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: addressbook.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: addressbook.$acl.users,\n User: User,\n folder: addressbook\n }\n });\n });\n }\n\n /**\n * subscribeToFolder - Callback of sgSubscribe directive\n */\n function subscribeToFolder(addressbookData) {\n console.debug('subscribeToFolder ' + addressbookData.owner + addressbookData.name);\n AddressBook.$subscribe(addressbookData.owner, addressbookData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('AddressBooksController', AddressBooksController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Controller to view and edit a card\n * @ngInject\n */\n CardController.$inject = ['$scope', '$timeout', '$mdDialog', 'AddressBook', 'Card', 'Dialog', 'sgFocus', '$state', '$stateParams', 'stateCard'];\n function CardController($scope, $timeout, $mdDialog, AddressBook, Card, Dialog, focus, $state, $stateParams, stateCard) {\n var vm = this;\n\n vm.card = stateCard;\n\n vm.currentFolder = AddressBook.selectedFolder;\n vm.allEmailTypes = Card.$EMAIL_TYPES;\n vm.allTelTypes = Card.$TEL_TYPES;\n vm.allUrlTypes = Card.$URL_TYPES;\n vm.allAddressTypes = Card.$ADDRESS_TYPES;\n vm.categories = {};\n vm.userFilterResults = [];\n vm.addOrgUnit = addOrgUnit;\n vm.addBirthday = addBirthday;\n vm.addEmail = addEmail;\n vm.addPhone = addPhone;\n vm.addUrl = addUrl;\n vm.addAddress = addAddress;\n vm.addMember = addMember;\n vm.userFilter = userFilter;\n vm.save = save;\n vm.close = close;\n vm.reset = reset;\n vm.cancel = cancel;\n vm.confirmDelete = confirmDelete;\n vm.exportCard = exportCard;\n vm.viewRawSource = viewRawSource;\n\n function addOrgUnit() {\n var i = vm.card.$addOrgUnit('');\n focus('orgUnit_' + i);\n }\n function addBirthday() {\n vm.card.birthday = new Date();\n }\n function addEmail() {\n var i = vm.card.$addEmail('');\n focus('email_' + i);\n }\n function addPhone() {\n var i = vm.card.$addPhone('');\n focus('phone_' + i);\n }\n function addUrl() {\n var i = vm.card.$addUrl('', '');\n focus('url_' + i);\n }\n function addAddress() {\n var i = vm.card.$addAddress('', '', '', '', '', '', '', '');\n focus('address_' + i);\n }\n function addMember() {\n var i = vm.card.$addMember('');\n focus('ref_' + i);\n }\n function userFilter($query, excludedCards) {\n AddressBook.selectedFolder.$filter($query, {dry: true, excludeLists: true}, excludedCards);\n return AddressBook.selectedFolder.$cards;\n }\n function save(form) {\n if (form.$valid) {\n vm.card.$save()\n .then(function(data) {\n var i = _.indexOf(_.pluck(AddressBook.selectedFolder.cards, 'id'), vm.card.id);\n if (i < 0) {\n // New card; reload contacts list and show addressbook in which the card has been created\n AddressBook.selectedFolder.$reload();\n }\n else {\n // Update contacts list with new version of the Card object\n AddressBook.selectedFolder.cards[i] = angular.copy(vm.card);\n }\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n })\n .catch(function(err) {\n console.log(err);\n });\n }\n }\n function close() {\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }).then(function() {\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n });\n }\n function reset() {\n vm.card.$reset();\n }\n function cancel() {\n vm.card.$reset();\n if (vm.card.isNew) {\n // Cancelling the creation of a card\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }\n else {\n // Cancelling the edition of an existing card\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n }\n }\n function confirmDelete(card) {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the card of %{0}?', card.$fullname()),\n {ok: l('Yes'), cancel: l('No')})\n .then(function() {\n // User confirmed the deletion\n card.$delete()\n .then(function() {\n // Remove card from list of addressbook\n AddressBook.selectedFolder.cards = _.reject(AddressBook.selectedFolder.cards, function(o) {\n return o.id == card.id;\n });\n // Remove card object from scope\n vm.card = null;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured while deleting the card \"%{0}\".',\n card.$fullname()));\n });\n });\n }\n\n function exportCard() {\n window.location.href = ApplicationBaseURL + '/' + vm.currentFolder.id + '/export?uid=' + vm.card.id;\n }\n\n function viewRawSource($event) {\n Card.$$resource.post(vm.currentFolder.id + '/' + vm.card.id, \"raw\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: CardRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n CardRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function CardRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('CardController', CardController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name sgAddress\n * @memberof ContactsUI\n * @desc Directive to format a postal address.\n * @ngInject\n */\n function sgAddress() {\n return {\n restrict: 'A',\n scope: { data: '=sgAddress' },\n controller: ['$scope', function($scope) {\n $scope.addressLines = function(data) {\n var lines = [],\n locality_region = [];\n if (data.street) lines.push(data.street);\n if (data.street2) lines.push(data.street2);\n if (data.locality) locality_region.push(data.locality);\n if (data.region) locality_region.push(data.region);\n if (locality_region.length > 0) lines.push(locality_region.join(', '));\n if (data.country) lines.push(data.country);\n if (data.postalcode) lines.push(data.postalcode);\n return lines.join('
');\n };\n }],\n template: '
'\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgAddress', sgAddress);\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Contacts/Contacts.app.js","Contacts/AddressBookController.js","Contacts/AddressBooksController.js","Contacts/CardController.js","Contacts/sgAddress.directive.js"],"names":["angular","module","config","configure","run","runBlock","$inject","$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","id","addressbookId","$reload","Card","tag","contactType","pid","c_component","selectedCard","cardId","$getCard","$rootScope","$log","$state","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","AddressBookController","$scope","$q","$timeout","$mdDialog","Account","Dialog","Settings","vm","this","selectedFolder","service","selectCard","toggleCardSelection","newComponent","notSelectedComponent","unselectCards","confirmDeleteSelectedCards","saveSelectedCards","copySelectedCards","selectAll","sort","sortedBy","cancelSearch","newMessage","newMessageWithSelectedCards","newMessageWithRecipient","mode","search","$event","selected","preventDefault","stopPropagation","ev","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","ComponentDialogController","scope","create","type","hide","currentCard","each","cards","confirm","then","selectedCards","filter","$deleteCards","data","status","selectedUIDs","pluck","location","href","ApplicationBaseURL","folder","$copyCards","alert","field","$filter","$query","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","stateAccounts","stateMessage","stateRecipients","recipient","fn","full","promises","c_mail","length","push","c_cn","isDefined","refs","ref","email","$futureCardData","all","AddressBooksController","$mdToast","$mdMedia","$mdSidenav","FileUploader","focus","User","activeUser","select","newAddressbook","edit","revertEditing","save","confirmDelete","importCards","exportCards","showLinks","showProperties","share","subscribeToFolder","params","editMode","value","close","prompt","name","isEditable","isRemote","owner","UserLogin","$add","originalAddressbook","extend","$omit","$rename","isSubscription","$delete","catch","CardsImportDialogController","uploader","autoUpload","queueLimit","filters","filterByExtension","onSuccessItem","item","response","headers","msg","imported","simple","content","position","hideDelay","onErrorItem","isTextFile","indexOf","test","LinksDialogController","PropertiesDialogController","srcAddressBook","saveProperties","$save","init","cancel","$acl","$users","usersWithACL","users","addressbookData","console","debug","$subscribe","CardController","currentFolder","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","addOrgUnit","addBirthday","addScreenName","addEmail","addPhone","addUrl","addAddress","addMember","userFilter","reset","exportCard","toggleRawSource","showRawSource","i","$addOrgUnit","birthday","Date","$addScreenName","$addEmail","$addPhone","$addUrl","$addAddress","$addMember","excludedCards","dry","excludeLists","$cards","form","$valid","copy","err","log","$reset","isNew","$fullname","ok","reject","rawSource","$$resource","post","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"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","file":"Contacts.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Contacts.services.js b/UI/WebServerResources/js/Contacts.services.js index ec80237cc..d5cb6f113 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","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("AddressBook",AddressBook.$factory),AddressBook.$filterAll=function(search,options,excludedCards){var params={search:search};if(!search)return AddressBook.$cards=[],AddressBook.$q.when(AddressBook.$cards);if(angular.isUndefined(AddressBook.$cards))AddressBook.$cards=[];else if(AddressBook.$query.value==search)return AddressBook.$q.when(AddressBook.$cards);return AddressBook.$query.value=search,angular.extend(params,options),AddressBook.$$resource.fetch(null,"allContactSearch",params).then(function(response){var results,card,index,compareIds=function(data){return this.id==data.id};for(results=excludedCards?_.filter(response.contacts,function(data){return _.isUndefined(_.find(excludedCards,compareIds,data))}):response.contacts,index=AddressBook.$cards.length-1;index>=0;index--)card=AddressBook.$cards[index],_.isUndefined(_.find(results,compareIds,card))&&AddressBook.$cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(AddressBook.$cards,compareIds,data))){var card=new AddressBook.$Card(data,search);AddressBook.$cards.splice(index,0,card)}}),AddressBook.$log.debug(AddressBook.$cards),AddressBook.$cards})},AddressBook.$add=function(addressbook){var list,sibling,i;list=addressbook.isSubscription?this.$subscriptions:this.$addressbooks,sibling=_.find(list,function(o){return"personal"==addressbook.id||"personal"!=o.id&&1===o.name.localeCompare(addressbook.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,addressbook)},AddressBook.$findAll=function(data){var _this=this;return data&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(data,function(o,i){var addressbook=new AddressBook(o);addressbook.isRemote?_this.$remotes.push(addressbook):addressbook.isSubscription?_this.$subscriptions.push(addressbook):_this.$addressbooks.push(addressbook)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},AddressBook.$find=function(addressbookId){var futureAddressBookData=AddressBook.$Preferences.ready().then(function(){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)});return new AddressBook(futureAddressBookData)},AddressBook.$subscribe=function(uid,path){var _this=this;return AddressBook.$$resource.userResource(uid).fetch(path,"subscribe").then(function(addressbookData){var addressbook=new AddressBook(addressbookData);return _.isUndefined(_.find(_this.$subscriptions,function(o){return o.id==addressbookData.id}))&&AddressBook.$add(addressbook),addressbook})},AddressBook.prototype.init=function(data){this.$isLoading=!0,this.$cards=[],this.cards=[],angular.extend(this,data),this.isOwned=AddressBook.activeUser.isSuperUser||this.owner==AddressBook.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=AddressBook.activeUser.login},AddressBook.prototype.$id=function(){return this.id?AddressBook.$q.when(this.id):this.$futureAddressBookData.then(function(addressbook){return addressbook.id})},AddressBook.prototype.$selectedCount=function(){var count;return count=0,this.cards&&(count=_.filter(this.cards,function(card){return card.selected}).length),count},AddressBook.prototype.$startRefreshTimeout=function(){var _this=this;AddressBook.$refreshTimeout&&AddressBook.$timeout.cancel(AddressBook.$refreshTimeout),AddressBook.$Preferences.ready().then(function(){var refreshViewCheck=AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,AddressBook.prototype.$reload);AddressBook.$refreshTimeout=AddressBook.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},AddressBook.prototype.$reload=function(){return this.$startRefreshTimeout(),this.$filter()},AddressBook.prototype.$filter=function(search,options,excludedCards){var _this=this;return options&&options.dry||(this.$isLoading=!0),AddressBook.$Preferences.ready().then(function(){if(options&&(angular.extend(AddressBook.$query,options),options.dry)){if(!search)return _this.$cards=[],AddressBook.$q.when(_this.$cards);if(AddressBook.$query.value==search)return AddressBook.$q.when(_this.$cards)}return angular.isDefined(search)&&(AddressBook.$query.value=search),_this.$id().then(function(addressbookId){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)}).then(function(response){var results,cards,card,index,compareIds=function(data){return _this.id==data.id};for(cards=options&&options.dry?_this.$cards:_this.cards,results=excludedCards?_.filter(response.cards,function(card){return _.isUndefined(_.find(excludedCards,compareIds,card))}):response.cards,index=cards.length-1;index>=0;index--)card=cards[index],_.isUndefined(_.find(results,compareIds,card))&&cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(cards,compareIds,data))){var card=new AddressBook.$Card(data,search);cards.splice(index,0,card)}}),_.each(results,function(data,index){var oldIndex,removedCards;cards[index].id!=data.id&&(oldIndex=_.findIndex(cards,compareIds,data),removedCards=cards.splice(oldIndex,1),cards.splice(index,0,removedCards[0]))}),_this.$isLoading=!1,cards})})},AddressBook.prototype.$rename=function(name){var i=_.indexOf(_.pluck(AddressBook.$addressbooks,"id"),this.id);return this.name=name,AddressBook.$addressbooks.splice(i,1),AddressBook.$add(this),this.$save()},AddressBook.prototype.$delete=function(){var list,promise,_this=this,d=AddressBook.$q.defer();return this.isSubscription?(promise=AddressBook.$$resource.fetch(this.id,"unsubscribe"),list=AddressBook.$subscriptions):(promise=AddressBook.$$resource.remove(this.id),list=AddressBook.$addressbooks),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1),d.resolve()},function(data,status){d.reject(data)}),d.promise},AddressBook.prototype.$deleteCards=function(cards){var uids=_.map(cards,function(card){return card.id}),_this=this;return AddressBook.$$resource.post(this.id,"batchDelete",{uids:uids}).then(function(){_this.cards=_.difference(_this.cards,cards)})},AddressBook.prototype.$copyCards=function(cards,folder){var uids=_.map(cards,function(card){return card.id});return AddressBook.$$resource.post(this.id,"copy",{uids:uids,folder:folder})},AddressBook.prototype.$save=function(){return AddressBook.$$resource.save(this.id,this.$omit()).then(function(data){return data})},AddressBook.prototype.$getCard=function(cardId){var _this=this;return this.$id().then(function(addressbookId){var fullCard,cachedCard=_.find(_this.cards,function(data){return cardId==data.id});return cachedCard&&cachedCard.$futureCardData?cachedCard:(fullCard=AddressBook.$Card.$find(addressbookId,cardId),fullCard.$id().then(function(cardId){cachedCard&&angular.extend(cachedCard,fullCard)}),fullCard)})},AddressBook.prototype.$unwrap=function(futureAddressBookData){var _this=this;this.$futureAddressBookData=futureAddressBookData.then(function(data){return AddressBook.$timeout(function(){return angular.forEach(AddressBook.$findAll(),function(o,i){o.id==data.id&&angular.extend(_this,o)}),_this.init(data),angular.forEach(_this.cards,function(o,i){_this.cards[i]=new AddressBook.$Card(o)}),_this.$acl=new AddressBook.$$Acl("Contacts/"+_this.id),_this.$startRefreshTimeout(),_this.$isLoading=!1,_this})},function(data){_this.isError=!0,angular.isObject(data)&&AddressBook.$timeout(function(){angular.extend(_this,data)})})},AddressBook.prototype.$omit=function(){var addressbook={};return angular.forEach(this,function(value,key){"constructor"!=key&&"cards"!=key&&"$"!=key[0]&&(addressbook[key]=value)}),addressbook}}(),function(){"use strict";function Card(futureCardData,partial){if("function"!=typeof futureCardData.then){if(this.init(futureCardData,partial),this.pid&&!this.id){var newCardData=Card.$$resource.newguid(this.pid);this.$unwrap(newCardData),this.isNew=!0}}else this.$unwrap(futureCardData)}Card.$TEL_TYPES=["work","home","cell","fax","pager"],Card.$EMAIL_TYPES=["work","home","pref"],Card.$URL_TYPES=["work","home","pref"],Card.$ADDRESS_TYPES=["work","home"],Card.$factory=["$timeout","sgSettings","Resource","Preferences","Gravatar",function($timeout,Settings,Resource,Preferences,Gravatar){return angular.extend(Card,{$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$timeout:$timeout,$gravatar:Gravatar}),Preferences.ready().then(function(){Preferences.defaults.SOGoContactsCategories&&(Card.$categories=Preferences.defaults.SOGoContactsCategories)}),Card}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("Card",Card.$factory),Card.$find=function(addressbookId,cardId){var futureCardData=this.$$resource.fetch([addressbookId,cardId].join("/"),"view");return cardId?new Card(futureCardData):Card.$unwrapCollection(futureCardData)},Card.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(Card.$categories,function(category){return-1!=category.search(re)})},Card.$unwrapCollection=function(futureCardData){var collection={};return collection.$futureCardData=futureCardData,futureCardData.then(function(cards){Card.$timeout(function(){angular.forEach(cards,function(data,index){collection[data.id]=new Card(data)})})}),collection},Card.prototype.init=function(data,partial){this.refs=[],angular.extend(this,data),this.$$fullname||(this.$$fullname=this.$fullname()),this.$$email||(this.$$email=this.$preferredEmail(partial)),this.$$image||(this.$$image=this.image||Card.$gravatar(this.$preferredEmail(partial),32)),this.selected=!1,this.empty=" "},Card.prototype.$id=function(){return this.$futureCardData.then(function(data){return data.id})},Card.prototype.$save=function(){var _this=this,action="saveAsContact";return"vlist"==this.c_component&&(action="saveAsList"),Card.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:action}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Card.prototype.$delete=function(attribute,index){return attribute?void(index>-1&&this[attribute].length>index?this[attribute].splice(index,1):delete this[attribute]):Card.$$resource.remove([this.pid,this.id].join("/"))},Card.prototype.$fullname=function(){var names,fn=this.c_cn||"";return 0===fn.length&&(names=[],this.c_givenname&&this.c_givenname.length>0&&names.push(this.c_givenname),this.nickname&&this.nickname.length>0&&names.push(""+this.nickname+""),this.c_sn&&this.c_sn.length>0&&names.push(this.c_sn),names.length>0?fn=names.join(" "):this.c_org&&this.c_org.length>0?fn=this.c_org:this.emails&&this.emails.length>0?fn=_.find(this.emails,function(i){return""!==i.value}).value:this.c_cn&&this.c_cn.length>0&&(fn=this.c_cn)),fn},Card.prototype.$description=function(){var description=[];return this.title&&description.push(this.title),this.role&&description.push(this.role),this.orgUnits&&this.orgUnits.length>0&&_.forEach(this.orgUnits,function(unit){""!==unit.value&&description.push(unit.value)}),this.c_org&&description.push(this.c_org),this.description&&description.push(this.description),description.join(", ")},Card.prototype.$preferredEmail=function(partial){var email,re;return partial&&(re=new RegExp(partial,"i"),email=_.find(this.emails,function(o){return re.test(o.value)})),email?email=email.value:(email=_.find(this.emails,function(o){return"pref"==o.type}),email=email?email.value:this.emails&&this.emails.length?this.emails[0].value:""),email},Card.prototype.$shortFormat=function(partial){var fullname=this.$fullname(),email=this.$preferredEmail(partial);return email&&email!=fullname&&(fullname+=" <"+email+">"),fullname},Card.prototype.$birthday=function(){return this.birthday?[this.birthday.getFullYear(),this.birthday.getMonth()+1,this.birthday.getDate()].join("/"):""},Card.prototype.$isCard=function(){return"vcard"==this.c_component},Card.prototype.$isList=function(){return"vlist"==this.c_component},Card.prototype.$addOrgUnit=function(orgUnit){if(angular.isUndefined(this.orgUnits))this.orgUnits=[{value:orgUnit}];else{for(var i=0;i"),"["+desc+"]"}}(); +(function(){"use strict";function AddressBook(futureAddressBookData){if(typeof futureAddressBookData.then!=="function"){this.init(futureAddressBookData);if(this.name&&!this.id){var newAddressBookData=AddressBook.$$resource.create("createFolder",this.name);this.$unwrap(newAddressBookData)}else if(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){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(){if(Preferences.settings.Contact.SortingState){AddressBook.$query.sort=Preferences.settings.Contact.SortingState[0];AddressBook.$query.asc=parseInt(Preferences.settings.Contact.SortingState[1])}});return AddressBook}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("AddressBook",AddressBook.$factory);AddressBook.$filterAll=function(search,options,excludedCards){var params={search:search};if(!search){AddressBook.$cards=[];return AddressBook.$q.when(AddressBook.$cards)}if(angular.isUndefined(AddressBook.$cards)){AddressBook.$cards=[]}else if(AddressBook.$query.value==search){return AddressBook.$q.when(AddressBook.$cards)}AddressBook.$query.value=search;angular.extend(params,options);return AddressBook.$$resource.fetch(null,"allContactSearch",params).then(function(response){var results,card,index,compareIds=function(data){return this.id==data.id};if(excludedCards){results=_.filter(response.contacts,function(data){return _.isUndefined(_.find(excludedCards,compareIds,data))})}else{results=response.contacts}for(index=AddressBook.$cards.length-1;index>=0;index--){card=AddressBook.$cards[index];if(_.isUndefined(_.find(results,compareIds,card))){AddressBook.$cards.splice(index,1)}}_.each(results,function(data,index){if(_.isUndefined(_.find(AddressBook.$cards,compareIds,data))){var card=new AddressBook.$Card(data,search);AddressBook.$cards.splice(index,0,card)}});AddressBook.$log.debug(AddressBook.$cards);return AddressBook.$cards})};AddressBook.$add=function(addressbook){var list,sibling,i;list=addressbook.isSubscription?this.$subscriptions:this.$addressbooks;sibling=_.find(list,function(o){return addressbook.id=="personal"||o.id!="personal"&&o.name.localeCompare(addressbook.name)===1});i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1;list.splice(i,0,addressbook)};AddressBook.$findAll=function(data){var _this=this;if(data){this.$addressbooks=[];this.$subscriptions=[];this.$remotes=[];angular.forEach(data,function(o,i){var addressbook=new AddressBook(o);if(addressbook.isRemote)_this.$remotes.push(addressbook);else if(addressbook.isSubscription)_this.$subscriptions.push(addressbook);else _this.$addressbooks.push(addressbook)})}return _.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);if(_.isUndefined(_.find(_this.$subscriptions,function(o){return o.id==addressbookData.id}))){AddressBook.$add(addressbook)}return addressbook})};AddressBook.prototype.init=function(data,options){if(!this.$cards){this.$isLoading=true;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(){if(this.id){return AddressBook.$q.when(this.id)}else{return this.$futureAddressBookData.then(function(addressbook){return addressbook.id})}};AddressBook.prototype.$selectedCount=function(){var count;count=0;if(this.cards){count=_.filter(this.cards,function(card){return card.selected}).length}return count};AddressBook.prototype.$startRefreshTimeout=function(){var _this=this;if(AddressBook.$refreshTimeout)AddressBook.$timeout.cancel(AddressBook.$refreshTimeout);AddressBook.$Preferences.ready().then(function(){var refreshViewCheck=AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&refreshViewCheck!="manually"){var f=angular.bind(_this,AddressBook.prototype.$reload);AddressBook.$refreshTimeout=AddressBook.$timeout(f,refreshViewCheck.timeInterval()*1e3)}})};AddressBook.prototype.$reload=function(){var _this=this;this.$startRefreshTimeout();return this.$filter()};AddressBook.prototype.$filter=function(search,options,excludedCards){var _this=this;if(!options||!options.dry)this.$isLoading=true;return AddressBook.$Preferences.ready().then(function(){if(options){angular.extend(AddressBook.$query,options);if(options.dry){if(!search){_this.$cards=[];return AddressBook.$q.when(_this.$cards)}else if(AddressBook.$query.value==search){return AddressBook.$q.when(_this.$cards)}}}if(angular.isDefined(search))AddressBook.$query.value=search;return _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};if(options&&options.dry){cards=_this.$cards}else{cards=_this.cards}if(excludedCards){results=_.filter(response.cards,function(card){return _.isUndefined(_.find(excludedCards,compareIds,card))})}else{results=response.cards}for(index=cards.length-1;index>=0;index--){card=cards[index];if(_.isUndefined(_.find(results,compareIds,card))){cards.splice(index,1)}}_.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;if(cards[index].id!=data.id){oldIndex=_.findIndex(cards,compareIds,data);removedCards=cards.splice(oldIndex,1);cards.splice(index,0,removedCards[0])}});_this.$isLoading=false;return cards})})};AddressBook.prototype.$rename=function(name){var i=_.indexOf(_.pluck(AddressBook.$addressbooks,"id"),this.id);this.name=name;AddressBook.$addressbooks.splice(i,1);AddressBook.$add(this);return this.$save()};AddressBook.prototype.$delete=function(){var _this=this,d=AddressBook.$q.defer(),list,promise;if(this.isSubscription){promise=AddressBook.$$resource.fetch(this.id,"unsubscribe");list=AddressBook.$subscriptions}else{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)});return d.promise};AddressBook.prototype.$deleteCards=function(cards){var uids=_.map(cards,function(card){return card.id});var _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});if(cachedCard&&cachedCard.$futureCardData)return cachedCard;fullCard=AddressBook.$Card.$find(addressbookId,cardId);fullCard.$id().then(function(cardId){if(cachedCard)angular.extend(cachedCard,fullCard)});return fullCard})};AddressBook.prototype.$unwrap=function(futureAddressBookData){var _this=this;this.$futureAddressBookData=futureAddressBookData.then(function(data){return AddressBook.$timeout(function(){angular.forEach(AddressBook.$findAll(),function(o,i){if(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=false;return _this})},function(data){_this.isError=true;if(angular.isObject(data)){AddressBook.$timeout(function(){angular.extend(_this,data)})}})};AddressBook.prototype.$omit=function(){var addressbook={};angular.forEach(this,function(value,key){if(key!="constructor"&&key!="cards"&&key[0]!="$"){addressbook[key]=value}});return addressbook}})();(function(){"use strict";function Card(futureCardData,partial){if(typeof futureCardData.then!=="function"){this.init(futureCardData,partial);if(this.pid&&!this.id){var newCardData=Card.$$resource.newguid(this.pid);this.$unwrap(newCardData);this.isNew=true}}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){angular.extend(Card,{$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$timeout:$timeout,$gravatar:Gravatar});Preferences.ready().then(function(){if(Preferences.defaults.SOGoContactsCategories){Card.$categories=Preferences.defaults.SOGoContactsCategories}});return Card}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("Card",Card.$factory);Card.$find=function(addressbookId,cardId){var futureCardData=this.$$resource.fetch([addressbookId,cardId].join("/"),"view");if(cardId)return new Card(futureCardData);return Card.$unwrapCollection(futureCardData)};Card.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(Card.$categories,function(category){return category.search(re)!=-1})};Card.$unwrapCollection=function(futureCardData){var collection={};collection.$futureCardData=futureCardData;futureCardData.then(function(cards){Card.$timeout(function(){angular.forEach(cards,function(data,index){collection[data.id]=new Card(data)})})});return collection};Card.prototype.init=function(data,partial){this.refs=[];angular.extend(this,data);if(!this.$$fullname)this.$$fullname=this.$fullname();if(!this.$$email)this.$$email=this.$preferredEmail(partial);if(!this.$$image)this.$$image=this.image||Card.$gravatar(this.$preferredEmail(partial),32);this.selected=false;this.empty=" "};Card.prototype.$id=function(){return this.$futureCardData.then(function(data){return data.id})};Card.prototype.$save=function(){var _this=this,action="saveAsContact";if(this.c_component=="vlist")action="saveAsList";return Card.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:action}).then(function(data){_this.$shadowData=_this.$omit(true);return data})};Card.prototype.$delete=function(attribute,index){if(attribute){if(index>-1&&this[attribute].length>index){this[attribute].splice(index,1)}else delete this[attribute]}else{return Card.$$resource.remove([this.pid,this.id].join("/"))}};Card.prototype.$fullname=function(){var fn=this.c_cn||"",names;if(fn.length===0){names=[];if(this.c_givenname&&this.c_givenname.length>0)names.push(this.c_givenname);if(this.nickname&&this.nickname.length>0)names.push(""+this.nickname+"");if(this.c_sn&&this.c_sn.length>0)names.push(this.c_sn);if(names.length>0)fn=names.join(" ");else if(this.c_org&&this.c_org.length>0){fn=this.c_org}else if(this.emails&&this.emails.length>0){fn=_.find(this.emails,function(i){return i.value!==""}).value}else if(this.c_cn&&this.c_cn.length>0){fn=this.c_cn}}return fn};Card.prototype.$description=function(){var description=[];if(this.title)description.push(this.title);if(this.role)description.push(this.role);if(this.orgUnits&&this.orgUnits.length>0)_.forEach(this.orgUnits,function(unit){if(unit.value!=="")description.push(unit.value)});if(this.c_org)description.push(this.c_org);if(this.description)description.push(this.description);return description.join(", ")};Card.prototype.$preferredEmail=function(partial){var email,re;if(partial){re=new RegExp(partial,"i");email=_.find(this.emails,function(o){return re.test(o.value)})}if(email){email=email.value}else{email=_.find(this.emails,function(o){return o.type=="pref"});if(email){email=email.value}else if(this.emails&&this.emails.length){email=this.emails[0].value}else{email=""}}return email};Card.prototype.$shortFormat=function(partial){var fullname=this.$fullname(),email=this.$preferredEmail(partial);if(email&&email!=fullname)fullname+=" <"+email+">";return fullname};Card.prototype.$birthday=function(){if(this.birthday){return[this.birthday.getFullYear(),this.birthday.getMonth()+1,this.birthday.getDate()].join("/")}return""};Card.prototype.$isCard=function(){return this.c_component=="vcard"};Card.prototype.$isList=function(){return this.c_component=="vlist"};Card.prototype.$addOrgUnit=function(orgUnit){if(angular.isUndefined(this.orgUnits)){this.orgUnits=[{value:orgUnit}]}else{for(var i=0;i";return"["+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 6aad48e80..d15c72902 100644 --- a/UI/WebServerResources/js/Contacts.services.js.map +++ b/UI/WebServerResources/js/Contacts.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Contacts.services.js","sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Card","Acl","Preferences","angular","extend","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","factory","$filterAll","options","excludedCards","params","$cards","when","isUndefined","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","length","splice","each","debug","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","pluck","$findAll","_this","$remotes","forEach","isRemote","push","union","$find","addressbookId","$subscribe","uid","path","userResource","addressbookData","prototype","$isLoading","cards","isOwned","isSuperUser","owner","login","$id","$futureAddressBookData","$selectedCount","count","selected","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","$reload","timeInterval","$filter","dry","isDefined","oldIndex","removedCards","findIndex","$rename","$save","$delete","promise","d","defer","remove","resolve","status","reject","$deleteCards","uids","map","post","difference","$copyCards","folder","save","$omit","$getCard","cardId","fullCard","cachedCard","$futureCardData","isError","isObject","key","futureCardData","partial","pid","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Gravatar","$gravatar","SOGoContactsCategories","$categories","join","$unwrapCollection","filterCategories","query","re","RegExp","category","collection","refs","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","empty","action","c_component","$shadowData","attribute","names","fn","c_cn","c_givenname","nickname","c_sn","c_org","emails","$description","description","title","role","orgUnits","unit","email","test","type","$shortFormat","fullname","$birthday","birthday","getFullYear","getMonth","getDate","$isCard","$isList","$addOrgUnit","orgUnit","$addCategory","categories","$addEmail","$addPhone","phones","$addUrl","url","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","$reset","reference","Date","deep","copy","getTime","toString","desc"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name AddressBook\n * @constructor\n * @param {object} futureAddressBookData - either an object literal or a promise\n */\n function AddressBook(futureAddressBookData) {\n // Data is immediately available\n if (typeof futureAddressBookData.then !== 'function') {\n this.init(futureAddressBookData);\n if (this.name && !this.id) {\n // Create a new addressbook on the server\n var newAddressBookData = AddressBook.$$resource.create('createFolder', this.name);\n this.$unwrap(newAddressBookData);\n }\n else if (this.id) {\n this.$acl = new AddressBook.$$Acl('Contacts/' + this.id);\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureAddressBookData);\n }\n }\n\n /**\n * @memberof AddressBook\n * @desc The factory we'll use to register with Angular\n * @returns the AddressBook constructor\n */\n AddressBook.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Card', 'Acl', 'Preferences', function($q, $timeout, $log, Settings, Resource, Card, Acl, Preferences) {\n angular.extend(AddressBook, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $Card: Card,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: {search: 'name_or_address', value: '', sort: 'c_cn', asc: 1},\n activeUser: Settings.activeUser(),\n selectedFolder: null,\n $refreshTimeout: null\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Contact.SortingState) {\n AddressBook.$query.sort = Preferences.settings.Contact.SortingState[0];\n AddressBook.$query.asc = parseInt(Preferences.settings.Contact.SortingState[1]);\n }\n });\n return AddressBook; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of AddressBook in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common', 'SOGo.PreferencesUI']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('AddressBook', AddressBook.$factory);\n\n /**\n * @memberof AddressBook\n * @desc Search for cards among all addressbooks matching some criterias.\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query (excludeGroups and excludeLists)\n * @param {object[]} excludedCards - a list of Card objects that must be excluded from the results\n * @returns a collection of Cards instances\n */\n AddressBook.$filterAll = function(search, options, excludedCards) {\n var params = {search: search};\n\n if (!search) {\n // No query specified\n AddressBook.$cards = [];\n return AddressBook.$q.when(AddressBook.$cards);\n }\n if (angular.isUndefined(AddressBook.$cards)) {\n // First session query\n AddressBook.$cards = [];\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(AddressBook.$cards);\n }\n AddressBook.$query.value = search;\n\n angular.extend(params, options);\n\n return AddressBook.$$resource.fetch(null, 'allContactSearch', params).then(function(response) {\n var results, card, index,\n compareIds = function(data) {\n return this.id == data.id;\n };\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.contacts, function(data) {\n return _.isUndefined(_.find(excludedCards, compareIds, data));\n });\n }\n else {\n results = response.contacts;\n }\n // Remove cards that no longer match the search query\n for (index = AddressBook.$cards.length - 1; index >= 0; index--) {\n card = AddressBook.$cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n AddressBook.$cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(AddressBook.$cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n AddressBook.$cards.splice(index, 0, card);\n }\n });\n AddressBook.$log.debug(AddressBook.$cards);\n return AddressBook.$cards;\n });\n };\n\n /**\n * @memberof AddressBook\n * @desc Add a new addressbook to the static list of addressbooks\n * @param {AddressBook} addressbook - an Addressbook object instance\n */\n AddressBook.$add = function(addressbook) {\n // Insert new addressbook at proper index\n var list, sibling, i;\n\n list = addressbook.isSubscription? this.$subscriptions : this.$addressbooks;\n sibling = _.find(list, function(o) {\n return (addressbook.id == 'personal' ||\n (o.id != 'personal' &&\n o.name.localeCompare(addressbook.name) === 1));\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, addressbook);\n };\n\n /**\n * @memberof AddressBook\n * @desc Set or get the list of addressbooks. Will instantiate a new AddressBook object for each item.\n * @param {array} [data] - the metadata of the addressbooks\n * @returns the list of addressbooks\n */\n AddressBook.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$addressbooks = [];\n this.$subscriptions = [];\n this.$remotes = [];\n // Instanciate AddressBook objects\n angular.forEach(data, function(o, i) {\n var addressbook = new AddressBook(o);\n if (addressbook.isRemote)\n _this.$remotes.push(addressbook);\n else if (addressbook.isSubscription)\n _this.$subscriptions.push(addressbook);\n else\n _this.$addressbooks.push(addressbook);\n });\n }\n return _.union(this.$addressbooks, this.$subscriptions, this.$remotes);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Fetch list of cards and return an AddressBook instance.\n * @param {string} addressbookId - the addressbook identifier\n * @returns an AddressBook object instance\n */\n AddressBook.$find = function(addressbookId) {\n var futureAddressBookData = AddressBook.$Preferences.ready().then(function() {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n });\n return new AddressBook(futureAddressBookData);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Subscribe to another user's addressbook and add it to the list of addressbooks.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n AddressBook.$subscribe = function(uid, path) {\n var _this = this;\n return AddressBook.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(addressbookData) {\n var addressbook = new AddressBook(addressbookData);\n if (_.isUndefined(_.find(_this.$subscriptions, function(o) {\n return o.id == addressbookData.id;\n }))) {\n // Not already subscribed\n AddressBook.$add(addressbook);\n }\n return addressbook;\n });\n };\n\n /**\n * @function init\n * @memberof AddressBook.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of addressbook\n */\n AddressBook.prototype.init = function(data) {\n this.$isLoading = true;\n this.$cards = [];\n this.cards = [];\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = AddressBook.activeUser.isSuperUser || this.owner == AddressBook.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != AddressBook.activeUser.login;\n };\n\n /**\n * @function $id\n * @memberof AddressBook.prototype\n * @desc Resolve the addressbook id.\n * @returns a promise of the addressbook id\n */\n AddressBook.prototype.$id = function() {\n if (this.id) {\n // Object already unwrapped\n return AddressBook.$q.when(this.id);\n }\n else {\n // Wait until object is unwrapped\n return this.$futureAddressBookData.then(function(addressbook) {\n return addressbook.id;\n });\n }\n };\n\n /**\n * @function $selectedCount\n * @memberof AddressBook.prototype\n * @desc Return the number of cards selected by the user.\n * @returns the number of selected cards\n */\n AddressBook.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.cards) {\n count = (_.filter(this.cards, function(card) { return card.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof AddressBook.prototype\n * @desc Starts the refresh timeout for the current selected address book\n */\n AddressBook.prototype.$startRefreshTimeout = function() {\n var _this = this;\n\n if (AddressBook.$refreshTimeout)\n AddressBook.$timeout.cancel(AddressBook.$refreshTimeout);\n\n AddressBook.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, AddressBook.prototype.$reload);\n AddressBook.$refreshTimeout = AddressBook.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $reload\n * @memberof AddressBook.prototype\n * @desc Reload list of cards\n * @returns a promise of the Cards instances\n */\n AddressBook.prototype.$reload = function() {\n var _this = this;\n\n this.$startRefreshTimeout();\n return this.$filter();\n };\n\n /**\n * @function $filter\n * @memberof AddressBook.prototype\n * @desc Search for cards matching some criterias\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query\n * @returns a collection of Cards instances\n */\n AddressBook.prototype.$filter = function(search, options, excludedCards) {\n var _this = this;\n\n if (!options || !options.dry)\n this.$isLoading = true;\n\n return AddressBook.$Preferences.ready().then(function() {\n if (options) {\n angular.extend(AddressBook.$query, options);\n\n if (options.dry) {\n if (!search) {\n // No query specified\n _this.$cards = [];\n return AddressBook.$q.when(_this.$cards);\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(_this.$cards);\n }\n }\n }\n\n if (angular.isDefined(search))\n AddressBook.$query.value = search;\n\n return _this.$id().then(function(addressbookId) {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n }).then(function(response) {\n var results, cards, card, index,\n compareIds = function(data) {\n return _this.id == data.id;\n };\n if (options && options.dry) {\n // Don't keep a copy of the resulting cards.\n // This is usefull when doing autocompletion.\n cards = _this.$cards;\n }\n else {\n cards = _this.cards;\n }\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.cards, function(card) {\n return _.isUndefined(_.find(excludedCards, compareIds, card));\n });\n }\n else {\n results = response.cards;\n }\n // Remove cards that no longer match the search query\n for (index = cards.length - 1; index >= 0; index--) {\n card = cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n cards.splice(index, 0, card);\n }\n });\n // Respect the order of the results\n _.each(results, function(data, index) {\n var oldIndex, removedCards;\n if (cards[index].id != data.id) {\n oldIndex = _.findIndex(cards, compareIds, data);\n removedCards = cards.splice(oldIndex, 1);\n cards.splice(index, 0, removedCards[0]);\n }\n });\n _this.$isLoading = false;\n return cards;\n });\n });\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$rename = function(name) {\n var i = _.indexOf(_.pluck(AddressBook.$addressbooks, 'id'), this.id);\n this.name = name;\n AddressBook.$addressbooks.splice(i, 1);\n AddressBook.$add(this);\n return this.$save();\n };\n\n /**\n * @function $delete\n * @memberof AddressBook.prototype\n * @desc Delete the addressbook from the server and the static list of addressbooks.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$delete = function() {\n var _this = this,\n d = AddressBook.$q.defer(),\n list,\n promise;\n\n if (this.isSubscription) {\n promise = AddressBook.$$resource.fetch(this.id, 'unsubscribe');\n list = AddressBook.$subscriptions;\n }\n else {\n promise = AddressBook.$$resource.remove(this.id);\n list = AddressBook.$addressbooks;\n }\n\n promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n d.resolve();\n }, function(data, status) {\n d.reject(data);\n });\n return d.promise;\n };\n\n /**\n * @function $deleteCards\n * @memberof AddressBook.prototype\n * @desc Delete multiple cards from addressbook.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$deleteCards = function(cards) {\n\n var uids = _.map(cards, function(card) { return card.id; });\n var _this = this;\n \n return AddressBook.$$resource.post(this.id, 'batchDelete', {uids: uids}).then(function() {\n _this.cards = _.difference(_this.cards, cards);\n });\n };\n\n /**\n * @function $copyCards\n * @memberof AddressBook.prototype\n * @desc Copy multiple cards from addressbook to an other one.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$copyCards = function(cards, folder) {\n var uids = _.map(cards, function(card) { return card.id; });\n return AddressBook.$$resource.post(this.id, 'copy', {uids: uids, folder: folder});\n };\n\n /**\n * @function $save\n * @memberof AddressBook.prototype\n * @desc Save the addressbook to the server. This currently can only affect the name of the addressbook.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$save = function() {\n return AddressBook.$$resource.save(this.id, this.$omit()).then(function(data) {\n return data;\n });\n };\n\n /**\n * @function $getCard\n * @memberof AddressBook.prototype\n * @desc Fetch the card attributes from the server.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$getCard = function(cardId) {\n var _this = this;\n\n return this.$id().then(function(addressbookId) {\n var fullCard,\n cachedCard = _.find(_this.cards, function(data) {\n return cardId == data.id;\n });\n\n if (cachedCard && cachedCard.$futureCardData)\n // Full card is available\n return cachedCard;\n\n fullCard = AddressBook.$Card.$find(addressbookId, cardId);\n fullCard.$id().then(function(cardId) {\n // Extend the Card object of the addressbook list with the full card description\n if (cachedCard)\n angular.extend(cachedCard, fullCard);\n });\n return fullCard;\n });\n };\n\n /**\n * @function $unwrap\n * @memberof AddressBook.prototype\n * @desc Unwrap a promise and instanciate new Card objects using received data.\n * @param {promise} futureAddressBookData - a promise of the AddressBook's data\n */\n AddressBook.prototype.$unwrap = function(futureAddressBookData) {\n var _this = this;\n\n // Expose and sesolve the promise\n this.$futureAddressBookData = futureAddressBookData.then(function(data) {\n return AddressBook.$timeout(function() {\n // Extend AddressBook instance from data of addressbooks list.\n // Will inherit attributes such as isEditable and isRemote.\n angular.forEach(AddressBook.$findAll(), function(o, i) {\n if (o.id == data.id) {\n angular.extend(_this, o);\n }\n });\n // Extend AddressBook instance with received data\n _this.init(data);\n // Instanciate Card objects\n angular.forEach(_this.cards, function(o, i) {\n _this.cards[i] = new AddressBook.$Card(o);\n });\n // Instanciate Acl object\n _this.$acl = new AddressBook.$$Acl('Contacts/' + _this.id);\n\n _this.$startRefreshTimeout();\n\n _this.$isLoading = false;\n\n return _this;\n });\n }, function(data) {\n _this.isError = true;\n if (angular.isObject(data)) {\n AddressBook.$timeout(function() {\n angular.extend(_this, data);\n });\n }\n });\n };\n\n /**\n * @function $omit\n * @memberof AddressBook.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Addressbook instance\n */\n AddressBook.prototype.$omit = function() {\n var addressbook = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'cards' &&\n key[0] != '$') {\n addressbook[key] = value;\n }\n });\n return addressbook;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Card\n * @constructor\n * @param {object} futureCardData\n * @param {string} [partial]\n */\n function Card(futureCardData, partial) {\n\n // Data is immediately available\n if (typeof futureCardData.then !== 'function') {\n this.init(futureCardData, partial);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new card;\n // Get UID from the server.\n var newCardData = Card.$$resource.newguid(this.pid);\n this.$unwrap(newCardData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureCardData);\n }\n }\n\n Card.$TEL_TYPES = ['work', 'home', 'cell', 'fax', 'pager'];\n Card.$EMAIL_TYPES = ['work', 'home', 'pref'];\n Card.$URL_TYPES = ['work', 'home', 'pref'];\n Card.$ADDRESS_TYPES = ['work', 'home'];\n\n /**\n * @memberof Card\n * @desc The factory we'll use to register with Angular.\n * @returns the Card constructor\n */\n Card.$factory = ['$timeout', 'sgSettings', 'Resource', 'Preferences', 'Gravatar', function($timeout, Settings, Resource, Preferences, Gravatar) {\n angular.extend(Card, {\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $timeout: $timeout,\n $gravatar: Gravatar\n });\n // Initialize categories from user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoContactsCategories) {\n Card.$categories = Preferences.defaults.SOGoContactsCategories;\n }\n });\n\n return Card; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of Card in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common', 'SOGo.PreferencesUI']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('Card', Card.$factory);\n\n /**\n * @memberof Card\n * @desc Fetch a card from a specific addressbook.\n * @param {string} addressbookId - the addressbook ID\n * @param {string} cardId - the card ID\n * @see {@link AddressBook.$getCard}\n */\n Card.$find = function(addressbookId, cardId) {\n var futureCardData = this.$$resource.fetch([addressbookId, cardId].join('/'), 'view');\n\n if (cardId) return new Card(futureCardData); // a single card\n\n return Card.$unwrapCollection(futureCardData); // a collection of cards\n };\n\n /**\n * @function filterCategories\n * @memberof Card.prototype\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Card.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(Card.$categories, function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @memberof Card\n * @desc Unwrap to a collection of Card instances.\n * @param {object} futureCardData\n */\n Card.$unwrapCollection = function(futureCardData) {\n var collection = {};\n\n collection.$futureCardData = futureCardData;\n\n futureCardData.then(function(cards) {\n Card.$timeout(function() {\n angular.forEach(cards, function(data, index) {\n collection[data.id] = new Card(data);\n });\n });\n });\n\n return collection;\n };\n\n /**\n * @function init\n * @memberof Card.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of card\n */\n Card.prototype.init = function(data, partial) {\n this.refs = [];\n angular.extend(this, data);\n if (!this.$$fullname)\n this.$$fullname = this.$fullname();\n if (!this.$$email)\n this.$$email = this.$preferredEmail(partial);\n if (!this.$$image)\n this.$$image = this.image || Card.$gravatar(this.$preferredEmail(partial), 32);\n this.selected = false;\n\n // An empty attribute to trick md-autocomplete when adding attendees from the appointment editor\n this.empty = ' ';\n };\n\n /**\n * @function $id\n * @memberof Card.prototype\n * @desc Return the card ID.\n * @returns the card ID\n */\n Card.prototype.$id = function() {\n return this.$futureCardData.then(function(data) {\n return data.id;\n });\n };\n\n /**\n * @function $save\n * @memberof Card.prototype\n * @desc Save the card to the server.\n */\n Card.prototype.$save = function() {\n var _this = this,\n action = 'saveAsContact';\n\n if (this.c_component == 'vlist') action = 'saveAsList';\n\n return Card.$$resource.save([this.pid, this.id || '_new_'].join('/'),\n this.$omit(),\n { action: action })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n Card.prototype.$delete = function(attribute, index) {\n if (attribute) {\n if (index > -1 && this[attribute].length > index) {\n this[attribute].splice(index, 1);\n }\n else\n delete this[attribute];\n }\n else {\n // No arguments -- delete card\n return Card.$$resource.remove([this.pid, this.id].join('/'));\n }\n };\n\n Card.prototype.$fullname = function() {\n var fn = this.c_cn || '', names;\n if (fn.length === 0) {\n names = [];\n if (this.c_givenname && this.c_givenname.length > 0)\n names.push(this.c_givenname);\n if (this.nickname && this.nickname.length > 0)\n names.push('' + this.nickname + '');\n if (this.c_sn && this.c_sn.length > 0)\n names.push(this.c_sn);\n if (names.length > 0)\n fn = names.join(' ');\n else if (this.c_org && this.c_org.length > 0) {\n fn = this.c_org;\n }\n else if (this.emails && this.emails.length > 0) {\n fn = _.find(this.emails, function(i) { return i.value !== ''; }).value;\n }\n else if (this.c_cn && this.c_cn.length > 0) {\n fn = this.c_cn;\n }\n }\n\n return fn;\n };\n\n Card.prototype.$description = function() {\n var description = [];\n if (this.title) description.push(this.title);\n if (this.role) description.push(this.role);\n if (this.orgUnits && this.orgUnits.length > 0)\n _.forEach(this.orgUnits, function(unit) {\n if (unit.value !== '')\n description.push(unit.value);\n });\n if (this.c_org) description.push(this.c_org);\n if (this.description) description.push(this.description);\n\n return description.join(', ');\n };\n\n /**\n * @function $preferredEmail\n * @memberof Card.prototype\n * @desc Get the preferred email address.\n * @param {string} [partial] - a partial string that the email must match\n * @returns the first email address of type \"pref\" or the first address if none found\n */\n Card.prototype.$preferredEmail = function(partial) {\n var email, re;\n if (partial) {\n re = new RegExp(partial, 'i');\n email = _.find(this.emails, function(o) {\n return re.test(o.value);\n });\n }\n if (email) {\n email = email.value;\n }\n else {\n email = _.find(this.emails, function(o) {\n return o.type == 'pref';\n });\n if (email) {\n email = email.value;\n }\n else if (this.emails && this.emails.length) {\n email = this.emails[0].value;\n }\n else {\n email = '';\n }\n }\n\n return email;\n };\n\n /**\n * @function $shortFormat\n * @memberof Card.prototype\n * @param {string} [partial] - a partial string that the email must match\n * @returns the fullname along with a matching email address in parentheses\n */\n Card.prototype.$shortFormat = function(partial) {\n var fullname = this.$fullname(),\n email = this.$preferredEmail(partial);\n if (email && email != fullname)\n fullname += ' <' + email + '>';\n return fullname;\n };\n\n /**\n * @function $birthday\n * @memberof Card.prototype\n * @returns the formatted birthday object\n */\n Card.prototype.$birthday = function() {\n if (this.birthday) {\n return [this.birthday.getFullYear(), this.birthday.getMonth() + 1, this.birthday.getDate()].join('/');\n }\n return '';\n };\n\n Card.prototype.$isCard = function() {\n return this.c_component == 'vcard';\n };\n\n Card.prototype.$isList = function() {\n return this.c_component == 'vlist';\n };\n\n Card.prototype.$addOrgUnit = function(orgUnit) {\n if (angular.isUndefined(this.orgUnits)) {\n this.orgUnits = [{value: orgUnit}];\n }\n else {\n for (var i = 0; i < this.orgUnits.length; i++) {\n if (this.orgUnits[i].value == orgUnit) {\n break;\n }\n }\n if (i == this.orgUnits.length)\n this.orgUnits.push({value: orgUnit});\n }\n return this.orgUnits.length - 1;\n };\n\n Card.prototype.$addCategory = function(category) {\n if (angular.isUndefined(this.categories)) {\n this.categories = [{value: category}];\n }\n else {\n for (var i = 0; i < this.categories.length; i++) {\n if (this.categories[i].value == category) {\n break;\n }\n }\n if (i == this.categories.length)\n this.categories.push({value: category});\n }\n };\n\n Card.prototype.$addEmail = function(type) {\n if (angular.isUndefined(this.emails)) {\n this.emails = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.emails, function(i) { return i.value === ''; }))) {\n this.emails.push({type: type, value: ''});\n }\n return this.emails.length - 1;\n };\n\n Card.prototype.$addPhone = function(type) {\n if (angular.isUndefined(this.phones)) {\n this.phones = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.phones, function(i) { return i.value === ''; }))) {\n this.phones.push({type: type, value: ''});\n }\n return this.phones.length - 1;\n };\n\n Card.prototype.$addUrl = function(type, url) {\n if (angular.isUndefined(this.urls)) {\n this.urls = [{type: type, value: url}];\n }\n else if (_.isUndefined(_.find(this.urls, function(i) { return i.value == url; }))) {\n this.urls.push({type: type, value: url});\n }\n return this.urls.length - 1;\n };\n\n Card.prototype.$addAddress = function(type, postoffice, street, street2, locality, region, country, postalcode) {\n if (angular.isUndefined(this.addresses)) {\n this.addresses = [{type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode}];\n }\n else if (!_.find(this.addresses, function(i) {\n return i.street == street &&\n i.street2 == street2 &&\n i.locality == locality &&\n i.country == country &&\n i.postalcode == postalcode;\n })) {\n this.addresses.push({type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode});\n }\n return this.addresses.length - 1;\n };\n\n Card.prototype.$addMember = function(email) {\n var card = new Card({email: email, emails: [{value: email}]}),\n i;\n if (angular.isUndefined(this.refs)) {\n this.refs = [card];\n }\n else if (email.length === 0) {\n this.refs.push(card);\n }\n else {\n for (i = 0; i < this.refs.length; i++) {\n if (this.refs[i].email == email) {\n break;\n }\n }\n if (i == this.refs.length)\n this.refs.push(card);\n }\n return this.refs.length - 1;\n };\n\n /**\n * @function $reset\n * @memberof Card.prototype\n * @desc Reset the original state the card's data.\n */\n Card.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n // Reinstanciate Card objects for list members\n angular.forEach(this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n _this.refs[i] = new Card(o);\n });\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function $updateMember\n * @memberof Card.prototype\n * @desc Update an existing list member from a Card instance.\n * A list member has the following attribtues:\n * - email\n * - reference\n * - fn\n * @param {number} index\n * @param {string} email\n * @param {Card} card\n */\n // Card.prototype.$updateMember = function(index, email, card) {\n // var ref = {\n // email: email,\n // emails: [{value: email}],\n // reference: card.c_name,\n // c_cn: card.$fullname()\n // };\n // this.refs[index] = new Card(ref);\n // };\n\n /**\n * @function $unwrap\n * @memberof Card.prototype\n * @desc Unwrap a promise and make a copy of the resolved data.\n * @param {object} futureCardData - a promise of the Card's data\n */\n Card.prototype.$unwrap = function(futureCardData) {\n var _this = this;\n\n // Expose the promise\n this.$futureCardData = futureCardData.then(function(data) {\n _this.init(data);\n // Instanciate Card objects for list members\n angular.forEach(_this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n o.id = o.reference;\n _this.refs[i] = new Card(o);\n });\n if (_this.birthday) {\n _this.birthday = new Date(_this.birthday * 1000);\n }\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return _this;\n });\n };\n\n /**\n * @function $omit\n * @memberof Card.prototype\n * @desc Return a sanitized object used to send to the server.\n * @param {boolean} [deep] - make a deep copy if true\n * @return an object literal copy of the Card instance\n */\n Card.prototype.$omit = function(deep) {\n var card = {};\n angular.forEach(this, function(value, key) {\n if (key == 'refs') {\n card.refs = _.map(value, function(o) {\n return o.$omit(deep);\n });\n }\n else if (key != 'constructor' && key[0] != '$') {\n if (deep)\n card[key] = angular.copy(value);\n else\n card[key] = value;\n }\n });\n\n // We convert back our birthday object\n if (!deep) {\n if (card.birthday)\n card.birthday = card.birthday.getTime()/1000;\n else\n card.birthday = 0;\n }\n\n return card;\n };\n\n Card.prototype.toString = function() {\n var desc = this.id + ' ' + this.$$fullname;\n\n if (this.$$email)\n desc += ' <' + this.$$email + '>';\n\n return '[' + desc + ']';\n };\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Card","Acl","Preferences","angular","extend","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","factory","$filterAll","options","excludedCards","params","$cards","when","isUndefined","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","length","splice","each","debug","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","pluck","$findAll","_this","$remotes","forEach","isRemote","push","union","$find","addressbookId","$subscribe","uid","path","userResource","addressbookData","prototype","$isLoading","cards","isOwned","isSuperUser","owner","login","$id","$futureAddressBookData","$selectedCount","count","selected","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","$reload","timeInterval","$filter","dry","isDefined","oldIndex","removedCards","findIndex","$rename","$save","$delete","d","defer","promise","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","fn","c_cn","names","c_givenname","nickname","c_sn","c_org","emails","$description","description","title","role","orgUnits","unit","email","test","type","$shortFormat","fullname","$birthday","birthday","getFullYear","getMonth","getDate","$isCard","$isList","$addOrgUnit","orgUnit","$addCategory","categories","$addEmail","$addScreenName","screenName","c_screenname","$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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","file":"Contacts.services.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.app.popup.js b/UI/WebServerResources/js/Mailer.app.popup.js index 738cbbceb..ddc99fd71 100644 --- a/UI/WebServerResources/js/Mailer.app.popup.js +++ b/UI/WebServerResources/js/Mailer.app.popup.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail","abstract":!0,views:{message:{template:""}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":!0,template:'',resolve:{stateAccount:stateAccount}}).state("mail.account.mailbox",{url:"/:mailboxId","abstract":!0,template:'',resolve:{stateMailbox:stateMailbox}}).state("mail.account.mailbox.newMessage",{url:"/new",views:{"message@":{template:"",controller:"MessageEditorControllerPopup"}},resolve:{stateMessage:stateNewMessage}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{"message@":{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}).state("mail.account.mailbox.message.edit",{url:"/edit",views:{"message@":{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}},resolve:{stateContent:stateContent}}).state("mail.account.mailbox.message.action",{url:"/{actionName:(?:reply|replyall|forward)}",views:{message:{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}}}),$urlRouterProvider.otherwise("/Mail/0/folderINBOX/new")}function stateAccounts($q,Account){var promise=Account.$findAll();return promise.then(function(accounts){var 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 stateNewMessage(stateAccount){return stateAccount.$newMessage()}function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,Message){var data={uid:$stateParams.messageId.toString()},message=new Message(stateMailbox.$account.id,stateMailbox,data);return message.$reload()}function stateContent(stateMessage){return stateMessage.$editableContent()}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}function MessageEditorControllerPopup($window,$mdDialog,stateAccounts,stateMessage){$mdDialog.show({hasBackdrop:!1,disableParentScroll:!1,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:stateAccounts,stateMessage:stateMessage,stateRecipients:[]}})["finally"](function(){$window.opener&&$window.close()})}angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock).controller("MessageEditorControllerPopup",MessageEditorControllerPopup),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAccounts.$inject=["$q","Account"],stateAccount.$inject=["$stateParams","stateAccounts"],stateMailbox.$inject=["$stateParams","stateAccount","decodeUriFilter"],stateNewMessage.$inject=["stateAccount"],stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","Message"],stateContent.$inject=["stateMessage"],runBlock.$inject=["$rootScope"],MessageEditorControllerPopup.$inject=["$window","$mdDialog","stateAccounts","stateMessage"]}(); +(function(){"use strict";angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock).controller("MessageEditorControllerPopup",MessageEditorControllerPopup);configure.$inject=["$stateProvider","$urlRouterProvider"];function configure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail","abstract":true,views:{message:{template:""}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":true,template:'',resolve:{stateAccount:stateAccount}}).state("mail.account.mailbox",{url:"/:mailboxId","abstract":true,template:'',resolve:{stateMailbox:stateMailbox}}).state("mail.account.mailbox.newMessage",{url:"/new",views:{"message@":{template:"",controller:"MessageEditorControllerPopup"}},resolve:{stateMessage:stateNewMessage}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{"message@":{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}).state("mail.account.mailbox.message.edit",{url:"/edit",views:{"message@":{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}},resolve:{stateContent:stateContent}}).state("mail.account.mailbox.message.action",{url:"/{actionName:(?:reply|replyall|forward)}",views:{message:{templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor"}}});$urlRouterProvider.otherwise("/Mail/0/folderINBOX/new")}stateAccounts.$inject=["$q","Account"];function stateAccounts($q,Account){var promise=Account.$findAll();return promise.then(function(accounts){var promises=[];angular.forEach(accounts,function(account,i){var mailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){return account}))});return $q.all(promises)})}stateAccount.$inject=["$stateParams","stateAccounts"];function stateAccount($stateParams,stateAccounts){return _.find(stateAccounts,function(account){return account.id==$stateParams.accountId})}stateMailbox.$inject=["$stateParams","stateAccount","decodeUriFilter"];function stateMailbox($stateParams,stateAccount,decodeUriFilter){var mailboxId=decodeUriFilter($stateParams.mailboxId),_find;_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==mailboxId});if(!mailbox){angular.forEach(mailboxes,function(o){if(!mailbox&&o.children&&o.children.length>0){mailbox=_find(o.children)}})}return mailbox};return _find(stateAccount.$mailboxes)}stateNewMessage.$inject=["stateAccount"];function stateNewMessage(stateAccount){return stateAccount.$newMessage()}stateMessage.$inject=["encodeUriFilter","$stateParams","$state","stateMailbox","Message"];function stateMessage(encodeUriFilter,$stateParams,$state,stateMailbox,Message){var data={uid:$stateParams.messageId.toString()},message=new Message(stateMailbox.$account.id,stateMailbox,data);return message.$reload()}stateContent.$inject=["stateMessage"];function stateContent(stateMessage){return stateMessage.$editableContent()}runBlock.$inject=["$rootScope"];function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}MessageEditorControllerPopup.$inject=["$window","$mdDialog","stateAccounts","stateMessage"];function MessageEditorControllerPopup($window,$mdDialog,stateAccounts,stateMessage){$mdDialog.show({hasBackdrop:false,disableParentScroll:false,clickOutsideToClose:false,escapeToClose:false,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:stateAccounts,stateMessage:stateMessage,stateRecipients:[]}}).finally(function(){if($window.opener)$window.close()})}})(); //# sourceMappingURL=Mailer.app.popup.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.app.popup.js.map b/UI/WebServerResources/js/Mailer.app.popup.js.map index 3f06a2f31..c575815e5 100644 --- a/UI/WebServerResources/js/Mailer.app.popup.js.map +++ b/UI/WebServerResources/js/Mailer.app.popup.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.app.popup.js","sources":["Mailer/Mailer.popup.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","message","template","resolve","stateAccounts","stateAccount","stateMailbox","message@","controller","stateMessage","stateNewMessage","templateUrl","controllerAs","stateContent","otherwise","$q","Account","promise","$findAll","then","accounts","promises","angular","forEach","account","i","mailboxes","$getMailboxes","push","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","_find","mailboxId","mailbox","o","path","children","length","$mailboxes","$newMessage","encodeUriFilter","$state","Message","data","uid","messageId","toString","$account","$reload","$editableContent","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","MessageEditorControllerPopup","$window","$mdDialog","show","hasBackdrop","disableParentScroll","clickOutsideToClose","escapeToClose","locals","stateRecipients","opener","close","module","config","run","$inject"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngSanitize', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock)\n .controller('MessageEditorControllerPopup', MessageEditorControllerPopup);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n abstract: true,\n views: {\n message: {\n template: ''\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n template: '',\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n abstract: true,\n template: '',\n resolve: {\n stateMailbox: stateMailbox\n }\n })\n .state('mail.account.mailbox.newMessage', {\n url: '/new',\n views: {\n 'message@': {\n template: '',\n controller: 'MessageEditorControllerPopup'\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 'message@': {\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 message: {\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/0/folderINBOX/new');\n }\n\n /**\n * @ngInject\n */\n stateAccounts.$inject = ['$q', 'Account'];\n function stateAccounts($q, Account) {\n var promise = Account.$findAll();\n // Fetch list of mailboxes for each account\n return promise.then(function(accounts) {\n var promises = [];\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 /**\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 stateNewMessage.$inject = ['stateAccount'];\n function stateNewMessage(stateAccount) {\n return stateAccount.$newMessage();\n }\n\n /**\n * @ngInject\n */\n stateMessage.$inject = ['encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'Message'];\n function stateMessage(encodeUriFilter, $stateParams, $state, stateMailbox, Message) {\n var data = { uid: $stateParams.messageId.toString() },\n message = new Message(stateMailbox.$account.id, stateMailbox, data);\n\n return message.$reload();\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 * @ngInject\n */\n MessageEditorControllerPopup.$inject = ['$window', '$mdDialog', 'stateAccounts', 'stateMessage'];\n function MessageEditorControllerPopup($window, $mdDialog, stateAccounts, stateMessage) {\n $mdDialog\n .show({\n hasBackdrop: false,\n disableParentScroll: false,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: stateAccounts,\n stateMessage: stateMessage,\n stateRecipients: []\n }\n })\n .finally(function() {\n if ($window.opener)\n $window.close();\n });\n }\n \n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Mailer/Mailer.popup.js"],"names":["angular","module","config","configure","run","runBlock","controller","MessageEditorControllerPopup","$inject","$stateProvider","$urlRouterProvider","state","url","abstract","views","message","template","resolve","stateAccounts","stateAccount","stateMailbox","message@","stateMessage","stateNewMessage","templateUrl","controllerAs","stateContent","otherwise","$q","Account","promise","$findAll","then","accounts","promises","forEach","account","i","mailboxes","$getMailboxes","push","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","mailboxId","_find","mailbox","o","path","children","length","$mailboxes","$newMessage","encodeUriFilter","$state","Message","data","uid","messageId","toString","$account","$reload","$editableContent","$rootScope","$on","event","current","previous","rejection","console","error","$window","$mdDialog","show","hasBackdrop","disableParentScroll","clickOutsideToClose","escapeToClose","locals","stateRecipients","finally","opener","close"],"mappings":"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","file":"Mailer.app.popup.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.js b/UI/WebServerResources/js/Mailer.js index 965ffeeb2..bff0e6ca5 100644 --- a/UI/WebServerResources/js/Mailer.js +++ b/UI/WebServerResources/js/Mailer.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":!0,views:{mailbox:{template:""}},resolve:{stateAccount:stateAccount}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateVirtualMailbox}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:stateVirtualMailboxOfMessage,stateMessages:stateMessages,stateMessage:stateMessage}}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateMailbox,stateMessages:stateMessages}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}),$urlRouterProvider.otherwise("/Mail")}function stateAccounts($q,Account){var accounts=Account.$findAll(mailAccounts),promises=[];return angular.forEach(accounts,function(account,i){var mailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){return account}))}),$q.all(promises)}function stateAccount($stateParams,stateAccounts){return _.find(stateAccounts,function(account){return account.id==$stateParams.accountId})}function stateMailbox(Mailbox,$stateParams,stateAccount,decodeUriFilter){var _find,mailboxId=decodeUriFilter($stateParams.mailboxId);return(_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==mailboxId});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox})(stateAccount.$mailboxes)}function stateMessages(Mailbox,stateMailbox){return Mailbox.$virtualMode?[]:stateMailbox.$filter()}function stateVirtualMailbox($q,Mailbox){return Mailbox.$virtualMode?Mailbox.selectedFolder:$q.reject("No virtual mailbox defined")}function stateVirtualMailboxOfMessage($q,Mailbox,decodeUriFilter,$stateParams){var mailboxId=decodeUriFilter($stateParams.mailboxId);return Mailbox.$virtualMode?(Mailbox.selectedFolder.resetSelectedMessage(),_.find(Mailbox.selectedFolder.$mailboxes,function(mailboxObject){return mailboxObject.path==mailboxId})):$q.reject("No virtual mailbox defined for message")}function stateMessage(Mailbox,encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message;return(message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId}))?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("mail")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAccounts.$inject=["$q","Account"],stateAccount.$inject=["$stateParams","stateAccounts"],stateMailbox.$inject=["Mailbox","$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["Mailbox","stateMailbox"],stateVirtualMailbox.$inject=["$q","Mailbox"],stateVirtualMailboxOfMessage.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],stateMessage.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope","$log","$state"]}(); +(function(){"use strict";angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock);configure.$inject=["$stateProvider","$urlRouterProvider"];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":true,views:{mailbox:{template:""}},resolve:{stateAccount:stateAccount}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateVirtualMailbox}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:stateVirtualMailboxOfMessage,stateMessages:stateMessages,stateMessage:stateMessage}}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateMailbox,stateMessages:stateMessages}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}});$urlRouterProvider.otherwise("/Mail")}stateAccounts.$inject=["$q","Account"];function stateAccounts($q,Account){var accounts=Account.$findAll(mailAccounts),promises=[];angular.forEach(accounts,function(account,i){var mailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){return account}))});return $q.all(promises)}stateAccount.$inject=["$stateParams","stateAccounts"];function stateAccount($stateParams,stateAccounts){return _.find(stateAccounts,function(account){return account.id==$stateParams.accountId})}stateMailbox.$inject=["$stateParams","stateAccount","decodeUriFilter"];function stateMailbox($stateParams,stateAccount,decodeUriFilter){var mailboxId=decodeUriFilter($stateParams.mailboxId),_find;_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==mailboxId});if(!mailbox){angular.forEach(mailboxes,function(o){if(!mailbox&&o.children&&o.children.length>0){mailbox=_find(o.children)}})}return mailbox};return _find(stateAccount.$mailboxes)}stateMessages.$inject=["Mailbox","stateMailbox"];function stateMessages(Mailbox,stateMailbox){if(Mailbox.$virtualMode)return[];return stateMailbox.$filter()}stateVirtualMailbox.$inject=["$q","Mailbox"];function stateVirtualMailbox($q,Mailbox){if(Mailbox.$virtualMode)return Mailbox.selectedFolder;else return $q.reject("No virtual mailbox defined")}stateVirtualMailboxOfMessage.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"];function stateVirtualMailboxOfMessage($q,Mailbox,decodeUriFilter,$stateParams){var mailboxId=decodeUriFilter($stateParams.mailboxId);if(Mailbox.$virtualMode){Mailbox.selectedFolder.resetSelectedMessage();return _.find(Mailbox.selectedFolder.$mailboxes,function(mailboxObject){return mailboxObject.path==mailboxId})}else return $q.reject("No virtual mailbox defined for message")}stateMessage.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"];function stateMessage(Mailbox,encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message;message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId});if(message){stateMailbox.selectedMessage=$stateParams.messageId;return message.$reload()}else{$state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}}runBlock.$inject=["$rootScope","$log","$state"];function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error);$state.go("mail")});$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}})(); //# 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 cbb1ec947..37a4df921 100644 --- a/UI/WebServerResources/js/Mailer.js.map +++ b/UI/WebServerResources/js/Mailer.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.js","sources":["Mailer/Mailer.app.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessages","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","Mailbox","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$virtualMode","$filter","selectedFolder","reject","resetSelectedMessage","mailboxObject","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection","module","config","run","$inject"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngSanitize', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n views: {\n mailboxes: {\n templateUrl: 'UIxMailMainFrame', // UI/Templates/MailerUI/UIxMailMainFrame.wox\n controller: 'MailboxesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n views: {\n mailbox: {\n template: ''\n }\n },\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.virtualMailbox', {\n url: '/virtual',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailbox\n }\n })\n .state('mail.account.virtualMailbox.message', {\n url: '/:mailboxId/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailboxOfMessage,\n stateMessages: stateMessages,\n stateMessage: stateMessage\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateMailbox,\n stateMessages: stateMessages\n }\n })\n // .state('mail.account.mailbox.newMessage', {\n // url: '/new',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateMessage: stateNewMessage\n // }\n // })\n .state('mail.account.mailbox.message', {\n url: '/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMessage: stateMessage\n }\n });\n // .state('mail.account.mailbox.message.edit', {\n // url: '/edit',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateContent: stateContent\n // }\n // })\n // .state('mail.account.mailbox.message.action', {\n // url: '/{actionName:(?:reply|replyall|forward)}',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // }\n // });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/Mail');\n\n // Set default configuration for tags input\n // tagsInputConfigProvider.setDefaults('tagsInput', {\n // addOnComma: false,\n // replaceSpacesWithDashes: false,\n // allowedTagsPattern: /([\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+\\.)*[\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+@((((([a-z0-9]{1}[a-z0-9\\-]{0,62}[a-z0-9]{1})|[a-z])\\.)+[a-z]{2,})|(\\d{1,3}\\.){3}\\d{1,3}(\\:\\d{1,5})?)/i\n // });\n }\n\n /**\n * @ngInject\n */\n stateAccounts.$inject = ['$q', 'Account'];\n function stateAccounts($q, Account) {\n var accounts = Account.$findAll(mailAccounts),\n promises = [];\n // Fetch list of mailboxes for each account\n angular.forEach(accounts, function(account, i) {\n var mailboxes = account.$getMailboxes();\n promises.push(mailboxes.then(function(objects) {\n return account;\n }));\n });\n return $q.all(promises);\n }\n\n /**\n * @ngInject\n */\n stateAccount.$inject = ['$stateParams', 'stateAccounts'];\n function stateAccount($stateParams, stateAccounts) {\n return _.find(stateAccounts, function(account) {\n return account.id == $stateParams.accountId;\n });\n }\n\n /**\n * @ngInject\n */\n stateMailbox.$inject = ['Mailbox', '$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox(Mailbox, $stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\n\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == mailboxId;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n\n return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['Mailbox', 'stateMailbox'];\n function stateMessages(Mailbox, stateMailbox) {\n if (Mailbox.$virtualMode)\n return [];\n\n return stateMailbox.$filter();\n }\n\n /**\n * @ngInject\n */\n // stateNewMessage.$inject = ['stateAccount'];\n // function stateNewMessage(stateAccount) {\n // return stateAccount.$newMessage();\n // }\n\n /**\n * Return a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailbox.$inject = ['$q', 'Mailbox'];\n function stateVirtualMailbox($q, Mailbox) {\n if (Mailbox.$virtualMode)\n return Mailbox.selectedFolder;\n else\n return $q.reject(\"No virtual mailbox defined\");\n }\n\n /**\n * Return a Mailbox instance from a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailboxOfMessage.$inject = ['$q', 'Mailbox', 'decodeUriFilter', '$stateParams'];\n function stateVirtualMailboxOfMessage($q, Mailbox, decodeUriFilter, $stateParams) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId);\n\n if (Mailbox.$virtualMode) {\n Mailbox.selectedFolder.resetSelectedMessage();\n return _.find(Mailbox.selectedFolder.$mailboxes, function(mailboxObject) {\n return mailboxObject.path == mailboxId;\n });\n }\n else\n return $q.reject(\"No virtual mailbox defined for message\");\n }\n\n /**\n * @ngInject\n */\n stateMessage.$inject = ['Mailbox', 'encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(Mailbox, encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var message;\n\n message = _.find(stateMailbox.$messages, function(messageObject) {\n return messageObject.uid == $stateParams.messageId;\n });\n\n if (message) {\n stateMailbox.selectedMessage = $stateParams.messageId;\n return message.$reload();\n }\n else {\n // Message not found\n $state.go('mail.account.mailbox', { accountId: stateMailbox.$account.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n }\n }\n\n /**\n * @ngInject\n */\n // stateContent.$inject = ['stateMessage'];\n // function stateContent(stateMessage) {\n // return stateMessage.$editableContent();\n // }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$state'];\n function runBlock($rootScope, $log, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('mail');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Mailer/Mailer.app.js"],"names":["angular","module","config","configure","run","runBlock","$inject","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessages","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","decodeUriFilter","mailboxId","_find","o","path","children","length","$mailboxes","Mailbox","$virtualMode","$filter","selectedFolder","reject","resetSelectedMessage","mailboxObject","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection"],"mappings":"CAGA,WACE,YAEAA,SAAQC,OAAO,iBAAkB,aAAc,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,YAAa,uBACnIC,OAAOC,WACPC,IAAIC,SAKPF,WAAUG,SAAW,iBAAkB,qBACvC,SAASH,WAAUI,eAAgBC,oBACjCD,eACGE,MAAM,QACLC,IAAK,QACLC,OACEC,WACEC,YAAa,mBACbC,WAAY,sBACZC,aAAc,QAGlBC,SACEC,cAAeA,iBAGlBR,MAAM,gBACLC,IAAK,cACLQ,WAAU,KACVP,OACEQ,SACEC,SAAU,eAGdJ,SACEK,aAAcA,gBAGjBZ,MAAM,+BACLC,IAAK,WACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcC,uBAGjBf,MAAM,uCACLC,IAAK,yBACLC,OACGc,SACCZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEO,aAAcG,6BACdC,cAAeA,cACfC,aAAcA,gBAGjBnB,MAAM,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,aACdI,cAAeA,iBAgBlBlB,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEY,aAAcA,eA4BpBpB,oBAAmBqB,UAAU,SAa/BZ,cAAcX,SAAW,KAAM,UAC/B,SAASW,eAAca,GAAIC,SACzB,GAAIC,UAAWD,QAAQE,SAASC,cAC5BC,WAEJnC,SAAQoC,QAAQJ,SAAU,SAASK,QAASC,GAC1C,GAAI1B,WAAYyB,QAAQE,eACxBJ,UAASK,KAAK5B,UAAU6B,KAAK,SAASC,SACpC,MAAOL,aAGX,OAAOP,IAAGa,IAAIR,UAMhBd,aAAaf,SAAW,eAAgB,gBACxC,SAASe,cAAauB,aAAc3B,eAClC,MAAO4B,GAAEC,KAAK7B,cAAe,SAASoB,SACpC,MAAOA,SAAQU,IAAMH,aAAaI,YAOtCzB,aAAajB,SAAW,eAAgB,eAAgB,kBACxD,SAASiB,cAAaqB,aAAcvB,aAAc4B,iBAChD,GAAIC,WAAYD,gBAAgBL,aAAaM,WACzCC,KAGJA,OAAQ,SAASvC,WACf,GAAIO,SAAU0B,EAAEC,KAAKlC,UAAW,SAASwC,GACvC,MAAOA,GAAEC,MAAQH,WAEnB,KAAK/B,QAAS,CACZnB,QAAQoC,QAAQxB,UAAW,SAASwC,GAClC,IAAKjC,SAAWiC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,EAAG,CACnDpC,QAAUgC,MAAMC,EAAEE,aAIxB,MAAOnC,SAGT,OAAOgC,OAAM9B,aAAamC,YAM5B7B,cAAcrB,SAAW,UAAW,eACpC,SAASqB,eAAc8B,QAASlC,cAC9B,GAAIkC,QAAQC,aACV,QAEF,OAAOnC,cAAaoC,UAetBnC,oBAAoBlB,SAAW,KAAM,UACrC,SAASkB,qBAAoBM,GAAI2B,SAC/B,GAAIA,QAAQC,aACV,MAAOD,SAAQG,mBAEf,OAAO9B,IAAG+B,OAAO,8BAOrBnC,6BAA6BpB,SAAW,KAAM,UAAW,kBAAmB,eAC5E,SAASoB,8BAA6BI,GAAI2B,QAASR,gBAAiBL,cAClE,GAAIM,WAAYD,gBAAgBL,aAAaM,UAE7C,IAAIO,QAAQC,aAAc,CACxBD,QAAQG,eAAeE,sBACvB,OAAOjB,GAAEC,KAAKW,QAAQG,eAAeJ,WAAY,SAASO,eACxD,MAAOA,eAAcV,MAAQH,gBAI/B,OAAOpB,IAAG+B,OAAO,0CAMrBjC,aAAatB,SAAW,UAAW,kBAAmB,eAAgB,SAAU,eAAgB,gBAChG,SAASsB,cAAa6B,QAASO,gBAAiBpB,aAAcqB,OAAQ1C,aAAcI,eAClF,GAAIF,QAEJA,SAAUoB,EAAEC,KAAKvB,aAAa2C,UAAW,SAASC,eAChD,MAAOA,eAAcC,KAAOxB,aAAayB,WAG3C,IAAI5C,QAAS,CACXF,aAAa+C,gBAAkB1B,aAAayB,SAC5C,OAAO5C,SAAQ8C,cAEZ,CAEHN,OAAOO,GAAG,wBAA0BxB,UAAWzB,aAAakD,SAAS1B,GAAIG,UAAWc,gBAAgBzC,aAAa8B,SAerHhD,SAASC,SAAW,aAAc,OAAQ,SAC1C,SAASD,UAASqE,WAAYC,KAAMV,QAClCS,WAAWE,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,UAAWC,WAAYC,OAC5FP,KAAKO,MAAMA,MACXjB,QAAOO,GAAG,SAEZE,YAAWE,IAAI,oBAAqB,SAASC,MAAOM,QAASC,SAAUC,WACrEV,KAAKO,MAAML,MAAOM,QAASC,SAAUC","file":"Mailer.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index 2cc977eb6..564634bdf 100644 --- a/UI/WebServerResources/js/Mailer.services.js +++ b/UI/WebServerResources/js/Mailer.services.js @@ -1,3 +1,3 @@ -!function(){"use strict";function Account(futureAccountData){"function"!=typeof futureAccountData.then&&(angular.extend(this,futureAccountData),_.each(this.identities,function(identity){identity.fullName?identity.full=identity.fullName+" <"+identity.email+">":identity.full="<"+identity.email+">"}),Account.$log.debug("Account: "+JSON.stringify(futureAccountData,void 0,2)))}Account.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function($q,$timeout,$log,Settings,Resource,Preferences,Mailbox,Message){return angular.extend(Account,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Preferences:Preferences,$Mailbox:Mailbox,$Message:Message}),Account}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",Account.$factory),Account.$findAll=function(data){return data?Account.$unwrapCollection(data):Account.$$resource.fetch("","mailAccounts").then(function(o){return Account.$unwrapCollection(o)})},Account.$unwrapCollection=function(data){var collection=[];return angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this;return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){return _this.$mailboxes=data,Account.$Preferences.ready().then(function(){var expandedFolders,_visit=function(mailboxes){_.forEach(mailboxes,function(o){o.$expanded=expandedFolders.indexOf("/"+o.id)>=0,o.children&&o.children.length>0&&_visit(o.children)})};Account.$Preferences.settings.Mail.ExpandedFolders&&(expandedFolders=angular.isString(Account.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(Account.$Preferences.settings.Mail.ExpandedFolders):Account.$Preferences.settings.Mail.ExpandedFolders,expandedFolders.length>0&&_visit(_this.$mailboxes)),_this.$flattenMailboxes({reload:!0})}),_this.$mailboxes}):Account.$q.when(this.$mailboxes)},Account.prototype.$flattenMailboxes=function(options){var _this=this,allMailboxes=[],expandedMailboxes=[],_visit=function(mailboxes){_.each(mailboxes,function(o){allMailboxes.push(o),(options&&options.all||o.$expanded)&&o.children&&o.children.length>0&&_visit(o.children)})};return!this.$$flattenMailboxes||options&&(options.reload||options.all)?(_visit(this.$mailboxes),_this.$$flattenMailboxes=allMailboxes,options&&options.saveState&&(_.reduce(allMailboxes,function(expandedFolders,mailbox){return mailbox.$expanded&&expandedFolders.push("/"+mailbox.id),expandedFolders},expandedMailboxes),Account.$$resource.post(null,"saveFoldersState",expandedMailboxes))):allMailboxes=this.$$flattenMailboxes,allMailboxes},Account.prototype.$getMailboxByType=function(type){var mailbox,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.type==type});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};mailbox=_find(this.$mailboxes),console.debug(mailbox),console.debug(this.specialMailboxes)},Account.prototype.$getMailboxByPath=function(path){var mailbox=null,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==path});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};return mailbox=_find(this.$mailboxes)},Account.prototype.$newMailbox=function(path,name){var _this=this;return Account.$$resource.post(path.toString(),"createFolder",{name:name}).then(function(){_this.$getMailboxes({reload:!0})})},Account.prototype.$newMessage=function(){var _this=this;return Account.$$resource.fetch(this.id.toString(),"compose").then(function(data){Account.$log.debug("New message (compose): "+JSON.stringify(data,void 0,2));var message=new Account.$Message(data.accountId,_this.$getMailboxByPath(data.mailboxPath),data);return message}).then(function(message){return Account.$$resource.fetch(message.$absolutePath({asDraft:!0}),"edit").then(function(data){return Account.$log.debug("New message (edit): "+JSON.stringify(data,void 0,2)),angular.extend(message.editable,data),message})})},Account.prototype.$addDelegate=function(user){var _this=this,deferred=Account.$q.defer(),param={uid:user.uid};return!user.uid||_.indexOf(_.pluck(this.delegates,"uid"),user.uid)>-1?deferred.resolve():Account.$$resource.fetch(this.id.toString(),"addDelegate",param).then(function(){_this.delegates.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))}),deferred.promise},Account.prototype.$removeDelegate=function(uid){var _this=this,param={uid:uid};return Account.$$resource.fetch(this.id.toString(),"removeDelegate",param).then(function(){var i=_.indexOf(_.pluck(_this.delegates,"uid"),uid);i>=0&&_this.delegates.splice(i,1)})}}(),function(){"use strict";function Mailbox(account,futureMailboxData){if(this.$account=account,"function"!=typeof futureMailboxData.then){if(this.init(futureMailboxData),this.name&&!this.path){var newMailboxData=Mailbox.$$resource.create("createFolder",this.name);this.$unwrap(newMailboxData)}}else this.$unwrap(futureMailboxData)}Mailbox.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function($q,$timeout,$log,Settings,Resource,Message,Acl,Preferences,PRELOAD){return angular.extend(Mailbox,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Message:Message,$$Acl:Acl,$Preferences:Preferences,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:PRELOAD}),Preferences.ready().then(function(){Preferences.settings.Mail.SortingState&&(Mailbox.$query.sort=Preferences.settings.Mail.SortingState[0],Mailbox.$query.asc=parseInt(Preferences.settings.Mail.SortingState[1]))}),Mailbox}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",Mailbox.$factory),Mailbox.$find=function(account){var futureMailboxData;return futureMailboxData=this.$$resource.fetch(account.id.toString(),"view"),Mailbox.$unwrapCollection(account,futureMailboxData)},Mailbox.$unwrapCollection=function(account,futureMailboxData){var collection=[],createMailboxes=function(level,mailbox){for(var i=0;i=0&&indexstartIndex&&max>startIndex;startIndex++)angular.isDefined(this.$messages[startIndex].subject)||this.$messages[startIndex].loading?endIndex++:(uids.push(this.$messages[startIndex].uid),this.$messages[startIndex].loading=!0);Mailbox.$log.debug("Loading UIDs "+uids.join(" ")),futureHeadersData=Mailbox.$$resource.post(this.id,"headers",{uids:uids}),this.$unwrapHeaders(futureHeadersData)}return loaded},Mailbox.prototype.isEditable=function(){return"folder"==this.type},Mailbox.prototype.$rename=function(){var findParent,parent,children,i,_this=this;return this.name==this.$shadowData.name?Mailbox.$q.when():(findParent=function(parent,children){var parentMailbox=null,mailbox=_.find(children,function(o){return o.path==_this.path});return mailbox?parentMailbox=parent:angular.forEach(children,function(o){!parentMailbox&&o.children&&o.children.length>0&&(parentMailbox=findParent(o,o.children))}),parentMailbox},parent=findParent(null,this.$account.$mailboxes),children=null===parent?this.$account.$mailboxes:parent.children,i=_.indexOf(_.pluck(children,"id"),this.id),this.$save().then(function(data){var sibling;angular.extend(_this,data),_this.id=_this.$id(),children.splice(i,1),sibling=_.find(children,function(o){return Mailbox.$log.debug(o.name+" ? "+_this.name),"folder"==o.type&&o.name.localeCompare(_this.name)>0}),i=sibling?_.indexOf(_.pluck(children,"id"),sibling.id):children.length,children.splice(i,0,_this)}))},Mailbox.prototype.$compact=function(){return Mailbox.$$resource.post(this.id,"expunge")},Mailbox.prototype.$setFolderAs=function(type){return Mailbox.$$resource.post(this.id,"setAs"+type+"Folder")},Mailbox.prototype.$emptyTrash=function(){var _this=this;return Mailbox.$$resource.post(this.id,"emptyTrash").then(function(){_this.$messages=[],_this.uidsMap={},_this.unseenCount=0,angular.isDefined(_this.children)&&_this.children.length&&_this.$account.$getMailboxes({reload:!0})})},Mailbox.prototype.$markAsRead=function(){return Mailbox.$$resource.post(this.id,"markRead")},Mailbox.prototype.$flagMessages=function(uids,flags,operation){var data={msgUIDs:uids,flags:flags,operation:operation};return Mailbox.$$resource.post(this.id,"addOrRemoveLabel",data)},Mailbox.prototype.$delete=function(){var _this=this;return Mailbox.$$resource.remove(this.id).then(function(){return _this.$account.$getMailboxes({reload:!0}),!0})},Mailbox.prototype.$deleteMessages=function(uids){return Mailbox.$$resource.post(this.id,"batchDelete",{uids:uids})},Mailbox.prototype.$copyMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"copyMessages",{uids:uids,folder:folder})},Mailbox.prototype.$moveMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"moveMessages",{uids:uids,folder:folder})},Mailbox.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Mailbox.prototype.$save=function(){var _this=this;return Mailbox.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),Mailbox.$log.debug(JSON.stringify(data,void 0,2)),data},function(data){Mailbox.$log.error(JSON.stringify(data,void 0,2)),_this.$reset()})},Mailbox.prototype.$newMailbox=function(path,name){return this.$account.$newMailbox(path,name)},Mailbox.prototype.$omit=function(){var mailbox={};return angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&(mailbox[key]=value)}),mailbox},Mailbox.prototype.$unwrap=function(futureMailboxData){var _this=this,deferred=Mailbox.$q.defer();return this.$futureMailboxData=futureMailboxData,this.$futureMailboxData.then(function(data){Mailbox.$timeout(function(){var uids,headers;_this.init(data),_this.uids&&(Mailbox.$log.debug("unwrapping "+data.uids.length+" messages"),headers=_.invoke(_this.headers[0],"toLowerCase"),_this.headers.splice(0,1),_this.threaded&&(uids=_this.uids[0],_this.uids.splice(0,1)),_.reduce(_this.uids,function(msgs,msg,i){var data;return data=_this.threaded?_.object(uids,msg):{uid:msg.toString()},_this.uidsMap[data.uid]=i,msgs.push(new Mailbox.$Message(_this.$account.id,_this,data,!0)),msgs},_this.$messages),_.each(_this.headers,function(data){var msg=_.object(headers,data),i=_this.uidsMap[msg.uid.toString()];_.extend(_this.$messages[i],msg)})),Mailbox.$log.debug("mailbox "+_this.id+" ready"),_this.$isLoading=!1,deferred.resolve(_this.$messages)})},function(data){angular.extend(_this,data),_this.isError=!0,deferred.reject()}),deferred.promise},Mailbox.prototype.$unwrapHeaders=function(futureHeadersData){var _this=this;futureHeadersData.then(function(data){Mailbox.$timeout(function(){var headers,j;data.length>0&&(headers=_.invoke(data[0],"toLowerCase"),data.splice(0,1),_.each(data,function(messageHeaders){messageHeaders=_.object(headers,messageHeaders),j=_this.uidsMap[messageHeaders.uid.toString()],angular.isDefined(j)&&_.extend(_this.$messages[j],messageHeaders)}))})})}}(),function(){"use strict";function Message(accountId,mailbox,futureMessageData,lazy){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof futureMessageData.then?angular.isDefined(lazy)&&lazy?this.uid=futureMessageData.uid:(angular.extend(this,futureMessageData),this.$formatFullAddresses()):this.$unwrap(futureMessageData)}Message.$factory=["$q","$timeout","$log","sgSettings","Gravatar","Resource","Preferences",function($q,$timeout,$log,Settings,Gravatar,Resource,Preferences){return angular.extend(Message,{$q:$q,$timeout:$timeout,$log:$log,$gravatar:Gravatar,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser())}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors),Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&(Message.$displayRemoteInlineImages=!0)}),Message}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Message",Message.$factory),Message.filterTags=function(query){var re=new RegExp(query,"i"),results=[];return _.forEach(_.keys(Message.$tags),function(tag){var pair=Message.$tags[tag];-1!=pair[0].search(re)&&results.push({name:tag,description:pair[0],color:pair[1]})}),results},Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)||options){var path;path=_.map(this.$mailbox.path.split("/"),function(component){return"folder"+component.asCSSIdentifier()}),path.splice(0,0,this.accountId),options&&options.asDraft&&this.draftId?path.push(this.draftId):path.push(this.uid),this.id=path.join("/")}return this.id},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,oldUID>-1&&this.$mailbox.uidsMap[oldUID]&&(this.$mailbox.uidsMap[uid]=this.$mailbox.uidsMap[oldUID],this.$mailbox.uidsMap[oldUID]=null))},Message.prototype.$formatFullAddresses=function(){var _this=this,identities=_.pluck(_this.$mailbox.$account.identities,"email");_.each(["from","to","cc","bcc","reply-to"],function(type){_.each(_this[type],function(data,i){data.name&&data.name!=data.email?(data.full=data.name+" <"+data.email+">",data.name.split(" ").length&&(data.shortname=data.name.split(" ")[0].replace("'",""))):(data.full="<"+data.email+">",data.shortname=data.email.split("@")[0]),data.image=Message.$gravatar(data.email,32),_.indexOf(identities,data.email)>=0&&(data.shortname=l("me"))})})},Message.prototype.$shortRecipients=function(){var _this=this,result=[];return _.each(["to","cc","bcc"],function(type){_.each(_this[type],function(data,i){result.push(data.shortname)})}),result.join(", ")},Message.prototype.$shortAddress=function(type){var address="";return this[type]&&this[type].length>0&&(address=this[type][0].name||this[type][0].email||""),address},Message.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0},Message.prototype.showDetailedRecipients=function(){this.$showDetailedRecipients=!0},Message.prototype.$content=function(){var _this=this,parts=[],_visit=function(part){part.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==part.type?_visit(_.find(part.content,function(alternatePart){return part.preferredPart==alternatePart.contentType})):angular.isArray(part.content)?_.each(part.content,function(mixedPart){_visit(mixedPart)}):(angular.isUndefined(part.safeContent)&&(part.safeContent=part.content,_this.$hasUnsafeContent|=part.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==part.type?(part.html=!0,_this.$loadUnsafeContent||Message.$displayRemoteInlineImages?(angular.isUndefined(part.unsafeContent)&&(part.unsafeContent=document.createElement("div"),part.unsafeContent.innerHTML=part.safeContent,angular.forEach(["src","data","classid","background","style"],function(suffix){var element,value,i,elements=part.unsafeContent.querySelectorAll("[unsafe-"+suffix+"]");for(i=0;i=0)for(i=0,j=0;j0&&_visit(o.children)})};vm.virtualMailbox=new VirtualMailbox(vm.accounts[0]),Mailbox.$virtualMode||(vm.searchPreviousMailbox=Mailbox.selectedFolder),Mailbox.selectedFolder=vm.virtualMailbox,Mailbox.$virtualMode=!0,angular.isDefined(vm.search.mailbox)?(root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox),mailboxes.push(root),vm.search.subfolders&&root.children.length&&_visit(root.children)):mailboxes=vm.accounts[0].$flattenMailboxes(),vm.virtualMailbox.setMailboxes(mailboxes),vm.virtualMailbox.startSearch(vm.search.match,vm.search.params),$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}function addSearchParam(v){return vm.currentSearchParam=v,focus("advancedSearch"),!1}function newSearchParam(pattern){if(pattern.length&&vm.currentSearchParam.length){var n=0,searchParam=vm.currentSearchParam;return pattern.startsWith("!")&&(n=1,pattern=pattern.substring(1).trim()),vm.currentSearchParam="",{searchBy:searchParam,searchInput:pattern,negative:n}}}function newFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}function delegate(account){function MailboxDelegationController($scope,$mdDialog,User,account){function userFilter($query){return User.$filter($query,account.delegates)}function closeModal(){$mdDialog.hide()}function removeUser(user){account.$removeDelegate(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&account.$addDelegate(data).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}var vm=this;vm.users=account.delegates,vm.account=account,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.closeModal=closeModal,vm.removeUser=removeUser,vm.addUser=addUser}$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:User,account:account}}),MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"]}function editFolder(folder){vm.editMode=folder.path,focus("mailboxName_"+folder.path)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function selectFolder(account,folder){vm.editMode!=folder.path&&(vm.editMode=!1,vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function compactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function emptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function exportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}function confirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}function markFolderRead(folder){folder.$markAsRead()}function share(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}function metadataForFolder(folder){return"inbox"==folder.type?{name:folder.name,icon:"inbox"}:"draft"==folder.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==folder.type?{name:l("SentFolderName"),icon:"send"}:"trash"==folder.type?{name:l("TrashFolderName"),icon:"delete"}:"additional"==folder.type?{name:folder.name,icon:"folder_shared"}:{name:folder.name,icon:"folder_open"}}function setFolderAs(folder,type){folder.$setFolderAs(type).then(function(){folder.$account.$getMailboxes({reload:!0})},function(error){Dialog.alert(l("Warning"),error)})}function refreshUnseenCount(){var unseenCountFolders=window.unseenCountFolders;_.forEach(vm.accounts,function(account){_.includes(unseenCountFolders,account.id+"/folderINBOX")||unseenCountFolders.push(account.id+"/folderINBOX"),_.forEach(account.$$flattenMailboxes,function(mailbox){angular.isDefined(mailbox.unseenCount)&&!_.includes(unseenCountFolders,mailbox.id)&&unseenCountFolders.push(mailbox.id)})}),Account.$$resource.post("","unseenCount",{mailboxes:unseenCountFolders}).then(function(data){_.forEach(vm.accounts,function(account){_.forEach(account.$$flattenMailboxes,function(mailbox){data[mailbox.id]&&(mailbox.unseenCount=data[mailbox.id])})})}),Preferences.ready().then(function(){var refreshViewCheck=Preferences.defaults.SOGoRefreshViewCheck;refreshViewCheck&&"manually"!=refreshViewCheck&&$timeout(vm.refreshUnseenCount,1e3*refreshViewCheck.timeInterval())})}var account,mailbox,vm=this;vm.service=Mailbox,vm.accounts=stateAccounts,vm.newFolder=newFolder,vm.delegate=delegate,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.selectFolder=selectFolder,vm.saveFolder=saveFolder,vm.compactFolder=compactFolder,vm.emptyTrashFolder=emptyTrashFolder,vm.exportMails=exportMails,vm.confirmDelete=confirmDelete,vm.markFolderRead=markFolderRead,vm.share=share,vm.metadataForFolder=metadataForFolder,vm.setFolderAs=setFolderAs,vm.refreshUnseenCount=refreshUnseenCount,vm.showingAdvancedSearch=!1,vm.currentSearchParam="",vm.addSearchParam=addSearchParam,vm.newSearchParam=newSearchParam,vm.showAdvancedSearch=showAdvancedSearch,vm.hideAdvancedSearch=hideAdvancedSearch,vm.toggleAdvancedSearch=toggleAdvancedSearch,vm.search={options:{"":l("Select a criteria"),subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},mailbox:"INBOX",subfolders:1,match:"AND",params:[]},"mail"==$state.current.name&&vm.accounts.length>0&&vm.accounts[0].$mailboxes.length>0&&(account=vm.accounts[0],mailbox=account.$mailboxes[0],$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})),vm.refreshUnseenCount()}MailboxesController.$inject=["$state","$timeout","$mdDialog","sgFocus","encodeUriFilter","Dialog","sgSettings","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($window,$scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,sgSettings,focus,Dialog,Account,Mailbox,Message){function doDelete(){stateMailbox.$deleteMessages([stateMessage.uid]).then(function(){var index=_.findIndex(stateMailbox.$messages,function(o){return o.uid==stateMessage.uid});-1!=index&&stateMailbox.$messages.splice(index,1),vm.message=null,$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)})})}function showMailEditor($event,message,recipients){null===messageDialog&&(angular.isDefined(recipients)||(recipients=[]),messageDialog=$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:vm.accounts,stateMessage:message,stateRecipients:recipients}})["finally"](function(){messageDialog=null}))}function close(){$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)}).then(function(){vm.message=null,delete stateMailbox.selectedMessage})}function reply($event){var message=vm.message.$reply();showMailEditor($event,message)}function replyAll($event){var message=vm.message.$replyAll();showMailEditor($event,message)}function forward($event){var message=vm.message.$forward();showMailEditor($event,message)}function edit($event){vm.message.$editableContent().then(function(){showMailEditor($event,vm.message)})}function openPopup(){var url=[sgSettings.baseURL(),"UIxMailPopupView#/Mail",vm.message.accountId,encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),vm.message.uid].join("/"),wId=vm.message.$absolutePath();popupWindow=$window.open(url,wId,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function closePopup(){$window.close()}function newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}function saveMessage(){window.location.href=ApplicationBaseURL+"/"+vm.mailbox.id+"/saveMessages?uid="+vm.message.uid}function viewRawSource($event){Message.$$resource.post(vm.message.id,"viewsource").then(function(data){function MessageRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:MessageRawSourceDialogController}),MessageRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this,messageDialog=null,popupWindow=null;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.close=close,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,vm.openPopup=openPopup,vm.closePopup=closePopup,vm.newMessage=newMessage,vm.saveMessage=saveMessage,vm.viewRawSource=viewRawSource,$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})})}MessageController.$inject=["$window","$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,focus,Dialog,AddressBook,Preferences){function cancel(){vm.autosave&&$timeout.cancel(vm.autosave),$mdDialog.cancel()}function send(){vm.autosave&&$timeout.cancel(vm.autosave),vm.message.$send().then(function(data){$mdDialog.hide()},function(data){Dialog.alert(l(data.status),l(data.message))})}function contactFilter($query){return AddressBook.$filterAll($query)}function addRecipient(user){var recipient=[];return angular.isString(user)?user:(user.$$fullname&&recipient.push(user.$$fullname),user.$$email&&recipient.push("<"+user.$$email+">"),recipient.join(" "))}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;vm.addRecipient=addRecipient,vm.autocomplete={to:{},cc:{},bcc:{}},vm.autosave=null,vm.autosaveDrafts=autosaveDrafts,vm.hideCc=!0,vm.hideBcc=!0,vm.cancel=cancel,vm.send=send,vm.contactFilter=contactFilter,vm.identities=_.pluck(_.flatten(_.pluck(stateAccounts,"identities")),"full"),vm.uploader=new FileUploader({url:stateMessage.$absolutePath({asDraft:!0})+"/save",autoUpload:!0,alias:"attachments",onProgressItem:function(item,progress){console.debug(item),console.debug(progress)},onSuccessItem:function(item,response,status,headers){stateMessage.$setUID(response.uid),stateMessage.$reload(),console.debug(item),console.debug("success = "+JSON.stringify(response,void 0,2))},onCancelItem:function(item,response,status,headers){console.debug(item),console.debug("cancel = "+JSON.stringify(response,void 0,2)),stateMessage.$deleteAttachment(item.file.name),this.removeFromQueue(item)},onErrorItem:function(item,response,status,headers){console.debug(item),console.debug("error = "+JSON.stringify(response,void 0,2))}}),"reply"==$stateParams.actionName?stateMessage.$reply().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"replyall"==$stateParams.actionName?stateMessage.$replyAll().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"forward"==$stateParams.actionName?stateMessage.$forward().then(function(msgObject){vm.message=msgObject}):angular.isDefined(stateMessage)&&(vm.message=stateMessage),angular.isDefined(stateRecipients)&&(vm.message.editable.to=_.union(vm.message.editable.to,_.pluck(stateRecipients,"full"))),Preferences.ready().then(function(){Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60)),vm.localeCode=Preferences.defaults.LocaleCode})}MessageEditorController.$inject=["$stateParams","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","sgFocus","Dialog","AddressBook","Preferences"],angular.module("SOGo.MailerUI").controller("MessageEditorController",MessageEditorController)}(),function(){"use strict";function sgImip(){function link(scope,iElement,attrs,ctrl){ctrl.pathToAttachment=attrs.sgImipPath}return{restrict:"A",link:link,controller:"sgImipController"}}function sgImipController($scope,User){var vm=this;$scope.delegateInvitation=!1,$scope.delegatedTo="",$scope.searchText="",$scope.userFilter=function($query){return User.$filter($query)},$scope.iCalendarAction=function(action){var data;"delegate"==action&&(data={receiveUpdates:!1,delegatedTo:$scope.delegatedTo.c_email}),$scope.viewer.message.$imipAction(vm.pathToAttachment,action,data)}}sgImipController.$inject=["$scope","User"],angular.module("SOGo.MailerUI").controller("sgImipController",sgImipController).directive("sgImip",sgImip)}(); +(function(){"use strict";function Account(futureAccountData){if(typeof futureAccountData.then!=="function"){angular.extend(this,futureAccountData);_.each(this.identities,function(identity){if(identity.fullName)identity.full=identity.fullName+" <"+identity.email+">";else identity.full="<"+identity.email+">"});Account.$log.debug("Account: "+JSON.stringify(futureAccountData,undefined,2))}else{}}Account.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function($q,$timeout,$log,Settings,Resource,Preferences,Mailbox,Message){angular.extend(Account,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Preferences:Preferences,$Mailbox:Mailbox,$Message:Message});return 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){if(!data){return Account.$$resource.fetch("","mailAccounts").then(function(o){return Account.$unwrapCollection(o)})}return Account.$unwrapCollection(data)};Account.$unwrapCollection=function(data){var collection=[];angular.forEach(data,function(o,i){o.id=i;collection[i]=new Account(o)});return collection};Account.prototype.$getMailboxes=function(options){var _this=this;if(this.$mailboxes&&!(options&&options.reload)){return Account.$q.when(this.$mailboxes)}else{return Account.$Mailbox.$find(this).then(function(data){_this.$mailboxes=data;Account.$Preferences.ready().then(function(){var expandedFolders,_visit=function(mailboxes){_.forEach(mailboxes,function(o){o.$expanded=expandedFolders.indexOf("/"+o.id)>=0;if(o.children&&o.children.length>0){_visit(o.children)}})};if(Account.$Preferences.settings.Mail.ExpandedFolders){if(angular.isString(Account.$Preferences.settings.Mail.ExpandedFolders))expandedFolders=angular.fromJson(Account.$Preferences.settings.Mail.ExpandedFolders);else expandedFolders=Account.$Preferences.settings.Mail.ExpandedFolders;if(expandedFolders.length>0){_visit(_this.$mailboxes)}}_this.$flattenMailboxes({reload:true})});return _this.$mailboxes})}};Account.prototype.$flattenMailboxes=function(options){var _this=this,allMailboxes=[],expandedMailboxes=[],_visit=function(mailboxes){_.each(mailboxes,function(o){allMailboxes.push(o);if((options&&options.all||o.$expanded)&&o.children&&o.children.length>0){_visit(o.children)}})};if(this.$$flattenMailboxes&&!(options&&(options.reload||options.all))){allMailboxes=this.$$flattenMailboxes}else{_visit(this.$mailboxes);_this.$$flattenMailboxes=allMailboxes;if(options&&options.saveState){_.reduce(allMailboxes,function(expandedFolders,mailbox){if(mailbox.$expanded){expandedFolders.push("/"+mailbox.id)}return expandedFolders},expandedMailboxes);Account.$$resource.post(null,"saveFoldersState",expandedMailboxes)}}return allMailboxes};Account.prototype.$getMailboxByType=function(type){var mailbox,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.type==type});if(!mailbox){angular.forEach(mailboxes,function(o){if(!mailbox&&o.children&&o.children.length>0){mailbox=_find(o.children)}})}return 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});if(!mailbox){angular.forEach(mailboxes,function(o){if(!mailbox&&o.children&&o.children.length>0){mailbox=_find(o.children)}})}return mailbox};mailbox=_find(this.$mailboxes);return mailbox};Account.prototype.$newMailbox=function(path,name){var _this=this;return Account.$$resource.post(path.toString(),"createFolder",{name:name}).then(function(){_this.$getMailboxes({reload:true})})};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,undefined,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:true}),"edit").then(function(data){Account.$log.debug("New message (edit): "+JSON.stringify(data,undefined,2));angular.extend(message.editable,data);return message})})};Account.prototype.$addDelegate=function(user){var _this=this,deferred=Account.$q.defer(),param={uid:user.uid};if(!user.uid||_.indexOf(_.pluck(this.delegates,"uid"),user.uid)>-1){deferred.resolve()}else{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."))})}return 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);if(i>=0){_this.delegates.splice(i,1)}})}})();(function(){"use strict";function Mailbox(account,futureMailboxData){this.$account=account;if(typeof futureMailboxData.then!=="function"){this.init(futureMailboxData);if(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){angular.extend(Mailbox,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Message:Message,$$Acl:Acl,$Preferences:Preferences,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:false,PRELOAD:PRELOAD});Preferences.ready().then(function(){if(Preferences.settings.Mail.SortingState){Mailbox.$query.sort=Preferences.settings.Mail.SortingState[0];Mailbox.$query.asc=parseInt(Preferences.settings.Mail.SortingState[1])}});return 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 path,futureMailboxData;futureMailboxData=this.$$resource.fetch(account.id.toString(),"view");return Mailbox.$unwrapCollection(account,futureMailboxData)};Mailbox.$unwrapCollection=function(account,futureMailboxData){var collection=[],createMailboxes=function(level,mailbox){for(var i=0;i=0&&index0){parentMailbox=findParent(o,o.children)}})}return parentMailbox};parent=findParent(null,this.$account.$mailboxes);if(parent===null)children=this.$account.$mailboxes;else children=parent.children;i=_.indexOf(_.pluck(children,"id"),this.id);return this.$save().then(function(data){var sibling;angular.extend(_this,data);_this.id=_this.$id();children.splice(i,1);sibling=_.find(children,function(o){Mailbox.$log.debug(o.name+" ? "+_this.name);return o.type=="folder"&&o.name.localeCompare(_this.name)>0});if(sibling){i=_.indexOf(_.pluck(children,"id"),sibling.id)}else{i=children.length}children.splice(i,0,_this)})};Mailbox.prototype.$compact=function(){return Mailbox.$$resource.post(this.id,"expunge")};Mailbox.prototype.$setFolderAs=function(type){return Mailbox.$$resource.post(this.id,"setAs"+type+"Folder")};Mailbox.prototype.$emptyTrash=function(){var _this=this;return Mailbox.$$resource.post(this.id,"emptyTrash").then(function(){_this.$messages=[];_this.uidsMap={};_this.unseenCount=0;if(angular.isDefined(_this.children)&&_this.children.length)_this.$account.$getMailboxes({reload:true})})};Mailbox.prototype.$markAsRead=function(){return Mailbox.$$resource.post(this.id,"markRead")};Mailbox.prototype.$flagMessages=function(uids,flags,operation){var data={msgUIDs:uids,flags:flags,operation:operation};return Mailbox.$$resource.post(this.id,"addOrRemoveLabel",data)};Mailbox.prototype.$delete=function(){var _this=this;return Mailbox.$$resource.remove(this.id).then(function(){_this.$account.$getMailboxes({reload:true});return true})};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){if(key!="constructor"&&key!="children"&&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){_this.$shadowData=_this.$omit();Mailbox.$log.debug(JSON.stringify(data,undefined,2));return data},function(data){Mailbox.$log.error(JSON.stringify(data,undefined,2));_this.$reset()})};Mailbox.prototype.$newMailbox=function(path,name){return this.$account.$newMailbox(path,name)};Mailbox.prototype.$omit=function(){var mailbox={};angular.forEach(this,function(value,key){if(key!="constructor"&&key!="children"&&key[0]!="$"){mailbox[key]=value}});return mailbox};Mailbox.prototype.$unwrap=function(futureMailboxData){var _this=this,deferred=Mailbox.$q.defer();this.$futureMailboxData=futureMailboxData;this.$futureMailboxData.then(function(data){Mailbox.$timeout(function(){var uids,headers;_this.init(data);if(_this.uids){Mailbox.$log.debug("unwrapping "+data.uids.length+" messages");headers=_.invoke(_this.headers[0],"toLowerCase");_this.headers.splice(0,1);if(_this.threaded){uids=_this.uids[0];_this.uids.splice(0,1)}_.reduce(_this.uids,function(msgs,msg,i){var data;if(_this.threaded)data=_.object(uids,msg);else data={uid:msg.toString()};_this.uidsMap[data.uid]=i;msgs.push(new Mailbox.$Message(_this.$account.id,_this,data,true));return 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=false;deferred.resolve(_this.$messages)})},function(data){angular.extend(_this,data);_this.isError=true;deferred.reject()});return deferred.promise};Mailbox.prototype.$unwrapHeaders=function(futureHeadersData){var _this=this;futureHeadersData.then(function(data){Mailbox.$timeout(function(){var headers,j;if(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()];if(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=false;this.$loadUnsafeContent=false;this.$showDetailedRecipients=false;this.editable={to:[],cc:[],bcc:[]};this.selected=false;if(typeof futureMessageData.then!=="function"){if(angular.isDefined(lazy)&&lazy){this.uid=futureMessageData.uid}else{angular.extend(this,futureMessageData);this.$formatFullAddresses()}}else{this.$unwrap(futureMessageData)}}Message.$factory=["$q","$timeout","$log","sgSettings","Gravatar","Resource","Preferences",function($q,$timeout,$log,Settings,Gravatar,Resource,Preferences){angular.extend(Message,{$q:$q,$timeout:$timeout,$log:$log,$gravatar:Gravatar,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser())});Preferences.ready().then(function(){if(Preferences.defaults.SOGoMailLabelsColors){Message.$tags=Preferences.defaults.SOGoMailLabelsColors}if(Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&Preferences.defaults.SOGoMailDisplayRemoteInlineImages=="always"){Message.$displayRemoteInlineImages=true}});return Message}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Message",Message.$factory);Message.filterTags=function(query){var re=new RegExp(query,"i"),results=[];_.forEach(_.keys(Message.$tags),function(tag){var pair=Message.$tags[tag];if(pair[0].search(re)!=-1){results.push({name:tag,description:pair[0],color:pair[1]})}});return results};Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)||options){var path;path=_.map(this.$mailbox.path.split("/"),function(component){return"folder"+component.asCSSIdentifier()});path.splice(0,0,this.accountId);if(options&&options.asDraft&&this.draftId){path.push(this.draftId)}else{path.push(this.uid)}this.id=path.join("/")}return this.id};Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;if(oldUID!=parseInt(uid)){this.uid=uid;if(oldUID>-1){oldUID=oldUID.toString();if(angular.isDefined(this.$mailbox.uidsMap[oldUID])){this.$mailbox.uidsMap[uid]=this.$mailbox.uidsMap[oldUID];delete this.$mailbox.uidsMap[oldUID]}}else{if(this.$mailbox.constructor.selectedFolder.type=="draft"){this.$mailbox.constructor.selectedFolder.$filter()}}}};Message.prototype.$formatFullAddresses=function(){var _this=this;var identities=_.pluck(_this.$mailbox.$account.identities,"email");_.each(["from","to","cc","bcc","reply-to"],function(type){_.each(_this[type],function(data,i){if(data.name&&data.name!=data.email){data.full=data.name+" <"+data.email+">";if(data.name.split(" ").length)data.shortname=data.name.split(" ")[0].replace("'","")}else{data.full="<"+data.email+">";data.shortname=data.email.split("@")[0]}data.image=Message.$gravatar(data.email,32);if(_.indexOf(identities,data.email)>=0)data.shortname=l("me")})})};Message.prototype.$shortRecipients=function(){var _this=this;var result=[];_.each(["to","cc","bcc"],function(type){_.each(_this[type],function(data,i){result.push(data.shortname)})});return result.join(", ")};Message.prototype.$shortAddress=function(type){var address="";if(this[type]&&this[type].length>0){address=this[type][0].name||this[type][0].email||""}return address};Message.prototype.allowReplyAll=function(){var recipientsCount=0;recipientsCount=_.reduce(["to","cc"],function(count,type){if(this[type])return count+this[type].length;else return count},recipientsCount,this);return!this.isDraft&&recipientsCount>1};Message.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=true};Message.prototype.showDetailedRecipients=function(){this.$showDetailedRecipients=true};Message.prototype.$content=function(){var _this=this,parts=[],_visit=function(part){part.msgclass="msg-attachment-other";if(part.type=="UIxMailPartAlternativeViewer"){_visit(_.find(part.content,function(alternatePart){return part.preferredPart==alternatePart.contentType}))}else if(angular.isArray(part.content)){_.each(part.content,function(mixedPart){_visit(mixedPart)})}else{if(angular.isUndefined(part.safeContent)){part.safeContent=part.content;_this.$hasUnsafeContent|=part.safeContent.indexOf(" unsafe-")>-1}if(part.type=="UIxMailPartHTMLViewer"){part.html=true;if(_this.$loadUnsafeContent||Message.$displayRemoteInlineImages){if(angular.isUndefined(part.unsafeContent)){part.unsafeContent=document.createElement("div");part.unsafeContent.innerHTML=part.safeContent;angular.forEach(["src","data","classid","background","style"],function(suffix){var elements=part.unsafeContent.querySelectorAll("[unsafe-"+suffix+"]"),element,value,i;for(i=0;i=0){i=0;for(j=0;j0&&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)})}function showAdvancedSearch(path){vm.showingAdvancedSearch=true;vm.search.mailbox=path}function hideAdvancedSearch(){vm.showingAdvancedSearch=false;vm.service.$virtualMode=false;account=vm.accounts[0];mailbox=vm.searchPreviousMailbox;$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})}function toggleAdvancedSearch(){if(Mailbox.selectedFolder.$isLoading){vm.virtualMailbox.stopSearch()}else{var root,mailboxes=[],_visit=function(folders){_.each(folders,function(o){mailboxes.push(o);if(o.children&&o.children.length>0){_visit(o.children)}})};vm.virtualMailbox=new VirtualMailbox(vm.accounts[0]);if(!Mailbox.$virtualMode)vm.searchPreviousMailbox=Mailbox.selectedFolder;Mailbox.selectedFolder=vm.virtualMailbox;Mailbox.$virtualMode=true;if(angular.isDefined(vm.search.mailbox)){root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox);mailboxes.push(root);if(vm.search.subfolders&&root.children.length)_visit(root.children)}else{mailboxes=vm.accounts[0].$flattenMailboxes()}vm.virtualMailbox.setMailboxes(mailboxes);vm.virtualMailbox.startSearch(vm.search.match,vm.search.params);$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}function addSearchParam(v){vm.currentSearchParam=v;focus("advancedSearch");return false}function newSearchParam(pattern){if(pattern.length&&vm.currentSearchParam.length){var n=0,searchParam=vm.currentSearchParam;if(pattern.startsWith("!")){n=1;pattern=pattern.substring(1).trim()}vm.currentSearchParam="";return{searchBy:searchParam,searchInput:pattern,negative:n}}}function newFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}function delegate(account){$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:true,escapeToClose:true,locals:{User:User,account:account}});MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"];function MailboxDelegationController($scope,$mdDialog,User,account){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;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){if(data){account.$addDelegate(data).then(function(){vm.userToAdd="";vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}}}}function editFolder(folder){vm.editMode=folder.path;focus("mailboxName_"+folder.path)}function revertEditing(folder){folder.$reset();vm.editMode=false}function selectFolder(account,folder){if(vm.editMode==folder.path)return;vm.editMode=false;vm.showingAdvancedSearch=false;vm.service.$virtualMode=false;if($mdMedia("sm"))$mdSidenav("left").close();$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)})}function saveFolder(folder){folder.$rename().then(function(data){vm.editMode=false},function(data,status){Dialog.alert(l("Warning"),data)})}function compactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function emptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function exportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}function confirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}function markFolderRead(folder){folder.$markAsRead()}function share(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:true,escapeToClose:true,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}function metadataForFolder(folder){if(folder.type=="inbox")return{name:folder.name,icon:"inbox"};else if(folder.type=="draft")return{name:l("DraftsFolderName"),icon:"drafts"};else if(folder.type=="sent")return{name:l("SentFolderName"),icon:"send"};else if(folder.type=="trash")return{name:l("TrashFolderName"),icon:"delete"};else if(folder.type=="additional")return{name:folder.name,icon:"folder_shared"};return{name:folder.name,icon:"folder_open"}}function setFolderAs(folder,type){folder.$setFolderAs(type).then(function(){folder.$account.$getMailboxes({reload:true})},function(error){Dialog.alert(l("Warning"),error)})}function refreshUnseenCount(){var unseenCountFolders=window.unseenCountFolders;_.forEach(vm.accounts,function(account){if(!_.includes(unseenCountFolders,account.id+"/folderINBOX"))unseenCountFolders.push(account.id+"/folderINBOX");_.forEach(account.$$flattenMailboxes,function(mailbox){if(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){if(data[mailbox.id])mailbox.unseenCount=data[mailbox.id]})})});Preferences.ready().then(function(){var refreshViewCheck=Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&refreshViewCheck!="manually")$timeout(vm.refreshUnseenCount,refreshViewCheck.timeInterval()*1e3)})}vm.refreshUnseenCount()}angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)})();(function(){"use strict";MessageController.$inject=["$window","$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox","Message"];function MessageController($window,$scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,sgSettings,focus,Dialog,Account,Mailbox,Message){var vm=this,messageDialog=null,popupWindow=null;vm.accounts=stateAccounts;vm.account=stateAccount;vm.mailbox=stateMailbox;vm.message=stateMessage;vm.service=Message;vm.tags={searchText:"",selected:""};vm.showFlags=stateMessage.flags&&stateMessage.flags.length>0;vm.doDelete=doDelete;vm.close=close;vm.reply=reply;vm.replyAll=replyAll;vm.forward=forward;vm.edit=edit;vm.openPopup=openPopup;vm.closePopup=closePopup;vm.newMessage=newMessage;vm.saveMessage=saveMessage;vm.toggleRawSource=toggleRawSource;vm.showRawSource=false;$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})});function doDelete(){stateMailbox.$deleteMessages([stateMessage.uid]).then(function(){var index=_.findIndex(stateMailbox.$messages,function(o){return o.uid==stateMessage.uid});if(index!=-1)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){if(messageDialog===null){if(!angular.isDefined(recipients))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(){$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)}).then(function(){vm.message=null;delete stateMailbox.selectedMessage})}function reply($event){var message=vm.message.$reply();showMailEditor($event,message)}function replyAll($event){var message=vm.message.$replyAll();showMailEditor($event,message)}function forward($event){var message=vm.message.$forward();showMailEditor($event,message)}function edit($event){vm.message.$editableContent().then(function(){showMailEditor($event,vm.message)})}function openPopup(){var url=[sgSettings.baseURL(),"UIxMailPopupView#/Mail",vm.message.accountId,encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),vm.message.uid].join("/"),wId=vm.message.$absolutePath();popupWindow=$window.open(url,wId,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function closePopup(){$window.close()}function newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}function saveMessage(){window.location.href=ApplicationBaseURL+"/"+vm.mailbox.id+"/saveMessages?uid="+vm.message.uid}function toggleRawSource($event){if(!vm.showRawSource&&!vm.rawSource){Message.$$resource.post(vm.message.id,"viewsource").then(function(data){vm.rawSource=data;vm.showRawSource=true})}else{vm.showRawSource=!vm.showRawSource}}}angular.module("SOGo.MailerUI").controller("MessageController",MessageController)})();(function(){"use strict";MessageEditorController.$inject=["$stateParams","$mdDialog","$mdToast","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","Dialog","AddressBook","Preferences"];function MessageEditorController($stateParams,$mdDialog,$mdToast,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,Dialog,AddressBook,Preferences){var vm=this;vm.addRecipient=addRecipient;vm.autocomplete={to:{},cc:{},bcc:{}};vm.autosave=null;vm.autosaveDrafts=autosaveDrafts;vm.hideCc=true;vm.hideBcc=true;vm.cancel=cancel;vm.send=send;vm.removeAttachment=removeAttachment;vm.contactFilter=contactFilter;vm.identities=_.pluck(_.flatten(_.pluck(stateAccounts,"identities")),"full");vm.uploader=new FileUploader({url:stateMessage.$absolutePath({asDraft:true})+"/save",autoUpload:true,alias:"attachments",removeAfterUpload:false,onSuccessItem:function(item,response,status,headers){stateMessage.$setUID(response.uid);stateMessage.$reload({asDraft:false});item.inlineUrl=response.lastAttachmentAttrs[0].url},onCancelItem:function(item,response,status,headers){stateMessage.$deleteAttachment(item.file.name);this.removeFromQueue(item)},onErrorItem:function(item,response,status,headers){}});if($stateParams.actionName=="reply"){stateMessage.$reply().then(function(msgObject){vm.message=msgObject;vm.hideCc=!msgObject.editable.cc||msgObject.editable.cc.length===0;vm.hideBcc=!msgObject.editable.bcc||msgObject.editable.bcc.length===0})}else if($stateParams.actionName=="replyall"){stateMessage.$replyAll().then(function(msgObject){vm.message=msgObject;vm.hideCc=!msgObject.editable.cc||msgObject.editable.cc.length===0;vm.hideBcc=!msgObject.editable.bcc||msgObject.editable.bcc.length===0})}else if($stateParams.actionName=="forward"){stateMessage.$forward().then(function(msgObject){vm.message=msgObject;addAttachments()})}else if(angular.isDefined(stateMessage)){vm.message=stateMessage;addAttachments()}if(angular.isDefined(stateRecipients)){vm.message.editable.to=_.union(vm.message.editable.to,_.pluck(stateRecipients,"full"))}function addAttachments(){var i,data,fileItem;if(vm.message.attachmentAttrs)for(i=0;i"," "+l(data.message)+"",' '," close"," ",""].join(""),hideDelay:2e3,position:"top right"})})}function contactFilter($query){return AddressBook.$filterAll($query)}function addRecipient(user){var recipient=[];if(angular.isString(user))return user;if(user.$$fullname)recipient.push(user.$$fullname);if(user.$$email)recipient.push("<"+user.$$email+">");return recipient.join(" ")}function autosaveDrafts(){vm.message.$save();if(Preferences.defaults.SOGoMailAutoSave)vm.autosave=$timeout(vm.autosaveDrafts,Preferences.defaults.SOGoMailAutoSave*1e3*60)}Preferences.ready().then(function(){if(Preferences.defaults.SOGoMailAutoSave)vm.autosave=$timeout(vm.autosaveDrafts,Preferences.defaults.SOGoMailAutoSave*1e3*60);vm.localeCode=Preferences.defaults.LocaleCode})}SendMessageToastController.$inject=["$scope","$mdToast"];function SendMessageToastController($scope,$mdToast){$scope.closeToast=function(){$mdToast.hide()}}angular.module("SOGo.MailerUI").controller("SendMessageToastController",SendMessageToastController).controller("MessageEditorController",MessageEditorController)})();(function(){"use strict";function sgImip(){return{restrict:"A",link:link,controller:"sgImipController"};function link(scope,iElement,attrs,ctrl){ctrl.pathToAttachment=attrs.sgImipPath}}sgImipController.$inject=["$scope","User"];function sgImipController($scope,User){var vm=this;$scope.delegateInvitation=false;$scope.delegatedTo="";$scope.searchText="";$scope.userFilter=function($query){return User.$filter($query)};$scope.iCalendarAction=function(action){var data;if(action=="delegate"){data={receiveUpdates:false,delegatedTo:$scope.delegatedTo.c_email}}$scope.viewer.message.$imipAction(vm.pathToAttachment,action,data)}}angular.module("SOGo.MailerUI").controller("sgImipController",sgImipController).directive("sgImip",sgImip)})();(function(){"use strict";function sgZoomableImage(){return{restrict:"A",link:link};function link(scope,iElement,attrs,ctrl){var parentNode=iElement.parent(),toggleClass;toggleClass=function(event){if(event.target.tagName=="IMG")parentNode.toggleClass("sg-zoom")};iElement.on("click",toggleClass)}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",sgZoomableImage)})(); //# 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 8c6e4f800..e475b0906 100644 --- a/UI/WebServerResources/js/Mailer.services.js.map +++ b/UI/WebServerResources/js/Mailer.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.services.js","sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","each","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","forEach","i","id","prototype","$getMailboxes","options","_this","$mailboxes","reload","$find","ready","expandedFolders","_visit","mailboxes","$expanded","indexOf","children","length","settings","Mail","ExpandedFolders","isString","fromJson","$flattenMailboxes","when","allMailboxes","expandedMailboxes","push","all","$$flattenMailboxes","saveState","reduce","mailbox","post","$getMailboxByType","type","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","toString","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","deferred","defer","param","uid","pluck","delegates","resolve","users","status","reject","l","promise","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","index","map","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","isUndefined","$shadowData","$omit","getLength","getItemAtIndex","$loadMessage","$selectedCount","count","filter","selected","isSelectedMessage","messageId","selectedMessage","$filter","sortingAttributes","filters","isDefined","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","max","loaded","subject","Math","min","loading","$unwrapHeaders","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","flags","operation","msgUIDs","$delete","remove","$deleteMessages","$copyMessages","folder","$moveMessages","$reset","value","key","save","error","$futureMailboxData","headers","invoke","threaded","msgs","msg","object","isError","j","messageHeaders","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","filterTags","query","re","RegExp","results","keys","tag","pair","search","description","color","draftId","$setUID","oldUID","shortname","replace","image","$shortRecipients","result","$shortAddress","address","loadUnsafeContent","showDetailedRecipients","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","attr","removeAttr","participants","participant","compile","$editableContent","text","addTag","$addOrRemoveTag","removeTag","$imipAction","action","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$reply","$newDraft","$replyAll","$forward","origin","response","$send","startsWith","isanswered","isforwarded","$futureMessageData","isread","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","resetSelectedMessage","len","k","MailboxController","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","focus","Dialog","selectMessage","go","mailboxId","toggleMessageSelection","$event","preventDefault","stopPropagation","unselectMessages","vm","confirmDeleteSelectedMessages","confirm","selectedMessages","selectedUIDs","difference","alert","copySelectedMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","selectAll","markSelectedMessagesAsFlagged","d","markSelectedMessagesAsUnread","field","sortedBy","cancelSearch","mode","newMessage","messageDialog","show","body","targetEvent","clickOutsideToClose","escapeToClose","templateUrl","controller","controllerAs","locals","accounts","stateMessage","stateRecipients","service","$inject","MailboxesController","User","showAdvancedSearch","showingAdvancedSearch","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","subfolders","addSearchParam","v","currentSearchParam","newSearchParam","pattern","n","searchParam","substring","trim","negative","newFolder","parentFolder","prompt","delegate","MailboxDelegationController","$scope","userFilter","closeModal","hide","removeUser","addUser","userToAdd","searchText","editFolder","editMode","revertEditing","selectFolder","saveFolder","compactFolder","emptyTrashFolder","exportMails","confirmDelete","markFolderRead","share","$users","usersWithACL","metadataForFolder","icon","setFolderAs","refreshUnseenCount","unseenCountFolders","includes","from","current","MessageController","$window","sgSettings","doDelete","findIndex","showMailEditor","recipients","close","reply","replyAll","forward","edit","openPopup","url","baseURL","wId","popupWindow","open","closePopup","recipient","saveMessage","viewRawSource","MessageRawSourceDialogController","scope","template","tags","$watchCollection","oldTags","newTags","MessageEditorController","$stateParams","FileUploader","AddressBook","autosave","send","contactFilter","$filterAll","addRecipient","$$fullname","$$email","autosaveDrafts","SOGoMailAutoSave","autocomplete","hideCc","hideBcc","flatten","uploader","autoUpload","alias","onProgressItem","item","progress","onSuccessItem","onCancelItem","file","removeFromQueue","onErrorItem","actionName","msgObject","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Account\n * @constructor\n * @param {object} futureAccountData\n */\n function Account(futureAccountData) {\n // Data is immediately available\n if (typeof futureAccountData.then !== 'function') {\n angular.extend(this, futureAccountData);\n _.each(this.identities, function(identity) {\n if (identity.fullName)\n identity.full = identity.fullName + ' <' + identity.email + '>';\n else\n identity.full = '<' + identity.email + '>';\n });\n Account.$log.debug('Account: ' + JSON.stringify(futureAccountData, undefined, 2));\n }\n else {\n // The promise will be unwrapped first\n //this.$unwrap(futureAccountData);\n }\n }\n\n /**\n * @memberof Account\n * @desc The factory we'll use to register with Angular\n * @returns the Account constructor\n */\n Account.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Preferences', 'Mailbox', 'Message', function($q, $timeout, $log, Settings, Resource, Preferences, Mailbox, Message) {\n angular.extend(Account, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Preferences: Preferences,\n $Mailbox: Mailbox,\n $Message: Message\n });\n\n return Account; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Account in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Account', Account.$factory);\n\n /**\n * @memberof Account\n * @desc Set the list of accounts and instanciate a new Account object for each item.\n * @param {array} [data] - the metadata of the accounts\n * @returns the list of accounts\n */\n Account.$findAll = function(data) {\n if (!data) {\n return Account.$$resource.fetch('', 'mailAccounts').then(function(o) {\n return Account.$unwrapCollection(o);\n });\n }\n return Account.$unwrapCollection(data);\n };\n\n /**\n * @memberof Account\n * @desc Unwrap to a collection of Account instances.\n * @param {object} data - the accounts information\n * @returns a collection of Account objects\n */\n Account.$unwrapCollection = function(data) {\n var collection = [];\n\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\n return collection;\n };\n\n /**\n * @function $getMailboxes\n * @memberof Account.prototype\n * @desc Fetch the list of mailboxes for the current account.\n * @param {object} [options] - force a reload by setting 'reload' to true\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxes = function(options) {\n var _this = this;\n\n if (this.$mailboxes && !(options && options.reload)) {\n return Account.$q.when(this.$mailboxes);\n }\n else {\n return Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n\n // Set expanded folders from user's settings\n Account.$Preferences.ready().then(function() {\n var expandedFolders,\n _visit = function(mailboxes) {\n _.forEach(mailboxes, function(o) {\n o.$expanded = (expandedFolders.indexOf('/' + o.id) >= 0);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n if (Account.$Preferences.settings.Mail.ExpandedFolders) {\n if (angular.isString(Account.$Preferences.settings.Mail.ExpandedFolders))\n // Backward compatibility support\n expandedFolders = angular.fromJson(Account.$Preferences.settings.Mail.ExpandedFolders);\n else\n expandedFolders = Account.$Preferences.settings.Mail.ExpandedFolders;\n if (expandedFolders.length > 0) {\n _visit(_this.$mailboxes);\n }\n }\n _this.$flattenMailboxes({reload: true});\n });\n\n return _this.$mailboxes;\n });\n }\n };\n\n /**\n * @function $flattenMailboxes\n * @memberof Account.prototype\n * @desc Get a flatten array of the mailboxes.\n * @param {object} [options] - force a reload\n * @returns an array of Mailbox instances\n */\n Account.prototype.$flattenMailboxes = function(options) {\n var _this = this,\n allMailboxes = [],\n expandedMailboxes = [],\n _visit = function(mailboxes) {\n _.each(mailboxes, function(o) {\n allMailboxes.push(o);\n if ((options && options.all || o.$expanded) && o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n if (this.$$flattenMailboxes && !(options && (options.reload || options.all))) {\n allMailboxes = this.$$flattenMailboxes;\n }\n else {\n _visit(this.$mailboxes);\n _this.$$flattenMailboxes = allMailboxes;\n if (options && options.saveState) {\n _.reduce(allMailboxes, function(expandedFolders, mailbox) {\n if (mailbox.$expanded) {\n expandedFolders.push('/' + mailbox.id);\n }\n return expandedFolders;\n }, expandedMailboxes);\n Account.$$resource.post(null, 'saveFoldersState', expandedMailboxes);\n }\n }\n\n return allMailboxes;\n };\n\n Account.prototype.$getMailboxByType = function(type) {\n var mailbox,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.type == type;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n console.debug(mailbox);\n console.debug(this.specialMailboxes);\n };\n\n /**\n * @function $getMailboxByPath\n * @memberof Account.prototype\n * @desc Recursively find a mailbox using its path\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxByPath = function(path) {\n var mailbox = null,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == path;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n return mailbox;\n };\n\n /**\n * @function $newMailbox\n * @memberof Account.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMailbox = function(path, name) {\n var _this = this;\n\n return Account.$$resource.post(path.toString(), 'createFolder', {name: name}).then(function() {\n _this.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $newMessage\n * @memberof Account.prototype\n * @desc Prepare a new Message object associated to the appropriate mailbox.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMessage = function() {\n var _this = this;\n\n // Query account for draft folder and draft UID\n return Account.$$resource.fetch(this.id.toString(), 'compose').then(function(data) {\n Account.$log.debug('New message (compose): ' + JSON.stringify(data, undefined, 2));\n var message = new Account.$Message(data.accountId, _this.$getMailboxByPath(data.mailboxPath), data);\n return message;\n }).then(function(message) {\n // Fetch draft initial data\n return Account.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Account.$log.debug('New message (edit): ' + JSON.stringify(data, undefined, 2));\n angular.extend(message.editable, data);\n return message;\n });\n });\n };\n\n /**\n * @function $addDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @see {@link User.$filter}\n */\n Account.prototype.$addDelegate = function(user) {\n var _this = this,\n deferred = Account.$q.defer(),\n param = {uid: user.uid};\n if (!user.uid || _.indexOf(_.pluck(this.delegates, 'uid'), user.uid) > -1) {\n // No UID specified or user already in delegates\n deferred.resolve();\n }\n else {\n Account.$$resource.fetch(this.id.toString(), 'addDelegate', param).then(function() {\n _this.delegates.push(user);\n deferred.resolve(_this.users);\n }, function(data, status) {\n deferred.reject(l('An error occured please try again.'));\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $removeDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @return a promise of the server call to remove the user from the account's delegates\n */\n Account.prototype.$removeDelegate = function(uid) {\n var _this = this,\n param = {uid: uid};\n return Account.$$resource.fetch(this.id.toString(), 'removeDelegate', param).then(function() {\n var i = _.indexOf(_.pluck(_this.delegates, 'uid'), uid);\n if (i >= 0) {\n _this.delegates.splice(i, 1);\n }\n });\n };\n \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Mailbox\n * @constructor\n * @param {object} futureMailboxData - either an object literal or a promise\n */\n function Mailbox(account, futureMailboxData) {\n this.$account = account;\n // Data is immediately available\n if (typeof futureMailboxData.then !== 'function') {\n this.init(futureMailboxData);\n if (this.name && !this.path) {\n // Create a new mailbox on the server\n var newMailboxData = Mailbox.$$resource.create('createFolder', this.name);\n this.$unwrap(newMailboxData);\n }\n }\n else {\n // The promise will be unwrapped first\n // NOTE: this condition never happen for the moment\n this.$unwrap(futureMailboxData);\n }\n }\n\n /**\n * @memberof Mailbox\n * @desc The factory we'll use to register with Angular\n * @returns the Mailbox constructor\n */\n Mailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Message', 'Acl', 'Preferences', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Resource, Message, Acl, Preferences, PRELOAD) {\n angular.extend(Mailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Message: Message,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: { sort: 'date', asc: 0 },\n selectedFolder: null,\n $refreshTimeout: null,\n $virtualMode: false,\n PRELOAD: PRELOAD\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Mail.SortingState) {\n Mailbox.$query.sort = Preferences.settings.Mail.SortingState[0];\n Mailbox.$query.asc = parseInt(Preferences.settings.Mail.SortingState[1]);\n }\n });\n\n return Mailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Mailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('Mailbox', Mailbox.$factory);\n\n /**\n * @memberof Mailbox\n * @desc Fetch list of mailboxes of a specific account\n * @param {string} accountId - the account\n * @return a promise of the HTTP operation\n * @see {@link Account.$getMailboxes}\n */\n Mailbox.$find = function(account) {\n var path, futureMailboxData;\n\n futureMailboxData = this.$$resource.fetch(account.id.toString(), 'view');\n\n return Mailbox.$unwrapCollection(account, futureMailboxData); // a collection of mailboxes\n };\n\n /**\n * @memberof Mailbox\n * @desc Unwrap to a collection of Mailbox instances.\n * @param {string} account - the account\n * @param {promise} futureMailboxData - a promise of the mailboxes metadata\n * @returns a promise of a collection of Mailbox objects\n */\n Mailbox.$unwrapCollection = function(account, futureMailboxData) {\n var collection = [],\n // Local recursive function\n createMailboxes = function(level, mailbox) {\n for (var i = 0; i < mailbox.children.length; i++) {\n mailbox.children[i].level = level;\n mailbox.children[i] = new Mailbox(account, mailbox.children[i]);\n createMailboxes(level+1, mailbox.children[i]);\n }\n };\n //collection.$futureMailboxData = futureMailboxData;\n\n return futureMailboxData.then(function(data) {\n return Mailbox.$timeout(function() {\n // Each entry is spun up as a Mailbox instance\n angular.forEach(data.mailboxes, function(data, index) {\n data.level = 0;\n var mailbox = new Mailbox(account, data);\n createMailboxes(1, mailbox); // recursively create all sub-mailboxes\n collection.push(mailbox);\n });\n return collection;\n });\n });\n };\n\n /**\n * @memberof Mailbox\n * @desc Build the path of the mailbox (or account only).\n * @param {string} accountId - the account ID\n * @param {string} [mailboxPath] - the mailbox path\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.$absolutePath = function(accountId, mailboxPath) {\n var path = [];\n\n if (mailboxPath) {\n path = _.map(mailboxPath.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n }\n\n path.splice(0, 0, accountId); // insert account ID\n\n return path.join('/');\n };\n\n /**\n * @function init\n * @memberof Mailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n Mailbox.prototype.init = function(data) {\n var _this = this;\n this.$isLoading = true;\n this.$messages = [];\n this.uidsMap = {};\n angular.extend(this, data);\n if (this.path) {\n this.id = this.$id();\n this.$acl = new Mailbox.$$Acl('Mail/' + this.id);\n }\n if (this.type) {\n this.$isEditable = this.isEditable();\n }\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getLength\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n Mailbox.prototype.getLength = function() {\n return this.$messages.length;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n Mailbox.prototype.getItemAtIndex = function(index) {\n var message;\n\n if (index >= 0 && index < this.$messages.length) {\n message = this.$messages[index];\n\n if (this.$loadMessage(message.uid))\n return message;\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof Mailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.prototype.$id = function() {\n return Mailbox.$absolutePath(this.$account.id, this.path);\n };\n\n /**\n * @function $selectedCount\n * @memberof Mailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n Mailbox.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.$messages) {\n count = (_.filter(this.$messages, function(message) { return message.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function isSelectedMessage\n * @memberof Mailbox.prototype\n * @desc Check if the specified message is selected.\n * @param {string} messageId\n * @returns true if the specified message is selected\n */\n Mailbox.prototype.isSelectedMessage = function(messageId) {\n return this.selectedMessage == messageId;\n };\n\n /**\n * @function $filter\n * @memberof Mailbox.prototype\n * @desc Fetch the messages metadata of the mailbox\n * @param {object} [sort] - sort preferences. Defaults to descendent by date.\n * @param {string} sort.match - either AND or OR\n * @param {string} sort.sort - either arrival, subject, from, to, date, or size\n * @param {boolean} sort.asc - sort is ascendant if true\n * @param {object[]} [filters] - list of filters for the query\n * @param {string} filters.searchBy - either subject, from, to, cc, or body\n * @param {string} filters.searchInput - the search string to match\n * @param {boolean} filters.negative - negate the condition\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$filter = function(sortingAttributes, filters) {\n var _this = this, options = {};\n\n if (!angular.isDefined(this.unseenCount))\n this.unseenCount = 0;\n\n this.$isLoading = true;\n\n return Mailbox.$Preferences.ready().then(function() {\n\n if (Mailbox.$refreshTimeout)\n Mailbox.$timeout.cancel(Mailbox.$refreshTimeout);\n\n if (sortingAttributes)\n // Sorting preferences are common to all mailboxes\n angular.extend(Mailbox.$query, sortingAttributes);\n\n angular.extend(options, { sortingAttributes: Mailbox.$query });\n if (angular.isDefined(filters)) {\n options.filters = _.reject(filters, function(filter) {\n return angular.isUndefined(filter.searchInput) || filter.searchInput.length === 0;\n });\n _.each(options.filters, function(filter) {\n var secondFilter,\n match = filter.searchBy.match(/(\\w+)_or_(\\w+)/);\n if (match) {\n options.sortingAttributes.match = 'OR';\n filter.searchBy = match[1];\n secondFilter = angular.copy(filter);\n secondFilter.searchBy = match[2];\n options.filters.push(secondFilter);\n }\n });\n }\n\n // Restart the refresh timer, if needed\n if (!Mailbox.$virtualMode) {\n var refreshViewCheck = Mailbox.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Mailbox.prototype.$filter);\n Mailbox.$refreshTimeout = Mailbox.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n }\n\n var futureMailboxData = Mailbox.$$resource.post(_this.id, 'view', options);\n return _this.$unwrap(futureMailboxData);\n });\n };\n\n /**\n * @function $loadMessage\n * @memberof Mailbox.prototype\n * @desc Check if the message is loaded and in any case, fetch more messages headers from the server.\n * @returns true if the message metadata are already fetched\n */\n Mailbox.prototype.$loadMessage = function(messageId) {\n var startIndex = this.uidsMap[messageId],\n endIndex,\n max = this.$messages.length,\n loaded = false,\n uids,\n futureHeadersData;\n if (angular.isDefined(this.uidsMap[messageId]) && startIndex < this.$messages.length) {\n // Index is valid\n if (angular.isDefined(this.$messages[startIndex].subject)) {// || this.$messages[startIndex].loading) {\n // Message headers are loaded or data is coming\n loaded = true;\n }\n\n // Preload more headers if possible\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.LOOKAHEAD, max - 1);\n if (!angular.isDefined(this.$messages[endIndex].subject) &&\n !angular.isDefined(this.$messages[endIndex].loading)) {\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.SIZE, max);\n for (uids = []; startIndex < endIndex && startIndex < max; startIndex++) {\n if (angular.isDefined(this.$messages[startIndex].subject) || this.$messages[startIndex].loading) {\n // Message at this index is already loaded; increase the end index\n endIndex++;\n }\n else {\n // Message at this index will be loaded\n uids.push(this.$messages[startIndex].uid);\n this.$messages[startIndex].loading = true;\n }\n }\n\n Mailbox.$log.debug('Loading UIDs ' + uids.join(' '));\n futureHeadersData = Mailbox.$$resource.post(this.id, 'headers', {uids: uids});\n this.$unwrapHeaders(futureHeadersData);\n }\n }\n return loaded;\n };\n\n /**\n * @function isEditable\n * @memberof Mailbox.prototype\n * @desc Checks if the mailbox is editable based on its type.\n * @returns true if the mailbox is not a special folder.\n */\n Mailbox.prototype.isEditable = function() {\n return this.type == 'folder';\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$rename = function() {\n var _this = this,\n findParent,\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Mailbox.$q.when();\n }\n\n // Local recursive function\n findParent = function(parent, children) {\n var parentMailbox = null,\n mailbox = _.find(children, function(o) {\n return o.path == _this.path;\n });\n if (mailbox) {\n parentMailbox = parent;\n }\n else {\n angular.forEach(children, function(o) {\n if (!parentMailbox && o.children && o.children.length > 0) {\n parentMailbox = findParent(o, o.children);\n }\n });\n }\n return parentMailbox;\n };\n\n // Find mailbox parent\n parent = findParent(null, this.$account.$mailboxes);\n if (parent === null)\n children = this.$account.$mailboxes;\n else\n children = parent.children;\n\n // Find index of mailbox among siblings\n i = _.indexOf(_.pluck(children, 'id'), this.id);\n\n return this.$save().then(function(data) {\n var sibling;\n angular.extend(_this, data); // update the path attribute\n _this.id = _this.$id();\n\n // Move mailbox among its siblings according to its new name\n children.splice(i, 1);\n sibling = _.find(children, function(o) {\n Mailbox.$log.debug(o.name + ' ? ' + _this.name);\n return (o.type == 'folder' && o.name.localeCompare(_this.name) > 0);\n });\n if (sibling) {\n i = _.indexOf(_.pluck(children, 'id'), sibling.id);\n }\n else {\n i = children.length;\n }\n children.splice(i, 0, _this);\n });\n };\n\n /**\n * @function $compact\n * @memberof Mailbox.prototype\n * @desc Compact the mailbox\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$compact = function() {\n return Mailbox.$$resource.post(this.id, 'expunge');\n };\n\n /**\n * @function $setFolderAs\n * @memberof Mailbox.prototype\n * @desc Set a folder as Drafts/Sent/Trash\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$setFolderAs = function(type) {\n return Mailbox.$$resource.post(this.id, 'setAs' + type + 'Folder');\n };\n\n /**\n * @function $emptyTrash\n * @memberof Mailbox.prototype\n * @desc Empty the Trash folder.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$emptyTrash = function() {\n var _this = this;\n\n return Mailbox.$$resource.post(this.id, 'emptyTrash').then(function() {\n // Remove all messages from the mailbox\n _this.$messages = [];\n _this.uidsMap = {};\n _this.unseenCount = 0;\n\n // If we had any submailboxes, lets do a refresh of the mailboxes list\n if (angular.isDefined(_this.children) && _this.children.length)\n _this.$account.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $markAsRead\n * @memberof Mailbox.prototype\n * @desc Mark all messages from folder as read\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$markAsRead = function() {\n return Mailbox.$$resource.post(this.id, 'markRead');\n };\n\n /**\n * @function $flagMessages\n * @memberof Mailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$flagMessages = function(uids, flags, operation) {\n var data = {msgUIDs: uids,\n flags: flags,\n operation: operation};\n\n return Mailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $delete\n * @memberof Mailbox.prototype\n * @desc Delete the mailbox from the server\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$delete = function() {\n var _this = this;\n\n return Mailbox.$$resource.remove(this.id)\n .then(function() {\n _this.$account.$getMailboxes({reload: true});\n return true;\n });\n };\n\n /**\n * @function $deleteMessages\n * @memberof Mailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$deleteMessages = function(uids) {\n return Mailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof Mailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$copyMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof Mailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$moveMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n \n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Mailbox.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key != 'children' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Mailbox.prototype\n * @desc Save the mailbox to the server. This currently can only affect the name of the mailbox.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$save = function() {\n var _this = this;\n\n return Mailbox.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n Mailbox.$log.debug(JSON.stringify(data, undefined, 2));\n return data;\n }, function(data) {\n Mailbox.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n });\n };\n\n /**\n * @function $newMailbox\n * @memberof Mailbox.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Mailbox.prototype.$newMailbox = function(path, name) {\n return this.$account.$newMailbox(path, name);\n };\n\n /**\n * @function $omit\n * @memberof Mailbox.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Mailbox instance\n */\n Mailbox.prototype.$omit = function() {\n var mailbox = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'children' &&\n key[0] != '$') {\n mailbox[key] = value;\n }\n });\n return mailbox;\n };\n\n /**\n * @function $unwrap\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and instanciate new Message objects using received data.\n * @param {promise} futureMailboxData - a promise of the Mailbox's metadata\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$unwrap = function(futureMailboxData) {\n var _this = this,\n deferred = Mailbox.$q.defer();\n\n this.$futureMailboxData = futureMailboxData;\n this.$futureMailboxData.then(function(data) {\n Mailbox.$timeout(function() {\n var uids, headers;\n\n _this.init(data);\n\n if (_this.uids) {\n Mailbox.$log.debug('unwrapping ' + data.uids.length + ' messages');\n\n // First entry of 'headers' are keys\n headers = _.invoke(_this.headers[0], 'toLowerCase');\n _this.headers.splice(0, 1);\n\n // First entry of 'uids' are keys when threaded view is enabled\n if (_this.threaded) {\n uids = _this.uids[0];\n _this.uids.splice(0, 1);\n }\n\n // Instanciate Message objects\n _.reduce(_this.uids, function(msgs, msg, i) {\n var data;\n if (_this.threaded)\n data = _.object(uids, msg);\n else\n data = {uid: msg.toString()};\n\n // Build map of UID <=> index\n _this.uidsMap[data.uid] = i;\n\n msgs.push(new Mailbox.$Message(_this.$account.id, _this, data, true));\n\n return msgs;\n }, _this.$messages);\n\n // Extend Message objects with received headers\n _.each(_this.headers, function(data) {\n var msg = _.object(headers, data),\n i = _this.uidsMap[msg.uid.toString()];\n _.extend(_this.$messages[i], msg);\n });\n }\n Mailbox.$log.debug('mailbox ' + _this.id + ' ready');\n _this.$isLoading = false;\n deferred.resolve(_this.$messages);\n });\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapHeaders\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and extend matching Message objects using received data.\n * @param {promise} futureHeadersData - a promise of some messages metadata\n */\n Mailbox.prototype.$unwrapHeaders = function(futureHeadersData) {\n var _this = this;\n\n futureHeadersData.then(function(data) {\n Mailbox.$timeout(function() {\n var headers, j;\n if (data.length > 0) {\n // First entry of 'headers' are keys\n headers = _.invoke(data[0], 'toLowerCase');\n data.splice(0, 1);\n _.each(data, function(messageHeaders) {\n messageHeaders = _.object(headers, messageHeaders);\n j = _this.uidsMap[messageHeaders.uid.toString()];\n if (angular.isDefined(j)) {\n _.extend(_this.$messages[j], messageHeaders);\n }\n });\n }\n });\n });\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Message\n * @constructor\n * @param {string} accountId - the account ID\n * @param {string} mailboxPath - an array of the mailbox path components\n * @param {object} futureAddressBookData - either an object literal or a promise\n * @param {bool} lazy - do \"lazy loading\" so we are very quick at initializing message instances\n */\n function Message(accountId, mailbox, futureMessageData, lazy) {\n this.accountId = accountId;\n this.$mailbox = mailbox;\n this.$hasUnsafeContent = false;\n this.$loadUnsafeContent = false;\n this.$showDetailedRecipients = false;\n this.editable = {to: [], cc: [], bcc: []};\n this.selected = false;\n\n // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n if (angular.isDefined(lazy) && lazy) {\n this.uid = futureMessageData.uid;\n }\n else {\n angular.extend(this, futureMessageData);\n this.$formatFullAddresses();\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n }\n\n /**\n * @memberof Message\n * @desc The factory we'll use to register with Angular\n * @returns the Message constructor\n */\n Message.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Gravatar', 'Resource', 'Preferences', function($q, $timeout, $log, Settings, Gravatar, Resource, Preferences) {\n angular.extend(Message, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())\n });\n // Initialize tags form user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailLabelsColors) {\n Message.$tags = Preferences.defaults.SOGoMailLabelsColors;\n }\n if (Preferences.defaults.SOGoMailDisplayRemoteInlineImages &&\n Preferences.defaults.SOGoMailDisplayRemoteInlineImages == 'always') {\n Message.$displayRemoteInlineImages = true;\n }\n });\n\n return Message; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Message in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Message', Message.$factory);\n\n /**\n * @function filterTags\n * @memberof Message.prototype\n * @desc Search for tags (ie., mail labels) matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Message.filterTags = function(query) {\n var re = new RegExp(query, 'i'),\n results = [];\n\n _.forEach(_.keys(Message.$tags), function(tag) {\n var pair = Message.$tags[tag];\n if (pair[0].search(re) != -1) {\n results.push({ name: tag, description: pair[0], color: pair[1] });\n }\n });\n return results;\n };\n\n /**\n * @function $absolutePath\n * @memberof Message.prototype\n * @desc Build the path of the message\n * @returns a string representing the path relative to the mail module\n */\n Message.prototype.$absolutePath = function(options) {\n if (angular.isUndefined(this.id) || options) {\n var path;\n path = _.map(this.$mailbox.path.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n path.splice(0, 0, this.accountId); // insert account ID\n if (options && options.asDraft && this.draftId) {\n path.push(this.draftId); // add draft ID\n }\n else {\n path.push(this.uid); // add message UID\n }\n\n this.id = path.join('/');\n }\n\n return this.id;\n };\n\n /**\n * @function $setUID\n * @memberof Message.prototype\n * @desc Change the UID of the message. This happens when saving a draft.\n * @param {number} uid - the new message UID\n */\n Message.prototype.$setUID = function(uid) {\n var oldUID = this.uid || -1;\n\n if (oldUID != uid) {\n this.uid = uid;\n if (oldUID > -1 && this.$mailbox.uidsMap[oldUID]) {\n this.$mailbox.uidsMap[uid] = this.$mailbox.uidsMap[oldUID];\n this.$mailbox.uidsMap[oldUID] = null;\n }\n }\n };\n\n /**\n * @function $formatFullAddresses\n * @memberof Message.prototype\n * @desc Format all sender and recipients addresses with a complete description (name ).\n * This function also generates a gravatar for each email address, and a short name\n */\n Message.prototype.$formatFullAddresses = function() {\n var _this = this;\n var identities = _.pluck(_this.$mailbox.$account.identities, 'email');\n\n // Build long representation of email addresses\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n _.each(_this[type], function(data, i) {\n if (data.name && data.name != data.email) {\n data.full = data.name + ' <' + data.email + '>';\n\n // If we have \"Alice Foo\" as name, we grab \"Alice\"\n if (data.name.split(' ').length)\n data.shortname = data.name.split(' ')[0].replace('\\'','');\n }\n else {\n data.full = '<' + data.email + '>';\n data.shortname = data.email.split('@')[0];\n }\n\n // Generate the gravatar\n data.image = Message.$gravatar(data.email, 32);\n\n // If the current user is the recepient, overwrite\n // the short name with 'me'\n if (_.indexOf(identities, data.email) >= 0)\n data.shortname = l('me');\n });\n });\n };\n\n /**\n * @function $shortRecipients\n * @memberof Message.prototype\n * @desc Format all recipients into a very compact string\n * @returns a compacted string of all recipients\n */\n Message.prototype.$shortRecipients = function() {\n var _this = this;\n var result = [];\n\n // Build long representation of email addresses\n _.each(['to', 'cc', 'bcc'], function(type) {\n _.each(_this[type], function(data, i) {\n result.push(data.shortname);\n });\n });\n\n return result.join(', ');\n };\n\n /**\n * @function $shortAddress\n * @memberof Message.prototype\n * @desc Format the first address of a specific type with a short description.\n * @returns a string of the name or the email of the envelope address type\n */\n Message.prototype.$shortAddress = function(type) {\n var address = '';\n if (this[type] && this[type].length > 0) {\n address = this[type][0].name || this[type][0].email || '';\n }\n\n return address;\n };\n\n /**\n * @function loadUnsafeContent\n * @memberof Message.prototype\n * @desc Mark the message to load unsafe resources when calling $content().\n */\n Message.prototype.loadUnsafeContent = function() {\n this.$loadUnsafeContent = true;\n };\n\n /**\n * @function showDetailedRecipients\n * @memberof Message.prototype\n * @desc Mark the message to show all to/cc recipients.\n */\n Message.prototype.showDetailedRecipients = function() {\n this.$showDetailedRecipients = true;\n };\n\n /**\n * @function $content\n * @memberof Message.prototype\n * @desc Get the message body as accepted by SCE (Angular Strict Contextual Escaping).\n * @returns the HTML representation of the body\n */\n Message.prototype.$content = function() {\n var _this = this,\n parts = [],\n _visit = function(part) {\n part.msgclass = 'msg-attachment-other';\n if (part.type == 'UIxMailPartAlternativeViewer') {\n _visit(_.find(part.content, function(alternatePart) {\n return part.preferredPart == alternatePart.contentType;\n }));\n }\n // Can be used for UIxMailPartMixedViewer and UIxMailPartMessageViewer\n else if (angular.isArray(part.content)) {\n _.each(part.content, function(mixedPart) {\n _visit(mixedPart);\n });\n }\n else {\n if (angular.isUndefined(part.safeContent)) {\n // Keep a copy of the original content\n part.safeContent = part.content;\n _this.$hasUnsafeContent |= (part.safeContent.indexOf(' unsafe-') > -1);\n }\n if (part.type == 'UIxMailPartHTMLViewer') {\n part.html = true;\n if (_this.$loadUnsafeContent || Message.$displayRemoteInlineImages) {\n if (angular.isUndefined(part.unsafeContent)) {\n part.unsafeContent = document.createElement('div');\n part.unsafeContent.innerHTML = part.safeContent;\n angular.forEach(['src', 'data', 'classid', 'background', 'style'], function(suffix) {\n var elements = part.unsafeContent.querySelectorAll('[unsafe-' + suffix + ']'),\n element,\n value,\n i;\n for (i = 0; i < elements.length; i++) {\n element = angular.element(elements[i]);\n value = element.attr('unsafe-' + suffix);\n element.attr(suffix, value);\n element.removeAttr('unsafe-' + suffix);\n }\n });\n _this.$hasUnsafeContent = false;\n }\n part.content = part.unsafeContent.innerHTML;\n }\n else {\n part.content = part.safeContent;\n }\n parts.push(part);\n }\n else if (part.type == 'UIxMailPartICalViewer' ||\n part.type == 'UIxMailPartImageViewer' ||\n part.type == 'UIxMailPartLinkViewer') {\n\n // UIxMailPartICalViewer injects 'participants'\n if (part.participants) {\n _.each(part.participants, function(participant) {\n participant.image = Message.$gravatar(participant.email, 32);\n });\n }\n\n if (part.type == 'UIxMailPartImageViewer')\n part.msgclass = 'msg-attachment-image';\n\n // Trusted content that can be compiled (Angularly-speaking)\n part.compile = true;\n parts.push(part);\n }\n else {\n part.html = true;\n part.content = part.safeContent;\n parts.push(part);\n }\n }\n };\n _visit(this.parts);\n\n return parts;\n };\n\n /**\n * @function $editableContent\n * @memberof Message.prototype\n * @desc First, fetch the draft ID that corresponds to the temporary draft object on the SOGo server.\n * Secondly, fetch the editable message body along with other metadata such as the recipients.\n * @returns the HTML representation of the body\n */\n Message.prototype.$editableContent = function() {\n var _this = this;\n\n return Message.$$resource.fetch(this.$absolutePath(), 'edit').then(function(data) {\n angular.extend(_this, data);\n return Message.$$resource.fetch(_this.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('editable = ' + JSON.stringify(data, undefined, 2));\n angular.extend(_this.editable, data);\n return data.text;\n });\n });\n };\n\n /**\n * @function addTag\n * @memberof Message.prototype\n * @desc Add a mail tag on the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.addTag = function(tag) {\n return this.$addOrRemoveTag('add', tag);\n };\n\n /**\n * @function removeTag\n * @memberof Message.prototype\n * @desc Remove a mail tag from the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.removeTag = function(tag) {\n return this.$addOrRemoveTag('remove', tag);\n };\n\n /**\n * @function $addOrRemoveTag\n * @memberof Message.prototype\n * @desc Add or remove a mail tag on the current message.\n * @param {string} operation - the operation name to perform\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$addOrRemoveTag = function(operation, tag) {\n var data = {\n operation: operation,\n msgUIDs: [this.uid],\n flags: tag\n };\n\n if (tag)\n return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $imipAction\n * @memberof Message.prototype\n * @desc Perform IMIP actions on the current message.\n * @param {string} path - the path of the IMIP calendar part \n * @param {string} action - the the IMIP action to perform\n * @param {object} data - the delegation info \n */\n Message.prototype.$imipAction = function(path, action, data) {\n var _this = this;\n Message.$$resource.post([this.$absolutePath(), path].join('/'), action, data).then(function(data) {\n Message.$timeout(function() {\n _this.$reload();\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $sendMDN\n * @memberof Message.prototype\n * @desc Send MDN response for current email message\n */\n Message.prototype.$sendMDN = function() {\n this.shouldAskReceipt = 0;\n return Message.$$resource.post(this.$absolutePath(), 'sendMDN');\n };\n\n /**\n * @function $deleteAttachment\n * @memberof Message.prototype\n * @desc Delete an attachment from a message being composed\n * @param {string} filename - the filename of the attachment to delete\n */\n Message.prototype.$deleteAttachment = function(filename) {\n var action = 'deleteAttachment?filename=' + filename;\n var _this = this;\n Message.$$resource.post(this.$absolutePath({asDraft: true}), action).then(function(data) {\n Message.$timeout(function() {\n _this.editable.attachmentAttrs = _.filter(_this.editable.attachmentAttrs, function(attachment) {\n return attachment.filename != filename;\n });\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $markAsFlaggedOrUnflagged\n * @memberof Message.prototype\n * @desc Add or remove a the \\\\Flagged flag on the current message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.toggleFlag = function() {\n var _this = this,\n action = 'markMessageFlagged';\n\n if (this.isflagged)\n action = 'markMessageUnflagged';\n\n return Message.$$resource.post(this.$absolutePath(), action).then(function(data) {\n Message.$timeout(function() {\n _this.isflagged = !_this.isflagged;\n });\n });\n };\n\n /**\n * @function $reload\n * @memberof Message.prototype\n * @desc Fetch the viewable message body along with other metadata such as the list of attachments.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$reload = function(options) {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.$absolutePath(options), 'view');\n\n return this.$unwrap(futureMessageData);\n };\n\n /**\n * @function $reply\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$reply = function() {\n return this.$newDraft('reply');\n };\n\n /**\n * @function $replyAll\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender and all recipients.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$replyAll = function() {\n return this.$newDraft('replyall');\n };\n\n /**\n * @function $forward\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a forward.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$forward = function() {\n return this.$newDraft('forward');\n };\n\n /**\n * @function $newDraft\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply or a forward of the current message and associated\n * to the draft mailbox.\n * @see {@link Account.$newMessage}\n * @see {@link Message.$editableContent}\n * @see {@link Message.$reply}\n * @see {@link Message.$replyAll}\n * @see {@link Message.$forwad}\n * @param {string} action - the HTTP action to perform on the message\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$newDraft = function(action) {\n var _this = this;\n\n // Query server for draft folder and draft UID\n return Message.$$resource.fetch(this.$absolutePath(), action).then(function(data) {\n var mailbox, message;\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2));\n mailbox = _this.$mailbox.$account.$getMailboxByPath(data.mailboxPath);\n message = new Message(data.accountId, mailbox, data);\n // Fetch draft initial data\n return Message.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2) + ' original UID: ' + _this.uid);\n angular.extend(message.editable, data);\n\n // We keep a reference to our original message in order to update the flags\n message.origin = {message: _this, action: action};\n return message;\n });\n });\n };\n\n /**\n * @function $save\n * @memberof Message.prototype\n * @desc Save the message to the server.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$save = function() {\n var _this = this,\n data = this.editable;\n\n Message.$log.debug('save = ' + JSON.stringify(data, undefined, 2));\n\n return Message.$$resource.save(this.$absolutePath({asDraft: true}), data).then(function(response) {\n Message.$log.debug('save = ' + JSON.stringify(response, undefined, 2));\n _this.$setUID(response.uid);\n _this.$reload({asDraft: false}); // fetch a new viewable version of the message\n });\n };\n\n /**\n * @function $send\n * @memberof Message.prototype\n * @desc Send the message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$send = function() {\n var _this = this,\n data = angular.copy(this.editable),\n deferred = Message.$q.defer();\n\n Message.$log.debug('send = ' + JSON.stringify(data, undefined, 2));\n\n Message.$$resource.post(this.$absolutePath({asDraft: true}), 'send', data).then(function(data) {\n if (data.status == 'success') {\n deferred.resolve(data);\n if (angular.isDefined(_this.origin)) {\n if (_this.origin.action.startsWith('reply'))\n _this.origin.message.isanswered = true;\n else if (_this.origin.action == 'forward')\n _this.origin.message.isforwarded = true;\n }\n }\n else {\n deferred.reject(data);\n }\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrap\n * @memberof Message.prototype\n * @desc Unwrap a promise. \n * @param {promise} futureMessageData - a promise of some of the Message's data\n */\n Message.prototype.$unwrap = function(futureMessageData) {\n var _this = this;\n\n // Resolve and expose the promise\n this.$futureMessageData = futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n if (_this.isread === 0) {\n Message.$$resource.fetch(_this.$absolutePath(), 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n return Message.$timeout(function() {\n angular.extend(_this, data);\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n return _this;\n });\n });\n\n return this.$futureMessageData;\n };\n\n /**\n * @function $omit\n * @memberof Message.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Message instance\n */\n Message.prototype.$omit = function() {\n var message = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n message[key] = value;\n }\n });\n\n // Format addresses as arrays\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n if (message[type])\n message[type] = _.invoke(message[type].split(','), 'trim');\n });\n\n //Message.$log.debug(JSON.stringify(message, undefined, 2));\n return message;\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name VirtualMailbox\n * @constructor\n * @param {object} account - the mail account associated with the virtual search\n */\n function VirtualMailbox(account) {\n this.$account = account;\n }\n\n /**\n * @memberof VirtualMailbox\n * @desc The factory we'll use to register with Angular\n * @returns the VirtualMailbox constructor\n */\n VirtualMailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Message', 'Mailbox', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Mailbox, Message, PRELOAD) {\n angular.extend(VirtualMailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Message: Message,\n selectedFolder: null,\n PRELOAD: PRELOAD\n });\n\n return VirtualMailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of VirtualMailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('VirtualMailbox', VirtualMailbox.$factory);\n\n /**\n * @memberof VirtualMailbox\n * @desc Build the path of the virtual mailbox (or account only).\n * @param {string} accountId - the account ID\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.$absolutePath = function(accountId) {\n return [accountId, \"virtual\"].join('/');\n };\n\n /**\n * @function init\n * @memberof VirtualMailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n VirtualMailbox.prototype.init = function(data) {\n this.$isLoading = false;\n this.$mailboxes = [];\n this.uidsMap = {};\n angular.extend(this, data);\n this.id = this.$id();\n };\n\n VirtualMailbox.prototype.setMailboxes = function(data) {\n this.$mailboxes = data;\n\n _.each(this.$mailboxes, function(mailbox) {\n mailbox.$messages = [];\n mailbox.uidsMap = {};\n });\n };\n\n VirtualMailbox.prototype.startSearch = function(match, params) {\n var _this = this,\n search = VirtualMailbox.$q.when();\n\n this.$isLoading = true;\n\n _.each(this.$mailboxes, function(mailbox) {\n search = search.then(function() {\n if (_this.$isLoading) {\n VirtualMailbox.$log.debug(\"searching mailbox \" + mailbox.path);\n return mailbox.$filter( {sort: \"date\", asc: false, match: match}, params);\n }\n });\n });\n\n search.finally(function() { _this.$isLoading = false; });\n };\n\n VirtualMailbox.prototype.stopSearch = function() {\n VirtualMailbox.$log.debug(\"stopping search...\");\n this.$isLoading = false;\n };\n\n /**\n * @function resetSelectedMessage\n * @memberof VirtualMailbox.prototype\n * @desc Delete 'selectedMessage' attribute of all submailboxes.\n */\n VirtualMailbox.prototype.resetSelectedMessage = function() {\n _.each(this.$mailboxes, function(mailbox) {\n delete mailbox.selectedMessage;\n });\n };\n\n /**\n * @function isSelectedMessage\n * @memberof VirtualMailbox.prototype\n * @desc Check if the message of the specified mailbox is selected.\n * @param {string} messageId\n * @param {string} mailboxPath\n * @returns true if the specified message is selected\n */\n VirtualMailbox.prototype.isSelectedMessage = function(messageId, mailboxPath) {\n return angular.isDefined(_.find(this.$mailboxes, function(mailbox) {\n return mailbox.path == mailboxPath && mailbox.selectedMessage == messageId;\n }));\n };\n\n /**\n * @function getLength\n * @memberof VirtualMailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n VirtualMailbox.prototype.getLength = function() {\n var len = 0;\n\n if (!angular.isDefined(this.$mailboxes))\n return len;\n\n _.each(this.$mailboxes, function(mailbox) {\n len += mailbox.$messages.length;\n });\n\n return len;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof VirtualMailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n VirtualMailbox.prototype.getItemAtIndex = function(index) {\n var i, j, k, mailbox, message;\n\n if (angular.isDefined(this.$mailboxes) && index >= 0) {\n i = 0;\n for (j = 0; j < this.$mailboxes.length; j++) {\n mailbox = this.$mailboxes[j];\n for (k = 0; k < mailbox.$messages.length; i++, k++) {\n message = mailbox.$messages[k];\n if (i == index) {\n if (mailbox.$loadMessage(message.uid))\n return message;\n }\n }\n }\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof VirtualMailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.prototype.$id = function() {\n return VirtualMailbox.$absolutePath(this.$account.id);\n };\n\n /**\n * @function $selectedCount\n * @memberof VirtualMailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n VirtualMailbox.prototype.$selectedCount = function() {\n // TODO\n return 0;\n };\n\n /**\n * @function $flagMessages\n * @memberof VirtualMailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$flagMessages = function(uids, flags, operation) {\n // TODO\n // var data = {msgUIDs: uids,\n // flags: flags,\n // operation: operation};\n\n // return VirtualMailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $deleteMessages\n * @memberof VirtualMailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$deleteMessages = function(uids) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof VirtualMailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$copyMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof VirtualMailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$moveMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];\n function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {\n var vm = this, messageDialog = null;\n\n Mailbox.selectedFolder = stateMailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.selectedFolder = stateMailbox;\n vm.selectMessage = selectMessage;\n vm.toggleMessageSelection = toggleMessageSelection;\n vm.unselectMessages = unselectMessages;\n vm.confirmDeleteSelectedMessages = confirmDeleteSelectedMessages;\n vm.copySelectedMessages = copySelectedMessages;\n // vm.moveSelectedMessages = moveSelectedMessages;\n vm.saveSelectedMessages = saveSelectedMessages;\n vm.markSelectedMessagesAsFlagged = markSelectedMessagesAsFlagged;\n vm.markSelectedMessagesAsUnread = markSelectedMessagesAsUnread;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.mode = { search: false };\n\n function selectMessage(message) {\n if (Mailbox.$virtualMode)\n $state.go('mail.account.virtualMailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n else\n $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n }\n\n function toggleMessageSelection($event, message) {\n message.selected = !message.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function unselectMessages() {\n _.each(vm.selectedFolder.$messages, function(message) { message.selected = false; });\n }\n\n function confirmDeleteSelectedMessages() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected messages?'))\n .then(function() {\n // User confirmed the deletion\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$deleteMessages(selectedUIDs).then(function() {\n // Decrement the unseenCount accordingly\n var unseenCount = _.filter(selectedMessages, function(message) { return !message.isread; });\n vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n vm.selectedFolder.unseenCount =- unseenCount;\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n });\n }\n\n function copySelectedMessages(folder) {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$copyMessages(selectedUIDs, '/' + folder).then(function() {\n // TODO: refresh target mailbox?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n // function moveSelectedMessages(folder) {\n // var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected });\n // var selectedUIDs = _.pluck(selectedMessages, 'uid');\n // vm.selectedFolder.$moveMessages(selectedUIDs, '/' + folder).then(function() {\n // // TODO: refresh target mailbox?\n // vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n // });\n // }\n\n function saveSelectedMessages() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/saveMessages?uid=' + selectedUIDs.join(\",\");\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.$messages, function(message) {\n message.selected = true;\n });\n }\n\n function markSelectedMessagesAsFlagged() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, '\\\\Flagged', 'add').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isflagged = true;\n });\n });\n }\n\n function markSelectedMessagesAsUnread() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, 'seen', 'remove').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isread = false;\n vm.selectedFolder.unseenCount++;\n });\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter({ sort: field });\n }\n\n function sortedBy(field) {\n return Mailbox.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter();\n }\n\n function newMessage($event) {\n var message;\n\n if (messageDialog === null) {\n message = vm.account.$newMessage();\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: []\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('MailboxController', MailboxController);\n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxesController.$inject = ['$state', '$timeout', '$mdDialog', 'sgFocus', 'encodeUriFilter', 'Dialog', 'sgSettings', 'Account', 'Mailbox', 'VirtualMailbox', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, VirtualMailbox, User, Preferences, stateAccounts) {\n var vm = this,\n account,\n mailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.newFolder = newFolder;\n vm.delegate = delegate;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.selectFolder = selectFolder;\n vm.saveFolder = saveFolder;\n vm.compactFolder = compactFolder;\n vm.emptyTrashFolder = emptyTrashFolder;\n vm.exportMails = exportMails;\n vm.confirmDelete = confirmDelete;\n vm.markFolderRead = markFolderRead;\n vm.share = share;\n vm.metadataForFolder = metadataForFolder;\n vm.setFolderAs = setFolderAs;\n vm.refreshUnseenCount = refreshUnseenCount;\n\n // Advanced search options\n vm.showingAdvancedSearch = false;\n vm.currentSearchParam = '';\n vm.addSearchParam = addSearchParam;\n vm.newSearchParam = newSearchParam;\n vm.showAdvancedSearch = showAdvancedSearch;\n vm.hideAdvancedSearch = hideAdvancedSearch;\n vm.toggleAdvancedSearch = toggleAdvancedSearch;\n vm.search = {\n options: {'': l('Select a criteria'),\n subject: l('Enter Subject'),\n from: l('Enter From'),\n to: l('Enter To'),\n cc: l('Enter Cc'),\n body: l('Enter Body')\n },\n mailbox: 'INBOX',\n subfolders: 1,\n match: 'AND',\n params: []\n };\n\n if ($state.current.name == 'mail' && vm.accounts.length > 0 && vm.accounts[0].$mailboxes.length > 0) {\n // Redirect to first mailbox of first account if no mailbox is selected\n account = vm.accounts[0];\n mailbox = account.$mailboxes[0];\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function showAdvancedSearch(path) {\n vm.showingAdvancedSearch = true;\n vm.search.mailbox = path;\n }\n\n function hideAdvancedSearch() {\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n\n account = vm.accounts[0];\n mailbox = vm.searchPreviousMailbox;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function toggleAdvancedSearch() {\n if (Mailbox.selectedFolder.$isLoading) {\n // Stop search\n vm.virtualMailbox.stopSearch();\n }\n else {\n // Start search\n var root, mailboxes = [],\n _visit = function(folders) {\n _.each(folders, function(o) {\n mailboxes.push(o);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n vm.virtualMailbox = new VirtualMailbox(vm.accounts[0]);\n\n // Don't set the previous selected mailbox if we're in virtual mode\n // That allows users to do multiple advanced search but return\n // correctly to the previously selected mailbox once done.\n if (!Mailbox.$virtualMode)\n vm.searchPreviousMailbox = Mailbox.selectedFolder;\n\n Mailbox.selectedFolder = vm.virtualMailbox;\n Mailbox.$virtualMode = true;\n\n if (angular.isDefined(vm.search.mailbox)) {\n root = vm.accounts[0].$getMailboxByPath(vm.search.mailbox);\n mailboxes.push(root);\n if (vm.search.subfolders && root.children.length)\n _visit(root.children);\n }\n else {\n mailboxes = vm.accounts[0].$flattenMailboxes();\n }\n\n vm.virtualMailbox.setMailboxes(mailboxes);\n vm.virtualMailbox.startSearch(vm.search.match, vm.search.params);\n $state.go('mail.account.virtualMailbox', { accountId: vm.accounts[0].id });\n }\n }\n\n function addSearchParam(v) {\n vm.currentSearchParam = v;\n focus('advancedSearch');\n return false;\n }\n\n function newSearchParam(pattern) {\n if (pattern.length && vm.currentSearchParam.length) {\n var n = 0, searchParam = vm.currentSearchParam;\n if (pattern.startsWith(\"!\")) {\n n = 1;\n pattern = pattern.substring(1).trim();\n }\n vm.currentSearchParam = '';\n return { searchBy: searchParam, searchInput: pattern, negative: n };\n }\n }\n\n function newFolder(parentFolder) {\n Dialog.prompt(l('New folder'),\n l('Enter the new name of your folder :'))\n .then(function(name) {\n parentFolder.$newMailbox(parentFolder.id, name)\n .then(function() {\n // success\n }, function(data, status) {\n Dialog.alert(l('An error occured while creating the mailbox \"%{0}\".', name),\n l(data.error));\n });\n });\n }\n\n function delegate(account) {\n $mdDialog.show({\n templateUrl: account.id + '/delegation', // UI/Templates/MailerUI/UIxMailUserDelegation.wox\n controller: MailboxDelegationController,\n controllerAs: 'delegate',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n User: User,\n account: account\n }\n });\n\n /**\n * @ngInject\n */\n MailboxDelegationController.$inject = ['$scope', '$mdDialog', 'User', 'account'];\n function MailboxDelegationController($scope, $mdDialog, User, account) {\n var vm = this;\n\n vm.users = account.delegates;\n vm.account = account;\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.closeModal = closeModal;\n vm.removeUser = removeUser;\n vm.addUser = addUser;\n\n function userFilter($query) {\n return User.$filter($query, account.delegates);\n }\n\n function closeModal() {\n $mdDialog.hide();\n }\n\n function removeUser(user) {\n account.$removeDelegate(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n account.$addDelegate(data).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n }\n } // delegate\n\n function editFolder(folder) {\n vm.editMode = folder.path;\n focus('mailboxName_' + folder.path);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function selectFolder(account, folder) {\n if (vm.editMode == folder.path)\n return;\n vm.editMode = false;\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function compactFolder(folder) {\n folder.$compact().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function emptyTrashFolder(folder) {\n folder.$emptyTrash().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function exportMails(folder) {\n window.location.href = ApplicationBaseURL + '/' + folder.id + '/exportFolder';\n }\n\n function confirmDelete(folder) {\n Dialog.confirm(l('Confirmation'), l('Do you really want to move this folder into the trash ?'))\n .then(function() {\n folder.$delete()\n .then(function() {\n $state.go('mail');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the mailbox \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n\n function markFolderRead(folder) {\n folder.$markAsRead();\n }\n\n function share(folder) {\n // Fetch list of ACL users\n folder.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: folder.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: folder.$acl.users,\n User: User,\n folder: folder\n }\n });\n });\n } // share\n\n function metadataForFolder(folder) {\n if (folder.type == 'inbox')\n return {name: folder.name, icon:'inbox'};\n else if (folder.type == 'draft')\n return {name: l('DraftsFolderName'), icon: 'drafts'};\n else if (folder.type == 'sent')\n return {name: l('SentFolderName'), icon: 'send'};\n else if (folder.type == 'trash')\n return {name: l('TrashFolderName'), icon: 'delete'};\n else if (folder.type == 'additional')\n return {name: folder.name, icon: 'folder_shared'};\n\n return {name: folder.name, icon: 'folder_open'};\n }\n\n function setFolderAs(folder, type) {\n folder.$setFolderAs(type).then(function() {\n folder.$account.$getMailboxes({reload: true});\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function refreshUnseenCount() {\n var unseenCountFolders = window.unseenCountFolders;\n\n _.forEach(vm.accounts, function(account) {\n\n // Always include the INBOX\n if (!_.includes(unseenCountFolders, account.id + '/folderINBOX'))\n unseenCountFolders.push(account.id + '/folderINBOX');\n\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (angular.isDefined(mailbox.unseenCount) &&\n !_.includes(unseenCountFolders, mailbox.id))\n unseenCountFolders.push(mailbox.id);\n });\n });\n\n Account.$$resource.post('', 'unseenCount', {mailboxes: unseenCountFolders}).then(function(data) {\n _.forEach(vm.accounts, function(account) {\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (data[mailbox.id])\n mailbox.unseenCount = data[mailbox.id];\n });\n });\n });\n\n Preferences.ready().then(function() {\n var refreshViewCheck = Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually')\n $timeout(vm.refreshUnseenCount, refreshViewCheck.timeInterval()*1000);\n });\n }\n\n vm.refreshUnseenCount();\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MailboxesController', MailboxesController); \n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageController.$inject = ['$window', '$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgSettings', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($window, $scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, sgSettings, focus, Dialog, Account, Mailbox, Message) {\n var vm = this, messageDialog = null, popupWindow = null;\n\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.mailbox = stateMailbox;\n vm.message = stateMessage;\n vm.service = Message;\n vm.tags = { searchText: '', selected: '' };\n vm.doDelete = doDelete;\n vm.close = close;\n vm.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\n vm.openPopup = openPopup;\n vm.closePopup = closePopup;\n vm.newMessage = newMessage;\n vm.saveMessage = saveMessage;\n vm.viewRawSource = viewRawSource;\n\n // Watch the message model \"flags\" attribute to remove on-the-fly a tag from the IMAP message\n // when removed from the message viewer.\n // TODO: this approach should be reviewed once md-chips supports ng-change.\n $scope.$watchCollection('viewer.message.flags', function(oldTags, newTags) {\n _.each(_.difference(newTags, oldTags), function(tag) {\n vm.message.removeTag(tag);\n });\n });\n\n function doDelete() {\n stateMailbox.$deleteMessages([stateMessage.uid]).then(function() {\n // Remove message from list of messages\n var index = _.findIndex(stateMailbox.$messages, function(o) {\n return o.uid == stateMessage.uid;\n });\n if (index != -1)\n stateMailbox.$messages.splice(index, 1);\n // Remove message object from scope\n vm.message = null;\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n });\n }\n\n function showMailEditor($event, message, recipients) {\n if (messageDialog === null) {\n if (!angular.isDefined(recipients))\n recipients = [];\n\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n\n function close() {\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) }).then(function() {\n vm.message = null;\n delete stateMailbox.selectedMessage;\n });\n }\n\n function reply($event) {\n var message = vm.message.$reply();\n showMailEditor($event, message);\n }\n\n function replyAll($event) {\n var message = vm.message.$replyAll();\n showMailEditor($event, message);\n }\n\n function forward($event) {\n var message = vm.message.$forward();\n showMailEditor($event, message);\n }\n\n function edit($event) {\n vm.message.$editableContent().then(function() {\n showMailEditor($event, vm.message);\n });\n }\n\n function openPopup() {\n var url = [sgSettings.baseURL(),\n 'UIxMailPopupView#/Mail',\n vm.message.accountId,\n // The double-encoding is necessary\n encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),\n vm.message.uid]\n .join('/'),\n wId = vm.message.$absolutePath();\n popupWindow = $window.open(url, wId,\n [\"width=680\",\n \"height=520\",\n \"resizable=1\",\n \"scrollbars=1\",\n \"toolbar=0\",\n \"location=0\",\n \"directories=0\",\n \"status=0\",\n \"menubar=0\",\n \"copyhistory=0\"]\n .join(','));\n }\n\n function closePopup() {\n $window.close();\n }\n\n function newMessage($event, recipient) {\n var message = vm.account.$newMessage();\n showMailEditor($event, message, [recipient]);\n }\n\n function saveMessage() {\n window.location.href = ApplicationBaseURL + '/' + vm.mailbox.id + '/saveMessages?uid=' + vm.message.uid;\n }\n\n function viewRawSource($event) {\n Message.$$resource.post(vm.message.id, \"viewsource\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: MessageRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n MessageRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function MessageRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n \n angular\n .module('SOGo.MailerUI') \n .controller('MessageController', MessageController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageEditorController.$inject = ['$stateParams', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'sgFocus', 'Dialog', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, focus, Dialog, AddressBook, Preferences) {\n var vm = this;\n\n vm.addRecipient = addRecipient;\n vm.autocomplete = {to: {}, cc: {}, bcc: {}};\n vm.autosave = null;\n vm.autosaveDrafts = autosaveDrafts;\n vm.hideCc = true;\n vm.hideBcc = true;\n vm.cancel = cancel;\n vm.send = send;\n vm.contactFilter = contactFilter;\n vm.identities = _.pluck(_.flatten(_.pluck(stateAccounts, 'identities')), 'full');\n vm.uploader = new FileUploader({\n url: stateMessage.$absolutePath({asDraft: true}) + '/save',\n autoUpload: true,\n alias: 'attachments',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n stateMessage.$setUID(response.uid);\n stateMessage.$reload();\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n\n // We remove the attachment\n stateMessage.$deleteAttachment(item.file.name);\n this.removeFromQueue(item);\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n if ($stateParams.actionName == 'reply') {\n stateMessage.$reply().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'replyall') {\n stateMessage.$replyAll().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'forward') {\n stateMessage.$forward().then(function(msgObject) {\n vm.message = msgObject;\n });\n }\n else if (angular.isDefined(stateMessage)) {\n vm.message = stateMessage;\n }\n\n if (angular.isDefined(stateRecipients)) {\n vm.message.editable.to = _.union(vm.message.editable.to, _.pluck(stateRecipients, 'full'));\n }\n\n function cancel() {\n // TODO: delete draft?\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n $mdDialog.cancel();\n }\n\n function send() {\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n vm.message.$send().then(function(data) {\n $mdDialog.hide();\n }, function(data) {\n Dialog.alert(l(data.status), l(data.message));\n });\n }\n\n function contactFilter($query) {\n return AddressBook.$filterAll($query);\n }\n\n function addRecipient(user) {\n var recipient = [];\n\n if (angular.isString(user))\n return user;\n if (user.$$fullname)\n recipient.push(user.$$fullname);\n if (user.$$email)\n recipient.push('<' + user.$$email + '>');\n\n return recipient.join(' ');\n }\n\n // Drafts autosaving\n function autosaveDrafts() {\n vm.message.$save();\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n }\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n vm.localeCode = Preferences.defaults.LocaleCode;\n });\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MessageEditorController', MessageEditorController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /**\n * sgIMIP - A directive to handle IMIP actions on emails\n * @memberof SOGo.MailerUI\n * @example:\n\n */\n function sgImip() {\n return {\n restrict: 'A',\n link: link,\n controller: 'sgImipController'\n };\n\n function link(scope, iElement, attrs, ctrl) {\n ctrl.pathToAttachment = attrs.sgImipPath;\n }\n }\n\n /**\n * @ngInject\n */\n sgImipController.$inject = ['$scope', 'User'];\n function sgImipController($scope, User) {\n var vm = this;\n\n $scope.delegateInvitation = false;\n $scope.delegatedTo = '';\n $scope.searchText = '';\n\n $scope.userFilter = function($query) {\n return User.$filter($query);\n };\n\n $scope.iCalendarAction = function(action) {\n var data;\n\n if (action == 'delegate') {\n data = {\n receiveUpdates: false,\n delegatedTo: $scope.delegatedTo.c_email\n };\n }\n\n $scope.viewer.message.$imipAction(vm.pathToAttachment, action, data);\n };\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('sgImipController', sgImipController)\n .directive('sgImip', sgImip);\n})();\n\n"]} \ No newline at end of file +{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","each","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","fetch","o","$unwrapCollection","collection","forEach","i","id","prototype","$getMailboxes","options","_this","$mailboxes","reload","when","$find","ready","expandedFolders","_visit","mailboxes","$expanded","indexOf","children","length","settings","Mail","ExpandedFolders","isString","fromJson","$flattenMailboxes","allMailboxes","expandedMailboxes","push","all","$$flattenMailboxes","saveState","reduce","mailbox","post","$getMailboxByType","type","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","toString","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","deferred","defer","param","uid","pluck","delegates","resolve","users","status","reject","l","promise","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","index","map","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","isUndefined","$shadowData","$omit","getLength","getItemAtIndex","$loadMessage","$selectedCount","count","filter","selected","isSelectedMessage","messageId","selectedMessage","$filter","sortingAttributes","filters","isDefined","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","startIndex","endIndex","max","loaded","uids","futureHeadersData","subject","Math","min","loading","$unwrapHeaders","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","flags","operation","msgUIDs","$delete","remove","$deleteMessages","$copyMessages","folder","$moveMessages","$reset","value","key","save","error","$futureMailboxData","headers","invoke","threaded","msgs","msg","object","isError","j","messageHeaders","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","filterTags","query","re","RegExp","results","keys","tag","pair","search","description","color","draftId","$setUID","oldUID","constructor","shortname","replace","image","$shortRecipients","result","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","showDetailedRecipients","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","elements","querySelectorAll","element","attr","removeAttr","participants","participant","compile","$editableContent","text","addTag","$addOrRemoveTag","removeTag","$imipAction","action","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$reply","$newDraft","$replyAll","$forward","origin","response","$send","startsWith","isanswered","isforwarded","$futureMessageData","isread","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","MailboxController","$inject","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","Dialog","vm","messageDialog","service","accounts","selectMessage","toggleMessageSelection","unselectMessages","confirmDeleteSelectedMessages","copySelectedMessages","saveSelectedMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","selectAll","sortedBy","cancelSearch","newMessage","mode","go","mailboxId","$event","preventDefault","stopPropagation","confirm","selectedMessages","selectedUIDs","difference","alert","window","location","href","ApplicationBaseURL","d","field","show","body","targetEvent","clickOutsideToClose","escapeToClose","templateUrl","controller","controllerAs","locals","stateMessage","stateRecipients","MailboxesController","$mdMedia","$mdSidenav","focus","User","newFolder","delegate","editFolder","revertEditing","selectFolder","saveFolder","compactFolder","emptyTrashFolder","exportMails","confirmDelete","markFolderRead","share","metadataForFolder","setFolderAs","refreshUnseenCount","showingAdvancedSearch","currentSearchParam","addSearchParam","newSearchParam","showAdvancedSearch","hideAdvancedSearch","toggleAdvancedSearch","","from","subfolders","current","searchPreviousMailbox","virtualMailbox","root","folders","v","pattern","n","searchParam","substring","trim","negative","parentFolder","prompt","MailboxDelegationController","$scope","userToAdd","searchText","userFilter","closeModal","removeUser","addUser","hide","catch","editMode","close","$users","usersWithACL","icon","unseenCountFolders","includes","MessageController","$window","sgSettings","popupWindow","tags","showFlags","doDelete","reply","replyAll","forward","edit","openPopup","closePopup","saveMessage","toggleRawSource","showRawSource","$watchCollection","oldTags","newTags","findIndex","showMailEditor","recipients","url","baseURL","wId","open","recipient","rawSource","MessageEditorController","$stateParams","$mdToast","FileUploader","AddressBook","addRecipient","autocomplete","autosave","autosaveDrafts","hideCc","hideBcc","send","removeAttachment","contactFilter","flatten","uploader","autoUpload","alias","removeAfterUpload","onSuccessItem","item","inlineUrl","lastAttachmentAttrs","onCancelItem","file","removeFromQueue","onErrorItem","actionName","msgObject","addAttachments","union","fileItem","mimetype","size","FileItem","progress","isUploaded","isSuccess","queue","isUploading","cancelItem","template","hideDelay","position","$filterAll","$$fullname","$$email","SOGoMailAutoSave","localeCode","LocaleCode","SendMessageToastController","closeToast","sgImip","restrict","link","scope","iElement","attrs","ctrl","pathToAttachment","sgImipPath","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","directive","sgZoomableImage","parentNode","toggleClass","event","target","tagName","on"],"mappings":"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","file":"Mailer.services.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Main.js b/UI/WebServerResources/js/Main.js index f0ef48687..a98571b73 100644 --- a/UI/WebServerResources/js/Main.js +++ b/UI/WebServerResources/js/Main.js @@ -1,2 +1,2 @@ -!function(){"use strict";function LoginController($scope,$timeout,Dialog,$mdDialog,Authentication){function login(){return Authentication.login(vm.creds).then(function(url){window.location.href=url},function(msg){Dialog.alert(l("Authentication Failed"),msg.error)}),!1}function showAbout($event){function AboutDialogController($mdDialog){this.closeDialog=function(){$mdDialog.hide()}}$mdDialog.show({targetEvent:$event,templateUrl:"aboutBox.html",controller:AboutDialogController,controllerAs:"about"}),AboutDialogController.$inject=["$mdDialog"]}var vm=this;vm.creds={username:cookieUsername,password:null},vm.login=login,vm.showAbout=showAbout,vm.showLogin=!1,$timeout(function(){vm.showLogin=!0},100)}angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]),LoginController.$inject=["$scope","$timeout","Dialog","$mdDialog","Authentication"],angular.module("SOGo.MainUI").controller("LoginController",LoginController)}(); +(function(){"use strict";angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]);LoginController.$inject=["$scope","$timeout","Dialog","$mdDialog","Authentication"];function LoginController($scope,$timeout,Dialog,$mdDialog,Authentication){var vm=this;vm.creds={username:cookieUsername,password:null};vm.login=login;vm.showAbout=showAbout;vm.showLogin=false;$timeout(function(){vm.showLogin=true},100);function login(){Authentication.login(vm.creds).then(function(url){if(window.location.href===url)window.location.reload(true);else window.location.href=url},function(msg){Dialog.alert(l("Authentication Failed"),msg.error)});return false}function showAbout($event){$mdDialog.show({targetEvent:$event,templateUrl:"aboutBox.html",controller:AboutDialogController,controllerAs:"about"});AboutDialogController.$inject=["$mdDialog"];function AboutDialogController($mdDialog){this.closeDialog=function(){$mdDialog.hide()}}}}angular.module("SOGo.MainUI").controller("LoginController",LoginController)})(); //# sourceMappingURL=Main.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Main.js.map b/UI/WebServerResources/js/Main.js.map index c7545e07d..c6b36350f 100644 --- a/UI/WebServerResources/js/Main.js.map +++ b/UI/WebServerResources/js/Main.js.map @@ -1 +1 @@ -{"version":3,"file":"Main.js","sources":["Main/Main.app.js"],"names":["LoginController","$scope","$timeout","Dialog","$mdDialog","Authentication","login","vm","creds","then","url","window","location","href","msg","alert","l","error","showAbout","$event","AboutDialogController","this","closeDialog","hide","show","targetEvent","templateUrl","controller","controllerAs","$inject","username","cookieUsername","password","showLogin","angular","module"],"mappings":"CAGA,WACE,YAQA,SAASA,iBAAgBC,OAAQC,SAAUC,OAAQC,UAAWC,gBAU5D,QAASC,SAOP,MANAD,gBAAeC,MAAMC,GAAGC,OACrBC,KAAK,SAASC,KACbC,OAAOC,SAASC,KAAOH,KACtB,SAASI,KACVX,OAAOY,MAAMC,EAAE,yBAA0BF,IAAIG,UAE1C,EAGT,QAASC,WAAUC,QAQjB,QAASC,uBAAsBhB,WAC7BiB,KAAKC,YAAc,WACjBlB,UAAUmB,QATdnB,UAAUoB,MACRC,YAAaN,OACbO,YAAa,gBACbC,WAAYP,sBACZQ,aAAc,UAEhBR,sBAAsBS,SAAW,aA1BnC,GAAItB,IAAKc,IAETd,IAAGC,OAAUsB,SAAUC,eAAgBC,SAAU,MACjDzB,GAAGD,MAAQA,MACXC,GAAGW,UAAYA,UAEfX,GAAG0B,WAAY,EACf/B,SAAS,WAAaK,GAAG0B,WAAY,GAAS,KAdhDC,QAAQC,OAAO,eAAgB,cAAe,wBAK9CnC,gBAAgB6B,SAAW,SAAU,WAAY,SAAU,YAAa,kBAqCxEK,QACGC,OAAO,eACPR,WAAW,kBAAmB3B","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for MainUI (SOGoRootPage) */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MainUI', ['SOGo.Common', 'SOGo.Authentication']);\n\n /**\n * @ngInject\n */\n LoginController.$inject = ['$scope', '$timeout', 'Dialog', '$mdDialog', 'Authentication'];\n function LoginController($scope, $timeout, Dialog, $mdDialog, Authentication) {\n var vm = this;\n\n vm.creds = { username: cookieUsername, password: null };\n vm.login = login;\n vm.showAbout = showAbout;\n\n vm.showLogin = false;\n $timeout(function() { vm.showLogin = true; }, 100);\n\n function login() {\n Authentication.login(vm.creds)\n .then(function(url) {\n window.location.href = url;\n }, function(msg) {\n Dialog.alert(l('Authentication Failed'), msg.error);\n });\n return false;\n }\n\n function showAbout($event) {\n $mdDialog.show({\n targetEvent: $event,\n templateUrl: 'aboutBox.html',\n controller: AboutDialogController,\n controllerAs: 'about'\n });\n AboutDialogController.$inject = ['$mdDialog'];\n function AboutDialogController($mdDialog) {\n this.closeDialog = function() {\n $mdDialog.hide();\n };\n }\n }\n }\n\n angular\n .module('SOGo.MainUI')\n .controller('LoginController', LoginController);\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Main/Main.app.js"],"names":["angular","module","LoginController","$inject","$scope","$timeout","Dialog","$mdDialog","Authentication","vm","this","creds","username","cookieUsername","password","login","showAbout","showLogin","then","url","window","location","href","reload","msg","alert","l","error","$event","show","targetEvent","templateUrl","controller","AboutDialogController","controllerAs","closeDialog","hide"],"mappings":"CAGA,WACE,YAEAA,SAAQC,OAAO,eAAgB,cAAe,uBAK9CC,iBAAgBC,SAAW,SAAU,WAAY,SAAU,YAAa,iBACxE,SAASD,iBAAgBE,OAAQC,SAAUC,OAAQC,UAAWC,gBAC5D,GAAIC,IAAKC,IAETD,IAAGE,OAAUC,SAAUC,eAAgBC,SAAU,KACjDL,IAAGM,MAAQA,KACXN,IAAGO,UAAYA,SAEfP,IAAGQ,UAAY,KACfZ,UAAS,WAAaI,GAAGQ,UAAY,MAAS,IAE9C,SAASF,SACPP,eAAeO,MAAMN,GAAGE,OACrBO,KAAK,SAASC,KACb,GAAIC,OAAOC,SAASC,OAASH,IAC3BC,OAAOC,SAASE,OAAO,UAEvBH,QAAOC,SAASC,KAAOH,KACxB,SAASK,KACVlB,OAAOmB,MAAMC,EAAE,yBAA0BF,IAAIG,QAEjD,OAAO,OAGT,QAASX,WAAUY,QACjBrB,UAAUsB,MACRC,YAAaF,OACbG,YAAa,gBACbC,WAAYC,sBACZC,aAAc,SAEhBD,uBAAsB9B,SAAW,YACjC,SAAS8B,uBAAsB1B,WAC7BG,KAAKyB,YAAc,WACjB5B,UAAU6B,UAMlBpC,QACGC,OAAO,eACP+B,WAAW,kBAAmB9B","file":"Main.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Preferences.js b/UI/WebServerResources/js/Preferences.js index 7ebeb1c45..92559d6d2 100644 --- a/UI/WebServerResources/js/Preferences.js +++ b/UI/WebServerResources/js/Preferences.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("preferences",{"abstract":!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}},resolve:{statePreferences:statePreferences}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),$urlRouterProvider.otherwise("/general")}function statePreferences(Preferences){return Preferences}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.PreferencesUI",["ngSanitize","ui.router","ck","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],statePreferences.$inject=["Preferences"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function AccountDialogController($mdDialog,defaults,account,accountId,mailCustomFromEnabled){function customFromIsReadonly(){return accountId>0?!1:!mailCustomFromEnabled}function cancel(){$mdDialog.cancel()}function save(){$mdDialog.hide()}var vm=this;vm.defaults=defaults,vm.account=account,vm.accountId=accountId,vm.customFromIsReadonly=customFromIsReadonly,vm.cancel=cancel,vm.save=save}AccountDialogController.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",AccountDialogController)}(),function(){"use strict";function FiltersDialogController($scope,$window,$mdDialog,filter,mailboxes,labels){function cancel(){$mdDialog.cancel()}function save(form){$mdDialog.hide()}function addMailFilterRule(event){vm.filter.rules||(vm.filter.rules=[]),vm.filter.rules.push({field:"subject",operator:"contains"})}function removeMailFilterRule(index){vm.filter.rules.splice(index,1)}function addMailFilterAction(event){vm.filter.actions||(vm.filter.actions=[]),vm.filter.actions.push({method:"discard"})}function removeMailFilterAction(index){vm.filter.actions.splice(index,1)}var vm=this,sieveCapabilities=$window.sieveCapabilities;vm.filter=filter,vm.mailboxes=mailboxes,vm.labels=labels,vm.cancel=cancel,vm.save=save,vm.addMailFilterRule=addMailFilterRule,vm.removeMailFilterRule=removeMailFilterRule,vm.addMailFilterAction=addMailFilterAction,vm.removeMailFilterAction=removeMailFilterAction,vm.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},sieveCapabilities.indexOf("body")>-1&&(vm.fieldLabels.body=l("Body")),vm.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),redirect:l("Forward the message to:"),vacation:l("Send a vacation message"),stop:l("Stop processing filter rules")},sieveCapabilities.indexOf("reject")>-1&&(vm.methodLabels.reject=l("Send a reject message:")),sieveCapabilities.indexOf("fileinto")>-1&&(vm.methodLabels.fileinto=l("File the message in:")),(sieveCapabilities.indexOf("imapflags")>-1||sieveCapabilities.indexOf("imap4flags")>-1)&&(vm.methodLabels.addflag=l("Flag the message with:")),vm.numberOperatorLabels={under:l("is under"),over:l("is over")},vm.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},sieveCapabilities.indexOf("regex")>-1&&(vm.textOperatorLabels.regex=l("matches regex"),vm.textOperatorLabels.regex_not=l("does not match regex")),vm.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")}}FiltersDialogController.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",FiltersDialogController)}(),function(){"use strict";function PreferencesController($state,$mdDialog,$mdToast,Dialog,User,Account,statePreferences,Authentication){function go(module){$state.go("preferences."+module)}function addCalendarCategory(){vm.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",vm.preferences.defaults.SOGoCalendarCategories.push("New category")}function removeCalendarCategory(index){var key=vm.preferences.defaults.SOGoCalendarCategories[index];vm.preferences.defaults.SOGoCalendarCategories.splice(index,1),delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key]}function addContactCategory(){vm.preferences.defaults.SOGoContactsCategories.push("")}function removeContactCategory(index){vm.preferences.defaults.SOGoContactsCategories.splice(index,1)}function addMailAccount(ev){var account;vm.preferences.defaults.AuxiliaryMailAccounts.push({}),account=_.last(vm.preferences.defaults.AuxiliaryMailAccounts),account.name=l("New account"),account.identities=[{fullName:"",email:""}],account.receipts={receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignore"},$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account=new",targetEvent:ev,locals:{defaults:vm.preferences.defaults,account:account,accountId:vm.preferences.defaults.AuxiliaryMailAccounts.length-1,mailCustomFromEnabled:window.mailCustomFromEnabled}})}function editMailAccount(event,index){var account=vm.preferences.defaults.AuxiliaryMailAccounts[index];$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account="+index,targetEvent:event,locals:{defaults:vm.preferences.defaults,account:account,accountId:index,mailCustomFromEnabled:window.mailCustomFromEnabled}}).then(function(){vm.preferences.defaults.AuxiliaryMailAccounts[index]=account})}function removeMailAccount(index){vm.preferences.defaults.AuxiliaryMailAccounts.splice(index,1)}function addMailLabel(){vm.preferences.defaults.SOGoMailLabelsColors.new_label=["New label","#aaa"]}function removeMailLabel(key){delete vm.preferences.defaults.SOGoMailLabelsColors[key]}function addMailFilter(ev){var filter={match:"all"};$mdDialog.show({templateUrl:"editFilter?filter=new",controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:ev,locals:{filter:filter,mailboxes:mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors}}).then(function(){vm.preferences.defaults.SOGoSieveFilters||(vm.preferences.defaults.SOGoSieveFilters=[]),vm.preferences.defaults.SOGoSieveFilters.push(filter)})}function editMailFilter(ev,index){var filter=angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);$mdDialog.show({templateUrl:"editFilter?filter="+index,controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:null,locals:{filter:filter,mailboxes:mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors}}).then(function(){vm.preferences.defaults.SOGoSieveFilters[index]=filter})}function removeMailFilter(index){vm.preferences.defaults.SOGoSieveFilters.splice(index,1)}function addDefaultEmailAddresses(){var v=[];angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)&&(v=vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(",")),vm.preferences.defaults.Vacation.autoReplyEmailAddresses=_.union(window.defaultEmailAddresses.split(","),v).join(",")}function save(){var sendForm=!0;if(window.forwardConstraints>0&&angular.isDefined(vm.preferences.defaults.Forward)&&vm.preferences.defaults.Forward.enabled&&angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)){var addresses=vm.preferences.defaults.Forward.forwardAddress.split(","),defaultAddresses=window.defaultEmailAddresses.split(/, */),domains=[];_.forEach(defaultAddresses,function(adr){var domain=adr.split("@")[1];domain&&domains.push(domain.toLowerCase())});for(var i=0;i=0&&2==window.forwardConstraints&&(Dialog.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address.")),sendForm=!1)}}sendForm&&vm.preferences.$save().then(function(data){$mdToast.show($mdToast.simple().content(l("Preferences saved")).position("top right").hideDelay(3e3))})}function canChangePassword(){return vm.passwords.newPassword&&vm.passwords.newPassword.length>0&&vm.passwords.newPasswordConfirmation&&vm.passwords.newPasswordConfirmation.length&&vm.passwords.newPassword==vm.passwords.newPasswordConfirmation?!0:!1}function changePassword(){Authentication.changePassword(vm.passwords.newPassword).then(function(){var alert=$mdDialog.alert({title:l("Password"),content:l("The password was changed successfully."),ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})},function(msg){var alert=$mdDialog.alert({title:l("Password"),content:msg,ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})})}function timeZonesListFilter(filter){return _.filter(vm.timeZonesList,function(value){return value.toUpperCase().indexOf(filter.toUpperCase())>=0})}var account,vm=this,mailboxes=[];vm.preferences=statePreferences,vm.passwords={newPassword:null,newPasswordConfirmation:null},vm.go=go,vm.addCalendarCategory=addCalendarCategory,vm.removeCalendarCategory=removeCalendarCategory,vm.addContactCategory=addContactCategory,vm.removeContactCategory=removeContactCategory,vm.addMailAccount=addMailAccount,vm.editMailAccount=editMailAccount,vm.removeMailAccount=removeMailAccount,vm.addMailLabel=addMailLabel,vm.removeMailLabel=removeMailLabel,vm.addMailFilter=addMailFilter,vm.editMailFilter=editMailFilter,vm.removeMailFilter=removeMailFilter,vm.addDefaultEmailAddresses=addDefaultEmailAddresses,vm.userFilter=User.$filter,vm.save=save,vm.canChangePassword=canChangePassword,vm.changePassword=changePassword,vm.timeZonesList=window.timeZonesList,vm.timeZonesListFilter=timeZonesListFilter,vm.timeZonesSearchText="",account=new Account({id:0}),account.$getMailboxes().then(function(){for(var allMailboxes=account.$flattenMailboxes({all:!0}),index=-1,length=allMailboxes.length;++index0)return false;return!mailCustomFromEnabled}function cancel(){$mdDialog.cancel()}function save(){$mdDialog.hide()}}angular.module("SOGo.PreferencesUI").controller("AccountDialogController",AccountDialogController)})();(function(){"use strict";FiltersDialogController.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"];function FiltersDialogController($scope,$window,$mdDialog,filter,mailboxes,labels){var vm=this,sieveCapabilities=$window.sieveCapabilities;vm.filter=filter;vm.mailboxes=mailboxes;vm.labels=labels;vm.cancel=cancel;vm.save=save;vm.addMailFilterRule=addMailFilterRule;vm.removeMailFilterRule=removeMailFilterRule;vm.addMailFilterAction=addMailFilterAction;vm.removeMailFilterAction=removeMailFilterAction;vm.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")};if(sieveCapabilities.indexOf("body")>-1)vm.fieldLabels.body=l("Body");vm.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),redirect:l("Forward the message to:"),vacation:l("Send a vacation message"),stop:l("Stop processing filter rules")};if(sieveCapabilities.indexOf("reject")>-1)vm.methodLabels.reject=l("Send a reject message:");if(sieveCapabilities.indexOf("fileinto")>-1)vm.methodLabels.fileinto=l("File the message in:");if(sieveCapabilities.indexOf("imapflags")>-1||sieveCapabilities.indexOf("imap4flags")>-1)vm.methodLabels.addflag=l("Flag the message with:");vm.numberOperatorLabels={under:l("is under"),over:l("is over")};vm.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")};if(sieveCapabilities.indexOf("regex")>-1){vm.textOperatorLabels.regex=l("matches regex");vm.textOperatorLabels.regex_not=l("does not match regex")}vm.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")};function cancel(){$mdDialog.cancel()}function save(form){$mdDialog.hide()}function addMailFilterRule(event){if(!vm.filter.rules)vm.filter.rules=[];vm.filter.rules.push({field:"subject",operator:"contains"})}function removeMailFilterRule(index){vm.filter.rules.splice(index,1)}function addMailFilterAction(event){if(!vm.filter.actions)vm.filter.actions=[];vm.filter.actions.push({method:"discard"})}function removeMailFilterAction(index){vm.filter.actions.splice(index,1)}}angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",FiltersDialogController)})();(function(){"use strict";PreferencesController.$inject=["$q","$window","$state","$mdDialog","$mdToast","Dialog","User","Account","statePreferences","Authentication"];function PreferencesController($q,$window,$state,$mdDialog,$mdToast,Dialog,User,Account,statePreferences,Authentication){var vm=this,account,mailboxes=[];vm.preferences=statePreferences;vm.passwords={newPassword:null,newPasswordConfirmation:null};vm.go=go;vm.onLanguageChange=onLanguageChange;vm.addCalendarCategory=addCalendarCategory;vm.removeCalendarCategory=removeCalendarCategory;vm.addContactCategory=addContactCategory;vm.removeContactCategory=removeContactCategory;vm.addMailAccount=addMailAccount;vm.editMailAccount=editMailAccount;vm.removeMailAccount=removeMailAccount;vm.addMailLabel=addMailLabel;vm.removeMailLabel=removeMailLabel;vm.addMailFilter=addMailFilter;vm.editMailFilter=editMailFilter;vm.removeMailFilter=removeMailFilter;vm.addDefaultEmailAddresses=addDefaultEmailAddresses;vm.userFilter=User.$filter;vm.save=save;vm.canChangePassword=canChangePassword;vm.changePassword=changePassword;vm.timeZonesList=window.timeZonesList;vm.timeZonesListFilter=timeZonesListFilter;vm.timeZonesSearchText="";account=new Account({id:0});account.$getMailboxes().then(function(){var allMailboxes=account.$flattenMailboxes({all:true}),index=-1,length=allMailboxes.length;while(++index0&&angular.isDefined(vm.preferences.defaults.Forward)&&vm.preferences.defaults.Forward.enabled&&angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)){addresses=vm.preferences.defaults.Forward.forwardAddress.split(",");defaultAddresses=window.defaultEmailAddresses.split(/, */);_.forEach(defaultAddresses,function(adr){var domain=adr.split("@")[1];if(domain){domains.push(domain.toLowerCase())}});for(i=0;i=0&&window.forwardConstraints==2){Dialog.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address."));sendForm=false}}}if(sendForm)return vm.preferences.$save().then(function(data){$mdToast.show({controller:"savePreferencesToastCtrl",template:[""," "+l("Preferences saved")+"",' '," close"," ",""].join(""),hideDelay:2e3,position:"top right"})});return $q.reject()}function canChangePassword(){if(vm.passwords.newPassword&&vm.passwords.newPassword.length>0&&vm.passwords.newPasswordConfirmation&&vm.passwords.newPasswordConfirmation.length&&vm.passwords.newPassword==vm.passwords.newPasswordConfirmation)return true;return false}function changePassword(){Authentication.changePassword(vm.passwords.newPassword).then(function(){var alert=$mdDialog.alert({title:l("Password"),content:l("The password was changed successfully."),ok:l("OK")});$mdDialog.show(alert).finally(function(){alert=undefined})},function(msg){var alert=$mdDialog.alert({title:l("Password"),content:msg,ok:l("OK")});$mdDialog.show(alert).finally(function(){alert=undefined})})}function timeZonesListFilter(filter){return _.filter(vm.timeZonesList,function(value){return value.toUpperCase().indexOf(filter.toUpperCase())>=0})}}savePreferencesToastCtrl.$inject=["$scope","$mdToast"];function savePreferencesToastCtrl($scope,$mdToast){$scope.closeToast=function(){$mdToast.hide()}}angular.module("SOGo.PreferencesUI").controller("savePreferencesToastCtrl",savePreferencesToastCtrl).controller("PreferencesController",PreferencesController)})(); //# sourceMappingURL=Preferences.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Preferences.js.map b/UI/WebServerResources/js/Preferences.js.map index 120c7e4bc..208e5596d 100644 --- a/UI/WebServerResources/js/Preferences.js.map +++ b/UI/WebServerResources/js/Preferences.js.map @@ -1 +1 @@ -{"version":3,"file":"Preferences.js","sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","module","otherwise","Preferences","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","customFromIsReadonly","cancel","save","hide","vm","this","FiltersDialogController","$scope","$window","filter","mailboxes","labels","form","addMailFilterRule","rules","push","field","operator","removeMailFilterRule","index","splice","addMailFilterAction","actions","method","removeMailFilterAction","sieveCapabilities","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","redirect","vacation","stop","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","PreferencesController","$state","$mdToast","Dialog","User","Account","Authentication","go","addCalendarCategory","SOGoCalendarCategoriesColors","SOGoCalendarCategories","removeCalendarCategory","key","addContactCategory","SOGoContactsCategories","removeContactCategory","addMailAccount","ev","AuxiliaryMailAccounts","_","last","name","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","length","window","editMailAccount","then","removeMailAccount","addMailLabel","SOGoMailLabelsColors","new_label","removeMailLabel","addMailFilter","match","SOGoSieveFilters","editMailFilter","copy","removeMailFilter","addDefaultEmailAddresses","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","sendForm","forwardConstraints","Forward","enabled","forwardAddress","addresses","defaultAddresses","domains","forEach","adr","domain","toLowerCase","i","alert","$save","data","simple","content","position","hideDelay","canChangePassword","passwords","newPassword","newPasswordConfirmation","changePassword","title","ok","undefined","msg","timeZonesListFilter","timeZonesList","value","toUpperCase","userFilter","$filter","timeZonesSearchText","id","$getMailboxes","allMailboxes","$flattenMailboxes","all"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.PreferencesUI', ['ngSanitize', 'ui.router', 'ck', 'SOGo.Common', 'SOGo.MailerUI', 'SOGo.ContactsUI', 'SOGo.Authentication'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('preferences', {\n abstract: true,\n views: {\n preferences: {\n templateUrl: 'preferences.html',\n controller: 'PreferencesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n statePreferences: statePreferences\n }\n })\n .state('preferences.general', {\n url: '/general',\n views: {\n module: {\n templateUrl: 'generalPreferences.html'\n }\n }\n })\n .state('preferences.calendars', {\n url: '/calendars',\n views: {\n module: {\n templateUrl: 'calendarsPreferences.html'\n }\n }\n })\n .state('preferences.addressbooks', {\n url: '/addressbooks',\n views: {\n module: {\n templateUrl: 'addressbooksPreferences.html'\n }\n }\n })\n .state('preferences.mailer', {\n url: '/mailer',\n views: {\n module: {\n templateUrl: 'mailerPreferences.html'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/general');\n }\n\n /**\n * @ngInject\n */\n statePreferences.$inject = ['Preferences'];\n function statePreferences(Preferences) {\n return Preferences;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope'];\n function runBlock($rootScope) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AccountDialogController.$inject = ['$mdDialog', 'defaults', 'account', 'accountId', 'mailCustomFromEnabled'];\n function AccountDialogController($mdDialog, defaults, account, accountId, mailCustomFromEnabled) {\n var vm = this;\n\n vm.defaults = defaults;\n vm.account = account;\n vm.accountId = accountId;\n vm.customFromIsReadonly = customFromIsReadonly;\n vm.cancel = cancel;\n vm.save = save;\n\n function customFromIsReadonly() {\n if (accountId > 0)\n return false;\n\n return !mailCustomFromEnabled;\n }\n\n function cancel() {\n $mdDialog.cancel();\n }\n\n function save() {\n $mdDialog.hide();\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('AccountDialogController', AccountDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n FiltersDialogController.$inject = ['$scope', '$window', '$mdDialog', 'filter', 'mailboxes', 'labels'];\n function FiltersDialogController($scope, $window, $mdDialog, filter, mailboxes, labels) {\n var vm = this, sieveCapabilities = $window.sieveCapabilities;\n\n vm.filter = filter;\n vm.mailboxes = mailboxes;\n vm.labels = labels;\n vm.cancel = cancel;\n vm.save = save;\n vm.addMailFilterRule = addMailFilterRule;\n vm.removeMailFilterRule = removeMailFilterRule;\n vm.addMailFilterAction = addMailFilterAction;\n vm.removeMailFilterAction = removeMailFilterAction;\n\n vm.fieldLabels = {\n \"subject\": l(\"Subject\"),\n \"from\": l(\"From\"),\n \"to\": l(\"To\"),\n \"cc\": l(\"Cc\"),\n \"to_or_cc\": l(\"To or Cc\"),\n \"size\": l(\"Size (Kb)\"),\n \"header\": l(\"Header\")\n };\n\n if (sieveCapabilities.indexOf(\"body\") > -1)\n vm.fieldLabels.body = l(\"Body\");\n\n vm.methodLabels = {\n \"discard\": l(\"Discard the message\"),\n \"keep\": l(\"Keep the message\"),\n \"redirect\": l(\"Forward the message to:\"),\n \"vacation\": l(\"Send a vacation message\"),\n \"stop\": l(\"Stop processing filter rules\")\n };\n\n if (sieveCapabilities.indexOf(\"reject\") > -1)\n vm.methodLabels.reject = l(\"Send a reject message:\");\n\n if (sieveCapabilities.indexOf(\"fileinto\") > -1)\n vm.methodLabels.fileinto = l(\"File the message in:\");\n\n if (sieveCapabilities.indexOf(\"imapflags\") > -1 || sieveCapabilities.indexOf(\"imap4flags\") > -1)\n vm.methodLabels.addflag = l(\"Flag the message with:\");\n\n vm.numberOperatorLabels = {\n \"under\": l(\"is under\"),\n \"over\": l(\"is over\")\n };\n\n vm.textOperatorLabels = {\n \"is\": l(\"is\"),\n \"is_not\": l(\"is not\"),\n \"contains\": l(\"contains\"),\n \"contains_not\": l(\"does not contain\"),\n \"matches\": l(\"matches\"),\n \"matches_not\": l(\"does not match\")\n };\n\n if (sieveCapabilities.indexOf(\"regex\") > -1) {\n vm.textOperatorLabels.regex = l(\"matches regex\");\n vm.textOperatorLabels.regex_not = l(\"does not match regex\");\n }\n\n vm.flagLabels = {\n \"seen\": l(\"Seen\"),\n \"deleted\": l(\"Deleted\"),\n \"answered\": l(\"Answered\"),\n \"flagged\": l(\"Flagged\"),\n \"junk\": l(\"Junk\"),\n \"not_junk\": l(\"Not Junk\")\n };\n \n function cancel() {\n $mdDialog.cancel();\n }\n \n function save(form) {\n $mdDialog.hide();\n }\n \n function addMailFilterRule(event) {\n if (!vm.filter.rules)\n vm.filter.rules = [];\n\n vm.filter.rules.push({ field: 'subject', operator: 'contains' });\n }\n \n function removeMailFilterRule(index) {\n vm.filter.rules.splice(index, 1);\n }\n \n function addMailFilterAction(event) {\n if (!vm.filter.actions)\n vm.filter.actions = [];\n\n vm.filter.actions.push({ method: 'discard' });\n }\n \n function removeMailFilterAction(index) {\n vm.filter.actions.splice(index, 1);\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('FiltersDialogController', FiltersDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n PreferencesController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'User', 'Account', 'statePreferences', 'Authentication'];\n function PreferencesController($state, $mdDialog, $mdToast, Dialog, User, Account, statePreferences, Authentication) {\n var vm = this, account, mailboxes = [];\n\n vm.preferences = statePreferences;\n vm.passwords = { newPassword: null, newPasswordConfirmation: null };\n\n vm.go = go;\n vm.addCalendarCategory = addCalendarCategory;\n vm.removeCalendarCategory = removeCalendarCategory;\n vm.addContactCategory = addContactCategory;\n vm.removeContactCategory = removeContactCategory;\n vm.addMailAccount = addMailAccount;\n vm.editMailAccount = editMailAccount;\n vm.removeMailAccount = removeMailAccount;\n vm.addMailLabel = addMailLabel;\n vm.removeMailLabel = removeMailLabel;\n vm.addMailFilter = addMailFilter;\n vm.editMailFilter = editMailFilter;\n vm.removeMailFilter = removeMailFilter;\n vm.addDefaultEmailAddresses = addDefaultEmailAddresses;\n vm.userFilter = User.$filter;\n vm.save = save;\n vm.canChangePassword = canChangePassword;\n vm.changePassword = changePassword;\n vm.timeZonesList = window.timeZonesList;\n vm.timeZonesListFilter = timeZonesListFilter;\n vm.timeZonesSearchText = '';\n\n // Fetch a flatten version of the mailboxes list of the main account (0)\n // This list will be forwarded to the Sieve filter controller\n account = new Account({ id: 0 });\n account.$getMailboxes().then(function() {\n var allMailboxes = account.$flattenMailboxes({all: true}),\n index = -1,\n length = allMailboxes.length;\n while (++index < length) {\n mailboxes.push(allMailboxes[index]);\n }\n });\n\n function go(module) {\n $state.go('preferences.' + module);\n }\n\n function addCalendarCategory() {\n vm.preferences.defaults.SOGoCalendarCategoriesColors[\"New category\"] = \"#aaa\";\n vm.preferences.defaults.SOGoCalendarCategories.push(\"New category\");\n }\n\n function removeCalendarCategory(index) {\n var key = vm.preferences.defaults.SOGoCalendarCategories[index];\n vm.preferences.defaults.SOGoCalendarCategories.splice(index, 1);\n delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key];\n }\n\n function addContactCategory() {\n vm.preferences.defaults.SOGoContactsCategories.push(\"\");\n }\n\n function removeContactCategory(index) {\n vm.preferences.defaults.SOGoContactsCategories.splice(index, 1);\n }\n\n function addMailAccount(ev) {\n var account;\n\n vm.preferences.defaults.AuxiliaryMailAccounts.push({});\n\n account = _.last(vm.preferences.defaults.AuxiliaryMailAccounts);\n account.name = l(\"New account\");\n account.identities = [\n {\n fullName: \"\",\n email: \"\"\n }\n ];\n account.receipts = {\n receiptAction: \"ignore\",\n receiptNonRecipientAction: \"ignore\",\n receiptOutsideDomainAction: \"ignore\",\n receiptAnyAction: \"ignore\"\n };\n\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=new',\n targetEvent: ev,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: (vm.preferences.defaults.AuxiliaryMailAccounts.length-1),\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n });\n }\n\n function editMailAccount(event, index) {\n var account = vm.preferences.defaults.AuxiliaryMailAccounts[index];\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=' + index,\n targetEvent: event,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: index,\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n }).then(function() {\n vm.preferences.defaults.AuxiliaryMailAccounts[index] = account;\n });\n }\n\n function removeMailAccount(index) {\n vm.preferences.defaults.AuxiliaryMailAccounts.splice(index, 1);\n }\n \n function addMailLabel() {\n vm.preferences.defaults.SOGoMailLabelsColors.new_label = [\"New label\", \"#aaa\"];\n }\n\n function removeMailLabel(key) {\n delete vm.preferences.defaults.SOGoMailLabelsColors[key];\n }\n\n function addMailFilter(ev) {\n var filter = { match: 'all' };\n\n $mdDialog.show({\n templateUrl: 'editFilter?filter=new',\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: ev,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n if (!vm.preferences.defaults.SOGoSieveFilters)\n vm.preferences.defaults.SOGoSieveFilters = [];\n vm.preferences.defaults.SOGoSieveFilters.push(filter);\n });\n }\n \n function editMailFilter(ev, index) {\n var filter = angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);\n \n $mdDialog.show({\n templateUrl: 'editFilter?filter=' + index,\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: null,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n vm.preferences.defaults.SOGoSieveFilters[index] = filter;\n });\n }\n\n function removeMailFilter(index) {\n vm.preferences.defaults.SOGoSieveFilters.splice(index, 1);\n }\n\n function addDefaultEmailAddresses() {\n var v = [];\n\n if (angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)) {\n v = vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(',');\n }\n\n vm.preferences.defaults.Vacation.autoReplyEmailAddresses = (_.union(window.defaultEmailAddresses.split(','), v)).join(',');\n }\n \n function save() {\n var sendForm = true;\n\n // We do some sanity checks\n if (window.forwardConstraints > 0 &&\n angular.isDefined(vm.preferences.defaults.Forward) &&\n vm.preferences.defaults.Forward.enabled &&\n angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)) {\n\n var addresses = vm.preferences.defaults.Forward.forwardAddress.split(\",\");\n\n // We first extract the list of 'known domains' to SOGo\n var defaultAddresses = window.defaultEmailAddresses.split(/, */);\n var domains = [];\n\n _.forEach(defaultAddresses, function(adr) {\n var domain = adr.split(\"@\")[1];\n if (domain) {\n domains.push(domain.toLowerCase());\n }\n });\n\n // We check if we're allowed or not to forward based on the domain defaults\n for (var i = 0; i < addresses.length && sendForm; i++) {\n var domain = addresses[i].split(\"@\")[1].toLowerCase();\n if (domains.indexOf(domain) < 0 && window.forwardConstraints == 1) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an external email address.\"));\n sendForm = false;\n }\n else if (domains.indexOf(domain) >= 0 && window.forwardConstraints == 2) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an internal email address.\"));\n sendForm = false;\n }\n }\n }\n\n if (sendForm)\n vm.preferences.$save().then(function(data) {\n $mdToast.show(\n $mdToast.simple()\n .content(l('Preferences saved'))\n .position('top right')\n .hideDelay(3000)\n );\n });\n }\n\n function canChangePassword() {\n if (vm.passwords.newPassword && vm.passwords.newPassword.length > 0 &&\n vm.passwords.newPasswordConfirmation && vm.passwords.newPasswordConfirmation.length &&\n vm.passwords.newPassword == vm.passwords.newPasswordConfirmation)\n return true;\n\n return false;\n }\n \n function changePassword() {\n Authentication.changePassword(vm.passwords.newPassword).then(function() {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: l('The password was changed successfully.'),\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n }, function(msg) {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: msg,\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n });\n }\n\n function timeZonesListFilter(filter) {\n return _.filter(vm.timeZonesList, function(value) {\n return value.toUpperCase().indexOf(filter.toUpperCase()) >= 0;\n });\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('PreferencesController', PreferencesController);\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["angular","module","config","configure","run","runBlock","$inject","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","otherwise","Preferences","$rootScope","$on","event","current","previous","rejection","console","error","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","vm","this","customFromIsReadonly","cancel","save","hide","FiltersDialogController","$scope","$window","filter","mailboxes","labels","sieveCapabilities","addMailFilterRule","removeMailFilterRule","addMailFilterAction","removeMailFilterAction","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","redirect","vacation","stop","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","form","rules","push","field","operator","index","splice","actions","method","PreferencesController","$q","$state","$mdToast","Dialog","User","Account","Authentication","passwords","newPassword","newPasswordConfirmation","go","onLanguageChange","addCalendarCategory","removeCalendarCategory","addContactCategory","removeContactCategory","addMailAccount","editMailAccount","removeMailAccount","addMailLabel","removeMailLabel","addMailFilter","editMailFilter","removeMailFilter","addDefaultEmailAddresses","userFilter","$filter","canChangePassword","changePassword","timeZonesList","window","timeZonesListFilter","timeZonesSearchText","id","$getMailboxes","then","allMailboxes","$flattenMailboxes","all","length","confirm","ok","location","reload","SOGoCalendarCategoriesColors","SOGoCalendarCategories","key","SOGoContactsCategories","ev","AuxiliaryMailAccounts","_","last","name","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","SOGoMailLabelsColors","new_label","match","SOGoSieveFilters","copy","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","i","sendForm","addresses","defaultAddresses","domains","domain","forwardConstraints","Forward","enabled","forwardAddress","forEach","adr","toLowerCase","alert","$save","data","template","hideDelay","position","title","content","finally","undefined","msg","value","toUpperCase","savePreferencesToastCtrl","closeToast"],"mappings":"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","file":"Preferences.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Preferences.services.js b/UI/WebServerResources/js/Preferences.services.js index df1937864..50fef5a95 100644 --- a/UI/WebServerResources/js/Preferences.services.js +++ b/UI/WebServerResources/js/Preferences.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function Preferences(){var _this=this;this.defaults={},this.settings={},this.defaultsPromise=Preferences.$$resource.fetch("jsonDefaults").then(function(data){var labels=_.object(_.map(data.SOGoMailLabelsColors,function(value,key){return"$"==key.charAt(0)?["_"+key,value]:[key,value]}));return data.SOGoMailLabelsColors=labels,data.Vacation?(data.Vacation.endDate?data.Vacation.endDate=new Date(1e3*parseInt(data.Vacation.endDate)):(data.Vacation.endDateEnabled=0,data.Vacation.endDate=new Date),data.Vacation.autoReplyEmailAddresses&&(data.Vacation.autoReplyEmailAddresses=data.Vacation.autoReplyEmailAddresses.join(","))):(data.Vacation={},data.Vacation.endDateEnabled=0,data.Vacation.endDate=new Date),data.Forward&&data.Forward.forwardAddress&&(data.Forward.forwardAddress=data.Forward.forwardAddress.join(",")),angular.extend(_this.defaults,data),_this.defaults}),this.settingsPromise=Preferences.$$resource.fetch("jsonSettings").then(function(data){return data.Calendar&&data.Calendar.PreventInvitationsWhitelist&&(data.Calendar.PreventInvitationsWhitelist=_.map(data.Calendar.PreventInvitationsWhitelist,function(value,key){var match=/^(.+)\s<(\S+)>$/.exec(value);return new Preferences.$User({uid:key,cn:match[1],c_email:match[2]})})),angular.extend(_this.settings,data),_this.settings})}Preferences.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function($q,$timeout,$log,Settings,Resource,User){return angular.extend(Preferences,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),activeUser:Settings.activeUser(),$User:User}),new Preferences}];try{angular.module("SOGo.PreferencesUI")}catch(e){angular.module("SOGo.PreferencesUI",["SOGo.Common"])}angular.module("SOGo.PreferencesUI").factory("Preferences",Preferences.$factory),Preferences.prototype.ready=function(){return Preferences.$q.all([this.defaultsPromise,this.settingsPromise])},Preferences.prototype.$save=function(){return Preferences.$$resource.save("Preferences",this.$omit(!0)).then(function(data){return data})},Preferences.prototype.$omit=function(deep){var preferences={};angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(deep?preferences[key]=angular.copy(value):preferences[key]=value)});var labels=_.object(_.map(preferences.defaults.SOGoMailLabelsColors,function(value,key){return"_"==key.charAt(0)&&"$"==key.charAt(1)?[key.substring(1),value]:[key,value]}));if(preferences.defaults.SOGoMailLabelsColors=labels,preferences.defaults.Vacation&&(preferences.defaults.Vacation.endDateEnabled?preferences.defaults.Vacation.endDate=preferences.defaults.Vacation.endDate.getTime()/1e3:preferences.defaults.Vacation.endDate=0,preferences.defaults.Vacation.autoReplyEmailAddresses?preferences.defaults.Vacation.autoReplyEmailAddresses=preferences.defaults.Vacation.autoReplyEmailAddresses.split(","):preferences.defaults.Vacation.autoReplyEmailAddresses=[]),preferences.defaults.Forward&&preferences.defaults.Forward.forwardAddress&&(preferences.defaults.Forward.forwardAddress=preferences.defaults.Forward.forwardAddress.split(",")),preferences.settings.Calendar&&preferences.settings.Calendar.PreventInvitationsWhitelist){var h={};_.each(preferences.settings.Calendar.PreventInvitationsWhitelist,function(user){h[user.uid]=user.$shortFormat()}),preferences.settings.Calendar.PreventInvitationsWhitelist=h}return preferences}}(); +(function(){"use strict";function Preferences(){var _this=this;this.defaults={};this.settings={};this.defaultsPromise=Preferences.$$resource.fetch("jsonDefaults").then(function(data){var labels=_.object(_.map(data.SOGoMailLabelsColors,function(value,key){if(key.charAt(0)=="$")return["_"+key,value];return[key,value]}));data.SOGoMailLabelsColors=labels;if(data.Vacation){if(data.Vacation.endDate)data.Vacation.endDate=new Date(parseInt(data.Vacation.endDate)*1e3);else{data.Vacation.endDateEnabled=0;data.Vacation.endDate=new Date}if(data.Vacation.autoReplyEmailAddresses)data.Vacation.autoReplyEmailAddresses=data.Vacation.autoReplyEmailAddresses.join(",")}else{data.Vacation={};data.Vacation.endDateEnabled=0;data.Vacation.endDate=new Date}if(data.Forward&&data.Forward.forwardAddress)data.Forward.forwardAddress=data.Forward.forwardAddress.join(",");angular.extend(_this.defaults,data);return _this.defaults});this.settingsPromise=Preferences.$$resource.fetch("jsonSettings").then(function(data){if(data.Calendar&&data.Calendar.PreventInvitationsWhitelist)data.Calendar.PreventInvitationsWhitelist=_.map(data.Calendar.PreventInvitationsWhitelist,function(value,key){var match=/^(.+)\s<(\S+)>$/.exec(value);return new Preferences.$User({uid:key,cn:match[1],c_email:match[2]})});angular.extend(_this.settings,data);return _this.settings})}Preferences.$factory=["$q","$timeout","$log","sgSettings","Resource","User",function($q,$timeout,$log,Settings,Resource,User){angular.extend(Preferences,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),activeUser:Settings.activeUser(),$User:User});return new Preferences}];try{angular.module("SOGo.PreferencesUI")}catch(e){angular.module("SOGo.PreferencesUI",["SOGo.Common"])}angular.module("SOGo.PreferencesUI").factory("Preferences",Preferences.$factory);Preferences.prototype.ready=function(){return Preferences.$q.all([this.defaultsPromise,this.settingsPromise])};Preferences.prototype.$save=function(){var _this=this;return Preferences.$$resource.save("Preferences",this.$omit(true)).then(function(data){return data})};Preferences.prototype.$omit=function(deep){var preferences,labels,whitelist;preferences={};whitelist={};angular.forEach(this,function(value,key){if(key!="constructor"&&key[0]!="$"){if(deep)preferences[key]=angular.copy(value);else preferences[key]=value}});labels=_.object(_.map(preferences.defaults.SOGoMailLabelsColors,function(value,key){if(key.charAt(0)=="_"&&key.charAt(1)=="$")return[key.substring(1),value];return[key,value]}));preferences.defaults.SOGoMailLabelsColors=labels;if(preferences.defaults.Vacation){if(preferences.defaults.Vacation.endDateEnabled)preferences.defaults.Vacation.endDate=preferences.defaults.Vacation.endDate.getTime()/1e3;else preferences.defaults.Vacation.endDate=0;if(preferences.defaults.Vacation.autoReplyEmailAddresses)preferences.defaults.Vacation.autoReplyEmailAddresses=preferences.defaults.Vacation.autoReplyEmailAddresses.split(",");else preferences.defaults.Vacation.autoReplyEmailAddresses=[]}if(preferences.defaults.Forward&&preferences.defaults.Forward.forwardAddress)preferences.defaults.Forward.forwardAddress=preferences.defaults.Forward.forwardAddress.split(",");if(preferences.settings.Calendar&&preferences.settings.Calendar.PreventInvitationsWhitelist){_.each(preferences.settings.Calendar.PreventInvitationsWhitelist,function(user){whitelist[user.uid]=user.$shortFormat()});preferences.settings.Calendar.PreventInvitationsWhitelist=whitelist}return preferences}})(); //# sourceMappingURL=Preferences.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Preferences.services.js.map b/UI/WebServerResources/js/Preferences.services.js.map index 9dc2a1f55..d1583a7d0 100644 --- a/UI/WebServerResources/js/Preferences.services.js.map +++ b/UI/WebServerResources/js/Preferences.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Preferences.services.js","sources":["Preferences/Preferences.service.js"],"names":["Preferences","_this","this","defaults","settings","defaultsPromise","$$resource","fetch","then","data","labels","_","object","map","SOGoMailLabelsColors","value","key","charAt","Vacation","endDate","Date","parseInt","endDateEnabled","autoReplyEmailAddresses","join","Forward","forwardAddress","angular","extend","settingsPromise","Calendar","PreventInvitationsWhitelist","match","exec","$User","uid","cn","c_email","$factory","$q","$timeout","$log","Settings","Resource","User","activeUser","module","e","factory","prototype","ready","all","$save","save","$omit","deep","preferences","forEach","copy","substring","getTime","split","h","each","user","$shortFormat"],"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 Preferences\n * @constructor\n */\n function Preferences() {\n var _this = this;\n\n this.defaults = {};\n this.settings = {};\n\n this.defaultsPromise = Preferences.$$resource.fetch(\"jsonDefaults\").then(function(data) {\n // We swap $key -> _$key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266)\n var labels = _.object(_.map(data.SOGoMailLabelsColors, function(value, key) {\n if (key.charAt(0) == '$')\n return ['_' + key, value];\n return [key, value];\n }));\n\n data.SOGoMailLabelsColors = labels;\n\n // We convert our list of autoReplyEmailAddresses/forwardAddress into a string.\n // We also convert our date objects into real date, otherwise we'll have strings\n // or undefined values and the md-datepicker does NOT like this.\n if (data.Vacation) {\n if (data.Vacation.endDate)\n data.Vacation.endDate = new Date(parseInt(data.Vacation.endDate) * 1000);\n else {\n data.Vacation.endDateEnabled = 0;\n data.Vacation.endDate = new Date();\n }\n\n if (data.Vacation.autoReplyEmailAddresses)\n data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.join(\",\");\n } else {\n data.Vacation = {};\n data.Vacation.endDateEnabled = 0;\n data.Vacation.endDate = new Date();\n }\n\n if (data.Forward && data.Forward.forwardAddress)\n data.Forward.forwardAddress = data.Forward.forwardAddress.join(\",\");\n\n angular.extend(_this.defaults, data);\n\n return _this.defaults;\n });\n\n this.settingsPromise = Preferences.$$resource.fetch(\"jsonSettings\").then(function(data) {\n // We convert our PreventInvitationsWhitelist hash into a array of user\n if (data.Calendar && data.Calendar.PreventInvitationsWhitelist)\n data.Calendar.PreventInvitationsWhitelist = _.map(data.Calendar.PreventInvitationsWhitelist, function(value, key) {\n var match = /^(.+)\\s<(\\S+)>$/.exec(value);\n return new Preferences.$User({uid: key, cn: match[1], c_email: match[2]});\n });\n\n angular.extend(_this.settings, data);\n\n return _this.settings;\n });\n }\n\n /**\n * @memberof Preferences\n * @desc The factory we'll use to register with Angular\n * @returns the Preferences constructor\n */\n Preferences.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'User', function($q, $timeout, $log, Settings, Resource, User) {\n angular.extend(Preferences, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n activeUser: Settings.activeUser(),\n $User: User\n });\n\n return new Preferences(); // return unique instance\n }];\n\n /* Initialize module if necessary */\n try {\n angular.module('SOGo.PreferencesUI');\n }\n catch(e) {\n angular.module('SOGo.PreferencesUI', ['SOGo.Common']);\n }\n\n /* Factory registration in Angular module */\n angular.module('SOGo.PreferencesUI')\n .factory('Preferences', Preferences.$factory);\n\n /**\n * @function ready\n * @memberof Preferences.prototype\n * @desc Combine promises used to load user's defaults and settings.\n * @return a combined promise\n */\n Preferences.prototype.ready = function() {\n return Preferences.$q.all([this.defaultsPromise, this.settingsPromise]);\n };\n\n /**\n * @function $save\n * @memberof Preferences.prototype\n * @desc Save the preferences to the server.\n */\n Preferences.prototype.$save = function() {\n var _this = this;\n\n return Preferences.$$resource.save(\"Preferences\", this.$omit(true))\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 $omit\n * @memberof Preferences.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 Preferences instance\n */\n Preferences.prototype.$omit = function(deep) {\n var preferences = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n if (deep)\n preferences[key] = angular.copy(value);\n else\n preferences[key] = value;\n }\n });\n\n // We swap _$key -> $key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266)\n var labels = _.object(_.map(preferences.defaults.SOGoMailLabelsColors, function(value, key) {\n if (key.charAt(0) == '_' && key.charAt(1) == '$')\n return [key.substring(1), value];\n return [key, value];\n }));\n\n preferences.defaults.SOGoMailLabelsColors = labels;\n\n if (preferences.defaults.Vacation) {\n if (preferences.defaults.Vacation.endDateEnabled)\n preferences.defaults.Vacation.endDate = preferences.defaults.Vacation.endDate.getTime()/1000;\n else\n preferences.defaults.Vacation.endDate = 0;\n\n if (preferences.defaults.Vacation.autoReplyEmailAddresses)\n preferences.defaults.Vacation.autoReplyEmailAddresses = preferences.defaults.Vacation.autoReplyEmailAddresses.split(\",\");\n else\n preferences.defaults.Vacation.autoReplyEmailAddresses = [];\n }\n\n if (preferences.defaults.Forward && preferences.defaults.Forward.forwardAddress)\n preferences.defaults.Forward.forwardAddress = preferences.defaults.Forward.forwardAddress.split(\",\");\n\n if (preferences.settings.Calendar && preferences.settings.Calendar.PreventInvitationsWhitelist) {\n var h = {};\n _.each(preferences.settings.Calendar.PreventInvitationsWhitelist, function(user) {\n h[user.uid] = user.$shortFormat();\n });\n preferences.settings.Calendar.PreventInvitationsWhitelist = h;\n }\n\n return preferences;\n };\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Preferences/Preferences.service.js"],"names":["Preferences","_this","this","defaults","settings","defaultsPromise","$$resource","fetch","then","data","labels","_","object","map","SOGoMailLabelsColors","value","key","charAt","Vacation","endDate","Date","parseInt","endDateEnabled","autoReplyEmailAddresses","join","Forward","forwardAddress","angular","extend","settingsPromise","Calendar","PreventInvitationsWhitelist","match","exec","$User","uid","cn","c_email","$factory","$q","$timeout","$log","Settings","Resource","User","activeUser","module","e","factory","prototype","ready","all","$save","save","$omit","deep","preferences","whitelist","forEach","copy","substring","getTime","split","each","user","$shortFormat"],"mappings":"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","file":"Preferences.services.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.js b/UI/WebServerResources/js/Scheduler.js index 2a7dc634d..4ec3ef0fe 100644 --- a/UI/WebServerResources/js/Scheduler.js +++ b/UI/WebServerResources/js/Scheduler.js @@ -1,2 +1,3 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainFrame",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:stateCalendars}}).state("calendars.view",{url:"/{view:(?:day|week|month|multicolumnday)}/:day",sticky:!0,deepStateRedirect:!0,views:{calendarView:{templateUrl:function($stateParams){return $stateParams.view+"view?day="+$stateParams.day},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:stateEventsBlocks}}),$urlRouterProvider.when("/calendar/day",function(){var now=new Date;return"/calendar/day/"+now.getDayString()}),$urlRouterProvider.when("/calendar/multicolumnday",function(){var now=new Date;return"/calendar/multicolumnday/"+now.getDayString()}),$urlRouterProvider.when("/calendar/week",function(){var now=new Date;return"/calendar/week/"+now.getDayString()}),$urlRouterProvider.when("/calendar/month",function(){var now=new Date;return"/calendar/month/"+now.getDayString()}),$urlRouterProvider.otherwise("/calendar")}function stateCalendars(Calendar){return Calendar.$calendars||Calendar.$findAll(window.calendarsData)}function stateEventsBlocks($stateParams,Component,Calendar){return Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(views){return _.forEach(views,function(view){view.id&&(view.calendar=new Calendar({id:view.id,name:view.calendarName}))}),views})}function runBlock($rootScope,$log,$location,$state,Preferences){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("calendar")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)}),0===$location.url().length&&Preferences.ready().then(function(){var view=/(.+)view/.exec(Preferences.settings.Calendar.View);view&&$location.replace().url("/calendar/"+view[1])})}angular.module("SOGo.SchedulerUI",["ngSanitize","ui.router","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateCalendars.$inject=["Calendar"],stateEventsBlocks.$inject=["$stateParams","Component","Calendar"],runBlock.$inject=["$rootScope","$log","$location","$state","Preferences"]}(),function(){"use strict";function CalendarController($scope,$state,$stateParams,$timeout,$interval,$log,focus,Calendar,Component,stateEventsBlocks){function changeView($event){var date=angular.element($event.currentTarget).attr("date");$state.go("calendars.view",{view:$stateParams.view,day:date})}var vm=this;vm.views=stateEventsBlocks,vm.changeView=changeView,$scope.$on("calendars:list",function(){Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(data){vm.views=data,_.forEach(vm.views,function(view){view.id&&(view.calendar=new Calendar({id:view.id,name:view.calendarName}))})})})}CalendarController.$inject=["$scope","$state","$stateParams","$timeout","$interval","$log","sgFocus","Calendar","Component","stateEventsBlocks"],angular.module("SOGo.SchedulerUI").controller("CalendarController",CalendarController)}(),function(){"use strict";function CalendarListController($scope,$timeout,$state,$mdDialog,Dialog,Preferences,Calendar,Component){function selectComponentType(type,options){(options&&options.reload||vm.componentType!=type)&&(angular.isUndefined(Component["$"+type])&&Component.$filter(type),vm.unselectComponents(),vm.componentType=type,Component.saveSelectedList(type))}function unselectComponents(){_.each(Component["$"+vm.componentType],function(component){component.selected=!1})}function selectAll(){_.each(Component["$"+vm.componentType],function(component){component.selected=!0})}function toggleComponentSelection($event,component){component.selected=!component.selected,$event.preventDefault(),$event.stopPropagation()}function confirmDeleteSelectedComponents(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected components?")).then(function(){var components=_.filter(Component["$"+vm.componentType],function(component){return component.selected});Calendar.$deleteComponents(components)},function(data,status){})}function openEvent($event,event){event.viewable&&openComponent($event,event,"appointment")}function openTask($event,task){task.viewable&&openComponent($event,task,"task")}function openComponent($event,component,type){var templateUrl="UIx"+type.capitalize()+"ViewTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:component}})}function newComponent($event){var component,type="appointment";"tasks"==vm.componentType&&(type="task"),component=new Component({pid:"personal",type:type});var templateUrl="UIx"+type.capitalize()+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:component}})}function filter(filterpopup){Component.$filter(vm.componentType,{filterpopup:filterpopup})}function filteredBy(filterpopup){return Component["$query"+vm.componentType.capitalize()].filterpopup==filterpopup}function sort(field){Component.$filter(vm.componentType,{sort:field})}function sortedBy(field){return Component["$query"+vm.componentType.capitalize()].sort==field}function cancelSearch(){vm.mode.search=!1,Component.$filter(vm.componentType,{value:""})}var vm=this;vm.component=Component,vm.componentType="events",vm.selectedList=0,vm.selectComponentType=selectComponentType,vm.unselectComponents=unselectComponents,vm.selectAll=selectAll,vm.toggleComponentSelection=toggleComponentSelection,vm.confirmDeleteSelectedComponents=confirmDeleteSelectedComponents,vm.openEvent=openEvent,vm.openTask=openTask,vm.newComponent=newComponent,vm.filter=filter,vm.filteredBy=filteredBy,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.mode={search:!1},Preferences.ready().then(function(){var type="events";"tasksListView"==Preferences.settings.Calendar.SelectedList&&(vm.selectedList=1,type="tasks"),selectComponentType(type,{reload:!0})}),$scope.$on("calendars:list",function(){Component.$filter(vm.componentType,{reload:!0})})}CalendarListController.$inject=["$scope","$timeout","$state","$mdDialog","Dialog","Preferences","Calendar","Component"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",CalendarListController)}(),function(){"use strict";function CalendarsController($scope,$window,$mdDialog,$log,focus,Dialog,Settings,Calendar,User,stateCalendars){function newCalendar(ev){Dialog.prompt(l("New calendar"),l("Name of the Calendar")).then(function(name){var calendar=new Calendar({name:name,isEditable:!0,isRemote:!1,owner:UserLogin});Calendar.$add(calendar)})}function addWebCalendar(){Dialog.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(url){Calendar.$addWebCalendar(url)})}function confirmDelete(folder){folder.isSubscription?folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))}):Dialog.confirm(l("Warning"),l("Are you sure you want to delete the calendar %{0}?",folder.name)).then(function(){folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))})})}function showLinks(calendar){function LinksDialogController($mdDialog,calendar){function close(){$mdDialog.hide()}var vm=this;vm.calendar=calendar,vm.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:calendar.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{calendar:calendar}}),LinksDialogController.$inject=["$mdDialog","calendar"]}function showProperties(calendar){function PropertiesDialogController($mdDialog,calendar){function saveProperties(){vm.calendar.$save(),calendar.init(vm.calendar.$omit()),$mdDialog.hide()}function close(){$mdDialog.hide()}var vm=this;vm.calendar=new Calendar(calendar.$omit()),vm.saveProperties=saveProperties,vm.close=close}$mdDialog.show({templateUrl:calendar.id+"/properties",controller:PropertiesDialogController,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{calendar:calendar}}),PropertiesDialogController.$inject=["$mdDialog","calendar"]}function editFolder(folder){vm.calendarName=folder.name,vm.editMode=folder.id,focus("calendarName_"+folder.id)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function renameFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function share(calendar){calendar.$acl.$users().then(function(){$mdDialog.show({templateUrl:calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:calendar.$acl.users,User:User,folder:calendar}})})}function subscribeToFolder(calendarData){$log.debug("subscribeToFolder "+calendarData.owner+calendarData.name),Calendar.$subscribe(calendarData.owner,calendarData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function today(){var fragments=$window.location.hash.split("/"),state=fragments[1],view=fragments[2],now=new Date,path=["#",state,view,now.getDayString()];$window.location=path.join("/")}var vm=this;vm.activeUser=Settings.activeUser,vm.service=Calendar,vm.newCalendar=newCalendar,vm.addWebCalendar=addWebCalendar,vm.confirmDelete=confirmDelete,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.renameFolder=renameFolder,vm.share=share,vm.showLinks=showLinks,vm.showProperties=showProperties,vm.subscribeToFolder=subscribeToFolder,vm.today=today,$scope.$watch(function(){return _.union(_.map(Calendar.$calendars,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$subscriptions,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$webcalendars,function(o){return _.pick(o,["id","active","color"])}))},function(newList,oldList){var ids=_.pluck(_.filter(newList,function(o,i){return!_.isEqual(o,oldList[i])}),"id");ids.length>0&&($log.debug(ids.join(", ")+" changed"),_.each(ids,function(id){var calendar=Calendar.$get(id);calendar.$setActivation().then(function(){$scope.$broadcast("calendars:list")})}))},!0)}CalendarsController.$inject=["$scope","$window","$mdDialog","$log","sgFocus","Dialog","sgSettings","Calendar","User","stateCalendars"],angular.module("SOGo.SchedulerUI").controller("CalendarsController",CalendarsController)}(),function(){"use strict";function ComponentController($rootScope,$mdDialog,Calendar,AddressBook,Alarm,stateComponent){function close(){$mdDialog.hide()}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function edit(){var type="vevent"==vm.component.component?"Appointment":"Task";$mdDialog.hide().then(function(){var templateUrl="UIx"+type+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:vm.component}})})}function editAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){vm.component=component,edit()})}function reply(component){var c=component||vm.component;c.$reply().then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()})}function replyAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){component.reply=vm.component.reply,component.delegatedTo=vm.component.delegatedTo,component.$hasAlarm=vm.component.$hasAlarm,component.alarm=vm.component.alarm,reply(component)})}function deleteOccurrence(){vm.component.remove(!0).then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide()})}function deleteAllOccurrences(){vm.component.remove().then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide()})}function viewRawSource($event){Calendar.$$resource.post(vm.component.pid+"/"+vm.component.id,"raw").then(function(data){function ComponentRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:ComponentRawSourceDialogController}),ComponentRawSourceDialogController.$inject=["scope","$mdDialog"]})}var component,vm=this;vm.component=stateComponent,vm.close=close,vm.cardFilter=cardFilter,vm.edit=edit,vm.editAllOccurrences=editAllOccurrences,vm.reply=reply,vm.replyAllOccurrences=replyAllOccurrences,vm.deleteOccurrence=deleteOccurrence,vm.deleteAllOccurrences=deleteAllOccurrences,vm.viewRawSource=viewRawSource,angular.isUndefined(vm.component.$futureComponentData)&&(component=Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name,vm.component.c_recurrence_id),component.$futureComponentData.then(function(){vm.component=component,vm.organizer=[vm.component.organizer]}))}function ComponentEditorController($rootScope,$scope,$log,$timeout,$mdDialog,User,Calendar,Component,AddressBook,Card,Alarm,stateComponent){function addAttachUrl(){var i=vm.component.addAttachUrl("");focus("attachUrl_"+i)}function toggleRecurrenceEditor(){vm.showRecurrenceEditor=!vm.showRecurrenceEditor,vm.component.$hasCustomRepeat=vm.showRecurrenceEditor}function toggleAttendeesEditor(){vm.showAttendeesEditor=!vm.showAttendeesEditor}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function addAttendee(card){angular.isString(card)?card.isValidEmail()&&(vm.component.addAttendee(new Card({emails:[{value:card}]})),vm.searchText=""):vm.component.addAttendee(card)}function save(form){form.$valid&&vm.component.$save().then(function(data){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()},function(data,status){$log.debug("failed")})}function cancel(){vm.component.$reset(),vm.component.isNew&&(vm.component=null),$mdDialog.hide()}function getDays(){var days=[];return vm.component.start&&vm.component.end&&(days=vm.component.start.daysUpTo(vm.component.end)),_.map(days,function(date){return{stringWithSeparator:date.stringWithSeparator(),getDayString:date.getDayString()}})}function getHours(){for(var hours=[],i=0;23>=i;i++)hours.push(i.toString());return hours}var vm=this;vm.calendars=Calendar.$calendars,vm.component=stateComponent,vm.categories={},vm.showRecurrenceEditor=vm.component.$hasCustomRepeat,vm.toggleRecurrenceEditor=toggleRecurrenceEditor,vm.showAttendeesEditor=angular.isDefined(vm.component.attendees),vm.toggleAttendeesEditor=toggleAttendeesEditor,vm.cardFilter=cardFilter,vm.addAttendee=addAttendee,vm.addAttachUrl=addAttachUrl,vm.cancel=cancel,vm.save=save,vm.attendeesEditor={startDate:vm.component.startDate,endDate:vm.component.endDate,days:getDays(),hours:getHours()},$scope.$watch("editor.component.start",function(newStartDate,oldStartDate){"appointment"==vm.component.type&&(vm.component.end=new Date(vm.component.start),vm.component.end.addMinutes(vm.component.delta),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays())}),$scope.$watch("editor.component.end",function(newEndDate,oldEndDate){newEndDate<=vm.component.start?vm.component.end=oldEndDate:(vm.component.delta=Math.floor(Math.abs(vm.component.end-vm.component.start)/1e3/60),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays())})}ComponentController.$inject=["$rootScope","$mdDialog","Calendar","AddressBook","Alarm","stateComponent"],ComponentEditorController.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","User","Calendar","Component","AddressBook","Card","Alarm","stateComponent"],angular.module("SOGo.SchedulerUI").controller("ComponentController",ComponentController).controller("ComponentEditorController",ComponentEditorController)}(),function(){"use strict";function sgCalendarDayBlock(){function link(scope,iElement,attrs){var pc=100/scope.block.siblings,left=scope.block.position*pc,right=100-(scope.block.position+1)*pc;100>pc&&(left>0&&(left-=2),right>0&&(right-=2)),0===left&&(left=2),0===right&&(right=2),iElement.css("left",left+"%"),iElement.css("right",right+"%"),iElement.addClass("starts"+scope.block.start),iElement.addClass("lasts"+scope.block.length),iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
','
','
',"
",'
{{ block.component.c_title }}',' ',' ',' ',' ',"
","
",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",sgCalendarDayBlock)}(),function(){"use strict";function sgCalendarDayTable(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[''].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",sgCalendarDayTable)}(),function(){"use strict";function sgCalendarMonthDay(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",sgCalendarMonthDay)}(),function(){"use strict";function sgCalendarMonthEvent(){function link(scope,iElement,attrs){iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
',' {{ block.starthour }} - '," {{ block.component.c_title }}",' ',' ',' ',' '," ",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",sgCalendarMonthEvent)}(),function(){"use strict";function sgCalendarTable(){return{restrict:"E",scope:{calendars:"=sgCalendars",calendar:"@sgCalendar",blocksType:"@sgBlocksType",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarTable",sgCalendarTable)}(),function(){"use strict";function sgDraggableBlock($mdGesture){return{restrict:"A",link:function(scope,element,attrs,controller){function onDragStart(ev){console.debug("start "+ev.srcElement.getBoundingClientRect().top),console.debug(ev.clientY)}angular.element(element).attr("draggable","true"),element.on("dragstart",onDragStart)}}}sgDraggableBlock.$inject=["$mdGesture"],angular.module("SOGo.SchedulerUI").directive("sgDraggableBlock",sgDraggableBlock)}(); +(function(){"use strict";angular.module("SOGo.SchedulerUI",["ngSanitize","ui.router","angularFileUpload","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI"]).config(configure).run(runBlock);configure.$inject=["$stateProvider","$urlRouterProvider"];function configure($stateProvider,$urlRouterProvider){$stateProvider.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainView",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:stateCalendars}}).state("calendars.view",{url:"/{view:(?:day|week|month|multicolumnday)}/:day",views:{calendarView:{templateUrl:function($stateParams){return $stateParams.view+"view?day="+$stateParams.day},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:stateEventsBlocks}});$urlRouterProvider.when("/calendar/day",function(){var now=new Date;return"/calendar/day/"+now.getDayString()});$urlRouterProvider.when("/calendar/multicolumnday",function(){var now=new Date;return"/calendar/multicolumnday/"+now.getDayString()});$urlRouterProvider.when("/calendar/week",function(){var now=new Date;return"/calendar/week/"+now.getDayString()});$urlRouterProvider.when("/calendar/month",function(){var now=new Date;return"/calendar/month/"+now.getDayString()});$urlRouterProvider.otherwise("/calendar")}stateCalendars.$inject=["Calendar"];function stateCalendars(Calendar){return Calendar.$calendars||Calendar.$findAll(window.calendarsData)}stateEventsBlocks.$inject=["$stateParams","Component","Calendar"];function stateEventsBlocks($stateParams,Component,Calendar){return Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(views){_.forEach(views,function(view){if(view.id){view.calendar=new Calendar({id:view.id,name:view.calendarName})}});return views})}runBlock.$inject=["$rootScope","$log","$location","$state","Preferences"];function runBlock($rootScope,$log,$location,$state,Preferences){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error);$state.go("calendar")});$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)});if($location.url().length===0){Preferences.ready().then(function(){var view=/(.+)view/.exec(Preferences.settings.Calendar.View);if(view){$location.replace().url("/calendar/"+view[1])}})}}})();(function(){"use strict";CalendarController.$inject=["$scope","$rootScope","$state","$stateParams","Calendar","Component","stateEventsBlocks"];function CalendarController($scope,$rootScope,$state,$stateParams,Calendar,Component,stateEventsBlocks){var vm=this,deregisterCalendarsList;vm.views=stateEventsBlocks;vm.changeView=changeView;deregisterCalendarsList=$rootScope.$on("calendars:list",updateView);$scope.$on("$destroy",deregisterCalendarsList);function updateView(){Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(data){vm.views=data;_.forEach(vm.views,function(view){if(view.id){view.calendar=new Calendar({id:view.id,name:view.calendarName})}})})}function changeView($event){var date=angular.element($event.currentTarget).attr("date");$state.go("calendars.view",{view:$stateParams.view,day:date})}}angular.module("SOGo.SchedulerUI").controller("CalendarController",CalendarController)})();(function(){"use strict";CalendarListController.$inject=["$rootScope","$timeout","$state","$mdDialog","Dialog","Preferences","Calendar","Component"];function CalendarListController($rootScope,$timeout,$state,$mdDialog,Dialog,Preferences,Calendar,Component){var vm=this;vm.component=Component;vm.componentType="events";vm.selectedList=0;vm.selectComponentType=selectComponentType;vm.unselectComponents=unselectComponents;vm.selectAll=selectAll;vm.toggleComponentSelection=toggleComponentSelection;vm.confirmDeleteSelectedComponents=confirmDeleteSelectedComponents;vm.openEvent=openEvent;vm.openTask=openTask;vm.newComponent=newComponent;vm.filter=filter;vm.filteredBy=filteredBy;vm.sort=sort;vm.sortedBy=sortedBy;vm.reload=reload;vm.cancelSearch=cancelSearch;vm.mode={search:false};Preferences.ready().then(function(){var type="events";if(Preferences.settings.Calendar.SelectedList=="tasksListView"){vm.selectedList=1;type="tasks"}selectComponentType(type,{reload:true})});$rootScope.$on("calendars:list",function(){Component.$filter(vm.componentType,{reload:true})});$rootScope.$on("calendar:dragend",updateComponentFromGhost);function selectComponentType(type,options){if(options&&options.reload||vm.componentType!=type){if(angular.isUndefined(Component["$"+type]))Component.$filter(type);vm.unselectComponents();vm.componentType=type;Component.saveSelectedList(type)}}function unselectComponents(){_.each(Component["$"+vm.componentType],function(component){component.selected=false})}function selectAll(){_.each(Component["$"+vm.componentType],function(component){component.selected=true})}function toggleComponentSelection($event,component){component.selected=!component.selected;$event.preventDefault();$event.stopPropagation()}function confirmDeleteSelectedComponents(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected components?")).then(function(){var components=_.filter(Component["$"+vm.componentType],function(component){return component.selected});Calendar.$deleteComponents(components)},function(data,status){})}function openEvent($event,event){openComponent($event,event,"appointment")}function openTask($event,task){openComponent($event,task,"task")}function openComponent($event,component,type){if(component.viewable){var templateUrl="UIx"+type.capitalize()+"ViewTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:true,escapeToClose:true,templateUrl:templateUrl,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:component}})}}function newComponent($event,baseComponent){var type="appointment",component;if(baseComponent){component=baseComponent;type=baseComponent.type}else{if(vm.componentType=="tasks")type="task";component=new Component({pid:"personal",type:type})}var templateUrl="UIx"+type.capitalize()+"EditorTemplate";return $mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:true,escapeToClose:true,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:component}})}function updateComponentFromGhost($event){var component,pointerHandler,coordinates,delta,params;component=Component.$ghost.component;pointerHandler=Component.$ghost.pointerHandler;if(component.isNew){coordinates=pointerHandler.currentEventCoordinates;if(component.isAllDay)coordinates.duration-=96;component.setDelta(coordinates.duration*15);newComponent(null,component).finally(function(){$timeout(function(){Component.$ghost.pointerHandler=null;Component.$ghost.component=null})})}else{delta=pointerHandler.currentEventCoordinates.getDelta(pointerHandler.originalEventCoordinates);params={days:delta.dayNumber,start:delta.start*15,duration:delta.duration*15};if(component.isException||!component.occurrenceId)component.$adjust(params).then(function(){$rootScope.$emit("calendars:list");$timeout(function(){Component.$ghost={}})});else if(component.occurrenceId){$mdDialog.show({clickOutsideToClose:true,escapeToClose:true,locals:{component:component,params:params},template:['',' ',"

"+l("editRepeatingItem")+"

","
"," ",' '+l("button_thisOccurrenceOnly")+"",' '+l("button_allOccurrences")+""," ","
"].join(""),controller:RecurrentComponentDialogController}).then(function(){$rootScope.$emit("calendars:list")}).finally(function(){$timeout(function(){Component.$ghost={}})})}}RecurrentComponentDialogController.$inject=["$scope","$mdDialog","component","params"];function RecurrentComponentDialogController($scope,$mdDialog,component,params){$scope.updateThisOccurrence=function(){component.$adjust(params).then($mdDialog.hide,$mdDialog.cancel)};$scope.updateAllOccurrences=function(){delete component.occurrenceId;component.$adjust(params).then($mdDialog.hide,$mdDialog.cancel)}}}function filter(filterpopup){Component.$filter(vm.componentType,{filterpopup:filterpopup})}function filteredBy(filterpopup){return Component["$query"+vm.componentType.capitalize()].filterpopup==filterpopup}function sort(field){Component.$filter(vm.componentType,{sort:field})}function sortedBy(field){return Component["$query"+vm.componentType.capitalize()].sort==field}function reload(){$rootScope.$emit("calendars:list")}function cancelSearch(){vm.mode.search=false;Component.$filter(vm.componentType,{value:""})}}angular.module("SOGo.SchedulerUI").controller("CalendarListController",CalendarListController)})();(function(){"use strict";CalendarsController.$inject=["$rootScope","$scope","$window","$mdDialog","$log","$mdToast","FileUploader","sgFocus","Dialog","sgSettings","Preferences","Calendar","User","stateCalendars"];function CalendarsController($rootScope,$scope,$window,$mdDialog,$log,$mdToast,FileUploader,focus,Dialog,Settings,Preferences,Calendar,User,stateCalendars){var vm=this;vm.activeUser=Settings.activeUser;vm.service=Calendar;vm.newCalendar=newCalendar;vm.addWebCalendar=addWebCalendar;vm.confirmDelete=confirmDelete;vm.editFolder=editFolder;vm.revertEditing=revertEditing;vm.renameFolder=renameFolder;vm.share=share;vm.importCalendar=importCalendar;vm.exportCalendar=exportCalendar;vm.showLinks=showLinks;vm.showProperties=showProperties;vm.subscribeToFolder=subscribeToFolder;vm.today=today;Preferences.ready().then(function(){vm.categories=_.map(Preferences.defaults.SOGoCalendarCategories,function(name){return{id:name.asCSSIdentifier(),name:name,color:Preferences.defaults.SOGoCalendarCategoriesColors[name]}})});$scope.$watch(function(){return _.union(_.map(Calendar.$calendars,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$subscriptions,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$webcalendars,function(o){return _.pick(o,["id","active","color"])}))},function(newList,oldList){var ids=_.pluck(_.filter(newList,function(o,i){return!_.isEqual(o,oldList[i])}),"id");if(ids.length>0){$log.debug(ids.join(", ")+" changed");_.each(ids,function(id){var calendar=Calendar.$get(id);calendar.$setActivation().then(function(){$rootScope.$emit("calendars:list")})})}},true);function newCalendar(ev){Dialog.prompt(l("New calendar"),l("Name of the Calendar")).then(function(name){var calendar=new Calendar({name:name,isEditable:true,isRemote:false,owner:UserLogin});calendar.$id().then(function(){Calendar.$add(calendar)})})}function addWebCalendar(){Dialog.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(url){Calendar.$addWebCalendar(url)})}function confirmDelete(folder){if(folder.isSubscription){folder.$delete().then(function(){$rootScope.$emit("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))})}else{Dialog.confirm(l("Warning"),l("Are you sure you want to delete the calendar %{0}?",folder.name)).then(function(){folder.$delete().then(function(){$rootScope.$emit("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))})})}}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}});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(3e3))},onErrorItem:function(item,response,status,headers){$mdToast.show({template:["",' error_outline'," "+l("An error occurred while importing calendar.")+"",""].join(""),position:"top right",hideDelay:3e3})}});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:3e3});return isTextFile}}}function exportCalendar(calendar){window.location.href=ApplicationBaseURL+"/"+calendar.id+".ics"+"/export"}function showLinks(calendar){$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:true,escapeToClose:true,templateUrl:calendar.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{calendar:calendar}});LinksDialogController.$inject=["$mdDialog","calendar"];function LinksDialogController($mdDialog,calendar){var vm=this;vm.calendar=calendar;vm.close=close;function close(){$mdDialog.hide()}}}function showProperties(calendar){var color=calendar.color;$mdDialog.show({templateUrl:calendar.id+"/properties",controller:PropertiesDialogController,controllerAs:"properties",clickOutsideToClose:true,escapeToClose:true,locals:{srcCalendar:calendar}}).catch(function(){calendar.color=color});PropertiesDialogController.$inject=["$scope","$mdDialog","srcCalendar"];function PropertiesDialogController($scope,$mdDialog,srcCalendar){var vm=this;vm.calendar=new Calendar(srcCalendar.$omit());vm.saveProperties=saveProperties;vm.close=close;$scope.$watch("properties.calendar.color",function(){srcCalendar.color=vm.calendar.color});function saveProperties(){vm.calendar.$save();srcCalendar.init(vm.calendar.$omit());$mdDialog.hide()}function close(){$mdDialog.cancel()}}}function editFolder(folder){vm.calendarName=folder.name;vm.editMode=folder.id;focus("calendarName_"+folder.id)}function revertEditing(folder){folder.$reset();vm.editMode=false}function renameFolder(folder){folder.$rename().then(function(data){vm.editMode=false},function(data,status){Dialog.alert(l("Warning"),data)})}function share(calendar){calendar.$acl.$users().then(function(){$mdDialog.show({templateUrl:calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:true,escapeToClose:true,locals:{usersWithACL:calendar.$acl.users,User:User,folder:calendar}})})}function subscribeToFolder(calendarData){$log.debug("subscribeToFolder "+calendarData.owner+calendarData.name);Calendar.$subscribe(calendarData.owner,calendarData.name).catch(function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function today(){var fragments=$window.location.hash.split("/"),state=fragments[1],view=fragments[2],now=new Date,path=["#",state,view,now.getDayString()];$window.location=path.join("/")}}angular.module("SOGo.SchedulerUI").controller("CalendarsController",CalendarsController)})();(function(){"use strict";ComponentController.$inject=["$rootScope","$mdDialog","Calendar","AddressBook","Alarm","stateComponent"];function ComponentController($rootScope,$mdDialog,Calendar,AddressBook,Alarm,stateComponent){var vm=this,component;vm.component=stateComponent;vm.close=close;vm.cardFilter=cardFilter;vm.edit=edit;vm.editAllOccurrences=editAllOccurrences;vm.reply=reply;vm.replyAllOccurrences=replyAllOccurrences;vm.deleteOccurrence=deleteOccurrence;vm.deleteAllOccurrences=deleteAllOccurrences;vm.toggleRawSource=toggleRawSource;if(angular.isUndefined(vm.component.$futureComponentData)){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id,vm.component.occurrenceId);component.$futureComponentData.then(function(){vm.component=component;vm.organizer=[vm.component.organizer]})}function close(){$mdDialog.hide()}function cardFilter($query){AddressBook.$filterAll($query);return AddressBook.$cards}function edit(){var type=vm.component.component=="vevent"?"Appointment":"Task";$mdDialog.hide().then(function(){var templateUrl="UIx"+type+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:true,escapeToClose:true,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:vm.component}})})}function editAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id);component.$futureComponentData.then(function(){vm.component=component;edit()})}function reply(component){var c=component||vm.component;c.$reply().then(function(){$rootScope.$emit("calendars:list");$mdDialog.hide();Alarm.getAlarms()})}function replyAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id);component.$futureComponentData.then(function(){component.reply=vm.component.reply;component.delegatedTo=vm.component.delegatedTo;component.$hasAlarm=vm.component.$hasAlarm;component.alarm=vm.component.alarm;reply(component)})}function deleteOccurrence(){vm.component.remove(true).then(function(){$rootScope.$emit("calendars:list");$mdDialog.hide()})}function deleteAllOccurrences(){vm.component.remove().then(function(){$rootScope.$emit("calendars:list");$mdDialog.hide()})}function toggleRawSource($event){Calendar.$$resource.post(vm.component.pid+"/"+vm.component.id,"raw").then(function(data){$mdDialog.hide();$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:true,escapeToClose:true,template:['',' ',"
",data,"    
","
"," ",' '+l("Close")+""," ","
"].join(""),controller:ComponentRawSourceDialogController});ComponentRawSourceDialogController.$inject=["scope","$mdDialog"];function ComponentRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}})}}ComponentEditorController.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","User","Calendar","Component","AddressBook","Card","Alarm","stateComponent"];function ComponentEditorController($rootScope,$scope,$log,$timeout,$mdDialog,User,Calendar,Component,AddressBook,Card,Alarm,stateComponent){var vm=this,component,oldStartDate,oldEndDate,oldDueDate;vm.calendars=Calendar.$calendars;vm.component=stateComponent;vm.categories={};vm.showRecurrenceEditor=vm.component.$hasCustomRepeat;vm.toggleRecurrenceEditor=toggleRecurrenceEditor;vm.showAttendeesEditor=angular.isDefined(vm.component.attendees);vm.toggleAttendeesEditor=toggleAttendeesEditor;vm.cardFilter=cardFilter;vm.addAttendee=addAttendee;vm.addAttachUrl=addAttachUrl;vm.cancel=cancel;vm.save=save;vm.attendeesEditor={days:getDays(),hours:getHours()};vm.addStartDate=addStartDate;vm.addDueDate=addDueDate;vm.updateStartTime=updateStartTime;vm.adjustStartTime=adjustStartTime;vm.updateEndTime=updateEndTime;vm.adjustEndTime=adjustEndTime;vm.updateDueTime=updateDueTime;vm.adjustDueTime=adjustDueTime;if(vm.component.start)oldStartDate=new Date(vm.component.start.getTime());if(vm.component.end)oldEndDate=new Date(vm.component.end.getTime());if(vm.component.due)oldDueDate=new Date(vm.component.due.getTime());function addAttachUrl(){var i=vm.component.addAttachUrl("");focus("attachUrl_"+i)}function toggleRecurrenceEditor(){vm.showRecurrenceEditor=!vm.showRecurrenceEditor;vm.component.$hasCustomRepeat=vm.showRecurrenceEditor}function toggleAttendeesEditor(){vm.showAttendeesEditor=!vm.showAttendeesEditor}function cardFilter($query){AddressBook.$filterAll($query);return AddressBook.$cards}function addAttendee(card){if(angular.isString(card)){if(card.isValidEmail()){vm.component.addAttendee(new Card({emails:[{value:card}]}));vm.searchText=""}}else{vm.component.addAttendee(card)}}function save(form){if(form.$valid){vm.component.$save().then(function(data){$rootScope.$emit("calendars:list");$mdDialog.hide();Alarm.getAlarms()},function(data,status){$log.debug("failed")})}}function cancel(){vm.component.$reset();if(vm.component.isNew){vm.component=null}$mdDialog.cancel()}function getDays(){var days=[];if(vm.component.start&&vm.component.end)days=vm.component.start.daysUpTo(vm.component.end);return _.map(days,function(date){return{stringWithSeparator:date.stringWithSeparator(),getDayString:date.getDayString()}})}function getHours(){var hours=[];for(var i=0;i<=23;i++){hours.push(i.toString())}return hours}function addStartDate(){vm.component.$addStartDate();oldStartDate=new Date(vm.component.start.getTime())}function addDueDate(){vm.component.$addDueDate();oldDueDate=new Date(vm.component.due.getTime())}function updateStartTime(){vm.component.start.addMinutes(oldStartDate.getHours()*60+oldStartDate.getMinutes());adjustStartTime()}function adjustStartTime(){var delta;delta=oldStartDate.valueOf()-vm.component.start.valueOf();if(delta!==0){oldStartDate=new Date(vm.component.start.getTime());if(vm.component.type==="appointment"){vm.component.end=new Date(vm.component.start.getTime());vm.component.end.addMinutes(vm.component.delta);oldEndDate=new Date(vm.component.end.getTime())}}updateFreeBusy()}function updateEndTime(){vm.component.end.addMinutes(oldEndDate.getHours()*60+oldEndDate.getMinutes());adjustEndTime()}function adjustEndTime(){var delta=vm.component.start.minutesTo(vm.component.end);if(delta<0)vm.component.end=new Date(oldEndDate.getTime());else{vm.component.delta=delta;oldEndDate=new Date(vm.component.end.getTime())}updateFreeBusy()}function updateDueTime(){vm.component.due.addMinutes(oldDueDate.getHours()*60+oldDueDate.getMinutes());adjustDueTime()}function adjustDueTime(){oldDueDate=new Date(vm.component.due.getTime())}function updateFreeBusy(){vm.attendeesEditor.days=getDays();vm.component.updateFreeBusy()}}angular.module("SOGo.SchedulerUI").controller("ComponentController",ComponentController).controller("ComponentEditorController",ComponentEditorController)})();(function(){"use strict";function sgCalendarDay(){return{restrict:"E",scope:{day:"@sgDay",dayNumber:"@sgDayNumber",dayString:"@sgDayString"},controller:sgCalendarDayController}}sgCalendarDayController.$inject=["$scope"];function sgCalendarDayController($scope){this.day=$scope.day;this.dayNumber=$scope.dayNumber;this.dayString=$scope.dayString}angular.module("SOGo.SchedulerUI").directive("sgCalendarDay",sgCalendarDay)})();(function(){"use strict";sgCalendarDayBlock.$inject=["CalendarSettings"];function sgCalendarDayBlock(CalendarSettings){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:true,template:['
",'
','
",'
{{ block.component.summary }}',' ',' ',' ',' ',' '," ",'
'," place {{block.component.c_location}}","
","
","
","
"].join(""),link:link};function link(scope,iElement,attrs){var pc,left,right;pc=100/scope.block.siblings;left=scope.block.position*pc;right=100-(scope.block.position+1)*pc;if(pc<100){if(left>0)left-=2;if(right>0)right-=2}if(left===0)left=2;if(right===0)right=2;iElement.css("left",left+"%");iElement.css("right",right+"%");iElement.addClass("starts"+scope.block.start);iElement.addClass("lasts"+scope.block.length);if(scope.block.component)iElement.addClass("bg-folder"+scope.block.component.pid)}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",sgCalendarDayBlock)})();(function(){"use strict";function sgCalendarDayTable(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",sgCalendarDayTable)})();(function(){"use strict";sgCalendarGhost.$inject=["$rootScope","$timeout","CalendarSettings","Calendar","Component"];function sgCalendarGhost($rootScope,$timeout,CalendarSettings,Calendar,Component){return{restrict:"A",require:["^sgCalendarDay","^sgCalendarScrollView"],link:link};function link(scope,iElement,attrs,ctrls){var domElement,calendarDayCtrl,scrollViewCtrl;domElement=iElement[0];calendarDayCtrl=ctrls[0];scrollViewCtrl=ctrls[1];iElement.addClass("sg-event--ghost md-whiteframe-3dp ng-hide");var deregisterDragStart=$rootScope.$on("calendar:dragstart",initGhost);var deregisterDrag=$rootScope.$on("calendar:drag",updateGhost);var deregisterDragEnd=$rootScope.$on("calendar:dragend",hideGhost);scope.$on("$destroy",function(){deregisterDragStart();deregisterDrag();deregisterDragEnd()});function initGhost(){scope.block=Component.$ghost;iElement.addClass("bg-folder"+scope.block.component.pid)}function hideGhost(){_.forEachRight(domElement.classList,function(c){if(/^bg-folder/.test(c))iElement.removeClass(c)});iElement.addClass("ng-hide")}function updateGhost(){var showGhost,isRelative,originalDay,currentDay,wasOtherBlock,start,duration,durationLeft,maxDuration,enableTransition;showGhost=false;enableTransition=function(){iElement.removeClass("sg-event--notransition")};if(Calendar.$view&&Calendar.$view.type==scrollViewCtrl.type){isRelative=scrollViewCtrl.type==="multiday-allday";originalDay=scope.block.pointerHandler.originalEventCoordinates.dayNumber;currentDay=scope.block.pointerHandler.currentEventCoordinates.dayNumber;start=scope.block.pointerHandler.currentEventCoordinates.start;durationLeft=scope.block.pointerHandler.currentEventCoordinates.duration;maxDuration=CalendarSettings.EventDragDayLength-start;if(angular.isUndefined(durationLeft))return;duration=durationLeft;if(duration>maxDuration)duration=maxDuration;delete scope.startHour;delete scope.endHour;if(currentDay>-1&¤tDay==calendarDayCtrl.dayNumber){showGhost=true;if(!isRelative){scope.startHour=getStartTime(start);wasOtherBlock=parseInt(iElement.css("top"))===0;if(wasOtherBlock)iElement.addClass("sg-event--notransition");if(Calendar.$view.quarterHeight){iElement.css("top",start*Calendar.$view.quarterHeight+"px");iElement.css("height",duration*Calendar.$view.quarterHeight+"px")}else iElement.css("top",Calendar.$view.topOffset+"px");if(wasOtherBlock)$timeout(enableTransition)}iElement.removeClass("fg-folder"+scope.block.component.pid);iElement.removeClass("sg-event--ghost--last");iElement.addClass("sg-event--ghost--first")}durationLeft-=duration;currentDay++;while(!showGhost&&durationLeft&¤tDay<=calendarDayCtrl.dayNumber){duration=durationLeft;if(duration>CalendarSettings.EventDragDayLength)duration=CalendarSettings.EventDragDayLength;if(currentDay>-1&¤tDay==calendarDayCtrl.dayNumber){showGhost=true;if(!isRelative){wasOtherBlock=parseInt(iElement.css("top"))!==0;if(wasOtherBlock)iElement.addClass("sg-event--notransition");iElement.css("top",Calendar.$view.topOffset+"px");if(Calendar.$view.quarterHeight)iElement.css("height",duration*Calendar.$view.quarterHeight+"px");if(wasOtherBlock)$timeout(enableTransition)}iElement.removeClass("sg-event--ghost--first");iElement.removeClass("sg-event--ghost--last");iElement.addClass("fg-folder"+scope.block.component.pid)}durationLeft-=duration;currentDay++;start=0}if(!durationLeft){if(isRelative){iElement.addClass("sg-event--ghost--last")}else{scope.endHour=getEndTime(start,duration)}}}if(showGhost)iElement.removeClass("ng-hide");else iElement.addClass("ng-hide")}function quartersToHM(quarters){var minutes,hours,mins;minutes=quarters*15;hours=Math.floor(minutes/60);if(hours<10)hours="0"+hours;mins=minutes%60;if(mins<10)mins="0"+mins;return""+hours+":"+mins}function getStartTime(start){return quartersToHM(start)}function getEndTime(start,duration){var end=(start+duration)%CalendarSettings.EventDragDayLength;return quartersToHM(end)}}}angular.module("SOGo.SchedulerUI").directive("sgCalendarGhost",sgCalendarGhost)})();(function(){"use strict";function sgCalendarMonthDay(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",sgCalendarMonthDay)})();(function(){"use strict";function sgCalendarMonthEvent(){return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:true,template:['
',' {{ block.starthour }}'," {{ block.component.summary }}",' ',' ',' ',' ',' '," ","
"].join(""),link:link};function link(scope,iElement,attrs){if(scope.block.component)iElement.addClass("bg-folder"+scope.block.component.pid)}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",sgCalendarMonthEvent)})();(function(){"use strict";sgCalendarScrollView.$inject=["$rootScope","$window","$document","$q","$timeout","$mdGesture","Calendar","Component","Preferences"];function sgCalendarScrollView($rootScope,$window,$document,$q,$timeout,$mdGesture,Calendar,Component,Preferences){return{restrict:"A",scope:{type:"@sgCalendarScrollView"},controller:sgCalendarScrollViewController,link:function(scope,element,attrs,controller){var view,scrollView,type,lastScroll,deregisterDragStart,deregisterDragStop;scrollView=element[0];type=scope.type;lastScroll=0;deregisterDragStart=$rootScope.$on("calendar:dragstart",onDragStart);deregisterDragStop=$rootScope.$on("calendar:dragend",onDragEnd);$timeout(initView);scope.$on("$destroy",function(){deregisterDragStart();deregisterDragStop();element.off("mouseover",updateFromPointerHandler);angular.element($window).off("resize",updateCoordinates)});function initView(){ +var quarterHeight;quarterHeight=getQuarterHeight();view={type:type,quarterHeight:quarterHeight,scrollStep:6*quarterHeight,maxX:getMaxColumns(),element:scrollView};angular.element($window).on("resize",updateCoordinates);updateCoordinates();if(type!="monthly")Preferences.ready().then(function(){var time,hourCell,quartersOffset;if(Preferences.defaults.SOGoDayStartTime){time=Preferences.defaults.SOGoDayStartTime.split(":");hourCell=document.getElementById("hour"+parseInt(time[0]));quartersOffset=parseInt(time[1])*quarterHeight;scrollView.scrollTop=hourCell.offsetTop+quartersOffset}})}function getQuarterHeight(){var hour0,hour23,height=null;hour0=document.getElementById("hour0");hour23=document.getElementById("hour23");if(hour0&&hour23)height=(hour23.offsetTop-hour0.offsetTop)/(23*4);return height}function getDayDimensions(viewLeft){var width,height,leftOffset,topOffset,nodes,domRect,tileHeader;height=width=leftOffset=topOffset=0;nodes=scrollView.getElementsByClassName("day0");if(nodes.length>0){domRect=nodes[0].getBoundingClientRect();height=domRect.height;width=domRect.width;leftOffset=domRect.left-viewLeft;tileHeader=nodes[0].getElementsByClassName("sg-calendar-tile-header");if(tileHeader.length>0)topOffset=tileHeader[0].clientHeight}return{height:height,width:width,offset:{left:leftOffset,top:topOffset}}}function getMaxColumns(){var max=0;max=scrollView.getElementsByClassName("day").length-1;return max}function updateCoordinates(){var domRect,dayDimensions;domRect=scrollView.getBoundingClientRect();dayDimensions=getDayDimensions(domRect.left);angular.extend(view,{coordinates:{x:domRect.left,y:domRect.top},dayHeight:dayDimensions.height,dayWidth:dayDimensions.width,daysOffset:dayDimensions.offset.left,topOffset:dayDimensions.offset.top})}function onDragStart(){element.on("mouseover",updateFromPointerHandler);updateFromPointerHandler()}function onDragEnd(){element.off("mouseover",updateFromPointerHandler);Calendar.$view=null}function updateFromPointerHandler(){var scrollStep,pointerHandler,pointerCoordinates,now,scrollY,minY,delta;scrollStep=view.scrollStep;pointerHandler=Component.$ghost.pointerHandler;if(pointerHandler){pointerCoordinates=pointerHandler.getContainerBasedCoordinates(view);if(pointerCoordinates){Calendar.$view=view;now=(new Date).getTime();if(!lastScroll||now>lastScroll+100){lastScroll=now;scrollY=pointerCoordinates.y-scrollStep;if(scrollY<0){minY=-scrollView.scrollTop;if(scrollY0){scrollView.scrollTop+=delta}}}}}}}}}sgCalendarScrollViewController.$inject=["$scope"];function sgCalendarScrollViewController($scope){this.type=$scope.type}angular.module("SOGo.SchedulerUI").directive("sgCalendarScrollView",sgCalendarScrollView)})();(function(){"use strict";function sgCalendarTable(){return{restrict:"E",scope:{calendars:"=sgCalendars",calendar:"@sgCalendar",blocksType:"@sgBlocksType",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarTable",sgCalendarTable)})();(function(){"use strict";function sgCategoryStylesheet(){return{restrict:"E",require:"ngModel",scope:{ngModel:"="},replace:true,template:['"].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCategoryStylesheet",sgCategoryStylesheet)})();(function(){"use strict";sgDraggableCalendarBlock.$inject=["$rootScope","$timeout","$log","Calendar","CalendarSettings","Component"];function sgDraggableCalendarBlock($rootScope,$timeout,$log,Calendar,CalendarSettings,Component){return{restrict:"CA",require:"^sgCalendarDay",link:link};function link(scope,element,attrs,calendarDayCtrl){if(scope.block){if(scope.block.component.editable)initGrips();else return}element.on("mousedown",onDragDetect);scope.$on("$destroy",function(){element.off("mousedown",onDragDetect);element.off("mousemove",onDrag)});function initGrips(){var component,dayNumber,blockIndex,isFirstBlock,isLastBlock,dragGrip,leftGrip,rightGrip,topGrip,bottomGrip;component=scope.block.component;dayNumber=scope.block.dayNumber;blockIndex=_.findIndex(component.blocks,_.matchesProperty("dayNumber",dayNumber));isFirstBlock=blockIndex===0;isLastBlock=blockIndex===component.blocks.length-1;dragGrip=angular.element('
');dragGrip.addClass("bdr-folder"+component.pid);if(component.c_isallday||element[0].parentNode.tagName==="SG-CALENDAR-MONTH-DAY"){if(isFirstBlock){leftGrip=angular.element('
').append(dragGrip);element.append(leftGrip)}if(isLastBlock){rightGrip=angular.element('
').append(dragGrip.clone());element.append(rightGrip)}}else{if(isFirstBlock){topGrip=angular.element('
').append(dragGrip);element.append(topGrip)}if(isLastBlock){bottomGrip=angular.element('
').append(dragGrip.clone());element.append(bottomGrip)}}}function onDragDetect(ev){var block,dragMode,eventType,startDate,newData,newComponent,pointerHandler;ev.stopPropagation();dragMode="move-event";if(scope.block&&scope.block.component){if(ev.target.className=="dragGrip-top"||ev.target.className=="dragGrip-left")dragMode="change-start";else if(ev.target.className=="dragGrip-bottom"||ev.target.className=="dragGrip-right")dragMode="change-end"}else{dragMode="change-end"}pointerHandler=new SOGoEventDragPointerHandler(dragMode);pointerHandler.initFromEvent(ev);Component.$ghost.pointerHandler=pointerHandler;angular.element(document).one("mouseup",onDragEnd);angular.element(document).on("mousemove",onDrag)}function dragStart(ev){var block,dragMode,eventType,isHourCell,isMonthly,startDate,newData,newComponent,pointerHandler;isHourCell=element.hasClass("clickableHourCell");isMonthly=element[0].parentNode.tagName=="SG-CALENDAR-MONTH-DAY"||element.hasClass("clickableDayCell");if(scope.block&&scope.block.component){block=scope.block}else{startDate=new Date(calendarDayCtrl.dayString.substring(0,10)+" "+calendarDayCtrl.dayString.substring(11,16));newData={type:"appointment",pid:"personal",summary:l("New Event"),startDate:startDate,isAllDay:isHourCell?0:1};newComponent=new Component(newData);block={component:newComponent,dayNumber:calendarDayCtrl.dayNumber,length:0};block.component.blocks=[block]}eventType="multiday";if(isMonthly)eventType="monthly";else if(block.component.c_isallday)eventType="multiday-allday";_.forEach(block.component.blocks,function(b){b.dragging=true});pointerHandler=Component.$ghost.pointerHandler;pointerHandler.prepareWithEventType(eventType);pointerHandler.initFromBlock(block);Component.$ghost.starthour=block.starthour;Component.$ghost.component=block.component;$log.debug("emit calendar:dragstart");$rootScope.$emit("calendar:dragstart")}function onDrag(ev){var pointerHandler=Component.$ghost.pointerHandler;$timeout(function(){pointerHandler.updateFromEvent(ev)})}function onDragEnd(ev){var block,pointer;block=scope.block;pointer=Component.$ghost.pointerHandler;angular.element(document).off("mousemove",onDrag);if(pointer.dragHasStarted){$rootScope.$emit("calendar:dragend");pointer.dragHasStarted=false}if(block)_.forEach(block.component.blocks,function(b){b.dragging=false})}function SOGoCoordinates(){}SOGoCoordinates.prototype={x:-1,y:-1,getDelta:function SC_getDelta(otherCoordinates){var delta=new SOGoCoordinates;delta.x=this.x-otherCoordinates.x;delta.y=this.y-otherCoordinates.y;return delta},getDistance:function SC_getDistance(otherCoordinates){var delta=this.getDelta(otherCoordinates);return Math.sqrt(delta.x*delta.x+delta.y*delta.y)},clone:function SC_clone(){var coordinates=new SOGoCoordinates;coordinates.x=this.x;coordinates.y=this.y;return coordinates}};function SOGoEventDragEventCoordinates(eventType){this.setEventType(eventType)}SOGoEventDragEventCoordinates.prototype={dayNumber:-1,start:-1,duration:-1,eventType:null,setEventType:function(eventType){this.eventType=eventType},initFromBlock:function(block){if(this.eventType==="monthly"){this.start=0;this.duration=block.component.blocks.length*96}else{this.start=block.component.blocks[0].start;this.duration=_.sum(block.component.blocks,function(b){return b.length})}this.dayNumber=block.component.blocks[0].dayNumber},getDelta:function(otherCoordinates){var delta=new SOGoEventDragEventCoordinates;delta.dayNumber=this.dayNumber-otherCoordinates.dayNumber;delta.start=this.start-otherCoordinates.start;delta.duration=this.duration-otherCoordinates.duration;return delta},_quartersToHM:function(quarters){var minutes=quarters*15;var hours=Math.floor(minutes/60);if(hours<10)hours="0"+hours;var mins=minutes%60;if(mins<10)mins="0"+mins;return""+hours+":"+mins},getStartTime:function(){return this._quartersToHM(this.start)},getEndTime:function(){var end=(this.start+this.duration)%CalendarSettings.EventDragDayLength;return this._quartersToHM(end)},clone:function(){var coordinates=new SOGoEventDragEventCoordinates;coordinates.dayNumber=this.dayNumber;coordinates.start=this.start;coordinates.duration=this.duration;return coordinates}};function SOGoEventDragPointerHandler(dragMode){this.dragMode=dragMode}SOGoEventDragPointerHandler.prototype={originalCoordinates:null,currentCoordinates:null,originalViewCoordinates:null,currentViewCoordinates:null,originalEventCoordinates:null,currentEventCoordinates:null,dragHasStarted:false,getEventViewCoordinates:null,initFromBlock:function SEDPH_initFromBlock(block){this.currentEventCoordinates=new SOGoEventDragEventCoordinates(this.eventType);this.originalEventCoordinates=new SOGoEventDragEventCoordinates(this.eventType);this.originalEventCoordinates.initFromBlock(block)},initFromEvent:function SEDPH_initFromEvent(event){this.currentCoordinates=new SOGoCoordinates;this.updateFromEvent(event);this.originalCoordinates=this.currentCoordinates.clone()},updateFromEvent:function SEDPH_updateFromEvent(event){this.currentCoordinates.x=event.pageX;this.currentCoordinates.y=event.pageY;if(this.dragHasStarted&&Calendar.$view){var newEventCoordinates=this.getEventViewCoordinates(Calendar.$view);if(!this.originalViewCoordinates){this.originalViewCoordinates=this.getEventViewCoordinates(Calendar.$view,this.originalCoordinates);if(Component.$ghost.component.isNew){this.setTimeFromQuarters(Component.$ghost.component.start,this.originalViewCoordinates.y);$log.debug("new event start date "+Component.$ghost.component.start)}}if(!this.currentViewCoordinates||!newEventCoordinates||newEventCoordinates.x!=this.currentViewCoordinates.x||newEventCoordinates.y!=this.currentViewCoordinates.y){this.currentViewCoordinates=newEventCoordinates;if(this.originalViewCoordinates){if(!newEventCoordinates){this.currentViewCoordinates=this.originalViewCoordinates.clone()}this.updateEventCoordinates()}}}else if(this.originalCoordinates&&this.currentCoordinates&&!this.dragHasStarted){var distance=this.getDistance();if(distance>3){this.dragHasStarted=true;dragStart(event)}}},updateEventCoordinates:function SEDGC__updateCoordinates(){var newDuration;var delta=this.currentViewCoordinates.getDelta(this.originalViewCoordinates);var deltaQuarters=delta.x*CalendarSettings.EventDragDayLength+delta.y;$log.debug("quarters delta "+deltaQuarters);if(angular.isUndefined(this.originalEventCoordinates.start)){this.originalEventCoordinates.dayNumber=this.originalViewCoordinates.x;this.originalEventCoordinates.start=this.originalViewCoordinates.y}this.currentEventCoordinates.dayNumber=this.originalEventCoordinates.dayNumber;if(this.dragMode=="move-event"){this.currentEventCoordinates.start=this.originalEventCoordinates.start+deltaQuarters;this.currentEventCoordinates.duration=this.originalEventCoordinates.duration}else{if(this.dragMode=="change-start"){newDuration=this.originalEventCoordinates.duration-deltaQuarters;if(newDuration>0){this.currentEventCoordinates.start=this.originalEventCoordinates.start+deltaQuarters;this.currentEventCoordinates.duration=newDuration}else if(newDuration<0){this.currentEventCoordinates.start=this.originalEventCoordinates.start+this.originalEventCoordinates.duration;this.currentEventCoordinates.duration=-newDuration}}else if(this.dragMode=="change-end"){newDuration=this.originalEventCoordinates.duration+deltaQuarters;if(newDuration>0){this.currentEventCoordinates.start=this.originalEventCoordinates.start;this.currentEventCoordinates.duration=newDuration}else if(newDuration<0){this.currentEventCoordinates.start=this.originalEventCoordinates.start+newDuration;this.currentEventCoordinates.duration=-newDuration}}}var deltaDays;if(this.currentEventCoordinates.start<0){deltaDays=Math.ceil(-this.currentEventCoordinates.start/CalendarSettings.EventDragDayLength);this.currentEventCoordinates.start+=deltaDays*CalendarSettings.EventDragDayLength;this.currentEventCoordinates.dayNumber-=deltaDays}else if(this.currentEventCoordinates.start>=CalendarSettings.EventDragDayLength){deltaDays=Math.floor(this.currentEventCoordinates.start/CalendarSettings.EventDragDayLength);this.currentEventCoordinates.start-=deltaDays*CalendarSettings.EventDragDayLength;this.currentEventCoordinates.dayNumber+=deltaDays}$log.debug("event coordinates "+JSON.stringify(this.currentEventCoordinates));$rootScope.$emit("calendar:drag")},getContainerBasedCoordinates:function SEDPH_getCBC(view,pointerCoordinates){var currentCoordinates=pointerCoordinates||this.currentCoordinates;var coordinates=currentCoordinates.getDelta(view.coordinates);var container=view.element;if(coordinates.xcontainer.clientWidth||coordinates.y<0||coordinates.y>container.clientHeight)coordinates=null;return coordinates},prepareWithEventType:function SEDPH_prepareWithEventType(eventType){var methods={multiday:this.getEventMultiDayViewCoordinates,"multiday-allday":this.getEventMultiDayAllDayViewCoordinates,monthly:this.getEventMonthlyViewCoordinates,unknown:null};var method=methods[eventType];this.eventType=eventType;this.getEventViewCoordinates=method},getEventMultiDayViewCoordinates:function SEDPH_gEMultiDayViewC(view,pointerCoordinates){var coordinates=this.getEventMultiDayAllDayViewCoordinates(view,pointerCoordinates);if(coordinates){var quarterHeight=view.quarterHeight;var pxCoordinates=this.getContainerBasedCoordinates(view,pointerCoordinates);pxCoordinates.y+=view.element.scrollTop;coordinates.y=Math.floor((pxCoordinates.y-CalendarSettings.EventDragHorizontalOffset)/quarterHeight);var maxY=CalendarSettings.EventDragDayLength-1;if(coordinates.y<0)coordinates.y=0;else if(coordinates.y>maxY)coordinates.y=maxY}return coordinates},getEventMultiDayAllDayViewCoordinates:function SEDPH_gEMultiDayADVC(view,pointerCoordinates){var coordinates;var pxCoordinates=this.getContainerBasedCoordinates(view,pointerCoordinates);if(pxCoordinates){coordinates=new SOGoCoordinates;var dayWidth=view.dayWidth;var daysOffset=view.daysOffset;coordinates.x=Math.floor((pxCoordinates.x-daysOffset)/dayWidth);var maxX=Calendar.$view.maxX;if(coordinates.x<0)coordinates.x=0;else if(coordinates.x>maxX)coordinates.x=maxX;coordinates.y=0}else{coordinates=null}return coordinates},getEventMonthlyViewCoordinates:function SEDPH_gEMonthlyViewC(view,pointerCoordinates){var coordinates;var pxCoordinates=this.getContainerBasedCoordinates(view,pointerCoordinates);if(pxCoordinates){coordinates=new SOGoCoordinates;var daysTopOffset=0;var dayWidth=view.dayWidth;var daysOffset=view.daysOffset;var dayHeight=view.dayHeight;var daysY=Math.floor((pxCoordinates.y-daysTopOffset)/dayHeight);if(daysY<0)daysY=0;coordinates.x=Math.floor((pxCoordinates.x-daysOffset)/dayWidth);if(coordinates.x<0)coordinates.x=0;else if(coordinates.x>6)coordinates.x=6;coordinates.x+=7*daysY;coordinates.y=0}else{coordinates=null}return coordinates},getDistance:function SEDPH_getDistance(){return this.currentCoordinates.getDistance(this.originalCoordinates)},setTimeFromQuarters:function SEDPH_setTimeFromQuarters(date,quarters){var hours,minutes;hours=Math.floor(quarters/4);minutes=quarters%4*15;date.setHours(hours,minutes)}}}}angular.module("SOGo.SchedulerUI").directive("sgDraggableCalendarBlock",sgDraggableCalendarBlock)})();(function(){"use strict";sgDroppableBlock.$inject=["$rootScope","$timeout","$mdGesture","Calendar","CalendarSettings","Component"];function sgDroppableBlock($rootScope,$timeout,$mdGesture,Calendar,CalendarSettings,Component){return{restrict:"CA",scope:{onDrop:"&sgOnDrop"},link:function(scope,element,attrs,controller){var deregister=$rootScope.$on("calendar:dragend",scope.onDrop);scope.$on("$destroy",deregister)}}}angular.module("SOGo.SchedulerUI").directive("sgDroppableBlock",sgDroppableBlock)})(); //# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.js.map b/UI/WebServerResources/js/Scheduler.js.map index b0754820c..7380cb149 100644 --- a/UI/WebServerResources/js/Scheduler.js.map +++ b/UI/WebServerResources/js/Scheduler.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheduler.js","sources":["Scheduler/Scheduler.app.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarTable.directive.js","Scheduler/sgDraggableBlock.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","sticky","deepStateRedirect","calendarView","$stateParams","view","day","stateEventsBlocks","when","now","Date","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","then","_","forEach","id","calendar","name","calendarName","runBlock","$rootScope","$log","$location","$state","Preferences","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","length","ready","exec","settings","View","replace","angular","module","config","run","$inject","CalendarController","$scope","$timeout","$interval","focus","changeView","$event","date","element","currentTarget","attr","vm","this","data","CalendarListController","$mdDialog","Dialog","selectComponentType","type","options","reload","componentType","isUndefined","$filter","unselectComponents","saveSelectedList","each","component","selected","selectAll","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","l","components","filter","$deleteComponents","status","openEvent","viewable","openComponent","openTask","task","capitalize","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateComponent","newComponent","pid","filterpopup","filteredBy","sort","field","sortedBy","cancelSearch","mode","search","value","selectedList","SelectedList","CalendarsController","$window","Settings","User","newCalendar","ev","prompt","isEditable","isRemote","owner","UserLogin","$add","addWebCalendar","inputType","$addWebCalendar","confirmDelete","folder","isSubscription","$delete","$broadcast","alert","showLinks","LinksDialogController","close","hide","showProperties","PropertiesDialogController","saveProperties","$save","init","$omit","editFolder","editMode","revertEditing","$reset","renameFolder","$rename","share","$acl","$users","usersWithACL","users","subscribeToFolder","calendarData","debug","$subscribe","today","fragments","location","hash","split","path","join","activeUser","service","$watch","union","map","o","pick","$subscriptions","$webcalendars","newList","oldList","ids","pluck","i","isEqual","$get","$setActivation","ComponentController","AddressBook","Alarm","cardFilter","$query","$filterAll","$cards","edit","editAllOccurrences","$getComponent","$futureComponentData","reply","c","$reply","getAlarms","replyAllOccurrences","delegatedTo","$hasAlarm","alarm","deleteOccurrence","remove","deleteAllOccurrences","viewRawSource","$$resource","post","ComponentRawSourceDialogController","scope","template","c_folder","c_name","c_recurrence_id","organizer","ComponentEditorController","Card","addAttachUrl","toggleRecurrenceEditor","showRecurrenceEditor","$hasCustomRepeat","toggleAttendeesEditor","showAttendeesEditor","addAttendee","card","isString","isValidEmail","emails","searchText","save","form","$valid","cancel","isNew","getDays","days","start","end","daysUpTo","stringWithSeparator","getHours","hours","push","toString","categories","isDefined","attendees","attendeesEditor","startDate","endDate","newStartDate","oldStartDate","addMinutes","delta","freebusy","updateFreeBusyCoverage","newEndDate","oldEndDate","Math","floor","abs","sgCalendarDayBlock","link","iElement","attrs","pc","block","siblings","left","position","right","css","addClass","restrict","clickBlock","directive","sgCalendarDayTable","blocks","sgCalendarMonthDay","sgCalendarMonthEvent","sgCalendarTable","blocksType","sgDraggableBlock","$mdGesture","onDragStart","console","srcElement","getBoundingClientRect","top","clientY","on"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.SchedulerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.SchedulerUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('calendars', {\n url: '/calendar',\n views: {\n calendars: {\n templateUrl: 'UIxCalMainFrame', // UI/Templates/SchedulerUI/UIxCalMainFrame.wox\n controller: 'CalendarsController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateCalendars: stateCalendars\n }\n })\n .state('calendars.view', {\n url: '/{view:(?:day|week|month|multicolumnday)}/:day',\n sticky: true,\n deepStateRedirect: true,\n views: {\n calendarView: {\n templateUrl: function($stateParams) {\n // UI/Templates/SchedulerUI/UIxCalDayView.wox or\n // UI/Templates/SchedulerUI/UIxCalWeekView.wox or\n // UI/Templates/SchedulerUI/UIxCalMonthView.wox or\n // UI/Templates/SchedulerUI/UIxCalMulticolumnDayView.wox\n return $stateParams.view + 'view?day=' + $stateParams.day;\n },\n controller: 'CalendarController',\n controllerAs: 'calendar'\n }\n },\n resolve: {\n stateEventsBlocks: stateEventsBlocks\n }\n });\n\n $urlRouterProvider.when('/calendar/day', function() {\n // If no date is specified, show today\n var now = new Date();\n return '/calendar/day/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/multicolumnday', function() {\n // If no date is specified, show today\n var now = new Date();\n return '/calendar/multicolumnday/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/week', function() {\n // If no date is specified, show today's week\n var now = new Date();\n return '/calendar/week/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/month', function() {\n // If no date is specified, show today's month\n var now = new Date();\n return '/calendar/month/' + now.getDayString();\n });\n\n // If none of the above states are matched, use this as the fallback.\n // runBlock will also act as a fallback by looking at user's settings\n $urlRouterProvider.otherwise('/calendar');\n }\n\n /**\n * @ngInject\n */\n stateCalendars.$inject = ['Calendar'];\n function stateCalendars(Calendar) {\n return Calendar.$calendars || Calendar.$findAll(window.calendarsData);\n }\n\n /**\n * @ngInject\n */\n stateEventsBlocks.$inject = ['$stateParams', 'Component', 'Calendar', ];\n function stateEventsBlocks($stateParams, Component, Calendar) {\n // See CalendarController.js\n return Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate())\n .then(function(views) {\n _.forEach(views, function(view) {\n if (view.id) {\n view.calendar = new Calendar({ id: view.id, name: view.calendarName });\n }\n });\n return views;\n });\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$location', '$state', 'Preferences'];\n function runBlock($rootScope, $log, $location, $state, Preferences) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('calendar');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n if ($location.url().length === 0) {\n // Restore user's last view\n Preferences.ready().then(function() {\n var view = /(.+)view/.exec(Preferences.settings.Calendar.View);\n if (view) {\n $location.replace().url('/calendar/' + view[1]);\n }\n });\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarController.$inject = ['$scope', '$state', '$stateParams', '$timeout', '$interval', '$log', 'sgFocus', 'Calendar', 'Component', 'stateEventsBlocks'];\n function CalendarController($scope, $state, $stateParams, $timeout, $interval, $log, focus, Calendar, Component, stateEventsBlocks) {\n var vm = this;\n\n vm.views = stateEventsBlocks;\n vm.changeView = changeView;\n\n // Refresh current view when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n // See stateEventsBlocks in Scheduler.app.js\n Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate()).then(function(data) {\n vm.views = data;\n _.forEach(vm.views, function(view) {\n if (view.id) {\n view.calendar = new Calendar({ id: view.id, name: view.calendarName });\n }\n });\n });\n });\n\n // Change calendar's view\n function changeView($event) {\n var date = angular.element($event.currentTarget).attr('date');\n $state.go('calendars.view', { view: $stateParams.view, day: date });\n }\n }\n\n angular\n .module('SOGo.SchedulerUI') \n .controller('CalendarController', CalendarController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarListController.$inject = ['$scope', '$timeout', '$state', '$mdDialog', 'Dialog', 'Preferences', 'Calendar', 'Component'];\n function CalendarListController($scope, $timeout, $state, $mdDialog, Dialog, Preferences, Calendar, Component) {\n var vm = this;\n\n vm.component = Component;\n vm.componentType = 'events';\n vm.selectedList = 0;\n vm.selectComponentType = selectComponentType;\n vm.unselectComponents = unselectComponents;\n vm.selectAll = selectAll;\n vm.toggleComponentSelection = toggleComponentSelection;\n vm.confirmDeleteSelectedComponents = confirmDeleteSelectedComponents;\n vm.openEvent = openEvent;\n vm.openTask = openTask;\n vm.newComponent = newComponent;\n vm.filter = filter;\n vm.filteredBy = filteredBy;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.mode = { search: false };\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n var type = 'events';\n if (Preferences.settings.Calendar.SelectedList == 'tasksListView') {\n vm.selectedList = 1;\n type = 'tasks';\n }\n selectComponentType(type, { reload: true });\n });\n\n // Refresh current list when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n Component.$filter(vm.componentType, { reload: true });\n });\n\n // Switch between components tabs\n function selectComponentType(type, options) {\n if (options && options.reload || vm.componentType != type) {\n // TODO: save user settings (Calendar.SelectedList)\n if (angular.isUndefined(Component['$' + type]))\n Component.$filter(type);\n vm.unselectComponents();\n vm.componentType = type;\n Component.saveSelectedList(type);\n }\n }\n\n function unselectComponents() {\n _.each(Component['$' + vm.componentType], function(component) { component.selected = false; });\n }\n\n function selectAll() {\n _.each(Component['$' + vm.componentType], function(component) {\n component.selected = true;\n });\n }\n\n function toggleComponentSelection($event, component) {\n component.selected = !component.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function confirmDeleteSelectedComponents() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected components?'))\n .then(function() {\n // User confirmed the deletion\n var components = _.filter(Component['$' + vm.componentType], function(component) { return component.selected; });\n Calendar.$deleteComponents(components);\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function openEvent($event, event) {\n if (event.viewable)\n openComponent($event, event, 'appointment');\n }\n\n function openTask($event, task) {\n if (task.viewable)\n openComponent($event, task, 'task');\n }\n\n function openComponent($event, component, type) {\n // UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'ViewTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function newComponent($event) {\n var type = 'appointment', component;\n\n if (vm.componentType == 'tasks')\n type = 'task';\n component = new Component({ pid: 'personal', type: type });\n\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function filter(filterpopup) {\n Component.$filter(vm.componentType, { filterpopup: filterpopup });\n }\n\n function filteredBy(filterpopup) {\n return Component['$query' + vm.componentType.capitalize()].filterpopup == filterpopup;\n }\n\n function sort(field) {\n Component.$filter(vm.componentType, { sort: field });\n }\n\n function sortedBy(field) {\n return Component['$query' + vm.componentType.capitalize()].sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n Component.$filter(vm.componentType, { value: '' });\n }\n }\n \n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarListController', CalendarListController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarsController.$inject = ['$scope', '$window', '$mdDialog', '$log', 'sgFocus', 'Dialog', 'sgSettings', 'Calendar', 'User', 'stateCalendars'];\n function CalendarsController($scope, $window, $mdDialog, $log, focus, Dialog, Settings, Calendar, User, stateCalendars) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = Calendar;\n vm.newCalendar = newCalendar;\n vm.addWebCalendar = addWebCalendar;\n vm.confirmDelete = confirmDelete;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.renameFolder = renameFolder;\n vm.share = share;\n vm.showLinks = showLinks;\n vm.showProperties = showProperties;\n vm.subscribeToFolder = subscribeToFolder;\n vm.today = today;\n\n // Dispatch the event named 'calendars:list' when a calendar is activated or deactivated or\n // when the color of a calendar is changed\n $scope.$watch(\n function() {\n return _.union(\n _.map(Calendar.$calendars, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$subscriptions, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$webcalendars, function(o) { return _.pick(o, ['id', 'active', 'color']); })\n );\n },\n function(newList, oldList) {\n // Identify which calendar has changed\n var ids = _.pluck(_.filter(newList, function(o, i) { return !_.isEqual(o, oldList[i]); }), 'id');\n if (ids.length > 0) {\n $log.debug(ids.join(', ') + ' changed');\n _.each(ids, function(id) {\n var calendar = Calendar.$get(id);\n calendar.$setActivation().then(function() {\n $scope.$broadcast('calendars:list');\n });\n });\n }\n },\n true // compare for object equality\n );\n\n function newCalendar(ev) {\n Dialog.prompt(l('New calendar'), l('Name of the Calendar'))\n .then(function(name) {\n var calendar = new Calendar(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n Calendar.$add(calendar);\n });\n }\n\n function addWebCalendar() {\n Dialog.prompt(l('Subscribe to a web calendar...'), l('URL of the Calendar'), {inputType: 'url'})\n .then(function(url) {\n Calendar.$addWebCalendar(url);\n });\n }\n\n function confirmDelete(folder) {\n if (folder.isSubscription) {\n // Unsubscribe without confirmation\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the calendar %{0}?', folder.name))\n .then(function() {\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n }\n\n function showLinks(calendar) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: calendar.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'calendar'];\n function LinksDialogController($mdDialog, calendar) {\n var vm = this;\n vm.calendar = calendar;\n vm.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function showProperties(calendar) {\n $mdDialog.show({\n templateUrl: calendar.id + '/properties',\n controller: PropertiesDialogController,\n controllerAs: 'properties',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n PropertiesDialogController.$inject = ['$mdDialog', 'calendar'];\n function PropertiesDialogController($mdDialog, calendar) {\n var vm = this;\n\n vm.calendar = new Calendar(calendar.$omit());\n vm.saveProperties = saveProperties;\n vm.close = close;\n\n function saveProperties() {\n vm.calendar.$save();\n // Refresh list instance\n calendar.init(vm.calendar.$omit());\n $mdDialog.hide();\n }\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function editFolder(folder) {\n vm.calendarName = folder.name;\n vm.editMode = folder.id;\n focus('calendarName_' + folder.id);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function renameFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function share(calendar) {\n calendar.$acl.$users().then(function() {\n $mdDialog.show({\n templateUrl: calendar.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: calendar.$acl.users,\n User: User,\n folder: calendar\n }\n });\n });\n }\n\n // Callback of sgSubscribe directive\n function subscribeToFolder(calendarData) {\n $log.debug('subscribeToFolder ' + calendarData.owner + calendarData.name);\n Calendar.$subscribe(calendarData.owner, calendarData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function today() {\n var fragments = $window.location.hash.split('/'),\n state = fragments[1],\n view = fragments[2],\n now = new Date(),\n path = ['#', state, view, now.getDayString()];\n $window.location = path.join('/');\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarsController', CalendarsController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n ComponentController.$inject = ['$rootScope', '$mdDialog', 'Calendar', 'AddressBook', 'Alarm', 'stateComponent'];\n function ComponentController($rootScope, $mdDialog, Calendar, AddressBook, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.component = stateComponent;\n vm.close = close;\n vm.cardFilter = cardFilter;\n vm.edit = edit;\n vm.editAllOccurrences = editAllOccurrences;\n vm.reply = reply;\n vm.replyAllOccurrences = replyAllOccurrences;\n vm.deleteOccurrence = deleteOccurrence;\n vm.deleteAllOccurrences = deleteAllOccurrences;\n vm.viewRawSource = viewRawSource;\n\n // Load all attributes of component\n if (angular.isUndefined(vm.component.$futureComponentData)) {\n component = Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name, vm.component.c_recurrence_id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n vm.organizer = [vm.component.organizer];\n });\n }\n\n function close() {\n $mdDialog.hide();\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function edit() {\n var type = (vm.component.component == 'vevent')? 'Appointment':'Task';\n $mdDialog.hide().then(function() {\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: vm.component\n }\n });\n });\n }\n\n function editAllOccurrences() {\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n edit();\n });\n }\n\n function reply(component) {\n var c = component || vm.component;\n\n c.$reply().then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n });\n }\n\n function replyAllOccurrences() {\n // Retrieve master event\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n // Propagate the participant status and alarm to the master event\n component.reply = vm.component.reply;\n component.delegatedTo = vm.component.delegatedTo;\n component.$hasAlarm = vm.component.$hasAlarm;\n component.alarm = vm.component.alarm;\n // Send reply to the server\n reply(component);\n });\n }\n\n function deleteOccurrence() {\n vm.component.remove(true).then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n });\n }\n\n function deleteAllOccurrences() {\n vm.component.remove().then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n });\n }\n\n function viewRawSource($event) {\n Calendar.$$resource.post(vm.component.pid + '/' + vm.component.id, \"raw\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: ComponentRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n ComponentRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function ComponentRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n\n /**\n * @ngInject\n */\n ComponentEditorController.$inject = ['$rootScope', '$scope', '$log', '$timeout', '$mdDialog', 'User', 'Calendar', 'Component', 'AddressBook', 'Card', 'Alarm', 'stateComponent'];\n function ComponentEditorController($rootScope, $scope, $log, $timeout, $mdDialog, User, Calendar, Component, AddressBook, Card, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.calendars = Calendar.$calendars;\n vm.component = stateComponent;\n vm.categories = {};\n vm.showRecurrenceEditor = vm.component.$hasCustomRepeat;\n vm.toggleRecurrenceEditor = toggleRecurrenceEditor;\n vm.showAttendeesEditor = angular.isDefined(vm.component.attendees);\n vm.toggleAttendeesEditor = toggleAttendeesEditor;\n //vm.searchText = null;\n vm.cardFilter = cardFilter;\n vm.addAttendee = addAttendee;\n vm.addAttachUrl = addAttachUrl;\n vm.cancel = cancel;\n vm.save = save;\n vm.attendeesEditor = {\n startDate: vm.component.startDate,\n endDate: vm.component.endDate,\n days: getDays(),\n hours: getHours()\n };\n\n $scope.$watch('editor.component.start', function(newStartDate, oldStartDate) {\n if (vm.component.type == 'appointment') {\n vm.component.end = new Date(vm.component.start);\n vm.component.end.addMinutes(vm.component.delta);\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n }\n });\n\n $scope.$watch('editor.component.end', function(newEndDate, oldEndDate) {\n if (newEndDate <= vm.component.start) {\n vm.component.end = oldEndDate;\n }\n else {\n vm.component.delta = Math.floor((Math.abs(vm.component.end-vm.component.start)/1000)/60);\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n }\n });\n\n function addAttachUrl() {\n var i = vm.component.addAttachUrl('');\n focus('attachUrl_' + i);\n }\n\n function toggleRecurrenceEditor() {\n vm.showRecurrenceEditor = !vm.showRecurrenceEditor;\n vm.component.$hasCustomRepeat = vm.showRecurrenceEditor;\n }\n\n function toggleAttendeesEditor() {\n vm.showAttendeesEditor = !vm.showAttendeesEditor;\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function addAttendee(card) {\n if (angular.isString(card)) {\n // User pressed \"Enter\" in search field, adding a non-matching card\n if (card.isValidEmail()) {\n vm.component.addAttendee(new Card({ emails: [{ value: card }] }));\n vm.searchText = '';\n }\n }\n else {\n vm.component.addAttendee(card);\n }\n }\n\n function save(form) {\n if (form.$valid) {\n vm.component.$save()\n .then(function(data) {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n }, function(data, status) {\n $log.debug('failed');\n });\n }\n }\n\n function cancel() {\n vm.component.$reset();\n if (vm.component.isNew) {\n // Cancelling the creation of a component\n vm.component = null;\n }\n $mdDialog.hide();\n }\n\n function getDays() {\n var days = [];\n\n if (vm.component.start && vm.component.end)\n days = vm.component.start.daysUpTo(vm.component.end);\n\n return _.map(days, function(date) {\n return { stringWithSeparator: date.stringWithSeparator(),\n getDayString: date.getDayString() };\n });\n }\n\n function getHours() {\n var hours = [];\n for (var i = 0; i <= 23; i++) {\n //hours.push(Component.timeFormat.formatTime(i, 0));\n hours.push(i.toString());\n }\n return hours;\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('ComponentController', ComponentController)\n .controller('ComponentEditorController', ComponentEditorController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayBlock - An event block to be displayed in a week\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: clickEvent (the event that triggered the mouse click),\n * and clickComponent (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayBlock() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n '
',\n '
',\n '
',\n '
{{ block.component.c_title }}',\n ' ',\n // Component has an alarm\n ' ',\n // Component is confidential\n ' ',\n // Component is private\n ' ',\n '
',\n '
',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n // Compute overlapping (2%)\n var pc = 100 / scope.block.siblings,\n left = scope.block.position * pc,\n right = 100 - (scope.block.position + 1) * pc;\n\n if (pc < 100) {\n if (left > 0)\n left -= 2;\n if (right > 0)\n right -= 2;\n }\n\n // Add some padding (2%)\n if (left === 0)\n left = 2;\n if (right === 0)\n right = 2;\n\n // Set position\n iElement.css('left', left + '%');\n iElement.css('right', right + '%');\n iElement.addClass('starts' + scope.block.start);\n iElement.addClass('lasts' + scope.block.length);\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayBlock', sgCalendarDayBlock);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayTable() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayTable', sgCalendarDayTable);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthDay - Build list of blocks for a specific day in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthDay() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthDay', sgCalendarMonthDay);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthEvent - An event block to be displayed in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthEvent() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n ' {{ block.starthour }} - ',\n ' {{ block.component.c_title }}',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthEvent', sgCalendarMonthEvent);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarTable() {\n return {\n restrict: 'E',\n scope: {\n calendars: '=sgCalendars',\n calendar: '@sgCalendar',\n blocksType: '@sgBlocksType',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarTable', sgCalendarTable);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n http://www.html5rocks.com/en/tutorials/dnd/basics/\n https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_and_drop\n\n \n */\n sgDraggableBlock.$inject = ['$mdGesture'];\n function sgDraggableBlock($mdGesture) {\n return {\n restrict: 'A',\n link: function (scope, element, attrs, controller) {\n angular.element(element).attr('draggable', 'true');\n\n // var id = angular.element(el).attr(\"id\");\n\n // if (!id) {\n // id = uuid.new()\n // angular.element(el).attr(\"id\", id);\n // }\n // console.log(id);\n\n // $mdGesture.register(element, 'drag');\n // element\n // .on('$md.dragstart', onDragStart)\n // .on('$md.drag', onDrag)\n // .on('$md.dragend', onDragEnd);\n\n element.on('dragstart', onDragStart);\n \n // el.bind(\"dragstart\", function (e) {\n // e.originalEvent.dataTransfer.setData('text', id);\n // console.log('drag');\n // $rootScope.$emit(\"LVL-DRAG-START\");\n // });\n\n // el.bind(\"dragend\", function (e) {\n // $rootScope.$emit(\"LVL-DRAG-END\");\n // });\n\n function onDragStart(ev) {\n console.debug('start ' + ev.srcElement.getBoundingClientRect().top);\n console.debug(ev.clientY);\n }\n\n function onDrag(ev) {\n console.debug('dragging');\n }\n\n function onDragEnd(ev) {\n console.debug('end');\n }\n }\n };\n }\n \n angular\n .module('SOGo.SchedulerUI')\n .directive('sgDraggableBlock', sgDraggableBlock);\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Scheduler/Scheduler.app.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDay.directive.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarGhost.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarScrollView.directive.js","Scheduler/sgCalendarTable.directive.js","Scheduler/sgCategoryStylesheet.directive.js","Scheduler/sgDraggableCalendarBlock.directive.js","Scheduler/sgDroppableBlock.directive.js"],"names":["angular","module","config","configure","run","runBlock","$inject","$stateProvider","$urlRouterProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","calendarView","$stateParams","view","day","stateEventsBlocks","when","now","Date","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","then","_","forEach","id","calendar","name","calendarName","$rootScope","$log","$location","$state","Preferences","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","length","ready","exec","settings","View","replace","CalendarController","$scope","vm","this","deregisterCalendarsList","changeView","updateView","data","$event","date","element","currentTarget","attr","CalendarListController","$timeout","$mdDialog","Dialog","component","componentType","selectedList","selectComponentType","unselectComponents","selectAll","toggleComponentSelection","confirmDeleteSelectedComponents","openEvent","openTask","newComponent","filter","filteredBy","sort","sortedBy","reload","cancelSearch","mode","search","type","SelectedList","$filter","updateComponentFromGhost","options","isUndefined","saveSelectedList","each","selected","preventDefault","stopPropagation","confirm","l","components","$deleteComponents","status","openComponent","task","viewable","capitalize","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateComponent","baseComponent","pid","pointerHandler","coordinates","delta","params","$ghost","isNew","currentEventCoordinates","isAllDay","duration","setDelta","finally","getDelta","originalEventCoordinates","days","dayNumber","start","isException","occurrenceId","$adjust","$emit","template","join","RecurrentComponentDialogController","updateThisOccurrence","hide","cancel","updateAllOccurrences","filterpopup","field","value","CalendarsController","$window","$mdToast","FileUploader","focus","Settings","User","activeUser","service","newCalendar","addWebCalendar","confirmDelete","editFolder","revertEditing","renameFolder","share","importCalendar","exportCalendar","showLinks","showProperties","subscribeToFolder","today","categories","map","defaults","SOGoCalendarCategories","asCSSIdentifier","color","SOGoCalendarCategoriesColors","$watch","union","o","pick","$subscriptions","$webcalendars","newList","oldList","ids","pluck","i","isEqual","debug","$get","$setActivation","ev","prompt","isEditable","isRemote","owner","UserLogin","$id","$add","inputType","$addWebCalendar","folder","isSubscription","$delete","alert","CalendarImportDialogController","scope","uploader","ApplicationBaseURL","autoUpload","queueLimit","filters","filterByExtension","fn","onSuccessItem","item","response","headers","msg","imported","simple","content","position","hideDelay","onErrorItem","close","isTextFile","indexOf","test","location","href","LinksDialogController","PropertiesDialogController","srcCalendar","catch","$omit","saveProperties","$save","init","editMode","$reset","$rename","$acl","$users","usersWithACL","users","calendarData","$subscribe","fragments","hash","split","path","ComponentController","AddressBook","Alarm","cardFilter","edit","editAllOccurrences","reply","replyAllOccurrences","deleteOccurrence","deleteAllOccurrences","toggleRawSource","$futureComponentData","$getComponent","organizer","$query","$filterAll","$cards","c","$reply","getAlarms","delegatedTo","$hasAlarm","alarm","remove","$$resource","post","ComponentRawSourceDialogController","ComponentEditorController","Card","oldStartDate","oldEndDate","oldDueDate","showRecurrenceEditor","$hasCustomRepeat","toggleRecurrenceEditor","showAttendeesEditor","isDefined","attendees","toggleAttendeesEditor","addAttendee","addAttachUrl","save","attendeesEditor","getDays","hours","getHours","addStartDate","addDueDate","updateStartTime","adjustStartTime","updateEndTime","adjustEndTime","updateDueTime","adjustDueTime","getTime","end","due","card","isString","isValidEmail","emails","searchText","form","$valid","daysUpTo","stringWithSeparator","push","toString","$addStartDate","$addDueDate","addMinutes","getMinutes","valueOf","updateFreeBusy","minutesTo","sgCalendarDay","restrict","dayString","sgCalendarDayController","directive","sgCalendarDayBlock","CalendarSettings","block","clickBlock","link","iElement","attrs","pc","left","right","siblings","css","addClass","sgCalendarDayTable","blocks","sgCalendarGhost","require","ctrls","domElement","calendarDayCtrl","scrollViewCtrl","deregisterDragStart","initGhost","deregisterDrag","updateGhost","deregisterDragEnd","hideGhost","forEachRight","classList","removeClass","showGhost","isRelative","originalDay","currentDay","wasOtherBlock","durationLeft","maxDuration","enableTransition","$view","EventDragDayLength","startHour","endHour","getStartTime","parseInt","quarterHeight","topOffset","getEndTime","quartersToHM","quarters","minutes","mins","Math","floor","sgCalendarMonthDay","sgCalendarMonthEvent","sgCalendarScrollView","$document","$q","$mdGesture","sgCalendarScrollViewController","scrollView","lastScroll","deregisterDragStop","onDragStart","onDragEnd","initView","off","updateFromPointerHandler","updateCoordinates","getQuarterHeight","scrollStep","maxX","getMaxColumns","on","time","hourCell","quartersOffset","SOGoDayStartTime","getElementById","scrollTop","offsetTop","hour0","hour23","height","getDayDimensions","viewLeft","width","leftOffset","nodes","domRect","tileHeader","getElementsByClassName","getBoundingClientRect","clientHeight","offset","top","max","dayDimensions","extend","x","y","dayHeight","dayWidth","daysOffset","pointerCoordinates","scrollY","minY","getContainerBasedCoordinates","sgCalendarTable","blocksType","sgCategoryStylesheet","ngModel","sgDraggableCalendarBlock","editable","initGrips","onDragDetect","onDrag","blockIndex","isFirstBlock","isLastBlock","dragGrip","leftGrip","rightGrip","topGrip","bottomGrip","findIndex","matchesProperty","c_isallday","parentNode","tagName","append","clone","dragMode","eventType","startDate","newData","target","className","SOGoEventDragPointerHandler","initFromEvent","one","dragStart","isHourCell","isMonthly","hasClass","substring","summary","b","dragging","prepareWithEventType","initFromBlock","starthour","updateFromEvent","pointer","dragHasStarted","SOGoCoordinates","prototype","SC_getDelta","otherCoordinates","getDistance","SC_getDistance","sqrt","SC_clone","SOGoEventDragEventCoordinates","setEventType","sum","_quartersToHM","originalCoordinates","currentCoordinates","originalViewCoordinates","currentViewCoordinates","getEventViewCoordinates","SEDPH_initFromBlock","SEDPH_initFromEvent","SEDPH_updateFromEvent","pageX","pageY","newEventCoordinates","setTimeFromQuarters","updateEventCoordinates","distance","SEDGC__updateCoordinates","newDuration","deltaQuarters","deltaDays","ceil","JSON","stringify","SEDPH_getCBC","container","clientWidth","SEDPH_prepareWithEventType","methods","multiday","getEventMultiDayViewCoordinates","multiday-allday","getEventMultiDayAllDayViewCoordinates","monthly","getEventMonthlyViewCoordinates","unknown","method","SEDPH_gEMultiDayViewC","pxCoordinates","EventDragHorizontalOffset","maxY","SEDPH_gEMultiDayADVC","SEDPH_gEMonthlyViewC","daysTopOffset","daysY","SEDPH_getDistance","SEDPH_setTimeFromQuarters","setHours","sgDroppableBlock","onDrop","deregister"],"mappings":"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","file":"Scheduler.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.services.js b/UI/WebServerResources/js/Scheduler.services.js index dc4cd7219..aec9440e5 100644 --- a/UI/WebServerResources/js/Scheduler.services.js +++ b/UI/WebServerResources/js/Scheduler.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function Calendar(futureCalendarData){if(this.init(futureCalendarData),this.name&&!this.id){var newCalendarData=Calendar.$$resource.create("createFolder",this.name);angular.extend(this,newCalendarData)}this.id&&(this.$acl=new Calendar.$$Acl("Calendar/"+this.id))}Calendar.$factory=["$q","$timeout","$log","sgSettings","Resource","Component","Acl",function($q,$timeout,$log,Settings,Resource,Component,Acl){return angular.extend(Calendar,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$Component:Component,$$Acl:Acl,activeUser:Settings.activeUser()}),Calendar}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Calendar",Calendar.$factory),Calendar.$add=function(calendar){var list,sibling,i;list=calendar.isWebCalendar?this.$webcalendars:calendar.isSubscription?this.$subscriptions:this.$calendars,sibling=_.find(list,function(o){return"personal"!=o.id&&1===o.name.localeCompare(calendar.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,calendar)},Calendar.$findAll=function(data){var _this=this;return data&&(this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(data,function(o,i){var calendar=new Calendar(o);calendar.isWebCalendar?_this.$webcalendars.push(calendar):calendar.isSubscription?_this.$subscriptions.push(calendar):_this.$calendars.push(calendar)})),_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},Calendar.$get=function(id){var calendar;return calendar=_.find(Calendar.$calendars,function(o){return o.id==id}),calendar||(calendar=_.find(Calendar.$subscriptions,function(o){return o.id==id})),calendar||(calendar=_.find(Calendar.$webcalendars,function(o){return o.id==id})),calendar},Calendar.$getIndex=function(id){var i;return i=_.indexOf(_.pluck(Calendar.$calendars,"id"),id),0>i&&(i=_.indexOf(_.pluck(Calendar.$subscriptions,"id"),id)),0>i&&(i=_.indexOf(_.pluck(Calendar.$webcalendars,"id"),id)),i},Calendar.$subscribe=function(uid,path){var _this=this;return Calendar.$$resource.userResource(uid).fetch(path,"subscribe").then(function(calendarData){var calendar=new Calendar(calendarData);return _.find(_this.$subscriptions,function(o){return o.id==calendarData.id})||Calendar.$add(calendar),calendar})},Calendar.$addWebCalendar=function(url){var _this=this,d=Calendar.$q.defer();return _.find(_this.$webcalendars,function(o){return o.urls.webCalendarURL==url})?d.reject():Calendar.$$resource.post(null,"addWebCalendar",{url:url}).then(function(calendarData){angular.extend(calendarData,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:Calendar.activeUser.login,urls:{webCalendarURL:url}});var calendar=new Calendar(calendarData);Calendar.$add(calendar),Calendar.$$resource.fetch(calendar.id,"reload").then(function(data){Calendar.$log.debug(JSON.stringify(data,void 0,2))}),d.resolve()},function(){d.reject()}),d.promise},Calendar.$deleteComponents=function(components){var calendars={},_this=this;_.forEach(components,function(component){angular.isDefined(calendars[component.c_folder])||(calendars[component.c_folder]=[]),calendars[component.c_folder].push(component.c_name)}),_.forEach(calendars,function(uids,c_folder){Calendar.$$resource.post(c_folder,"batchDelete",{uids:uids})}),_this.$Component.$events=_.difference(_this.$Component.$events,components),_this.$Component.$tasks=_.difference(_this.$Component.$tasks,components)},Calendar.prototype.init=function(data){angular.extend(this,data),this.isOwned=Calendar.activeUser.isSuperUser||this.owner==Calendar.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=Calendar.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(){var i,calendars,_this=this;return this.name==this.$shadowData.name?Calendar.$q.when():(calendars=this.isWebCalendar?Calendar.$webcalendars:this.isSubscription?Calendar.$subscriptions:Calendar.$calendars,i=_.indexOf(_.pluck(calendars,"id"),this.id),i>-1?this.$save().then(function(){calendars.splice(i,1),Calendar.$add(_this)}):Calendar.$q.reject())},Calendar.prototype.$delete=function(){var list,promise,_this=this;return this.isSubscription?(promise=Calendar.$$resource.fetch(this.id,"unsubscribe"),list=Calendar.$subscriptions):(promise=Calendar.$$resource.remove(this.id),list=this.isWebCalendar?Calendar.$webcalendars:Calendar.$calendars),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1)})},Calendar.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Calendar.prototype.$save=function(){var _this=this;return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),data},function(data){return Calendar.$log.error(JSON.stringify(data,void 0,2)),_this.$reset(),data})},Calendar.prototype.$setActivation=function(){return Calendar.$$resource.fetch(this.id,(this.active?"":"de")+"activateFolder")},Calendar.prototype.$getComponent=function(componentId,recurrenceId){return Calendar.$Component.$find(this.id,componentId,recurrenceId)},Calendar.prototype.$omit=function(){var calendar={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(calendar[key]=value)}),calendar}}(),function(){"use strict";function Component(futureComponentData){if("function"!=typeof futureComponentData.then){if(this.init(futureComponentData),this.pid&&!this.id){var newComponentData=Component.$$resource.newguid(this.pid);this.$unwrap(newComponentData),this.isNew=!0}}else this.$unwrap(futureComponentData)}Component.$factory=["$q","$timeout","$log","sgSettings","Preferences","Gravatar","Resource",function($q,$timeout,$log,Settings,Preferences,Gravatar,Resource){return angular.extend(Component,{$q:$q,$timeout:$timeout,$log:$log,$Preferences:Preferences,$gravatar:Gravatar,$$resource:new Resource(Settings.baseURL(),Settings.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null}),Preferences.ready().then(function(){Preferences.settings.Calendar.EventsFilterState&&(Component.$queryEvents.filterpopup=Preferences.settings.Calendar.EventsFilterState),Preferences.settings.Calendar.TasksFilterState&&(Component.$queryTasks.filterpopup=Preferences.settings.Calendar.TasksFilterState),Preferences.settings.Calendar.EventsSortingState&&(Component.$queryEvents.sort=Preferences.settings.Calendar.EventsSortingState[0],Component.$queryEvents.asc=parseInt(Preferences.settings.Calendar.EventsSortingState[1])),Preferences.settings.Calendar.TasksSortingState&&(Component.$queryTasks.sort=Preferences.settings.Calendar.TasksSortingState[0],Component.$queryTasks.asc=parseInt(Preferences.settings.Calendar.TasksSortingState[1])),Component.$queryTasks.show_completed=parseInt(Preferences.settings.ShowCompletedTasks),Component.$categories=Preferences.defaults.SOGoCalendarCategoriesColors,Preferences.defaults.SOGoTimeFormat&&(Component.timeFormat=Preferences.defaults.SOGoTimeFormat)}),Component}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Component",Component.$factory),Component.$selectedCount=function(){var count;return count=0,Component.$events&&(count=_.filter(Component.$events,function(event){return event.selected}).length),Component.$tasks&&(count=_.filter(Component.$tasks,function(task){return task.selected}).length),count},Component.$startRefreshTimeout=function(type){var _this=this;Component.$refreshTimeout&&Component.$timeout.cancel(Component.$refreshTimeout),Component.$Preferences.ready().then(function(){var refreshViewCheck=Component.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,Component.$filter,type);Component.$refreshTimeout=Component.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},Component.$filter=function(type,options){var _this=this,now=new Date,day=now.getDate(),month=now.getMonth()+1,year=now.getFullYear(),queryKey="$query"+type.capitalize(),params={day:""+year+(10>month?"0":"")+month+(10>day?"0":"")+day};return Component.$startRefreshTimeout(type),this.$Preferences.ready().then(function(){var futureComponentData,otherType,dirty=!1;return angular.extend(_this.$query,params),options&&_.each(_.keys(options),function(key){dirty|=_this.$query[key]&&options[key]!=Component.$query[key],"reload"==key&&options[key]?dirty=!0:angular.isDefined(_this.$query[key])?_this.$query[key]=options[key]:_this[queryKey][key]=options[key]}),futureComponentData=_this.$$resource.fetch(null,type+"list",angular.extend(_this[queryKey],_this.$query)),otherType="tasks"==type?"$events":"$tasks",dirty&&(delete Component[otherType],Component.$log.debug("force reload of "+otherType)),_this.$unwrapCollection(type,futureComponentData)})},Component.$find=function(calendarId,componentId,occurrenceId){var futureComponentData,path=[calendarId,componentId];return occurrenceId&&path.push(occurrenceId),futureComponentData=this.$$resource.fetch(path.join("/"),"view"),new Component(futureComponentData)},Component.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(_.keys(Component.$categories),function(category){return-1!=category.search(re)})},Component.saveSelectedList=function(componentType){return this.$$resource.post(null,"saveSelectedList",{list:componentType+"ListView"})},Component.$eventsBlocksForView=function(view,date){var viewAction,startDate,endDate;return"day"==view?(viewAction="dayView",startDate=endDate=date):"multicolumnday"==view?(viewAction="multicolumndayView",startDate=endDate=date):"week"==view?(viewAction="weekView",startDate=date.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.addDays(6)):"month"==view&&(viewAction="monthView",startDate=date,startDate.setDate(1),startDate=startDate.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.setMonth(endDate.getMonth()+1),endDate.addDays(-1),endDate=endDate.endOfWeek()),this.$eventsBlocks(viewAction,startDate,endDate)},Component.$eventsBlocks=function(view,startDate,endDate){var params,futureComponentData,i,dates=[],deferred=Component.$q.defer();return params={view:view.toLowerCase(),sd:startDate.getDayString(),ed:endDate.getDayString()},Component.$log.debug("eventsblocks "+JSON.stringify(params,void 0,2)),futureComponentData=this.$$resource.fetch(null,"eventsblocks",params),futureComponentData.then(function(views){var reduceComponent,associateComponent;reduceComponent=function(objects,eventData,i){var componentData=_.object(this.eventsFields,eventData),start=new Date(1e3*componentData.c_startdate);return componentData.hour=start.getHourString(),objects.push(new Component(componentData)),objects},associateComponent=function(block){block.component=this[block.nbr]},Component.$views=[],Component.$timeout(function(){_.forEach(views,function(data){var viewData,components=[],blocks={},allDayBlocks={};if(_.reduce(data.events,reduceComponent,components,data),_.forEach(_.flatten(data.blocks),associateComponent,components),_.each(_.flatten(data.allDayBlocks),associateComponent,components),0===dates.length)for(i=0;i1||this.repeat.days&&this.repeat.days.length>0||this.repeat.monthdays&&this.repeat.monthdays.length>0||this.repeat.months&&this.repeat.months.length>0);return b},Component.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly},Component.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly},Component.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP},Component.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP},Component.prototype.isReadOnly=function(){return this.isReadOnly&&!this.userHasRSVP},Component.prototype.enablePercentComplete=function(){return this.component="not-specified"!=this.status&&"cancelled"!=this.status},Component.prototype.coversFreeBusy=function(day,hour,quarter){var b=angular.isDefined(this.freebusy[day])&&angular.isDefined(this.freebusy[day][hour])&&1==this.freebusy[day][hour][quarter];return b},Component.prototype.updateFreeBusyCoverage=function(){var _this=this,freebusy={};if(this.start&&this.end){var roundedStart=new Date(this.start.getTime()),roundedEnd=new Date(this.end.getTime()),startQuarter=parseInt(roundedStart.getMinutes()/15+.5),endQuarter=parseInt(roundedEnd.getMinutes()/15+.5);return roundedStart.setMinutes(15*startQuarter),roundedEnd.setMinutes(15*endQuarter),_.each(roundedStart.daysUpTo(roundedEnd),function(date,index){var hourKey,currentDay=date.getDate(),dayKey=date.getDayString();if(dayKey==_this.start.getDayString())for(hourKey=date.getHours().toString(),freebusy[dayKey]={},freebusy[dayKey][hourKey]=[];startQuarter>0;)freebusy[dayKey][hourKey].push(0),startQuarter--;else date=date.beginOfDay(),freebusy[dayKey]={};for(;date.getTime()<_this.end.getTime()&&date.getDate()==currentDay;)hourKey=date.getHours().toString(),angular.isUndefined(freebusy[dayKey][hourKey])&&(freebusy[dayKey][hourKey]=[]),freebusy[dayKey][hourKey].push(1),date.addMinutes(15)}),freebusy}},Component.prototype.updateFreeBusy=function(attendee){var params,url,days;attendee.uid&&(params={sday:this.start.getDayString(),eday:this.end.getDayString()},url=["..","..",attendee.uid,"freebusy.ifb"],days=_.map(this.start.daysUpTo(this.end),function(day){return day.getDayString()}),angular.isUndefined(attendee.freebusy)&&(attendee.freebusy={}),Component.$$resource.fetch(url.join("/"),"ajaxRead",params).then(function(data){_.each(days,function(day){var hour;angular.isUndefined(attendee.freebusy[day])&&(attendee.freebusy[day]={}),angular.isUndefined(data[day])&&(data[day]={});for(var i=0;23>=i;i++)hour=i.toString(),data[day][hour]?attendee.freebusy[day][hour]=[data[day][hour][0],data[day][hour][15],data[day][hour][30],data[day][hour][45]]:attendee.freebusy[day][hour]=[0,0,0,0]})}))},Component.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+(this.destinationCalendar||this.c_folder)},Component.prototype.addAttendee=function(card){var attendee;card&&(attendee={name:card.c_cn,email:card.$preferredEmail(),role:"req-participant",status:"needs-action",uid:card.c_uid},_.find(this.attendees,function(o){return o.email==attendee.email})||(attendee.image=Component.$gravatar(attendee.email,32),this.attendees?this.attendees.push(attendee):this.attendees=[attendee],this.updateFreeBusy(attendee)))},Component.prototype.hasAttendee=function(card){var attendee=_.find(this.attendees,function(attendee){return _.find(card.emails,function(email){return email.value==attendee.email})});return angular.isDefined(attendee)},Component.prototype.deleteAttendee=function(attendee){var index=_.findIndex(this.attendees,function(currentAttendee){return currentAttendee.email==attendee.email});this.attendees.splice(index,1)},Component.prototype.canRemindAttendeesByEmail=function(){return"email"==this.alarm.action&&!this.isReadOnly&&this.attendees&&this.attendees.length>0},Component.prototype.addAttachUrl=function(attachUrl){if(angular.isUndefined(this.attachUrls))this.attachUrls=[{value:attachUrl}];else{for(var i=0;i-1&&this.attachUrls.length>index&&this.attachUrls.splice(index,1)},Component.prototype.$addDueDate=function(){this.due=new Date,this.due.setMinutes(15*Math.round(this.due.getMinutes()/15)),this.dueDate=this.due.toISOString()},Component.prototype.$deleteDueDate=function(){delete this.due,delete this.dueDate},Component.prototype.$addStartDate=function(){this.start=new Date,this.start.setMinutes(15*Math.round(this.start.getMinutes()/15))},Component.prototype.$deleteStartDate=function(){delete this.start,delete this.startDate},Component.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),this.init(this.$shadowData),this.$shadowData=this.$omit(!0)},Component.prototype.$reply=function(){var data,_this=this,path=[this.pid,this.id];return this.occurrenceId&&path.push(this.occurrenceId),data={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}},Component.$$resource.save(path.join("/"),data,{action:"rsvpAppointment"}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.$save=function(){var options,_this=this,path=[this.pid,this.id];return this.isNew&&(options={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&path.push(this.occurrenceId),Component.$$resource.save(path.join("/"),this.$omit(),options).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.remove=function(occurrenceOnly){var path=[this.pid,this.id];return occurrenceOnly&&this.occurrenceId&&path.push(this.occurrenceId),Component.$$resource.remove(path.join("/"))},Component.prototype.$unwrap=function(futureComponentData){var _this=this;this.$futureComponentData=futureComponentData,this.$futureComponentData.then(function(data){_this.init(data),_this.$shadowData=_this.$omit()},function(data){angular.extend(_this,data),_this.isError=!0,Component.$log.error(_this.error)})},Component.prototype.$omit=function(){function formatTime(date){var hours=date.getHours();10>hours&&(hours="0"+hours);var minutes=date.getMinutes();return 10>minutes&&(minutes="0"+minutes),hours+":"+minutes}function formatDate(date){var year=date.getYear();1e3>year&&(year+=1900);var month=""+(date.getMonth()+1);1==month.length&&(month="0"+month);var day=""+date.getDate();return 1==day.length&&(day="0"+day),year+"-"+month+"-"+day}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startDate=component.start?formatDate(component.start):"",component.startTime=component.start?formatTime(component.start):"",component.endDate=component.end?formatDate(component.end):"",component.endTime=component.end?formatTime(component.end):"",component.dueDate=component.due?formatDate(component.due):"",component.dueTime=component.due?formatTime(component.due):"",this.$hasCustomRepeat?"monthly"==this.repeat.frequency&&this.repeat.month.type&&"byday"==this.repeat.month.type||"yearly"==this.repeat.frequency&&this.repeat.year.byday?(delete component.repeat.monthdays,component.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]):this.repeat.month.type&&delete component.repeat.days:this.repeat.frequency&&(component.repeat={frequency:this.repeat.frequency}),this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?component.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?component.repeat.count=this.repeat.count:(delete component.repeat.until,delete component.repeat.count):delete component.repeat,this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(this.alarm.attendees=0,this.alarm.organizer=1):component.alarm={},component}}(); +(function(){"use strict";function Calendar(futureCalendarData){this.init(futureCalendarData);if(this.name&&!this.id){var newCalendarData=Calendar.$$resource.create("createFolder",this.name);this.$unwrap(newCalendarData)}if(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){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(),$view:null});return Calendar}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:24*4,EventDragHorizontalOffset:3}).factory("Calendar",Calendar.$factory);Calendar.$add=function(calendar){var list,sibling,i;if(calendar.isWebCalendar)list=this.$webcalendars;else if(calendar.isSubscription)list=this.$subscriptions;else list=this.$calendars;sibling=_.find(list,function(o){return o.id!="personal"&&o.name.localeCompare(calendar.name)===1});i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1;list.splice(i,0,calendar)};Calendar.$findAll=function(data){var _this=this;if(data){this.$calendars=[];this.$subscriptions=[];this.$webcalendars=[];angular.forEach(data,function(o,i){var calendar=new Calendar(o);if(calendar.isWebCalendar)_this.$webcalendars.push(calendar);else if(calendar.isSubscription)_this.$subscriptions.push(calendar);else _this.$calendars.push(calendar)})}return _.union(this.$calendars,this.$subscriptions,this.$webcalendars)};Calendar.$get=function(id){var calendar;calendar=_.find(Calendar.$calendars,function(o){return o.id==id});if(!calendar)calendar=_.find(Calendar.$subscriptions,function(o){return o.id==id});if(!calendar)calendar=_.find(Calendar.$webcalendars,function(o){return o.id==id});return calendar};Calendar.$getIndex=function(id){var i;i=_.indexOf(_.pluck(Calendar.$calendars,"id"),id);if(i<0)i=_.indexOf(_.pluck(Calendar.$subscriptions,"id"),id);if(i<0)i=_.indexOf(_.pluck(Calendar.$webcalendars,"id"),id);return i};Calendar.$subscribe=function(uid,path){var _this=this;return Calendar.$$resource.userResource(uid).fetch(path,"subscribe").then(function(calendarData){var calendar=new Calendar(calendarData);if(!_.find(_this.$subscriptions,function(o){return o.id==calendarData.id})){Calendar.$add(calendar)}return calendar})};Calendar.$addWebCalendar=function(url){var _this=this,d=Calendar.$q.defer();if(_.find(_this.$webcalendars,function(o){return o.urls.webCalendarURL==url})){d.reject()}else{Calendar.$$resource.post(null,"addWebCalendar",{url:url}).then(function(calendarData){angular.extend(calendarData,{isWebCalendar:true,isEditable:true,isRemote:false,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,undefined,2))});d.resolve()},function(){d.reject()})}return d.promise};Calendar.$deleteComponents=function(components){var calendars={},_this=this;_.forEach(components,function(component){if(!angular.isDefined(calendars[component.c_folder]))calendars[component.c_folder]=[];calendars[component.c_folder].push(component.c_name)});_.forEach(calendars,function(uids,c_folder){Calendar.$$resource.post(c_folder,"batchDelete",{uids:uids})});_this.$Component.$events=_.difference(_this.$Component.$events,components);_this.$Component.$tasks=_.difference(_this.$Component.$tasks,components)};Calendar.prototype.init=function(data){this.color=this.color||"#AAAAAA";angular.extend(this,data);this.isOwned=Calendar.activeUser.isSuperUser||this.owner==Calendar.activeUser.login;this.isSubscription=!this.isRemote&&this.owner!=Calendar.activeUser.login;if(angular.isUndefined(this.$shadowData)){this.$shadowData=this.$omit()}};Calendar.prototype.$id=function(){if(this.id){return Calendar.$q.when(this.id)}else{return this.$futureCalendarData.then(function(calendar){return calendar.id})}};Calendar.prototype.getClassName=function(base){if(angular.isUndefined(base))base="fg";return base+"-folder"+this.id};Calendar.prototype.$rename=function(){var _this=this,i,calendars;if(this.name==this.$shadowData.name){return Calendar.$q.when()}if(this.isWebCalendar)calendars=Calendar.$webcalendars;else if(this.isSubscription)calendars=Calendar.$subscriptions;else calendars=Calendar.$calendars;i=_.indexOf(_.pluck(calendars,"id"),this.id);if(i>-1){return this.$save().then(function(){calendars.splice(i,1);Calendar.$add(_this)})}else{return Calendar.$q.reject()}};Calendar.prototype.$delete=function(){var _this=this,list,promise;if(this.isSubscription){promise=Calendar.$$resource.fetch(this.id,"unsubscribe");list=Calendar.$subscriptions}else{promise=Calendar.$$resource.remove(this.id);if(this.isWebCalendar)list=Calendar.$webcalendars;else list=Calendar.$calendars}return promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1)})};Calendar.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){if(key!="constructor"&&key[0]!="$"){delete _this[key]}});angular.extend(this,this.$shadowData);this.$shadowData=this.$omit()};Calendar.prototype.$save=function(){var _this=this;return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){_this.$shadowData=_this.$omit();return data},function(data){Calendar.$log.error(JSON.stringify(data,undefined,2));_this.$reset();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.$unwrap=function(futureCalendarData){var _this=this;this.$futureCalendarData=futureCalendarData.then(function(data){return Calendar.$timeout(function(){_this.init(data);return _this})},function(data){_this.isError=true;if(angular.isObject(data)){Calendar.$timeout(function(){angular.extend(_this,data)})}})};Calendar.prototype.$omit=function(){var calendar={};angular.forEach(this,function(value,key){if(key!="constructor"&&key[0]!="$"){calendar[key]=value}});return calendar}})();(function(){"use strict";function Component(futureComponentData){if(typeof futureComponentData.then!=="function"){this.init(futureComponentData);if(this.pid&&!this.id){var newComponentData=Component.$$resource.newguid(this.pid);this.$unwrap(newComponentData);this.isNew=true}}else{this.$unwrap(futureComponentData)}}Component.$factory=["$q","$timeout","$log","sgSettings","Preferences","Gravatar","Resource",function($q,$timeout,$log,Settings,Preferences,Gravatar,Resource){angular.extend(Component,{$q:$q,$timeout:$timeout,$log:$log,$Preferences:Preferences,$gravatar:Gravatar,$$resource:new Resource(Settings.baseURL(),Settings.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null,$ghost:{}});Preferences.ready().then(function(){if(Preferences.settings.Calendar.EventsFilterState)Component.$queryEvents.filterpopup=Preferences.settings.Calendar.EventsFilterState;if(Preferences.settings.Calendar.TasksFilterState)Component.$queryTasks.filterpopup=Preferences.settings.Calendar.TasksFilterState;if(Preferences.settings.Calendar.EventsSortingState){Component.$queryEvents.sort=Preferences.settings.Calendar.EventsSortingState[0];Component.$queryEvents.asc=parseInt(Preferences.settings.Calendar.EventsSortingState[1])}if(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;if(Preferences.defaults.SOGoTimeFormat){Component.timeFormat=Preferences.defaults.SOGoTimeFormat}});return 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;count=0;if(Component.$events){count+=_.filter(Component.$events,function(event){return event.selected}).length}if(Component.$tasks){count+=_.filter(Component.$tasks,function(task){return task.selected}).length}return count};Component.$startRefreshTimeout=function(type){var _this=this;if(Component.$refreshTimeout)Component.$timeout.cancel(Component.$refreshTimeout);Component.$Preferences.ready().then(function(){var refreshViewCheck=Component.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&refreshViewCheck!="manually"){var f=angular.bind(_this,Component.$filter,type);Component.$refreshTimeout=Component.$timeout(f,refreshViewCheck.timeInterval()*1e3)}})};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+(month<10?"0":"")+month+(day<10?"0":"")+day};Component.$startRefreshTimeout(type);return this.$Preferences.ready().then(function(){var futureComponentData,dirty=false,otherType;angular.extend(_this.$query,params);if(options){_.each(_.keys(options),function(key){dirty|=_this.$query[key]&&options[key]!=Component.$query[key];if(key=="reload"&&options[key])dirty=true;else if(angular.isDefined(_this.$query[key]))_this.$query[key]=options[key];else _this[queryKey][key]=options[key]})}futureComponentData=_this.$$resource.fetch(null,type+"list",angular.extend(_this[queryKey],_this.$query));otherType=type=="tasks"?"$events":"$tasks";if(dirty){delete Component[otherType];Component.$log.debug("force reload of "+otherType)}return _this.$unwrapCollection(type,futureComponentData)})};Component.$find=function(calendarId,componentId,occurrenceId){var futureComponentData,path=[calendarId,componentId];if(occurrenceId)path.push(occurrenceId);futureComponentData=this.$$resource.fetch(path.join("/"),"view");return new Component(futureComponentData)};Component.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(_.keys(Component.$categories),function(category){return category.search(re)!=-1})};Component.saveSelectedList=function(componentType){return this.$$resource.post(null,"saveSelectedList",{list:componentType+"ListView"})};Component.$eventsBlocksForView=function(view,date){var viewAction,startDate,endDate,params;if(view=="day"){viewAction="dayView";startDate=endDate=date}else if(view=="multicolumnday"){viewAction="multicolumndayView";startDate=endDate=date}else if(view=="week"){viewAction="weekView";startDate=date.beginOfWeek();endDate=new Date;endDate.setTime(startDate.getTime());endDate.addDays(6)}else if(view=="month"){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()}return this.$eventsBlocks(viewAction,startDate,endDate)};Component.$eventsBlocks=function(view,startDate,endDate){var params,futureComponentData,i,j,dates=[],deferred=Component.$q.defer();params={view:view.toLowerCase(),sd:startDate.getDayString(),ed:endDate.getDayString()};Component.$log.debug("eventsblocks "+JSON.stringify(params,undefined,2));futureComponentData=this.$$resource.fetch(null,"eventsblocks",params);futureComponentData.then(function(views){var reduceComponent,associateComponent;reduceComponent=function(objects,eventData,i){var componentData=_.object(this.eventsFields,eventData),start=new Date(componentData.c_startdate*1e3);componentData.hour=start.getHourString();componentData.blocks=[];objects.push(new Component(componentData));return objects};associateComponent=function(block){this[block.nbr].blocks.push(block);block.component=this[block.nbr]};Component.$views=[];Component.$timeout(function(){_.forEach(views,function(data){var components=[],blocks={},allDayBlocks={},viewData;data.eventsFields.splice(_.indexOf(data.eventsFields,"c_folder"),1,"pid");data.eventsFields.splice(_.indexOf(data.eventsFields,"c_name"),1,"id");data.eventsFields.splice(_.indexOf(data.eventsFields,"c_recurrence_id"),1,"occurrenceId");data.eventsFields.splice(_.indexOf(data.eventsFields,"c_title"),1,"summary");_.reduce(data.events,reduceComponent,components,data);_.forEach(_.flatten(data.blocks),associateComponent,components);_.each(_.flatten(data.allDayBlocks),associateComponent,components);if(dates.length===0)for(i=0;i1||this.repeat.days&&this.repeat.days.length>0||this.repeat.monthdays&&this.repeat.monthdays.length>0||this.repeat.months&&this.repeat.months.length>0);return b};Component.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly};Component.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly};Component.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP};Component.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP};Component.prototype.isReadOnly=function(){return this.isReadOnly&&!this.userHasRSVP};Component.prototype.enablePercentComplete=function(){return this.type=="task"&&this.status!="not-specified"&&this.status!="cancelled"};Component.prototype.coversFreeBusy=function(day,hour,quarter){var b=angular.isDefined(this.freebusy[day])&&angular.isDefined(this.freebusy[day][hour])&&this.freebusy[day][hour][quarter]==1;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);roundedStart.setMinutes(15*startQuarter);roundedEnd.setMinutes(15*endQuarter);_.each(roundedStart.daysUpTo(roundedEnd),function(date,index){var currentDay=date.getDate(),dayKey=date.getDayString(),hourKey;if(dayKey==_this.start.getDayString()){hourKey=date.getHours().toString();freebusy[dayKey]={};freebusy[dayKey][hourKey]=[];while(startQuarter>0){freebusy[dayKey][hourKey].push(0);startQuarter--}}else{date=date.beginOfDay();freebusy[dayKey]={}}while(date.getTime()<_this.end.getTime()&&date.getDate()==currentDay){hourKey=date.getHours().toString();if(angular.isUndefined(freebusy[dayKey][hourKey]))freebusy[dayKey][hourKey]=[];freebusy[dayKey][hourKey].push(1);date.addMinutes(15)}});return freebusy}};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)})}};Component.prototype.setDelta=function(delta){this.delta=delta;this.end=new Date(this.start.getTime());this.end.setMinutes(Math.round(this.end.getMinutes()/15)*15);this.end.addMinutes(this.delta)};Component.prototype.updateFreeBusyAttendee=function(attendee){var params,url,days;if(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()});if(angular.isUndefined(attendee.freebusy))attendee.freebusy={};Component.$$resource.fetch(url.join("/"),"ajaxRead",params).then(function(data){_.each(days,function(day){var hour;if(angular.isUndefined(attendee.freebusy[day]))attendee.freebusy[day]={};if(angular.isUndefined(data[day]))data[day]={};for(var i=0;i<=23;i++){hour=i.toString();if(data[day][hour])attendee.freebusy[day][hour]=[data[day][hour]["0"],data[day][hour]["15"],data[day][hour]["30"],data[day][hour]["45"]];else attendee.freebusy[day][hour]=[0,0,0,0]}})})}};Component.prototype.getClassName=function(base){if(angular.isUndefined(base))base="fg";return base+"-folder"+(this.destinationCalendar||this.c_folder||this.pid)};Component.prototype.addAttendee=function(card){var attendee,url,params;if(card){attendee={name:card.c_cn,email:card.$preferredEmail(),role:"req-participant",status:"needs-action",uid:card.c_uid};if(!_.find(this.attendees,function(o){return o.email==attendee.email})){attendee.image=Component.$gravatar(attendee.email,32);if(this.attendees)this.attendees.push(attendee);else this.attendees=[attendee];this.updateFreeBusyAttendee(attendee)}}};Component.prototype.hasAttendee=function(card){var attendee=_.find(this.attendees,function(attendee){return _.find(card.emails,function(email){return email.value==attendee.email})});return angular.isDefined(attendee)};Component.prototype.deleteAttendee=function(attendee){var index=_.findIndex(this.attendees,function(currentAttendee){return currentAttendee.email==attendee.email});this.attendees.splice(index,1)};Component.prototype.canRemindAttendeesByEmail=function(){return this.alarm.action=="email"&&!this.isReadOnly&&this.attendees&&this.attendees.length>0};Component.prototype.addAttachUrl=function(attachUrl){if(angular.isUndefined(this.attachUrls)){this.attachUrls=[{value:attachUrl}]}else{for(var i=0;i-1&&this.attachUrls.length>index){this.attachUrls.splice(index,1)}};Component.prototype.$addDueDate=function(){this.due=new Date;this.due.setMinutes(Math.round(this.due.getMinutes()/15)*15);this.dueDate=this.due.toISOString()};Component.prototype.$deleteDueDate=function(){delete this.due;delete this.dueDate};Component.prototype.$addStartDate=function(){this.start=new Date;this.start.setMinutes(Math.round(this.start.getMinutes()/15)*15)};Component.prototype.$deleteStartDate=function(){delete this.start;delete this.startDate};Component.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){if(key!="constructor"&&key[0]!="$"){delete _this[key]}});this.init(this.$shadowData);this.$shadowData=this.$omit(true)};Component.prototype.$reply=function(){var _this=this,data,path=[this.pid,this.id];if(this.occurrenceId)path.push(this.occurrenceId);data={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}};return Component.$$resource.save(path.join("/"),data,{action:"rsvpAppointment"}).then(function(data){_this.$shadowData=_this.$omit(true);return data})};Component.prototype.$adjust=function(params){var path=[this.pid,this.id];if(_.every(_.values(params),function(v){return v===0}))return Component.$q.when();if(this.occurrenceId)path.push(this.occurrenceId);Component.$log.debug("adjust "+path.join("/")+" "+JSON.stringify(params));return Component.$$resource.save(path.join("/"),params,{action:"adjust"})};Component.prototype.$save=function(){var _this=this,options,path=[this.pid,this.id];if(this.isNew)options={action:"saveAs"+this.type.capitalize()};if(this.occurrenceId)path.push(this.occurrenceId);return Component.$$resource.save(path.join("/"),this.$omit(),options).then(function(data){_this.$shadowData=_this.$omit(true);return data})};Component.prototype.remove=function(occurrenceOnly){var _this=this,path=[this.pid,this.id];if(occurrenceOnly&&this.occurrenceId)path.push(this.occurrenceId);return Component.$$resource.remove(path.join("/"))};Component.prototype.$unwrap=function(futureComponentData){var _this=this;this.$futureComponentData=futureComponentData;this.$futureComponentData.then(function(data){_this.init(data);_this.$shadowData=_this.$omit()},function(data){angular.extend(_this,data);_this.isError=true;Component.$log.error(_this.error)})};Component.prototype.$omit=function(){var component={},date;angular.forEach(this,function(value,key){if(key!="constructor"&&key[0]!="$"&&key!="blocks"){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):"";if(this.$hasCustomRepeat){if(this.repeat.frequency=="monthly"&&this.repeat.month.type&&this.repeat.month.type=="byday"||this.repeat.frequency=="yearly"&&this.repeat.year.byday){delete component.repeat.monthdays;component.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]}else if(this.repeat.month.type){delete component.repeat.days}}else if(this.repeat.frequency){component.repeat={frequency:this.repeat.frequency}}if(this.repeat.frequency){if(this.repeat.end=="until"&&this.repeat.until)component.repeat.until=this.repeat.until.stringWithSeparator("-");else if(this.repeat.end=="count"&&this.repeat.count)component.repeat.count=this.repeat.count;else{delete component.repeat.until;delete component.repeat.count}}else{delete component.repeat}if(this.$hasAlarm){if(this.alarm.action&&this.alarm.action=="email"&&!(this.attendees&&this.attendees.length>0)){this.alarm.attendees=0;this.alarm.organizer=1}}else{component.alarm={}}function formatTime(date){var hours=date.getHours();if(hours<10)hours="0"+hours;var minutes=date.getMinutes();if(minutes<10)minutes="0"+minutes;return hours+":"+minutes}function formatDate(date){var year=date.getYear();if(year<1e3)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};Component.prototype.repeatDescription=function(){var localizedString=null;if(this.repeat)localizedString=l("repeat_"+this.repeat.frequency.toUpperCase());return localizedString};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)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+"]"}})(); //# 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 4ad1e40d1..287cf20eb 100644 --- a/UI/WebServerResources/js/Scheduler.services.js.map +++ b/UI/WebServerResources/js/Scheduler.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheduler.services.js","sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","angular","extend","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Component","Acl","activeUser","$Component","module","e","factory","$add","calendar","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","_","find","o","localeCompare","indexOf","pluck","splice","$findAll","data","_this","forEach","push","union","$get","$getIndex","$subscribe","uid","path","userResource","fetch","then","calendarData","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","owner","login","debug","JSON","stringify","undefined","resolve","promise","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","prototype","isOwned","isSuperUser","isUndefined","$shadowData","$omit","getClassName","base","$rename","when","$save","$delete","remove","$reset","value","key","save","error","$setActivation","active","$getComponent","componentId","recurrenceId","$find","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","task","$startRefreshTimeout","type","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$filter","timeInterval","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","otherType","dirty","each","keys","$unwrapCollection","calendarId","occurrenceId","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","viewAction","startDate","endDate","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","dates","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","block","nbr","$views","viewData","blocks","allDayBlocks","reduce","events","flatten","calendarName","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","status","classification","delta","substring","setMinutes","Math","round","getMinutes","end","addMinutes","dueDate","due","$isRecurrent","days","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","asDate","$hasCustomRepeat","hasCustomRepeat","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","destinationCalendar","organizer","email","$image","freebusy","updateFreeBusyCoverage","attendees","attendee","image","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginOfDay","sday","eday","map","addAttendee","card","c_cn","$preferredEmail","role","c_uid","hasAttendee","emails","deleteAttendee","findIndex","currentAttendee","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$reply","reply","delegatedTo","occurrenceOnly","$futureComponentData","isError","formatTime","hours","minutes","formatDate","getYear","copy","startTime","endTime","dueTime","stringWithSeparator"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Calendar\n * @constructor\n * @param {object} futureCalendarData - either an object literal or a promise\n */\n function Calendar(futureCalendarData) {\n // Data is immediately available\n this.init(futureCalendarData);\n if (this.name && !this.id) {\n // Create a new calendar on the server\n var newCalendarData = Calendar.$$resource.create('createFolder', this.name);\n angular.extend(this, newCalendarData);\n }\n if (this.id) {\n this.$acl = new Calendar.$$Acl('Calendar/' + this.id);\n }\n }\n\n /**\n * @memberof Calendar\n * @desc The factory we'll use to register with Angular\n * @returns the Calendar constructor\n */\n Calendar.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Component', 'Acl', function($q, $timeout, $log, Settings, Resource, Component, Acl) {\n angular.extend(Calendar, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Calendar', Settings.activeUser()),\n $Component: Component,\n $$Acl: Acl,\n activeUser: Settings.activeUser()\n });\n\n return Calendar; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Calendar in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Calendar', Calendar.$factory);\n\n /**\n * @memberof Calendar\n * @desc Add a new calendar to the static list of calendars\n * @param {Calendar} calendar - an Calendar object instance\n */\n Calendar.$add = function(calendar) {\n // Insert new calendar at proper index\n var list, sibling, i;\n\n if (calendar.isWebCalendar)\n list = this.$webcalendars;\n else if (calendar.isSubscription)\n list = this.$subscriptions;\n else\n list = this.$calendars;\n\n sibling = _.find(list, function(o) {\n return (o.id != 'personal' &&\n o.name.localeCompare(calendar.name) === 1);\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, calendar);\n };\n\n /**\n * @memberof Calendar\n * @desc Set or get the list of calendars. Will instanciate a new Calendar object for each item.\n * @param {object[]} [data] - the metadata of the calendars\n * @returns the list of calendars\n */\n Calendar.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$calendars = [];\n this.$subscriptions = [];\n this.$webcalendars = [];\n // Instanciate Calendar objects\n angular.forEach(data, function(o, i) {\n var calendar = new Calendar(o);\n if (calendar.isWebCalendar)\n _this.$webcalendars.push(calendar);\n else if (calendar.isSubscription)\n _this.$subscriptions.push(calendar);\n else\n _this.$calendars.push(calendar);\n });\n }\n return _.union(this.$calendars, this.$subscriptions, this.$webcalendars);\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$get = function(id) {\n var calendar;\n\n calendar = _.find(Calendar.$calendars, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$subscriptions, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$webcalendars, function(o) { return o.id == id; });\n\n return calendar;\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$getIndex = function(id) {\n var i;\n\n i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$subscriptions, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$webcalendars, 'id'), id);\n\n return i;\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to another user's calendar and add it to the list of calendars.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n Calendar.$subscribe = function(uid, path) {\n var _this = this;\n return Calendar.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(calendarData) {\n var calendar = new Calendar(calendarData);\n if (!_.find(_this.$subscriptions, function(o) {\n return o.id == calendarData.id;\n })) {\n Calendar.$add(calendar);\n }\n return calendar;\n });\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to a remote Web calendar\n * @param {string} url - URL of .ics file\n * @returns a promise of the HTTP query result\n */\n Calendar.$addWebCalendar = function(url) {\n var _this = this,\n d = Calendar.$q.defer();\n\n if (_.find(_this.$webcalendars, function(o) {\n return o.urls.webCalendarURL == url;\n })) {\n // Already subscribed\n d.reject();\n }\n else {\n Calendar.$$resource.post(null, 'addWebCalendar', { url: url }).then(function(calendarData) {\n angular.extend(calendarData, {\n isWebCalendar: true,\n isEditable: true,\n isRemote: false,\n owner: Calendar.activeUser.login,\n urls: { webCalendarURL: url }\n });\n var calendar = new Calendar(calendarData);\n Calendar.$add(calendar);\n Calendar.$$resource.fetch(calendar.id, 'reload').then(function(data) {\n // TODO: show a toast of the reload status\n Calendar.$log.debug(JSON.stringify(data, undefined, 2));\n });\n d.resolve();\n }, function() {\n d.reject();\n });\n }\n\n return d.promise;\n };\n\n /**\n * @function $deleteComponents\n * @memberof Calendar\n * @desc Delete multiple components from calendar.\n * @return a promise of the HTTP operation\n */\n Calendar.$deleteComponents = function(components) {\n\n // We create a c_folder -> event hash\n var calendars = {}, _this = this;\n\n _.forEach(components, function(component) {\n if (!angular.isDefined(calendars[component.c_folder]))\n calendars[component.c_folder] = [];\n\n calendars[component.c_folder].push(component.c_name);\n });\n\n _.forEach(calendars, function(uids, c_folder) {\n Calendar.$$resource.post(c_folder, 'batchDelete', {uids: uids});\n });\n\n // We slice both arrays - might be useful if in the future, we can delete\n // events and tasks at the same time.\n _this.$Component.$events = _.difference(_this.$Component.$events, components);\n _this.$Component.$tasks = _.difference(_this.$Component.$tasks, components);\n };\n\n /**\n * @function init\n * @memberof Calendar.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of calendar\n */\n Calendar.prototype.init = function(data) {\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = Calendar.activeUser.isSuperUser || this.owner == Calendar.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != Calendar.activeUser.login;\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getClassName\n * @memberof Calendar.prototype\n * @desc Return the calendar CSS class name based on its ID.\n * @returns a string representing the foreground CSS class name\n */\n Calendar.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + this.id;\n };\n\n /**\n * @function $rename\n * @memberof Calendar.prototype\n * @desc Rename the calendar and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$rename = function() {\n var _this = this,\n i,\n calendars;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Calendar.$q.when();\n }\n\n if (this.isWebCalendar)\n calendars = Calendar.$webcalendars;\n else if (this.isSubscription)\n calendars = Calendar.$subscriptions;\n else\n calendars = Calendar.$calendars;\n\n i = _.indexOf(_.pluck(calendars, 'id'), this.id);\n if (i > -1) {\n return this.$save().then(function() {\n calendars.splice(i, 1);\n Calendar.$add(_this);\n });\n }\n else {\n return Calendar.$q.reject();\n }\n };\n\n /**\n * @function $delete\n * @memberof Calendar.prototype\n * @desc Delete the calendar from the server and the static list of calendars.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$delete = function() {\n var _this = this,\n list,\n promise;\n\n if (this.isSubscription) {\n promise = Calendar.$$resource.fetch(this.id, 'unsubscribe');\n list = Calendar.$subscriptions;\n }\n else {\n promise = Calendar.$$resource.remove(this.id);\n if (this.isWebCalendar)\n list = Calendar.$webcalendars;\n else\n list = Calendar.$calendars;\n }\n\n return promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n });\n };\n\n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Calendar.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Calendar.prototype\n * @desc Save the calendar properties to the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$save = function() {\n var _this = this;\n\n return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n return data;\n }, function(data) {\n Calendar.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n return data;\n });\n };\n\n /**\n * @function $setActivation\n * @memberof Calendar.prototype\n * @desc Either activate or deactivate the calendar.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$setActivation = function() {\n return Calendar.$$resource.fetch(this.id, (this.active?'':'de') + 'activateFolder');\n };\n\n /**\n * @function $getComponent\n * @memberof Calendar.prototype\n * @desc Fetch a component attributes from the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$getComponent = function(componentId, recurrenceId) {\n return Calendar.$Component.$find(this.id, componentId, recurrenceId);\n };\n\n /**\n * @function $omit\n * @memberof Calendar.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Calendar instance\n */\n Calendar.prototype.$omit = function() {\n var calendar = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key[0] != '$') {\n calendar[key] = value;\n }\n });\n return calendar;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Component\n * @constructor\n * @param {object} futureComponentData - either an object literal or a promise\n */\n function Component(futureComponentData) {\n // Data is immediately available\n if (typeof futureComponentData.then !== 'function') {\n this.init(futureComponentData);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new component;\n // Get UID from the server.\n var newComponentData = Component.$$resource.newguid(this.pid);\n this.$unwrap(newComponentData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureComponentData);\n }\n }\n\n /**\n * @memberof Component\n * @desc The factory we'll use to register with Angular\n * @returns the Component constructor\n */\n Component.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Preferences', 'Gravatar', 'Resource', function($q, $timeout, $log, Settings, Preferences, Gravatar, Resource) {\n angular.extend(Component, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Preferences: Preferences,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.baseURL(), Settings.activeUser()),\n timeFormat: \"%H:%M\",\n // Filter parameters common to events and tasks\n $query: { value: '', search: 'title_Category_Location' },\n // Filter paramaters specific to events\n $queryEvents: { sort: 'start', asc: 1, filterpopup: 'view_next7' },\n // Filter parameters specific to tasks\n $queryTasks: { sort: 'status', asc: 1, filterpopup: 'view_incomplete' },\n $refreshTimeout: null\n });\n Preferences.ready().then(function() {\n // Initialize filter parameters from user's settings\n if (Preferences.settings.Calendar.EventsFilterState)\n Component.$queryEvents.filterpopup = Preferences.settings.Calendar.EventsFilterState;\n if (Preferences.settings.Calendar.TasksFilterState)\n Component.$queryTasks.filterpopup = Preferences.settings.Calendar.TasksFilterState;\n if (Preferences.settings.Calendar.EventsSortingState) {\n Component.$queryEvents.sort = Preferences.settings.Calendar.EventsSortingState[0];\n Component.$queryEvents.asc = parseInt(Preferences.settings.Calendar.EventsSortingState[1]);\n }\n if (Preferences.settings.Calendar.TasksSortingState) {\n Component.$queryTasks.sort = Preferences.settings.Calendar.TasksSortingState[0];\n Component.$queryTasks.asc = parseInt(Preferences.settings.Calendar.TasksSortingState[1]);\n }\n Component.$queryTasks.show_completed = parseInt(Preferences.settings.ShowCompletedTasks);\n // Initialize categories from user's defaults\n Component.$categories = Preferences.defaults.SOGoCalendarCategoriesColors;\n // Initialize time format from user's defaults\n if (Preferences.defaults.SOGoTimeFormat) {\n Component.timeFormat = Preferences.defaults.SOGoTimeFormat;\n }\n });\n\n return Component; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Component in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Component', Component.$factory);\n\n /**\n * @function $selectedCount\n * @memberof Component\n * @desc Return the number of events or tasks selected by the user.\n * @returns the number of selected events or tasks\n */\n Component.$selectedCount = function() {\n var count;\n\n count = 0;\n if (Component.$events) {\n count = (_.filter(Component.$events, function(event) { return event.selected; })).length;\n }\n if (Component.$tasks) {\n count = (_.filter(Component.$tasks, function(task) { return task.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof Component\n * @desc Starts the refresh timeout for the current selected component type, for all calendars\n */\n Component.$startRefreshTimeout = function(type) {\n var _this = this;\n\n if (Component.$refreshTimeout)\n Component.$timeout.cancel(Component.$refreshTimeout);\n\n Component.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = Component.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Component.$filter, type);\n Component.$refreshTimeout = Component.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $filter\n * @memberof Component\n * @desc Search for components matching some criterias\n * @param {string} type - either 'events' or 'tasks'\n * @param {object} [options] - additional options to the query\n * @returns a collection of Components instances\n */\n Component.$filter = function(type, options) {\n var _this = this,\n now = new Date(),\n day = now.getDate(),\n month = now.getMonth() + 1,\n year = now.getFullYear(),\n queryKey = '$query' + type.capitalize(),\n params = {\n day: '' + year + (month < 10?'0':'') + month + (day < 10?'0':'') + day,\n };\n\n Component.$startRefreshTimeout(type);\n\n return this.$Preferences.ready().then(function() {\n var futureComponentData,\n dirty = false,\n otherType;\n\n angular.extend(_this.$query, params);\n\n if (options) {\n _.each(_.keys(options), function(key) {\n // Query parameters common to events and tasks are compared\n dirty |= (_this.$query[key] && options[key] != Component.$query[key]);\n if (key == 'reload' && options[key])\n dirty = true;\n // Update either the common parameters or the type-specific parameters\n else if (angular.isDefined(_this.$query[key]))\n _this.$query[key] = options[key];\n else\n _this[queryKey][key] = options[key];\n });\n }\n\n // Perform query with both common and type-specific parameters\n futureComponentData = _this.$$resource.fetch(null, type + 'list',\n angular.extend(_this[queryKey], _this.$query));\n\n // Invalidate cached results of other type if $query has changed\n otherType = (type == 'tasks')? '$events' : '$tasks';\n if (dirty) {\n delete Component[otherType];\n Component.$log.debug('force reload of ' + otherType);\n }\n\n return _this.$unwrapCollection(type, futureComponentData);\n });\n };\n\n /**\n * @function $find\n * @desc Fetch a component from a specific calendar.\n * @param {string} calendarId - the calendar ID\n * @param {string} componentId - the component ID\n * @param {string} [occurrenceId] - the component ID\n * @see {@link Calendar.$getComponent}\n */\n Component.$find = function(calendarId, componentId, occurrenceId) {\n var futureComponentData, path = [calendarId, componentId];\n\n if (occurrenceId)\n path.push(occurrenceId);\n\n futureComponentData = this.$$resource.fetch(path.join('/'), 'view');\n\n return new Component(futureComponentData);\n };\n\n /**\n * @function filterCategories\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Component.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(_.keys(Component.$categories), function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @function saveSelectedList\n * @desc Save to the user's settings the currently selected list.\n * @param {string} componentType - either \"events\" or \"tasks\"\n * @returns a promise of the HTTP operation\n */\n Component.saveSelectedList = function(componentType) {\n return this.$$resource.post(null, 'saveSelectedList', { list: componentType + 'ListView' });\n };\n\n /**\n * @function $eventsBlocksForView\n * @desc Events blocks for a specific week\n * @param {string} view - Either 'day' or 'week'\n * @param {Date} type - Date of any day of the desired period\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocksForView = function(view, date) {\n var viewAction, startDate, endDate, params;\n\n if (view == 'day') {\n viewAction = 'dayView';\n startDate = endDate = date;\n }\n else if (view == 'multicolumnday') {\n viewAction = 'multicolumndayView';\n startDate = endDate = date;\n }\n else if (view == 'week') {\n viewAction = 'weekView';\n startDate = date.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.addDays(6);\n }\n else if (view == 'month') {\n viewAction = 'monthView';\n startDate = date;\n startDate.setDate(1);\n startDate = startDate.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.setMonth(endDate.getMonth() + 1);\n endDate.addDays(-1);\n endDate = endDate.endOfWeek();\n }\n return this.$eventsBlocks(viewAction, startDate, endDate);\n };\n\n /**\n * @function $eventsBlocks\n * @desc Events blocks for a specific view and period\n * @param {string} view - Either 'day', 'multicolumnday', 'week' or 'month'\n * @param {Date} startDate - period's start date\n * @param {Date} endDate - period's end date\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocks = function(view, startDate, endDate) {\n var params, futureComponentData, i, dates = [],\n deferred = Component.$q.defer();\n\n params = { view: view.toLowerCase(), sd: startDate.getDayString(), ed: endDate.getDayString() };\n Component.$log.debug('eventsblocks ' + JSON.stringify(params, undefined, 2));\n futureComponentData = this.$$resource.fetch(null, 'eventsblocks', params);\n futureComponentData.then(function(views) {\n var reduceComponent, associateComponent;\n\n reduceComponent = function(objects, eventData, i) {\n var componentData = _.object(this.eventsFields, eventData),\n start = new Date(componentData.c_startdate * 1000);\n componentData.hour = start.getHourString();\n objects.push(new Component(componentData));\n return objects;\n };\n\n associateComponent = function(block) {\n block.component = this[block.nbr];\n };\n\n Component.$views = [];\n Component.$timeout(function() {\n _.forEach(views, function(data) {\n var components = [], blocks = {}, allDayBlocks = {}, viewData;\n\n // Instantiate Component objects\n _.reduce(data.events, reduceComponent, components, data);\n\n // Associate Component objects to blocks positions\n _.forEach(_.flatten(data.blocks), associateComponent, components);\n\n // Associate Component objects to all-day blocks positions\n _.each(_.flatten(data.allDayBlocks), associateComponent, components);\n\n // Build array of dates\n if (dates.length === 0)\n for (i = 0; i < data.blocks.length; i++) {\n dates.push(startDate.getDayString());\n startDate.addDays(1);\n }\n\n // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[dates[i]] = data.blocks[i];\n }\n\n // Convert array of all-day blocks to object with days as keys\n for (i = 0; i < data.allDayBlocks.length; i++) {\n allDayBlocks[dates[i]] = data.allDayBlocks[i];\n }\n\n Component.$log.debug('blocks ready (' + _.flatten(data.blocks).length + ')');\n Component.$log.debug('all day blocks ready (' + _.flatten(data.allDayBlocks).length + ')');\n\n // Save the blocks to the object model\n viewData = { blocks: blocks, allDayBlocks: allDayBlocks };\n if (data.id && data.calendarName) {\n // The multicolumnday view also includes calendar information\n viewData.id = data.id;\n viewData.calendarName = data.calendarName;\n }\n Component.$views.push(viewData);\n });\n\n deferred.resolve(Component.$views);\n });\n }, deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapCollection\n * @desc Unwrap a promise and instanciate new Component objects using received data.\n * @param {string} type - either 'events' or 'tasks'\n * @param {promise} futureComponentData - a promise of the components' metadata\n * @returns a promise of the HTTP operation\n */\n Component.$unwrapCollection = function(type, futureComponentData) {\n var _this = this,\n components = [];\n\n return futureComponentData.then(function(data) {\n return Component.$timeout(function() {\n var fields = _.invoke(data.fields, 'toLowerCase');\n\n // Instanciate Component objects\n _.reduce(data[type], function(components, componentData, i) {\n var data = _.object(fields, componentData);\n components.push(new Component(data));\n return components;\n }, components);\n\n Component.$log.debug('list of ' + type + ' ready (' + components.length + ')');\n\n // Save the list of components to the object model\n Component['$' + type] = components;\n\n return components;\n });\n });\n };\n\n /**\n * @function init\n * @memberof Component.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of component\n */\n Component.prototype.init = function(data) {\n var _this = this;\n\n this.categories = [];\n this.repeat = {};\n this.alarm = { action: 'display', quantity: 5, unit: 'MINUTES', reference: 'BEFORE', relation: 'START' };\n this.status = 'not-specified';\n angular.extend(this, data);\n\n Component.$Preferences.ready().then(function() {\n var type = (_this.type == 'appointment')? 'Events' : 'Tasks';\n\n // Set default values from user's defaults\n _this.classification = _this.classification ||\n Component.$Preferences.defaults['SOGoCalendar' + type + 'DefaultClassification'].toLowerCase();\n });\n\n this.delta = 60;\n\n if (this.startDate)\n this.start = new Date(this.startDate.substring(0,10) + ' ' + this.startDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.start = new Date();\n this.start.setMinutes(Math.round(this.start.getMinutes()/15)*15);\n }\n\n if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.end = new Date();\n this.end.setMinutes(Math.round(this.end.getMinutes()/15)*15);\n this.end.addMinutes(this.delta);\n }\n\n if (this.dueDate)\n this.due = new Date(this.dueDate.substring(0,10) + ' ' + this.dueDate.substring(11,16));\n\n // Parse recurrence rule definition and initialize default values\n this.$isRecurrent = angular.isDefined(data.repeat);\n if (this.repeat.days) {\n var byDayMask = _.find(this.repeat.days, function(o) {\n return angular.isDefined(o.occurrence);\n });\n if (byDayMask)\n if (this.repeat.frequency == 'yearly')\n this.repeat.year = { byday: true };\n this.repeat.month = {\n type: 'byday',\n occurrence: byDayMask.occurrence.toString(),\n day: byDayMask.day\n };\n }\n else {\n this.repeat.days = [];\n }\n if (angular.isUndefined(this.repeat.frequency))\n this.repeat.frequency = 'never';\n if (angular.isUndefined(this.repeat.interval))\n this.repeat.interval = 1;\n if (angular.isUndefined(this.repeat.month))\n this.repeat.month = { occurrence: '1', day: 'SU', type: 'bymonthday' };\n if (angular.isUndefined(this.repeat.monthdays))\n // TODO: initialize this.repeat.monthdays with month day of start date\n this.repeat.monthdays = [];\n if (angular.isUndefined(this.repeat.months))\n // TODO: initialize this.repeat.months with month of start date\n this.repeat.months = [];\n if (angular.isUndefined(this.repeat.year))\n this.repeat.year = {};\n if (this.repeat.count)\n this.repeat.end = 'count';\n else if (this.repeat.until) {\n this.repeat.end = 'until';\n this.repeat.until = this.repeat.until.substring(0,10).asDate();\n }\n else\n this.repeat.end = 'never';\n this.$hasCustomRepeat = this.hasCustomRepeat();\n\n if (this.isNew) {\n // Set default alarm\n Component.$Preferences.ready().then(function() {\n var units = { M: 'MINUTES', H: 'HOURS', D: 'DAYS', W: 'WEEKS' };\n var match = /-PT?([0-9]+)([MHDW])/.exec(Component.$Preferences.defaults.SOGoCalendarDefaultReminder);\n if (match) {\n _this.$hasAlarm = true;\n _this.alarm.quantity = parseInt(match[1]);\n _this.alarm.unit = units[match[2]];\n }\n });\n }\n else {\n this.$hasAlarm = angular.isDefined(data.alarm);\n }\n\n // Allow the component to be moved to a different calendar\n this.destinationCalendar = this.pid;\n\n if (this.organizer && this.organizer.email) {\n this.organizer.$image = Component.$gravatar(this.organizer.email, 32);\n }\n\n // Load freebusy of attendees\n this.freebusy = this.updateFreeBusyCoverage();\n\n if (this.attendees) {\n _.each(this.attendees, function(attendee) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n _this.updateFreeBusy(attendee);\n });\n }\n\n this.selected = false;\n };\n\n /**\n * @function hasCustomRepeat\n * @memberof Component.prototype\n * @desc Check if the component has a custom recurrence rule.\n * @returns true if the recurrence rule requires the full recurrence editor\n */\n Component.prototype.hasCustomRepeat = function() {\n var b = angular.isDefined(this.repeat) &&\n (this.repeat.interval > 1 ||\n this.repeat.days && this.repeat.days.length > 0 ||\n this.repeat.monthdays && this.repeat.monthdays.length > 0 ||\n this.repeat.months && this.repeat.months.length > 0);\n return b;\n };\n\n /**\n * @function isEditable\n * @memberof Component.prototype\n * @desc Check if the component is editable and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditable = function() {\n return (!this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isEditableOccurrence\n * @memberof Component.prototype\n * @desc Check if the component is editable and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditableOccurrence = function() {\n return (this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isInvitation\n * @memberof Component.prototype\n * @desc Check if the component an invitation and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitation = function() {\n return (!this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isInvitationOccurrence\n * @memberof Component.prototype\n * @desc Check if the component an invitation and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitationOccurrence = function() {\n return (this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isReadOnly\n * @memberof Component.prototype\n * @desc Check if the component is not editable and not an invitation\n * @returns true or false\n */\n Component.prototype.isReadOnly = function() {\n return (this.isReadOnly && !this.userHasRSVP);\n };\n\n /**\n * @function enablePercentComplete\n * @memberof Component.prototype\n * @desc Check if the percent completion should be enabled with respect to the\n * component's type and status.\n * @returns true if the percent completion should be displayed\n */\n Component.prototype.enablePercentComplete = function() {\n return (this.component = 'vtodo' &&\n this.status != 'not-specified' &&\n this.status != 'cancelled');\n };\n\n /**\n * @function coversFreeBusy\n * @memberof Component.prototype\n * @desc Check if a specific quarter matches the component's period\n * @returns true if the quarter covers the component's period\n */\n Component.prototype.coversFreeBusy = function(day, hour, quarter) {\n var b = (angular.isDefined(this.freebusy[day]) &&\n angular.isDefined(this.freebusy[day][hour]) &&\n this.freebusy[day][hour][quarter] == 1);\n return b;\n };\n\n /**\n * @function updateFreeBusyCoverage\n * @memberof Component.prototype\n * @desc Build a 15-minute-based representation of the component's period.\n * @returns an object literal hashed by days and hours and arrays of four 1's and 0's\n */\n Component.prototype.updateFreeBusyCoverage = function() {\n var _this = this, freebusy = {};\n\n if (this.start && this.end) {\n var roundedStart = new Date(this.start.getTime()),\n roundedEnd = new Date(this.end.getTime()),\n startQuarter = parseInt(roundedStart.getMinutes()/15 + 0.5),\n endQuarter = parseInt(roundedEnd.getMinutes()/15 + 0.5);\n roundedStart.setMinutes(15*startQuarter);\n roundedEnd.setMinutes(15*endQuarter);\n\n _.each(roundedStart.daysUpTo(roundedEnd), function(date, index) {\n var currentDay = date.getDate(),\n dayKey = date.getDayString(),\n hourKey;\n if (dayKey == _this.start.getDayString()) {\n hourKey = date.getHours().toString();\n freebusy[dayKey] = {};\n freebusy[dayKey][hourKey] = [];\n while (startQuarter > 0) {\n freebusy[dayKey][hourKey].push(0);\n startQuarter--;\n }\n }\n else {\n date = date.beginOfDay();\n freebusy[dayKey] = {};\n }\n while (date.getTime() < _this.end.getTime() &&\n date.getDate() == currentDay) {\n hourKey = date.getHours().toString();\n if (angular.isUndefined(freebusy[dayKey][hourKey]))\n freebusy[dayKey][hourKey] = [];\n freebusy[dayKey][hourKey].push(1);\n date.addMinutes(15);\n }\n });\n return freebusy;\n }\n };\n\n /**\n * @function updateFreeBusy\n * @memberof Component.prototype\n * @desc Update the freebusy information for the component's period for a specific attendee.\n * @param {Object} card - an Card object instance of the attendee\n */\n Component.prototype.updateFreeBusy = function(attendee) {\n var params, url, days;\n if (attendee.uid) {\n params =\n {\n sday: this.start.getDayString(),\n eday: this.end.getDayString()\n };\n url = ['..', '..', attendee.uid, 'freebusy.ifb'];\n days = _.map(this.start.daysUpTo(this.end), function(day) { return day.getDayString(); });\n\n if (angular.isUndefined(attendee.freebusy))\n attendee.freebusy = {};\n\n // Fetch FreeBusy information\n Component.$$resource.fetch(url.join('/'), 'ajaxRead', params).then(function(data) {\n _.each(days, function(day) {\n var hour;\n\n if (angular.isUndefined(attendee.freebusy[day]))\n attendee.freebusy[day] = {};\n\n if (angular.isUndefined(data[day]))\n data[day] = {};\n\n for (var i = 0; i <= 23; i++) {\n hour = i.toString();\n if (data[day][hour])\n attendee.freebusy[day][hour] = [\n data[day][hour][\"0\"],\n data[day][hour][\"15\"],\n data[day][hour][\"30\"],\n data[day][hour][\"45\"]\n ];\n else\n attendee.freebusy[day][hour] = [0, 0, 0, 0];\n }\n });\n });\n }\n };\n\n /**\n * @function getClassName\n * @memberof Component.prototype\n * @desc Return the component CSS class name based on its container (calendar) ID.\n * @param {string} [base] - the prefix to add to the class name (defaults to \"fg\")\n * @returns a string representing the foreground CSS class name\n */\n Component.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + (this.destinationCalendar || this.c_folder);\n };\n\n /**\n * @function addAttendee\n * @memberof Component.prototype\n * @desc Add an attendee and fetch his freebusy info.\n * @param {Object} card - an Card object instance to be added to the attendees list\n */\n Component.prototype.addAttendee = function(card) {\n var attendee, url, params;\n if (card) {\n attendee = {\n name: card.c_cn,\n email: card.$preferredEmail(),\n role: 'req-participant',\n status: 'needs-action',\n uid: card.c_uid\n };\n if (!_.find(this.attendees, function(o) {\n return o.email == attendee.email;\n })) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n if (this.attendees)\n this.attendees.push(attendee);\n else\n this.attendees = [attendee];\n this.updateFreeBusy(attendee);\n }\n }\n };\n\n /**\n * @function hasAttendee\n * @memberof Component.prototype\n * @desc Verify if one of the email addresses of a Card instance matches an attendee.\n * @param {Object} card - an Card object instance\n * @returns true if the Card matches an attendee\n */\n Component.prototype.hasAttendee = function(card) {\n var attendee = _.find(this.attendees, function(attendee) {\n return _.find(card.emails, function(email) {\n return email.value == attendee.email;\n });\n });\n return angular.isDefined(attendee);\n };\n\n /**\n * @function deleteAttendee\n * @memberof Component.prototype\n * @desc Remove an attendee from the component\n * @param {Object} attendee - an object literal defining an attendee\n */\n Component.prototype.deleteAttendee = function(attendee) {\n var index = _.findIndex(this.attendees, function(currentAttendee) {\n return currentAttendee.email == attendee.email;\n });\n this.attendees.splice(index, 1);\n };\n\n /**\n * @function canRemindAttendeesByEmail\n * @memberof Component.prototype\n * @desc Verify if the component's reminder must be send by email and if it has at least one attendee.\n * @returns true if attendees can receive a reminder by email\n */\n Component.prototype.canRemindAttendeesByEmail = function() {\n return this.alarm.action == 'email' &&\n !this.isReadOnly &&\n this.attendees && this.attendees.length > 0;\n };\n\n /**\n * @function addAttachUrl\n * @memberof Component.prototype\n * @desc Add a new attach URL if not already defined\n * @param {string} attachUrl - the URL\n * @returns the number of values in the list of attach URLs\n */\n Component.prototype.addAttachUrl = function(attachUrl) {\n if (angular.isUndefined(this.attachUrls)) {\n this.attachUrls = [{value: attachUrl}];\n }\n else {\n for (var i = 0; i < this.attachUrls.length; i++) {\n if (this.attachUrls[i].value == attachUrl) {\n break;\n }\n }\n if (i == this.attachUrls.length)\n this.attachUrls.push({value: attachUrl});\n }\n return this.attachUrls.length - 1;\n };\n\n /**\n * @function deleteAttachUrl\n * @memberof Component.prototype\n * @desc Remove an attach URL\n * @param {number} index - the URL index in the list of attach URLs\n */\n Component.prototype.deleteAttachUrl = function(index) {\n if (index > -1 && this.attachUrls.length > index) {\n this.attachUrls.splice(index, 1);\n }\n };\n\n /**\n * @function $addDueDate\n * @memberof Component.prototype\n * @desc Add a due date\n */\n Component.prototype.$addDueDate = function() {\n this.due = new Date();\n this.due.setMinutes(Math.round(this.due.getMinutes()/15)*15);\n this.dueDate = this.due.toISOString();\n };\n\n /**\n * @function $deleteDueDate\n * @memberof Component.prototype\n * @desc Delete a due date\n */\n Component.prototype.$deleteDueDate = function() {\n delete this.due;\n delete this.dueDate;\n };\n\n /**\n * @function $addStartDate\n * @memberof Component.prototype\n * @desc Add a start date\n */\n Component.prototype.$addStartDate = function() {\n this.start = new Date();\n this.start.setMinutes(Math.round(this.start.getMinutes()/15)*15);\n };\n\n /**\n * @function $deleteStartDate\n * @memberof Component.prototype\n * @desc Delete a start date\n */\n Component.prototype.$deleteStartDate = function() {\n delete this.start;\n delete this.startDate;\n };\n\n /**\n * @function $reset\n * @memberof Component.prototype\n * @desc Reset the original state the component's data.\n */\n Component.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n this.init(this.$shadowData);\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function reply\n * @memberof Component.prototype\n * @desc Reply to an invitation.\n * @returns a promise of the HTTP operation\n */\n Component.prototype.$reply = function() {\n var _this = this, data, path = [this.pid, this.id];\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n data = {\n reply: this.reply,\n delegatedTo: this.delegatedTo,\n alarm: this.$hasAlarm? this.alarm : {}\n };\n\n return Component.$$resource.save(path.join('/'), data, { action: 'rsvpAppointment' })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $save\n * @memberof Component.prototype\n * @desc Save the component to the server.\n */\n Component.prototype.$save = function() {\n var _this = this, options, path = [this.pid, this.id];\n\n if (this.isNew)\n options = { action: 'saveAs' + this.type.capitalize() };\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n return Component.$$resource.save(path.join('/'), this.$omit(), options)\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $delete\n * @memberof Component.prototype\n * @desc Delete the component from the server.\n * @param {boolean} occurrenceOnly - delete this occurrence only\n */\n Component.prototype.remove = function(occurrenceOnly) {\n var _this = this, path = [this.pid, this.id];\n\n if (occurrenceOnly && this.occurrenceId)\n path.push(this.occurrenceId);\n\n return Component.$$resource.remove(path.join('/'));\n };\n\n /**\n * @function $unwrap\n * @memberof Component.prototype\n * @desc Unwrap a promise.\n * @param {promise} futureComponentData - a promise of some of the Component's data\n */\n Component.prototype.$unwrap = function(futureComponentData) {\n var _this = this;\n\n // Expose the promise\n this.$futureComponentData = futureComponentData;\n\n // Resolve the promise\n this.$futureComponentData.then(function(data) {\n _this.init(data);\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Component.$log.error(_this.error);\n });\n };\n\n /**\n * @function $omit\n * @memberof Component.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Component instance\n */\n Component.prototype.$omit = function() {\n var component = {}, date;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n component[key] = angular.copy(value);\n }\n });\n\n // Format dates and times\n component.startDate = component.start ? formatDate(component.start) : '';\n component.startTime = component.start ? formatTime(component.start) : '';\n component.endDate = component.end ? formatDate(component.end) : '';\n component.endTime = component.end ? formatTime(component.end) : '';\n component.dueDate = component.due ? formatDate(component.due) : '';\n component.dueTime = component.due ? formatTime(component.due) : '';\n\n // Update recurrence definition depending on selections\n if (this.$hasCustomRepeat) {\n if (this.repeat.frequency == 'monthly' && this.repeat.month.type && this.repeat.month.type == 'byday' ||\n this.repeat.frequency == 'yearly' && this.repeat.year.byday) {\n // BYDAY mask for a monthly or yearly recurrence\n delete component.repeat.monthdays;\n component.repeat.days = [{ day: this.repeat.month.day, occurrence: this.repeat.month.occurrence.toString() }];\n }\n else if (this.repeat.month.type) {\n // montly recurrence by month days or yearly by month\n delete component.repeat.days;\n }\n }\n else if (this.repeat.frequency) {\n component.repeat = { frequency: this.repeat.frequency };\n }\n if (this.repeat.frequency) {\n if (this.repeat.end == 'until' && this.repeat.until)\n component.repeat.until = this.repeat.until.stringWithSeparator('-');\n else if (this.repeat.end == 'count' && this.repeat.count)\n component.repeat.count = this.repeat.count;\n else {\n delete component.repeat.until;\n delete component.repeat.count;\n }\n }\n else {\n delete component.repeat;\n }\n\n if (this.$hasAlarm) {\n if (this.alarm.action && this.alarm.action == 'email' &&\n !(this.attendees && this.attendees.length > 0)) {\n // No attendees; email reminder must be sent to organizer only\n this.alarm.attendees = 0;\n this.alarm.organizer = 1;\n }\n }\n else {\n component.alarm = {};\n }\n\n function formatTime(date) {\n var hours = date.getHours();\n if (hours < 10) hours = '0' + hours;\n\n var minutes = date.getMinutes();\n if (minutes < 10) minutes = '0' + minutes;\n return hours + ':' + minutes;\n }\n\n function formatDate(date) {\n var year = date.getYear();\n if (year < 1000) year += 1900;\n\n var month = '' + (date.getMonth() + 1);\n if (month.length == 1)\n month = '0' + month;\n\n var day = '' + date.getDate();\n if (day.length == 1)\n day = '0' + day;\n\n return year + '-' + month + '-' + day;\n }\n\n return component;\n };\n\n})();\n"]} \ No newline at end of file +{"version":3,"sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","$unwrap","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Component","Acl","angular","extend","activeUser","$Component","$view","module","e","value","EventDragDayLength","EventDragHorizontalOffset","factory","$add","calendar","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","_","find","o","localeCompare","indexOf","pluck","splice","$findAll","data","_this","forEach","push","union","$get","$getIndex","$subscribe","uid","path","userResource","fetch","then","calendarData","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","owner","login","debug","JSON","stringify","undefined","resolve","promise","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","prototype","color","isOwned","isSuperUser","isUndefined","$shadowData","$omit","$id","when","$futureCalendarData","getClassName","base","$rename","$save","$delete","remove","$reset","key","save","error","$setActivation","active","$getComponent","componentId","recurrenceId","$find","isError","isObject","futureComponentData","pid","newComponentData","newguid","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","$ghost","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","task","$startRefreshTimeout","type","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$filter","timeInterval","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","dirty","otherType","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","j","dates","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","blocks","block","nbr","$views","allDayBlocks","viewData","reduce","events","flatten","dayNumber","calendarName","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","status","delta","classification","isString","substring","setMinutes","Math","round","getMinutes","end","minutesTo","setDelta","dueDate","due","c_category","$isRecurrent","days","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","asDate","$hasCustomRepeat","hasCustomRepeat","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","destinationCalendar","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","freebusy","updateFreeBusyCoverage","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","currentDay","dayKey","hourKey","getHours","beginOfDay","addMinutes","attendees","attendee","image","email","updateFreeBusyAttendee","sday","eday","map","addAttendee","card","c_cn","$preferredEmail","role","c_uid","hasAttendee","emails","deleteAttendee","findIndex","currentAttendee","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$reply","reply","delegatedTo","$adjust","every","values","v","occurrenceOnly","$futureComponentData","copy","formatDate","startTime","formatTime","endTime","dueTime","stringWithSeparator","organizer","hours","minutes","getYear","repeatDescription","localizedString","l","toUpperCase","alarmDescription"],"mappings":"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","file":"Scheduler.services.js"} \ No newline at end of file