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.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +21 -0
  7. data/README.md +69 -0
  8. data/Rakefile +24 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +8 -0
  11. data/bower.json +7 -0
  12. data/lib/office-ui-fabric-rails.rb +2 -0
  13. data/lib/office-ui-fabric-rails/engine.rb +6 -0
  14. data/lib/office-ui-fabric-rails/version.rb +6 -0
  15. data/office-ui-fabric-rails.gemspec +35 -0
  16. data/vendor/assets/css/fabric.components.css +6553 -0
  17. data/vendor/assets/css/fabric.components.min.css +6 -0
  18. data/vendor/assets/css/fabric.components.rtl.css +6355 -0
  19. data/vendor/assets/css/fabric.components.rtl.min.css +6 -0
  20. data/vendor/assets/css/fabric.css +5991 -0
  21. data/vendor/assets/css/fabric.min.css +6 -0
  22. data/vendor/assets/css/fabric.rtl.css +6280 -0
  23. data/vendor/assets/css/fabric.rtl.min.css +6 -0
  24. data/vendor/assets/js/jquery.fabric.js +2451 -0
  25. data/vendor/assets/js/jquery.fabric.min.js +2 -0
  26. data/vendor/assets/scss/Fabric.Animations.Output.scss +419 -0
  27. data/vendor/assets/scss/Fabric.Animations.RTL.Output.scss +80 -0
  28. data/vendor/assets/scss/Fabric.Color.Mixins.Output.scss +458 -0
  29. data/vendor/assets/scss/Fabric.Components.scss +31 -0
  30. data/vendor/assets/scss/Fabric.Grid.Output.scss +32 -0
  31. data/vendor/assets/scss/Fabric.Icons.Font.Output.scss +23 -0
  32. data/vendor/assets/scss/Fabric.Icons.Output.scss +771 -0
  33. data/vendor/assets/scss/Fabric.Icons.RTL.Output.scss +114 -0
  34. data/vendor/assets/scss/Fabric.RTL.scss +39 -0
  35. data/vendor/assets/scss/Fabric.Responsive.Utilities.Output.scss +1022 -0
  36. data/vendor/assets/scss/Fabric.Typography.Fonts.Output.scss +76 -0
  37. data/vendor/assets/scss/Fabric.Typography.Language.Overrides.Output.scss +56 -0
  38. data/vendor/assets/scss/Fabric.Typography.Output.scss +379 -0
  39. data/vendor/assets/scss/Fabric.Utilities.Output.scss +23 -0
  40. data/vendor/assets/scss/Fabric.scss +40 -0
  41. data/vendor/assets/scss/_Fabric.Animations.RTL.scss +79 -0
  42. data/vendor/assets/scss/_Fabric.Animations.scss +237 -0
  43. data/vendor/assets/scss/_Fabric.Color.Mixins.scss +414 -0
  44. data/vendor/assets/scss/_Fabric.Color.Variables.scss +90 -0
  45. data/vendor/assets/scss/_Fabric.Common.scss +15 -0
  46. data/vendor/assets/scss/_Fabric.Grid.scss +34 -0
  47. data/vendor/assets/scss/_Fabric.Icons.scss +397 -0
  48. data/vendor/assets/scss/_Fabric.Mixins.RTL.scss +315 -0
  49. data/vendor/assets/scss/_Fabric.Mixins.scss +274 -0
  50. data/vendor/assets/scss/_Fabric.Responsive.Utilities.Variables.scss +697 -0
  51. data/vendor/assets/scss/_Fabric.Responsive.Variables.scss +35 -0
  52. data/vendor/assets/scss/_Fabric.Typography.Fonts.scss +170 -0
  53. data/vendor/assets/scss/_Fabric.Typography.Language.Overrides.scss +118 -0
  54. data/vendor/assets/scss/_Fabric.Typography.Variables.scss +27 -0
  55. data/vendor/assets/scss/_Fabric.Typography.scss +357 -0
  56. data/vendor/assets/scss/_Fabric.Utilities.scss +36 -0
  57. data/vendor/assets/scss/_Fabric.ZIndex.Variables.scss +32 -0
  58. data/vendor/assets/scss/_Office.Color.Variables.scss +34 -0
  59. 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);