office-ui-fabric-rails 2.5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE +21 -0
- data/README.md +69 -0
- data/Rakefile +24 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/bower.json +7 -0
- data/lib/office-ui-fabric-rails.rb +2 -0
- data/lib/office-ui-fabric-rails/engine.rb +6 -0
- data/lib/office-ui-fabric-rails/version.rb +6 -0
- data/office-ui-fabric-rails.gemspec +35 -0
- data/vendor/assets/css/fabric.components.css +6553 -0
- data/vendor/assets/css/fabric.components.min.css +6 -0
- data/vendor/assets/css/fabric.components.rtl.css +6355 -0
- data/vendor/assets/css/fabric.components.rtl.min.css +6 -0
- data/vendor/assets/css/fabric.css +5991 -0
- data/vendor/assets/css/fabric.min.css +6 -0
- data/vendor/assets/css/fabric.rtl.css +6280 -0
- data/vendor/assets/css/fabric.rtl.min.css +6 -0
- data/vendor/assets/js/jquery.fabric.js +2451 -0
- data/vendor/assets/js/jquery.fabric.min.js +2 -0
- data/vendor/assets/scss/Fabric.Animations.Output.scss +419 -0
- data/vendor/assets/scss/Fabric.Animations.RTL.Output.scss +80 -0
- data/vendor/assets/scss/Fabric.Color.Mixins.Output.scss +458 -0
- data/vendor/assets/scss/Fabric.Components.scss +31 -0
- data/vendor/assets/scss/Fabric.Grid.Output.scss +32 -0
- data/vendor/assets/scss/Fabric.Icons.Font.Output.scss +23 -0
- data/vendor/assets/scss/Fabric.Icons.Output.scss +771 -0
- data/vendor/assets/scss/Fabric.Icons.RTL.Output.scss +114 -0
- data/vendor/assets/scss/Fabric.RTL.scss +39 -0
- data/vendor/assets/scss/Fabric.Responsive.Utilities.Output.scss +1022 -0
- data/vendor/assets/scss/Fabric.Typography.Fonts.Output.scss +76 -0
- data/vendor/assets/scss/Fabric.Typography.Language.Overrides.Output.scss +56 -0
- data/vendor/assets/scss/Fabric.Typography.Output.scss +379 -0
- data/vendor/assets/scss/Fabric.Utilities.Output.scss +23 -0
- data/vendor/assets/scss/Fabric.scss +40 -0
- data/vendor/assets/scss/_Fabric.Animations.RTL.scss +79 -0
- data/vendor/assets/scss/_Fabric.Animations.scss +237 -0
- data/vendor/assets/scss/_Fabric.Color.Mixins.scss +414 -0
- data/vendor/assets/scss/_Fabric.Color.Variables.scss +90 -0
- data/vendor/assets/scss/_Fabric.Common.scss +15 -0
- data/vendor/assets/scss/_Fabric.Grid.scss +34 -0
- data/vendor/assets/scss/_Fabric.Icons.scss +397 -0
- data/vendor/assets/scss/_Fabric.Mixins.RTL.scss +315 -0
- data/vendor/assets/scss/_Fabric.Mixins.scss +274 -0
- data/vendor/assets/scss/_Fabric.Responsive.Utilities.Variables.scss +697 -0
- data/vendor/assets/scss/_Fabric.Responsive.Variables.scss +35 -0
- data/vendor/assets/scss/_Fabric.Typography.Fonts.scss +170 -0
- data/vendor/assets/scss/_Fabric.Typography.Language.Overrides.scss +118 -0
- data/vendor/assets/scss/_Fabric.Typography.Variables.scss +27 -0
- data/vendor/assets/scss/_Fabric.Typography.scss +357 -0
- data/vendor/assets/scss/_Fabric.Utilities.scss +36 -0
- data/vendor/assets/scss/_Fabric.ZIndex.Variables.scss +32 -0
- data/vendor/assets/scss/_Office.Color.Variables.scss +34 -0
- metadata +172 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
/* Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information. */
|
2
|
+
/**
|
3
|
+
* Office UI Fabric 2.5.0
|
4
|
+
* The front-end framework for building experiences for Office 365.
|
5
|
+
**/
|
6
|
+
.ms-u-borderBox,.ms-u-borderBox:after,.ms-u-borderBox:before{box-sizing:border-box}.ms-u-clearfix{*zoom:1}.ms-u-clearfix:after,.ms-u-clearfix:before{display:table;content:'';line-height:0}.ms-u-clearfix:after{clear:both}.ms-u-normalize{box-sizing:border-box;margin:0;padding:0;box-shadow:none}.ms-bgColor-themeDark,.ms-bgColor-themeDark--hover:hover{background-color:#005a9e}.ms-bgColor-themeDarkAlt,.ms-bgColor-themeDarkAlt--hover:hover{background-color:#106ebe}.ms-bgColor-themeDarker,.ms-bgColor-themeDarker--hover:hover{background-color:#004578}.ms-bgColor-themePrimary,.ms-bgColor-themePrimary--hover:hover{background-color:#0078d7}.ms-bgColor-themeSecondary,.ms-bgColor-themeSecondary--hover:hover{background-color:#2b88d8}.ms-bgColor-themeTertiary,.ms-bgColor-themeTertiary--hover:hover{background-color:#71afe5}.ms-bgColor-themeLight,.ms-bgColor-themeLight--hover:hover{background-color:#c7e0f4}.ms-bgColor-themeLighter,.ms-bgColor-themeLighter--hover:hover{background-color:#deecf9}.ms-bgColor-themeLighterAlt,.ms-bgColor-themeLighterAlt--hover:hover{background-color:#eff6fc}.ms-bgColor-black,.ms-bgColor-black--hover:hover{background-color:#000}.ms-bgColor-neutralDark,.ms-bgColor-neutralDark--hover:hover{background-color:#212121}.ms-bgColor-neutralPrimary,.ms-bgColor-neutralPrimary--hover:hover{background-color:#333}.ms-bgColor-neutralPrimaryAlt,.ms-bgColor-neutralPrimaryAlt--hover:hover{background-color:#3c3c3c}.ms-bgColor-neutralSecondary,.ms-bgColor-neutralSecondary--hover:hover{background-color:#666}.ms-bgColor-neutralSecondaryAlt,.ms-bgColor-neutralSecondaryAlt--hover:hover{background-color:#767676}.ms-bgColor-neutralTertiary,.ms-bgColor-neutralTertiary--hover:hover{background-color:#a6a6a6}.ms-bgColor-neutralTertiaryAlt,.ms-bgColor-neutralTertiaryAlt--hover:hover{background-color:#c8c8c8}.ms-bgColor-neutralLight,.ms-bgColor-neutralLight--hover:hover{background-color:#eaeaea}.ms-bgColor-neutralLighter,.ms-bgColor-neutralLighter--hover:hover{background-color:#f4f4f4}.ms-bgColor-neutralLighterAlt,.ms-bgColor-neutralLighterAlt--hover:hover{background-color:#f8f8f8}.ms-bgColor-white,.ms-bgColor-white--hover:hover{background-color:#fff}.ms-bgColor-yellow{background-color:#ffb900}.ms-bgColor-yellowLight{background-color:#fff100}.ms-bgColor-orange{background-color:#d83b01}.ms-bgColor-orangeLight{background-color:#ea4300}.ms-bgColor-orangeLighter{background-color:#ff8c00}.ms-bgColor-redDark{background-color:#a80000}.ms-bgColor-red{background-color:#e81123}.ms-bgColor-magentaDark{background-color:#5c005c}.ms-bgColor-magenta{background-color:#b4009e}.ms-bgColor-magentaLight{background-color:#e3008c}.ms-bgColor-purpleDark{background-color:#32145a}.ms-bgColor-purple{background-color:#5c2d91}.ms-bgColor-purpleLight{background-color:#b4a0ff}.ms-bgColor-blueDark{background-color:#002050}.ms-bgColor-blueMid{background-color:#00188f}.ms-bgColor-blue{background-color:#0078d7}.ms-bgColor-blueLight{background-color:#00bcf2}.ms-bgColor-tealDark{background-color:#004b50}.ms-bgColor-teal{background-color:#008272}.ms-bgColor-tealLight{background-color:#00b294}.ms-bgColor-greenDark{background-color:#004b1c}.ms-bgColor-green{background-color:#107c10}.ms-bgColor-greenLight{background-color:#bad80a}.ms-bgColor-info{background-color:#f4f4f4}.ms-bgColor-success{background-color:#dff6dd}.ms-bgColor-alert{background-color:#fed9cc}.ms-bgColor-error{background-color:#fde7e9}.ms-borderColor-themeDark,.ms-borderColor-themeDark--hover:hover{border-color:#005a9e}.ms-borderColor-themeDarkAlt,.ms-borderColor-themeDarkAlt--hover:hover{border-color:#106ebe}.ms-borderColor-themeDarker,.ms-borderColor-themeDarker--hover:hover{border-color:#004578}.ms-borderColor-themePrimary,.ms-borderColor-themePrimary--hover:hover{border-color:#0078d7}.ms-borderColor-themeSecondary,.ms-borderColor-themeSecondary--hover:hover{border-color:#2b88d8}.ms-borderColor-themeTertiary,.ms-borderColor-themeTertiary--hover:hover{border-color:#71afe5}.ms-borderColor-themeLight,.ms-borderColor-themeLight--hover:hover{border-color:#c7e0f4}.ms-borderColor-themeLighter,.ms-borderColor-themeLighter--hover:hover{border-color:#deecf9}.ms-borderColor-themeLighterAlt,.ms-borderColor-themeLighterAlt--hover:hover{border-color:#eff6fc}.ms-borderColor-black,.ms-borderColor-black--hover:hover{border-color:#000}.ms-borderColor-neutralDark,.ms-borderColor-neutralDark--hover:hover{border-color:#212121}.ms-borderColor-neutralPrimary,.ms-borderColor-neutralPrimary--hover:hover{border-color:#333}.ms-borderColor-neutralPrimaryAlt,.ms-borderColor-neutralPrimaryAlt--hover:hover{border-color:#3c3c3c}.ms-borderColor-neutralSecondary,.ms-borderColor-neutralSecondary--hover:hover{border-color:#666}.ms-borderColor-neutralSecondaryAlt,.ms-borderColor-neutralSecondaryAlt--hover:hover{border-color:#767676}.ms-borderColor-neutralTertiary,.ms-borderColor-neutralTertiary--hover:hover{border-color:#a6a6a6}.ms-borderColor-neutralTertiaryAlt,.ms-borderColor-neutralTertiaryAlt--hover:hover{border-color:#c8c8c8}.ms-borderColor-neutralLight,.ms-borderColor-neutralLight--hover:hover{border-color:#eaeaea}.ms-borderColor-neutralLighter,.ms-borderColor-neutralLighter--hover:hover{border-color:#f4f4f4}.ms-borderColor-neutralLighterAlt,.ms-borderColor-neutralLighterAlt--hover:hover{border-color:#f8f8f8}.ms-borderColor-white,.ms-borderColor-white--hover:hover{border-color:#fff}.ms-borderColor-yellow{border-color:#ffb900}.ms-borderColor-yellowLight{border-color:#fff100}.ms-borderColor-orange{border-color:#d83b01}.ms-borderColor-orangeLight{border-color:#ea4300}.ms-borderColor-orangeLighter{border-color:#ff8c00}.ms-borderColor-redDark{border-color:#a80000}.ms-borderColor-red{border-color:#e81123}.ms-borderColor-magentaDark{border-color:#5c005c}.ms-borderColor-magenta{border-color:#b4009e}.ms-borderColor-magentaLight{border-color:#e3008c}.ms-borderColor-purpleDark{border-color:#32145a}.ms-borderColor-purple{border-color:#5c2d91}.ms-borderColor-purpleLight{border-color:#b4a0ff}.ms-borderColor-blueDark{border-color:#002050}.ms-borderColor-blueMid{border-color:#00188f}.ms-borderColor-blue{border-color:#0078d7}.ms-borderColor-blueLight{border-color:#00bcf2}.ms-borderColor-tealDark{border-color:#004b50}.ms-borderColor-teal{border-color:#008272}.ms-borderColor-tealLight{border-color:#00b294}.ms-borderColor-greenDark{border-color:#004b1c}.ms-borderColor-green{border-color:#107c10}.ms-borderColor-greenLight{border-color:#bad80a}.ms-borderColor-info,.ms-borderColor-success{border-color:#107c10}.ms-borderColor-alert{border-color:#d83b01}.ms-borderColor-error{border-color:#a80000}.ms-borderColorTop-themePrimary,.ms-borderColorTop-themePrimary--hover:hover{border-top-color:#0078d7}@font-face{font-family:Leelawadee UI Bold;src:url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Bold.eot#iefix) format('embedded-opentype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Bold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Bold.ttf) format('truetype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Bold#LeelawadeeUI-Bold) format('svg');font-weight:400;font-style:normal}@font-face{font-family:Leelawadee UI;src:url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Regular.eot#iefix) format('embedded-opentype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Regular.ttf) format('truetype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Regular#LeelawadeeUI-Regular) format('svg');font-weight:400;font-style:normal}@font-face{font-family:Leelawadee UI Semilight;src:url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Semilight.eot#iefix) format('embedded-opentype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Semilight.ttf) format('truetype'),url(https://appsforoffice.microsoft.com/fabric/fonts/LeelawadeeUI-Thai/LeelawadeeUI-Semilight#LeelawadeeUI-Semilight) format('svg');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light Arabic;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular Arabic;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold Arabic;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight Arabic;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Arabic/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light Cyrillic;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular Cyrillic;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold Cyrillic;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight Cyrillic;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Cyrillic/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light EastEuropean;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular EastEuropean;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold EastEuropean;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight EastEuropean;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-EastEuropean/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light Greek;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular Greek;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold Greek;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight Greek;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Greek/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light Hebrew;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular Hebrew;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold Hebrew;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight Hebrew;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Hebrew/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light Vietnamese;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular Vietnamese;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold Vietnamese;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight Vietnamese;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-Vietnamese/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Light WestEuropean;src:local('Segoe UI Light'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Light.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Light.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Light.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Regular WestEuropean;src:local('Segoe UI'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Regular.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Regular.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Regular.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semibold WestEuropean;src:local('Segoe UI Semibold'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semibold.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semibold.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semibold.ttf) format('truetype');font-weight:400;font-style:normal}@font-face{font-family:Segoe UI Semilight WestEuropean;src:local('Segoe UI Semilight'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semilight.woff2) format('woff2'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semilight.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/SegoeUI-WestEuropean/SegoeUI-Semilight.ttf) format('truetype');font-weight:400;font-style:normal}.ms-font-su{font-size:42px}.ms-font-su,.ms-font-xxl{color:#333;font-family:Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif;font-weight:400}.ms-font-xxl{font-size:28px}.ms-font-xl{font-family:Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif;font-size:21px}.ms-font-l,.ms-font-xl{color:#333;font-weight:400}.ms-font-l{font-family:Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif;font-size:17px}.ms-font-m-plus{font-size:15px}.ms-font-m,.ms-font-m-plus{color:#333;font-family:Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif;font-weight:400}.ms-font-m{font-size:14px}.ms-font-s-plus{font-size:13px}.ms-font-s,.ms-font-s-plus{color:#333;font-family:Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif;font-weight:400}.ms-font-s{font-size:12px}.ms-font-xs{font-family:Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif;font-size:11px}.ms-font-mi,.ms-font-xs{color:#333;font-weight:400}.ms-font-mi{font-family:Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif;font-size:10px}.ms-fontWeight-light,.ms-fontWeight-light--hover:hover{font-family:Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}.ms-fontWeight-semilight,.ms-fontWeight-semilight--hover:hover{font-family:Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}.ms-fontWeight-regular,.ms-fontWeight-regular--hover:hover{font-family:Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}.ms-fontWeight-semibold,.ms-fontWeight-semibold--hover:hover{font-family:Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}.ms-fontSize-su{font-size:42px}.ms-fontSize-xxl{font-size:28px}.ms-fontSize-xl{font-size:21px}.ms-fontSize-l{font-size:17px}.ms-fontSize-mPlus{font-size:15px}.ms-fontSize-m{font-size:14px}.ms-fontSize-sPlus{font-size:13px}.ms-fontSize-s{font-size:12px}.ms-fontSize-xs{font-size:11px}.ms-fontSize-mi{font-size:10px}.ms-fontColor-themeDarker,.ms-fontColor-themeDarker--hover:hover{color:#004578}.ms-fontColor-themeDark,.ms-fontColor-themeDark--hover:hover{color:#005a9e}.ms-fontColor-themeDarkAlt,.ms-fontColor-themeDarkAlt--hover:hover{color:#106ebe}.ms-fontColor-themePrimary,.ms-fontColor-themePrimary--hover:hover{color:#0078d7}.ms-fontColor-themeSecondary,.ms-fontColor-themeSecondary--hover:hover{color:#2b88d8}.ms-fontColor-themeTertiary,.ms-fontColor-themeTertiary--hover:hover{color:#71afe5}.ms-fontColor-themeLight,.ms-fontColor-themeLight--hover:hover{color:#c7e0f4}.ms-fontColor-themeLighter,.ms-fontColor-themeLighter--hover:hover{color:#deecf9}.ms-fontColor-themeLighterAlt,.ms-fontColor-themeLighterAlt--hover:hover{color:#eff6fc}.ms-fontColor-black,.ms-fontColor-black--hover:hover{color:#000}.ms-fontColor-neutralDark,.ms-fontColor-neutralDark--hover:hover{color:#212121}.ms-fontColor-neutralPrimary,.ms-fontColor-neutralPrimary--hover:hover{color:#333}.ms-fontColor-neutralPrimaryAlt,.ms-fontColor-neutralPrimaryAlt--hover:hover{color:#3c3c3c}.ms-fontColor-neutralSecondary,.ms-fontColor-neutralSecondary--hover:hover{color:#666}.ms-fontColor-neutralSecondaryAlt,.ms-fontColor-neutralSecondaryAlt--hover:hover{color:#767676}.ms-fontColor-neutralTertiary,.ms-fontColor-neutralTertiary--hover:hover{color:#a6a6a6}.ms-fontColor-neutralTertiaryAlt,.ms-fontColor-neutralTertiaryAlt--hover:hover{color:#c8c8c8}.ms-fontColor-neutralLight,.ms-fontColor-neutralLight--hover:hover{color:#eaeaea}.ms-fontColor-neutralLighter,.ms-fontColor-neutralLighter--hover:hover{color:#f4f4f4}.ms-fontColor-neutralLighterAlt,.ms-fontColor-neutralLighterAlt--hover:hover{color:#f8f8f8}.ms-fontColor-white,.ms-fontColor-white--hover:hover{color:#fff}.ms-fontColor-yellow,.ms-fontColor-yellow--hover:hover{color:#ffb900}.ms-fontColor-yellowLight,.ms-fontColor-yellowLight--hover:hover{color:#fff100}.ms-fontColor-orange,.ms-fontColor-orange--hover:hover{color:#d83b01}.ms-fontColor-orangeLight,.ms-fontColor-orangeLight--hover:hover{color:#ea4300}.ms-fontColor-orangeLighter,.ms-fontColor-orangeLighter--hover:hover{color:#ff8c00}.ms-fontColor-redDark,.ms-fontColor-redDark--hover:hover{color:#a80000}.ms-fontColor-red,.ms-fontColor-red--hover:hover{color:#e81123}.ms-fontColor-magentaDark,.ms-fontColor-magentaDark--hover:hover{color:#5c005c}.ms-fontColor-magenta,.ms-fontColor-magenta--hover:hover{color:#b4009e}.ms-fontColor-magentaLight,.ms-fontColor-magentaLight--hover:hover{color:#e3008c}.ms-fontColor-purpleDark,.ms-fontColor-purpleDark--hover:hover{color:#32145a}.ms-fontColor-purple,.ms-fontColor-purple--hover:hover{color:#5c2d91}.ms-fontColor-purpleLight,.ms-fontColor-purpleLight--hover:hover{color:#b4a0ff}.ms-fontColor-blueDark,.ms-fontColor-blueDark--hover:hover{color:#002050}.ms-fontColor-blueMid,.ms-fontColor-blueMid--hover:hover{color:#00188f}.ms-fontColor-blue,.ms-fontColor-blue--hover:hover{color:#0078d7}.ms-fontColor-blueLight,.ms-fontColor-blueLight--hover:hover{color:#00bcf2}.ms-fontColor-tealDark,.ms-fontColor-tealDark--hover:hover{color:#004b50}.ms-fontColor-teal,.ms-fontColor-teal--hover:hover{color:#008272}.ms-fontColor-tealLight,.ms-fontColor-tealLight--hover:hover{color:#00b294}.ms-fontColor-greenDark,.ms-fontColor-greenDark--hover:hover{color:#004b1c}.ms-fontColor-green,.ms-fontColor-green--hover:hover{color:#107c10}.ms-fontColor-greenLight,.ms-fontColor-greenLight--hover:hover{color:#bad80a}.ms-fontColor-info,.ms-fontColor-info--hover:hover,.ms-fontColor-success,.ms-fontColor-success--hover:hover{color:#107c10}.ms-fontColor-alert,.ms-fontColor-alert--hover:hover{color:#d83b01}.ms-fontColor-error,.ms-fontColor-error--hover:hover{color:#a80000}[lang=ja-JP] .ms-font-l,[lang=ja-JP] .ms-font-m,[lang=ja-JP] .ms-font-m-plus,[lang=ja-JP] .ms-font-mi,[lang=ja-JP] .ms-font-s,[lang=ja-JP] .ms-font-s-plus,[lang=ja-JP] .ms-font-su,[lang=ja-JP] .ms-font-xl,[lang=ja-JP] .ms-font-xs,[lang=ja-JP] .ms-font-xxl,[lang=ja-JP] .ms-fontWeight-light,[lang=ja-JP] .ms-fontWeight-light-hover:hover,[lang=ja-JP] .ms-fontWeight-regular,[lang=ja-JP] .ms-fontWeight-regular-hover:hover,[lang=ja-JP] .ms-fontWeight-semibold,[lang=ja-JP] .ms-fontWeight-semibold-hover:hover,[lang=ja-JP] .ms-fontWeight-semilight,[lang=ja-JP] .ms-fontWeight-semilight-hover:hover{font-family:Yu Gothic,Meiryo UI,Meiryo,MS Pgothic,Osaka,Segoe UI,Tahoma,Arial,sans-serif}[lang=ko-KR] .ms-font-l,[lang=ko-KR] .ms-font-m,[lang=ko-KR] .ms-font-m-plus,[lang=ko-KR] .ms-font-mi,[lang=ko-KR] .ms-font-s,[lang=ko-KR] .ms-font-s-plus,[lang=ko-KR] .ms-font-su,[lang=ko-KR] .ms-font-xl,[lang=ko-KR] .ms-font-xs,[lang=ko-KR] .ms-font-xxl,[lang=ko-KR] .ms-fontWeight-light,[lang=ko-KR] .ms-fontWeight-light-hover:hover,[lang=ko-KR] .ms-fontWeight-regular,[lang=ko-KR] .ms-fontWeight-regular-hover:hover,[lang=ko-KR] .ms-fontWeight-semibold,[lang=ko-KR] .ms-fontWeight-semibold-hover:hover,[lang=ko-KR] .ms-fontWeight-semilight,[lang=ko-KR] .ms-fontWeight-semilight-hover:hover{font-family:Malgun Gothic,Gulim,Segoe UI,Tahoma,Arial,sans-serif}[lang=ch-ZHS] .ms-font-l,[lang=ch-ZHS] .ms-font-m,[lang=ch-ZHS] .ms-font-m-plus,[lang=ch-ZHS] .ms-font-mi,[lang=ch-ZHS] .ms-font-s,[lang=ch-ZHS] .ms-font-s-plus,[lang=ch-ZHS] .ms-font-su,[lang=ch-ZHS] .ms-font-xl,[lang=ch-ZHS] .ms-font-xs,[lang=ch-ZHS] .ms-font-xxl,[lang=ch-ZHS] .ms-fontWeight-light,[lang=ch-ZHS] .ms-fontWeight-light-hover:hover,[lang=ch-ZHS] .ms-fontWeight-regular,[lang=ch-ZHS] .ms-fontWeight-regular-hover:hover,[lang=ch-ZHS] .ms-fontWeight-semibold,[lang=ch-ZHS] .ms-fontWeight-semibold-hover:hover,[lang=ch-ZHS] .ms-fontWeight-semilight,[lang=ch-ZHS] .ms-fontWeight-semilight-hover:hover{font-family:Microsoft Yahei,Verdana,Simsun,Segoe UI,Tahoma,Arial,sans-serif}[lang=ch-ZHT] .ms-font-l,[lang=ch-ZHT] .ms-font-m,[lang=ch-ZHT] .ms-font-m-plus,[lang=ch-ZHT] .ms-font-mi,[lang=ch-ZHT] .ms-font-s,[lang=ch-ZHT] .ms-font-s-plus,[lang=ch-ZHT] .ms-font-su,[lang=ch-ZHT] .ms-font-xl,[lang=ch-ZHT] .ms-font-xs,[lang=ch-ZHT] .ms-font-xxl,[lang=ch-ZHT] .ms-fontWeight-light,[lang=ch-ZHT] .ms-fontWeight-light-hover:hover,[lang=ch-ZHT] .ms-fontWeight-regular,[lang=ch-ZHT] .ms-fontWeight-regular-hover:hover,[lang=ch-ZHT] .ms-fontWeight-semibold,[lang=ch-ZHT] .ms-fontWeight-semibold-hover:hover,[lang=ch-ZHT] .ms-fontWeight-semilight,[lang=ch-ZHT] .ms-fontWeight-semilight-hover:hover{font-family:Microsoft Jhenghei,Pmingliu,Segoe UI,Tahoma,Arial,sans-serif}[lang=hi-IN] .ms-font-l,[lang=hi-IN] .ms-font-m,[lang=hi-IN] .ms-font-m-plus,[lang=hi-IN] .ms-font-mi,[lang=hi-IN] .ms-font-s,[lang=hi-IN] .ms-font-s-plus,[lang=hi-IN] .ms-font-su,[lang=hi-IN] .ms-font-xl,[lang=hi-IN] .ms-font-xs,[lang=hi-IN] .ms-font-xxl,[lang=hi-IN] .ms-fontWeight-light,[lang=hi-IN] .ms-fontWeight-light-hover:hover,[lang=hi-IN] .ms-fontWeight-regular,[lang=hi-IN] .ms-fontWeight-regular-hover:hover,[lang=hi-IN] .ms-fontWeight-semibold,[lang=hi-IN] .ms-fontWeight-semibold-hover:hover,[lang=hi-IN] .ms-fontWeight-semilight,[lang=hi-IN] .ms-fontWeight-semilight-hover:hover{font-family:Nirmala UI,Segoe UI,Tahoma,Arial,sans-serif}[lang=th-TH] .ms-font-l,[lang=th-TH] .ms-font-su,[lang=th-TH] .ms-font-xl,[lang=th-TH] .ms-font-xxl,[lang=th-TH] .ms-fontWeight-light,[lang=th-TH] .ms-fontWeight-light-hover:hover,[lang=th-TH] .ms-fontWeight-semilight,[lang=th-TH] .ms-fontWeight-semilight-hover:hover{font-family:Leelawadee UI Semilight,Kmer UI,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=th-TH] .ms-fontWeight-regular,[lang=th-TH] .ms-fontweight-regular-hover:hover{font-family:Leelawadee UI Regular,Kmer UI,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=th-TH] .ms-font-mi,[lang=th-TH] .ms-fontWeight-semibold,[lang=th-TH] .ms-fontWeight-semibold-hover:hover{font-family:Leelawadee UI Bold,Kmer UI,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=ar] .ms-font-xl,[lang=ar] .ms-font-xxl,[lang=ar] .ms-fontWeight-light,[lang=ar] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Arabic,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=ar] .ms-font-l,[lang=ar] .ms-font-su,[lang=ar] .ms-fontWeight-semilight,[lang=ar] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Arabic,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=ar] .ms-fontWeight-regular,[lang=ar] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Arabic,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=ar] .ms-font-mi,[lang=ar] .ms-fontWeight-semibold,[lang=ar] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Arabic,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=bg-BG] .ms-font-xl,[lang=bg-BG] .ms-font-xxl,[lang=bg-BG] .ms-fontWeight-light,[lang=bg-BG] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Cyrillic,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=bg-BG] .ms-font-l,[lang=bg-BG] .ms-font-su,[lang=bg-BG] .ms-fontWeight-semilight,[lang=bg-BG] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Cyrillic,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=bg-BG] .ms-fontWeight-regular,[lang=bg-BG] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Cyrillic,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=bg-BG] .ms-font-mi,[lang=bg-BG] .ms-fontWeight-semibold,[lang=bg-BG] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Cyrillic,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=ru-RU] .ms-font-xl,[lang=ru-RU] .ms-font-xxl,[lang=ru-RU] .ms-fontWeight-light,[lang=ru-RU] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Cyrillic,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=ru-RU] .ms-font-l,[lang=ru-RU] .ms-font-su,[lang=ru-RU] .ms-fontWeight-semilight,[lang=ru-RU] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Cyrillic,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=ru-RU] .ms-fontWeight-regular,[lang=ru-RU] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Cyrillic,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=ru-RU] .ms-font-mi,[lang=ru-RU] .ms-fontWeight-semibold,[lang=ru-RU] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Cyrillic,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=uk-UA] .ms-font-xl,[lang=uk-UA] .ms-font-xxl,[lang=uk-UA] .ms-fontWeight-light,[lang=uk-UA] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Cyrillic,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=uk-UA] .ms-font-l,[lang=uk-UA] .ms-font-su,[lang=uk-UA] .ms-fontWeight-semilight,[lang=uk-UA] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Cyrillic,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=uk-UA] .ms-fontWeight-regular,[lang=uk-UA] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Cyrillic,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=uk-UA] .ms-font-mi,[lang=uk-UA] .ms-fontWeight-semibold,[lang=uk-UA] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Cyrillic,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=cs-CZ] .ms-font-xl,[lang=cs-CZ] .ms-font-xxl,[lang=cs-CZ] .ms-fontWeight-light,[lang=cs-CZ] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=cs-CZ] .ms-font-l,[lang=cs-CZ] .ms-font-su,[lang=cs-CZ] .ms-fontWeight-semilight,[lang=cs-CZ] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=cs-CZ] .ms-fontWeight-regular,[lang=cs-CZ] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=cs-CZ] .ms-font-mi,[lang=cs-CZ] .ms-fontWeight-semibold,[lang=cs-CZ] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=et-EE] .ms-font-xl,[lang=et-EE] .ms-font-xxl,[lang=et-EE] .ms-fontWeight-light,[lang=et-EE] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=et-EE] .ms-font-l,[lang=et-EE] .ms-font-su,[lang=et-EE] .ms-fontWeight-semilight,[lang=et-EE] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=et-EE] .ms-fontWeight-regular,[lang=et-EE] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=et-EE] .ms-font-mi,[lang=et-EE] .ms-fontWeight-semibold,[lang=et-EE] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=hr-HR] .ms-font-xl,[lang=hr-HR] .ms-font-xxl,[lang=hr-HR] .ms-fontWeight-light,[lang=hr-HR] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=hr-HR] .ms-font-l,[lang=hr-HR] .ms-font-su,[lang=hr-HR] .ms-fontWeight-semilight,[lang=hr-HR] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=hr-HR] .ms-fontWeight-regular,[lang=hr-HR] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=hr-HR] .ms-font-mi,[lang=hr-HR] .ms-fontWeight-semibold,[lang=hr-HR] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=hu-HU] .ms-font-xl,[lang=hu-HU] .ms-font-xxl,[lang=hu-HU] .ms-fontWeight-light,[lang=hu-HU] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=hu-HU] .ms-font-l,[lang=hu-HU] .ms-font-su,[lang=hu-HU] .ms-fontWeight-semilight,[lang=hu-HU] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=hu-HU] .ms-fontWeight-regular,[lang=hu-HU] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=hu-HU] .ms-font-mi,[lang=hu-HU] .ms-fontWeight-semibold,[lang=hu-HU] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-LT] .ms-font-xl,[lang=lt-LT] .ms-font-xxl,[lang=lt-LT] .ms-fontWeight-light,[lang=lt-LT] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-LT] .ms-font-l,[lang=lt-LT] .ms-font-su,[lang=lt-LT] .ms-fontWeight-semilight,[lang=lt-LT] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-LT] .ms-fontWeight-regular,[lang=lt-LT] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-LT] .ms-font-mi,[lang=lt-LT] .ms-fontWeight-semibold,[lang=lt-LT] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=lv-LV] .ms-font-xl,[lang=lv-LV] .ms-font-xxl,[lang=lv-LV] .ms-fontWeight-light,[lang=lv-LV] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=lv-LV] .ms-font-l,[lang=lv-LV] .ms-font-su,[lang=lv-LV] .ms-fontWeight-semilight,[lang=lv-LV] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=lv-LV] .ms-fontWeight-regular,[lang=lv-LV] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=lv-LV] .ms-font-mi,[lang=lv-LV] .ms-fontWeight-semibold,[lang=lv-LV] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=pl-PL] .ms-font-xl,[lang=pl-PL] .ms-font-xxl,[lang=pl-PL] .ms-fontWeight-light,[lang=pl-PL] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=pl-PL] .ms-font-l,[lang=pl-PL] .ms-font-su,[lang=pl-PL] .ms-fontWeight-semilight,[lang=pl-PL] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=pl-PL] .ms-fontWeight-regular,[lang=pl-PL] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=pl-PL] .ms-font-mi,[lang=pl-PL] .ms-fontWeight-semibold,[lang=pl-PL] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-sr-SP] .ms-font-xl,[lang=lt-sr-SP] .ms-font-xxl,[lang=lt-sr-SP] .ms-fontWeight-light,[lang=lt-sr-SP] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-sr-SP] .ms-font-l,[lang=lt-sr-SP] .ms-font-su,[lang=lt-sr-SP] .ms-fontWeight-semilight,[lang=lt-sr-SP] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-sr-SP] .ms-fontWeight-regular,[lang=lt-sr-SP] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=lt-sr-SP] .ms-font-mi,[lang=lt-sr-SP] .ms-fontWeight-semibold,[lang=lt-sr-SP] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=tr-TR] .ms-font-xl,[lang=tr-TR] .ms-font-xxl,[lang=tr-TR] .ms-fontWeight-light,[lang=tr-TR] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=tr-TR] .ms-font-l,[lang=tr-TR] .ms-font-su,[lang=tr-TR] .ms-fontWeight-semilight,[lang=tr-TR] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=tr-TR] .ms-fontWeight-regular,[lang=tr-TR] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=tr-TR] .ms-font-mi,[lang=tr-TR] .ms-fontWeight-semibold,[lang=tr-TR] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=sk-SK] .ms-font-xl,[lang=sk-SK] .ms-font-xxl,[lang=sk-SK] .ms-fontWeight-light,[lang=sk-SK] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=sk-SK] .ms-font-l,[lang=sk-SK] .ms-font-su,[lang=sk-SK] .ms-fontWeight-semilight,[lang=sk-SK] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=sk-SK] .ms-fontWeight-regular,[lang=sk-SK] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=sk-SK] .ms-font-mi,[lang=sk-SK] .ms-fontWeight-semibold,[lang=sk-SK] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=kk-KZ] .ms-font-xl,[lang=kk-KZ] .ms-font-xxl,[lang=kk-KZ] .ms-fontWeight-light,[lang=kk-KZ] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light EastEuropean,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=kk-KZ] .ms-font-l,[lang=kk-KZ] .ms-font-su,[lang=kk-KZ] .ms-fontWeight-semilight,[lang=kk-KZ] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight EastEuropean,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=kk-KZ] .ms-fontWeight-regular,[lang=kk-KZ] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular EastEuropean,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=kk-KZ] .ms-font-mi,[lang=kk-KZ] .ms-fontWeight-semibold,[lang=kk-KZ] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold EastEuropean,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=el-GR] .ms-font-xl,[lang=el-GR] .ms-font-xxl,[lang=el-GR] .ms-fontWeight-light,[lang=el-GR] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Greek,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=el-GR] .ms-font-l,[lang=el-GR] .ms-font-su,[lang=el-GR] .ms-fontWeight-semilight,[lang=el-GR] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Greek,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=el-GR] .ms-fontWeight-regular,[lang=el-GR] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Greek,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=el-GR] .ms-font-mi,[lang=el-GR] .ms-fontWeight-semibold,[lang=el-GR] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Greek,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=he-IL] .ms-font-xl,[lang=he-IL] .ms-font-xxl,[lang=he-IL] .ms-fontWeight-light,[lang=he-IL] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Hebrew,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=he-IL] .ms-font-l,[lang=he-IL] .ms-font-su,[lang=he-IL] .ms-fontWeight-semilight,[lang=he-IL] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Hebrew,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=he-IL] .ms-fontWeight-regular,[lang=he-IL] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Hebrew,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=he-IL] .ms-font-mi,[lang=he-IL] .ms-fontWeight-semibold,[lang=he-IL] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Hebrew,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}[lang=vi-VN] .ms-font-xl,[lang=vi-VN] .ms-font-xxl,[lang=vi-VN] .ms-fontWeight-light,[lang=vi-VN] .ms-fontWeight-light-hover:hover{font-family:Segoe UI Light Vietnamese,Segoe UI Light WestEuropean,Segoe UI Light,Segoe UI,Tahoma,Arial,sans-serif}[lang=vi-VN] .ms-font-l,[lang=vi-VN] .ms-font-su,[lang=vi-VN] .ms-fontWeight-semilight,[lang=vi-VN] .ms-fontWeight-semilight-hover:hover{font-family:Segoe UI Semilight Vietnamese,Segoe UI Semilight WestEuropean,Segoe UI Semilight,Segoe UI,Tahoma,Arial,sans-serif}[lang=vi-VN] .ms-fontWeight-regular,[lang=vi-VN] .ms-fontweight-regular-hover:hover{font-family:Segoe UI Regular Vietnamese,Segoe UI Regular WestEuropean,Segoe UI,Tahoma,Arial,sans-serif}[lang=vi-VN] .ms-font-mi,[lang=vi-VN] .ms-fontWeight-semibold,[lang=vi-VN] .ms-fontWeight-semibold-hover:hover{font-family:Segoe UI Semibold Vietnamese,Segoe UI Semibold WestEuropean,Segoe UI Semibold,Segoe UI,Tahoma,Arial,sans-serif}@font-face{font-family:Office365Icons;src:url(https://appsforoffice.microsoft.com/fabric/fonts/icons/office365icons.eot);src:url(https://appsforoffice.microsoft.com/fabric/fonts/icons/office365icons.eot#iefix) format('embedded-opentype'),url(https://appsforoffice.microsoft.com/fabric/fonts/icons/office365icons.woff) format('woff'),url(https://appsforoffice.microsoft.com/fabric/fonts/icons/office365icons.ttf) format('truetype'),url(https://appsforoffice.microsoft.com/fabric/fonts/icons/office365icons.svg#office365icons) format('svg');font-weight:400;font-style:normal}.ms-Icon{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-family:Office365Icons;font-style:normal;font-weight:400;line-height:1;speak:none}.ms-Icon--circleEmpty:before{content:'\e000'}.ms-Icon--circleFill:before{content:'\e001'}.ms-Icon--placeholder:before{content:'\e002'}.ms-Icon--star:before{content:'\e003'}.ms-Icon--plus:before{content:'\e004'}.ms-Icon--minus:before{content:'\e005'}.ms-Icon--question:before{content:'\e006'}.ms-Icon--exclamation:before{content:'\e007'}.ms-Icon--person:before{content:'\e008'}.ms-Icon--mail:before{content:'\e009'}.ms-Icon--infoCircle:before{content:'\e00a'}.ms-Icon--alert:before{content:'\e00b'}.ms-Icon--xCircle:before{content:'\e00c'}.ms-Icon--mailOpen:before{content:'\e00d'}.ms-Icon--people:before{content:'\e00e'}.ms-Icon--bell:before{content:'\e010'}.ms-Icon--calendar:before{content:'\e011'}.ms-Icon--scheduling:before{content:'\e012'}.ms-Icon--event:before{content:'\e013'}.ms-Icon--folder:before{content:'\e014'}.ms-Icon--documents:before{content:'\e015'}.ms-Icon--onedrive:before{content:'\e016'}.ms-Icon--chat:before{content:'\e017'}.ms-Icon--sites:before{content:'\e018'}.ms-Icon--listBullets:before{content:'\e019'}.ms-Icon--calendarWeek:before{content:'\e01a'}.ms-Icon--calendarWorkWeek:before{content:'\e01b'}.ms-Icon--calendarDay:before{content:'\e01c'}.ms-Icon--folderMove:before{content:'\e01d'}.ms-Icon--panel:before{content:'\e01e'}.ms-Icon--popout:before{content:'\e01f'}.ms-Icon--menu:before{content:'\e020'}.ms-Icon--home:before{content:'\e021'}.ms-Icon--favorites:before{content:'\e022'}.ms-Icon--phone:before{content:'\e023'}.ms-Icon--mailSend:before{content:'\e024'}.ms-Icon--save:before{content:'\e025'}.ms-Icon--trash:before{content:'\e026'}.ms-Icon--pencil:before{content:'\e027'}.ms-Icon--flag:before{content:'\e028'}.ms-Icon--reply:before{content:'\e029'}.ms-Icon--miniatures:before{content:'\e02a'}.ms-Icon--voicemail:before{content:'\e02b'}.ms-Icon--play:before{content:'\e02c'}.ms-Icon--pause:before{content:'\e02d'}.ms-Icon--onlineAdd:before{content:'\e02e'}.ms-Icon--onlineJoin:before{content:'\e02f'}.ms-Icon--replyAll:before{content:'\e030'}.ms-Icon--attachment:before{content:'\e031'}.ms-Icon--drm:before{content:'\e032'}.ms-Icon--pinDown:before{content:'\e033'}.ms-Icon--refresh:before{content:'\e034'}.ms-Icon--gear:before{content:'\e035'}.ms-Icon--smiley:before{content:'\e036'}.ms-Icon--info:before{content:'\e037'}.ms-Icon--lock:before{content:'\e038'}.ms-Icon--search:before{content:'\e039'}.ms-Icon--questionReverse:before{content:'\e03a'}.ms-Icon--notRecurring:before{content:'\e03b'}.ms-Icon--tasks:before{content:'\e040'}.ms-Icon--check:before{content:'\e041'}.ms-Icon--x:before{content:'\e042'}.ms-Icon--ellipsis:before{content:'\e045'}.ms-Icon--dot:before{content:'\e046'}.ms-Icon--arrowUp:before{content:'\e047'}.ms-Icon--arrowDown:before{content:'\e048'}.ms-Icon--arrowLeft:before{content:'\e049'}.ms-Icon--arrowRight:before{content:'\e04a'}.ms-Icon--download:before{content:'\e04b'}.ms-Icon--directions:before{content:'\e04c'}.ms-Icon--microphone:before{content:'\e04f'}.ms-Icon--caretUp:before{content:'\e051'}.ms-Icon--caretDown:before{content:'\e052'}.ms-Icon--caretLeft:before{content:'\e053'}.ms-Icon--caretRight:before{content:'\e054'}.ms-Icon--caretUpLeft:before{content:'\e05a'}.ms-Icon--caretUpRight:before{content:'\e05b'}.ms-Icon--caretDownRight:before{content:'\e05c'}.ms-Icon--caretDownLeft:before{content:'\e05d'}.ms-Icon--note:before{content:'\e06a'}.ms-Icon--noteReply:before{content:'\e06b'}.ms-Icon--noteForward:before{content:'\e06c'}.ms-Icon--key:before{content:'\e06f'}.ms-Icon--tile:before{content:'\e070'}.ms-Icon--taskRecurring:before{content:'\e071'}.ms-Icon--starEmpty:before{content:'\e073'}.ms-Icon--upload:before{content:'\e076'}.ms-Icon--wrench:before{content:'\e077'}.ms-Icon--share:before{content:'\e078'}.ms-Icon--documentReply:before{content:'\e079'}.ms-Icon--documentForward:before{content:'\e07a'}.ms-Icon--partner:before{content:'\e080'}.ms-Icon--reactivate:before{content:'\e084'}.ms-Icon--sort:before{content:'\e085'}.ms-Icon--personAdd:before{content:'\e086'}.ms-Icon--chevronUp:before{content:'\e087'}.ms-Icon--chevronDown:before{content:'\e088'}.ms-Icon--chevronLeft:before{content:'\e089'}.ms-Icon--chevronRight:before{content:'\e08a'}.ms-Icon--peopleAdd:before{content:'\e08c'}.ms-Icon--newsfeed:before{content:'\e08d'}.ms-Icon--notebook:before{content:'\e08e'}.ms-Icon--link:before{content:'\e08f'}.ms-Icon--chevronsUp:before{content:'\e090'}.ms-Icon--chevronsDown:before{content:'\e091'}.ms-Icon--chevronsLeft:before{content:'\e092'}.ms-Icon--chevronsRight:before{content:'\e093'}.ms-Icon--clutter:before{content:'\e09a'}.ms-Icon--subscribe:before{content:'\e09c'}.ms-Icon--unsubscribe:before{content:'\e09d'}.ms-Icon--personRemove:before{content:'\e09e'}.ms-Icon--receiptForward:before{content:'\e0a0'}.ms-Icon--receiptReply:before{content:'\e0a1'}.ms-Icon--receiptCheck:before{content:'\e0a2'}.ms-Icon--peopleRemove:before{content:'\e0a3'}.ms-Icon--merge:before{content:'\e0a4'}.ms-Icon--split:before{content:'\e0a5'}.ms-Icon--eventCancel:before{content:'\e0a6'}.ms-Icon--eventShare:before{content:'\e0a7'}.ms-Icon--today:before{content:'\e0a9'}.ms-Icon--oofReply:before{content:'\e0aa'}.ms-Icon--voicemailReply:before{content:'\e0ac'}.ms-Icon--voicemailForward:before{content:'\e0ad'}.ms-Icon--ribbon:before{content:'\e0af'}.ms-Icon--contact:before{content:'\e0b0'}.ms-Icon--eye:before{content:'\e0b1'}.ms-Icon--glasses:before{content:'\e0b2'}.ms-Icon--print:before{content:'\e100'}.ms-Icon--room:before{content:'\e101'}.ms-Icon--post:before{content:'\e102'}.ms-Icon--toggle:before{content:'\e103'}.ms-Icon--touch:before{content:'\e104'}.ms-Icon--clock:before{content:'\e105'}.ms-Icon--fax:before{content:'\e106'}.ms-Icon--lightning:before{content:'\e110'}.ms-Icon--dialpad:before{content:'\e111'}.ms-Icon--phoneTransfer:before{content:'\e112'}.ms-Icon--phoneAdd:before{content:'\e113'}.ms-Icon--late:before{content:'\e114'}.ms-Icon--chatAdd:before{content:'\e115'}.ms-Icon--conflict:before{content:'\e116'}.ms-Icon--navigate:before{content:'\e117'}.ms-Icon--camera:before{content:'\e119'}.ms-Icon--filter:before{content:'\e11a'}.ms-Icon--fullscreen:before{content:'\e11b'}.ms-Icon--new:before{content:'\e11c'}.ms-Icon--mailEmpty:before{content:'\e11d'}.ms-Icon--editBox:before{content:'\e11e'}.ms-Icon--waffle:before{content:'\e11f'}.ms-Icon--work:before{content:'\e120'}.ms-Icon--eventRecurring:before{content:'\e121'}.ms-Icon--cart:before{content:'\e122'}.ms-Icon--socialListening:before{content:'\e123'}.ms-Icon--mapMarker:before{content:'\e124'}.ms-Icon--org:before{content:'\e125'}.ms-Icon--replyAlt:before{content:'\e150'}.ms-Icon--replyAllAlt:before{content:'\e152'}.ms-Icon--eventInfo:before{content:'\e154'}.ms-Icon--group:before{content:'\e155'}.ms-Icon--money:before{content:'\e161'}.ms-Icon--graph:before{content:'\e162'}.ms-Icon--noteEdit:before{content:'\e163'}.ms-Icon--dashboard:before{content:'\e164'}.ms-Icon--mailEdit:before{content:'\e165'}.ms-Icon--pinLeft:before{content:'\e167'}.ms-Icon--heart:before{content:'\e16a'}.ms-Icon--heartEmpty:before{content:'\e16b'}.ms-Icon--picture:before{content:'\e16c'}.ms-Icon--cake:before{content:'\e16d'}.ms-Icon--books:before{content:'\e16e'}.ms-Icon--chart:before{content:'\e16f'}.ms-Icon--video:before{content:'\e170'}.ms-Icon--soccer:before{content:'\e171'}.ms-Icon--meal:before{content:'\e172'}.ms-Icon--balloon:before{content:'\e173'}.ms-Icon--cat:before{content:'\e174'}.ms-Icon--dog:before{content:'\e175'}.ms-Icon--bag:before{content:'\e176'}.ms-Icon--music:before{content:'\e177'}.ms-Icon--stopwatch:before{content:'\e178'}.ms-Icon--coffee:before{content:'\e179'}.ms-Icon--briefcase:before{content:'\e17a'}.ms-Icon--pill:before{content:'\e17b'}.ms-Icon--trophy:before{content:'\e17c'}.ms-Icon--firstAid:before{content:'\e17d'}.ms-Icon--plane:before{content:'\e17e'}.ms-Icon--page:before{content:'\e17f'}.ms-Icon--car:before{content:'\e180'}.ms-Icon--dogAlt:before{content:'\e181'}.ms-Icon--document:before{content:'\e182'}.ms-Icon--metadata:before{content:'\e183'}.ms-Icon--pointItem:before{content:'\e184'}.ms-Icon--text:before{content:'\e185'}.ms-Icon--fieldText:before{content:'\e186'}.ms-Icon--fieldNumber:before{content:'\e187'}.ms-Icon--dropdown:before{content:'\e188'}.ms-Icon--radioButton:before{content:'\e189'}.ms-Icon--checkbox:before{content:'\e18a'}.ms-Icon--story:before{content:'\e18b'}.ms-Icon--bold:before{content:'\e18c'}.ms-Icon--italic:before{content:'\e18d'}.ms-Icon--underline:before{content:'\e18e'}.ms-Icon--quote:before{content:'\e18f'}.ms-Icon--styleRemove:before{content:'\e190'}.ms-Icon--pictureAdd:before{content:'\e191'}.ms-Icon--pictureRemove:before{content:'\e192'}.ms-Icon--desktop:before{content:'\e193'}.ms-Icon--tablet:before{content:'\e194'}.ms-Icon--mobile:before{content:'\e195'}.ms-Icon--table:before{content:'\e196'}.ms-Icon--hide:before{content:'\e197'}.ms-Icon--shield:before{content:'\e198'}.ms-Icon--header:before{content:'\e19a'}.ms-Icon--paint:before{content:'\e19b'}.ms-Icon--support:before{content:'\e19c'}.ms-Icon--settings:before{content:'\e19d'}.ms-Icon--creditCard:before{content:'\e19e'}.ms-Icon--reload:before{content:'\e19f'}.ms-Icon--peopleSecurity:before{content:'\e200'}.ms-Icon--fieldTextBox:before{content:'\e203'}.ms-Icon--multiChoice:before{content:'\e204'}.ms-Icon--fieldMail:before{content:'\e205'}.ms-Icon--contactForm:before{content:'\e206'}.ms-Icon--circleHalfFilled:before{content:'\e207'}.ms-Icon--documentPDF:before{content:'\e208'}.ms-Icon--bookmark:before{content:'\e209'}.ms-Icon--circleUnfilled:before{content:'\e20b'}.ms-Icon--circleFilled:before{content:'\e20c'}.ms-Icon--textBox:before{content:'\e20e'}.ms-Icon--drop:before{content:'\e20f'}.ms-Icon--sun:before{content:'\e210'}.ms-Icon--lifesaver:before{content:'\e211'}.ms-Icon--lifesaverLock:before{content:'\e212'}.ms-Icon--mailUnread:before{content:'\e213'}.ms-Icon--mailRead:before{content:'\e214'}.ms-Icon--inboxCheck:before{content:'\e215'}.ms-Icon--folderSearch:before{content:'\e216'}.ms-Icon--collapse:before{content:'\e217'}.ms-Icon--expand:before{content:'\e218'}.ms-Icon--ascending:before{content:'\e219'}.ms-Icon--descending:before{content:'\e21a'}.ms-Icon--filterClear:before{content:'\e21b'}.ms-Icon--checkboxEmpty:before{content:'\e21c'}.ms-Icon--checkboxMixed:before{content:'\e21d'}.ms-Icon--boards:before{content:'\e21e'}.ms-Icon--checkboxCheck:before{content:'\e21f'}.ms-Icon--frowny:before{content:'\e220'}.ms-Icon--lightBulb:before{content:'\e221'}.ms-Icon--globe:before{content:'\e222'}.ms-Icon--deviceWipe:before{content:'\e223'}.ms-Icon--listCheck:before{content:'\e226'}.ms-Icon--listGroup:before{content:'\e227'}.ms-Icon--timeline:before{content:'\e228'}.ms-Icon--fontIncrease:before{content:'\e229'}.ms-Icon--fontDecrease:before{content:'\e22a'}.ms-Icon--fontColor:before{content:'\e22b'}.ms-Icon--mailCheck:before{content:'\e22c'}.ms-Icon--mailDown:before{content:'\e22d'}.ms-Icon--listCheckbox:before{content:'\e22e'}.ms-Icon--sunAdd:before{content:'\e22f'}.ms-Icon--sunQuestion:before{content:'\e230'}.ms-Icon--chevronThinUp:before{content:'\e231'}.ms-Icon--chevronThinDown:before{content:'\e232'}.ms-Icon--chevronThinLeft:before{content:'\e233'}.ms-Icon--chevronThinRight:before{content:'\e234'}.ms-Icon--chevronThickUp:before{content:'\e235'}.ms-Icon--chevronThickDown:before{content:'\e236'}.ms-Icon--chevronThickLeft:before{content:'\e237'}.ms-Icon--chevronThickRight:before{content:'\e238'}.ms-Icon--linkRemove:before{content:'\e239'}.ms-Icon--alertOutline:before{content:'\e23b'}.ms-Icon--documentLandscape:before{content:'\e23c'}.ms-Icon--documentAdd:before{content:'\e23d'}.ms-Icon--toggleMiddle:before{content:'\e23e'}.ms-Icon--embed:before{content:'\e23f'}.ms-Icon--listNumbered:before{content:'\e240'}.ms-Icon--peopleCheck:before{content:'\e242'}.ms-Icon--caretUpOutline:before{content:'\e243'}.ms-Icon--caretDownOutline:before{content:'\e244'}.ms-Icon--caretLeftOutline:before{content:'\e245'}.ms-Icon--caretRightOutline:before{content:'\e246'}.ms-Icon--mailSync:before{content:'\e248'}.ms-Icon--mailError:before{content:'\e249'}.ms-Icon--mailPause:before{content:'\e24a'}.ms-Icon--peopleSync:before{content:'\e24b'}.ms-Icon--peopleError:before{content:'\e24c'}.ms-Icon--peoplePause:before{content:'\e24d'}.ms-Icon--circleBall:before{content:'\e24e'}.ms-Icon--circleBalloons:before{content:'\e24f'}.ms-Icon--circleCar:before{content:'\e250'}.ms-Icon--circleCat:before{content:'\e251'}.ms-Icon--circleCoffee:before{content:'\e252'}.ms-Icon--circleDog:before{content:'\e253'}.ms-Icon--circleLightning:before{content:'\e254'}.ms-Icon--circlePill:before{content:'\e255'}.ms-Icon--circlePlane:before{content:'\e256'}.ms-Icon--circlePoodle:before{content:'\e257'}.ms-Icon--checkPeople:before{content:'\e259'}.ms-Icon--documentSearch:before{content:'\e25a'}.ms-Icon--sortLines:before{content:'\e25c'}.ms-Icon--calendarPublic:before{content:'\e25d'}.ms-Icon--contactPublic:before{content:'\e25e'}.ms-Icon--classNotebook:before{content:'\e25f'}.ms-Icon--triangleUp:before{content:'\e260'}.ms-Icon--triangleRight:before{content:'\e261'}.ms-Icon--triangleDown:before{content:'\e262'}.ms-Icon--triangleLeft:before{content:'\e263'}.ms-Icon--triangleEmptyUp:before{content:'\e264'}.ms-Icon--triangleEmptyRight:before{content:'\e265'}.ms-Icon--triangleEmptyDown:before{content:'\e266'}.ms-Icon--triangleEmptyLeft:before{content:'\e267'}.ms-Icon--filePDF:before{content:'\e268'}.ms-Icon--fileImage:before{content:'\e26c'}.ms-Icon--fileDocument:before{content:'\e26d'}.ms-Icon--listGroup2:before{content:'\e26e'}.ms-Icon--copy:before{content:'\e26f'}.ms-Icon--creditCardOutline:before{content:'\e270'}.ms-Icon--mailPublic:before{content:'\e272'}.ms-Icon--folderPublic:before{content:'\e273'}.ms-Icon--teamwork:before{content:'\e274'}.ms-Icon--move:before{content:'\e275'}.ms-Icon--classroom:before{content:'\e276'}.ms-Icon--menu2:before{content:'\e277'}.ms-Icon--plus2:before{content:'\e278'}.ms-Icon--tag:before{content:'\e279'}.ms-Icon--arrowUp2:before{content:'\e27a'}.ms-Icon--arrowDown2:before{content:'\e27b'}.ms-Icon--circlePlus:before{content:'\e27c'}.ms-Icon--circleInfo:before{content:'\e27d'}.ms-Icon--section:before{content:'\e27e'}.ms-Icon--sections:before{content:'\e27f'}.ms-Icon--at:before{content:'\e282'}.ms-Icon--arrowUpRight:before{content:'\e283'}.ms-Icon--arrowDownRight:before{content:'\e284'}.ms-Icon--arrowDownLeft:before{content:'\e285'}.ms-Icon--arrowUpLeft:before{content:'\e286'}.ms-Icon--bundle:before{content:'\e287'}.ms-Icon--pictureEdit:before{content:'\e288'}.ms-Icon--protectionCenter:before{content:'\e289'}.ms-Icon--alert2:before{content:'\e28a'}.ms-Icon--circle{position:relative;display:inline-block;font-size:1rem;width:1em;height:1em;margin:0 0 0 .5em;padding:0;text-align:right;-webkit-font-smoothing:antialiased}.ms-Icon--circle:after,.ms-Icon--circle:before{line-height:1;font-size:inherit}.ms-Icon--circle:before{display:block;width:100%;height:100%;margin:0;padding:0;vertical-align:top;position:absolute}.ms-Icon--circle:after{content:'\e000';position:absolute;top:0;right:0;-webkit-transform:scale(2);transform:scale(2);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:0}.ms-Icon--circle.ms-Icon--star:before{top:-2%;right:1%}.ms-Icon--circle.ms-Icon--person:before{top:-2%;right:-3%}.ms-Icon--circle.ms-Icon--alert:before{top:-4%}.ms-Icon--circle.ms-Icon--mailOpen:before{top:-5%}.ms-Icon--circle.ms-Icon--people:before{top:-4%;right:-7%}.ms-Icon--circle.ms-Icon--bell:before{top:-3%}.ms-Icon--circle.ms-Icon--scheduling:before{top:-3%;right:6%}.ms-Icon--circle.ms-Icon--documents:before{top:-1%;right:-2%}.ms-Icon--circle.ms-Icon--listBullets:before{top:-1%;right:5%}.ms-Icon--circle.ms-Icon--panel:before{right:-2%}.ms-Icon--circle.ms-Icon--popout:before{top:-2%;right:-2%}.ms-Icon--circle.ms-Icon--home:before{top:-4%}.ms-Icon--circle.ms-Icon--favorites:before{top:-2%;right:2%}.ms-Icon--circle.ms-Icon--phone:before{top:-2%;right:-2%}.ms-Icon--circle.ms-Icon--mailSend:before{right:-10%}.ms-Icon--circle.ms-Icon--pencil:before{top:-2%;right:3%}.ms-Icon--circle.ms-Icon--flag:before{right:3%}.ms-Icon--circle.ms-Icon--miniatures:before{right:-3%}.ms-Icon--circle.ms-Icon--voicemail:before{top:2%;right:-7%}.ms-Icon--circle.ms-Icon--onlineAdd:before{top:-1%;right:2%}.ms-Icon--circle.ms-Icon--pinDown:before{top:5%}.ms-Icon--circle.ms-Icon--gear:before{right:2%}.ms-Icon--circle.ms-Icon--check:before{top:3%}.ms-Icon--circle.ms-Icon--ellipsis:before{top:2%;right:-12%}.ms-Icon--circle.ms-Icon--directions:before{right:10%}.ms-Icon--circle.ms-Icon--microphone:before{top:-3%}.ms-Icon--circle.ms-Icon--caretDown:before{top:5%;right:2%}.ms-Icon--circle.ms-Icon--caretLeft:before{right:-6%}.ms-Icon--circle.ms-Icon--caretRight:before{right:6%}.ms-Icon--circle.ms-Icon--caretUpLeft:before{top:5%;right:5%}.ms-Icon--circle.ms-Icon--caretUpRight:before{top:5%;right:-3%}.ms-Icon--circle.ms-Icon--caretDownRight:before{right:-3%}.ms-Icon--circle.ms-Icon--caretDownLeft:before{right:4%}.ms-Icon--circle.ms-Icon--note:before{top:2%;right:-3%}.ms-Icon--circle.ms-Icon--noteReply:before{top:6%;right:3%}.ms-Icon--circle.ms-Icon--noteForward:before{top:6%}.ms-Icon--circle.ms-Icon--key:before{top:5%;right:1%}.ms-Icon--circle.ms-Icon--tile:before{top:-1%;right:-18%}.ms-Icon--circle.ms-Icon--taskRecurring:before{top:2%;right:-1%}.ms-Icon--circle.ms-Icon--starEmpty:before{top:-4%;right:1%}.ms-Icon--circle.ms-Icon--documentReply:before{top:-2%;right:7%}.ms-Icon--circle.ms-Icon--documentForward:before{right:5%}.ms-Icon--circle.ms-Icon--partner:before{top:-2%}.ms-Icon--circle.ms-Icon--reactivate:before{top:-2%;right:6%}.ms-Icon--circle.ms-Icon--sort:before{right:-19%}.ms-Icon--circle.ms-Icon--personAdd:before{top:-2%;right:6%}.ms-Icon--circle.ms-Icon--chevronDown:before{top:4%}.ms-Icon--circle.ms-Icon--chevronLeft:before{right:-5%}.ms-Icon--circle.ms-Icon--chevronRight:before{right:4%}.ms-Icon--circle.ms-Icon--peopleAdd:before{top:-5%;right:-12%}.ms-Icon--circle.ms-Icon--newsfeed:before,.ms-Icon--circle.ms-Icon--notebook:before{right:-4%}.ms-Icon--circle.ms-Icon--link:before{top:2%;right:-18%}.ms-Icon--circle.ms-Icon--chevronsDown:before{top:5%}.ms-Icon--circle.ms-Icon--chevronsLeft:before{right:-5%}.ms-Icon--circle.ms-Icon--chevronsRight:before{right:4%}.ms-Icon--circle.ms-Icon--personRemove:before{right:5%}.ms-Icon--circle.ms-Icon--receiptCheck:before,.ms-Icon--circle.ms-Icon--receiptForward:before,.ms-Icon--circle.ms-Icon--receiptReply:before{right:-20%}.ms-Icon--circle.ms-Icon--peopleRemove:before{top:-3%;right:-12%}.ms-Icon--circle.ms-Icon--merge:before,.ms-Icon--circle.ms-Icon--split:before{top:2%}.ms-Icon--circle.ms-Icon--eventCancel:before{right:-2%}.ms-Icon--circle.ms-Icon--today:before{top:-2%}.ms-Icon--circle.ms-Icon--oofReply:before{right:5%}.ms-Icon--circle.ms-Icon--voicemailReply:before{top:4%;right:-25%}.ms-Icon--circle.ms-Icon--voicemailForward:before{top:4%;right:-20%}.ms-Icon--circle.ms-Icon--eye:before{top:-4%}.ms-Icon--circle.ms-Icon--post:before{top:-4%;right:4%}.ms-Icon--circle.ms-Icon--fax:before{top:-3%;right:-2%}.ms-Icon--circle.ms-Icon--lightning:before{top:2%;right:1%}.ms-Icon--circle.ms-Icon--filter:before{top:7%}.ms-Icon--circle.ms-Icon--cart:before{right:3%}.ms-Icon--circle.ms-Icon--mapMarker:before,.ms-Icon--circle.ms-Icon--socialListening:before{top:2%}.ms-Icon--circle.ms-Icon--replyAllAlt:before{right:-16%}.ms-Icon--circle.ms-Icon--group:before{right:-33%}.ms-Icon--circle.ms-Icon--money:before{right:-8%}.ms-Icon--circle.ms-Icon--noteEdit:before{right:4%}.ms-Icon--circle.ms-Icon--mailEdit:before{top:3%;right:7%}.ms-Icon--circle.ms-Icon--pinLeft:before{right:-6%}.ms-Icon--circle.ms-Icon--heart:before,.ms-Icon--circle.ms-Icon--heartEmpty:before{top:5%}.ms-Icon--circle.ms-Icon--cake:before{top:-5%}.ms-Icon--circle.ms-Icon--books:before{right:-8%}.ms-Icon--circle.ms-Icon--video:before{top:-3%;right:3%}.ms-Icon--circle.ms-Icon--balloon:before{top:4%;right:-1%}.ms-Icon--circle.ms-Icon--music:before{top:-2%;right:-5%}.ms-Icon--circle.ms-Icon--coffee:before,.ms-Icon--circle.ms-Icon--stopwatch:before{top:-3%;right:3%}.ms-Icon--circle.ms-Icon--plane:before{right:4%}.ms-Icon--circle.ms-Icon--dogAlt:before{right:-15%}.ms-Icon--circle.ms-Icon--metadata:before{top:-4%;right:4%}.ms-Icon--circle.ms-Icon--text:before{top:-4%;right:10%}.ms-Icon--circle.ms-Icon--dropdown:before,.ms-Icon--circle.ms-Icon--fieldNumber:before,.ms-Icon--circle.ms-Icon--fieldText:before{right:-14%}.ms-Icon--circle.ms-Icon--story:before{right:-5%}.ms-Icon--circle.ms-Icon--bold:before{right:4%}.ms-Icon--circle.ms-Icon--underline:before{top:4%}.ms-Icon--circle.ms-Icon--quote:before{right:-4%}.ms-Icon--circle.ms-Icon--styleRemove:before{top:4%;right:5%}.ms-Icon--circle.ms-Icon--pictureAdd:before,.ms-Icon--circle.ms-Icon--pictureRemove:before{right:-6%}.ms-Icon--circle.ms-Icon--mobile:before{right:-3%}.ms-Icon--circle.ms-Icon--hide:before{top:-4%}.ms-Icon--circle.ms-Icon--header:before{right:-9%}.ms-Icon--circle.ms-Icon--msn:before{right:3%}.ms-Icon--circle.ms-Icon--peopleCheck:before{right:-7%;top:-3%}.ms-Icon--circle.ms-Icon--caretDownOutline:before{top:6%}.ms-Icon--circle.ms-Icon--caretLeftOutline:before{right:-5%}.ms-Icon--circle.ms-Icon--caretRightOutline:before{right:5%}.ms-Icon--circle.ms-Icon--sway:before{right:-3%}.ms-Icon--circle.ms-Icon--mailSync:before{right:8%;top:3%}.ms-Icon--circle.ms-Icon--peopleError:before,.ms-Icon--circle.ms-Icon--peoplePause:before,.ms-Icon--circle.ms-Icon--peopleSync:before{right:-8%}.ms-Icon--circle.ms-Icon--documentSearch:before{right:8%}.ms-Icon--circle.ms-Icon--dynamicsMarketing:before{right:-8%}.ms-Icon--arrowDownLeft:before,.ms-Icon--arrowDownRight:before,.ms-Icon--arrowLeft,.ms-Icon--arrowRight,.ms-Icon--arrowUpLeft:before,.ms-Icon--arrowUpRight:before,.ms-Icon--bundle:before,.ms-Icon--calendar,.ms-Icon--caretDownLeft,.ms-Icon--caretDownRight,.ms-Icon--caretLeft,.ms-Icon--caretLeftOutline,.ms-Icon--caretRight,.ms-Icon--caretRightOutline,.ms-Icon--caretUpLeft,.ms-Icon--caretUpRight,.ms-Icon--cart,.ms-Icon--chart,.ms-Icon--chat,.ms-Icon--check,.ms-Icon--checkbox,.ms-Icon--checkboxCheck,.ms-Icon--checkPeople,.ms-Icon--chevronLeft,.ms-Icon--chevronRight,.ms-Icon--chevronsLeft,.ms-Icon--chevronsRight,.ms-Icon--chevronThickLeft,.ms-Icon--chevronThickRight,.ms-Icon--chevronThinLeft,.ms-Icon--chevronThinRight,.ms-Icon--contactForm,.ms-Icon--contactPublic:before,.ms-Icon--copy:before,.ms-Icon--directions,.ms-Icon--document,.ms-Icon--documentForward,.ms-Icon--documentLandscape,.ms-Icon--documentReply,.ms-Icon--dropdown,.ms-Icon--eventRecurring,.ms-Icon--eventShare,.ms-Icon--fileDocument:before,.ms-Icon--folder,.ms-Icon--folderMove,.ms-Icon--folderSearch,.ms-Icon--graph,.ms-Icon--inboxCheck,.ms-Icon--late,.ms-Icon--listBullets,.ms-Icon--listCheck,.ms-Icon--listCheckbox,.ms-Icon--listGroup,.ms-Icon--listGroup2:before,.ms-Icon--mailSend,.ms-Icon--mailSync,.ms-Icon--metadata,.ms-Icon--multiChoice,.ms-Icon--note,.ms-Icon--notebook,.ms-Icon--noteForward,.ms-Icon--noteReply,.ms-Icon--notRecurring,.ms-Icon--oofReply,.ms-Icon--page,.ms-Icon--peopleCheck,.ms-Icon--peopleSync,.ms-Icon--pinLeft,.ms-Icon--play,.ms-Icon--pointItem,.ms-Icon--post,.ms-Icon--question,.ms-Icon--questionReverse,.ms-Icon--reactivate,.ms-Icon--receiptCheck,.ms-Icon--receiptForward,.ms-Icon--receiptReply,.ms-Icon--refresh,.ms-Icon--reload,.ms-Icon--reply,.ms-Icon--replyAll,.ms-Icon--replyAllAlt,.ms-Icon--replyAlt,.ms-Icon--sections:before,.ms-Icon--socialListening,.ms-Icon--sortLines,.ms-Icon--sunQuestion,.ms-Icon--taskRecurring,.ms-Icon--tasks,.ms-Icon--timeline .ms-Icon--mailCheck,.ms-Icon--toggle,.ms-Icon--triangleEmptyLeft:before,.ms-Icon--triangleEmptyRight:before,.ms-Icon--triangleLeft:before,.ms-Icon--triangleRight:before,.ms-Icon--voicemailForward,.ms-Icon--voicemailReply{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.ms-u-slideRightIn10{-webkit-animation-name:y,a;animation-name:y,a;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes a{0%{-webkit-transform:translate3d(-10px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes a{0%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideRightIn20{-webkit-animation-name:y,b;animation-name:y,b;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes b{0%{-webkit-transform:translate3d(-20px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes b{0%{-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideRightIn40{-webkit-animation-name:y,c;animation-name:y,c;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes c{0%{-webkit-transform:translate3d(-40px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes c{0%{-webkit-transform:translate3d(-40px,0,0);transform:translate3d(-40px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideLeftIn10{-webkit-animation-name:y,d;animation-name:y,d;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes d{0%{-webkit-transform:translate3d(10px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes d{0%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideLeftIn20{-webkit-animation-name:y,e;animation-name:y,e;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes e{0%{-webkit-transform:translate3d(20px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes e{0%{-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideLeftIn40{-webkit-animation-name:y,f;animation-name:y,f;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes f{0%{-webkit-transform:translate3d(40px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes f{0%{-webkit-transform:translate3d(40px,0,0);transform:translate3d(40px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideRightIn400{-webkit-animation-name:y,g;animation-name:y,g;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes g{0%{-webkit-transform:translate3d(-400px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes g{0%{-webkit-transform:translate3d(-400px,0,0);transform:translate3d(-400px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideLeftIn400{-webkit-animation-name:y,h;animation-name:y,h;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes h{0%{-webkit-transform:translate3d(400px,0,0)}to{-webkit-transform:translateZ(0)}}@keyframes h{0%{-webkit-transform:translate3d(400px,0,0);transform:translate3d(400px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideUpIn20{-webkit-animation-name:y,i;animation-name:y,i;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes i{0%{-webkit-transform:translate3d(0,20px,0)}to{-webkit-transform:translateZ(0)}}@keyframes i{0%{-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideUpIn10{-webkit-animation-name:y,j;animation-name:y,j;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes j{0%{-webkit-transform:translate3d(0,10px,0)}to{-webkit-transform:translateZ(0)}}@keyframes j{0%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideDownIn20{-webkit-animation-name:y,k;animation-name:y,k;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes k{0%{-webkit-transform:translate3d(0,-20px,0)}to{-webkit-transform:translateZ(0)}}@keyframes k{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideDownIn10{-webkit-animation-name:y,l;animation-name:y,l;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes l{0%{-webkit-transform:translate3d(0,-10px,0)}to{-webkit-transform:translateZ(0)}}@keyframes l{0%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.ms-u-slideRightOut40{-webkit-animation-name:z,m;animation-name:z,m;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes m{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(40px,0,0)}}@keyframes m{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(40px,0,0);transform:translate3d(40px,0,0)}}.ms-u-slideLeftOut40{-webkit-animation-name:z,n;animation-name:z,n;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes n{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(-40px,0,0)}}@keyframes n{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-40px,0,0);transform:translate3d(-40px,0,0)}}.ms-u-slideRightOut400{-webkit-animation-name:z,o;animation-name:z,o;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes o{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(400px,0,0)}}@keyframes o{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(400px,0,0);transform:translate3d(400px,0,0)}}.ms-u-slideLeftOut400{-webkit-animation-name:z,p;animation-name:z,p;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes p{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(-400px,0,0)}}@keyframes p{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(-400px,0,0);transform:translate3d(-400px,0,0)}}.ms-u-slideUpOut20{-webkit-animation-name:z,q;animation-name:z,q;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes q{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(0,-20px,0)}}@keyframes q{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}}.ms-u-slideUpOut10{-webkit-animation-name:z,r;animation-name:z,r;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes r{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(0,-10px,0)}}@keyframes r{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}}.ms-u-slideDownOut20{-webkit-animation-name:z,s;animation-name:z,s;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes s{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(0,20px,0)}}@keyframes s{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}}.ms-u-slideDownOut10{-webkit-animation-name:z,t;animation-name:z,t;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes t{0%{-webkit-transform:translateZ(0)}to{-webkit-transform:translate3d(0,10px,0)}}@keyframes t{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.ms-u-scaleUpIn100{-webkit-animation-name:y,u;animation-name:y,u;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes u{0%{-webkit-transform:scale3d(.98,.98,1)}to{-webkit-transform:scaleX(1)}}@keyframes u{0%{-webkit-transform:scale3d(.98,.98,1);transform:scale3d(.98,.98,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.ms-u-scaleDownIn100{-webkit-animation-name:y,v;animation-name:y,v;-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes v{0%{-webkit-transform:scale3d(1.03,1.03,1)}to{-webkit-transform:scaleX(1)}}@keyframes v{0%{-webkit-transform:scale3d(1.03,1.03,1);transform:scale3d(1.03,1.03,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.ms-u-scaleUpOut103{-webkit-animation-name:z,w;animation-name:z,w;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes w{0%{-webkit-transform:scaleX(1)}to{-webkit-transform:scale3d(1.03,1.03,1)}}@keyframes w{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}to{-webkit-transform:scale3d(1.03,1.03,1);transform:scale3d(1.03,1.03,1)}}.ms-u-scaleDownOut98{-webkit-animation-name:z,x;animation-name:z,x;-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes x{0%{-webkit-transform:scaleX(1)}to{-webkit-transform:scale3d(.98,.98,1)}}@keyframes x{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}to{-webkit-transform:scale3d(.98,.98,1);transform:scale3d(.98,.98,1)}}.ms-u-fadeIn100,.ms-u-fadeIn400{-webkit-animation-duration:.367s;animation-duration:.367s;-webkit-animation-name:y;animation-name:y;-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-fadeIn100{-webkit-animation-duration:.167s;animation-duration:.167s}.ms-u-fadeIn200{-webkit-animation-duration:.267s;animation-duration:.267s}.ms-u-fadeIn200,.ms-u-fadeIn500{-webkit-animation-duration:.367s;animation-duration:.367s;-webkit-animation-name:y;animation-name:y;-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-fadeIn500{-webkit-animation-duration:.467s;animation-duration:.467s}@-webkit-keyframes y{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9)}to{opacity:1}}@keyframes y{0%{opacity:0;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9)}to{opacity:1}}.ms-u-fadeOut100,.ms-u-fadeOut400{-webkit-animation-duration:.367s;animation-duration:.367s;-webkit-animation-name:z;animation-name:z;-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-fadeOut100{-webkit-animation-duration:.1s;animation-duration:.1s}.ms-u-fadeOut200{-webkit-animation-duration:.167s;animation-duration:.167s}.ms-u-fadeOut200,.ms-u-fadeOut500{-webkit-animation-duration:.367s;animation-duration:.367s;-webkit-animation-name:z;animation-name:z;-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-fadeOut500{-webkit-animation-duration:.467s;animation-duration:.467s}@-webkit-keyframes z{0%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9)}to{opacity:0}}@keyframes z{0%{opacity:1;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9)}to{opacity:0}}.ms-u-rotate90deg{-webkit-animation-name:A;animation-name:A;-webkit-animation-duration:.1s;-moz-animation-duration:.1s;-ms-animation-duration:.1s;-o-animation-duration:.1s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes A{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(90deg)}}@keyframes A{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.ms-u-rotateN90deg{-webkit-animation-name:B;animation-name:B;-webkit-animation-duration:.1s;-moz-animation-duration:.1s;-ms-animation-duration:.1s;-o-animation-duration:.1s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes B{0%{-webkit-transform:rotate(90deg)}to{-webkit-transform:rotate(0deg)}}@keyframes B{0%{-webkit-transform:rotate(90deg);transform:rotate(90deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.ms-u-expandCollapse400{transition:height .367s cubic-bezier(.1,.25,.75,.9)}.ms-u-expandCollapse200{transition:height .167s cubic-bezier(.1,.25,.75,.9)}.ms-u-expandCollapse100{transition:height .1s cubic-bezier(.1,.25,.75,.9)}.ms-u-delay100{-webkit-animation-delay:.167s;animation-delay:.167s}.ms-u-delay200{-webkit-animation-delay:.267s;animation-delay:.267s}.ms-u-slideRightIn10{-webkit-animation-name:y,slideLeft10;animation-name:y,slideLeft10}.ms-u-slideRightIn10,.ms-u-slideRightIn20{-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideRightIn20{-webkit-animation-name:y,slideLeft20;animation-name:y,slideLeft20}.ms-u-slideRightIn40{-webkit-animation-name:y,slideLeft40;animation-name:y,slideLeft40}.ms-u-slideLeftIn10,.ms-u-slideRightIn40{-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideLeftIn10{-webkit-animation-name:y,slideRight10;animation-name:y,slideRight10}.ms-u-slideLeftIn20{-webkit-animation-name:y,slideRight20;animation-name:y,slideRight20}.ms-u-slideLeftIn20,.ms-u-slideLeftIn40{-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideLeftIn40{-webkit-animation-name:y,slideRight40;animation-name:y,slideRight40}.ms-u-slideRightIn400{-webkit-animation-name:y,h;animation-name:y,h}.ms-u-slideLeftIn400,.ms-u-slideRightIn400{-webkit-animation-duration:.367s;-moz-animation-duration:.367s;-ms-animation-duration:.367s;-o-animation-duration:.367s;-webkit-animation-timing-function:cubic-bezier(.1,.9,.2,1);animation-timing-function:cubic-bezier(.1,.9,.2,1);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideLeftIn400{-webkit-animation-name:y,slideRight400;animation-name:y,slideRight400}.ms-u-slideRightOut40{-webkit-animation-name:z,n;animation-name:z,n}.ms-u-slideLeftOut40,.ms-u-slideRightOut40{-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideLeftOut40{-webkit-animation-name:z,m;animation-name:z,m}.ms-u-slideRightOut400{-webkit-animation-name:z,p;animation-name:z,p}.ms-u-slideLeftOut400,.ms-u-slideRightOut400{-webkit-animation-duration:.167s;-moz-animation-duration:.167s;-ms-animation-duration:.167s;-o-animation-duration:.167s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-slideLeftOut400{-webkit-animation-name:z,o;animation-name:z,o}.ms-u-rotate90deg{-webkit-animation-name:B;animation-name:B}.ms-u-rotate90deg,.ms-u-rotateN90deg{-webkit-animation-duration:.1s;-moz-animation-duration:.1s;-ms-animation-duration:.1s;-o-animation-duration:.1s;-webkit-animation-timing-function:cubic-bezier(.1,.25,.75,.9);animation-timing-function:cubic-bezier(.1,.25,.75,.9);-webkit-animation-fill-mode:both;animation-fill-mode:both}.ms-u-rotateN90deg{-webkit-animation-name:A;animation-name:A}@media (max-width:479px){.ms-u-hiddenLgDown,.ms-u-hiddenMdDown,.ms-u-hiddenSm,.ms-u-hiddenXlDown,.ms-u-hiddenXxlDown{display:none!important}}@media (min-width:480px) and (max-width:639px){.ms-u-hiddenLgDown,.ms-u-hiddenMd,.ms-u-hiddenMdDown,.ms-u-hiddenMdUp,.ms-u-hiddenXlDown,.ms-u-hiddenXxlDown{display:none!important}}@media (min-width:640px) and (max-width:1023px){.ms-u-hiddenLg,.ms-u-hiddenLgDown,.ms-u-hiddenLgUp,.ms-u-hiddenMdUp,.ms-u-hiddenXlDown,.ms-u-hiddenXxlDown{display:none!important}}@media (min-width:1024px) and (max-width:1365px){.ms-u-hiddenLgUp,.ms-u-hiddenMdUp,.ms-u-hiddenXl,.ms-u-hiddenXlDown,.ms-u-hiddenXlUp,.ms-u-hiddenXxlDown{display:none!important}}@media (min-width:1366px) and (max-width:1919px){.ms-u-hiddenLgUp,.ms-u-hiddenMdUp,.ms-u-hiddenXlUp,.ms-u-hiddenXxl,.ms-u-hiddenXxlDown,.ms-u-hiddenXxlUp{display:none!important}}@media (min-width:1920px){.ms-u-hiddenLgUp,.ms-u-hiddenMdUp,.ms-u-hiddenXlUp,.ms-u-hiddenXxlUp,.ms-u-hiddenXxxl{display:none!important}}.ms-u-sm12{width:100%}.ms-u-sm11{width:91.66666666666666%}.ms-u-sm10{width:83.33333333333334%}.ms-u-sm9{width:75%}.ms-u-sm8{width:66.66666666666666%}.ms-u-sm7{width:58.333333333333336%}.ms-u-sm6{width:50%}.ms-u-sm5{width:41.66666666666667%}.ms-u-sm4{width:33.33333333333333%}.ms-u-sm3{width:25%}.ms-u-sm2{width:16.666666666666664%}.ms-u-sm1{width:8.333333333333332%}.ms-u-smPull12{left:100%}.ms-u-smPull11{left:91.66666666666666%}.ms-u-smPull10{left:83.33333333333334%}.ms-u-smPull9{left:75%}.ms-u-smPull8{left:66.66666666666666%}.ms-u-smPull7{left:58.333333333333336%}.ms-u-smPull6{left:50%}.ms-u-smPull5{left:41.66666666666667%}.ms-u-smPull4{left:33.33333333333333%}.ms-u-smPull3{left:25%}.ms-u-smPull2{left:16.666666666666664%}.ms-u-smPull1{left:8.333333333333332%}.ms-u-smPull0{left:auto}.ms-u-smPush12{right:100%}.ms-u-smPush11{right:91.66666666666666%}.ms-u-smPush10{right:83.33333333333334%}.ms-u-smPush9{right:75%}.ms-u-smPush8{right:66.66666666666666%}.ms-u-smPush7{right:58.333333333333336%}.ms-u-smPush6{right:50%}.ms-u-smPush5{right:41.66666666666667%}.ms-u-smPush4{right:33.33333333333333%}.ms-u-smPush3{right:25%}.ms-u-smPush2{right:16.666666666666664%}.ms-u-smPush1{right:8.333333333333332%}.ms-u-smPush0{right:auto}.ms-u-smOffset11{margin-right:91.66666666666666%}.ms-u-smOffset10{margin-right:83.33333333333334%}.ms-u-smOffset9{margin-right:75%}.ms-u-smOffset8{margin-right:66.66666666666666%}.ms-u-smOffset7{margin-right:58.333333333333336%}.ms-u-smOffset6{margin-right:50%}.ms-u-smOffset5{margin-right:41.66666666666667%}.ms-u-smOffset4{margin-right:33.33333333333333%}.ms-u-smOffset3{margin-right:25%}.ms-u-smOffset2{margin-right:16.666666666666664%}.ms-u-smOffset1{margin-right:8.333333333333332%}.ms-u-smOffset0{margin-right:0}@media (min-width:480px){.ms-u-md12{width:100%}.ms-u-md11{width:91.66666666666666%}.ms-u-md10{width:83.33333333333334%}.ms-u-md9{width:75%}.ms-u-md8{width:66.66666666666666%}.ms-u-md7{width:58.333333333333336%}.ms-u-md6{width:50%}.ms-u-md5{width:41.66666666666667%}.ms-u-md4{width:33.33333333333333%}.ms-u-md3{width:25%}.ms-u-md2{width:16.666666666666664%}.ms-u-md1{width:8.333333333333332%}.ms-u-mdPull12{left:100%}.ms-u-mdPull11{left:91.66666666666666%}.ms-u-mdPull10{left:83.33333333333334%}.ms-u-mdPull9{left:75%}.ms-u-mdPull8{left:66.66666666666666%}.ms-u-mdPull7{left:58.333333333333336%}.ms-u-mdPull6{left:50%}.ms-u-mdPull5{left:41.66666666666667%}.ms-u-mdPull4{left:33.33333333333333%}.ms-u-mdPull3{left:25%}.ms-u-mdPull2{left:16.666666666666664%}.ms-u-mdPull1{left:8.333333333333332%}.ms-u-mdPull0{left:auto}.ms-u-mdPush12{right:100%}.ms-u-mdPush11{right:91.66666666666666%}.ms-u-mdPush10{right:83.33333333333334%}.ms-u-mdPush9{right:75%}.ms-u-mdPush8{right:66.66666666666666%}.ms-u-mdPush7{right:58.333333333333336%}.ms-u-mdPush6{right:50%}.ms-u-mdPush5{right:41.66666666666667%}.ms-u-mdPush4{right:33.33333333333333%}.ms-u-mdPush3{right:25%}.ms-u-mdPush2{right:16.666666666666664%}.ms-u-mdPush1{right:8.333333333333332%}.ms-u-mdPush0{right:auto}.ms-u-mdOffset11{margin-right:91.66666666666666%}.ms-u-mdOffset10{margin-right:83.33333333333334%}.ms-u-mdOffset9{margin-right:75%}.ms-u-mdOffset8{margin-right:66.66666666666666%}.ms-u-mdOffset7{margin-right:58.333333333333336%}.ms-u-mdOffset6{margin-right:50%}.ms-u-mdOffset5{margin-right:41.66666666666667%}.ms-u-mdOffset4{margin-right:33.33333333333333%}.ms-u-mdOffset3{margin-right:25%}.ms-u-mdOffset2{margin-right:16.666666666666664%}.ms-u-mdOffset1{margin-right:8.333333333333332%}.ms-u-mdOffset0{margin-right:0}}@media (min-width:640px){.ms-u-lg12{width:100%}.ms-u-lg11{width:91.66666666666666%}.ms-u-lg10{width:83.33333333333334%}.ms-u-lg9{width:75%}.ms-u-lg8{width:66.66666666666666%}.ms-u-lg7{width:58.333333333333336%}.ms-u-lg6{width:50%}.ms-u-lg5{width:41.66666666666667%}.ms-u-lg4{width:33.33333333333333%}.ms-u-lg3{width:25%}.ms-u-lg2{width:16.666666666666664%}.ms-u-lg1{width:8.333333333333332%}.ms-u-lgPull12{left:100%}.ms-u-lgPull11{left:91.66666666666666%}.ms-u-lgPull10{left:83.33333333333334%}.ms-u-lgPull9{left:75%}.ms-u-lgPull8{left:66.66666666666666%}.ms-u-lgPull7{left:58.333333333333336%}.ms-u-lgPull6{left:50%}.ms-u-lgPull5{left:41.66666666666667%}.ms-u-lgPull4{left:33.33333333333333%}.ms-u-lgPull3{left:25%}.ms-u-lgPull2{left:16.666666666666664%}.ms-u-lgPull1{left:8.333333333333332%}.ms-u-lgPull0{left:auto}.ms-u-lgPush12{right:100%}.ms-u-lgPush11{right:91.66666666666666%}.ms-u-lgPush10{right:83.33333333333334%}.ms-u-lgPush9{right:75%}.ms-u-lgPush8{right:66.66666666666666%}.ms-u-lgPush7{right:58.333333333333336%}.ms-u-lgPush6{right:50%}.ms-u-lgPush5{right:41.66666666666667%}.ms-u-lgPush4{right:33.33333333333333%}.ms-u-lgPush3{right:25%}.ms-u-lgPush2{right:16.666666666666664%}.ms-u-lgPush1{right:8.333333333333332%}.ms-u-lgPush0{right:auto}.ms-u-lgOffset11{margin-right:91.66666666666666%}.ms-u-lgOffset10{margin-right:83.33333333333334%}.ms-u-lgOffset9{margin-right:75%}.ms-u-lgOffset8{margin-right:66.66666666666666%}.ms-u-lgOffset7{margin-right:58.333333333333336%}.ms-u-lgOffset6{margin-right:50%}.ms-u-lgOffset5{margin-right:41.66666666666667%}.ms-u-lgOffset4{margin-right:33.33333333333333%}.ms-u-lgOffset3{margin-right:25%}.ms-u-lgOffset2{margin-right:16.666666666666664%}.ms-u-lgOffset1{margin-right:8.333333333333332%}.ms-u-lgOffset0{margin-right:0}}@media (min-width:1024px){.ms-u-xl12{width:100%}.ms-u-xl11{width:91.66666666666666%}.ms-u-xl10{width:83.33333333333334%}.ms-u-xl9{width:75%}.ms-u-xl8{width:66.66666666666666%}.ms-u-xl7{width:58.333333333333336%}.ms-u-xl6{width:50%}.ms-u-xl5{width:41.66666666666667%}.ms-u-xl4{width:33.33333333333333%}.ms-u-xl3{width:25%}.ms-u-xl2{width:16.666666666666664%}.ms-u-xl1{width:8.333333333333332%}.ms-u-xlPull12{left:100%}.ms-u-xlPull11{left:91.66666666666666%}.ms-u-xlPull10{left:83.33333333333334%}.ms-u-xlPull9{left:75%}.ms-u-xlPull8{left:66.66666666666666%}.ms-u-xlPull7{left:58.333333333333336%}.ms-u-xlPull6{left:50%}.ms-u-xlPull5{left:41.66666666666667%}.ms-u-xlPull4{left:33.33333333333333%}.ms-u-xlPull3{left:25%}.ms-u-xlPull2{left:16.666666666666664%}.ms-u-xlPull1{left:8.333333333333332%}.ms-u-xlPull0{left:auto}.ms-u-xlPush12{right:100%}.ms-u-xlPush11{right:91.66666666666666%}.ms-u-xlPush10{right:83.33333333333334%}.ms-u-xlPush9{right:75%}.ms-u-xlPush8{right:66.66666666666666%}.ms-u-xlPush7{right:58.333333333333336%}.ms-u-xlPush6{right:50%}.ms-u-xlPush5{right:41.66666666666667%}.ms-u-xlPush4{right:33.33333333333333%}.ms-u-xlPush3{right:25%}.ms-u-xlPush2{right:16.666666666666664%}.ms-u-xlPush1{right:8.333333333333332%}.ms-u-xlPush0{right:auto}.ms-u-xlOffset11{margin-right:91.66666666666666%}.ms-u-xlOffset10{margin-right:83.33333333333334%}.ms-u-xlOffset9{margin-right:75%}.ms-u-xlOffset8{margin-right:66.66666666666666%}.ms-u-xlOffset7{margin-right:58.333333333333336%}.ms-u-xlOffset6{margin-right:50%}.ms-u-xlOffset5{margin-right:41.66666666666667%}.ms-u-xlOffset4{margin-right:33.33333333333333%}.ms-u-xlOffset3{margin-right:25%}.ms-u-xlOffset2{margin-right:16.666666666666664%}.ms-u-xlOffset1{margin-right:8.333333333333332%}.ms-u-xlOffset0{margin-right:0}}@media (min-width:1366px){.ms-u-xxl12{width:100%}.ms-u-xxl11{width:91.66666666666666%}.ms-u-xxl10{width:83.33333333333334%}.ms-u-xxl9{width:75%}.ms-u-xxl8{width:66.66666666666666%}.ms-u-xxl7{width:58.333333333333336%}.ms-u-xxl6{width:50%}.ms-u-xxl5{width:41.66666666666667%}.ms-u-xxl4{width:33.33333333333333%}.ms-u-xxl3{width:25%}.ms-u-xxl2{width:16.666666666666664%}.ms-u-xxl1{width:8.333333333333332%}.ms-u-xxlPull12{left:100%}.ms-u-xxlPull11{left:91.66666666666666%}.ms-u-xxlPull10{left:83.33333333333334%}.ms-u-xxlPull9{left:75%}.ms-u-xxlPull8{left:66.66666666666666%}.ms-u-xxlPull7{left:58.333333333333336%}.ms-u-xxlPull6{left:50%}.ms-u-xxlPull5{left:41.66666666666667%}.ms-u-xxlPull4{left:33.33333333333333%}.ms-u-xxlPull3{left:25%}.ms-u-xxlPull2{left:16.666666666666664%}.ms-u-xxlPull1{left:8.333333333333332%}.ms-u-xxlPull0{left:auto}.ms-u-xxlPush12{right:100%}.ms-u-xxlPush11{right:91.66666666666666%}.ms-u-xxlPush10{right:83.33333333333334%}.ms-u-xxlPush9{right:75%}.ms-u-xxlPush8{right:66.66666666666666%}.ms-u-xxlPush7{right:58.333333333333336%}.ms-u-xxlPush6{right:50%}.ms-u-xxlPush5{right:41.66666666666667%}.ms-u-xxlPush4{right:33.33333333333333%}.ms-u-xxlPush3{right:25%}.ms-u-xxlPush2{right:16.666666666666664%}.ms-u-xxlPush1{right:8.333333333333332%}.ms-u-xxlPush0{right:auto}.ms-u-xxlOffset11{margin-right:91.66666666666666%}.ms-u-xxlOffset10{margin-right:83.33333333333334%}.ms-u-xxlOffset9{margin-right:75%}.ms-u-xxlOffset8{margin-right:66.66666666666666%}.ms-u-xxlOffset7{margin-right:58.333333333333336%}.ms-u-xxlOffset6{margin-right:50%}.ms-u-xxlOffset5{margin-right:41.66666666666667%}.ms-u-xxlOffset4{margin-right:33.33333333333333%}.ms-u-xxlOffset3{margin-right:25%}.ms-u-xxlOffset2{margin-right:16.666666666666664%}.ms-u-xxlOffset1{margin-right:8.333333333333332%}.ms-u-xxlOffset0{margin-right:0}}@media (min-width:1920px){.ms-u-xxxl12{width:100%}.ms-u-xxxl11{width:91.66666666666666%}.ms-u-xxxl10{width:83.33333333333334%}.ms-u-xxxl9{width:75%}.ms-u-xxxl8{width:66.66666666666666%}.ms-u-xxxl7{width:58.333333333333336%}.ms-u-xxxl6{width:50%}.ms-u-xxxl5{width:41.66666666666667%}.ms-u-xxxl4{width:33.33333333333333%}.ms-u-xxxl3{width:25%}.ms-u-xxxl2{width:16.666666666666664%}.ms-u-xxxl1{width:8.333333333333332%}.ms-u-xxxlPull12{left:100%}.ms-u-xxxlPull11{left:91.66666666666666%}.ms-u-xxxlPull10{left:83.33333333333334%}.ms-u-xxxlPull9{left:75%}.ms-u-xxxlPull8{left:66.66666666666666%}.ms-u-xxxlPull7{left:58.333333333333336%}.ms-u-xxxlPull6{left:50%}.ms-u-xxxlPull5{left:41.66666666666667%}.ms-u-xxxlPull4{left:33.33333333333333%}.ms-u-xxxlPull3{left:25%}.ms-u-xxxlPull2{left:16.666666666666664%}.ms-u-xxxlPull1{left:8.333333333333332%}.ms-u-xxxlPull0{left:auto}.ms-u-xxxlPush12{right:100%}.ms-u-xxxlPush11{right:91.66666666666666%}.ms-u-xxxlPush10{right:83.33333333333334%}.ms-u-xxxlPush9{right:75%}.ms-u-xxxlPush8{right:66.66666666666666%}.ms-u-xxxlPush7{right:58.333333333333336%}.ms-u-xxxlPush6{right:50%}.ms-u-xxxlPush5{right:41.66666666666667%}.ms-u-xxxlPush4{right:33.33333333333333%}.ms-u-xxxlPush3{right:25%}.ms-u-xxxlPush2{right:16.666666666666664%}.ms-u-xxxlPush1{right:8.333333333333332%}.ms-u-xxxlPush0{right:auto}.ms-u-xxxlOffset11{margin-right:91.66666666666666%}.ms-u-xxxlOffset10{margin-right:83.33333333333334%}.ms-u-xxxlOffset9{margin-right:75%}.ms-u-xxxlOffset8{margin-right:66.66666666666666%}.ms-u-xxxlOffset7{margin-right:58.333333333333336%}.ms-u-xxxlOffset6{margin-right:50%}.ms-u-xxxlOffset5{margin-right:41.66666666666667%}.ms-u-xxxlOffset4{margin-right:33.33333333333333%}.ms-u-xxxlOffset3{margin-right:25%}.ms-u-xxxlOffset2{margin-right:16.666666666666664%}.ms-u-xxxlOffset1{margin-right:8.333333333333332%}.ms-u-xxxlOffset0{margin-right:0}}.ms-Grid{box-sizing:border-box;*zoom:1;padding:0 8px}.ms-Grid:after,.ms-Grid:before{display:table;content:'';line-height:0}.ms-Grid:after{clear:both}.ms-Grid-row{margin:0 -8px;box-sizing:border-box;*zoom:1}.ms-Grid-row:after,.ms-Grid-row:before{display:table;content:'';line-height:0}.ms-Grid-row:after{clear:both}.ms-Grid-col{position:relative;min-height:1px;padding-right:8px;padding-left:8px;box-sizing:border-box;float:right}.ms-Grid-col .ms-Grid{padding:0}
|
@@ -0,0 +1,2451 @@
|
|
1
|
+
//Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
3
|
+
|
4
|
+
/**
|
5
|
+
* Breadcrumb component
|
6
|
+
*
|
7
|
+
* Shows the user's current location in a hierarchy and provides a means of navigating upward.
|
8
|
+
*
|
9
|
+
*/
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @namespace fabric
|
13
|
+
*/
|
14
|
+
var fabric = fabric || {};
|
15
|
+
/**
|
16
|
+
*
|
17
|
+
* @param {HTMLElement} container - the target container for an instance of Breadcrumb
|
18
|
+
* @constructor
|
19
|
+
*
|
20
|
+
* If dynamically populating a list run the constructor after the list has been populated
|
21
|
+
* in the DOM.
|
22
|
+
*/
|
23
|
+
fabric.Breadcrumb = function(container) {
|
24
|
+
this.breadcrumb = container;
|
25
|
+
this.breadcrumbList = container.querySelector('.ms-Breadcrumb-list');
|
26
|
+
this.listItems = container.querySelectorAll('.ms-Breadcrumb-listItem');
|
27
|
+
this.contextMenu = container.querySelector('.ms-ContextualMenu');
|
28
|
+
this.overflowButton = container.querySelector('.ms-Breadcrumb-overflowButton');
|
29
|
+
this.overflowMenu = container.querySelector('.ms-Breadcrumb-overflowMenu');
|
30
|
+
this.itemCollection = [];
|
31
|
+
this.currentMaxItems = 0;
|
32
|
+
this.init();
|
33
|
+
|
34
|
+
};
|
35
|
+
|
36
|
+
fabric.Breadcrumb.prototype = (function() {
|
37
|
+
|
38
|
+
//medium breakpoint
|
39
|
+
var MEDIUM = 639;
|
40
|
+
|
41
|
+
/**
|
42
|
+
* initializes component
|
43
|
+
*/
|
44
|
+
var init = function() {
|
45
|
+
_setListeners.call(this);
|
46
|
+
_createItemCollection.call(this);
|
47
|
+
_onResize.call(this, null);
|
48
|
+
};
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Adds a breadcrumb item to a breadcrumb
|
52
|
+
* @param itemLabel {String} the item's text label
|
53
|
+
* @param itemLink {String} the item's href link
|
54
|
+
* @param tabIndex {number} the item's tabIndex
|
55
|
+
*/
|
56
|
+
var addItem = function(itemLabel, itemLink, tabIndex) {
|
57
|
+
this.itemCollection.push({text: itemLabel, link: itemLink, tabIndex: tabIndex});
|
58
|
+
_updateBreadcrumbs.call(this);
|
59
|
+
};
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Removes a breadcrumb item by item label in the breadcrumbs list
|
63
|
+
* @param itemLabel {String} the item's text label
|
64
|
+
*/
|
65
|
+
var removeItemByLabel = function(itemLabel) {
|
66
|
+
var i = this.itemCollection.length;
|
67
|
+
while (i--) {
|
68
|
+
if (this.itemCollection[i].text === itemLabel) {
|
69
|
+
this.itemCollection.splice(i, 1);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
_updateBreadcrumbs.call(this);
|
73
|
+
};
|
74
|
+
|
75
|
+
/**
|
76
|
+
* removes a breadcrumb item by position in the breadcrumbs list
|
77
|
+
* index starts at 0
|
78
|
+
* @param itemLabel {String} the item's text label
|
79
|
+
* @param itemLink {String} the item's href link
|
80
|
+
* @param tabIndex {number} the item's tabIndex
|
81
|
+
*/
|
82
|
+
var removeItemByPosition = function(value) {
|
83
|
+
this.itemCollection.splice(value, 1);
|
84
|
+
_updateBreadcrumbs.call(this);
|
85
|
+
};
|
86
|
+
|
87
|
+
/**
|
88
|
+
* create internal model of list items from DOM
|
89
|
+
*/
|
90
|
+
var _createItemCollection = function() {
|
91
|
+
var length = this.listItems.length;
|
92
|
+
var i = 0;
|
93
|
+
var item;
|
94
|
+
var text;
|
95
|
+
var link;
|
96
|
+
var tabIndex;
|
97
|
+
|
98
|
+
for (i; i < length; i++) {
|
99
|
+
item = this.listItems[i].querySelector('.ms-Breadcrumb-itemLink');
|
100
|
+
text = item.textContent;
|
101
|
+
link = item.getAttribute('href');
|
102
|
+
tabIndex = parseInt(item.getAttribute('tabindex'), 10);
|
103
|
+
this.itemCollection.push({text: text, link: link, tabIndex: tabIndex});
|
104
|
+
}
|
105
|
+
};
|
106
|
+
|
107
|
+
/**
|
108
|
+
* Re-render lists on resize
|
109
|
+
*
|
110
|
+
*/
|
111
|
+
var _onResize = function() {
|
112
|
+
_closeOverflow.call(this, null);
|
113
|
+
_renderListOnResize.call(this);
|
114
|
+
};
|
115
|
+
|
116
|
+
/**
|
117
|
+
* render breadcrumbs and overflow menus on resize
|
118
|
+
*/
|
119
|
+
var _renderListOnResize = function() {
|
120
|
+
var maxItems = window.innerWidth > MEDIUM ? 4 : 2;
|
121
|
+
if (maxItems !== this.currentMaxItems) {
|
122
|
+
_updateBreadcrumbs.call(this);
|
123
|
+
}
|
124
|
+
|
125
|
+
this.currentMaxItems = maxItems;
|
126
|
+
};
|
127
|
+
|
128
|
+
/**
|
129
|
+
* creates the overflow menu
|
130
|
+
*/
|
131
|
+
var _addItemsToOverflow = function(maxItems) {
|
132
|
+
_resetList.call(this, this.contextMenu);
|
133
|
+
var end = this.itemCollection.length - maxItems;
|
134
|
+
var overflowItems = this.itemCollection.slice(0, end);
|
135
|
+
var contextMenu = this.contextMenu;
|
136
|
+
overflowItems.forEach(function(item) {
|
137
|
+
var li = document.createElement('li');
|
138
|
+
li.className = 'ms-ContextualMenu-item';
|
139
|
+
if(!isNaN(item.tabIndex)) {
|
140
|
+
li.setAttribute('tabindex', item.tabIndex);
|
141
|
+
}
|
142
|
+
var a = document.createElement('a');
|
143
|
+
a.className = 'ms-ContextualMenu-link';
|
144
|
+
if (item.link !== null) {
|
145
|
+
a.setAttribute('href', item.link);
|
146
|
+
}
|
147
|
+
a.textContent = item.text;
|
148
|
+
li.appendChild(a);
|
149
|
+
contextMenu.appendChild(li);
|
150
|
+
});
|
151
|
+
};
|
152
|
+
|
153
|
+
/**
|
154
|
+
* creates the breadcrumbs
|
155
|
+
*/
|
156
|
+
var _addBreadcrumbItems = function(maxItems) {
|
157
|
+
_resetList.call(this, this.breadcrumbList);
|
158
|
+
var i = this.itemCollection.length - maxItems;
|
159
|
+
i = i < 0 ? 0 : i;
|
160
|
+
if (i >= 0) {
|
161
|
+
for (i; i < this.itemCollection.length; i++) {
|
162
|
+
var listItem = document.createElement('li');
|
163
|
+
var item = this.itemCollection[i];
|
164
|
+
var a = document.createElement('a');
|
165
|
+
var chevron = document.createElement('i');
|
166
|
+
listItem.className = 'ms-Breadcrumb-listItem';
|
167
|
+
a.className = 'ms-Breadcrumb-itemLink';
|
168
|
+
if (item.link !== null) {
|
169
|
+
a.setAttribute('href', item.link);
|
170
|
+
}
|
171
|
+
if (!isNaN(item.tabIndex)) {
|
172
|
+
a.setAttribute('tabindex', item.tabIndex);
|
173
|
+
}
|
174
|
+
a.textContent = item.text;
|
175
|
+
chevron.className = 'ms-Breadcrumb-chevron ms-Icon ms-Icon--chevronRight';
|
176
|
+
listItem.appendChild(a);
|
177
|
+
listItem.appendChild(chevron);
|
178
|
+
this.breadcrumbList.appendChild(listItem);
|
179
|
+
}
|
180
|
+
}
|
181
|
+
};
|
182
|
+
|
183
|
+
/**
|
184
|
+
* resets a list by removing its children
|
185
|
+
*/
|
186
|
+
var _resetList = function(list) {
|
187
|
+
while (list.firstChild) {
|
188
|
+
list.removeChild(list.firstChild);
|
189
|
+
}
|
190
|
+
};
|
191
|
+
|
192
|
+
/**
|
193
|
+
* opens the overflow menu
|
194
|
+
*/
|
195
|
+
var _openOverflow = function(event) {
|
196
|
+
if (this.overflowMenu.className.indexOf(' is-open') === -1) {
|
197
|
+
this.overflowMenu.className += ' is-open';
|
198
|
+
removeOutlinesOnClick.call(this, event);
|
199
|
+
// force focus rect onto overflow button
|
200
|
+
this.overflowButton.focus();
|
201
|
+
}
|
202
|
+
};
|
203
|
+
|
204
|
+
var _overflowKeyPress = function(event) {
|
205
|
+
if (event.keyCode === 13) {
|
206
|
+
_openOverflow.call(this, event);
|
207
|
+
}
|
208
|
+
};
|
209
|
+
|
210
|
+
/**
|
211
|
+
* closes the overflow menu
|
212
|
+
*/
|
213
|
+
var _closeOverflow = function(event) {
|
214
|
+
if (!event || event.target !== this.overflowButton) {
|
215
|
+
_removeClass.call(this, this.overflowMenu, ' is-open');
|
216
|
+
}
|
217
|
+
};
|
218
|
+
|
219
|
+
/**
|
220
|
+
* utility that removes a class from an element
|
221
|
+
*/
|
222
|
+
var _removeClass = function (element, value) {
|
223
|
+
var index = element.className.indexOf(value);
|
224
|
+
if (index > -1) {
|
225
|
+
element.className = element.className.substring(0, index);
|
226
|
+
}
|
227
|
+
};
|
228
|
+
|
229
|
+
/**
|
230
|
+
* sets handlers for resize and button click events
|
231
|
+
*/
|
232
|
+
var _setListeners = function() {
|
233
|
+
window.addEventListener('resize', _onResize.bind(this), false);
|
234
|
+
document.addEventListener('click', _closeOverflow.bind(this), false);
|
235
|
+
this.overflowButton.addEventListener('click', _openOverflow.bind(this), false);
|
236
|
+
this.overflowButton.addEventListener('keypress', _overflowKeyPress.bind(this), false);
|
237
|
+
this.breadcrumbList.addEventListener('click', removeOutlinesOnClick.bind(this), false);
|
238
|
+
};
|
239
|
+
|
240
|
+
/**
|
241
|
+
* removes focus outlines so they don't linger after click
|
242
|
+
*/
|
243
|
+
var removeOutlinesOnClick = function(event) {
|
244
|
+
event.target.blur();
|
245
|
+
};
|
246
|
+
|
247
|
+
/**
|
248
|
+
* updates the breadcrumbs and overflow menu
|
249
|
+
*/
|
250
|
+
var _updateBreadcrumbs = function() {
|
251
|
+
var maxItems = window.innerWidth > MEDIUM ? 4 : 2;
|
252
|
+
if (this.itemCollection.length > maxItems) {
|
253
|
+
this.breadcrumb.className += ' is-overflow';
|
254
|
+
} else {
|
255
|
+
_removeClass.call(this, this.breadcrumb, ' is-overflow');
|
256
|
+
}
|
257
|
+
|
258
|
+
_addBreadcrumbItems.call(this, maxItems);
|
259
|
+
_addItemsToOverflow.call(this, maxItems);
|
260
|
+
};
|
261
|
+
|
262
|
+
return {
|
263
|
+
init: init,
|
264
|
+
addItem: addItem,
|
265
|
+
removeItemByLabel: removeItemByLabel,
|
266
|
+
removeItemByPosition: removeItemByPosition
|
267
|
+
};
|
268
|
+
|
269
|
+
}());
|
270
|
+
|
271
|
+
|
272
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
273
|
+
|
274
|
+
/**
|
275
|
+
* Command Bar Plugin
|
276
|
+
*/
|
277
|
+
|
278
|
+
(function ($) {
|
279
|
+
$.fn.CommandBar = function () {
|
280
|
+
|
281
|
+
var createMenuItem = function(text) {
|
282
|
+
var item = '<li class="ms-ContextualMenu-item"><a class="ms-ContextualMenu-link"" href="#">';
|
283
|
+
item += text;
|
284
|
+
item += '</a></li>';
|
285
|
+
|
286
|
+
return item;
|
287
|
+
};
|
288
|
+
|
289
|
+
var saveCommands = function($commands, $commandWidth, $commandarea) {
|
290
|
+
var commands = [];
|
291
|
+
$commands.each(function() {
|
292
|
+
var $Item = $(this);
|
293
|
+
var $rightOffset = ($Item.position().left + $Item.outerWidth() + $commandWidth + 10) - $commandarea.position().left; // Added padding of 10
|
294
|
+
commands.push({ jquery: $Item, rightOffset: $rightOffset});
|
295
|
+
});
|
296
|
+
|
297
|
+
return commands;
|
298
|
+
};
|
299
|
+
|
300
|
+
var processCommands = function(commands, width, overflowwidth) {
|
301
|
+
var overFlowCommands = [];
|
302
|
+
|
303
|
+
for(var i=0; i < commands.length; i++) {
|
304
|
+
var $Item = commands[i].jquery;
|
305
|
+
var rightOffset = commands[i].rightOffset;
|
306
|
+
|
307
|
+
// If the command is outside the right boundaries add to overflow items
|
308
|
+
if(!$Item.hasClass('ms-CommandBarItem-overflow')) {
|
309
|
+
if((rightOffset + overflowwidth) > width) {
|
310
|
+
overFlowCommands.push($Item);
|
311
|
+
} else {
|
312
|
+
// Make sure item is displayed
|
313
|
+
$Item.removeClass('is-hidden');
|
314
|
+
}
|
315
|
+
}
|
316
|
+
}
|
317
|
+
return overFlowCommands;
|
318
|
+
};
|
319
|
+
|
320
|
+
var processOverflow = function(overFlowCommands, $oCommand, $menu) {
|
321
|
+
var overflowStrings = '';
|
322
|
+
|
323
|
+
if(overFlowCommands.length > 0) {
|
324
|
+
$oCommand.addClass("is-visible");
|
325
|
+
// Empty menu
|
326
|
+
$menu.html('');
|
327
|
+
|
328
|
+
// Add overflowed commands to ContextualMenu
|
329
|
+
for(var i = 0; i < overFlowCommands.length; i++) {
|
330
|
+
var $Item = $(overFlowCommands[i]);
|
331
|
+
// Hide Element in CommandBar
|
332
|
+
$Item.addClass('is-hidden');
|
333
|
+
var commandBarItemText = $Item.find('.ms-CommandBarItem-commandText').text();
|
334
|
+
overflowStrings += createMenuItem(commandBarItemText);
|
335
|
+
}
|
336
|
+
$menu.html(overflowStrings);
|
337
|
+
} else {
|
338
|
+
$oCommand.removeClass("is-visible");
|
339
|
+
}
|
340
|
+
};
|
341
|
+
|
342
|
+
/** Go through each CommandBar we've been given. */
|
343
|
+
return this.each(function () {
|
344
|
+
var $CommandBar = $(this);
|
345
|
+
var $CommandMainArea = $CommandBar.find('.ms-CommandBar-mainArea');
|
346
|
+
var $CommandBarItems = $CommandMainArea.find('.ms-CommandBarItem').not('.ms-CommandBarItem-overflow');
|
347
|
+
var $OverflowCommand = $CommandBar.find('.ms-CommandBarItem-overflow');
|
348
|
+
var $OverflowCommandWidth = $CommandBar.find('.ms-CommandBarItem-overflow').outerWidth();
|
349
|
+
var $OverflowMenu = $CommandBar.find('.ms-CommandBar-overflowMenu');
|
350
|
+
var $SearchBox = $CommandBar.find('.ms-CommandBarSearch');
|
351
|
+
var mobileSwitch = false;
|
352
|
+
var overFlowCommands;
|
353
|
+
var allCommands;
|
354
|
+
|
355
|
+
// Go through process and save commands
|
356
|
+
allCommands = saveCommands($CommandBarItems, $OverflowCommandWidth, $CommandMainArea);
|
357
|
+
|
358
|
+
// Initiate process commands and add commands to overflow on load
|
359
|
+
overFlowCommands = processCommands(allCommands, $CommandMainArea.innerWidth(), $OverflowCommandWidth);
|
360
|
+
processOverflow(overFlowCommands, $OverflowCommand, $OverflowMenu);
|
361
|
+
|
362
|
+
// Set Search Behavior
|
363
|
+
if($(window).width() < 640) {
|
364
|
+
|
365
|
+
$('.ms-CommandBarSearch-iconSearchWrapper').click(function() {
|
366
|
+
$(this).closest('.ms-CommandBarSearch').addClass('is-active');
|
367
|
+
});
|
368
|
+
|
369
|
+
}
|
370
|
+
|
371
|
+
// Add resize event handler on commandBar
|
372
|
+
$(window).resize(function() {
|
373
|
+
var overFlowCommands;
|
374
|
+
|
375
|
+
if($(window).width() < 640 && mobileSwitch === false) {
|
376
|
+
// Go through process and save commands
|
377
|
+
allCommands = saveCommands($CommandBarItems, $OverflowCommandWidth, $CommandMainArea);
|
378
|
+
|
379
|
+
mobileSwitch = true;
|
380
|
+
|
381
|
+
// Search Behavior
|
382
|
+
$('.ms-CommandBarSearch-iconSearchWrapper').unbind();
|
383
|
+
$('.ms-CommandBarSearch-iconSearchWrapper').click(function() {
|
384
|
+
$(this).closest('.ms-CommandBarSearch').addClass('is-active');
|
385
|
+
});
|
386
|
+
|
387
|
+
} else if($(window).width() > 639 && mobileSwitch === true) {
|
388
|
+
// Go through process and save commands
|
389
|
+
allCommands = saveCommands($CommandBarItems, $OverflowCommandWidth, $CommandMainArea);
|
390
|
+
|
391
|
+
mobileSwitch = false;
|
392
|
+
$('.ms-CommandBarSearch').unbind();
|
393
|
+
|
394
|
+
}
|
395
|
+
|
396
|
+
// Initiate process commands and add commands to overflow on load
|
397
|
+
overFlowCommands = processCommands(allCommands, $CommandMainArea.innerWidth(), $OverflowCommandWidth);
|
398
|
+
processOverflow(overFlowCommands, $OverflowCommand, $OverflowMenu);
|
399
|
+
|
400
|
+
});
|
401
|
+
|
402
|
+
// Hook up contextual menu
|
403
|
+
$OverflowCommand.click(function() {
|
404
|
+
$OverflowMenu.toggleClass('is-open');
|
405
|
+
});
|
406
|
+
|
407
|
+
$OverflowCommand.focusout(function() {
|
408
|
+
$OverflowMenu.removeClass('is-open');
|
409
|
+
});
|
410
|
+
|
411
|
+
$SearchBox.find('.ms-CommandBarSearch-input').click(function() {
|
412
|
+
$(this).closest('.ms-CommandBarSearch').addClass('is-active');
|
413
|
+
});
|
414
|
+
|
415
|
+
$SearchBox.find('.ms-CommandBarSearch-input').on('focus', function() {
|
416
|
+
$(this).closest('.ms-CommandBarSearch').addClass('is-active');
|
417
|
+
});
|
418
|
+
|
419
|
+
// When clicking the x clear the SearchBox and put state back to normal
|
420
|
+
$SearchBox.find('.ms-CommandBarSearch-iconClearWrapper').click(function() {
|
421
|
+
var $input = $(this).parent().find('.ms-CommandBarSearch-input');
|
422
|
+
$input.val('');
|
423
|
+
$input.parent().removeClass('is-active');
|
424
|
+
});
|
425
|
+
|
426
|
+
$SearchBox.parent().find('.ms-CommandBarSearch-input').blur(function() {
|
427
|
+
var $input = $(this);
|
428
|
+
$input.val('');
|
429
|
+
$input.parent().removeClass('is-active');
|
430
|
+
});
|
431
|
+
|
432
|
+
});
|
433
|
+
};
|
434
|
+
})(jQuery);
|
435
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
436
|
+
|
437
|
+
(function ($) {
|
438
|
+
|
439
|
+
/**
|
440
|
+
* DatePicker Plugin
|
441
|
+
*/
|
442
|
+
|
443
|
+
$.fn.DatePicker = function (options) {
|
444
|
+
|
445
|
+
return this.each(function () {
|
446
|
+
|
447
|
+
/** Set up variables and run the Pickadate plugin. */
|
448
|
+
var $datePicker = $(this);
|
449
|
+
var $dateField = $datePicker.find('.ms-TextField-field').pickadate($.extend({
|
450
|
+
// Strings and translations.
|
451
|
+
weekdaysShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
|
452
|
+
|
453
|
+
// Don't render the buttons
|
454
|
+
today: '',
|
455
|
+
clear: '',
|
456
|
+
close: '',
|
457
|
+
|
458
|
+
// Events
|
459
|
+
onStart: function() {
|
460
|
+
initCustomView($datePicker);
|
461
|
+
},
|
462
|
+
|
463
|
+
// Classes
|
464
|
+
klass: {
|
465
|
+
|
466
|
+
// The element states
|
467
|
+
input: 'ms-DatePicker-input',
|
468
|
+
active: 'ms-DatePicker-input--active',
|
469
|
+
|
470
|
+
// The root picker and states
|
471
|
+
picker: 'ms-DatePicker-picker',
|
472
|
+
opened: 'ms-DatePicker-picker--opened',
|
473
|
+
focused: 'ms-DatePicker-picker--focused',
|
474
|
+
|
475
|
+
// The picker holder
|
476
|
+
holder: 'ms-DatePicker-holder',
|
477
|
+
|
478
|
+
// The picker frame, wrapper, and box
|
479
|
+
frame: 'ms-DatePicker-frame',
|
480
|
+
wrap: 'ms-DatePicker-wrap',
|
481
|
+
box: 'ms-DatePicker-dayPicker',
|
482
|
+
|
483
|
+
// The picker header
|
484
|
+
header: 'ms-DatePicker-header',
|
485
|
+
|
486
|
+
// Month & year labels
|
487
|
+
month: 'ms-DatePicker-month',
|
488
|
+
year: 'ms-DatePicker-year',
|
489
|
+
|
490
|
+
// Table of dates
|
491
|
+
table: 'ms-DatePicker-table',
|
492
|
+
|
493
|
+
// Weekday labels
|
494
|
+
weekdays: 'ms-DatePicker-weekday',
|
495
|
+
|
496
|
+
// Day states
|
497
|
+
day: 'ms-DatePicker-day',
|
498
|
+
disabled: 'ms-DatePicker-day--disabled',
|
499
|
+
selected: 'ms-DatePicker-day--selected',
|
500
|
+
highlighted: 'ms-DatePicker-day--highlighted',
|
501
|
+
now: 'ms-DatePicker-day--today',
|
502
|
+
infocus: 'ms-DatePicker-day--infocus',
|
503
|
+
outfocus: 'ms-DatePicker-day--outfocus',
|
504
|
+
|
505
|
+
}
|
506
|
+
},options||{}));
|
507
|
+
var $picker = $dateField.pickadate('picker');
|
508
|
+
|
509
|
+
/** Respond to built-in picker events. */
|
510
|
+
$picker.on({
|
511
|
+
render: function() {
|
512
|
+
updateCustomView($datePicker);
|
513
|
+
},
|
514
|
+
open: function() {
|
515
|
+
scrollUp($datePicker);
|
516
|
+
}
|
517
|
+
});
|
518
|
+
|
519
|
+
});
|
520
|
+
};
|
521
|
+
|
522
|
+
/**
|
523
|
+
* After the Pickadate plugin starts, this function
|
524
|
+
* adds additional controls to the picker view.
|
525
|
+
*/
|
526
|
+
function initCustomView($datePicker) {
|
527
|
+
|
528
|
+
/** Get some variables ready. */
|
529
|
+
var $monthControls = $datePicker.find('.ms-DatePicker-monthComponents');
|
530
|
+
var $goToday = $datePicker.find('.ms-DatePicker-goToday');
|
531
|
+
var $monthPicker = $datePicker.find('.ms-DatePicker-monthPicker');
|
532
|
+
var $yearPicker = $datePicker.find('.ms-DatePicker-yearPicker');
|
533
|
+
var $pickerWrapper = $datePicker.find('.ms-DatePicker-wrap');
|
534
|
+
var $picker = $datePicker.find('.ms-TextField-field').pickadate('picker');
|
535
|
+
|
536
|
+
/** Move the month picker into position. */
|
537
|
+
$monthControls.appendTo($pickerWrapper);
|
538
|
+
$goToday.appendTo($pickerWrapper);
|
539
|
+
$monthPicker.appendTo($pickerWrapper);
|
540
|
+
$yearPicker.appendTo($pickerWrapper);
|
541
|
+
|
542
|
+
/** Update the custom view. */
|
543
|
+
updateCustomView($datePicker);
|
544
|
+
|
545
|
+
/** Move back one month. */
|
546
|
+
$monthControls.on('click', '.js-prevMonth', function(event) {
|
547
|
+
event.preventDefault();
|
548
|
+
var newMonth = $picker.get('highlight').month - 1;
|
549
|
+
changeHighlightedDate($picker, null, newMonth, null);
|
550
|
+
});
|
551
|
+
|
552
|
+
/** Move ahead one month. */
|
553
|
+
$monthControls.on('click', '.js-nextMonth', function(event) {
|
554
|
+
event.preventDefault();
|
555
|
+
var newMonth = $picker.get('highlight').month + 1;
|
556
|
+
changeHighlightedDate($picker, null, newMonth, null);
|
557
|
+
});
|
558
|
+
|
559
|
+
/** Move back one year. */
|
560
|
+
$monthPicker.on('click', '.js-prevYear', function(event) {
|
561
|
+
event.preventDefault();
|
562
|
+
var newYear = $picker.get('highlight').year - 1;
|
563
|
+
changeHighlightedDate($picker, newYear, null, null);
|
564
|
+
});
|
565
|
+
|
566
|
+
/** Move ahead one year. */
|
567
|
+
$monthPicker.on('click', '.js-nextYear', function(event) {
|
568
|
+
event.preventDefault();
|
569
|
+
var newYear = $picker.get('highlight').year + 1;
|
570
|
+
changeHighlightedDate($picker, newYear, null, null);
|
571
|
+
});
|
572
|
+
|
573
|
+
/** Move back one decade. */
|
574
|
+
$yearPicker.on('click', '.js-prevDecade', function(event) {
|
575
|
+
event.preventDefault();
|
576
|
+
var newYear = $picker.get('highlight').year - 10;
|
577
|
+
changeHighlightedDate($picker, newYear, null, null);
|
578
|
+
});
|
579
|
+
|
580
|
+
/** Move ahead one decade. */
|
581
|
+
$yearPicker.on('click', '.js-nextDecade', function(event) {
|
582
|
+
event.preventDefault();
|
583
|
+
var newYear = $picker.get('highlight').year + 10;
|
584
|
+
changeHighlightedDate($picker, newYear, null, null);
|
585
|
+
});
|
586
|
+
|
587
|
+
/** Go to the current date, shown in the day picking view. */
|
588
|
+
$goToday.click(function(event) {
|
589
|
+
event.preventDefault();
|
590
|
+
|
591
|
+
/** Select the current date, while keeping the picker open. */
|
592
|
+
var now = new Date();
|
593
|
+
$picker.set('select', [now.getFullYear(), now.getMonth(), now.getDate()]);
|
594
|
+
|
595
|
+
/** Switch to the default (calendar) view. */
|
596
|
+
$datePicker.removeClass('is-pickingMonths').removeClass('is-pickingYears');
|
597
|
+
|
598
|
+
});
|
599
|
+
|
600
|
+
/** Change the highlighted month. */
|
601
|
+
$monthPicker.on('click', '.js-changeDate', function(event) {
|
602
|
+
event.preventDefault();
|
603
|
+
|
604
|
+
/** Get the requested date from the data attributes. */
|
605
|
+
var newYear = $(this).attr('data-year');
|
606
|
+
var newMonth = $(this).attr('data-month');
|
607
|
+
var newDay = $(this).attr('data-day');
|
608
|
+
|
609
|
+
/** Update the date. */
|
610
|
+
changeHighlightedDate($picker, newYear, newMonth, newDay);
|
611
|
+
|
612
|
+
/** If we've been in the "picking months" state on mobile, remove that state so we show the calendar again. */
|
613
|
+
if ($datePicker.hasClass('is-pickingMonths')) {
|
614
|
+
$datePicker.removeClass('is-pickingMonths');
|
615
|
+
}
|
616
|
+
});
|
617
|
+
|
618
|
+
/** Change the highlighted year. */
|
619
|
+
$yearPicker.on('click', '.js-changeDate', function(event) {
|
620
|
+
event.preventDefault();
|
621
|
+
|
622
|
+
/** Get the requested date from the data attributes. */
|
623
|
+
var newYear = $(this).attr('data-year');
|
624
|
+
var newMonth = $(this).attr('data-month');
|
625
|
+
var newDay = $(this).attr('data-day');
|
626
|
+
|
627
|
+
/** Update the date. */
|
628
|
+
changeHighlightedDate($picker, newYear, newMonth, newDay);
|
629
|
+
|
630
|
+
/** If we've been in the "picking years" state on mobile, remove that state so we show the calendar again. */
|
631
|
+
if ($datePicker.hasClass('is-pickingYears')) {
|
632
|
+
$datePicker.removeClass('is-pickingYears');
|
633
|
+
}
|
634
|
+
});
|
635
|
+
|
636
|
+
/** Switch to the default state. */
|
637
|
+
$monthPicker.on('click', '.js-showDayPicker', function() {
|
638
|
+
$datePicker.removeClass('is-pickingMonths');
|
639
|
+
$datePicker.removeClass('is-pickingYears');
|
640
|
+
});
|
641
|
+
|
642
|
+
/** Switch to the is-pickingMonths state. */
|
643
|
+
$monthControls.on('click', '.js-showMonthPicker', function() {
|
644
|
+
$datePicker.toggleClass('is-pickingMonths');
|
645
|
+
});
|
646
|
+
|
647
|
+
/** Switch to the is-pickingYears state. */
|
648
|
+
$monthPicker.on('click', '.js-showYearPicker', function() {
|
649
|
+
$datePicker.toggleClass('is-pickingYears');
|
650
|
+
});
|
651
|
+
|
652
|
+
}
|
653
|
+
|
654
|
+
/** Change the highlighted date. */
|
655
|
+
function changeHighlightedDate($picker, newYear, newMonth, newDay) {
|
656
|
+
|
657
|
+
/** All letiables are optional. If not provided, default to the current value. */
|
658
|
+
if (typeof newYear === "undefined" || newYear === null) {
|
659
|
+
newYear = $picker.get("highlight").year;
|
660
|
+
}
|
661
|
+
if (typeof newMonth === "undefined" || newMonth === null) {
|
662
|
+
newMonth = $picker.get("highlight").month;
|
663
|
+
}
|
664
|
+
if (typeof newDay === "undefined" || newDay === null) {
|
665
|
+
newDay = $picker.get("highlight").date;
|
666
|
+
}
|
667
|
+
|
668
|
+
/** Update it. */
|
669
|
+
$picker.set('highlight', [newYear, newMonth, newDay]);
|
670
|
+
|
671
|
+
}
|
672
|
+
|
673
|
+
|
674
|
+
/** Whenever the picker renders, do our own rendering on the custom controls. */
|
675
|
+
function updateCustomView($datePicker) {
|
676
|
+
|
677
|
+
/** Get some variables ready. */
|
678
|
+
var $monthPicker = $datePicker.find('.ms-DatePicker-monthPicker');
|
679
|
+
var $yearPicker = $datePicker.find('.ms-DatePicker-yearPicker');
|
680
|
+
var $picker = $datePicker.find('.ms-TextField-field').pickadate('picker');
|
681
|
+
|
682
|
+
/** Set the correct year. */
|
683
|
+
$monthPicker.find('.ms-DatePicker-currentYear').text($picker.get('view').year);
|
684
|
+
|
685
|
+
/** Highlight the current month. */
|
686
|
+
$monthPicker.find('.ms-DatePicker-monthOption').removeClass('is-highlighted');
|
687
|
+
$monthPicker.find('.ms-DatePicker-monthOption[data-month="' + $picker.get('highlight').month + '"]').addClass('is-highlighted');
|
688
|
+
|
689
|
+
/** Generate the grid of years for the year picker view. */
|
690
|
+
|
691
|
+
// Start by removing any existing generated output. */
|
692
|
+
$yearPicker.find('.ms-DatePicker-currentDecade').remove();
|
693
|
+
$yearPicker.find('.ms-DatePicker-optionGrid').remove();
|
694
|
+
|
695
|
+
// Generate the output by going through the years.
|
696
|
+
var startingYear = $picker.get('highlight').year - 11;
|
697
|
+
var decadeText = startingYear + " - " + (startingYear + 11);
|
698
|
+
var output = '<div class="ms-DatePicker-currentDecade">' + decadeText + '</div>';
|
699
|
+
output += '<div class="ms-DatePicker-optionGrid">';
|
700
|
+
for (var year = startingYear; year < (startingYear + 12); year++) {
|
701
|
+
output += '<span class="ms-DatePicker-yearOption js-changeDate" data-year="' + year + '">' + year +'</span>';
|
702
|
+
}
|
703
|
+
output += '</div>';
|
704
|
+
|
705
|
+
// Output the title and grid of years generated above.
|
706
|
+
$yearPicker.append(output);
|
707
|
+
|
708
|
+
/** Highlight the current year. */
|
709
|
+
$yearPicker.find('.ms-DatePicker-yearOption').removeClass('is-highlighted');
|
710
|
+
$yearPicker.find('.ms-DatePicker-yearOption[data-year="' + $picker.get('highlight').year + '"]').addClass('is-highlighted');
|
711
|
+
}
|
712
|
+
|
713
|
+
/** Scroll the page up so that the field the date picker is attached to is at the top. */
|
714
|
+
function scrollUp($datePicker) {
|
715
|
+
$('html, body').animate({
|
716
|
+
scrollTop: $datePicker.offset().top
|
717
|
+
}, 367);
|
718
|
+
}
|
719
|
+
|
720
|
+
})(jQuery);
|
721
|
+
|
722
|
+
!function(a){"function"==typeof define&&define.amd?define("picker",["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):this.Picker=a(jQuery)}(function(a){function b(f,g,h,k){function l(){return b._.node("div",b._.node("div",b._.node("div",b._.node("div",w.component.nodes(r.open),t.box),t.wrap),t.frame),t.holder)}function m(){u.data(g,w).addClass(t.input).val(u.data("value")?w.get("select",s.format):f.value).on("focus."+r.id+" click."+r.id,p),s.editable||u.on("keydown."+r.id,function(a){var b=a.keyCode,c=/^(8|46)$/.test(b);return 27==b?(w.close(),!1):void((32==b||c||!r.open&&w.component.key[b])&&(a.preventDefault(),a.stopPropagation(),c?w.clear().close():w.open()))}),e(f,{haspopup:!0,expanded:!1,readonly:!1,owns:f.id+"_root"+(w._hidden?" "+w._hidden.id:"")})}function n(){w.$root.on({focusin:function(a){w.$root.removeClass(t.focused),a.stopPropagation()},"mousedown click":function(b){var c=b.target;c!=w.$root.children()[0]&&(b.stopPropagation(),"mousedown"!=b.type||a(c).is(":input")||"OPTION"==c.nodeName||(b.preventDefault(),f.focus()))}}).on("click","[data-pick], [data-nav], [data-clear], [data-close]",function(){var b=a(this),c=b.data(),d=b.hasClass(t.navDisabled)||b.hasClass(t.disabled),e=document.activeElement;e=e&&(e.type||e.href)&&e,(d||e&&!a.contains(w.$root[0],e))&&f.focus(),!d&&c.nav?w.set("highlight",w.component.item.highlight,{nav:c.nav}):!d&&"pick"in c?w.set("select",c.pick).close(!0):c.clear?w.clear().close(!0):c.close&&w.close(!0)}),e(w.$root[0],"hidden",!0)}function o(){var b;s.hiddenName===!0?(b=f.name,f.name=""):(b=["string"==typeof s.hiddenPrefix?s.hiddenPrefix:"","string"==typeof s.hiddenSuffix?s.hiddenSuffix:"_submit"],b=b[0]+f.name+b[1]),w._hidden=a('<input type=hidden name="'+b+'"'+(u.data("value")||f.value?' value="'+w.get("select",s.formatSubmit)+'"':"")+">")[0],u.on("change."+r.id,function(){w._hidden.value=f.value?w.get("select",s.formatSubmit):""}).after(w._hidden)}function p(a){a.stopPropagation(),"focus"==a.type&&w.$root.addClass(t.focused),w.open()}if(!f)return b;var q=!1,r={id:f.id||"P"+Math.abs(~~(Math.random()*new Date))},s=h?a.extend(!0,{},h.defaults,k):k||{},t=a.extend({},b.klasses(),s.klass),u=a(f),v=function(){return this.start()},w=v.prototype={constructor:v,$node:u,start:function(){return r&&r.start?w:(r.methods={},r.start=!0,r.open=!1,r.type=f.type,f.autofocus=f==document.activeElement,f.readOnly=!s.editable,f.id=f.id||r.id,"text"!=f.type&&(f.type="text"),w.component=new h(w,s),w.$root=a(b._.node("div",l(),t.picker,'id="'+f.id+'_root"')),n(),s.formatSubmit&&o(),m(),s.container?a(s.container).append(w.$root):u.after(w.$root),w.on({start:w.component.onStart,render:w.component.onRender,stop:w.component.onStop,open:w.component.onOpen,close:w.component.onClose,set:w.component.onSet}).on({start:s.onStart,render:s.onRender,stop:s.onStop,open:s.onOpen,close:s.onClose,set:s.onSet}),q=c(w.$root.children()[0]),f.autofocus&&w.open(),w.trigger("start").trigger("render"))},render:function(a){return a?w.$root.html(l()):w.$root.find("."+t.box).html(w.component.nodes(r.open)),w.trigger("render")},stop:function(){return r.start?(w.close(),w._hidden&&w._hidden.parentNode.removeChild(w._hidden),w.$root.remove(),u.removeClass(t.input).removeData(g),setTimeout(function(){u.off("."+r.id)},0),f.type=r.type,f.readOnly=!1,w.trigger("stop"),r.methods={},r.start=!1,w):w},open:function(c){return r.open?w:(u.addClass(t.active),e(f,"expanded",!0),setTimeout(function(){w.$root.addClass(t.opened),e(w.$root[0],"hidden",!1)},0),c!==!1&&(r.open=!0,q&&j.css("overflow","hidden").css("padding-right","+="+d()),u.trigger("focus"),i.on("click."+r.id+" focusin."+r.id,function(a){var b=a.target;b!=f&&b!=document&&3!=a.which&&w.close(b===w.$root.children()[0])}).on("keydown."+r.id,function(c){var d=c.keyCode,e=w.component.key[d],g=c.target;27==d?w.close(!0):g!=f||!e&&13!=d?a.contains(w.$root[0],g)&&13==d&&(c.preventDefault(),g.click()):(c.preventDefault(),e?b._.trigger(w.component.key.go,w,[b._.trigger(e)]):w.$root.find("."+t.highlighted).hasClass(t.disabled)||w.set("select",w.component.item.highlight).close())})),w.trigger("open"))},close:function(a){return a&&(u.off("focus."+r.id).trigger("focus"),setTimeout(function(){u.on("focus."+r.id,p)},0)),u.removeClass(t.active),e(f,"expanded",!1),setTimeout(function(){w.$root.removeClass(t.opened+" "+t.focused),e(w.$root[0],"hidden",!0)},0),r.open?(r.open=!1,q&&j.css("overflow","").css("padding-right","-="+d()),i.off("."+r.id),w.trigger("close")):w},clear:function(a){return w.set("clear",null,a)},set:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(d=g&&a.isPlainObject(c)?c:d||{},b){g||(h[b]=c);for(e in h)f=h[e],e in w.component.item&&(void 0===f&&(f=null),w.component.set(e,f,d)),("select"==e||"clear"==e)&&u.val("clear"==e?"":w.get(e,s.format)).trigger("change");w.render()}return d.muted?w:w.trigger("set",h)},get:function(a,c){if(a=a||"value",null!=r[a])return r[a];if("value"==a)return f.value;if(a in w.component.item){if("string"==typeof c){var d=w.component.get(a);return d?b._.trigger(w.component.formats.toString,w.component,[c,d]):""}return w.component.get(a)}},on:function(b,c,d){var e,f,g=a.isPlainObject(b),h=g?b:{};if(b){g||(h[b]=c);for(e in h)f=h[e],d&&(e="_"+e),r.methods[e]=r.methods[e]||[],r.methods[e].push(f)}return w},off:function(){var a,b,c=arguments;for(a=0,namesCount=c.length;namesCount>a;a+=1)b=c[a],b in r.methods&&delete r.methods[b];return w},trigger:function(a,c){var d=function(a){var d=r.methods[a];d&&d.map(function(a){b._.trigger(a,w,[c])})};return d("_"+a),d(a),w}};return new v}function c(a){var b,c="position";return a.currentStyle?b=a.currentStyle[c]:window.getComputedStyle&&(b=getComputedStyle(a)[c]),"fixed"==b}function d(){if(j.height()<=h.height())return 0;var b=a('<div style="visibility:hidden;width:100px" />').appendTo("body"),c=b[0].offsetWidth;b.css("overflow","scroll");var d=a('<div style="width:100%" />').appendTo(b),e=d[0].offsetWidth;return b.remove(),c-e}function e(b,c,d){if(a.isPlainObject(c))for(var e in c)f(b,e,c[e]);else f(b,c,d)}function f(a,b,c){a.setAttribute(("role"==b?"":"aria-")+b,c)}function g(b,c){a.isPlainObject(b)||(b={attribute:c}),c="";for(var d in b){var e=("role"==d?"":"aria-")+d,f=b[d];c+=null==f?"":e+'="'+b[d]+'"'}return c}var h=a(window),i=a(document),j=a(document.documentElement);return b.klasses=function(a){return a=a||"picker",{picker:a,opened:a+"--opened",focused:a+"--focused",input:a+"__input",active:a+"__input--active",holder:a+"__holder",frame:a+"__frame",wrap:a+"__wrap",box:a+"__box"}},b._={group:function(a){for(var c,d="",e=b._.trigger(a.min,a);e<=b._.trigger(a.max,a,[e]);e+=a.i)c=b._.trigger(a.item,a,[e]),d+=b._.node(a.node,c[0],c[1],c[2]);return d},node:function(b,c,d,e){return c?(c=a.isArray(c)?c.join(""):c,d=d?' class="'+d+'"':"",e=e?" "+e:"","<"+b+d+e+">"+c+"</"+b+">"):""},lead:function(a){return(10>a?"0":"")+a},trigger:function(a,b,c){return"function"==typeof a?a.apply(b,c||[]):a},digits:function(a){return/\d/.test(a[1])?2:1},isDate:function(a){return{}.toString.call(a).indexOf("Date")>-1&&this.isInteger(a.getUTCDate())},isInteger:function(a){return{}.toString.call(a).indexOf("Number")>-1&&a%1===0},ariaAttr:g},b.extend=function(c,d){a.fn[c]=function(e,f){var g=this.data(c);return"picker"==e?g:g&&"string"==typeof e?b._.trigger(g[e],g,[f]):this.each(function(){var f=a(this);f.data(c)||new b(this,c,d,e)})},a.fn[c].defaults=d.defaults},b}),function(a){"function"==typeof define&&define.amd?define(["picker","jquery"],a):"object"==typeof exports?module.exports=a(require("./picker.js"),require("jquery")):a(Picker,jQuery)}(function(a,b){function c(a,b){var c=this,d=a.$node[0],e=d.value,f=a.$node.data("value"),g=f||e,h=f?b.formatSubmit:b.format,i=function(){return d.currentStyle?"rtl"==d.currentStyle.direction:"rtl"==getComputedStyle(a.$root[0]).direction};c.settings=b,c.$node=a.$node,c.queue={min:"measure create",max:"measure create",now:"now create",select:"parse create validate",highlight:"parse navigate create validate",view:"parse create validate viewset",disable:"deactivate",enable:"activate"},c.item={},c.item.clear=null,c.item.disable=(b.disable||[]).slice(0),c.item.enable=-function(a){return a[0]===!0?a.shift():-1}(c.item.disable),c.set("min",b.min).set("max",b.max).set("now"),g?c.set("select",g,{format:h}):c.set("select",null).set("highlight",c.item.now),c.key={40:7,38:-7,39:function(){return i()?-1:1},37:function(){return i()?1:-1},go:function(a){var b=c.item.highlight,d=new Date(Date.UTC(b.year,b.month,b.date+a));c.set("highlight",d,{interval:a}),this.render()}},a.on("render",function(){a.$root.find("."+b.klass.selectMonth).on("change",function(){var c=this.value;c&&(a.set("highlight",[a.get("view").year,c,a.get("highlight").date]),a.$root.find("."+b.klass.selectMonth).trigger("focus"))}),a.$root.find("."+b.klass.selectYear).on("change",function(){var c=this.value;c&&(a.set("highlight",[c,a.get("view").month,a.get("highlight").date]),a.$root.find("."+b.klass.selectYear).trigger("focus"))})},1).on("open",function(){var d="";c.disabled(c.get("now"))&&(d=":not(."+b.klass.buttonToday+")"),a.$root.find("button"+d+", select").attr("disabled",!1)},1).on("close",function(){a.$root.find("button, select").attr("disabled",!0)},1)}var d=7,e=6,f=a._;c.prototype.set=function(a,b,c){var d=this,e=d.item;return null===b?("clear"==a&&(a="select"),e[a]=b,d):(e["enable"==a?"disable":"flip"==a?"enable":a]=d.queue[a].split(" ").map(function(e){return b=d[e](a,b,c)}).pop(),"select"==a?d.set("highlight",e.select,c):"highlight"==a?d.set("view",e.highlight,c):a.match(/^(flip|min|max|disable|enable)$/)&&(e.select&&d.disabled(e.select)&&d.set("select",e.select,c),e.highlight&&d.disabled(e.highlight)&&d.set("highlight",e.highlight,c)),d)},c.prototype.get=function(a){return this.item[a]},c.prototype.create=function(a,c,d){var e,g=this;return c=void 0===c?a:c,c==-1/0||1/0==c?e=c:b.isPlainObject(c)&&f.isInteger(c.pick)?c=c.obj:b.isArray(c)?(c=new Date(Date.UTC(c[0],c[1],c[2])),c=f.isDate(c)?c:g.create().obj):c=f.isInteger(c)?g.normalize(new Date(c),d):f.isDate(c)?g.normalize(c,d):g.now(a,c,d),{year:e||c.getUTCFullYear(),month:e||c.getUTCMonth(),date:e||c.getUTCDate(),day:e||c.getUTCDay(),obj:e||c,pick:e||c.getTime()}},c.prototype.createRange=function(a,c){var d=this,e=function(a){return a===!0||b.isArray(a)||f.isDate(a)?d.create(a):a};return f.isInteger(a)||(a=e(a)),f.isInteger(c)||(c=e(c)),f.isInteger(a)&&b.isPlainObject(c)?a=[c.year,c.month,c.date+a]:f.isInteger(c)&&b.isPlainObject(a)&&(c=[a.year,a.month,a.date+c]),{from:e(a),to:e(c)}},c.prototype.withinRange=function(a,b){return a=this.createRange(a.from,a.to),b.pick>=a.from.pick&&b.pick<=a.to.pick},c.prototype.overlapRanges=function(a,b){var c=this;return a=c.createRange(a.from,a.to),b=c.createRange(b.from,b.to),c.withinRange(a,b.from)||c.withinRange(a,b.to)||c.withinRange(b,a.from)||c.withinRange(b,a.to)},c.prototype.now=function(a,b,c){return b=new Date,c&&c.rel&&b.setUTCDate(b.getUTCDate()+c.rel),this.normalize(b,c)},c.prototype.navigate=function(a,c,d){var e,f,g,h,i=b.isArray(c),j=b.isPlainObject(c),k=this.item.view;if(i||j){for(j?(f=c.year,g=c.month,h=c.date):(f=+c[0],g=+c[1],h=+c[2]),d&&d.nav&&k&&k.month!==g&&(f=k.year,g=k.month),e=new Date(Date.UTC(f,g+(d&&d.nav?d.nav:0),1)),f=e.getUTCFullYear(),g=e.getUTCMonth();new Date(Date.UTC(f,g,h)).getUTCMonth()!==g;)h-=1;c=[f,g,h]}return c},c.prototype.normalize=function(a){return a.setUTCHours(0,0,0,0),a},c.prototype.measure=function(a,b){var c=this;return b?"string"==typeof b?b=c.parse(a,b):f.isInteger(b)&&(b=c.now(a,b,{rel:b})):b="min"==a?-1/0:1/0,b},c.prototype.viewset=function(a,b){return this.create([b.year,b.month,1])},c.prototype.validate=function(a,c,d){var e,g,h,i,j=this,k=c,l=d&&d.interval?d.interval:1,m=-1===j.item.enable,n=j.item.min,o=j.item.max,p=m&&j.item.disable.filter(function(a){if(b.isArray(a)){var d=j.create(a).pick;d<c.pick?e=!0:d>c.pick&&(g=!0)}return f.isInteger(a)}).length;if((!d||!d.nav)&&(!m&&j.disabled(c)||m&&j.disabled(c)&&(p||e||g)||!m&&(c.pick<=n.pick||c.pick>=o.pick)))for(m&&!p&&(!g&&l>0||!e&&0>l)&&(l*=-1);j.disabled(c)&&(Math.abs(l)>1&&(c.month<k.month||c.month>k.month)&&(c=k,l=l>0?1:-1),c.pick<=n.pick?(h=!0,l=1,c=j.create([n.year,n.month,n.date+(c.pick===n.pick?0:-1)])):c.pick>=o.pick&&(i=!0,l=-1,c=j.create([o.year,o.month,o.date+(c.pick===o.pick?0:1)])),!h||!i);)c=j.create([c.year,c.month,c.date+l]);return c},c.prototype.disabled=function(a){var c=this,d=c.item.disable.filter(function(d){return f.isInteger(d)?a.day===(c.settings.firstDay?d:d-1)%7:b.isArray(d)||f.isDate(d)?a.pick===c.create(d).pick:b.isPlainObject(d)?c.withinRange(d,a):void 0});return d=d.length&&!d.filter(function(a){return b.isArray(a)&&"inverted"==a[3]||b.isPlainObject(a)&&a.inverted}).length,-1===c.item.enable?!d:d||a.pick<c.item.min.pick||a.pick>c.item.max.pick},c.prototype.parse=function(a,b,c){var d=this,e={};return b&&"string"==typeof b?(c&&c.format||(c=c||{},c.format=d.settings.format),d.formats.toArray(c.format).map(function(a){var c=d.formats[a],g=c?f.trigger(c,d,[b,e]):a.replace(/^!/,"").length;c&&(e[a]=b.substr(0,g)),b=b.substr(g)}),[e.yyyy||e.yy,+(e.mm||e.m)-1,e.dd||e.d]):b},c.prototype.formats=function(){function a(a,b,c){var d=a.match(/\w+/)[0];return c.mm||c.m||(c.m=b.indexOf(d)+1),d.length}function b(a){return a.match(/\w+/)[0].length}return{d:function(a,b){return a?f.digits(a):b.date},dd:function(a,b){return a?2:f.lead(b.date)},ddd:function(a,c){return a?b(a):this.settings.weekdaysShort[c.day]},dddd:function(a,c){return a?b(a):this.settings.weekdaysFull[c.day]},m:function(a,b){return a?f.digits(a):b.month+1},mm:function(a,b){return a?2:f.lead(b.month+1)},mmm:function(b,c){var d=this.settings.monthsShort;return b?a(b,d,c):d[c.month]},mmmm:function(b,c){var d=this.settings.monthsFull;return b?a(b,d,c):d[c.month]},yy:function(a,b){return a?2:(""+b.year).slice(2)},yyyy:function(a,b){return a?4:b.year},toArray:function(a){return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g)},toString:function(a,b){var c=this;return c.formats.toArray(a).map(function(a){return f.trigger(c.formats[a],c,[0,b])||a.replace(/^!/,"")}).join("")}}}(),c.prototype.isDateExact=function(a,c){var d=this;return f.isInteger(a)&&f.isInteger(c)||"boolean"==typeof a&&"boolean"==typeof c?a===c:(f.isDate(a)||b.isArray(a))&&(f.isDate(c)||b.isArray(c))?d.create(a).pick===d.create(c).pick:b.isPlainObject(a)&&b.isPlainObject(c)?d.isDateExact(a.from,c.from)&&d.isDateExact(a.to,c.to):!1},c.prototype.isDateOverlap=function(a,c){var d=this,e=d.settings.firstDay?1:0;return f.isInteger(a)&&(f.isDate(c)||b.isArray(c))?(a=a%7+e,a===d.create(c).day+1):f.isInteger(c)&&(f.isDate(a)||b.isArray(a))?(c=c%7+e,c===d.create(a).day+1):b.isPlainObject(a)&&b.isPlainObject(c)?d.overlapRanges(a,c):!1},c.prototype.flipEnable=function(a){var b=this.item;b.enable=a||(-1==b.enable?1:-1)},c.prototype.deactivate=function(a,c){var d=this,e=d.item.disable.slice(0);return"flip"==c?d.flipEnable():c===!1?(d.flipEnable(1),e=[]):c===!0?(d.flipEnable(-1),e=[]):c.map(function(a){for(var c,g=0;g<e.length;g+=1)if(d.isDateExact(a,e[g])){c=!0;break}c||(f.isInteger(a)||f.isDate(a)||b.isArray(a)||b.isPlainObject(a)&&a.from&&a.to)&&e.push(a)}),e},c.prototype.activate=function(a,c){var d=this,e=d.item.disable,g=e.length;return"flip"==c?d.flipEnable():c===!0?(d.flipEnable(1),e=[]):c===!1?(d.flipEnable(-1),e=[]):c.map(function(a){var c,h,i,j;for(i=0;g>i;i+=1){if(h=e[i],d.isDateExact(h,a)){c=e[i]=null,j=!0;break}if(d.isDateOverlap(h,a)){b.isPlainObject(a)?(a.inverted=!0,c=a):b.isArray(a)?(c=a,c[3]||c.push("inverted")):f.isDate(a)&&(c=[a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),"inverted"]);break}}if(c)for(i=0;g>i;i+=1)if(d.isDateExact(e[i],a)){e[i]=null;break}if(j)for(i=0;g>i;i+=1)if(d.isDateOverlap(e[i],a)){e[i]=null;break}c&&e.push(c)}),e.filter(function(a){return null!=a})},c.prototype.nodes=function(a){var b=this,c=b.settings,g=b.item,h=g.now,i=g.select,j=g.highlight,k=g.view,l=g.disable,m=g.min,n=g.max,o=function(a,b){return c.firstDay&&(a.push(a.shift()),b.push(b.shift())),f.node("thead",f.node("tr",f.group({min:0,max:d-1,i:1,node:"th",item:function(d){return[a[d],c.klass.weekdays,'scope=col title="'+b[d]+'"']}})))}((c.showWeekdaysFull?c.weekdaysFull:c.weekdaysShort).slice(0),c.weekdaysFull.slice(0)),p=function(a){return f.node("div"," ",c.klass["nav"+(a?"Next":"Prev")]+(a&&k.year>=n.year&&k.month>=n.month||!a&&k.year<=m.year&&k.month<=m.month?" "+c.klass.navDisabled:""),"data-nav="+(a||-1)+" "+f.ariaAttr({role:"button",components:b.$node[0].id+"_table"})+' title="'+(a?c.labelMonthNext:c.labelMonthPrev)+'"')},q=function(){var d=c.showMonthsShort?c.monthsShort:c.monthsFull;return c.selectMonths?f.node("select",f.group({min:0,max:11,i:1,node:"option",item:function(a){return[d[a],0,"value="+a+(k.month==a?" selected":"")+(k.year==m.year&&a<m.month||k.year==n.year&&a>n.month?" disabled":"")]}}),c.klass.selectMonth,(a?"":"disabled")+" "+f.ariaAttr({components:b.$node[0].id+"_table"})+' title="'+c.labelMonthSelect+'"'):f.node("div",d[k.month],c.klass.month)},r=function(){var d=k.year,e=c.selectYears===!0?5:~~(c.selectYears/2);if(e){var g=m.year,h=n.year,i=d-e,j=d+e;if(g>i&&(j+=g-i,i=g),j>h){var l=i-g,o=j-h;i-=l>o?o:l,j=h}return f.node("select",f.group({min:i,max:j,i:1,node:"option",item:function(a){return[a,0,"value="+a+(d==a?" selected":"")]}}),c.klass.selectYear,(a?"":"disabled")+" "+f.ariaAttr({components:b.$node[0].id+"_table"})+' title="'+c.labelYearSelect+'"')}return f.node("div",d,c.klass.year)};return f.node("div",(c.selectYears?r()+q():q()+r())+p()+p(1),c.klass.header)+f.node("table",o+f.node("tbody",f.group({min:0,max:e-1,i:1,node:"tr",item:function(a){var e=c.firstDay&&0===b.create([k.year,k.month,1]).day?-7:0;return[f.group({min:d*a-k.day+e+1,max:function(){return this.min+d-1},i:1,node:"td",item:function(a){a=b.create([k.year,k.month,a+(c.firstDay?1:0)]);var d=i&&i.pick==a.pick,e=j&&j.pick==a.pick,g=l&&b.disabled(a)||a.pick<m.pick||a.pick>n.pick;return[f.node("div",a.date,function(b){return b.push(k.month==a.month?c.klass.infocus:c.klass.outfocus),h.pick==a.pick&&b.push(c.klass.now),d&&b.push(c.klass.selected),e&&b.push(c.klass.highlighted),g&&b.push(c.klass.disabled),b.join(" ")}([c.klass.day]),"data-pick="+a.pick+" "+f.ariaAttr({role:"gridcell",selected:d&&b.$node.val()===f.trigger(b.formats.toString,b,[c.format,a])?!0:null,activedescendant:e?!0:null,disabled:g?!0:null})),"",f.ariaAttr({role:"presentation"})]}})]}})),c.klass.table,'id="'+b.$node[0].id+'_table" '+f.ariaAttr({role:"grid",components:b.$node[0].id,readonly:!0}))+f.node("div",f.node("button",c.today,c.klass.buttonToday,"type=button data-pick="+h.pick+(a&&!b.disabled(h)?"":" disabled")+" "+f.ariaAttr({components:b.$node[0].id}))+f.node("button",c.clear,c.klass.buttonClear,"type=button data-clear=1"+(a?"":" disabled")+" "+f.ariaAttr({components:b.$node[0].id}))+f.node("button",c.close,c.klass.buttonClose,"type=button data-close=true "+(a?"":" disabled")+" "+f.ariaAttr({components:b.$node[0].id})),c.klass.footer)},c.defaults=function(a){return{labelMonthNext:"Next month",labelMonthPrev:"Previous month",labelMonthSelect:"Select a month",labelYearSelect:"Select a year",monthsFull:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],weekdaysFull:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],weekdaysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],today:"Today",clear:"Clear",close:"Close",format:"d mmmm, yyyy",klass:{table:a+"table",header:a+"header",navPrev:a+"nav--prev",navNext:a+"nav--next",navDisabled:a+"nav--disabled",month:a+"month",year:a+"year",selectMonth:a+"select--month",selectYear:a+"select--year",weekdays:a+"weekday",day:a+"day",disabled:a+"day--disabled",selected:a+"day--selected",highlighted:a+"day--highlighted",now:a+"day--today",infocus:a+"day--infocus",outfocus:a+"day--outfocus",footer:a+"footer",buttonClear:a+"button--clear",buttonToday:a+"button--today",buttonClose:a+"button--close"}}}(a.klasses().picker+"__"),a.extend("pickadate",c)});
|
723
|
+
|
724
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
725
|
+
|
726
|
+
/**
|
727
|
+
* Contextual Menu Plugin
|
728
|
+
*/
|
729
|
+
(function ($) {
|
730
|
+
$.fn.ContextualMenu = function () {
|
731
|
+
|
732
|
+
/** Go through each nav bar we've been given. */
|
733
|
+
return this.each(function () {
|
734
|
+
|
735
|
+
var $contextualMenu = $(this);
|
736
|
+
|
737
|
+
|
738
|
+
// Set selected states.
|
739
|
+
$contextualMenu.on('click', '.ms-ContextualMenu-link:not(.is-disabled)', function(event) {
|
740
|
+
event.preventDefault();
|
741
|
+
|
742
|
+
// Check if multiselect - set selected states
|
743
|
+
if ( $contextualMenu.hasClass('ms-ContextualMenu--multiselect') ) {
|
744
|
+
|
745
|
+
// If already selected, remove selection; if not, add selection
|
746
|
+
if ( $(this).hasClass('is-selected') ) {
|
747
|
+
$(this).removeClass('is-selected');
|
748
|
+
}
|
749
|
+
else {
|
750
|
+
$(this).addClass('is-selected');
|
751
|
+
}
|
752
|
+
|
753
|
+
}
|
754
|
+
// All other contextual menu variants
|
755
|
+
else {
|
756
|
+
|
757
|
+
// Deselect all of the items and close any menus.
|
758
|
+
$('.ms-ContextualMenu-link')
|
759
|
+
.removeClass('is-selected')
|
760
|
+
.siblings('.ms-ContextualMenu')
|
761
|
+
.removeClass('is-open');
|
762
|
+
|
763
|
+
// Select this item.
|
764
|
+
$(this).addClass('is-selected');
|
765
|
+
|
766
|
+
// If this item has a menu, open it.
|
767
|
+
if ($(this).hasClass('ms-ContextualMenu-link--hasMenu')) {
|
768
|
+
$(this).siblings('.ms-ContextualMenu:first').addClass('is-open');
|
769
|
+
|
770
|
+
// Open the menu without bubbling up the click event,
|
771
|
+
// which can cause the menu to close.
|
772
|
+
event.stopPropagation();
|
773
|
+
}
|
774
|
+
|
775
|
+
}
|
776
|
+
|
777
|
+
|
778
|
+
});
|
779
|
+
|
780
|
+
});
|
781
|
+
};
|
782
|
+
})(jQuery);
|
783
|
+
|
784
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
785
|
+
|
786
|
+
/**
|
787
|
+
* Dialog Plugin
|
788
|
+
*
|
789
|
+
* Adds basic demonstration functionality to .ms-Dialog components.
|
790
|
+
*
|
791
|
+
* @param {jQuery Object} One or more .ms-Dialog components
|
792
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
793
|
+
*/
|
794
|
+
(function ($) {
|
795
|
+
$.fn.Dialog = function () {
|
796
|
+
|
797
|
+
/** Iterate through the sample buttons, which can be used to open the Dialogs. */
|
798
|
+
$(".js-DialogAction--open").each(function () {
|
799
|
+
/** Open the associated dialog on click. */
|
800
|
+
$(this).on('click', function () {
|
801
|
+
var target = $(this).data("target");
|
802
|
+
$(target).show();
|
803
|
+
});
|
804
|
+
});
|
805
|
+
|
806
|
+
|
807
|
+
return this.each(function () {
|
808
|
+
var dialog = this;
|
809
|
+
|
810
|
+
/** Have the dialogs hidden for their initial state */
|
811
|
+
$(dialog).hide();
|
812
|
+
|
813
|
+
/** Have the close buttons close the Dialog. */
|
814
|
+
$(dialog).find(".js-DialogAction--close").each(function() {
|
815
|
+
$(this).on('click', function () {
|
816
|
+
$(dialog).hide();
|
817
|
+
});
|
818
|
+
});
|
819
|
+
|
820
|
+
/** Have the action buttons close the Dialog, though you would usually do some specific action per button. */
|
821
|
+
$(dialog).find(".ms-Dialog-action").on('click', function () {
|
822
|
+
$(dialog).hide();
|
823
|
+
});
|
824
|
+
|
825
|
+
});
|
826
|
+
};
|
827
|
+
})(jQuery);
|
828
|
+
|
829
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
830
|
+
|
831
|
+
/**
|
832
|
+
* Dropdown Plugin
|
833
|
+
*
|
834
|
+
* Given .ms-Dropdown containers with generic <select> elements inside, this plugin hides the original
|
835
|
+
* dropdown and creates a new "fake" dropdown that can more easily be styled across browsers.
|
836
|
+
*
|
837
|
+
* @param {jQuery Object} One or more .ms-Dropdown containers, each with a dropdown (.ms-Dropdown-select)
|
838
|
+
* @return {jQuery Object} The same containers (allows for chaining)
|
839
|
+
*/
|
840
|
+
(function ($) {
|
841
|
+
$.fn.Dropdown = function () {
|
842
|
+
|
843
|
+
/** Go through each dropdown we've been given. */
|
844
|
+
return this.each(function () {
|
845
|
+
|
846
|
+
var $dropdownWrapper = $(this),
|
847
|
+
$originalDropdown = $dropdownWrapper.children('.ms-Dropdown-select'),
|
848
|
+
$originalDropdownOptions = $originalDropdown.children('option'),
|
849
|
+
newDropdownTitle = '',
|
850
|
+
newDropdownItems = '',
|
851
|
+
newDropdownSource = '';
|
852
|
+
|
853
|
+
/** Go through the options to fill up newDropdownTitle and newDropdownItems. */
|
854
|
+
$originalDropdownOptions.each(function (index, option) {
|
855
|
+
|
856
|
+
/** If the option is selected, it should be the new dropdown's title. */
|
857
|
+
if (option.selected) {
|
858
|
+
newDropdownTitle = option.text;
|
859
|
+
}
|
860
|
+
|
861
|
+
/** Add this option to the list of items. */
|
862
|
+
newDropdownItems += '<li class="ms-Dropdown-item' + ( (option.disabled) ? ' is-disabled"' : '"' ) + '>' + option.text + '</li>';
|
863
|
+
|
864
|
+
});
|
865
|
+
|
866
|
+
/** Insert the replacement dropdown. */
|
867
|
+
newDropdownSource = '<span class="ms-Dropdown-title">' + newDropdownTitle + '</span><ul class="ms-Dropdown-items">' + newDropdownItems + '</ul>';
|
868
|
+
$dropdownWrapper.append(newDropdownSource);
|
869
|
+
|
870
|
+
function _openDropdown(evt) {
|
871
|
+
if (!$dropdownWrapper.hasClass('is-disabled')) {
|
872
|
+
|
873
|
+
/** First, let's close any open dropdowns on this page. */
|
874
|
+
$dropdownWrapper.find('.is-open').removeClass('is-open');
|
875
|
+
|
876
|
+
/** Stop the click event from propagating, which would just close the dropdown immediately. */
|
877
|
+
evt.stopPropagation();
|
878
|
+
|
879
|
+
/** Before opening, size the items list to match the dropdown. */
|
880
|
+
var dropdownWidth = $(this).parents(".ms-Dropdown").width();
|
881
|
+
$(this).next(".ms-Dropdown-items").css('width', dropdownWidth + 'px');
|
882
|
+
|
883
|
+
/** Go ahead and open that dropdown. */
|
884
|
+
$dropdownWrapper.toggleClass('is-open');
|
885
|
+
$('.ms-Dropdown').each(function(){
|
886
|
+
if ($(this)[0] !== $dropdownWrapper[0]) {
|
887
|
+
$(this).removeClass('is-open');
|
888
|
+
}
|
889
|
+
});
|
890
|
+
|
891
|
+
/** Temporarily bind an event to the document that will close this dropdown when clicking anywhere. */
|
892
|
+
$(document).bind("click.dropdown", function() {
|
893
|
+
$dropdownWrapper.removeClass('is-open');
|
894
|
+
$(document).unbind('click.dropdown');
|
895
|
+
});
|
896
|
+
}
|
897
|
+
}
|
898
|
+
|
899
|
+
/** Toggle open/closed state of the dropdown when clicking its title. */
|
900
|
+
$dropdownWrapper.on('click', '.ms-Dropdown-title', function(event) {
|
901
|
+
_openDropdown(event);
|
902
|
+
});
|
903
|
+
|
904
|
+
/** Keyboard accessibility */
|
905
|
+
$dropdownWrapper.on('keyup', function(event) {
|
906
|
+
var keyCode = event.keyCode || event.which;
|
907
|
+
// Open dropdown on enter or arrow up or arrow down and focus on first option
|
908
|
+
if (!$(this).hasClass('is-open')) {
|
909
|
+
if (keyCode === 13 || keyCode === 38 || keyCode === 40) {
|
910
|
+
_openDropdown(event);
|
911
|
+
if (!$(this).find('.ms-Dropdown-item').hasClass('is-selected')) {
|
912
|
+
$(this).find('.ms-Dropdown-item:first').addClass('is-selected');
|
913
|
+
}
|
914
|
+
}
|
915
|
+
}
|
916
|
+
else if ($(this).hasClass('is-open')) {
|
917
|
+
// Up arrow focuses previous option
|
918
|
+
if (keyCode === 38) {
|
919
|
+
if ($(this).find('.ms-Dropdown-item.is-selected').prev().siblings().size() > 0) {
|
920
|
+
$(this).find('.ms-Dropdown-item.is-selected').removeClass('is-selected').prev().addClass('is-selected');
|
921
|
+
}
|
922
|
+
}
|
923
|
+
// Down arrow focuses next option
|
924
|
+
if (keyCode === 40) {
|
925
|
+
if ($(this).find('.ms-Dropdown-item.is-selected').next().siblings().size() > 0) {
|
926
|
+
$(this).find('.ms-Dropdown-item.is-selected').removeClass('is-selected').next().addClass('is-selected');
|
927
|
+
}
|
928
|
+
}
|
929
|
+
// Enter to select item
|
930
|
+
if (keyCode === 13) {
|
931
|
+
if (!$dropdownWrapper.hasClass('is-disabled')) {
|
932
|
+
|
933
|
+
// Item text
|
934
|
+
var selectedItemText = $(this).find('.ms-Dropdown-item.is-selected').text();
|
935
|
+
|
936
|
+
$(this).find('.ms-Dropdown-title').html(selectedItemText);
|
937
|
+
|
938
|
+
/** Update the original dropdown. */
|
939
|
+
$originalDropdown.find("option").each(function(key, value) {
|
940
|
+
if (value.text === selectedItemText) {
|
941
|
+
$(this).prop('selected', true);
|
942
|
+
} else {
|
943
|
+
$(this).prop('selected', false);
|
944
|
+
}
|
945
|
+
});
|
946
|
+
$originalDropdown.change();
|
947
|
+
|
948
|
+
$(this).removeClass('is-open');
|
949
|
+
}
|
950
|
+
}
|
951
|
+
}
|
952
|
+
|
953
|
+
// Close dropdown on esc
|
954
|
+
if (keyCode === 27) {
|
955
|
+
$(this).removeClass('is-open');
|
956
|
+
}
|
957
|
+
});
|
958
|
+
|
959
|
+
/** Select an option from the dropdown. */
|
960
|
+
$dropdownWrapper.on('click', '.ms-Dropdown-item', function () {
|
961
|
+
if (!$dropdownWrapper.hasClass('is-disabled') && !$(this).hasClass('is-disabled')) {
|
962
|
+
|
963
|
+
/** Deselect all items and select this one. */
|
964
|
+
$(this).siblings('.ms-Dropdown-item').removeClass('is-selected');
|
965
|
+
$(this).addClass('is-selected');
|
966
|
+
|
967
|
+
/** Update the replacement dropdown's title. */
|
968
|
+
$(this).parents().siblings('.ms-Dropdown-title').html($(this).text());
|
969
|
+
|
970
|
+
/** Update the original dropdown. */
|
971
|
+
var selectedItemText = $(this).text();
|
972
|
+
$originalDropdown.find("option").each(function(key, value) {
|
973
|
+
if (value.text === selectedItemText) {
|
974
|
+
$(this).prop('selected', true);
|
975
|
+
} else {
|
976
|
+
$(this).prop('selected', false);
|
977
|
+
}
|
978
|
+
});
|
979
|
+
$originalDropdown.change();
|
980
|
+
}
|
981
|
+
});
|
982
|
+
|
983
|
+
});
|
984
|
+
};
|
985
|
+
})(jQuery);
|
986
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
987
|
+
|
988
|
+
/**
|
989
|
+
* Facepile Plugin
|
990
|
+
*
|
991
|
+
* Adds basic demonstration functionality to .ms-Facepile components.
|
992
|
+
*
|
993
|
+
* @param {jQuery Object} One or more .ms-Facepile components
|
994
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
995
|
+
*/
|
996
|
+
(function ($) {
|
997
|
+
$.fn.Facepile = function () {
|
998
|
+
|
999
|
+
/** Iterate through each Facepile provided. */
|
1000
|
+
return this.each(function () {
|
1001
|
+
$('.ms-PeoplePicker').PeoplePicker();
|
1002
|
+
$('.ms-Panel').Panel();
|
1003
|
+
|
1004
|
+
var $Facepile = $(this);
|
1005
|
+
var $membersList = $(".ms-Facepile-members");
|
1006
|
+
var $membersCount = $(".ms-Facepile-members > .ms-Facepile-itemBtn").length;
|
1007
|
+
var $panel = $('.ms-Facepile-panel.ms-Panel');
|
1008
|
+
var $panelMain = $panel.find(".ms-Panel-main");
|
1009
|
+
var $picker = $('.ms-PeoplePicker.ms-PeoplePicker--Facepile');
|
1010
|
+
var $pickerMembers = $picker.find('.ms-PeoplePicker-selectedPeople');
|
1011
|
+
var $personaCard = $('.ms-Facepile').find('.ms-PersonaCard');
|
1012
|
+
|
1013
|
+
|
1014
|
+
/** Increment member count and show/hide overflow text */
|
1015
|
+
var incrementMembers = function() {
|
1016
|
+
/** Increment person count by one */
|
1017
|
+
$membersCount += 1;
|
1018
|
+
|
1019
|
+
/** Display a maxiumum of 5 people */
|
1020
|
+
$(".ms-Facepile-members").children(":gt(4)").hide();
|
1021
|
+
|
1022
|
+
/** Display counter after 5 people are present */
|
1023
|
+
if ($membersCount > 5) {
|
1024
|
+
$(".ms-Facepile-itemBtn--overflow").addClass("is-active");
|
1025
|
+
|
1026
|
+
var remainingMembers = $membersCount - 5;
|
1027
|
+
$(".ms-Facepile-overflowText").text("+" + remainingMembers);
|
1028
|
+
}
|
1029
|
+
};
|
1030
|
+
|
1031
|
+
/** Open panel with people picker */
|
1032
|
+
$Facepile.on("click", ".js-addPerson", function() {
|
1033
|
+
$panelMain.css({display: "block"});
|
1034
|
+
$panel.toggleClass("is-open")
|
1035
|
+
.addClass("ms-Panel-animateIn")
|
1036
|
+
.removeClass('ms-Facepile-panel--overflow ms-Panel--right')
|
1037
|
+
.addClass('ms-Facepile-panel--addPerson');
|
1038
|
+
|
1039
|
+
/** Close any open persona cards */
|
1040
|
+
$personaCard.removeClass('is-active').hide();
|
1041
|
+
});
|
1042
|
+
|
1043
|
+
$panel.on("click", ".js-togglePanel", function() {
|
1044
|
+
$panel.toggleClass("is-open")
|
1045
|
+
.addClass("ms-Panel-animateIn");
|
1046
|
+
});
|
1047
|
+
|
1048
|
+
/** Open oveflow panel with list of members */
|
1049
|
+
$Facepile.on("click", ".js-overflowPanel", function() {
|
1050
|
+
$panelMain.css({display: "block"});
|
1051
|
+
$panel.toggleClass("is-open")
|
1052
|
+
.addClass("ms-Panel-animateIn")
|
1053
|
+
.removeClass('ms-Facepile-panel--addPerson')
|
1054
|
+
.addClass('ms-Facepile-panel--overflow ms-Panel--right');
|
1055
|
+
});
|
1056
|
+
|
1057
|
+
/** Display person count on page load */
|
1058
|
+
$(document).ready(function() {
|
1059
|
+
$(".ms-Facepile-overflowText").text("+" + $membersCount);
|
1060
|
+
});
|
1061
|
+
|
1062
|
+
/** Show selected members from PeoplePicker in the Facepile */
|
1063
|
+
$('.ms-PeoplePicker-result').on('click', function() {
|
1064
|
+
var $this = $(this);
|
1065
|
+
var name = $this.find(".ms-Persona-primaryText").html();
|
1066
|
+
var title = $this.find(".ms-Persona-secondaryText").html();
|
1067
|
+
var selectedInitials = (function() {
|
1068
|
+
var nameArray = name.split(' ');
|
1069
|
+
var nameInitials = '';
|
1070
|
+
for (var i = 0; i < nameArray.length; i++) {
|
1071
|
+
nameInitials += nameArray[i].charAt(0);
|
1072
|
+
}
|
1073
|
+
|
1074
|
+
return nameInitials.substring(0,2);
|
1075
|
+
})();
|
1076
|
+
var selectedClasses = $this.find('.ms-Persona-initials').attr('class');
|
1077
|
+
var selectedImage = (function() {
|
1078
|
+
if ($this.find('.ms-Persona-image').length) {
|
1079
|
+
var selectedImageSrc = $this.find('.ms-Persona-image').attr('src');
|
1080
|
+
return '<img class="ms-Persona-image" src="' + selectedImageSrc + '" alt="Persona image">';
|
1081
|
+
} else {
|
1082
|
+
return '';
|
1083
|
+
}
|
1084
|
+
})();
|
1085
|
+
|
1086
|
+
var FacepileItem =
|
1087
|
+
'<button class="ms-Facepile-itemBtn ms-Facepile-itemBtn--member" title="' + name + '">' +
|
1088
|
+
'<div class="ms-Persona ms-Persona--xs">' +
|
1089
|
+
'<div class="ms-Persona-imageArea">' +
|
1090
|
+
'<div class="' + selectedClasses + '">' + selectedInitials + '</div>' +
|
1091
|
+
selectedImage +
|
1092
|
+
'</div>' +
|
1093
|
+
'<div class="ms-Persona-presence"></div>' +
|
1094
|
+
'<div class="ms-Persona-details">' +
|
1095
|
+
'<div class="ms-Persona-primaryText">' + name + '</div>' +
|
1096
|
+
'<div class="ms-Persona-secondaryText">' + title + '</div>' +
|
1097
|
+
'</div>' +
|
1098
|
+
'</div>' +
|
1099
|
+
'</button>';
|
1100
|
+
|
1101
|
+
/** Add new item to members list in Facepile */
|
1102
|
+
$membersList.prepend(FacepileItem);
|
1103
|
+
|
1104
|
+
/** Increment member count */
|
1105
|
+
incrementMembers();
|
1106
|
+
});
|
1107
|
+
|
1108
|
+
/** Remove members in panel people picker */
|
1109
|
+
$pickerMembers.on('click', '.js-selectedRemove', function() {
|
1110
|
+
var memberText = $(this).parent().find('.ms-Persona-primaryText').text();
|
1111
|
+
|
1112
|
+
var $FacepileMember = $membersList.find(".ms-Persona-primaryText:contains(" + memberText + ")").first();
|
1113
|
+
|
1114
|
+
if ($FacepileMember) {
|
1115
|
+
$FacepileMember.parent().closest('.ms-Facepile-itemBtn').remove();
|
1116
|
+
|
1117
|
+
$membersCount -= 1;
|
1118
|
+
|
1119
|
+
/** Display a maxiumum of 5 people */
|
1120
|
+
$(".ms-Facepile-members").children(":lt(5)").show();
|
1121
|
+
|
1122
|
+
/** Display counter after 5 people are present */
|
1123
|
+
if ($membersCount <= 5) {
|
1124
|
+
$(".ms-Facepile-itemBtn--overflow").removeClass("is-active");
|
1125
|
+
} else {
|
1126
|
+
var remainingMembers = $membersCount - 5;
|
1127
|
+
$(".ms-Facepile-overflowText").text("+" + remainingMembers);
|
1128
|
+
}
|
1129
|
+
}
|
1130
|
+
});
|
1131
|
+
|
1132
|
+
/** Show persona card when selecting a Facepile item */
|
1133
|
+
$membersList.on('click', '.ms-Facepile-itemBtn', function() {
|
1134
|
+
var selectedName = $(this).find(".ms-Persona-primaryText").html();
|
1135
|
+
var selectedTitle = $(this).find(".ms-Persona-secondaryText").html();
|
1136
|
+
var selectedInitials = (function() {
|
1137
|
+
var name = selectedName.split(' ');
|
1138
|
+
var nameInitials = '';
|
1139
|
+
for (var i = 0; i < name.length; i++) {
|
1140
|
+
nameInitials += name[i].charAt(0);
|
1141
|
+
}
|
1142
|
+
|
1143
|
+
return nameInitials.substring(0,2);
|
1144
|
+
})();
|
1145
|
+
var selectedClasses = $(this).find('.ms-Persona-initials').attr('class');
|
1146
|
+
var selectedImage = $(this).find('.ms-Persona-image').attr('src');
|
1147
|
+
var $card = $('.ms-PersonaCard');
|
1148
|
+
var $cardName = $card.find('.ms-Persona-primaryText');
|
1149
|
+
var $cardTitle = $card.find('.ms-Persona-secondaryText');
|
1150
|
+
var $cardInitials = $card.find('.ms-Persona-initials');
|
1151
|
+
var $cardImage = $card.find('.ms-Persona-image');
|
1152
|
+
|
1153
|
+
/** Close any open persona cards */
|
1154
|
+
$personaCard.removeClass('is-active');
|
1155
|
+
|
1156
|
+
/** Add data to persona card */
|
1157
|
+
$cardName.text(selectedName);
|
1158
|
+
$cardTitle.text(selectedTitle);
|
1159
|
+
$cardInitials.text(selectedInitials);
|
1160
|
+
$cardInitials.removeClass();
|
1161
|
+
$cardInitials.addClass(selectedClasses);
|
1162
|
+
$cardImage.attr('src', selectedImage);
|
1163
|
+
|
1164
|
+
/** Show persona card */
|
1165
|
+
setTimeout(function() { $personaCard.addClass('is-active'); }, 100);
|
1166
|
+
|
1167
|
+
/** Align persona card on md and above screens */
|
1168
|
+
if ($(window).width() > 480) {
|
1169
|
+
var itemPosition = $(this).offset().left;
|
1170
|
+
var correctedPosition = itemPosition - 26;
|
1171
|
+
|
1172
|
+
$personaCard.css({'left': correctedPosition});
|
1173
|
+
} else {
|
1174
|
+
$personaCard.css({'left': 0, 'top': 'auto', 'position': 'fixed'});
|
1175
|
+
}
|
1176
|
+
});
|
1177
|
+
|
1178
|
+
/** Dismiss persona card when clicking on the document */
|
1179
|
+
$(document).on('click', function(e) {
|
1180
|
+
var $memberBtn = $('.ms-Facepile-itemBtn--member');
|
1181
|
+
|
1182
|
+
if (!$memberBtn.is(e.target) && $memberBtn.has(e.target).length === 0 && !$personaCard.is(e.target) && $personaCard.has(e.target).length === 0) {
|
1183
|
+
$personaCard.removeClass('is-active');
|
1184
|
+
$personaCard.removeAttr('style');
|
1185
|
+
} else {
|
1186
|
+
$personaCard.addClass('is-active');
|
1187
|
+
}
|
1188
|
+
});
|
1189
|
+
|
1190
|
+
});
|
1191
|
+
};
|
1192
|
+
})(jQuery);
|
1193
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1194
|
+
|
1195
|
+
/**
|
1196
|
+
* List Item Plugin
|
1197
|
+
*
|
1198
|
+
* Adds basic demonstration functionality to .ms-ListItem components.
|
1199
|
+
*
|
1200
|
+
* @param {jQuery Object} One or more .ms-ListItem components
|
1201
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
1202
|
+
*/
|
1203
|
+
(function ($) {
|
1204
|
+
$.fn.ListItem = function () {
|
1205
|
+
|
1206
|
+
/** Go through each panel we've been given. */
|
1207
|
+
return this.each(function () {
|
1208
|
+
|
1209
|
+
var $listItem = $(this);
|
1210
|
+
|
1211
|
+
/** Detect clicks on selectable list items. */
|
1212
|
+
$listItem.on('click', '.js-toggleSelection', function() {
|
1213
|
+
$(this).parents('.ms-ListItem').toggleClass('is-selected');
|
1214
|
+
});
|
1215
|
+
|
1216
|
+
});
|
1217
|
+
|
1218
|
+
};
|
1219
|
+
})(jQuery);
|
1220
|
+
|
1221
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1222
|
+
|
1223
|
+
/**
|
1224
|
+
* MessageBanner component
|
1225
|
+
*
|
1226
|
+
* A component to display error messages
|
1227
|
+
*
|
1228
|
+
*/
|
1229
|
+
|
1230
|
+
/**
|
1231
|
+
* @namespace fabric
|
1232
|
+
*/
|
1233
|
+
var fabric = fabric || {};
|
1234
|
+
/**
|
1235
|
+
*
|
1236
|
+
* @param {HTMLElement} container - the target container for an instance of MessageBanner
|
1237
|
+
* @constructor
|
1238
|
+
*/
|
1239
|
+
fabric.MessageBanner = function(container) {
|
1240
|
+
this.container = container;
|
1241
|
+
this.init();
|
1242
|
+
};
|
1243
|
+
|
1244
|
+
fabric.MessageBanner.prototype = (function() {
|
1245
|
+
|
1246
|
+
var _clipper;
|
1247
|
+
var _bufferSize;
|
1248
|
+
var _textContainerMaxWidth = 700;
|
1249
|
+
var _clientWidth;
|
1250
|
+
var _textWidth;
|
1251
|
+
var _initTextWidth;
|
1252
|
+
var _chevronButton;
|
1253
|
+
var _errorBanner;
|
1254
|
+
var _actionButton;
|
1255
|
+
var _closeButton;
|
1256
|
+
var _bufferElementsWidth = 88;
|
1257
|
+
var _bufferElementsWidthSmall = 35;
|
1258
|
+
var SMALL_BREAK_POINT = 480;
|
1259
|
+
|
1260
|
+
/**
|
1261
|
+
* sets styles on resize
|
1262
|
+
*/
|
1263
|
+
var _onResize = function() {
|
1264
|
+
_clientWidth = _errorBanner.offsetWidth;
|
1265
|
+
if(window.innerWidth >= SMALL_BREAK_POINT ) {
|
1266
|
+
_resizeRegular();
|
1267
|
+
} else {
|
1268
|
+
_resizeSmall();
|
1269
|
+
}
|
1270
|
+
};
|
1271
|
+
|
1272
|
+
/**
|
1273
|
+
* resize above 480 pixel breakpoint
|
1274
|
+
*/
|
1275
|
+
var _resizeRegular = function() {
|
1276
|
+
if ((_clientWidth - _bufferSize) > _initTextWidth && _initTextWidth < _textContainerMaxWidth) {
|
1277
|
+
_textWidth = "auto";
|
1278
|
+
_chevronButton.className = "ms-MessageBanner-expand";
|
1279
|
+
_collapse();
|
1280
|
+
} else {
|
1281
|
+
_textWidth = Math.min((_clientWidth - _bufferSize), _textContainerMaxWidth) + "px";
|
1282
|
+
if(_chevronButton.className.indexOf("is-visible") === -1) {
|
1283
|
+
_chevronButton.className += " is-visible";
|
1284
|
+
}
|
1285
|
+
}
|
1286
|
+
_clipper.style.width = _textWidth;
|
1287
|
+
};
|
1288
|
+
|
1289
|
+
/**
|
1290
|
+
* resize below 480 pixel breakpoint
|
1291
|
+
*/
|
1292
|
+
var _resizeSmall = function() {
|
1293
|
+
if (_clientWidth - (_bufferElementsWidthSmall + _closeButton.offsetWidth) > _initTextWidth) {
|
1294
|
+
_textWidth = "auto";
|
1295
|
+
_collapse();
|
1296
|
+
} else {
|
1297
|
+
_textWidth = (_clientWidth - (_bufferElementsWidthSmall + _closeButton.offsetWidth)) + "px";
|
1298
|
+
}
|
1299
|
+
_clipper.style.width = _textWidth;
|
1300
|
+
};
|
1301
|
+
/**
|
1302
|
+
* caches elements and values of the component
|
1303
|
+
*/
|
1304
|
+
var _cacheDOM = function(context) {
|
1305
|
+
_errorBanner = context.container;
|
1306
|
+
_clipper = context.container.querySelector('.ms-MessageBanner-clipper');
|
1307
|
+
_chevronButton = context.container.querySelector('.ms-MessageBanner-expand');
|
1308
|
+
_actionButton = context.container.querySelector('.ms-MessageBanner-action');
|
1309
|
+
_bufferSize = _actionButton.offsetWidth + _bufferElementsWidth;
|
1310
|
+
_closeButton = context.container.querySelector('.ms-MessageBanner-close');
|
1311
|
+
};
|
1312
|
+
|
1313
|
+
/**
|
1314
|
+
* expands component to show full error message
|
1315
|
+
*/
|
1316
|
+
var _expand = function() {
|
1317
|
+
var icon = _chevronButton.querySelector('.ms-Icon');
|
1318
|
+
_errorBanner.className += " is-expanded";
|
1319
|
+
icon.className = "ms-Icon ms-Icon--chevronsUp";
|
1320
|
+
};
|
1321
|
+
|
1322
|
+
/**
|
1323
|
+
* collapses component to only show truncated message
|
1324
|
+
*/
|
1325
|
+
var _collapse = function() {
|
1326
|
+
var icon = _chevronButton.querySelector('.ms-Icon');
|
1327
|
+
_errorBanner.className = "ms-MessageBanner";
|
1328
|
+
icon.className = "ms-Icon ms-Icon--chevronsDown";
|
1329
|
+
};
|
1330
|
+
|
1331
|
+
var _toggleExpansion = function() {
|
1332
|
+
if (_errorBanner.className.indexOf("is-expanded") > -1) {
|
1333
|
+
_collapse();
|
1334
|
+
} else {
|
1335
|
+
_expand();
|
1336
|
+
}
|
1337
|
+
};
|
1338
|
+
|
1339
|
+
/**
|
1340
|
+
* hides banner when close button is clicked
|
1341
|
+
*/
|
1342
|
+
var _hideBanner = function() {
|
1343
|
+
if(_errorBanner.className.indexOf("hide") === -1) {
|
1344
|
+
_errorBanner.className += " hide";
|
1345
|
+
setTimeout(function() {
|
1346
|
+
_errorBanner.className = "ms-MessageBanner is-hidden";
|
1347
|
+
}, 500);
|
1348
|
+
}
|
1349
|
+
};
|
1350
|
+
|
1351
|
+
/**
|
1352
|
+
* shows banner if the banner is hidden
|
1353
|
+
*/
|
1354
|
+
var _showBanner = function() {
|
1355
|
+
_errorBanner.className = "ms-MessageBanner";
|
1356
|
+
};
|
1357
|
+
|
1358
|
+
/**
|
1359
|
+
* sets handlers for resize and button click events
|
1360
|
+
*/
|
1361
|
+
var _setListeners = function() {
|
1362
|
+
window.addEventListener('resize', _onResize, false);
|
1363
|
+
_chevronButton.addEventListener("click", _toggleExpansion, false);
|
1364
|
+
_closeButton.addEventListener("click", _hideBanner, false);
|
1365
|
+
};
|
1366
|
+
|
1367
|
+
/**
|
1368
|
+
* initializes component
|
1369
|
+
*/
|
1370
|
+
var init = function() {
|
1371
|
+
_cacheDOM(this);
|
1372
|
+
_setListeners();
|
1373
|
+
_clientWidth = _errorBanner.offsetWidth;
|
1374
|
+
_initTextWidth = _clipper.offsetWidth;
|
1375
|
+
_onResize(null);
|
1376
|
+
};
|
1377
|
+
|
1378
|
+
return {
|
1379
|
+
init: init,
|
1380
|
+
showBanner: _showBanner
|
1381
|
+
};
|
1382
|
+
}());
|
1383
|
+
|
1384
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1385
|
+
|
1386
|
+
/**
|
1387
|
+
* Nav Bar Plugin
|
1388
|
+
*/
|
1389
|
+
(function ($) {
|
1390
|
+
$.fn.NavBar = function () {
|
1391
|
+
|
1392
|
+
/** Go through each nav bar we've been given. */
|
1393
|
+
return this.each(function () {
|
1394
|
+
|
1395
|
+
var $navBar = $(this);
|
1396
|
+
|
1397
|
+
// Open the nav bar on mobile.
|
1398
|
+
$navBar.on('click', '.js-openMenu', function(event) {
|
1399
|
+
event.stopPropagation();
|
1400
|
+
$navBar.toggleClass('is-open');
|
1401
|
+
});
|
1402
|
+
|
1403
|
+
// Close the nav bar on mobile.
|
1404
|
+
$navBar.click(function() {
|
1405
|
+
if ($navBar.hasClass('is-open')) {
|
1406
|
+
$navBar.removeClass('is-open');
|
1407
|
+
}
|
1408
|
+
});
|
1409
|
+
|
1410
|
+
// Set selected states and open/close menus.
|
1411
|
+
$navBar.on('click', '.ms-NavBar-item:not(.is-disabled)', function(event) {
|
1412
|
+
var $searchBox = $navBar.find('.ms-NavBar-item.ms-NavBar-item--search .ms-TextField-field');
|
1413
|
+
event.stopPropagation();
|
1414
|
+
|
1415
|
+
// Prevent default actions from firing if links are not found.
|
1416
|
+
if ($(this).children('.ms-NavBar-link').length === 0) {
|
1417
|
+
event.preventDefault();
|
1418
|
+
}
|
1419
|
+
|
1420
|
+
// Deselect all of the items.
|
1421
|
+
$(this).siblings('.ms-NavBar-item').removeClass('is-selected');
|
1422
|
+
|
1423
|
+
// Close and blur the search box if it doesn't have text.
|
1424
|
+
if ($searchBox.length > 0 && $searchBox.val().length === 0) {
|
1425
|
+
$('.ms-NavBar-item.ms-NavBar-item--search').removeClass('is-open').find('.ms-TextField-field').blur();
|
1426
|
+
}
|
1427
|
+
|
1428
|
+
// Does the selected item have a menu?
|
1429
|
+
if ($(this).hasClass('ms-NavBar-item--hasMenu')) {
|
1430
|
+
|
1431
|
+
// First, close any neighboring menus.
|
1432
|
+
$(this).siblings('.ms-NavBar-item--hasMenu').children('.ms-ContextualMenu:first').removeClass('is-open');
|
1433
|
+
|
1434
|
+
// Toggle 'is-open' to open or close it.
|
1435
|
+
$(this).children('.ms-ContextualMenu:first').toggleClass('is-open');
|
1436
|
+
|
1437
|
+
// Toggle 'is-selected' to indicate whether it is active.
|
1438
|
+
$(this).toggleClass('is-selected');
|
1439
|
+
} else {
|
1440
|
+
// Doesn't have a menu, so just select the item.
|
1441
|
+
$(this).addClass('is-selected');
|
1442
|
+
|
1443
|
+
// Close the submenu and any open contextual menus.
|
1444
|
+
$navBar.removeClass('is-open').find('.ms-ContextualMenu').removeClass('is-open');
|
1445
|
+
}
|
1446
|
+
|
1447
|
+
// Is this the search box? Open it up and focus on the search field.
|
1448
|
+
if ($(this).hasClass('ms-NavBar-item--search')) {
|
1449
|
+
$(this).addClass('is-open');
|
1450
|
+
$(this).find('.ms-TextField-field').focus();
|
1451
|
+
|
1452
|
+
// Close any open menus.
|
1453
|
+
$navBar.find('.ms-ContextualMenu:first').removeClass('is-open');
|
1454
|
+
}
|
1455
|
+
});
|
1456
|
+
|
1457
|
+
// Prevent contextual menus from being hidden when clicking on them.
|
1458
|
+
$navBar.on('click', '.ms-NavBar-item .ms-ContextualMenu', function(event) {
|
1459
|
+
event.stopPropagation();
|
1460
|
+
|
1461
|
+
// Collapse the mobile "panel" for nav items.
|
1462
|
+
$(this).removeClass('is-open');
|
1463
|
+
$navBar.removeClass('is-open').find('.ms-NavBar-item--hasMenu').removeClass('is-selected');
|
1464
|
+
});
|
1465
|
+
|
1466
|
+
// Hide any menus and close the search box when clicking anywhere in the document.
|
1467
|
+
$(document).on('click', 'html', function() {
|
1468
|
+
var $searchBox = $navBar.find('.ms-NavBar-item.ms-NavBar-item--search .ms-TextField-field');
|
1469
|
+
$navBar.find('.ms-NavBar-item').removeClass('is-selected').find('.ms-ContextualMenu').removeClass('is-open');
|
1470
|
+
|
1471
|
+
// Close and blur the search box if it doesn't have text.
|
1472
|
+
if ($searchBox.length > 0 && $searchBox.val().length === 0) {
|
1473
|
+
$navBar.find('.ms-NavBar-item.ms-NavBar-item--search').removeClass('is-open').find('.ms-TextField-field').blur();
|
1474
|
+
}
|
1475
|
+
});
|
1476
|
+
});
|
1477
|
+
};
|
1478
|
+
})(jQuery);
|
1479
|
+
|
1480
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1481
|
+
|
1482
|
+
/**
|
1483
|
+
* Panel Plugin
|
1484
|
+
*
|
1485
|
+
* Adds basic demonstration functionality to .ms-Panel components.
|
1486
|
+
*
|
1487
|
+
* @param {jQuery Object} One or more .ms-Panel components
|
1488
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
1489
|
+
*/
|
1490
|
+
(function ($) {
|
1491
|
+
$.fn.Panel = function () {
|
1492
|
+
|
1493
|
+
var pfx = ["webkit", "moz", "MS", "o", ""];
|
1494
|
+
|
1495
|
+
// Prefix function
|
1496
|
+
function prefixedEvent(element, type, callback) {
|
1497
|
+
for (var p = 0; p < pfx.length; p++) {
|
1498
|
+
if (!pfx[p]) { type = type.toLowerCase(); }
|
1499
|
+
element.addEventListener(pfx[p]+type, callback, false);
|
1500
|
+
}
|
1501
|
+
}
|
1502
|
+
|
1503
|
+
/** Go through each panel we've been given. */
|
1504
|
+
return this.each(function () {
|
1505
|
+
|
1506
|
+
var $panel = $(this);
|
1507
|
+
var $panelMain = $panel.find(".ms-Panel-main");
|
1508
|
+
|
1509
|
+
/** Hook to open the panel. */
|
1510
|
+
$(".ms-PanelAction-close").on("click", function() {
|
1511
|
+
|
1512
|
+
// Display Panel first, to allow animations
|
1513
|
+
$panel.addClass("ms-Panel-animateOut");
|
1514
|
+
|
1515
|
+
});
|
1516
|
+
|
1517
|
+
$(".ms-PanelAction-open").on("click", function() {
|
1518
|
+
|
1519
|
+
// Display Panel first, to allow animations
|
1520
|
+
$panel.addClass("is-open");
|
1521
|
+
|
1522
|
+
// Add animation class
|
1523
|
+
$panel.addClass("ms-Panel-animateIn");
|
1524
|
+
|
1525
|
+
});
|
1526
|
+
|
1527
|
+
prefixedEvent($panelMain[0], 'AnimationEnd', function(event) {
|
1528
|
+
if (event.animationName.indexOf('Out') > -1) {
|
1529
|
+
|
1530
|
+
// Hide and Prevent ms-Panel-main from being interactive
|
1531
|
+
$panel.removeClass('is-open');
|
1532
|
+
|
1533
|
+
// Remove animating classes for the next time we open panel
|
1534
|
+
$panel.removeClass('ms-Panel-animateIn ms-Panel-animateOut');
|
1535
|
+
|
1536
|
+
}
|
1537
|
+
});
|
1538
|
+
|
1539
|
+
// Pivots for sample page to show variant panel sizes
|
1540
|
+
$(".panelVariant-item").on("click", function() {
|
1541
|
+
var className = $(this).find('span').attr('class');
|
1542
|
+
|
1543
|
+
$(".panelVariant-item").removeClass('is-selected');
|
1544
|
+
$(this).addClass('is-selected');
|
1545
|
+
|
1546
|
+
switch (className) {
|
1547
|
+
case 'is-default':
|
1548
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel');
|
1549
|
+
break;
|
1550
|
+
case 'is-left':
|
1551
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--left');
|
1552
|
+
break;
|
1553
|
+
case 'is-lightDismiss':
|
1554
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--lightDismiss');
|
1555
|
+
break;
|
1556
|
+
case 'is-md':
|
1557
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--md');
|
1558
|
+
break;
|
1559
|
+
case 'is-lgFixed':
|
1560
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--lg ms-Panel--fixed');
|
1561
|
+
break;
|
1562
|
+
case 'is-lg':
|
1563
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--lg');
|
1564
|
+
break;
|
1565
|
+
case 'is-xl':
|
1566
|
+
$('.ms-Panel').removeClass().addClass('ms-Panel ms-Panel--xl');
|
1567
|
+
break;
|
1568
|
+
}
|
1569
|
+
});
|
1570
|
+
});
|
1571
|
+
|
1572
|
+
};
|
1573
|
+
})(jQuery);
|
1574
|
+
|
1575
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1576
|
+
|
1577
|
+
var fabric = fabric || {};
|
1578
|
+
|
1579
|
+
/**
|
1580
|
+
* People Picker Plugin
|
1581
|
+
*
|
1582
|
+
* Adds basic demonstration functionality to .ms-PeoplePicker components.
|
1583
|
+
*
|
1584
|
+
* @param {jQuery Object} One or more .ms-PeoplePicker components
|
1585
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
1586
|
+
*/
|
1587
|
+
|
1588
|
+
(function ($) {
|
1589
|
+
$.fn.PeoplePicker = function () {
|
1590
|
+
|
1591
|
+
/** Iterate through each people picker provided. */
|
1592
|
+
return this.each(function () {
|
1593
|
+
|
1594
|
+
var $peoplePicker = $(this);
|
1595
|
+
var $searchField = $peoplePicker.find(".ms-PeoplePicker-searchField");
|
1596
|
+
var $results = $peoplePicker.find(".ms-PeoplePicker-results");
|
1597
|
+
var $selected = $peoplePicker.find('.ms-PeoplePicker-selected');
|
1598
|
+
var $selectedPeople = $peoplePicker.find(".ms-PeoplePicker-selectedPeople");
|
1599
|
+
var $selectedCount = $peoplePicker.find(".ms-PeoplePicker-selectedCount");
|
1600
|
+
var $peopleList = $peoplePicker.find(".ms-PeoplePicker-peopleList");
|
1601
|
+
var isActive = false;
|
1602
|
+
var spinner;
|
1603
|
+
var $personaCard = $('.ms-PeoplePicker').find('.ms-PersonaCard');
|
1604
|
+
|
1605
|
+
// Run when focused or clicked
|
1606
|
+
function peoplePickerActive(event) {
|
1607
|
+
/** Scroll the view so that the people picker is at the top. */
|
1608
|
+
$('html, body').animate({
|
1609
|
+
scrollTop: $peoplePicker.offset().top
|
1610
|
+
}, 367);
|
1611
|
+
|
1612
|
+
/** Start by closing any open people pickers. */
|
1613
|
+
if ( $peoplePicker.hasClass('is-active') ) {
|
1614
|
+
$peoplePicker.removeClass("is-active");
|
1615
|
+
}
|
1616
|
+
|
1617
|
+
/** Display a maxiumum of 5 people in Facepile variant */
|
1618
|
+
if ($peoplePicker.hasClass('ms-PeoplePicker--Facepile') && $searchField.val() === "") {
|
1619
|
+
$peopleList.children(":gt(4)").hide();
|
1620
|
+
}
|
1621
|
+
|
1622
|
+
/** Animate results and members in Facepile variant. */
|
1623
|
+
if ($peoplePicker.hasClass('ms-PeoplePicker--Facepile')) {
|
1624
|
+
// $results.addClass('ms-u-slideDownIn20');
|
1625
|
+
$selectedPeople.addClass('ms-u-slideDownIn20');
|
1626
|
+
setTimeout(function() { $results.removeClass('ms-u-slideDownIn20'); $selectedPeople.removeClass('ms-u-slideDownIn20');}, 1000);
|
1627
|
+
}
|
1628
|
+
|
1629
|
+
isActive = true;
|
1630
|
+
|
1631
|
+
/** Stop the click event from propagating, which would just close the dropdown immediately. */
|
1632
|
+
event.stopPropagation();
|
1633
|
+
|
1634
|
+
/** Before opening, size the results panel to match the people picker. */
|
1635
|
+
if (!$peoplePicker.hasClass('ms-PeoplePicker--Facepile')) {
|
1636
|
+
$results.width($peoplePicker.width() - 2);
|
1637
|
+
}
|
1638
|
+
|
1639
|
+
/** Show the $results by setting the people picker to active. */
|
1640
|
+
$peoplePicker.addClass("is-active");
|
1641
|
+
|
1642
|
+
/** Temporarily bind an event to the document that will close the people picker when clicking anywhere. */
|
1643
|
+
$(document).bind("click.peoplepicker", function() {
|
1644
|
+
$peoplePicker.removeClass('is-active');
|
1645
|
+
if ($peoplePicker.hasClass('ms-PeoplePicker--Facepile')) {
|
1646
|
+
$peoplePicker.removeClass('is-searching');
|
1647
|
+
$('.ms-PeoplePicker-selected').show();
|
1648
|
+
$('.ms-PeoplePicker-searchMore').removeClass('is-active');
|
1649
|
+
$searchField.val("");
|
1650
|
+
}
|
1651
|
+
$(document).unbind('click.peoplepicker');
|
1652
|
+
isActive = false;
|
1653
|
+
});
|
1654
|
+
}
|
1655
|
+
|
1656
|
+
/** Set to active when focusing on the input. */
|
1657
|
+
$peoplePicker.on('focus', '.ms-PeoplePicker-searchField', function(event) {
|
1658
|
+
peoplePickerActive(event);
|
1659
|
+
});
|
1660
|
+
|
1661
|
+
/** Set to active when clicking on the input. */
|
1662
|
+
$peoplePicker.on('click', '.ms-PeoplePicker-searchField', function(event) {
|
1663
|
+
peoplePickerActive(event);
|
1664
|
+
});
|
1665
|
+
|
1666
|
+
/** Keep the people picker active when clicking within it. */
|
1667
|
+
$(this).click(function (event) {
|
1668
|
+
event.stopPropagation();
|
1669
|
+
});
|
1670
|
+
|
1671
|
+
/** Add the selected person to the text field or selected list and close the people picker. */
|
1672
|
+
$results.on('click', '.ms-PeoplePicker-result', function () {
|
1673
|
+
var $this = $(this);
|
1674
|
+
var selectedName = $this.find(".ms-Persona-primaryText").html();
|
1675
|
+
var selectedTitle = $this.find(".ms-Persona-secondaryText").html();
|
1676
|
+
var selectedInitials = (function() {
|
1677
|
+
var name = selectedName.split(' ');
|
1678
|
+
var nameInitials = '';
|
1679
|
+
|
1680
|
+
for (var i = 0; i < name.length; i++) {
|
1681
|
+
nameInitials += name[i].charAt(0);
|
1682
|
+
}
|
1683
|
+
|
1684
|
+
return nameInitials.substring(0,2);
|
1685
|
+
})();
|
1686
|
+
var selectedClasses = $this.find('.ms-Persona-initials').attr('class');
|
1687
|
+
var selectedImage = (function() {
|
1688
|
+
if ($this.find('.ms-Persona-image').length) {
|
1689
|
+
var selectedImageSrc = $this.find('.ms-Persona-image').attr('src');
|
1690
|
+
return '<img class="ms-Persona-image" src="' + selectedImageSrc + '" alt="Persona image">';
|
1691
|
+
} else {
|
1692
|
+
return '';
|
1693
|
+
}
|
1694
|
+
})();
|
1695
|
+
|
1696
|
+
/** Token html */
|
1697
|
+
var personaHTML = '<div class="ms-PeoplePicker-persona">' +
|
1698
|
+
'<div class="ms-Persona ms-Persona--xs ms-Persona--square">' +
|
1699
|
+
'<div class="ms-Persona-imageArea">' +
|
1700
|
+
'<div class="' + selectedClasses + '">' + selectedInitials + '</div>' +
|
1701
|
+
selectedImage +
|
1702
|
+
'</div>' +
|
1703
|
+
'<div class="ms-Persona-presence"></div>' +
|
1704
|
+
'<div class="ms-Persona-details">' +
|
1705
|
+
'<div class="ms-Persona-primaryText">' + selectedName + '</div>' +
|
1706
|
+
' </div>' +
|
1707
|
+
'</div>' +
|
1708
|
+
'<button class="ms-PeoplePicker-personaRemove">' +
|
1709
|
+
'<i class="ms-Icon ms-Icon--x"></i>' +
|
1710
|
+
' </button>' +
|
1711
|
+
'</div>';
|
1712
|
+
/** List item html */
|
1713
|
+
var personaListItem = '<li class="ms-PeoplePicker-selectedPerson">' +
|
1714
|
+
'<div class="ms-Persona ms-Persona--sm">' +
|
1715
|
+
'<div class="ms-Persona-imageArea">' +
|
1716
|
+
'<div class="' + selectedClasses + '">' + selectedInitials + '</div>' +
|
1717
|
+
selectedImage +
|
1718
|
+
'</div>' +
|
1719
|
+
'<div class="ms-Persona-presence"></div>' +
|
1720
|
+
'<div class="ms-Persona-details">' +
|
1721
|
+
'<div class="ms-Persona-primaryText">' + selectedName + '</div>' +
|
1722
|
+
'<div class="ms-Persona-secondaryText">' + selectedTitle + '</div>' +
|
1723
|
+
'</div>' +
|
1724
|
+
'</div>' +
|
1725
|
+
'<button class="ms-PeoplePicker-resultAction js-selectedRemove"><i class="ms-Icon ms-Icon--x"></i></button>' +
|
1726
|
+
'</li>';
|
1727
|
+
/** Tokenize selected persona if not Facepile or memberslist variants */
|
1728
|
+
if (!$peoplePicker.hasClass('ms-PeoplePicker--Facepile') && !$peoplePicker.hasClass('ms-PeoplePicker--membersList') ) {
|
1729
|
+
$searchField.before(personaHTML);
|
1730
|
+
$peoplePicker.removeClass("is-active");
|
1731
|
+
resizeSearchField($peoplePicker);
|
1732
|
+
}
|
1733
|
+
/** Add selected persona to a list if Facepile or memberslist variants */
|
1734
|
+
else {
|
1735
|
+
if (!$selected.hasClass('is-active')) {
|
1736
|
+
$selected.addClass('is-active');
|
1737
|
+
}
|
1738
|
+
/** Prepend persona list item html to selected people list */
|
1739
|
+
$selectedPeople.prepend(personaListItem);
|
1740
|
+
/** Close the picker */
|
1741
|
+
$peoplePicker.removeClass("is-active");
|
1742
|
+
/** Get the total amount of selected personas and display that number */
|
1743
|
+
var count = $peoplePicker.find('.ms-PeoplePicker-selectedPerson').length;
|
1744
|
+
$selectedCount.html(count);
|
1745
|
+
/** Return picker back to default state:
|
1746
|
+
- Show only the first five results in the people list for when the picker is reopened
|
1747
|
+
- Make searchMore inactive
|
1748
|
+
- Clear any search field text
|
1749
|
+
*/
|
1750
|
+
$peopleList.children().show();
|
1751
|
+
$peopleList.children(":gt(4)").hide();
|
1752
|
+
|
1753
|
+
$('.ms-PeoplePicker-searchMore').removeClass('is-active');
|
1754
|
+
$searchField.val("");
|
1755
|
+
}
|
1756
|
+
});
|
1757
|
+
|
1758
|
+
/** Remove the persona when clicking the personaRemove button. */
|
1759
|
+
$peoplePicker.on('click', '.ms-PeoplePicker-personaRemove', function() {
|
1760
|
+
$(this).parents('.ms-PeoplePicker-persona').remove();
|
1761
|
+
|
1762
|
+
/** Make the search field 100% width if all personas have been removed */
|
1763
|
+
if ( $('.ms-PeoplePicker-persona').length === 0 ) {
|
1764
|
+
$peoplePicker.find('.ms-PeoplePicker-searchField').outerWidth('100%');
|
1765
|
+
} else {
|
1766
|
+
resizeSearchField($peoplePicker);
|
1767
|
+
}
|
1768
|
+
});
|
1769
|
+
|
1770
|
+
/** Trigger additional searching when clicking the search more area. */
|
1771
|
+
$results.on('click', '.js-searchMore', function() {
|
1772
|
+
var $searchMore = $(this);
|
1773
|
+
var primaryLabel = $searchMore.find(".ms-PeoplePicker-searchMorePrimary");
|
1774
|
+
var originalPrimaryLabelText = primaryLabel.html();
|
1775
|
+
var searchFieldText = $searchField.val();
|
1776
|
+
|
1777
|
+
/** Change to searching state. */
|
1778
|
+
$searchMore.addClass("is-searching");
|
1779
|
+
primaryLabel.html("Searching for " + searchFieldText);
|
1780
|
+
|
1781
|
+
/** Attach Spinner */
|
1782
|
+
if (!spinner) {
|
1783
|
+
spinner = new fabric.Spinner($searchMore.get(0));
|
1784
|
+
} else {
|
1785
|
+
spinner.start();
|
1786
|
+
}
|
1787
|
+
|
1788
|
+
/** Show all results in Facepile variant */
|
1789
|
+
if($peoplePicker.hasClass('ms-PeoplePicker--Facepile')) {
|
1790
|
+
setTimeout(function() {$peopleList.children().show();}, 1500);
|
1791
|
+
}
|
1792
|
+
|
1793
|
+
/** Return the original state. */
|
1794
|
+
setTimeout(function() {
|
1795
|
+
$searchMore.removeClass("is-searching");
|
1796
|
+
primaryLabel.html(originalPrimaryLabelText);
|
1797
|
+
spinner.stop();
|
1798
|
+
}, 1500);
|
1799
|
+
});
|
1800
|
+
|
1801
|
+
/** Remove a result using the action icon. */
|
1802
|
+
$results.on('click', '.js-resultRemove', function(event) {
|
1803
|
+
event.stopPropagation();
|
1804
|
+
$(this).parent(".ms-PeoplePicker-result").remove();
|
1805
|
+
});
|
1806
|
+
|
1807
|
+
/** Expand a result if more details are available. */
|
1808
|
+
$results.on('click', '.js-resultExpand', function(event) {
|
1809
|
+
event.stopPropagation();
|
1810
|
+
$(this).parent(".ms-PeoplePicker-result").toggleClass("is-expanded");
|
1811
|
+
});
|
1812
|
+
|
1813
|
+
/** Remove a selected person using the action icon. */
|
1814
|
+
$selectedPeople.on('click', '.js-selectedRemove', function(event) {
|
1815
|
+
event.stopPropagation();
|
1816
|
+
$(this).parent(".ms-PeoplePicker-selectedPerson").remove();
|
1817
|
+
var count = $peoplePicker.find('.ms-PeoplePicker-selectedPerson').length;
|
1818
|
+
$selectedCount.html(count);
|
1819
|
+
if ($peoplePicker.find('.ms-PeoplePicker-selectedPerson').length === 0) {
|
1820
|
+
$selected.removeClass('is-active');
|
1821
|
+
}
|
1822
|
+
});
|
1823
|
+
|
1824
|
+
var filterResults = function(results, currentSuggestion, currentValueExists) {
|
1825
|
+
return results.find('.ms-Persona-primaryText').filter(function() {
|
1826
|
+
if (currentValueExists) {
|
1827
|
+
return $(this).text().toLowerCase() === currentSuggestion;
|
1828
|
+
} else {
|
1829
|
+
return $(this).text().toLowerCase() !== currentSuggestion;
|
1830
|
+
}
|
1831
|
+
}).parents('.ms-PeoplePicker-peopleListItem');
|
1832
|
+
};
|
1833
|
+
|
1834
|
+
/** Search people picker items */
|
1835
|
+
$peoplePicker.on('keyup', '.ms-PeoplePicker-searchField', function(evt) {
|
1836
|
+
var suggested = [];
|
1837
|
+
var newSuggestions = [];
|
1838
|
+
var $pickerResult = $results.find('.ms-Persona-primaryText');
|
1839
|
+
|
1840
|
+
$peoplePicker.addClass('is-searching');
|
1841
|
+
|
1842
|
+
/** Hide members */
|
1843
|
+
$selected.hide();
|
1844
|
+
|
1845
|
+
/** Show 5 results */
|
1846
|
+
$peopleList.children(":lt(5)").show();
|
1847
|
+
|
1848
|
+
/** Show searchMore button */
|
1849
|
+
$('.ms-PeoplePicker-searchMore').addClass('is-active');
|
1850
|
+
|
1851
|
+
/** Get array of suggested people */
|
1852
|
+
$pickerResult.each(function() { suggested.push($(this).text()); });
|
1853
|
+
|
1854
|
+
/** Iterate over array to find matches and show matching items */
|
1855
|
+
for (var i = 0; i < suggested.length; i++) {
|
1856
|
+
var currentPersona = suggested[i].toLowerCase();
|
1857
|
+
var currentValue = evt.target.value.toLowerCase();
|
1858
|
+
var currentSuggestion;
|
1859
|
+
|
1860
|
+
if (currentPersona.indexOf(currentValue) > -1) {
|
1861
|
+
currentSuggestion = suggested[i].toLowerCase();
|
1862
|
+
|
1863
|
+
newSuggestions.push(suggested[i]);
|
1864
|
+
|
1865
|
+
filterResults($results, currentSuggestion, true).show();
|
1866
|
+
} else {
|
1867
|
+
filterResults($results, currentSuggestion, false).hide();
|
1868
|
+
}
|
1869
|
+
}
|
1870
|
+
|
1871
|
+
/** Show members and hide searchmore when field is empty */
|
1872
|
+
if ($(this).val() === "") {
|
1873
|
+
$peoplePicker.removeClass('is-searching');
|
1874
|
+
$selected.show();
|
1875
|
+
$('.ms-PeoplePicker-searchMore').removeClass('is-active');
|
1876
|
+
$selectedPeople.addClass('ms-u-slideDownIn20');
|
1877
|
+
setTimeout(function() { $selectedPeople.removeClass('ms-u-slideDownIn20');}, 1000);
|
1878
|
+
$peopleList.children(":gt(4)").hide();
|
1879
|
+
}
|
1880
|
+
});
|
1881
|
+
|
1882
|
+
/** Show persona card when clicking a persona in the members list */
|
1883
|
+
$selectedPeople.on('click', '.ms-Persona', function() {
|
1884
|
+
var selectedName = $(this).find(".ms-Persona-primaryText").html();
|
1885
|
+
var selectedTitle = $(this).find(".ms-Persona-secondaryText").html();
|
1886
|
+
var selectedInitials = (function() {
|
1887
|
+
var name = selectedName.split(' ');
|
1888
|
+
var nameInitials = '';
|
1889
|
+
|
1890
|
+
for (var i = 0; i < name.length; i++) {
|
1891
|
+
nameInitials += name[i].charAt(0);
|
1892
|
+
}
|
1893
|
+
|
1894
|
+
return nameInitials.substring(0,2);
|
1895
|
+
})();
|
1896
|
+
var selectedClasses = $(this).find('.ms-Persona-initials').attr('class');
|
1897
|
+
var selectedImage = $(this).find('.ms-Persona-image').attr('src');
|
1898
|
+
var $card = $('.ms-PersonaCard');
|
1899
|
+
var $cardName = $card.find('.ms-Persona-primaryText');
|
1900
|
+
var $cardTitle = $card.find('.ms-Persona-secondaryText');
|
1901
|
+
var $cardInitials = $card.find('.ms-Persona-initials');
|
1902
|
+
var $cardImage = $card.find('.ms-Persona-image');
|
1903
|
+
|
1904
|
+
/** Close any open persona cards */
|
1905
|
+
$personaCard.removeClass('is-active');
|
1906
|
+
|
1907
|
+
/** Add data to persona card */
|
1908
|
+
$cardName.text(selectedName);
|
1909
|
+
$cardTitle.text(selectedTitle);
|
1910
|
+
$cardInitials.text(selectedInitials);
|
1911
|
+
$cardInitials.removeClass();
|
1912
|
+
$cardInitials.addClass(selectedClasses);
|
1913
|
+
$cardImage.attr('src', selectedImage);
|
1914
|
+
|
1915
|
+
/** Show persona card */
|
1916
|
+
setTimeout(function() {
|
1917
|
+
$personaCard.addClass('is-active');
|
1918
|
+
setTimeout(function(){$personaCard.css({'animation-name': 'none'});}, 300);
|
1919
|
+
}, 100);
|
1920
|
+
|
1921
|
+
/** Align persona card on md and above screens */
|
1922
|
+
if ($(window).width() > 480) {
|
1923
|
+
var itemPositionTop = $(this).offset().top;
|
1924
|
+
var correctedPositionTop = itemPositionTop + 10;
|
1925
|
+
|
1926
|
+
$personaCard.css({'top': correctedPositionTop, 'left': 0});
|
1927
|
+
} else {
|
1928
|
+
$personaCard.css({'top': 'auto'});
|
1929
|
+
}
|
1930
|
+
});
|
1931
|
+
|
1932
|
+
/** Dismiss persona card when clicking on the document */
|
1933
|
+
$(document).on('click', function(e) {
|
1934
|
+
var $memberBtn = $('.ms-PeoplePicker-selectedPerson').find('.ms-Persona');
|
1935
|
+
|
1936
|
+
if (!$memberBtn.is(e.target) && !$personaCard.is(e.target) && $personaCard.has(e.target).length === 0) {
|
1937
|
+
$personaCard.removeClass('is-active');
|
1938
|
+
setTimeout(function(){$personaCard.removeAttr('style');}, 300);
|
1939
|
+
} else {
|
1940
|
+
$personaCard.addClass('is-active');
|
1941
|
+
}
|
1942
|
+
});
|
1943
|
+
});
|
1944
|
+
};
|
1945
|
+
|
1946
|
+
/** Resize the search field to match the search box */
|
1947
|
+
function resizeSearchField($peoplePicker) {
|
1948
|
+
var $searchBox = $peoplePicker.find('.ms-PeoplePicker-searchBox');
|
1949
|
+
|
1950
|
+
// Where is the right edge of the search box?
|
1951
|
+
var searchBoxLeftEdge = $searchBox.position().left;
|
1952
|
+
var searchBoxWidth = $searchBox.outerWidth();
|
1953
|
+
var searchBoxRightEdge = searchBoxLeftEdge + searchBoxWidth;
|
1954
|
+
|
1955
|
+
// Where is the right edge of the last persona component?
|
1956
|
+
var $lastPersona = $searchBox.find('.ms-PeoplePicker-persona:last');
|
1957
|
+
var lastPersonaLeftEdge = $lastPersona.offset().left;
|
1958
|
+
var lastPersonaWidth = $lastPersona.outerWidth();
|
1959
|
+
var lastPersonaRightEdge = lastPersonaLeftEdge + lastPersonaWidth;
|
1960
|
+
|
1961
|
+
// Adjust the width of the field to fit the remaining space.
|
1962
|
+
var newFieldWidth = searchBoxRightEdge - lastPersonaRightEdge - 7;
|
1963
|
+
|
1964
|
+
// Don't let the field get too tiny.
|
1965
|
+
if (newFieldWidth < 100) {
|
1966
|
+
newFieldWidth = "100%";
|
1967
|
+
}
|
1968
|
+
|
1969
|
+
// Set the width of the search field
|
1970
|
+
$peoplePicker.find('.ms-PeoplePicker-searchField').outerWidth(newFieldWidth);
|
1971
|
+
}
|
1972
|
+
})(jQuery);
|
1973
|
+
|
1974
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
1975
|
+
|
1976
|
+
/**
|
1977
|
+
* Persona Card Plugin
|
1978
|
+
*
|
1979
|
+
* Adds basic demonstration functionality to .ms-PersonaCard components.
|
1980
|
+
*
|
1981
|
+
* @param {jQuery Object} One or more .ms-PersonaCard components
|
1982
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
1983
|
+
*/
|
1984
|
+
(function ($) {
|
1985
|
+
$.fn.PersonaCard = function () {
|
1986
|
+
|
1987
|
+
/** Go through each file picker we've been given. */
|
1988
|
+
return this.each(function () {
|
1989
|
+
|
1990
|
+
var $personaCard = $(this);
|
1991
|
+
|
1992
|
+
/** When selecting an action, show its details. */
|
1993
|
+
$personaCard.on('click', '.ms-PersonaCard-action', function() {
|
1994
|
+
|
1995
|
+
/** Select the correct tab. */
|
1996
|
+
$personaCard.find('.ms-PersonaCard-action').removeClass('is-active');
|
1997
|
+
$(this).addClass('is-active');
|
1998
|
+
|
1999
|
+
/** Function for switching selected item into view by adding a class to ul. */
|
2000
|
+
var updateForItem = function(wrapper, item) {
|
2001
|
+
var previousItem = wrapper.className + "";
|
2002
|
+
var detail = item.charAt(0).toUpperCase() + item.slice(1);
|
2003
|
+
var nextItem = "ms-PersonaCard-detail" + detail;
|
2004
|
+
if (previousItem !== nextItem){
|
2005
|
+
wrapper.classList.remove(previousItem);
|
2006
|
+
wrapper.classList.add(nextItem);
|
2007
|
+
}
|
2008
|
+
};
|
2009
|
+
|
2010
|
+
/** Get id of selected item */
|
2011
|
+
var el = $(this).attr('id');
|
2012
|
+
/** Add detail class to ul to switch it into view. */
|
2013
|
+
updateForItem($(this).parent().next().find('#detailList')[0], el);
|
2014
|
+
|
2015
|
+
/** Display the corresponding details. */
|
2016
|
+
var requestedAction = $(this).attr('id');
|
2017
|
+
$personaCard.find('.ms-PersonaCard-actionDetails').removeClass('is-active');
|
2018
|
+
$personaCard.find('#' + requestedAction + '.ms-PersonaCard-actionDetails').addClass('is-active');
|
2019
|
+
|
2020
|
+
});
|
2021
|
+
|
2022
|
+
/** Toggle more details. */
|
2023
|
+
$personaCard.on('click', '.ms-PersonaCard-detailExpander', function() {
|
2024
|
+
$(this).parent('.ms-PersonaCard-actionDetails').toggleClass('is-collapsed');
|
2025
|
+
});
|
2026
|
+
|
2027
|
+
});
|
2028
|
+
|
2029
|
+
};
|
2030
|
+
})(jQuery);
|
2031
|
+
|
2032
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2033
|
+
|
2034
|
+
/**
|
2035
|
+
* Pivot Plugin
|
2036
|
+
*
|
2037
|
+
* Adds basic demonstration functionality to .ms-Pivot components.
|
2038
|
+
*
|
2039
|
+
* @param {jQuery Object} One or more .ms-Pivot components
|
2040
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
2041
|
+
*/
|
2042
|
+
(function ($) {
|
2043
|
+
$.fn.Pivot = function () {
|
2044
|
+
|
2045
|
+
/** Go through each pivot we've been given. */
|
2046
|
+
return this.each(function () {
|
2047
|
+
|
2048
|
+
var $pivotContainer = $(this);
|
2049
|
+
|
2050
|
+
/** When clicking/tapping a link, select it. */
|
2051
|
+
$pivotContainer.on('click', '.ms-Pivot-link', function(event) {
|
2052
|
+
event.preventDefault();
|
2053
|
+
/** Check if current selection has elipses child element **/
|
2054
|
+
var $elipsisCheck = $(this).find('.ms-Pivot-ellipsis');
|
2055
|
+
|
2056
|
+
/** Only execute when no elipses element can be found **/
|
2057
|
+
if($elipsisCheck.length === 0){
|
2058
|
+
|
2059
|
+
$(this).siblings('.ms-Pivot-link').removeClass('is-selected');
|
2060
|
+
$(this).addClass('is-selected');
|
2061
|
+
}
|
2062
|
+
|
2063
|
+
});
|
2064
|
+
|
2065
|
+
});
|
2066
|
+
|
2067
|
+
};
|
2068
|
+
})(jQuery);
|
2069
|
+
|
2070
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2071
|
+
|
2072
|
+
/**
|
2073
|
+
* ProgressIndicator component
|
2074
|
+
*
|
2075
|
+
* A component for outputting determinate progress
|
2076
|
+
*
|
2077
|
+
*/
|
2078
|
+
|
2079
|
+
/**
|
2080
|
+
* @namespace fabric
|
2081
|
+
*/
|
2082
|
+
var fabric = fabric || {};
|
2083
|
+
/**
|
2084
|
+
*
|
2085
|
+
* @param {HTMLDivElement} container - the target container for an instance of ProgressIndicator
|
2086
|
+
* @constructor
|
2087
|
+
*/
|
2088
|
+
fabric.ProgressIndicator = function(container) {
|
2089
|
+
this.container = container;
|
2090
|
+
this.cacheDOM();
|
2091
|
+
};
|
2092
|
+
|
2093
|
+
fabric.ProgressIndicator.prototype = (function() {
|
2094
|
+
|
2095
|
+
var _progress;
|
2096
|
+
var _width;
|
2097
|
+
var _itemName;
|
2098
|
+
var _total;
|
2099
|
+
var _itemDescription;
|
2100
|
+
var _progressBar;
|
2101
|
+
|
2102
|
+
/**
|
2103
|
+
* Sets the progress percentage for a determinate
|
2104
|
+
* operation. Either use this or setProgress
|
2105
|
+
* and setTotal as setProgressPercent assumes
|
2106
|
+
* you've done a percentage calculation before
|
2107
|
+
* injecting it into the function
|
2108
|
+
* @param {number} percent - a floating point number from 0 to 1
|
2109
|
+
*/
|
2110
|
+
var setProgressPercent = function(percent) {
|
2111
|
+
_progressBar.style.width = Math.round(_width * percent) + "px";
|
2112
|
+
};
|
2113
|
+
|
2114
|
+
/**
|
2115
|
+
* Sets the progress for a determinate operation.
|
2116
|
+
* Use this in combination with setTotal.
|
2117
|
+
* @param {number} progress
|
2118
|
+
*/
|
2119
|
+
var setProgress = function(progress) {
|
2120
|
+
_progress = progress;
|
2121
|
+
var percentage = _progress / _total;
|
2122
|
+
this.setProgressPercent(percentage);
|
2123
|
+
};
|
2124
|
+
|
2125
|
+
/**
|
2126
|
+
* Sets the total file size, etc. for a
|
2127
|
+
* determinate operation. Use this in
|
2128
|
+
* combination with setProgress
|
2129
|
+
* @param {number} total
|
2130
|
+
*/
|
2131
|
+
var setTotal = function(total) {
|
2132
|
+
_total = total;
|
2133
|
+
};
|
2134
|
+
|
2135
|
+
/**
|
2136
|
+
* Sets the text for the title or label
|
2137
|
+
* of an instance
|
2138
|
+
* @param {string} name
|
2139
|
+
*/
|
2140
|
+
var setName = function(name) {
|
2141
|
+
_itemName.innerHTML = name;
|
2142
|
+
};
|
2143
|
+
|
2144
|
+
/**
|
2145
|
+
* Sets the text for a description
|
2146
|
+
* of an instance
|
2147
|
+
* @param {string} name
|
2148
|
+
*/
|
2149
|
+
var setDescription = function(description) {
|
2150
|
+
_itemDescription.innerHTML = description;
|
2151
|
+
};
|
2152
|
+
|
2153
|
+
/**
|
2154
|
+
* caches elements and values of the component
|
2155
|
+
*
|
2156
|
+
*/
|
2157
|
+
var cacheDOM = function() {
|
2158
|
+
_itemName = this.container.querySelector('.ms-ProgressIndicator-itemName') || null; //an itemName element is optional
|
2159
|
+
_itemDescription = this.container.querySelector('.ms-ProgressIndicator-itemDescription') || null; //an itemDescription element is optional
|
2160
|
+
_progressBar = this.container.querySelector('.ms-ProgressIndicator-progressBar');
|
2161
|
+
_width = this.container.querySelector('.ms-ProgressIndicator-itemProgress').offsetWidth;
|
2162
|
+
};
|
2163
|
+
|
2164
|
+
return {
|
2165
|
+
setProgressPercent: setProgressPercent,
|
2166
|
+
setName: setName,
|
2167
|
+
setDescription: setDescription,
|
2168
|
+
setProgress: setProgress,
|
2169
|
+
setTotal: setTotal,
|
2170
|
+
cacheDOM: cacheDOM
|
2171
|
+
};
|
2172
|
+
}());
|
2173
|
+
|
2174
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2175
|
+
|
2176
|
+
/**
|
2177
|
+
* SearchBox Plugin
|
2178
|
+
*
|
2179
|
+
* Adds basic demonstration functionality to .ms-SearchBox components.
|
2180
|
+
*
|
2181
|
+
* @param {jQuery Object} One or more .ms-SearchBox components
|
2182
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
2183
|
+
*/
|
2184
|
+
(function ($) {
|
2185
|
+
$.fn.SearchBox = function () {
|
2186
|
+
|
2187
|
+
/** Iterate through each text field provided. */
|
2188
|
+
return this.each(function () {
|
2189
|
+
// Set cancel to false
|
2190
|
+
var cancel = false;
|
2191
|
+
var $searchField = $(this).find('.ms-SearchBox-field');
|
2192
|
+
|
2193
|
+
/** SearchBox focus - hide label and show cancel button */
|
2194
|
+
$searchField.on('focus', function() {
|
2195
|
+
/** Hide the label on focus. */
|
2196
|
+
$(this).siblings('.ms-SearchBox-label').hide();
|
2197
|
+
// Show cancel button by adding is-active class
|
2198
|
+
$(this).parent('.ms-SearchBox').addClass('is-active');
|
2199
|
+
});
|
2200
|
+
|
2201
|
+
/** 'hovering' class allows for more fine grained control of hover state */
|
2202
|
+
$searchField.on('mouseover', function() {
|
2203
|
+
$searchField.addClass('hovering');
|
2204
|
+
});
|
2205
|
+
|
2206
|
+
$searchField.on('mouseout', function() {
|
2207
|
+
$searchField.removeClass('hovering');
|
2208
|
+
});
|
2209
|
+
|
2210
|
+
// If cancel button is selected, change cancel value to true
|
2211
|
+
$(this).find('.ms-SearchBox-closeButton').on('mousedown', function() {
|
2212
|
+
cancel = true;
|
2213
|
+
});
|
2214
|
+
|
2215
|
+
/** Show the label again when leaving the field. */
|
2216
|
+
$(this).find('.ms-SearchBox-field').on('blur', function() {
|
2217
|
+
|
2218
|
+
// If cancel button is selected remove the text and show the label
|
2219
|
+
if (cancel) {
|
2220
|
+
$(this).val('');
|
2221
|
+
$searchField.addClass('hovering');
|
2222
|
+
}
|
2223
|
+
|
2224
|
+
var $searchBox = $(this).parent('.ms-SearchBox');
|
2225
|
+
// Prevents inputfield from gaining focus too soon
|
2226
|
+
setTimeout(function() {
|
2227
|
+
// Remove is-active class - hides cancel button
|
2228
|
+
$searchBox.removeClass('is-active');
|
2229
|
+
}, 10);
|
2230
|
+
|
2231
|
+
/** Only do this if no text was entered. */
|
2232
|
+
if ($(this).val().length === 0 ) {
|
2233
|
+
$(this).siblings('.ms-SearchBox-label').show();
|
2234
|
+
}
|
2235
|
+
|
2236
|
+
// Reset cancel to false
|
2237
|
+
cancel = false;
|
2238
|
+
});
|
2239
|
+
});
|
2240
|
+
|
2241
|
+
};
|
2242
|
+
})(jQuery);
|
2243
|
+
|
2244
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2245
|
+
|
2246
|
+
/**
|
2247
|
+
* Spinner Component
|
2248
|
+
*
|
2249
|
+
* An animating activity indicator.
|
2250
|
+
*
|
2251
|
+
*/
|
2252
|
+
|
2253
|
+
/**
|
2254
|
+
* @namespace fabric
|
2255
|
+
*/
|
2256
|
+
var fabric = fabric || {};
|
2257
|
+
|
2258
|
+
/**
|
2259
|
+
* @param {HTMLDOMElement} target - The element the Spinner will attach itself to.
|
2260
|
+
*/
|
2261
|
+
|
2262
|
+
fabric.Spinner = function(target) {
|
2263
|
+
|
2264
|
+
var _target = target;
|
2265
|
+
var eightSize = 0.2;
|
2266
|
+
var circleObjects = [];
|
2267
|
+
var animationSpeed = 90;
|
2268
|
+
var interval;
|
2269
|
+
var spinner;
|
2270
|
+
var numCircles;
|
2271
|
+
var offsetSize;
|
2272
|
+
var fadeIncrement = 0;
|
2273
|
+
var parentSize = 20;
|
2274
|
+
|
2275
|
+
/**
|
2276
|
+
* @function start - starts or restarts the animation sequence
|
2277
|
+
* @memberOf fabric.Spinner
|
2278
|
+
*/
|
2279
|
+
function start() {
|
2280
|
+
stop();
|
2281
|
+
interval = setInterval(function() {
|
2282
|
+
var i = circleObjects.length;
|
2283
|
+
while(i--) {
|
2284
|
+
_fade(circleObjects[i]);
|
2285
|
+
}
|
2286
|
+
}, animationSpeed);
|
2287
|
+
}
|
2288
|
+
|
2289
|
+
/**
|
2290
|
+
* @function stop - stops the animation sequence
|
2291
|
+
* @memberOf fabric.Spinner
|
2292
|
+
*/
|
2293
|
+
function stop() {
|
2294
|
+
clearInterval(interval);
|
2295
|
+
}
|
2296
|
+
|
2297
|
+
//private methods
|
2298
|
+
|
2299
|
+
function _init() {
|
2300
|
+
_setTargetElement();
|
2301
|
+
_setPropertiesForSize();
|
2302
|
+
_createCirclesAndArrange();
|
2303
|
+
_initializeOpacities();
|
2304
|
+
start();
|
2305
|
+
}
|
2306
|
+
|
2307
|
+
function _initializeOpacities() {
|
2308
|
+
var i = 0;
|
2309
|
+
var j = 1;
|
2310
|
+
var opacity;
|
2311
|
+
fadeIncrement = 1 / numCircles;
|
2312
|
+
|
2313
|
+
for (i; i < numCircles; i++) {
|
2314
|
+
var circleObject = circleObjects[i];
|
2315
|
+
opacity = (fadeIncrement * j++);
|
2316
|
+
_setOpacity(circleObject.element, opacity);
|
2317
|
+
}
|
2318
|
+
}
|
2319
|
+
|
2320
|
+
function _fade(circleObject) {
|
2321
|
+
var opacity = _getOpacity(circleObject.element) - fadeIncrement;
|
2322
|
+
|
2323
|
+
if (opacity <= 0) {
|
2324
|
+
opacity = 1;
|
2325
|
+
}
|
2326
|
+
|
2327
|
+
_setOpacity(circleObject.element, opacity);
|
2328
|
+
}
|
2329
|
+
|
2330
|
+
function _getOpacity(element) {
|
2331
|
+
return parseFloat(window.getComputedStyle(element).getPropertyValue("opacity"));
|
2332
|
+
}
|
2333
|
+
|
2334
|
+
function _setOpacity(element, opacity) {
|
2335
|
+
element.style.opacity = opacity;
|
2336
|
+
}
|
2337
|
+
|
2338
|
+
function _createCircle() {
|
2339
|
+
var circle = document.createElement('div');
|
2340
|
+
circle.className = "ms-Spinner-circle";
|
2341
|
+
circle.style.width = circle.style.height = parentSize * offsetSize + "px";
|
2342
|
+
return circle;
|
2343
|
+
}
|
2344
|
+
|
2345
|
+
function _createCirclesAndArrange() {
|
2346
|
+
|
2347
|
+
var angle = 0;
|
2348
|
+
var offset = parentSize * offsetSize;
|
2349
|
+
var step = (2 * Math.PI) / numCircles;
|
2350
|
+
var i = numCircles;
|
2351
|
+
var circleObject;
|
2352
|
+
var radius = (parentSize - offset) * 0.5;
|
2353
|
+
|
2354
|
+
while (i--) {
|
2355
|
+
var circle = _createCircle();
|
2356
|
+
var x = Math.round(parentSize * 0.5 + radius * Math.cos(angle) - circle.clientWidth * 0.5) - offset * 0.5;
|
2357
|
+
var y = Math.round(parentSize * 0.5 + radius * Math.sin(angle) - circle.clientHeight * 0.5) - offset * 0.5;
|
2358
|
+
spinner.appendChild(circle);
|
2359
|
+
circle.style.left = x + 'px';
|
2360
|
+
circle.style.top = y + 'px';
|
2361
|
+
angle += step;
|
2362
|
+
circleObject = { element:circle, j:i };
|
2363
|
+
circleObjects.push(circleObject);
|
2364
|
+
}
|
2365
|
+
}
|
2366
|
+
|
2367
|
+
function _setPropertiesForSize() {
|
2368
|
+
if (spinner.className.indexOf("large") > -1) {
|
2369
|
+
parentSize = 28;
|
2370
|
+
eightSize = 0.179;
|
2371
|
+
}
|
2372
|
+
|
2373
|
+
offsetSize = eightSize;
|
2374
|
+
numCircles = 8;
|
2375
|
+
}
|
2376
|
+
|
2377
|
+
function _setTargetElement() {
|
2378
|
+
//for backwards compatibility
|
2379
|
+
if (_target.className.indexOf("ms-Spinner") === -1) {
|
2380
|
+
spinner = document.createElement("div");
|
2381
|
+
spinner.className = "ms-Spinner";
|
2382
|
+
_target.appendChild(spinner);
|
2383
|
+
} else {
|
2384
|
+
spinner = _target;
|
2385
|
+
}
|
2386
|
+
}
|
2387
|
+
|
2388
|
+
_init();
|
2389
|
+
|
2390
|
+
return {
|
2391
|
+
start:start,
|
2392
|
+
stop:stop
|
2393
|
+
};
|
2394
|
+
};
|
2395
|
+
|
2396
|
+
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE in the project root for license information.
|
2397
|
+
|
2398
|
+
/**
|
2399
|
+
* Text Field Plugin
|
2400
|
+
*
|
2401
|
+
* Adds basic demonstration functionality to .ms-TextField components.
|
2402
|
+
*
|
2403
|
+
* @param {jQuery Object} One or more .ms-TextField components
|
2404
|
+
* @return {jQuery Object} The same components (allows for chaining)
|
2405
|
+
*/
|
2406
|
+
(function ($) {
|
2407
|
+
$.fn.TextField = function () {
|
2408
|
+
|
2409
|
+
/** Iterate through each text field provided. */
|
2410
|
+
return this.each(function () {
|
2411
|
+
|
2412
|
+
/** Does it have a placeholder? */
|
2413
|
+
if ($(this).hasClass("ms-TextField--placeholder")) {
|
2414
|
+
|
2415
|
+
/** Hide the label on click. */
|
2416
|
+
$(this).on('click', function () {
|
2417
|
+
$(this).find('.ms-Label').hide();
|
2418
|
+
});
|
2419
|
+
|
2420
|
+
/** Hide the label on focus. */
|
2421
|
+
$(this).find('.ms-TextField-field').on('focus', function () {
|
2422
|
+
$(this).siblings('.ms-Label').hide();
|
2423
|
+
});
|
2424
|
+
|
2425
|
+
/** Show the label again when leaving the field. */
|
2426
|
+
$(this).find('.ms-TextField-field').on('blur', function () {
|
2427
|
+
|
2428
|
+
/** Only do this if no text was entered. */
|
2429
|
+
if ($(this).val().length === 0) {
|
2430
|
+
$(this).siblings('.ms-Label').show();
|
2431
|
+
}
|
2432
|
+
});
|
2433
|
+
}
|
2434
|
+
|
2435
|
+
/** Underlined - adding/removing a focus class */
|
2436
|
+
if ($(this).hasClass('ms-TextField--underlined')) {
|
2437
|
+
|
2438
|
+
/** Add is-active class - changes border color to theme primary */
|
2439
|
+
$(this).find('.ms-TextField-field').on('focus', function() {
|
2440
|
+
$(this).parent('.ms-TextField--underlined').addClass('is-active');
|
2441
|
+
});
|
2442
|
+
|
2443
|
+
/** Remove is-active on blur of textfield */
|
2444
|
+
$(this).find('.ms-TextField-field').on('blur', function() {
|
2445
|
+
$(this).parent('.ms-TextField--underlined').removeClass('is-active');
|
2446
|
+
});
|
2447
|
+
}
|
2448
|
+
|
2449
|
+
});
|
2450
|
+
};
|
2451
|
+
})(jQuery);
|