From 1cd02f285d4d778dddfe34024da4b31afdc0afcd Mon Sep 17 00:00:00 2001 From: Paul McGoldrick Date: Thu, 28 Sep 2017 10:36:03 -0700 Subject: initial seed code commit VVP-9 Change-Id: I4d48180db7eba7cb7c299ab618f04d2092868085 Signed-off-by: Paul McGoldrick --- .gitignore | 18 + Dockerfile | 40 + LICENSE.TXT | 38 + README.md | 2 + d2ice.att.io/.bowerrc | 3 + d2ice.att.io/.editorconfig | 21 + d2ice.att.io/.gitattributes | 1 + d2ice.att.io/.gitignore | 14 + d2ice.att.io/.jscsrc | 6 + d2ice.att.io/.jshintrc | 16 + d2ice.att.io/.yo-rc.json | 11 + d2ice.att.io/Gruntfile.js | 714 ++++ d2ice.att.io/README.md | 75 + d2ice.att.io/app/.watch.me | 0 d2ice.att.io/app/app.config.js | 60 + d2ice.att.io/app/app.constants.js | 75 + d2ice.att.io/app/app.controller.js | 74 + d2ice.att.io/app/app.module.js | 110 + d2ice.att.io/app/app.route.js | 97 + d2ice.att.io/app/app.run.js | 244 ++ .../core/js/jquery.nicescroll-master/MIT.LICENSE | 17 + .../app/core/js/jquery.nicescroll-master/README.md | 182 + .../core/js/jquery.nicescroll-master/bower.json | 15 + .../jquery.nicescroll-master/changelog_3.6.8.txt | 31 + .../dist/jquery.nicescroll.min.js | 158 + .../js/jquery.nicescroll-master/dist/zoomico.png | Bin 0 -> 393 bytes .../jquery.nicescroll-master/jquery.nicescroll.js | 3755 +++++++++++++++++ .../jquery.nicescroll.min.js | 158 + .../core/js/jquery.nicescroll-master/package.json | 76 + .../core/js/jquery.nicescroll-master/zoomico.png | Bin 0 -> 393 bytes .../app/core/layouts/dashboard/dashboard.html | 50 + .../app/core/layouts/dashboard/dashboard.less | 65 + .../full-page-with-header.html | 79 + .../full-page-with-header.less | 112 + .../account.navigation.controller.js | 63 + .../layouts/account-navigation/navigation.html | 48 + .../layouts/account-navigation/navigation.less | 75 + .../admin.navigation.controller.js | 93 + .../layouts/admin-navigation/navigation.html | 64 + .../layouts/admin-navigation/navigation.less | 133 + .../documentation.navigation.controller.js | 100 + .../documentation-navigation/navigation.html | 85 + .../documentation-navigation/navigation.less | 110 + .../layouts/horizontal-navigation/navigation.html | 197 + .../layouts/horizontal-navigation/navigation.less | 208 + .../app/core/navigation/navigation.controller.js | 456 ++ .../app/core/navigation/navigation.module.js | 51 + .../layouts/horizontal-navigation/toolbar.html | 75 + .../layouts/horizontal-navigation/toolbar.less | 132 + .../app/core/toolbar/toolbar.controller.js | 94 + d2ice.att.io/app/core/toolbar/toolbar.module.js | 51 + .../ice-announcement/ice-announcement.directive.js | 91 + .../ice-announcement/ice-announcement.html | 44 + .../directives/ice-loader/ice-loader.directive.js | 96 + .../app/directives/ice-loader/ice-loader.html | 39 + .../app/directives/ice-loader/ice-loader.less | 52 + .../ice-news-and-announcement.directive.js | 87 + .../ice-news-and-announcement.html | 51 + .../ice-news-and-announcement.less | 80 + .../directives/ice-toast/ice-toast.directive.js | 76 + .../app/directives/ice-toast/ice-toast.html | 44 + .../app/directives/ice-toast/ice-toast.less | 48 + .../ice-tooltip/ice-tooltip.directive.js | 69 + .../app/directives/ice-tooltip/ice-tooltip.html | 44 + .../app/directives/ice-tooltip/ice-tooltip.less | 82 + .../notifications/notifications.directive.js | 130 + .../app/directives/progress/progress.directive.js | 211 + d2ice.att.io/app/directives/progress/progress.html | 82 + d2ice.att.io/app/directives/progress/progress.less | 184 + .../step-stages/step-stages.directive.js | 172 + .../app/directives/step-stages/step-stages.html | 44 + .../app/directives/step-stages/step-stages.less | 75 + d2ice.att.io/app/favicon.png | Bin 0 -> 6364 bytes d2ice.att.io/app/filters/capitalize.filter.js | 52 + .../customDocumentationPageSearch.filter.js | 58 + .../app/filters/customVFSearchFilter.filter.js | 62 + d2ice.att.io/app/filters/date2.filter.js | 60 + d2ice.att.io/app/filters/doesExists.filter.js | 52 + .../app/filters/htmlspecialchars.filter.js | 62 + d2ice.att.io/app/filters/htmlstylespan.filter.js | 56 + d2ice.att.io/app/filters/trusted.filter.js | 49 + d2ice.att.io/app/index.html | 262 ++ d2ice.att.io/app/interceptors/httpInterceptors.js | 95 + d2ice.att.io/app/locales/en/translation.json | 12 + .../activation/activate/activateUser.controller.js | 60 + .../app/main/activation/activate/activateUser.html | 39 + .../activation/activate/activateUser.module.js | 58 + .../addVendorContact.controller.js | 111 + .../addVendorContact/addVendorContact.html | 111 + .../addVendorContact/addVendorContact.less | 82 + .../addVendorContact/addVendorContact.module.js | 67 + .../app/main/activation/addVf/addVf.controller.js | 277 ++ d2ice.att.io/app/main/activation/addVf/addVf.html | 130 + d2ice.att.io/app/main/activation/addVf/addVf.less | 176 + .../app/main/activation/addVf/addVf.module.js | 67 + .../activation/contactUs/contactUs.controller.js | 57 + .../app/main/activation/contactUs/contactUs.html | 53 + .../app/main/activation/contactUs/contactUs.less | 59 + .../main/activation/contactUs/contactUs.module.js | 67 + .../inviteMembers/inviteMembers.controller.js | 97 + .../activation/inviteMembers/inviteMembers.html | 72 + .../activation/inviteMembers/inviteMembers.less | 86 + .../inviteMembers/inviteMembers.module.js | 67 + .../app/main/activation/login/login.controller.js | 119 + d2ice.att.io/app/main/activation/login/login.html | 90 + d2ice.att.io/app/main/activation/login/login.less | 109 + .../app/main/activation/login/login.module.js | 68 + .../activation/register/register.controller.js | 122 + .../app/main/activation/register/register.html | 127 + .../app/main/activation/register/register.less | 100 + .../main/activation/register/register.module.js | 67 + .../resendActivation.controller.js | 79 + .../resendActivation/resendActivation.html | 61 + .../resendActivation/resendActivation.less | 67 + .../resendActivation/resendActivation.module.js | 68 + .../resetPassword/resetPassword.controller.js | 95 + .../activation/resetPassword/resetPassword.html | 64 + .../activation/resetPassword/resetPassword.less | 84 + .../resetPassword/resetPassword.module.js | 68 + .../app/main/activation/terms/terms.controller.js | 56 + d2ice.att.io/app/main/activation/terms/terms.html | 105 + d2ice.att.io/app/main/activation/terms/terms.less | 65 + .../app/main/activation/terms/terms.module.js | 68 + .../updatePassword/updatePassword.controller.js | 95 + .../activation/updatePassword/updatePassword.html | 76 + .../activation/updatePassword/updatePassword.less | 85 + .../updatePassword/updatePassword.module.js | 68 + d2ice.att.io/app/main/admin/admin.module.js | 89 + .../checklist-template.controller.js | 241 ++ .../checklist-template/checklist-template.html | 174 + .../checklist-template/checklist-template.less | 552 +++ .../main/dashboard/account/account.controller.js | 150 + .../app/main/dashboard/account/account.html | 159 + .../app/main/dashboard/account/account.less | 215 + .../app/main/dashboard/account/account.module.js | 85 + .../notifications/notifications.controller.js | 140 + .../account/notifications/notifications.html | 60 + .../account/notifications/notifications.less | 348 ++ .../user-profile-settings.controller.js | 98 + .../user-profile-settings.html | 66 + .../user-profile-settings.less | 45 + .../dashboard/checklist/checklist.controller.js | 445 ++ .../app/main/dashboard/checklist/checklist.html | 117 + .../app/main/dashboard/checklist/checklist.less | 826 ++++ .../dashboard/dashboard/dashboard.controller.js | 235 ++ .../app/main/dashboard/dashboard/dashboard.html | 111 + .../app/main/dashboard/dashboard/dashboard.less | 189 + .../detailed-view/detailed-view.controller.js | 245 ++ .../dashboard/detailed-view/detailed-view.html | 109 + .../dashboard/detailed-view/detailed-view.less | 400 ++ .../get-started-modal.directive.js | 308 ++ .../get-started-modal/get-started-modal.html | 38 + .../get-started-modal/get-started-modal.less | 47 + .../get-started-modal/get-started-modal.module.js | 48 + .../get-started-modal/wizard/wizard-container.html | 192 + .../dashboard/get-started-modal/wizard/wizard.less | 255 ++ d2ice.att.io/app/main/dashboard/main.module.js | 107 + d2ice.att.io/app/main/dashboard/main/main.html | 172 + .../main/dashboard/overview/overview.controller.js | 833 ++++ .../app/main/dashboard/overview/overview.html | 212 + .../app/main/dashboard/overview/overview.less | 575 +++ .../main/documentation/documentation.controller.js | 74 + .../app/main/documentation/documentation.html | 47 + .../app/main/documentation/documentation.less | 96 + .../app/main/documentation/documentation.module.js | 74 + .../sidebar/documentation.sidebar.html | 41 + .../sidebar/documentation.sidebar.less | 61 + d2ice.att.io/app/main/errors/404.html | 190 + d2ice.att.io/app/main/main.controller.js | 60 + .../archive-engagement-modal.controller.js | 66 + .../archive-engagement-modal.html | 56 + .../archive-engagement-modal.less | 54 + .../main/modals/audit-log/audit-log.controller.js | 95 + .../app/main/modals/audit-log/audit-log.html | 76 + .../app/main/modals/audit-log/audit-log.less | 49 + .../modals/change-date/change-date.controller.js | 75 + .../app/main/modals/change-date/change-date.html | 62 + .../change-progress/change-progress.controller.js | 71 + .../modals/change-progress/change-progress.html | 65 + .../main/modals/checklist/checklist.controller.js | 238 ++ .../app/main/modals/checklist/checklist.html | 107 + .../state-approve-or-reject.controller.js | 105 + .../state-approve-or-reject.html | 58 + .../state-approve-or-reject.less | 173 + .../cms-post-modal/cms-post-modal.controller.js | 92 + .../main/modals/cms-post-modal/cms-post-modal.html | 55 + .../main/modals/cms-post-modal/cms-post-modal.less | 106 + .../detailed-view-dtsites-modal.controller.js | 100 + .../dtsite/detailed-view-dtsites-modal.html | 62 + .../vfc/detailed-view-vfc-modal.controller.js | 124 + .../detailed-view/vfc/detailed-view-vfc-modal.html | 100 + .../detailed-view/vfc/detailed-view-vfc-modal.less | 68 + .../main/modals/feedback/feedback.controller.js | 82 + .../app/main/modals/feedback/feedback.html | 57 + .../app/main/modals/feedback/feedback.less | 44 + .../general-log-modal.controller.js | 63 + .../general-log-modal/general-log-modal.html | 45 + .../general-log-modal/general-log-modal.less | 72 + .../general-prompt-modal.controller.js | 74 + .../general-prompt-modal/general-prompt-modal.html | 52 + .../general-prompt-modal/general-prompt-modal.less | 151 + .../modals/next-steps/next-steps.controller.js | 278 ++ .../app/main/modals/next-steps/next-steps.html | 138 + .../app/main/modals/next-steps/next-steps.less | 307 ++ .../select-el-modal/select-el-modal.controller.js | 78 + .../modals/select-el-modal/select-el-modal.html | 56 + .../modals/select-el-modal/select-el-modal.less | 54 + .../set-eng-stage-modal.controller.js | 63 + .../modals/set-eng-stage/set-eng-stage-modal.html | 49 + .../modals/set-eng-stage/set-eng-stage-modal.less | 135 + .../modals/set-eng-stage/set_eng_stage_modal.html | 58 + .../app/main/modals/status/status.controller.js | 125 + d2ice.att.io/app/main/modals/status/status.html | 59 + d2ice.att.io/app/main/modals/status/status.less | 44 + .../change-lab-entry-date.controller.js | 78 + .../target-lab-entry/change-lab-entry-date.html | 55 + .../target-lab-entry/change-lab-entry-date.less | 49 + .../update-engagement-status-modal.controller.js | 73 + .../update-engagement-status-modal.html | 97 + .../update-engagement-status-modal.less | 61 + ...led-view-validation-details-modal.controller.js | 202 + .../detailed-view-validation-details-modal.html | 101 + .../detailed-view-validation-details-modal.less | 49 + d2ice.att.io/app/robots.txt | 4 + d2ice.att.io/app/services/cache.service.js | 89 + d2ice.att.io/app/services/checklist.service.js | 213 + d2ice.att.io/app/services/cms.service.js | 162 + d2ice.att.io/app/services/dtsite.service.js | 100 + d2ice.att.io/app/services/feedback.service.js | 63 + d2ice.att.io/app/services/localstorage.service.js | 63 + .../app/services/sessionStorage.service.js | 65 + d2ice.att.io/app/services/status.service.js | 87 + d2ice.att.io/app/services/steps.service.js | 162 + d2ice.att.io/app/services/toast.service.js | 92 + d2ice.att.io/app/services/users.service.js | 322 ++ d2ice.att.io/app/services/vf.service.js | 403 ++ d2ice.att.io/app/services/vfc.service.js | 99 + d2ice.att.io/app/styles/buttons.less | 38 + d2ice.att.io/app/styles/fonts.less | 110 + .../styles/fonts/ClearviewATT/ClearviewATT-Bd.eot | Bin 0 -> 92160 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bd.svg | 424 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf | Bin 0 -> 93916 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bd.woff | Bin 0 -> 42192 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.eot | Bin 0 -> 104184 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.svg | 425 ++ .../fonts/ClearviewATT/ClearviewATT-BdIt.ttf | Bin 0 -> 105932 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.woff | Bin 0 -> 46444 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.eot | Bin 0 -> 86088 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.svg | 425 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf | Bin 0 -> 88696 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.woff | Bin 0 -> 39280 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.eot | Bin 0 -> 104224 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.svg | 425 ++ .../fonts/ClearviewATT/ClearviewATT-BkIt.ttf | Bin 0 -> 105972 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.woff | Bin 0 -> 46676 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.eot | Bin 0 -> 89640 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.svg | 425 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf | Bin 0 -> 92288 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.woff | Bin 0 -> 40332 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.eot | Bin 0 -> 108396 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.svg | 424 ++ .../fonts/ClearviewATT/ClearviewATT-LtIt.ttf | Bin 0 -> 110192 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.woff | Bin 0 -> 48120 bytes .../styles/fonts/OmnesATT/AT&T Variation ID.tab | 9 + .../fonts/OmnesATT/OmnesATTW02BoldItalic.eot | Bin 0 -> 31322 bytes .../fonts/OmnesATT/OmnesATTW02BoldItalic.svg | 3671 ++++++++++++++++ .../fonts/OmnesATT/OmnesATTW02BoldItalic.ttf | Bin 0 -> 68660 bytes .../fonts/OmnesATT/OmnesATTW02BoldItalic.woff | Bin 0 -> 35986 bytes .../app/styles/fonts/OmnesATT/Omnes_ATTW02.eot | Bin 0 -> 30321 bytes .../app/styles/fonts/OmnesATT/Omnes_ATTW02.svg | 3694 +++++++++++++++++ .../app/styles/fonts/OmnesATT/Omnes_ATTW02.ttf | Bin 0 -> 71692 bytes .../app/styles/fonts/OmnesATT/Omnes_ATTW02.woff | Bin 0 -> 35610 bytes .../app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot | Bin 0 -> 32077 bytes .../app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg | 4365 ++++++++++++++++++++ .../app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf | Bin 0 -> 71564 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff | Bin 0 -> 37149 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot | Bin 0 -> 32079 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg | 3799 +++++++++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf | Bin 0 -> 76564 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff | Bin 0 -> 37872 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.eot | Bin 0 -> 32072 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.svg | 3872 +++++++++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf | Bin 0 -> 73968 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.woff | Bin 0 -> 37342 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.eot | Bin 0 -> 30983 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.svg | 3030 ++++++++++++++ .../fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf | Bin 0 -> 70088 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.woff | Bin 0 -> 36261 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot | Bin 0 -> 28695 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg | 2473 +++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf | Bin 0 -> 65152 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff | Bin 0 -> 33641 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot | Bin 0 -> 33730 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg | 3837 +++++++++++++++++ .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf | Bin 0 -> 77508 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff | Bin 0 -> 39182 bytes .../app/styles/fonts/OmnesATT/demo-async.htm | 169 + d2ice.att.io/app/styles/fonts/OmnesATT/demo.htm | 155 + d2ice.att.io/app/styles/form.less | 54 + d2ice.att.io/app/styles/global.less | 174 + d2ice.att.io/app/styles/images/Collaborate.png | Bin 0 -> 6592 bytes d2ice.att.io/app/styles/images/Incubate.png | Bin 0 -> 8136 bytes d2ice.att.io/app/styles/images/Validate.png | Bin 0 -> 6803 bytes d2ice.att.io/app/styles/images/actions-sprite.png | Bin 0 -> 1344 bytes d2ice.att.io/app/styles/images/btn1.png | Bin 0 -> 946 bytes d2ice.att.io/app/styles/images/btn2.png | Bin 0 -> 1029 bytes d2ice.att.io/app/styles/images/btn3.png | Bin 0 -> 1101 bytes d2ice.att.io/app/styles/images/btnX.png | Bin 0 -> 717 bytes .../app/styles/images/d2sandbox_logos-150x30.png | Bin 0 -> 2452 bytes .../styles/images/d2sandbox_logos_color-150x30.png | Bin 0 -> 2822 bytes d2ice.att.io/app/styles/images/flags.png | Bin 0 -> 69270 bytes d2ice.att.io/app/styles/images/flags@2x.png | Bin 0 -> 173609 bytes .../app/styles/images/home_bg1-1920x1138.jpg | Bin 0 -> 217394 bytes d2ice.att.io/app/styles/images/icons-sprite-v2.png | Bin 0 -> 20020 bytes d2ice.att.io/app/styles/images/icons-sprite-v3.png | Bin 0 -> 21279 bytes d2ice.att.io/app/styles/images/icons-sprite-v4.png | Bin 0 -> 27349 bytes d2ice.att.io/app/styles/images/icons-sprite-v5.png | Bin 0 -> 28452 bytes d2ice.att.io/app/styles/images/icons-sprite.png | Bin 0 -> 3419 bytes d2ice.att.io/app/styles/images/profiles-sprite.png | Bin 0 -> 9805 bytes d2ice.att.io/app/styles/images/steps-sprite.png | Bin 0 -> 557 bytes d2ice.att.io/app/styles/images/top.jpg | Bin 0 -> 71809 bytes d2ice.att.io/app/styles/images/wait.gif | Bin 0 -> 723 bytes d2ice.att.io/app/styles/mixins.less | 381 ++ d2ice.att.io/app/styles/modals.less | 102 + d2ice.att.io/app/styles/sprite.less | 128 + d2ice.att.io/app/styles/table-flex.less | 77 + d2ice.att.io/app/styles/variables.less | 122 + d2ice.att.io/app/welcome/index.html | 50 + d2ice.att.io/app/welcome/welcome.controller.js | 58 + d2ice.att.io/app/welcome/welcome.html | 114 + d2ice.att.io/app/welcome/welcome.less | 208 + d2ice.att.io/app/welcome/welcome.module.js | 63 + d2ice.att.io/bower.json | 56 + d2ice.att.io/dist/favicon.png | Bin 0 -> 6364 bytes d2ice.att.io/dist/fonts/FontAwesome.otf | Bin 0 -> 134808 bytes d2ice.att.io/dist/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes d2ice.att.io/dist/fonts/fontawesome-webfont.svg | 2671 ++++++++++++ d2ice.att.io/dist/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes d2ice.att.io/dist/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes d2ice.att.io/dist/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes .../dist/fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20335 bytes .../dist/fonts/glyphicons-halflings-regular.svg | 229 + .../dist/fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 41280 bytes .../dist/fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23320 bytes d2ice.att.io/dist/index.html | 86 + d2ice.att.io/dist/locales/en/translation.json | 12 + d2ice.att.io/dist/robots.txt | 4 + d2ice.att.io/dist/scripts/scripts.c1bed7e7.js | 14 + d2ice.att.io/dist/scripts/vendor.fa730fcd.js | 53 + .../styles/fonts/ClearviewATT/ClearviewATT-Bd.eot | Bin 0 -> 92160 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bd.svg | 424 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf | Bin 0 -> 93916 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bd.woff | Bin 0 -> 42192 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.eot | Bin 0 -> 104184 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.svg | 425 ++ .../fonts/ClearviewATT/ClearviewATT-BdIt.ttf | Bin 0 -> 105932 bytes .../fonts/ClearviewATT/ClearviewATT-BdIt.woff | Bin 0 -> 46444 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.eot | Bin 0 -> 86088 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.svg | 425 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf | Bin 0 -> 88696 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Bk.woff | Bin 0 -> 39280 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.eot | Bin 0 -> 104224 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.svg | 425 ++ .../fonts/ClearviewATT/ClearviewATT-BkIt.ttf | Bin 0 -> 105972 bytes .../fonts/ClearviewATT/ClearviewATT-BkIt.woff | Bin 0 -> 46676 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.eot | Bin 0 -> 89640 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.svg | 425 ++ .../styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf | Bin 0 -> 92288 bytes .../styles/fonts/ClearviewATT/ClearviewATT-Lt.woff | Bin 0 -> 40332 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.eot | Bin 0 -> 108396 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.svg | 424 ++ .../fonts/ClearviewATT/ClearviewATT-LtIt.ttf | Bin 0 -> 110192 bytes .../fonts/ClearviewATT/ClearviewATT-LtIt.woff | Bin 0 -> 48120 bytes .../styles/fonts/OmnesATT/AT&T Variation ID.tab | 9 + .../fonts/OmnesATT/OmnesATTW02BoldItalic.eot | Bin 0 -> 31322 bytes .../fonts/OmnesATT/OmnesATTW02BoldItalic.svg | 3671 ++++++++++++++++ .../fonts/OmnesATT/OmnesATTW02BoldItalic.ttf | Bin 0 -> 68660 bytes .../fonts/OmnesATT/OmnesATTW02BoldItalic.woff | Bin 0 -> 35986 bytes .../dist/styles/fonts/OmnesATT/Omnes_ATTW02.eot | Bin 0 -> 30321 bytes .../dist/styles/fonts/OmnesATT/Omnes_ATTW02.svg | 3694 +++++++++++++++++ .../dist/styles/fonts/OmnesATT/Omnes_ATTW02.ttf | Bin 0 -> 71692 bytes .../dist/styles/fonts/OmnesATT/Omnes_ATTW02.woff | Bin 0 -> 35610 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot | Bin 0 -> 32077 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg | 4365 ++++++++++++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf | Bin 0 -> 71564 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff | Bin 0 -> 37149 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot | Bin 0 -> 32079 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg | 3799 +++++++++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf | Bin 0 -> 76564 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff | Bin 0 -> 37872 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.eot | Bin 0 -> 32072 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.svg | 3872 +++++++++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf | Bin 0 -> 73968 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Light.woff | Bin 0 -> 37342 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.eot | Bin 0 -> 30983 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.svg | 3030 ++++++++++++++ .../fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf | Bin 0 -> 70088 bytes .../fonts/OmnesATT/Omnes_ATTW02LightItalic.woff | Bin 0 -> 36261 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot | Bin 0 -> 28695 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg | 2473 +++++++++++ .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf | Bin 0 -> 65152 bytes .../styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff | Bin 0 -> 33641 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot | Bin 0 -> 33730 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg | 3837 +++++++++++++++++ .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf | Bin 0 -> 77508 bytes .../fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff | Bin 0 -> 39182 bytes .../dist/styles/fonts/OmnesATT/demo-async.htm | 169 + d2ice.att.io/dist/styles/fonts/OmnesATT/demo.htm | 155 + d2ice.att.io/dist/styles/images/Collaborate.png | Bin 0 -> 2805 bytes d2ice.att.io/dist/styles/images/Incubate.png | Bin 0 -> 4329 bytes d2ice.att.io/dist/styles/images/Validate.png | Bin 0 -> 3999 bytes d2ice.att.io/dist/styles/images/actions-sprite.png | Bin 0 -> 765 bytes d2ice.att.io/dist/styles/images/btn1.png | Bin 0 -> 804 bytes d2ice.att.io/dist/styles/images/btn2.png | Bin 0 -> 908 bytes d2ice.att.io/dist/styles/images/btn3.png | Bin 0 -> 963 bytes d2ice.att.io/dist/styles/images/btnX.png | Bin 0 -> 358 bytes .../dist/styles/images/d2sandbox_logos-150x30.png | Bin 0 -> 2287 bytes .../styles/images/d2sandbox_logos_color-150x30.png | Bin 0 -> 2442 bytes d2ice.att.io/dist/styles/images/flags.png | Bin 0 -> 69270 bytes d2ice.att.io/dist/styles/images/flags@2x.png | Bin 0 -> 173609 bytes .../dist/styles/images/home_bg1-1920x1138.jpg | Bin 0 -> 217394 bytes .../dist/styles/images/icons-sprite-v2.png | Bin 0 -> 12441 bytes .../dist/styles/images/icons-sprite-v3.png | Bin 0 -> 13201 bytes .../dist/styles/images/icons-sprite-v4.png | Bin 0 -> 17042 bytes .../dist/styles/images/icons-sprite-v5.png | Bin 0 -> 17631 bytes d2ice.att.io/dist/styles/images/icons-sprite.png | Bin 0 -> 3200 bytes .../dist/styles/images/profiles-sprite.png | Bin 0 -> 5742 bytes d2ice.att.io/dist/styles/images/steps-sprite.png | Bin 0 -> 331 bytes d2ice.att.io/dist/styles/images/top.jpg | Bin 0 -> 66286 bytes d2ice.att.io/dist/styles/images/wait.gif | Bin 0 -> 698 bytes d2ice.att.io/dist/styles/main.e3dcf1a7.css | 1 + d2ice.att.io/dist/styles/vendor.120f37b4.css | 21 + d2ice.att.io/dist/welcome/index.html | 50 + d2ice.att.io/dist/welcome/welcome.controller.js | 58 + d2ice.att.io/dist/welcome/welcome.html | 114 + d2ice.att.io/dist/welcome/welcome.less | 208 + d2ice.att.io/dist/welcome/welcome.module.js | 63 + d2ice.att.io/package.json | 46 + d2ice.att.io/test/.jshintrc | 18 + d2ice.att.io/test/spec/controllers/main.js | 61 + 440 files changed, 98762 insertions(+) create mode 100755 .gitignore create mode 100755 Dockerfile create mode 100755 LICENSE.TXT create mode 100755 README.md create mode 100755 d2ice.att.io/.bowerrc create mode 100755 d2ice.att.io/.editorconfig create mode 100755 d2ice.att.io/.gitattributes create mode 100755 d2ice.att.io/.gitignore create mode 100755 d2ice.att.io/.jscsrc create mode 100755 d2ice.att.io/.jshintrc create mode 100755 d2ice.att.io/.yo-rc.json create mode 100755 d2ice.att.io/Gruntfile.js create mode 100755 d2ice.att.io/README.md create mode 100755 d2ice.att.io/app/.watch.me create mode 100755 d2ice.att.io/app/app.config.js create mode 100755 d2ice.att.io/app/app.constants.js create mode 100755 d2ice.att.io/app/app.controller.js create mode 100755 d2ice.att.io/app/app.module.js create mode 100755 d2ice.att.io/app/app.route.js create mode 100755 d2ice.att.io/app/app.run.js create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/MIT.LICENSE create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/README.md create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/bower.json create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/changelog_3.6.8.txt create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/dist/jquery.nicescroll.min.js create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/dist/zoomico.png create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/jquery.nicescroll.js create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/jquery.nicescroll.min.js create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/package.json create mode 100755 d2ice.att.io/app/core/js/jquery.nicescroll-master/zoomico.png create mode 100755 d2ice.att.io/app/core/layouts/dashboard/dashboard.html create mode 100755 d2ice.att.io/app/core/layouts/dashboard/dashboard.less create mode 100755 d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.html create mode 100755 d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.less create mode 100755 d2ice.att.io/app/core/navigation/layouts/account-navigation/account.navigation.controller.js create mode 100755 d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.html create mode 100755 d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.less create mode 100755 d2ice.att.io/app/core/navigation/layouts/admin-navigation/admin.navigation.controller.js create mode 100755 d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.html create mode 100755 d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.less create mode 100755 d2ice.att.io/app/core/navigation/layouts/documentation-navigation/documentation.navigation.controller.js create mode 100755 d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.html create mode 100755 d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.less create mode 100755 d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.html create mode 100755 d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.less create mode 100755 d2ice.att.io/app/core/navigation/navigation.controller.js create mode 100755 d2ice.att.io/app/core/navigation/navigation.module.js create mode 100755 d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.html create mode 100755 d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.less create mode 100755 d2ice.att.io/app/core/toolbar/toolbar.controller.js create mode 100755 d2ice.att.io/app/core/toolbar/toolbar.module.js create mode 100755 d2ice.att.io/app/directives/ice-announcement/ice-announcement.directive.js create mode 100755 d2ice.att.io/app/directives/ice-announcement/ice-announcement.html create mode 100755 d2ice.att.io/app/directives/ice-loader/ice-loader.directive.js create mode 100755 d2ice.att.io/app/directives/ice-loader/ice-loader.html create mode 100755 d2ice.att.io/app/directives/ice-loader/ice-loader.less create mode 100755 d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.directive.js create mode 100755 d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.html create mode 100755 d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.less create mode 100755 d2ice.att.io/app/directives/ice-toast/ice-toast.directive.js create mode 100755 d2ice.att.io/app/directives/ice-toast/ice-toast.html create mode 100755 d2ice.att.io/app/directives/ice-toast/ice-toast.less create mode 100755 d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.directive.js create mode 100755 d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.html create mode 100755 d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.less create mode 100755 d2ice.att.io/app/directives/notifications/notifications.directive.js create mode 100755 d2ice.att.io/app/directives/progress/progress.directive.js create mode 100755 d2ice.att.io/app/directives/progress/progress.html create mode 100755 d2ice.att.io/app/directives/progress/progress.less create mode 100755 d2ice.att.io/app/directives/step-stages/step-stages.directive.js create mode 100755 d2ice.att.io/app/directives/step-stages/step-stages.html create mode 100755 d2ice.att.io/app/directives/step-stages/step-stages.less create mode 100755 d2ice.att.io/app/favicon.png create mode 100755 d2ice.att.io/app/filters/capitalize.filter.js create mode 100755 d2ice.att.io/app/filters/customDocumentationPageSearch.filter.js create mode 100755 d2ice.att.io/app/filters/customVFSearchFilter.filter.js create mode 100755 d2ice.att.io/app/filters/date2.filter.js create mode 100755 d2ice.att.io/app/filters/doesExists.filter.js create mode 100755 d2ice.att.io/app/filters/htmlspecialchars.filter.js create mode 100755 d2ice.att.io/app/filters/htmlstylespan.filter.js create mode 100755 d2ice.att.io/app/filters/trusted.filter.js create mode 100755 d2ice.att.io/app/index.html create mode 100755 d2ice.att.io/app/interceptors/httpInterceptors.js create mode 100755 d2ice.att.io/app/locales/en/translation.json create mode 100755 d2ice.att.io/app/main/activation/activate/activateUser.controller.js create mode 100755 d2ice.att.io/app/main/activation/activate/activateUser.html create mode 100755 d2ice.att.io/app/main/activation/activate/activateUser.module.js create mode 100755 d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.controller.js create mode 100755 d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.html create mode 100755 d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.less create mode 100755 d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.module.js create mode 100755 d2ice.att.io/app/main/activation/addVf/addVf.controller.js create mode 100755 d2ice.att.io/app/main/activation/addVf/addVf.html create mode 100755 d2ice.att.io/app/main/activation/addVf/addVf.less create mode 100755 d2ice.att.io/app/main/activation/addVf/addVf.module.js create mode 100755 d2ice.att.io/app/main/activation/contactUs/contactUs.controller.js create mode 100755 d2ice.att.io/app/main/activation/contactUs/contactUs.html create mode 100755 d2ice.att.io/app/main/activation/contactUs/contactUs.less create mode 100755 d2ice.att.io/app/main/activation/contactUs/contactUs.module.js create mode 100755 d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.controller.js create mode 100755 d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.html create mode 100755 d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.less create mode 100755 d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.module.js create mode 100755 d2ice.att.io/app/main/activation/login/login.controller.js create mode 100755 d2ice.att.io/app/main/activation/login/login.html create mode 100755 d2ice.att.io/app/main/activation/login/login.less create mode 100755 d2ice.att.io/app/main/activation/login/login.module.js create mode 100755 d2ice.att.io/app/main/activation/register/register.controller.js create mode 100755 d2ice.att.io/app/main/activation/register/register.html create mode 100755 d2ice.att.io/app/main/activation/register/register.less create mode 100755 d2ice.att.io/app/main/activation/register/register.module.js create mode 100755 d2ice.att.io/app/main/activation/resendActivation/resendActivation.controller.js create mode 100755 d2ice.att.io/app/main/activation/resendActivation/resendActivation.html create mode 100755 d2ice.att.io/app/main/activation/resendActivation/resendActivation.less create mode 100755 d2ice.att.io/app/main/activation/resendActivation/resendActivation.module.js create mode 100755 d2ice.att.io/app/main/activation/resetPassword/resetPassword.controller.js create mode 100755 d2ice.att.io/app/main/activation/resetPassword/resetPassword.html create mode 100755 d2ice.att.io/app/main/activation/resetPassword/resetPassword.less create mode 100755 d2ice.att.io/app/main/activation/resetPassword/resetPassword.module.js create mode 100755 d2ice.att.io/app/main/activation/terms/terms.controller.js create mode 100755 d2ice.att.io/app/main/activation/terms/terms.html create mode 100755 d2ice.att.io/app/main/activation/terms/terms.less create mode 100755 d2ice.att.io/app/main/activation/terms/terms.module.js create mode 100755 d2ice.att.io/app/main/activation/updatePassword/updatePassword.controller.js create mode 100755 d2ice.att.io/app/main/activation/updatePassword/updatePassword.html create mode 100755 d2ice.att.io/app/main/activation/updatePassword/updatePassword.less create mode 100755 d2ice.att.io/app/main/activation/updatePassword/updatePassword.module.js create mode 100755 d2ice.att.io/app/main/admin/admin.module.js create mode 100755 d2ice.att.io/app/main/admin/checklist-template/checklist-template.controller.js create mode 100755 d2ice.att.io/app/main/admin/checklist-template/checklist-template.html create mode 100755 d2ice.att.io/app/main/admin/checklist-template/checklist-template.less create mode 100755 d2ice.att.io/app/main/dashboard/account/account.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/account/account.html create mode 100755 d2ice.att.io/app/main/dashboard/account/account.less create mode 100755 d2ice.att.io/app/main/dashboard/account/account.module.js create mode 100755 d2ice.att.io/app/main/dashboard/account/notifications/notifications.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/account/notifications/notifications.html create mode 100755 d2ice.att.io/app/main/dashboard/account/notifications/notifications.less create mode 100755 d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.html create mode 100755 d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.less create mode 100755 d2ice.att.io/app/main/dashboard/checklist/checklist.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/checklist/checklist.html create mode 100755 d2ice.att.io/app/main/dashboard/checklist/checklist.less create mode 100755 d2ice.att.io/app/main/dashboard/dashboard/dashboard.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/dashboard/dashboard.html create mode 100755 d2ice.att.io/app/main/dashboard/dashboard/dashboard.less create mode 100755 d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.html create mode 100755 d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.less create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.directive.js create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.html create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.less create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.module.js create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard-container.html create mode 100755 d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard.less create mode 100755 d2ice.att.io/app/main/dashboard/main.module.js create mode 100755 d2ice.att.io/app/main/dashboard/main/main.html create mode 100755 d2ice.att.io/app/main/dashboard/overview/overview.controller.js create mode 100755 d2ice.att.io/app/main/dashboard/overview/overview.html create mode 100755 d2ice.att.io/app/main/dashboard/overview/overview.less create mode 100755 d2ice.att.io/app/main/documentation/documentation.controller.js create mode 100755 d2ice.att.io/app/main/documentation/documentation.html create mode 100755 d2ice.att.io/app/main/documentation/documentation.less create mode 100755 d2ice.att.io/app/main/documentation/documentation.module.js create mode 100755 d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.html create mode 100755 d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.less create mode 100755 d2ice.att.io/app/main/errors/404.html create mode 100755 d2ice.att.io/app/main/main.controller.js create mode 100755 d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html create mode 100755 d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less create mode 100755 d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js create mode 100755 d2ice.att.io/app/main/modals/audit-log/audit-log.html create mode 100755 d2ice.att.io/app/main/modals/audit-log/audit-log.less create mode 100755 d2ice.att.io/app/main/modals/change-date/change-date.controller.js create mode 100755 d2ice.att.io/app/main/modals/change-date/change-date.html create mode 100755 d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js create mode 100755 d2ice.att.io/app/main/modals/change-progress/change-progress.html create mode 100755 d2ice.att.io/app/main/modals/checklist/checklist.controller.js create mode 100755 d2ice.att.io/app/main/modals/checklist/checklist.html create mode 100755 d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js create mode 100755 d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html create mode 100755 d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less create mode 100755 d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html create mode 100755 d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less create mode 100755 d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html create mode 100755 d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html create mode 100755 d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less create mode 100755 d2ice.att.io/app/main/modals/feedback/feedback.controller.js create mode 100755 d2ice.att.io/app/main/modals/feedback/feedback.html create mode 100755 d2ice.att.io/app/main/modals/feedback/feedback.less create mode 100755 d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html create mode 100755 d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less create mode 100755 d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html create mode 100755 d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less create mode 100755 d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js create mode 100755 d2ice.att.io/app/main/modals/next-steps/next-steps.html create mode 100755 d2ice.att.io/app/main/modals/next-steps/next-steps.less create mode 100755 d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html create mode 100755 d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less create mode 100755 d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html create mode 100755 d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less create mode 100755 d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html create mode 100755 d2ice.att.io/app/main/modals/status/status.controller.js create mode 100755 d2ice.att.io/app/main/modals/status/status.html create mode 100755 d2ice.att.io/app/main/modals/status/status.less create mode 100755 d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js create mode 100755 d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html create mode 100755 d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less create mode 100755 d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html create mode 100755 d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less create mode 100755 d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js create mode 100755 d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html create mode 100755 d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less create mode 100755 d2ice.att.io/app/robots.txt create mode 100755 d2ice.att.io/app/services/cache.service.js create mode 100755 d2ice.att.io/app/services/checklist.service.js create mode 100755 d2ice.att.io/app/services/cms.service.js create mode 100755 d2ice.att.io/app/services/dtsite.service.js create mode 100755 d2ice.att.io/app/services/feedback.service.js create mode 100755 d2ice.att.io/app/services/localstorage.service.js create mode 100755 d2ice.att.io/app/services/sessionStorage.service.js create mode 100755 d2ice.att.io/app/services/status.service.js create mode 100755 d2ice.att.io/app/services/steps.service.js create mode 100755 d2ice.att.io/app/services/toast.service.js create mode 100755 d2ice.att.io/app/services/users.service.js create mode 100755 d2ice.att.io/app/services/vf.service.js create mode 100755 d2ice.att.io/app/services/vfc.service.js create mode 100755 d2ice.att.io/app/styles/buttons.less create mode 100755 d2ice.att.io/app/styles/fonts.less create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.woff create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.woff create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.woff create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.woff create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.woff create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.eot create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.svg create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.ttf create mode 100755 d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/AT&T Variation ID.tab create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/demo-async.htm create mode 100755 d2ice.att.io/app/styles/fonts/OmnesATT/demo.htm create mode 100755 d2ice.att.io/app/styles/form.less create mode 100755 d2ice.att.io/app/styles/global.less create mode 100755 d2ice.att.io/app/styles/images/Collaborate.png create mode 100755 d2ice.att.io/app/styles/images/Incubate.png create mode 100755 d2ice.att.io/app/styles/images/Validate.png create mode 100755 d2ice.att.io/app/styles/images/actions-sprite.png create mode 100755 d2ice.att.io/app/styles/images/btn1.png create mode 100755 d2ice.att.io/app/styles/images/btn2.png create mode 100755 d2ice.att.io/app/styles/images/btn3.png create mode 100755 d2ice.att.io/app/styles/images/btnX.png create mode 100755 d2ice.att.io/app/styles/images/d2sandbox_logos-150x30.png create mode 100755 d2ice.att.io/app/styles/images/d2sandbox_logos_color-150x30.png create mode 100755 d2ice.att.io/app/styles/images/flags.png create mode 100755 d2ice.att.io/app/styles/images/flags@2x.png create mode 100755 d2ice.att.io/app/styles/images/home_bg1-1920x1138.jpg create mode 100755 d2ice.att.io/app/styles/images/icons-sprite-v2.png create mode 100755 d2ice.att.io/app/styles/images/icons-sprite-v3.png create mode 100755 d2ice.att.io/app/styles/images/icons-sprite-v4.png create mode 100755 d2ice.att.io/app/styles/images/icons-sprite-v5.png create mode 100755 d2ice.att.io/app/styles/images/icons-sprite.png create mode 100755 d2ice.att.io/app/styles/images/profiles-sprite.png create mode 100755 d2ice.att.io/app/styles/images/steps-sprite.png create mode 100755 d2ice.att.io/app/styles/images/top.jpg create mode 100755 d2ice.att.io/app/styles/images/wait.gif create mode 100755 d2ice.att.io/app/styles/mixins.less create mode 100755 d2ice.att.io/app/styles/modals.less create mode 100755 d2ice.att.io/app/styles/sprite.less create mode 100755 d2ice.att.io/app/styles/table-flex.less create mode 100755 d2ice.att.io/app/styles/variables.less create mode 100755 d2ice.att.io/app/welcome/index.html create mode 100755 d2ice.att.io/app/welcome/welcome.controller.js create mode 100755 d2ice.att.io/app/welcome/welcome.html create mode 100755 d2ice.att.io/app/welcome/welcome.less create mode 100755 d2ice.att.io/app/welcome/welcome.module.js create mode 100755 d2ice.att.io/bower.json create mode 100755 d2ice.att.io/dist/favicon.png create mode 100755 d2ice.att.io/dist/fonts/FontAwesome.otf create mode 100755 d2ice.att.io/dist/fonts/fontawesome-webfont.eot create mode 100755 d2ice.att.io/dist/fonts/fontawesome-webfont.svg create mode 100755 d2ice.att.io/dist/fonts/fontawesome-webfont.ttf create mode 100755 d2ice.att.io/dist/fonts/fontawesome-webfont.woff create mode 100755 d2ice.att.io/dist/fonts/fontawesome-webfont.woff2 create mode 100755 d2ice.att.io/dist/fonts/glyphicons-halflings-regular.eot create mode 100755 d2ice.att.io/dist/fonts/glyphicons-halflings-regular.svg create mode 100755 d2ice.att.io/dist/fonts/glyphicons-halflings-regular.ttf create mode 100755 d2ice.att.io/dist/fonts/glyphicons-halflings-regular.woff create mode 100755 d2ice.att.io/dist/index.html create mode 100755 d2ice.att.io/dist/locales/en/translation.json create mode 100755 d2ice.att.io/dist/robots.txt create mode 100755 d2ice.att.io/dist/scripts/scripts.c1bed7e7.js create mode 100755 d2ice.att.io/dist/scripts/vendor.fa730fcd.js create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bd.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bd.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bd.woff create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BdIt.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BdIt.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BdIt.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BdIt.woff create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bk.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bk.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Bk.woff create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BkIt.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BkIt.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BkIt.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-BkIt.woff create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Lt.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Lt.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-Lt.woff create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-LtIt.eot create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-LtIt.svg create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-LtIt.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/ClearviewATT/ClearviewATT-LtIt.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/AT&T Variation ID.tab create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Light.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Light.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Light.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/demo-async.htm create mode 100755 d2ice.att.io/dist/styles/fonts/OmnesATT/demo.htm create mode 100755 d2ice.att.io/dist/styles/images/Collaborate.png create mode 100755 d2ice.att.io/dist/styles/images/Incubate.png create mode 100755 d2ice.att.io/dist/styles/images/Validate.png create mode 100755 d2ice.att.io/dist/styles/images/actions-sprite.png create mode 100755 d2ice.att.io/dist/styles/images/btn1.png create mode 100755 d2ice.att.io/dist/styles/images/btn2.png create mode 100755 d2ice.att.io/dist/styles/images/btn3.png create mode 100755 d2ice.att.io/dist/styles/images/btnX.png create mode 100755 d2ice.att.io/dist/styles/images/d2sandbox_logos-150x30.png create mode 100755 d2ice.att.io/dist/styles/images/d2sandbox_logos_color-150x30.png create mode 100755 d2ice.att.io/dist/styles/images/flags.png create mode 100755 d2ice.att.io/dist/styles/images/flags@2x.png create mode 100755 d2ice.att.io/dist/styles/images/home_bg1-1920x1138.jpg create mode 100755 d2ice.att.io/dist/styles/images/icons-sprite-v2.png create mode 100755 d2ice.att.io/dist/styles/images/icons-sprite-v3.png create mode 100755 d2ice.att.io/dist/styles/images/icons-sprite-v4.png create mode 100755 d2ice.att.io/dist/styles/images/icons-sprite-v5.png create mode 100755 d2ice.att.io/dist/styles/images/icons-sprite.png create mode 100755 d2ice.att.io/dist/styles/images/profiles-sprite.png create mode 100755 d2ice.att.io/dist/styles/images/steps-sprite.png create mode 100755 d2ice.att.io/dist/styles/images/top.jpg create mode 100755 d2ice.att.io/dist/styles/images/wait.gif create mode 100755 d2ice.att.io/dist/styles/main.e3dcf1a7.css create mode 100755 d2ice.att.io/dist/styles/vendor.120f37b4.css create mode 100755 d2ice.att.io/dist/welcome/index.html create mode 100755 d2ice.att.io/dist/welcome/welcome.controller.js create mode 100755 d2ice.att.io/dist/welcome/welcome.html create mode 100755 d2ice.att.io/dist/welcome/welcome.less create mode 100755 d2ice.att.io/dist/welcome/welcome.module.js create mode 100755 d2ice.att.io/package.json create mode 100755 d2ice.att.io/test/.jshintrc create mode 100755 d2ice.att.io/test/spec/controllers/main.js diff --git a/.gitignore b/.gitignore new file mode 100755 index 00000000..3795d52e --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# Eclipse +**/__pycache__/ +.pydevproject +.project +**/migrations/ +logs/ +.settings +.project +.tern-project +d2ice.att.io/.idea/ +d2ice.att.io/app/styles/app.css +*.orig +.idea +d2ice.att.io/app/styles/app.less +npm-debug.log +txcontainerkit/ +d2ice.att.io/app/app.env.js +.DS_Store diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 00000000..d6e11ddb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +# +# ============LICENSE_START========================================== +# org.onap.vvp/portal +# =================================================================== +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# =================================================================== +# +# Unless otherwise specified, all software contained herein is licensed +# under the Apache License, Version 2.0 (the “License”); +# you may not use this software except in compliance with the License. +# You may obtain a copy of the License at +# +# http:www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +# +# Unless otherwise specified, all documentation contained herein is licensed +# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +# you may not use this documentation except in compliance with the License. +# You may obtain a copy of the License at +# +# https:creativecommons.org/licenses/by/4.0/ +# +# Unless required by applicable law or agreed to in writing, documentation +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ============LICENSE_END============================================ +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +FROM nginx:1.11.9-alpine +COPY d2ice.att.io/dist /usr/share/nginx/html diff --git a/LICENSE.TXT b/LICENSE.TXT new file mode 100755 index 00000000..7b80edde --- /dev/null +++ b/LICENSE.TXT @@ -0,0 +1,38 @@ + +============LICENSE_START========================================== +org.onap.vvp/portal +=================================================================== +Copyright © 2017 AT&T Intellectual Property. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the “License”); +you may not use this software except in compliance with the License. +You may obtain a copy of the License at + + http:www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + + +Unless otherwise specified, all documentation contained herein is licensed +under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +you may not use this documentation except in compliance with the License. +You may obtain a copy of the License at + + https:creativecommons.org/licenses/by/4.0/ + +Unless required by applicable law or agreed to in writing, documentation +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +============LICENSE_END============================================ + +ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/README.md b/README.md new file mode 100755 index 00000000..84561081 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# rkt-ice-portal +ICE Self Service Portal diff --git a/d2ice.att.io/.bowerrc b/d2ice.att.io/.bowerrc new file mode 100755 index 00000000..69fad358 --- /dev/null +++ b/d2ice.att.io/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "bower_components" +} diff --git a/d2ice.att.io/.editorconfig b/d2ice.att.io/.editorconfig new file mode 100755 index 00000000..8a80734f --- /dev/null +++ b/d2ice.att.io/.editorconfig @@ -0,0 +1,21 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 4 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/d2ice.att.io/.gitattributes b/d2ice.att.io/.gitattributes new file mode 100755 index 00000000..21256661 --- /dev/null +++ b/d2ice.att.io/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/d2ice.att.io/.gitignore b/d2ice.att.io/.gitignore new file mode 100755 index 00000000..f21a0349 --- /dev/null +++ b/d2ice.att.io/.gitignore @@ -0,0 +1,14 @@ +/node_modules +/.tmp +/.sass-cache +/bower_components +/favicon.png +/scripts +/fonts +/styles +/robots.txt +/welcome.html +/favicon.png +/index.html + + diff --git a/d2ice.att.io/.jscsrc b/d2ice.att.io/.jscsrc new file mode 100755 index 00000000..f8bf9ba2 --- /dev/null +++ b/d2ice.att.io/.jscsrc @@ -0,0 +1,6 @@ +{ + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedConstructors": true, + "requireParenthesesAroundIIFE": true, + "validateQuoteMarks": "'" +} diff --git a/d2ice.att.io/.jshintrc b/d2ice.att.io/.jshintrc new file mode 100755 index 00000000..4572e5d3 --- /dev/null +++ b/d2ice.att.io/.jshintrc @@ -0,0 +1,16 @@ +{ + "bitwise": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "latedef": true, + "noarg": true, + "node": true, + "strict": true, + "undef": true, + "unused": true, + "globals": { + "angular": false + } +} diff --git a/d2ice.att.io/.yo-rc.json b/d2ice.att.io/.yo-rc.json new file mode 100755 index 00000000..6589676f --- /dev/null +++ b/d2ice.att.io/.yo-rc.json @@ -0,0 +1,11 @@ +{ + "generator-karma": { + "base-path": "../", + "frameworks": "jasmine", + "browsers": "PhantomJS", + "app-files": "app/scripts/**/*.js", + "files-comments": "bower:js,endbower", + "bower-components-path": "bower_components", + "test-files": "test/mock/**/*.js,test/spec/**/*.js" + } +} \ No newline at end of file diff --git a/d2ice.att.io/Gruntfile.js b/d2ice.att.io/Gruntfile.js new file mode 100755 index 00000000..41c3c2a5 --- /dev/null +++ b/d2ice.att.io/Gruntfile.js @@ -0,0 +1,714 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +// Generated on 2016-05-30 using generator-angular 0.15.1 +'use strict'; + +// # Globbing +// for performance reasons we're only matching one level down: +// 'test/spec/{,*/}*.js' +// use this if you want to recursively match all subfolders: +// 'test/spec/**/*.js' + +module.exports = function (grunt) { + + // Time how long tasks take. Can help when optimizing build times + require('time-grunt')(grunt); + + // Automatically load required Grunt tasks + require('jit-grunt')(grunt, { + useminPrepare: 'grunt-usemin', + ngtemplates: 'grunt-angular-templates', + cdnify: 'grunt-google-cdn', + ngconstant: 'grunt-ng-constant' + }); + + // Configurable paths for the application + var appConfig = { + app: require('./bower.json').appPath || 'app', + dist: 'dist' + }; + + // Define the configuration for all the tasks + grunt.initConfig({ + + // Project settings + yeoman: appConfig, + + // Watches files for changes and runs tasks based on the changed files + watch: { + bower: { + files: ['bower.json'], + tasks: ['wiredep'] + }, + js: { + files: ['<%= yeoman.app %>/main/{,*/}*.js'], + tasks: ['newer:jshint:all', 'newer:jscs:all'], + options: { + livereload: '<%= connect.options.livereload %>' + } + }, + jsTest: { + files: ['test/spec/{,*/}*.js'], + tasks: ['newer:jshint:test', 'newer:jscs:test', 'karma'] + }, + injector: { + files: [ + 'app/styles/*.less', + 'app/core/**/*.less', + 'app/directives/**/*.less', + 'app/main/**/*.less', + 'app/welcome/*.less' + ], + taskd: ['injector'] + }, + less: { + files: ['app/**/*.less'], + tasks: ['less:development','copy:styles'], + options: { + livereload: '<%= connect.options.livereload %>', + nospawn: true + } + }, + styles: { + files: ['<%= yeoman.app %>/main/{,*/}*.css'], + tasks: ['newer:copy:styles', 'postcss'] + }, + gruntfile: { + files: ['Gruntfile.js'] + }, + livereload: { + options: { + livereload: '<%= connect.options.livereload %>' + }, + files: [ + '<%= yeoman.app %>/{,*/}*.html', + '.tmp/styles/{,*/}*.css', + '<%= yeoman.app %>/styles/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' + ] + } + }, + + ngconstant: { + // Options for all targets + options: { + space: ' ', + wrap: '"use strict";\n\n {\%= __ngModule %}', + name: 'ice.env', + }, + // Environment targets + dev: { + options: { + dest: '<%= yeoman.app %>/app.env.js' + }, + constants: { + ENV: { + name: 'development', + apiBase: 'http://localhost:8000/vvp/v1/engmgr/' + } + } + }, + dist: { + options: { + dest: '<%= yeoman.app %>/app.env.js' + }, + constants: { + ENV: { + name: 'production', + apiBase: '/vvp/v1/engmgr/' + } + } + }, + staging: { + options: { + dest: '<%= yeoman.app %>/app.env.js' + }, + constants: { + ENV: { + name: 'staging', + apiBase: 'https://staging-api.d2ice.att.io/vvp/v1/engmgr/' + } + } + } + }, + + // The actual grunt server settings + connect: { + options: { + port: 9000, + // Change this to '0.0.0.0' to access the server from outside. + hostname: 'localhost', + livereload: 35729 + }, + livereload: { + options: { + open: true, + middleware: function (connect) { + return [ + connect.static('.tmp'), + connect().use( + '/bower_components', + connect.static('./bower_components') + ), + connect().use( + '/app/styles', + connect.static('./app/styles') + ), + connect.static(appConfig.app) + ]; + } + } + }, + test: { + options: { + port: 9001, + middleware: function (connect) { + return [ + connect.static('.tmp'), + connect.static('test'), + connect().use( + '/bower_components', + connect.static('./bower_components') + ), + connect.static(appConfig.app) + ]; + } + } + }, + dist: { + options: { + open: true, + base: '<%= yeoman.dist %>' + } + } + }, + + // app.less contains all the less from all places, convert it to CSS + less: { + development: { + files: { + 'app/styles/app.css': 'app/styles/app.less' + } + }, + production: { + 'app/styles/app.css': 'app/styles/app.less' + } + }, + + injector: { + options: {}, + // Inject all project less into app.less + less: { + options: { + transform: function (filePath) { + filePath = filePath.replace('/app/styles/', '../styles/'); + filePath = filePath.replace('/app/main/', '../main/'); + filePath = filePath.replace('/app/core/', '../core/'); + filePath = filePath.replace('/app/directives/', '../directives/'); + filePath = filePath.replace('/app/welcome/', '../welcome/'); + return '@import \'' + filePath + '\';'; + }, + starttag: '// injector:less', + endtag: '// endinjector:less' + }, + files: { + 'app/styles/app.less': [ + 'app/styles/*.less', + 'app/core/**/*.less', + 'app/directives/**/*.less', + 'app/main/**/*.less', + 'app/welcome/*.less', + '!app/styles/app.less' + ] + } + } + }, + + // Make sure there are no obvious mistakes + jshint: { + options: { + jshintrc: '.jshintrc', + reporter: require('jshint-stylish') + }, + all: { + src: [ + 'Gruntfile.js', + '<%= yeoman.app %>/main/{,*/}*.js' + ] + }, + test: { + options: { + jshintrc: 'test/.jshintrc' + }, + src: ['test/spec/{,*/}*.js'] + } + }, + + // Make sure code styles are up to par + jscs: { + options: { + config: '.jscsrc', + verbose: true + }, + all: { + src: [ + 'Gruntfile.js', + '<%= yeoman.app %>/main/{,*/}*.js' + ] + }, + test: { + src: ['test/spec/{,*/}*.js'] + } + }, + + // Empties folders to start fresh + clean: { + dist: { + files: [{ + dot: true, + src: [ + '.tmp', + '<%= yeoman.dist %>/{,*/}*', + '!<%= yeoman.dist %>/.git{,*/}*' + ] + }] + }, + server: '.tmp' + }, + + // Add vendor prefixed styles + postcss: { + options: { + processors: [ + require('autoprefixer-core')({browsers: ['last 1 version']}) + ] + }, + server: { + options: { + map: true + }, + files: [{ + expand: true, + cwd: '.tmp/styles/', + src: '{,*/}*.css', + dest: '.tmp/styles/' + }] + }, + dist: { + files: [{ + expand: true, + cwd: '.tmp/styles/', + src: '{,*/}*.css', + dest: '.tmp/styles/' + }] + } + }, + + // Automatically inject Bower components into the app + wiredep: { + app: { + src: ['<%= yeoman.app %>/index.html'], + ignorePath: /\.\.\// + }, + test: { + devDependencies: true, + src: '<%= karma.unit.configFile %>', + ignorePath: /\.\.\//, + fileTypes: { + js: { + block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi, + detect: { + js: /'(.*\.js)'/gi + }, + replace: { + js: '\'{{filePath}}\',' + } + } + } + } + }, + + // Renames files for browser caching purposes + filerev: { + dist: { + src: [ + '<%= yeoman.dist %>/scripts/{,*/}*.js', + '<%= yeoman.dist %>/styles/{,*/}*.css', + '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', + '<%= yeoman.dist %>/styles/fonts/*' + ] + } + }, + + // Reads HTML for usemin blocks to enable smart builds that automatically + // concat, minify and revision files. Creates configurations in memory so + // additional tasks can operate on them + useminPrepare: { + html: '<%= yeoman.app %>/index.html', + options: { + dest: '<%= yeoman.dist %>', + flow: { + html: { + steps: { + js: ['concat', 'uglifyjs'], + css: ['cssmin'] + }, + post: {} + } + } + } + }, + + // Performs rewrites based on filerev and the useminPrepare configuration + usemin: { + html: ['<%= yeoman.dist %>/{,*/}*.html'], + css: ['<%= yeoman.dist %>/styles/{,*/}*.css'], + js: ['<%= yeoman.dist %>/scripts/{,*/}*.js'], + options: { + assetsDirs: [ + '<%= yeoman.dist %>', + '<%= yeoman.dist %>/images', + '<%= yeoman.dist %>/styles' + ], + patterns: { + js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']] + } + } + }, + + imagemin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/styles/images', + src: '{,*/}*.{png,jpg,jpeg,gif}', + dest: '<%= yeoman.dist %>/styles/images' + }] + } + }, + + svgmin: { + dist: { + files: [{ + expand: true, + cwd: '<%= yeoman.app %>/styles/images', + src: '{,*/}*.svg', + dest: '<%= yeoman.dist %>/images' + }] + } + }, + + htmlmin: { + dist: { + options: { + collapseWhitespace: true, + conservativeCollapse: true, + collapseBooleanAttributes: true, + removeCommentsFromCDATA: true + }, + files: [{ + expand: true, + cwd: '<%= yeoman.dist %>', + src: ['*.html'], + dest: '<%= yeoman.dist %>' + }] + } + }, + + ngtemplates: { + dist: { + options: { + module: 'ice', + htmlmin: '<%= htmlmin.dist.options %>', + usemin: 'scripts/scripts.js' + }, + cwd: '<%= yeoman.app %>', + src: [ + 'main/**/*.html', + 'core/**/*.html', + 'directives/**/*.html', + ], + dest: '.tmp/templateCache.js' + } + }, + + // ng-annotate tries to make the code safe for minification automatically + // by using the Angular long form for dependency injection. + ngAnnotate: { + dist: { + files: [{ + expand: true, + cwd: '.tmp/concat/scripts', + src: '*.js', + dest: '.tmp/concat/scripts' + }] + } + }, + + // Replace Google CDN references + cdnify: { + dist: { + html: ['<%= yeoman.dist %>/*.html'] + } + }, + + // Copies remaining files to places other tasks can use + copy: { + dist: { + files: [{ + expand: true, + dot: true, + cwd: '<%= yeoman.app %>', + dest: '<%= yeoman.dist %>', + src: [ + '*.{ico,png,txt}', + '*.html', + 'images/{,*/}*.{webp}', + 'styles/fonts/{,*/}*.*' + ] + }, { + expand: true, + cwd: '.tmp/images', + dest: '<%= yeoman.dist %>/images', + src: ['generated/*'] + }, { + expand: true, + cwd: 'bower_components/bootstrap/dist', + src: 'fonts/*', + dest: '<%= yeoman.dist %>' + }, { + expand: true, + cwd: 'bower_components/components-font-awesome', + src: 'fonts/*', + dest: '<%= yeoman.dist %>' + }, + { + expand: true, + cwd: '<%= yeoman.app %>/locales', + src: '**/*', + dest: '<%= yeoman.dist %>/locales' + }] + }, + styles: { + expand: true, + cwd: '<%= yeoman.app %>/styles', + dest: '.tmp/styles/', + src: '{,*/}*.css' + }, + welcome: { + expand: true, + cwd: '<%= yeoman.app %>/welcome', + dest: '<%= yeoman.dist %>/welcome', + src: '{,**/}*.*' + } + }, + + // Run some tasks in parallel to speed up the build process + concurrent: { + server: [ + 'less:development', + 'copy:styles' + ], + test: [ + 'copy:styles' + ], + dist: [ + 'copy:styles', + 'imagemin', + 'svgmin' + ] + }, + + // Test settings + karma: { + unit: { + configFile: 'test/karma.conf.js', + singleRun: true + } + } + }); + + grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { + if (target === 'dist') { + return grunt.task.run(['build', 'connect:dist:keepalive']); + } + + grunt.task.run([ + 'clean:server', // Delete .tmp folder + 'ngconstant:dev', // Configure constants + 'wiredep', // Automatically inject Bower components into the app + 'injector', // Inject the less files to app.less + 'less:development', + 'copy:styles', +// 'concurrent:server', // Run some tasks in parallel to speed up the build process, need to see what the task run. + 'postcss:server', // Add vendor prefixed styles + 'connect:livereload', + 'watch' + ]); + }); + + grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) { + grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); + grunt.task.run(['serve:' + target]); + }); + + grunt.registerTask('test', [ + 'clean:server', + 'wiredep', + 'concurrent:test', + 'postcss', + 'connect:test', + 'karma' + ]); + + + grunt.registerTask('build-ci', function(target) { + + var tasks = [ + 'clean:dist', + 'ngconstant:dist', + 'wiredep', + 'less:production', + 'copy:styles', + 'imagemin', + 'svgmin', + //'concurrent:dist', + 'postcss', + 'useminPrepare', + 'ngtemplates', + 'concat', + 'ngAnnotate', + 'copy:dist', + 'copy:welcome', + //'cdnify', + 'cssmin', + // 'uglify', + 'filerev', + 'usemin', + 'clean:server', // Delete .tmp folder + 'ngconstant:dev', // Configure constants + 'wiredep', // Automatically inject Bower components into the app + 'injector', // Inject the less files to app.less + 'less:development', + 'copy:styles', + // 'concurrent:server', // Run some tasks in parallel to speed up the build process, need to see what the task run. + 'postcss:server', // Add vendor prefixed styles + 'clean:dist', + 'ngconstant:dist', + 'wiredep', + 'less:production', + 'copy:styles', + 'imagemin', + 'svgmin', + //'concurrent:dist', + 'postcss', + 'useminPrepare', + 'ngtemplates', + 'concat', + 'ngAnnotate', + 'copy:dist', + 'copy:welcome', + //'cdnify', + 'cssmin', + 'uglify', + 'filerev', + 'usemin', + //'htmlmin' + ]; + + if (!target) { + target = 'dist'; + } + grunt.task.run.apply(grunt.task, tasks.map(function(task) { + if (task === 'ngconstant:dist') { + task = task.split(':')[0]; + return task + ':' + target; + } else{ + return task; + } + })); + }); + + + grunt.registerTask('build', function(target) { + + var tasks = [ + 'clean:dist', + 'ngconstant:dist', + 'wiredep', + 'less:production', + 'copy:styles', + 'imagemin', + 'svgmin', + //'concurrent:dist', + 'postcss', + 'useminPrepare', + 'ngtemplates', + 'concat', + 'ngAnnotate', + 'copy:dist', + 'copy:welcome', + //'cdnify', + 'cssmin', + 'uglify', + 'filerev', + 'usemin', + //'htmlmin' + ]; + + if (!target) { + target = 'dist'; + } + grunt.task.run.apply(grunt.task, tasks.map(function(task) { + if (task === 'ngconstant:dist') { + task = task.split(':')[0]; + return task + ':' + target; + } else{ + return task; + } + })); + }); + + grunt.registerTask('default', [ + 'newer:jshint', + 'newer:jscs', + 'test', + 'build', + 'build-ci' + ]); +}; diff --git a/d2ice.att.io/README.md b/d2ice.att.io/README.md new file mode 100755 index 00000000..e45ff791 --- /dev/null +++ b/d2ice.att.io/README.md @@ -0,0 +1,75 @@ +# ice + +This project is generated with [yo angular generator](https://github.com/yeoman/generator-angular) +version 0.15.1. + +## Build & development + +Run `grunt` for building and `grunt serve` for preview. + +## Testing + +Running `grunt test` will run the unit tests with karma. + +KT: +- We created the base project with yeoman generator running +- When a new library is added to the project we need to perform 'bower install' and 'npm install' +- package.json is the generated file by NPM after performing 'npm install <3'rdParty> --save' the output is inserted to the node_modules +- bower.json is enhanced after performing 'bower install <3'rd party> --save' + The output directory is: bower_components +- 'grunt build' the dist directoy. Gruntfile.js hold all the grunt targets (e.g build, serve) + - build: mostly building the dist directory + - serve: this is used only for dev mode (for example building the app.env.js with settings to dev mode) + grunt --stack will show in verbose mode + +app directory: +- index.html is the automatically called when site is accessed +- section is identified by bower to add the css from 3'rd party + +- body: declaring the main controller 'App Controller' + +- app.module.js: declaring the main module: 'ice' it holds all other modules: infrastructure models such ngSanitize and applicative modules such as ice.vf.service + +- app.controller.js: The main controller +- app.config: All sort of angular configuration such as interceptors (for error handling) +- app.constants enums +- app.run: this could have written in the controller but it runs after the app.controller. + runBlock: gloabals on the rootScopes + Event that is fired when the state is changed (state = url), we clean the alert object +- cache service holds all urls of all services. '@' sign is replaced in each service with the uuid (e.g eng_uuid) +- app.route: this is the router: when it get the url in the browser it need to combine MVC combination. Otherwise is when he's not familiar with any pattern --> go to login +The page section. the router is touting by state.go(stateName) or ui-sref(state) +-activation directory hold all logic related to the user + +Each page (login, signup, dashboard etc) is composed from 4files: +- XXX.module. state name (e.g app.login) is the identifier of the router +- url is the client side address of the page +- views: there is a seperation between the page section. each view has its controller, it's view (html) and the model (data from server) + +XXX.controller: +- starts with init(). Each page has it +- the header (app/core/layout/full-page-with-header) holds the headerTiltle and headerDescription set in the controller +- ice.loadre is the progree bar when requesting something from the EM + +Each function or variable we want to reflect from the controller to the html (or vise versa) should start with 'vm' (e.g vm.submitForm() this will call the function submitForm) + +XXX.html +- directive (piece of code that performs something). has a jquery selector to find the class of the div and show the loader +- ice-messages show the message with type if alert.message==true +- the page is divided to cols. bootstrap allows 12 colls + +XXX.less - turns into css after grant build +holds all classes under body-class (this is defined in the XXX.module) +There are also bootstrap inline css e.g class=form-group + +Filters - you can define in the html "|" that takes a variable and format it (e.g trusted that manipulate it as a valid html) + +Core: +toolbar - upper bar (log, dashboard caption, logout) +controller fetch the number of notifications +left side of dashboard - Engagement list. The data is publisehd to the right side by broadcast event. dashboard listens to the event (.$on(eventName, args)) + + + + + diff --git a/d2ice.att.io/app/.watch.me b/d2ice.att.io/app/.watch.me new file mode 100755 index 00000000..e69de29b diff --git a/d2ice.att.io/app/app.config.js b/d2ice.att.io/app/app.config.js new file mode 100755 index 00000000..e4c74ba6 --- /dev/null +++ b/d2ice.att.io/app/app.config.js @@ -0,0 +1,60 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice') + .config(config) + .config(function (ngIntlTelInputProvider) { + ngIntlTelInputProvider.set({initialCountry: 'us'}); + }); + + function config($httpProvider) { + // Ask for cross domain from the sever (need to allow this in server). + $httpProvider.defaults.useXDomain = true; + delete $httpProvider.defaults.headers.common['X-Requested-With']; + + // HTTP Interceptor definition + $httpProvider.interceptors.push('httpRequestInterceptor'); + $httpProvider.interceptors.push('httpResponseInterceptor'); + $httpProvider.interceptors.push('httpRequestErrorInterceptor'); + $httpProvider.interceptors.push('httpResponseErrorInterceptor'); + } +})(); diff --git a/d2ice.att.io/app/app.constants.js b/d2ice.att.io/app/app.constants.js new file mode 100755 index 00000000..60b1ec33 --- /dev/null +++ b/d2ice.att.io/app/app.constants.js @@ -0,0 +1,75 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice') + .constant("_", window._) + .constant("iceConstants", { + + states: { + "incomplete": "Incomplete", + "completed": "Completed", + }, + + stages: { + "intake": "Intake", + "active": "Active", + "validated": "Validated", + "completed": "Completed" + }, + + roles: { + "standard": "standard_user", + "el": "el", + "admin": "admin", + "admin_ro": "admin_ro" + }, + + checklist_states : [ + "automation", + "review", + "peer review", + "approval", + "handoff", + "closed" + ] + }); +})(); diff --git a/d2ice.att.io/app/app.controller.js b/d2ice.att.io/app/app.controller.js new file mode 100755 index 00000000..5bf25670 --- /dev/null +++ b/d2ice.att.io/app/app.controller.js @@ -0,0 +1,74 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice') + .controller('AppController', ["$state", "$timeout", "$rootScope", "$log", AppController]); + + function AppController($state, $timeout, $rootScope, $log) { + + var vm = this; + var nice = false; + + if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { + $log.debug('Smooth Scroll Off (Safari).'); + } else { + try { + // Initialise with options + nice = $("#content-israel").niceScroll({ + zindex:20000, + scrollspeed:60, + mousescrollstep:60, + cursorborderradius: '10px', // Scroll cursor radius + cursorborder: '1px solid rgba(255, 255, 255, 0.4)', + cursorcolor: 'rgba(0, 0, 0, 0.6)', // Scroll cursor color + //autohidemode: 'true', // Do not hide scrollbar when mouse out + cursorwidth: '10px' // Scroll cursor width + }); + } catch (err) { + $log.debug('Smooth Scroll Off.'); + } + } + + } + +})(); diff --git a/d2ice.att.io/app/app.module.js b/d2ice.att.io/app/app.module.js new file mode 100755 index 00000000..ca70547b --- /dev/null +++ b/d2ice.att.io/app/app.module.js @@ -0,0 +1,110 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice', [ + // Core + 'ngSanitize', + 'ngAnimate', + 'wysiwyg.module', + 'ui.router', + 'ice.env', + 'ice.modals', + 'angularUtils.directives.dirPagination', + 'ui.select', + 'ui.multiselect', + 'ui.bootstrap', + 'ui.bootstrap.datetimepicker', + 'ngMaterial', 'ngMessages', + 'angular-toArrayFilter', + 'ngIntlTelInput', + 'ui.sortable', + 'jm.i18next', + + // Modules + 'ice.toolbar', + 'ice.navigation', + 'ice.main', + 'ice.contactUs', + 'ice.dashboard.main', + 'ice.dashboard.overview', + 'ice.dashboard.dashboard', + 'ice.activation.login', + 'ice.activation.register', + 'ice.activation.addVf', + 'ice.activation.addVendorContact', + 'ice.activation.resendActivation', + 'ice.activation.terms', + 'ice.activation.activateUser', + 'ice.dashboard.account', + 'ice.documentation', + 'ice.activation.resetPassword', + 'ice.activation.updatePassword', + 'ice.dashboard.checklist', + 'ice.welcome', + 'ice.main.admin', + + // Services + 'ice.services.cacheService', + 'ice.services.users', + 'ice.services.localStorage', + 'ice.services.vf', + 'ice.services.steps', + 'ice.services.vfc', + 'ice.services.dtsite', + 'ice.services.checklist', + 'ice.services.status', + 'ice.services.feedback', + 'ice.services.toast', + 'ice.services.cms', + 'ice.services.sessionStorage', + + // Directives + 'ice.directives', + + // Filters + 'ice.filters', + + // Interceptors + 'ice.interceptors.http' + ]); +})(); diff --git a/d2ice.att.io/app/app.route.js b/d2ice.att.io/app/app.route.js new file mode 100755 index 00000000..34b79496 --- /dev/null +++ b/d2ice.att.io/app/app.route.js @@ -0,0 +1,97 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice') + .config(routeConfig); + + function routeConfig($stateProvider, $urlRouterProvider, $locationProvider) { + + // #175 stop ui-route from redirect to #! + $locationProvider.hashPrefix(""); + + $urlRouterProvider.otherwise('/login'); + $urlRouterProvider.when('/dashboard', '/dashbaord/overview'); + + var layoutStyle = 'horizontalNavigation'; + + var layouts = { + horizontalNavigation: { + main: 'core/layouts/dashboard/dashboard.html', + toolbar: 'core/toolbar/layouts/horizontal-navigation/toolbar.html', + navigation: 'core/navigation/layouts/horizontal-navigation/navigation.html' + }, + contentOnly: { + main: 'core/layouts/content-only.html', + toolbar: '', + navigation: '' + }, + contentWithToolbar: { + main: 'core/layouts/content-with-toolbar.html', + toolbar: 'toolbar/layouts/content-with-toolbar/toolbar.html', + navigation: '' + } + }; + + // State definitions + $stateProvider + .state('app', { + abstract: true, + views: { + 'main@': { + templateUrl: layouts[layoutStyle].main, + controller: 'MainController as vm' + }, + 'toolbar@app': { + templateUrl: layouts[layoutStyle].toolbar, + controller: 'ToolbarController as vm' + }, + 'navigation@app': { + templateUrl: layouts[layoutStyle].navigation, + controller: 'NavigationController as vm' + } + } + }); + + } + +})(); diff --git a/d2ice.att.io/app/app.run.js b/d2ice.att.io/app/app.run.js new file mode 100755 index 00000000..b1a4871f --- /dev/null +++ b/d2ice.att.io/app/app.run.js @@ -0,0 +1,244 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice') + .run(runBlock); + + function runBlock($rootScope, toastService, sessionStorageService, $state, cacheService, ENV, $window, $log) { + var documentationLastPageSessionKey = 'LastDocumentationPageId'; + var init = function() { + $rootScope.user = {}; + $rootScope.ice = {}; + $rootScope.ice.loader = {}; + $rootScope.state = $state; + $rootScope.baseURL = ENV.apiBase; + + i18NextSetup(); + + var stateChangeStartEvent = $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { + clearToastData(); + clearDocumentationLastPage(toState); + }); + + var stateChangeSuccessEvent = $rootScope.$on('$stateChangeSuccess', function () { + + }); + + $rootScope.$on('$destroy', function () { + stateChangeStartEvent(); + stateChangeSuccessEvent(); + }); + + cacheService.set('configuration', { + "urls": { + "auth": { + "login": $rootScope.baseURL + "login/@t", + "register": $rootScope.baseURL + "signup", + "addVfs": $rootScope.baseURL + "vf/", + "getCompanies": $rootScope.baseURL + "vendors", + "resendActivationMail": $rootScope.baseURL + "users/activation-mail/@user_uuid", + "addVendorContact": $rootScope.baseURL + "add-contact", + "single_engagement": $rootScope.baseURL + "single-engagement/@engagementUuid", + "engagements": $rootScope.baseURL + "engagement", + "inviteMembers": $rootScope.baseURL + "invite-team-members", + "activities": $rootScope.baseURL + "engagement/@engagementUuid/activities/", + "updateDaysLeft": $rootScope.baseURL + "engagements/@engagementUuid/target_date", //set_attr + "updateLabEntryDaysLeft": $rootScope.baseURL + "engagements/@engagementUuid/target_lab_date", + "setSSHKey": $rootScope.baseURL + "users/ssh", + "getIceUser": $rootScope.baseURL + "users", + "getRGWASecret": $rootScope.baseURL + "users/account/rgwa/", + "account": $rootScope.baseURL + "users/account", + "updatePassword": $rootScope.baseURL + "users/pwd/", + "sendResetPwdInstructions": $rootScope.baseURL + "users/pwd/reset-instructions/" + }, + "notifications": { + "getNotifications": $rootScope.baseURL + "notifications/num", + "resetNotificationNum": $rootScope.baseURL + "notifications/reset", + "notificationsDelete": $rootScope.baseURL + "notifications/@uuid", + "getNotificationsDescription": $rootScope.baseURL + "notifications/@userUuid/@offset/@limit" + }, + "steps": { + "get": $rootScope.baseURL + "engagements/@engagement/nextsteps/@progress", + "add": $rootScope.baseURL + "engagements/@engagement/nextsteps", // set_attr + "edit": $rootScope.baseURL + "nextsteps/@stepUuid/engagement/@engUuid", + "order_next_steps": $rootScope.baseURL + "engagements/@engUuid/nextsteps/order_next_steps", + + "update": $rootScope.baseURL + "nextsteps/@stepUuid/state", // put + "delete": $rootScope.baseURL + "nextsteps/@stepUuid", + "createChecklistNextStep": $rootScope.baseURL + "engagement/@engUuid/checklist/@checkListUuid/nextstep/", + "createNextStep": $rootScope.baseURL + "eng/@engUuid/nextstep/", + "getByUser": $rootScope.baseURL + "engagements/user/nextsteps/" + }, + "vf": { + "updateVfs": { + "put": $rootScope.baseURL + "vf/@vf_uuid/validation-details/", + }, + "deployment_target": { + "getDeployTargets": $rootScope.baseURL + "deployment-targets", + "updateDeployTargets": $rootScope.baseURL + "engagement/@engagementUuid//deployment-targets/@deployment_target_uuid", + }, + "ecomp": { + "getECOMPReleases": $rootScope.baseURL + "ecomp-releases", + "updateECOMPReleases": $rootScope.baseURL + "engagement/@engagementUuid/ecomp-releases/@ecomp_uuid", + }, + "version": { + "getVFVersion": $rootScope.baseURL + "vf/@vfUuid/vf-version/", + } + + }, + "vfcs": { + "add": $rootScope.baseURL + "vfcs/", + "get": $rootScope.baseURL + "vf/@vfUuid/vfcs/", + "delete": $rootScope.baseURL + "vf/@vfUuid/vfcs/@vfcUuid", + }, + "status": { + "get": $rootScope.baseURL + "engagements/@engagement/status", + "add": $rootScope.baseURL + "engagements/@engagement/status",// set_attr + "update": $rootScope.baseURL + "engagements/@engagement/status" + }, + "feedback": { + "add":$rootScope.baseURL + "add-feedback" + + }, + "dtsite": { + "get": $rootScope.baseURL + "dtsites/", + "getVFSites": $rootScope.baseURL + "vf/@vfUuid/dtsites/", + "add": $rootScope.baseURL + "dtsites/", + "delete": $rootScope.baseURL + "vf/@vfUuid/dtsites/@dtsUuid", + }, + "checklist": { + "state":{ + "put": $rootScope.baseURL + "checklist/@cl_uuid/state/", + }, + "createChecklist": $rootScope.baseURL + "engagement/@engUuid/checklist/new/", + "getDataForChecklist": $rootScope.baseURL + "engagement/@engUuid/checklist/new/", + "getChecklist": $rootScope.baseURL + "checklist/@checklistUuid", + "putDataForChecklist": $rootScope.baseURL + "checklist/@checklist_uuid", + "checklistDecision": $rootScope.baseURL + "checklist/decision/@decisionUuid", + "createAuditlogChecklist": $rootScope.baseURL + "checklist/@checklist_uuid/auditlog/", + "createAuditlogDecisionChecklist": $rootScope.baseURL + "checklist/decision/@decision_uuid/auditlog/", + "getChecklistTemplates": $rootScope.baseURL + "checklist/templates/", + "getChecklistTemplate": $rootScope.baseURL + "checklist/template/@templateUuid", + "saveChecklistTemplate": $rootScope.baseURL + "checklist/template/" + }, + "engagement": { + "put": $rootScope.baseURL + "engagements/@engagementUuid/", + "updateProgress": $rootScope.baseURL + "engagements/@engagementUuid/progress", // put + "setStage": $rootScope.baseURL + "single-engagement/@engagementUuid/stage/@stage", + "starred_engagement": { + "put" : $rootScope.baseURL + "engagements/starred_eng/", + "get" : $rootScope.baseURL + "engagements/starred_eng/", + }, + "recent_engagement": { + "get" : $rootScope.baseURL + "engagements/recent_eng/", + }, + "engagement_team": { + "put" : $rootScope.baseURL + "engagements/engagement-team/", + }, + "engagementsExpanded": $rootScope.baseURL + "engagement/expanded/", + "exportEngagementsCSV": $rootScope.baseURL + "engagement/export/?stage=@stage&keyword=@keyword", + "reviewer": {"put": $rootScope.baseURL + "engagements/@engagementUuid/reviewer/"}, + "peerreviewer": {"put": $rootScope.baseURL + "engagements/@engagementUuid/peerreviewer/"}, + "switchReviewers": {"put": $rootScope.baseURL + "engagements/@engagementUuid/switch-reviewers/"}, + "archive": {"put": $rootScope.baseURL + "engagements/@engagementUuid/archive/"}, + }, + "welcome": { + "welcome": $rootScope.baseURL + "welcome/", + }, + "cms":{ + "posts": { + "get": $rootScope.baseURL + "cms/posts/?limit=@limit&offset=@offset&fromLastDays=@fromLastDays&category=@category", + }, + "pages": { + "get": $rootScope.baseURL + "cms/pages/?title=@title", + "getById": $rootScope.baseURL + "cms/pages/@id/", + "search": $rootScope.baseURL + "cms/pages/search/?keyword=@keyword" + } + }, + "users": { + "engagementleads": { + "get": $rootScope.baseURL + "users/engagementleads/", + }, + "activate": $rootScope.baseURL + "users/activate/@userid/@token" + }, + } + }); + }; + + var clearToastData = function () { + var toast = toastService.getToast(); + if (toast && !toast.sticky) { + toastService.clearToast(); + } + }; + + var clearDocumentationLastPage = function(toState) { + if(toState && toState.name && toState.name !== 'app.documentation.page' && toState.name !== 'app.documentation') { + sessionStorageService.delete(documentationLastPageSessionKey); + } + }; + + var i18NextSetup = function() { + if($window.i18next) { + $window.i18next.use($window.i18nextXHRBackend) + + $window.i18next.init({ + debug: false, + lng: 'en', + fallbackLng: 'en', + backend: { + loadPath: 'locales/{{lng}}/{{ns}}.json' + }, + useCookie: false, + useLocalStorage: false + }, function (err, t) { + if(err) { + $log.error(err); + } + }); + } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/MIT.LICENSE b/d2ice.att.io/app/core/js/jquery.nicescroll-master/MIT.LICENSE new file mode 100755 index 00000000..011a2a97 --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/MIT.LICENSE @@ -0,0 +1,17 @@ +Open Source Initiative OSI - The MIT License (MIT):Licensing +[OSI Approved License] +The MIT License (MIT) + +Copyright (c) 2011-14 InuYaksa + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, +and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/README.md b/d2ice.att.io/app/core/js/jquery.nicescroll-master/README.md new file mode 100755 index 00000000..9a670133 --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/README.md @@ -0,0 +1,182 @@ +#jQuery.NiceScroll +v. 3.6.8 02-29-2016 + + - [Web Site: nicescroll.areaaperta.com](http://nicescroll.areaaperta.com) + - [Repo: github.com/inuyaksa/jquery.nicescroll](https://github.com/inuyaksa/jquery.nicescroll) + - [Twitter: @nicescroll](https://twitter.com/nicescroll) + + [![Join the chat at https://gitter.im/inuyaksa/jquery.nicescroll](https://badges.gitter.im/inuyaksa/jquery.nicescroll.svg)](https://gitter.im/inuyaksa/jquery.nicescroll?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +> Nicescroll as a Greasemonkey plugin: http://userscripts.org/scripts/show/119910 (freezed) + + +> Nicescroll is a jquery plugin, for nice scrollbars with a very similar ios/mobile style. + + - HORIZONAL scrollbar support! + - It supports DIVs, IFrames, textarea, and document page (body) scrollbars. + - Compatible with all desktop browser: Firefox 4+, Chrome 5+, Safari 4+ (win/mac), Opera 10+, IE 6+. (all A-grade browsers) + - Compatible with mobile device: iPad/iPhone/iPod, Android 2.2+, Blackberry phones and Playbook (WebWorks/Table OS), Windows Phone 7.5 Mango. + - Compatible with all touch devices: iPad, Android tablets, Window Surface. + - Compabible with multi-input device (mouse with touch or pen): Window Surface, Chrome Desktop on touch notebook. + - Compatible with 2 directions mice: Apple Magic Mouse, Apple Mouser with 2-dir wheel, PC mouse with 2-dir wheel (if browser support it). + +So you have scrollable divs with momentum for iPad 4+ and you have consistent scrollable areas for all desktop and mobile platforms. + +Sexy zoom feature, you can "zoom-in" the content of any nicescroll'ed div. +Nice to use and nice to see, all the content of the div in fullscreen mode. +It works on desktop (double click on div) either in mobile/touch devices using pinch gesture. + +On modern browsers hardware accelerated scrolling has implemented. +Using animationFrame for a smoothest and cpu-saving scrolling. (when browser supports) + +"Use strict" tested script for maximum code quality. +Bower and AMD ready. + +Warning for IE6 users (why do you uses IE6 yet? Please updgrade to a more stable and modern browser), some feature can't work for limitation of the browser. +Document (body) scrollbars can't appears, old (native browser) one is used. Some issues with IFrame scrolling. + + +## FEATURES + +- simple installation and activation, it works with NO modification of your code. (some exceptions can happen, so you can write to me) +- very stylish scrollbars, with no occupation on your window (original browser scrollbars need some of page space and reduces window/div usable width) +- you can style main document scrollbar (body) too!! (not all script implements this feature) +- on all browsers you can scroll: dragging the cursor, mouse wheel (speed customizable), keyboard navigation (cursor keys, pagup/down keys, home/end keys) +- scroll is smooth (as modern tablet browsing), speed is customizable +- zoom feature +- hardware accelerated scroll (where available) +- animation frame support for smoth scrolling and cpu-saving +- dragging scroll mode with scrolling momentum (as touch device) +- tested for all major browsers desktop and mobile versions +- support for touch devices +- support for multi-input devices (IE10 with MSPointer) +- compatible with many other browsers, including IE6, Safari on Mac and WP7 Mango! +- very customizable aspect of bar +- native scroll events are working yet +- fully integrated with jQuery +- compatibile with jQuery UI, jQuery Touch, jQuery Mobile + + +## DEPENDENCIES +>> It's a plugin for the jquery framework, you need to include jquery in your scripts. +>> From 1.5.x version and on. (I'd better to use 1.8.3+ minimum) + + +* INSTALLATION +Put loading script tag after jquery script tag and loading the zoom image in the same folder of the script: + + + +Copy image "zoomico.png" in the same folder of jquery.nicescroll.js. + + +* HOW TO USE + +Initialize nicescroll ALWAYS in (document) ready statement. +```javascript +// 1. Simple mode, it styles document scrollbar: +$(document).ready(function() { + $("html").niceScroll(); +}); + +// 2. Instance with object returned: +var nice = false; +$(document).ready(function() { + nice = $("html").niceScroll(); +}); + +// 3. Style a DIV and chage cursor color: +$(document).ready(function() { + $("#thisdiv").niceScroll({cursorcolor:"#00F"}); +}); + +// 4. DIV with "wrapper", formed by two divs, the first is the vieport, the latter is the content: +$(document).ready(function() { + $("#viewportdiv").niceScroll("#wrapperdiv",{cursorcolor:"#00F"}); +}); + +// 5. Get nicescroll object: +var nice = $("#mydiv").getNiceScroll(); + +// 6. Hide scrollbars: +$("#mydiv").getNiceScroll().hide(); + +// 7. Check for scrollbars resize (when content or position have changed): +$("#mydiv").getNiceScroll().resize(); + +// 8. Scrolling to a position: +$("#mydiv").getNiceScroll(0).doScrollLeft(x, duration); // Scroll X Axis +$("#mydiv").getNiceScroll(0).doScrollTop(y, duration); // Scroll Y Axis +``` + +## CONFIGURATION PARAMETERS +When you call "niceScroll" you can pass some parameters to custom visual aspects: + +```javascript +$("#thisdiv").niceScroll({ + cursorcolor: "#424242", // change cursor color in hex + cursoropacitymin: 0, // change opacity when cursor is inactive (scrollabar "hidden" state), range from 1 to 0 + cursoropacitymax: 1, // change opacity when cursor is active (scrollabar "visible" state), range from 1 to 0 + cursorwidth: "5px", // cursor width in pixel (you can also write "5px") + cursorborder: "1px solid #fff", // css definition for cursor border + cursorborderradius: "5px", // border radius in pixel for cursor + zindex: "auto" | , // change z-index for scrollbar div + scrollspeed: 60, // scrolling speed + mousescrollstep: 40, // scrolling speed with mouse wheel (pixel) + touchbehavior: false, // enable cursor-drag scrolling like touch devices in desktop computer + hwacceleration: true, // use hardware accelerated scroll when supported + boxzoom: false, // enable zoom for box content + dblclickzoom: true, // (only when boxzoom=true) zoom activated when double click on box + gesturezoom: true, // (only when boxzoom=true and with touch devices) zoom activated when pinch out/in on box + grabcursorenabled: true // (only when touchbehavior=true) display "grab" icon + autohidemode: true, // how hide the scrollbar works, possible values: + true | // hide when no scrolling + "cursor" | // only cursor hidden + false | // do not hide, + "leave" | // hide only if pointer leaves content + "hidden" | // hide always + "scroll", // show only on scroll + background: "", // change css for rail background + iframeautoresize: true, // autoresize iframe on load event + cursorminheight: 32, // set the minimum cursor height (pixel) + preservenativescrolling: true, // you can scroll native scrollable areas with mouse, bubbling mouse wheel event + railoffset: false, // you can add offset top/left for rail position + bouncescroll: false, // (only hw accell) enable scroll bouncing at the end of content as mobile-like + spacebarenabled: true, // enable page down scrolling when space bar has pressed + railpadding: { top: 0, right: 0, left: 0, bottom: 0 }, // set padding for rail bar + disableoutline: true, // for chrome browser, disable outline (orange highlight) when selecting a div with nicescroll + horizrailenabled: true, // nicescroll can manage horizontal scroll + railalign: right, // alignment of vertical rail + railvalign: bottom, // alignment of horizontal rail + enabletranslate3d: true, // nicescroll can use css translate to scroll content + enablemousewheel: true, // nicescroll can manage mouse wheel events + enablekeyboard: true, // nicescroll can manage keyboard events + smoothscroll: true, // scroll with ease movement + sensitiverail: true, // click on rail make a scroll + enablemouselockapi: true, // can use mouse caption lock API (same issue on object dragging) + cursorfixedheight: false, // set fixed height for cursor in pixel + hidecursordelay: 400, // set the delay in microseconds to fading out scrollbars + directionlockdeadzone: 6, // dead zone in pixels for direction lock activation + nativeparentscrolling: true, // detect bottom of content and let parent to scroll, as native scroll does + enablescrollonselection: true, // enable auto-scrolling of content when selection text + cursordragspeed: 0.3, // speed of selection when dragged with cursor + rtlmode: "auto", // horizontal div scrolling starts at left side + cursordragontouch: false, // drag cursor in touch / touchbehavior mode also + oneaxismousemode: "auto", // it permits horizontal scrolling with mousewheel on horizontal only content, if false (vertical-only) mousewheel don't scroll horizontally, if value is auto detects two-axis mouse + scriptpath: "" // define custom path for boxmode icons ("" => same script path) + preventmultitouchscrolling: true // prevent scrolling on multitouch events + disablemutationobserver: false // force MutationObserver disabled +}); +``` + +Related projects +---------------- + +* [Nicescroll for Angular](https://github.com/tushariscoolster/angular-nicescroll) + +* LICENSE + +## Copyright 2011-16 InuYaksa + +######Licensed under the MIT License, http://www.opensource.org/licenses/mit-license.php +######Images used for zoom icons have derived from OLPC interface, http://laptop.org/8.2.0/manual/Browse_ChangingView.html diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/bower.json b/d2ice.att.io/app/core/js/jquery.nicescroll-master/bower.json new file mode 100755 index 00000000..11e7c7aa --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/bower.json @@ -0,0 +1,15 @@ +{ + "name": "jquery.nicescroll", + "main": [ + "./jquery.nicescroll.js", + "./zoomico.png" + ], + "ignore": [ + "**/.*", + "demo", + "package.json" + ], + "dependencies": { + "jquery": ">=1.8.3" + } +} diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/changelog_3.6.8.txt b/d2ice.att.io/app/core/js/jquery.nicescroll-master/changelog_3.6.8.txt new file mode 100755 index 00000000..6e94ca47 --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/changelog_3.6.8.txt @@ -0,0 +1,31 @@ +Changelog nicescroll release 3.6.8 +http://nicescroll.areaaperta.com/ +https://github.com/inuyaksa/jquery.nicescroll + + +Changed features + +New options +- disablemutationobserver, = TRUE when you want that MutationObserver disabled #580 + +Fixes +- Fix show of null #583 +- Refactoring js #582 +- Removed comments #577 +- Timeouts & using on dynamic DOM Elements: "Uncaught TypeError" #579 +- version 3.6.6 stack overflow #578 +- MutationObserver. IE11 crashes #568 +- Xbox One IE Edge browser can't scroll anywhere #581 (to test on real hw!) +- NIce Scroll doesnt work on Window Surface IE Edge #555 + + +Thanks to great contributors!! +@silversonicaxel +@vsn4ik +@ronar +@StephanBijzitter + + + +TODO +- deprecate legacy browsers \ No newline at end of file diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/dist/jquery.nicescroll.min.js b/d2ice.att.io/app/core/js/jquery.nicescroll-master/dist/jquery.nicescroll.min.js new file mode 100755 index 00000000..2013b3cc --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/dist/jquery.nicescroll.min.js @@ -0,0 +1,158 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/* jquery.nicescroll 3.6.8 InuYaksa*2015 MIT http://nicescroll.areaaperta.com */(function(f){"function"===typeof define&&define.amd?define(["jquery"],f):"object"===typeof exports?module.exports=f(require("jquery")):f(jQuery)})(function(f){var B=!1,F=!1,O=0,P=2E3,A=0,J=["webkit","ms","moz","o"],v=window.requestAnimationFrame||!1,w=window.cancelAnimationFrame||!1;if(!v)for(var Q in J){var G=J[Q];if(v=window[G+"RequestAnimationFrame"]){w=window[G+"CancelAnimationFrame"]||window[G+"CancelRequestAnimationFrame"];break}}var x=window.MutationObserver||window.WebKitMutationObserver|| +!1,K={zindex:"auto",cursoropacitymin:0,cursoropacitymax:1,cursorcolor:"#424242",cursorwidth:"6px",cursorborder:"1px solid #fff",cursorborderradius:"5px",scrollspeed:60,mousescrollstep:24,touchbehavior:!1,hwacceleration:!0,usetransition:!0,boxzoom:!1,dblclickzoom:!0,gesturezoom:!0,grabcursorenabled:!0,autohidemode:!0,background:"",iframeautoresize:!0,cursorminheight:32,preservenativescrolling:!0,railoffset:!1,railhoffset:!1,bouncescroll:!0,spacebarenabled:!0,railpadding:{top:0,right:0,left:0,bottom:0}, +disableoutline:!0,horizrailenabled:!0,railalign:"right",railvalign:"bottom",enabletranslate3d:!0,enablemousewheel:!0,enablekeyboard:!0,smoothscroll:!0,sensitiverail:!0,enablemouselockapi:!0,cursorfixedheight:!1,directionlockdeadzone:6,hidecursordelay:400,nativeparentscrolling:!0,enablescrollonselection:!0,overflowx:!0,overflowy:!0,cursordragspeed:.3,rtlmode:"auto",cursordragontouch:!1,oneaxismousemode:"auto",scriptpath:function(){var f=document.getElementsByTagName("script"),f=f.length?f[f.length- +1].src.split("?")[0]:"";return 0d?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);d&&(a.scrollmom&&a.scrollmom.stop(),a.lastdeltax+=d,a.debounced("mousewheelx",function(){var b=a.lastdeltax;a.lastdeltax=0;a.rail.drag||a.doScrollLeftBy(b)},15));if(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e; +a.synched("mousewheely",function(){var b=a.lastdeltay;a.lastdeltay=0;a.rail.drag||a.doScrollBy(b)},15)}b.stopImmediatePropagation();return b.preventDefault()}var a=this;this.version="3.6.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);this.iddoc=(this.doc=a.opt.doc)&&this.doc[0]?this.doc[0].id||"":"";this.ispage=/^BODY|HTML/.test(a.opt.win? +a.opt.win[0].nodeName:this.doc[0].nodeName);this.haswrapper=!1!==a.opt.win;this.win=a.opt.win||(this.ispage?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("body");this.iframe=this.isfixed=this.viewport=!1;this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName;this.istextarea="TEXTAREA"==this.win[0].nodeName;this.forcescreen=!1;this.canshowonmouseevent="scroll"!=a.opt.autohidemode;this.page=this.view=this.onzoomout=this.onzoomin= +this.onscrollcancel=this.onscrollend=this.onscrollstart=this.onclick=this.ongesturezoom=this.onkeypress=this.onmousewheel=this.onmousemove=this.onmouseup=this.onmousedown=!1;this.scroll={x:0,y:0};this.scrollratio={x:0,y:0};this.cursorheight=20;this.scrollvaluemax=0;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode= +"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;this.observerbody=this.observerremover=this.observer=this.scrollmom=this.scrollrunning=!1;do this.id="ascrail"+P++;while(document.getElementById(this.id));this.hasmousefocus=this.hasfocus=this.zoomactive=this.zoom=this.selectiondrag=this.cursorfreezed=this.cursor=this.rail= +!1;this.visibility=!0;this.hidden=this.locked=this.railslocked=!1;this.cursoractive=!0;this.wheelprevented=!1;this.overflowx=a.opt.overflowx;this.overflowy=a.opt.overflowy;this.nativescrollingarea=!1;this.checkarea=0;this.events=[];this.saved={};this.delaylist={};this.synclist={};this.lastdeltay=this.lastdeltax=0;this.detected=R();var e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical? +!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched= +function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!0)})();return b};this.unsynched=function(b){a.synclist[b]&&(a.synclist[b]=!1)};this.css=function(b,g){for(var c in g)a.saved.css.push([b,c,b.css(c)]),b.css(c,g[c])};this.scrollTop=function(b){return void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g, +c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.prototype={B2:function(a){return 3*a*a*(1-a)},B3:function(a){return 3*a*(1-a)*(1-a)},B4:function(a){return(1-a)*(1-a)*(1-a)},getNow:function(){var a=1-((new Date).getTime()-this.ts)/this.spd,g=this.B2(a)+this.B3(a)+this.B4(a);return 0>a?this.ed:this.st+Math.round(this.df*g)},update:function(a,g){this.st=this.getNow();this.ed=a;this.spd=g;this.ts=(new Date).getTime(); +this.df=this.ed-this.st;return this}};if(this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())return 16==b.length?-b[13]:-b[5];if(a.timerscroll&&a.timerscroll.bz)return a.timerscroll.bz.getNow()}return a.doc.translate.y};this.getScrollLeft=function(b){if(!b){if(b=k())return 16==b.length?-b[12]:-b[4];if(a.timerscroll&&a.timerscroll.bh)return a.timerscroll.bh.getNow()}return a.doc.translate.x}; +this.notifyScrollEvent=function(a){var g=document.createEvent("UIEvents");g.initUIEvent("scroll",!1,!0,window,1);g.niceevent=!0;a.dispatchEvent(g)};var y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle, +"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])}):(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])})}else this.getScrollTop= +function(){return a.docscroll.scrollTop()},this.setScrollTop=function(b){return setTimeout(function(){a&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(b)},1)};this.getTarget= +function(a){return a?a.target?a.target:a.srcElement?a.srcElement:!1:!1};this.hasParent=function(a,g){if(!a)return!1;for(var c=a.target||a.srcElement||a||!1;c&&c.id!=g;)c=c.parentNode||!1;return!1!==c};var z={thin:1,medium:3,thick:5};this.getDocumentScrollOffset=function(){return{top:window.pageYOffset||document.documentElement.scrollTop,left:window.pageXOffset||document.documentElement.scrollLeft}};this.getOffset=function(){if(a.isfixed){var b=a.win.offset(),g=a.getDocumentScrollOffset();b.top-=g.top; +b.left-=g.left;return b}b=a.win.offset();if(!a.viewport)return b;g=a.viewport.offset();return{top:b.top-g.top,left:b.left-g.left}};this.updateScrollBar=function(b){var g,c,e;if(a.ishwscroll)a.rail.css({height:a.win.innerHeight()-(a.opt.railpadding.top+a.opt.railpadding.bottom)}),a.railh&&a.railh.css({width:a.win.innerWidth()-(a.opt.railpadding.left+a.opt.railpadding.right)});else{var f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0); +c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width", +!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=c?(b.pageX-a.railh.offset().left-a.cursorwidth/2)*a.scrollratio.x:(b.pageY-a.rail.offset().top-a.cursorheight/2)*a.scrollratio.y,g(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=c?a.scroll.x:a.scroll.y, +b=c?b.pageX-a.railh.offset().left:b.pageY-a.rail.offset().top,c=c?a.view.w:a.view.h,g(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}: +{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios|| +a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"background-color":a.opt.cursorcolor,border:a.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius,"border-radius":a.opt.cursorborderradius});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors"); +a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag= +!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex:a.zindex,backgroundImage:"url("+a.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),a.opt.dblclickzoom&&a.bind(a.win,"dblclick",a.doZoom),e.cantouch&&a.opt.gesturezoom&& +(a.ongesturezoom=function(b){1.5b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius, +"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign? +0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)), +m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=a.isfixed?"fixed":"absolute",a.isfixed||(a.viewport=a.getViewport(a.win[0])),a.viewport&&(a.body=a.viewport,0==/fixed|absolute/.test(a.viewport.css("position"))&&a.css(a.viewport,{position:"relative"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(), +a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.iswebkit&&a.opt.disableoutline&&a.win.css("outline","none"));!1===a.opt.autohidemode?(a.autohidedom=!1,a.rail.css({opacity:a.opt.cursoropacitymax}),a.railh&&a.railh.css({opacity:a.opt.cursoropacitymax})):!0===a.opt.autohidemode||"leave"===a.opt.autohidemode? +(a.autohidedom=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().add(a.cursor),a.railh&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"hidden"==a.opt.autohidemode&&(a.autohidedom=!1,a.hide(),a.railslocked= +!1);if(e.isie9mobile)a.scrollmom=new M(a),a.onmangotouch=function(){var b=a.getScrollTop(),c=a.getScrollLeft();if(b==a.scrollmom.lastscrolly&&c==a.scrollmom.lastscrollx)return!0;var g=b-a.mangotouch.sy,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/ +2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove", +function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.ischrome&&a.istouchcapable&&(g=!1);if(g)return a.cancelEvent(b)}else if(1==a.rail.drag.pt)return a.onmousemove(b)}}a.onmousedown=function(b,c){if(!a.rail.drag||1==a.rail.drag.pt){if(a.railslocked)return a.cancelEvent(b);a.cancelScroll(); +a.rail.drag={x:b.clientX,y:b.clientY,sx:a.scroll.x,sy:a.scroll.y,pt:1,hr:!!c};var g=a.getTarget(b);!a.ispage&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.hasmousecapture&&(a.saved.csspointerevents=a.doc.css("pointer-events"),a.css(a.doc,{"pointer-events":"none"}));a.hasmoving=!1;return a.cancelEvent(b)}};a.onmouseup=function(b){if(a.rail.drag){if(1!=a.rail.drag.pt)return!0;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.hasmousecapture&&a.doc.css("pointer-events",a.saved.csspointerevents); +a.rail.drag=!1;a.hasmoving&&a.triggerScrollEnd();return a.cancelEvent(b)}};a.onmousemove=function(b){if(a.rail.drag){if(1==a.rail.drag.pt){if(e.ischrome&&0==b.which)return a.onmouseup(b);a.cursorfreezed=!0;a.hasmoving=!0;if(a.rail.drag.hr){a.scroll.x=a.rail.drag.sx+(b.clientX-a.rail.drag.x);0>a.scroll.x&&(a.scroll.x=0);var c=a.scrollvaluemaxw;a.scroll.x>c&&(a.scroll.x=c)}else a.scroll.y=a.rail.drag.sy+(b.clientY-a.rail.drag.y),0>a.scroll.y&&(a.scroll.y=0),c=a.scrollvaluemax,a.scroll.y>c&&(a.scroll.y= +c);a.synched("mousemove",function(){a.rail.drag&&1==a.rail.drag.pt&&(a.showCursor(),a.rail.drag.hr?a.hasreversehr?a.doScrollLeft(a.scrollvaluemaxw-Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollLeft(Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollTop(Math.round(a.scroll.y*a.scrollratio.y),a.opt.cursordragspeed))});return a.cancelEvent(b)}}else a.checkarea=0};if(e.cantouch||a.opt.touchbehavior)a.onpreventclick=function(b){if(a.preventclick)return a.preventclick.tg.onclick= +a.preventclick.click,a.preventclick=!1,a.cancelEvent(b)},a.bind(a.win,"mousedown",a.ontouchstart),a.onclick=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&& +(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0a.page.maxh?a.doScrollTop(a.page.maxh):(a.scroll.y=Math.round(a.getScrollTop()* +(1/a.scrollratio.y)),a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x)),a.cursoractive&&a.noticeCursor());a.scroll.y&&0==a.getScrollTop()&&a.doScrollTo(Math.floor(a.scroll.y*a.scrollratio.y));return a};this.resize=a.onResize;this.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel= +function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original: +a;a.cancelable&&a.preventDefault();a.stopPropagation();a.preventManipulation&&a.preventManipulation();return!1},this.stopPropagation=function(a){if(!a)return!1;a=a.original?a.original:a;a.stopPropagation();return!1},this._unbind=function(a,c,d,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,c,function(b){(b=b||window.event||!1)&&b.srcElement&&(b.target=b.srcElement);"pageY"in b||(b.pageX=b.clientX+document.documentElement.scrollLeft,b.pageY=b.clientY+ +document.documentElement.scrollTop);return!1===d.call(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.attachEvent?b.attachEvent("on"+c,d):b["on"+c]=d},this.cancelEvent=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;a.cancel=!0;return a.returnValue=!1},this.stopPropagation=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;return!1},this._unbind=function(a,c,d,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1}); +this.unbindAll=function(){for(var b=0;b(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();0==a.opt.bouncescroll&&(0>c?c=0:c>a.page.maxh&&(c=a.page.maxh),0>b?b=0:b>a.page.maxw&&(b=a.page.maxw));if(a.scrollrunning&&b==a.newscrollx&&c==a.newscrolly)return!1;a.newscrolly=c;a.newscrollx=b;a.newscrollspeed=d||!1;if(a.timer)return!1;a.timer=setTimeout(function(){var d=a.getScrollTop(),f=a.getScrollLeft(), +k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0b?b=0:b>a.page.maxh&&(b=a.page.maxh);0>c?c=0:c>a.page.maxw&&(c=a.page.maxw);if(b!=a.newscrolly||c!=a.newscrollx)return a.doScrollPos(c, +b,a.opt.snapbackspeed);a.onscrollend&&a.scrollrunning&&a.triggerScrollEnd();a.scrollrunning=!1}):(this.doScrollLeft=function(b,c){var d=a.scrollrunning?a.newscrolly:a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.scrollrunning?a.newscrollx:a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){function e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll? +a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&fa.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==a.newscrolly&&(b=1)}else b=1;d=c=a.getScrollLeft();if(a.dst.ax){d=a.bzscroll?a.dst.px+a.bzscroll.getNow()*a.dst.ax:a.newscrollx;c=d-c;if(0>c&&da.newscrollx)d=a.newscrollx;a.setScrollLeft(d);d==a.newscrollx&&(b+=1)}else b+=1;2==b?(a.timer=0,a.cursorfreezed=!1,a.bzscroll=!1,a.scrollrunning=!1,0>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)), +0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();a.newscrolly=c;a.newscrollx=b;a.bouncescroll&&a.rail.visibility||(0>a.newscrolly?a.newscrolly=0:a.newscrolly>a.page.maxh&& +(a.newscrolly=a.page.maxh));a.bouncescroll&&a.railh.visibility||(0>a.newscrollx?a.newscrollx=0:a.newscrollx>a.page.maxw&&(a.newscrollx=a.page.maxw));a.dst={};a.dst.x=b-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(a.timer);a.timer=0;a.bzscroll=!1;a.scrollrunning= +!1;return a}):(this.doScrollLeft=function(b,c){var d=a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){var e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},this.cancelScroll=function(){});this.doScrollBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.y-b)*a.scrollratio.y):(a.timer?a.newscrolly: +a.getScrollTop(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=a.page.maxh)return a.checkContentSize(),a.noticeCursor();a.doScrollTop(d)};this.doScrollLeftBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.x-b)*a.scrollratio.x):(a.timer?a.newscrollx:a.getScrollLeft(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+ +e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=a.page.maxw)return a.noticeCursor();a.doScrollLeft(d)};this.doScrollTo=function(b,c){a.cursorfreezed=!1;a.doScrollTop(b)};this.checkContentSize=function(){var b=a.getContentSize();b.h==a.page.h&&b.w==a.page.w||a.resize(!1,b)};a.onscroll=function(b){a.rail.drag||a.cursorfreezed||a.synched("scroll",function(){a.scroll.y=Math.round(a.getScrollTop()*(1/a.scrollratio.y));a.railh&&(a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x))); +a.noticeCursor()})};a.bind(a.docscroll,"scroll",a.onscroll);this.doZoomIn=function(b){if(!a.zoomactive){a.zoomactive=!0;a.zoomrestore={style:{}};var c="position top left zIndex backgroundColor marginTop marginBottom marginLeft marginRight".split(" "),d=a.win[0].style,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}a.zoomrestore.style.width=a.win.css("width");a.zoomrestore.style.height=a.win.css("height");a.zoomrestore.padding={w:a.win.outerWidth()-a.win.width(),h:a.win.outerHeight()- +a.win.height()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});c=a.win.css("backgroundColor");(""==c||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(c))&&a.win.css("backgroundColor","#fff");a.rail.css({zIndex:A+101});a.zoom.css({zIndex:A+102});a.zoom.css("backgroundPosition","0px -18px");a.resizeZoom();a.onzoomin&&a.onzoomin.call(a);return a.cancelEvent(b)}};this.doZoomOut= +function(b){if(a.zoomactive)return a.zoomactive=!1,a.win.css("margin",""),a.win.css(a.zoomrestore.style),e.isios4&&f(window).scrollTop(a.zoomrestore.scrollTop),a.rail.css({"z-index":a.zindex}),a.zoom.css({"z-index":a.zindex}),a.zoomrestore=!1,a.zoom.css("backgroundPosition","0px 0px"),a.onResize(),a.onzoomout&&a.onzoomout.call(a),a.cancelEvent(b)};this.doZoom=function(b){return a.zoomactive?a.doZoomOut(b):a.doZoomIn(b)};this.resizeZoom=function(){if(a.zoomactive){var b=a.getScrollTop();a.win.css({width:f(window).width()- +a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;this.steptime=this.lasttime=this.speedy=this.speedx=this.lasty=this.lastx=0;this.snapy=this.snapx=!1;this.demuly=this.demulx=0;this.lastscrolly=this.lastscrollx=-1;this.timer=this.chky=this.chkx=0;this.time=function(){return+new Date};this.reset=function(f,h){c.stop();var d=c.time();c.steptime= +0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f, +h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy|| +f){var r=Math.max(16,c.steptime);50p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+ +d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h, +c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll? +c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray"; +this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k 0) ? path.split('/').slice(0, -1).join('/') + '/' : ''; + } + + var vendors = ['webkit','ms','moz','o']; + + var setAnimationFrame = window.requestAnimationFrame || false; + var clearAnimationFrame = window.cancelAnimationFrame || false; + + if (!setAnimationFrame) { // legacy detection + for (var vx in vendors) { + var v = vendors[vx]; + setAnimationFrame = window[v + 'RequestAnimationFrame']; + if (setAnimationFrame) { + clearAnimationFrame = window[v + 'CancelAnimationFrame'] || window[v + 'CancelRequestAnimationFrame']; + break; + } + } + } + + var ClsMutationObserver = window.MutationObserver || window.WebKitMutationObserver || false; + + var _globaloptions = { + zindex: "auto", + cursoropacitymin: 0, + cursoropacitymax: 1, + cursorcolor: "#424242", + cursorwidth: "6px", + cursorborder: "1px solid #fff", + cursorborderradius: "5px", + scrollspeed: 60, + mousescrollstep: 8 * 3, + touchbehavior: false, + hwacceleration: true, + usetransition: true, + boxzoom: false, + dblclickzoom: true, + gesturezoom: true, + grabcursorenabled: true, + autohidemode: true, + background: "", + iframeautoresize: true, + cursorminheight: 32, + preservenativescrolling: true, + railoffset: false, + railhoffset: false, + bouncescroll: true, + spacebarenabled: true, + railpadding: { + top: 0, + right: 0, + left: 0, + bottom: 0 + }, + disableoutline: true, + horizrailenabled: true, + railalign: "right", + railvalign: "bottom", + enabletranslate3d: true, + enablemousewheel: true, + enablekeyboard: true, + smoothscroll: true, + sensitiverail: true, + enablemouselockapi: true, + // cursormaxheight:false, + cursorfixedheight: false, + directionlockdeadzone: 6, + hidecursordelay: 400, + nativeparentscrolling: true, + enablescrollonselection: true, + overflowx: true, + overflowy: true, + cursordragspeed: 0.3, + rtlmode: "auto", + cursordragontouch: false, + oneaxismousemode: "auto", + scriptpath: getScriptPath(), + preventmultitouchscrolling: true, + disablemutationobserver:false + }; + + var browserdetected = false; + + var getBrowserDetection = function() { + + if (browserdetected) return browserdetected; + + var _el = document.createElement('DIV'), + _style = _el.style, + _agent = navigator.userAgent, + _platform = navigator.platform, + d = {}; + + d.haspointerlock = "pointerLockElement" in document || "webkitPointerLockElement" in document || "mozPointerLockElement" in document; + + d.isopera = ("opera" in window); // 12- + d.isopera12 = (d.isopera && ("getUserMedia" in navigator)); + d.isoperamini = (Object.prototype.toString.call(window.operamini) === "[object OperaMini]"); + + d.isie = (("all" in document) && ("attachEvent" in _el) && !d.isopera); //IE10- + d.isieold = (d.isie && !("msInterpolationMode" in _style)); // IE6 and older + d.isie7 = d.isie && !d.isieold && (!("documentMode" in document) || (document.documentMode == 7)); + d.isie8 = d.isie && ("documentMode" in document) && (document.documentMode == 8); + d.isie9 = d.isie && ("performance" in window) && (document.documentMode == 9); + d.isie10 = d.isie && ("performance" in window) && (document.documentMode == 10); + d.isie11 = ("msRequestFullscreen" in _el) && (document.documentMode >= 11); // IE11+ + d.isieedge12 = (navigator.userAgent.match(/Edge\/12\./)); // IE Edge 12 + d.isieedge = ("msOverflowStyle" in _el); // IE Edge + d.ismodernie = d.isie11 || d.isieedge; + + d.isie9mobile = /iemobile.9/i.test(_agent); //wp 7.1 mango + if (d.isie9mobile) d.isie9 = false; + d.isie7mobile = (!d.isie9mobile && d.isie7) && /iemobile/i.test(_agent); //wp 7.0 + + d.ismozilla = ("MozAppearance" in _style); + + d.iswebkit = ("WebkitAppearance" in _style); + + d.ischrome = ("chrome" in window); + d.ischrome38 = (d.ischrome && ("touchAction" in _style)); // behavior changed in touch emulation + d.ischrome22 = (!d.ischrome38)&&(d.ischrome && d.haspointerlock); + d.ischrome26 = (!d.ischrome38)&&(d.ischrome && ("transition" in _style)); // issue with transform detection (maintain prefix) + + d.cantouch = ("ontouchstart" in document.documentElement) || ("ontouchstart" in window); // with detection for Chrome Touch Emulation + d.hasw3ctouch = (window.PointerEvent || false) && ((navigator.MaxTouchPoints > 0)||(navigator.msMaxTouchPoints > 0)); //IE11 pointer events, following W3C Pointer Events spec + d.hasmstouch = (!d.hasw3ctouch)&&(window.MSPointerEvent || false); // IE10 pointer events + + d.ismac = /^mac$/i.test(_platform); + + d.isios = (d.cantouch && /iphone|ipad|ipod/i.test(_platform)); + d.isios4 = ((d.isios) && !("seal" in Object)); + d.isios7 = ((d.isios)&&("webkitHidden" in document)); //iOS 7+ + d.isios8 = ((d.isios)&&("hidden" in document)); //iOS 8+ + + d.isandroid = (/android/i.test(_agent)); + + d.haseventlistener = ("addEventListener" in _el); + + d.trstyle = false; + d.hastransform = false; + d.hastranslate3d = false; + d.transitionstyle = false; + d.hastransition = false; + d.transitionend = false; + + var a; + var check = ['transform', 'msTransform', 'webkitTransform', 'MozTransform', 'OTransform']; + for (a = 0; a < check.length; a++) { + if (_style[check[a]] !== undefined) { + d.trstyle = check[a]; + break; + } + } + d.hastransform = (!!d.trstyle); + if (d.hastransform) { + _style[d.trstyle] = "translate3d(1px,2px,3px)"; + d.hastranslate3d = /translate3d/.test(_style[d.trstyle]); + } + + d.transitionstyle = false; + d.prefixstyle = ''; + d.transitionend = false; + check = ['transition', 'webkitTransition', 'msTransition', 'MozTransition', 'OTransition', 'OTransition', 'KhtmlTransition']; + var prefix = ['', '-webkit-', '-ms-', '-moz-', '-o-', '-o', '-khtml-']; + var evs = ['transitionend', 'webkitTransitionEnd', 'msTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd', 'KhtmlTransitionEnd']; + for (a = 0; a < check.length; a++) { + if (check[a] in _style) { + d.transitionstyle = check[a]; + d.prefixstyle = prefix[a]; + d.transitionend = evs[a]; + break; + } + } + if (d.ischrome26) { // always use prefix + d.prefixstyle = prefix[1]; + } + + d.hastransition = (d.transitionstyle); + + function detectCursorGrab() { + var lst = ['grab','-webkit-grab', '-moz-grab']; + if ((d.ischrome && !d.ischrome38) || d.isie) lst = []; // force setting for IE returns false positive and chrome cursor bug + for (var a = 0; a < lst.length; a++) { + var p = lst[a]; + _style.cursor = p; + if (_style.cursor == p) return p; + } + return 'url(//patriciaportfolio.googlecode.com/files/openhand.cur),n-resize'; // thank you google for custom cursor! + } + d.cursorgrabvalue = detectCursorGrab(); + + d.hasmousecapture = ("setCapture" in _el); + + d.hasMutationObserver = (ClsMutationObserver !== false); + + _el = null; //memory released + + browserdetected = d; + + return d; + }; + + var NiceScrollClass = function(myopt, me) { + + var self = this; + + this.version = '3.6.8'; + this.name = 'nicescroll'; + + this.me = me; + + this.opt = { + doc: $("body"), + win: false + }; + + $.extend(this.opt, _globaloptions); // clone opts + + // Options for internal use + this.opt.snapbackspeed = 80; + + if (myopt || false) { + for (var a in self.opt) { + if (myopt[a] !== undefined) self.opt[a] = myopt[a]; + } + } + + if (self.opt.disablemutationobserver) ClsMutationObserver = false; + + this.doc = self.opt.doc; + this.iddoc = (this.doc && this.doc[0]) ? this.doc[0].id || '' : ''; + this.ispage = /^BODY|HTML/.test((self.opt.win) ? self.opt.win[0].nodeName : this.doc[0].nodeName); + this.haswrapper = (self.opt.win !== false); + this.win = self.opt.win || (this.ispage ? $(window) : this.doc); + this.docscroll = (this.ispage && !this.haswrapper) ? $(window) : this.win; + this.body = $("body"); + this.viewport = false; + + this.isfixed = false; + + this.iframe = false; + this.isiframe = ((this.doc[0].nodeName == 'IFRAME') && (this.win[0].nodeName == 'IFRAME')); + + this.istextarea = (this.win[0].nodeName == 'TEXTAREA'); + + this.forcescreen = false; //force to use screen position on events + + this.canshowonmouseevent = (self.opt.autohidemode != "scroll"); + + // Events jump table + this.onmousedown = false; + this.onmouseup = false; + this.onmousemove = false; + this.onmousewheel = false; + this.onkeypress = false; + this.ongesturezoom = false; + this.onclick = false; + + // Nicescroll custom events + this.onscrollstart = false; + this.onscrollend = false; + this.onscrollcancel = false; + + this.onzoomin = false; + this.onzoomout = false; + + // Let's start! + this.view = false; + this.page = false; + + this.scroll = { + x: 0, + y: 0 + }; + this.scrollratio = { + x: 0, + y: 0 + }; + this.cursorheight = 20; + this.scrollvaluemax = 0; + + // http://dev.w3.org/csswg/css-writing-modes-3/#logical-to-physical + // http://dev.w3.org/csswg/css-writing-modes-3/#svg-writing-mode + if (this.opt.rtlmode == "auto") { + var target = this.win[0] == window ? this.body : this.win; + var writingMode = target.css("writing-mode") || target.css("-webkit-writing-mode") || target.css("-ms-writing-mode") || target.css("-moz-writing-mode"); + + if (writingMode == "horizontal-tb" || writingMode == "lr-tb" || writingMode == "") { + this.isrtlmode = (target.css("direction") == "rtl"); + this.isvertical = false; + } else { + this.isrtlmode = (writingMode == "vertical-rl" || writingMode == "tb" || writingMode == "tb-rl" || writingMode == "rl-tb"); + this.isvertical = (writingMode == "vertical-rl" || writingMode == "tb" || writingMode == "tb-rl"); + } + } else { + this.isrtlmode = (this.opt.rtlmode === true); + this.isvertical = false; + } + // this.checkrtlmode = false; + + this.scrollrunning = false; + + this.scrollmom = false; + + this.observer = false; // observer div changes + this.observerremover = false; // observer on parent for remove detection + this.observerbody = false; // observer on body for position change + + do { + this.id = "ascrail" + (ascrailcounter++); + } while (document.getElementById(this.id)); + + this.rail = false; + this.cursor = false; + this.cursorfreezed = false; + this.selectiondrag = false; + + this.zoom = false; + this.zoomactive = false; + + this.hasfocus = false; + this.hasmousefocus = false; + + this.visibility = true; + this.railslocked = false; // locked by resize + this.locked = false; // prevent lost of locked status sets by user + this.hidden = false; // rails always hidden + this.cursoractive = true; // user can interact with cursors + + this.wheelprevented = false; //prevent mousewheel event + + this.overflowx = self.opt.overflowx; + this.overflowy = self.opt.overflowy; + + this.nativescrollingarea = false; + this.checkarea = 0; + + this.events = []; // event list for unbind + + this.saved = {}; // style saved + + this.delaylist = {}; + this.synclist = {}; + + this.lastdeltax = 0; + this.lastdeltay = 0; + + this.detected = getBrowserDetection(); + + var cap = $.extend({}, this.detected); + + this.canhwscroll = (cap.hastransform && self.opt.hwacceleration); + this.ishwscroll = (this.canhwscroll && self.haswrapper); + + if (!this.isrtlmode) { + this.hasreversehr = false; + } else if (this.isvertical) { // RTL mode with reverse horizontal axis + this.hasreversehr = !(cap.iswebkit || cap.isie || cap.isie11); + } else { + this.hasreversehr = !(cap.iswebkit || (cap.isie && !cap.isie10 && !cap.isie11)); + } + + this.istouchcapable = false; // desktop devices with touch screen support + + //## Check WebKit-based desktop with touch support + //## + Firefox 18 nightly build (desktop) false positive (or desktop with touch support) + + if (!cap.cantouch && (cap.hasw3ctouch||cap.hasmstouch)) { // desktop device with multiple input + this.istouchcapable = true; + } else if (cap.cantouch && !cap.isios && !cap.isandroid && (cap.iswebkit || cap.ismozilla)) { + this.istouchcapable = true; +// cap.cantouch = false; // parse normal desktop events + } + + //## disable MouseLock API on user request + if (!self.opt.enablemouselockapi) { + cap.hasmousecapture = false; + cap.haspointerlock = false; + } + +/* deprecated + this.delayed = function(name, fn, tm, lazy) { + }; +*/ + +/* + this.debounced = function(name, fn, tm) { + if (!self) return; + var dd = self.delaylist[name]; + self.delaylist[name] = fn; + if (!dd) { + self.debouncedelayed = setTimeout(function() { + if (!self) return; + var fn = self.delaylist[name]; + self.delaylist[name] = false; + fn.call(self); + }, tm); + } + }; +*/ + + this.debounced = function(name, fn, tm) { + if (!self) return; + var dd = self.delaylist[name]||false; + if (!dd) { + fn.call(self); + self.delaylist[name] = { + h: setAnimationFrame(function(){ + self.delaylist[name].fn.call(self); + self.delaylist[name] = false; + }, tm) + }; + } + self.delaylist[name].fn = fn; + }; + + var _onsync = false; + + this.synched = function(name, fn) { + + function requestSync() { + if (_onsync) return; + setAnimationFrame(function() { + if (!self) return; + _onsync = false; + for (var nn in self.synclist) { + var fn = self.synclist[nn]; + if (fn) fn.call(self); + self.synclist[nn] = false; + } + }); + _onsync = true; + } + + self.synclist[name] = fn; + requestSync(); + return name; + }; + + this.unsynched = function(name) { + if (self.synclist[name]) self.synclist[name] = false; + }; + + this.css = function(el, pars) { // save & set + for (var n in pars) { + self.saved.css.push([el, n, el.css(n)]); + el.css(n, pars[n]); + } + }; + + this.scrollTop = function(val) { + return (val === undefined) ? self.getScrollTop() : self.setScrollTop(val); + }; + + this.scrollLeft = function(val) { + return (val === undefined) ? self.getScrollLeft() : self.setScrollLeft(val); + }; + + // derived by by Dan Pupius www.pupius.net + var BezierClass = function(st, ed, spd, p1, p2, p3, p4) { + + this.st = st; + this.ed = ed; + this.spd = spd; + + this.p1 = p1 || 0; + this.p2 = p2 || 1; + this.p3 = p3 || 0; + this.p4 = p4 || 1; + + this.ts = (new Date()).getTime(); + this.df = this.ed - this.st; + }; + BezierClass.prototype = { + B2: function(t) { + return 3 * t * t * (1 - t); + }, + B3: function(t) { + return 3 * t * (1 - t) * (1 - t); + }, + B4: function(t) { + return (1 - t) * (1 - t) * (1 - t); + }, + getNow: function() { + var nw = (new Date()).getTime(); + var pc = 1 - ((nw - this.ts) / this.spd); + var bz = this.B2(pc) + this.B3(pc) + this.B4(pc); + return (pc < 0) ? this.ed : this.st + Math.round(this.df * bz); + }, + update: function(ed, spd) { + this.st = this.getNow(); + this.ed = ed; + this.spd = spd; + this.ts = (new Date()).getTime(); + this.df = this.ed - this.st; + return this; + } + }; + + //derived from http://stackoverflow.com/questions/11236090/ + function getMatrixValues() { + var tr = self.doc.css(cap.trstyle); + if (tr && (tr.substr(0, 6) == "matrix")) { + return tr.replace(/^.*\((.*)\)$/g, "$1").replace(/px/g, '').split(/, +/); + } + return false; + } + + if (this.ishwscroll) { + // hw accelerated scroll + this.doc.translate = { + x: 0, + y: 0, + tx: "0px", + ty: "0px" + }; + + //this one can help to enable hw accel on ios6 http://indiegamr.com/ios6-html-hardware-acceleration-changes-and-how-to-fix-them/ + if (cap.hastranslate3d && cap.isios) this.doc.css("-webkit-backface-visibility", "hidden"); // prevent flickering http://stackoverflow.com/questions/3461441/ + + this.getScrollTop = function(last) { + if (!last) { + var mtx = getMatrixValues(); + if (mtx) return (mtx.length == 16) ? -mtx[13] : -mtx[5]; //matrix3d 16 on IE10 + if (self.timerscroll && self.timerscroll.bz) return self.timerscroll.bz.getNow(); + } + return self.doc.translate.y; + }; + + this.getScrollLeft = function(last) { + if (!last) { + var mtx = getMatrixValues(); + if (mtx) return (mtx.length == 16) ? -mtx[12] : -mtx[4]; //matrix3d 16 on IE10 + if (self.timerscroll && self.timerscroll.bh) return self.timerscroll.bh.getNow(); + } + return self.doc.translate.x; + }; + + this.notifyScrollEvent = function(el) { + var e = document.createEvent("UIEvents"); + e.initUIEvent("scroll", false, true, window, 1); + e.niceevent = true; + el.dispatchEvent(e); + }; + + var cxscrollleft = (this.isrtlmode) ? 1 : -1; + + if (cap.hastranslate3d && self.opt.enabletranslate3d) { + this.setScrollTop = function(val, silent) { + self.doc.translate.y = val; + self.doc.translate.ty = (val * -1) + "px"; + self.doc.css(cap.trstyle, "translate3d(" + self.doc.translate.tx + "," + self.doc.translate.ty + ",0px)"); + if (!silent) self.notifyScrollEvent(self.win[0]); + }; + this.setScrollLeft = function(val, silent) { + self.doc.translate.x = val; + self.doc.translate.tx = (val * cxscrollleft) + "px"; + self.doc.css(cap.trstyle, "translate3d(" + self.doc.translate.tx + "," + self.doc.translate.ty + ",0px)"); + if (!silent) self.notifyScrollEvent(self.win[0]); + }; + } else { + this.setScrollTop = function(val, silent) { + self.doc.translate.y = val; + self.doc.translate.ty = (val * -1) + "px"; + self.doc.css(cap.trstyle, "translate(" + self.doc.translate.tx + "," + self.doc.translate.ty + ")"); + if (!silent) self.notifyScrollEvent(self.win[0]); + }; + this.setScrollLeft = function(val, silent) { + self.doc.translate.x = val; + self.doc.translate.tx = (val * cxscrollleft) + "px"; + self.doc.css(cap.trstyle, "translate(" + self.doc.translate.tx + "," + self.doc.translate.ty + ")"); + if (!silent) self.notifyScrollEvent(self.win[0]); + }; + } + } else { + // native scroll + this.getScrollTop = function() { + return self.docscroll.scrollTop(); + }; + this.setScrollTop = function(val) { + return setTimeout(function() {(self)&&self.docscroll.scrollTop(val)}, 1); + }; + this.getScrollLeft = function() { + var val; + if (!self.hasreversehr) { + val = self.docscroll.scrollLeft(); + } else if (self.detected.ismozilla) { + val = self.page.maxw - Math.abs(self.docscroll.scrollLeft()); + } else { + val = self.page.maxw - self.docscroll.scrollLeft(); + } + return val; + }; + this.setScrollLeft = function(val) { + return setTimeout(function() { + if (!self) return; + if (self.hasreversehr) { + if (self.detected.ismozilla) { + val = -(self.page.maxw - val); + } else { + val = self.page.maxw - val; + } + } + return self.docscroll.scrollLeft(val); + }, 1); + }; + } + + this.getTarget = function(e) { + if (!e) return false; + if (e.target) return e.target; + if (e.srcElement) return e.srcElement; + return false; + }; + + this.hasParent = function(e, id) { + if (!e) return false; + var el = e.target || e.srcElement || e || false; + while (el && el.id != id) { + el = el.parentNode || false; + } + return (el !== false); + }; + + function getZIndex() { + var dom = self.win; + if ("zIndex" in dom) return dom.zIndex(); // use jQuery UI method when available + while (dom.length > 0) { + if (dom[0].nodeType == 9) return false; + var zi = dom.css('zIndex'); + if (!isNaN(zi) && zi != 0) return parseInt(zi); + dom = dom.parent(); + } + return false; + } + + //inspired by http://forum.jquery.com/topic/width-includes-border-width-when-set-to-thin-medium-thick-in-ie + var _convertBorderWidth = { + "thin": 1, + "medium": 3, + "thick": 5 + }; + + function getWidthToPixel(dom, prop, chkheight) { + var wd = dom.css(prop); + var px = parseFloat(wd); + if (isNaN(px)) { + px = _convertBorderWidth[wd] || 0; + var brd = (px == 3) ? ((chkheight) ? (self.win.outerHeight() - self.win.innerHeight()) : (self.win.outerWidth() - self.win.innerWidth())) : 1; //DON'T TRUST CSS + if (self.isie8 && px) px += 1; + return (brd) ? px : 0; + } + return px; + } + + this.getDocumentScrollOffset = function() { + return { + top: window.pageYOffset || document.documentElement.scrollTop, + left: window.pageXOffset || document.documentElement.scrollLeft + }; + }; + + this.getOffset = function() { + if (self.isfixed) { + var ofs = self.win.offset(); // fix Chrome auto issue (when right/bottom props only) + var scrl = self.getDocumentScrollOffset(); + ofs.top-=scrl.top; + ofs.left-=scrl.left; + return ofs; + } + var ww = self.win.offset(); + if (!self.viewport) return ww; + var vp = self.viewport.offset(); + return { + top: ww.top - vp.top,// + self.viewport.scrollTop(), + left: ww.left - vp.left // + self.viewport.scrollLeft() + }; + }; + + this.updateScrollBar = function(len) { + var pos, off; + if (self.ishwscroll) { + self.rail.css({ //** + height: self.win.innerHeight() - (self.opt.railpadding.top + self.opt.railpadding.bottom) + }); + if (self.railh) self.railh.css({ //** + width: self.win.innerWidth() - (self.opt.railpadding.left + self.opt.railpadding.right) + }); + + } else { + var wpos = self.getOffset(); + pos = { + top: wpos.top, + left: wpos.left - (self.opt.railpadding.left + self.opt.railpadding.right) + }; + pos.top += getWidthToPixel(self.win, 'border-top-width', true); + pos.left += (self.rail.align) ? self.win.outerWidth() - getWidthToPixel(self.win, 'border-right-width') - self.rail.width : getWidthToPixel(self.win, 'border-left-width'); + + off = self.opt.railoffset; + if (off) { + if (off.top) pos.top += off.top; + if (off.left) pos.left += off.left; + } + + if (!self.railslocked) self.rail.css({ + top: pos.top, + left: pos.left, + height: ((len) ? len.h : self.win.innerHeight()) - (self.opt.railpadding.top + self.opt.railpadding.bottom) + }); + + if (self.zoom) { + self.zoom.css({ + top: pos.top + 1, + left: (self.rail.align == 1) ? pos.left - 20 : pos.left + self.rail.width + 4 + }); + } + + if (self.railh && !self.railslocked) { + pos = { + top: wpos.top, + left: wpos.left + }; + off = self.opt.railhoffset; + if (off) { + if (off.top) pos.top += off.top; + if (off.left) pos.left += off.left; + } + var y = (self.railh.align) ? pos.top + getWidthToPixel(self.win, 'border-top-width', true) + self.win.innerHeight() - self.railh.height : pos.top + getWidthToPixel(self.win, 'border-top-width', true); + var x = pos.left + getWidthToPixel(self.win, 'border-left-width'); + self.railh.css({ + top: y - (self.opt.railpadding.top + self.opt.railpadding.bottom), + left: x, + width: self.railh.width + }); + } + + } + }; + + this.doRailClick = function(e, dbl, hr) { + var fn, pg, cur, pos; + + if (self.railslocked) return; + self.cancelEvent(e); + + if (dbl) { + fn = (hr) ? self.doScrollLeft : self.doScrollTop; + cur = (hr) ? ((e.pageX - self.railh.offset().left - (self.cursorwidth / 2)) * self.scrollratio.x) : ((e.pageY - self.rail.offset().top - (self.cursorheight / 2)) * self.scrollratio.y); + fn(cur); + } else { + fn = (hr) ? self.doScrollLeftBy : self.doScrollBy; + cur = (hr) ? self.scroll.x : self.scroll.y; + pos = (hr) ? e.pageX - self.railh.offset().left : e.pageY - self.rail.offset().top; + pg = (hr) ? self.view.w : self.view.h; + fn((cur >= pos) ? pg: -pg);// (cur >= pos) ? fn(pg): fn(-pg); + } + + }; + + self.hasanimationframe = (setAnimationFrame); + self.hascancelanimationframe = (clearAnimationFrame); + + if (!self.hasanimationframe) { + setAnimationFrame = function(fn) { + return setTimeout(fn, 15 - Math.floor((+new Date()) / 1000) % 16); + }; // 1000/60)}; + clearAnimationFrame = clearTimeout; + } else if (!self.hascancelanimationframe) clearAnimationFrame = function() { + self.cancelAnimationFrame = true; + }; + + this.init = function() { + + self.saved.css = []; + + if (cap.isie7mobile) return true; // SORRY, DO NOT WORK! + if (cap.isoperamini) return true; // SORRY, DO NOT WORK! + + var _touchaction = (cap.isie10) ? '-ms-touch-action' : 'touch-action'; + if (cap.hasmstouch) self.css((self.ispage) ? $("html") : self.win, { + _touchaction: 'none' + }); + + var _scrollyhidden = (cap.ismodernie||cap.isie10) ? {'-ms-overflow-style':'none'} : {'overflow-y':'hidden'}; // IE is always a world apart! + + self.zindex = "auto"; + if (!self.ispage && self.opt.zindex == "auto") { + self.zindex = getZIndex() || "auto"; + } else { + self.zindex = self.opt.zindex; + } + + if (!self.ispage && self.zindex != "auto" && self.zindex > globalmaxzindex) { + globalmaxzindex = self.zindex; + } + + if (self.isie && self.zindex == 0 && self.opt.zindex == "auto") { // fix IE auto == 0 + self.zindex = "auto"; + } + + if (!self.ispage || (!cap.cantouch && !cap.isieold && !cap.isie9mobile)) { + + var cont = self.docscroll; + if (self.ispage) cont = (self.haswrapper) ? self.win : self.doc; + + if (!cap.isie9mobile) self.css(cont, _scrollyhidden); + + if (self.ispage && cap.isie7) { + if (self.doc[0].nodeName == 'BODY') self.css($("html"), { + 'overflow-y': 'hidden' + }); //IE7 double scrollbar issue + else if (self.doc[0].nodeName == 'HTML') self.css($("body"), _scrollyhidden); //IE7 double scrollbar issue + } + + if (cap.isios && !self.ispage && !self.haswrapper) self.css($("body"), { + "-webkit-overflow-scrolling": "touch" + }); //force hw acceleration + + var cursor = $(document.createElement('div')); + cursor.css({ + position: "relative", + top: 0, + "float": "right", + width: self.opt.cursorwidth, + height: 0, + 'background-color': self.opt.cursorcolor, + border: self.opt.cursorborder, + 'background-clip': 'padding-box', + '-webkit-border-radius': self.opt.cursorborderradius, + '-moz-border-radius': self.opt.cursorborderradius, + 'border-radius': self.opt.cursorborderradius + }); + + cursor.hborder = parseFloat(cursor.outerHeight() - cursor.innerHeight()); + + cursor.addClass('nicescroll-cursors'); + + self.cursor = cursor; + + var rail = $(document.createElement('div')); + rail.attr('id', self.id); + rail.addClass('nicescroll-rails nicescroll-rails-vr'); + + var v, a, kp = ["left","right","top","bottom"]; //** + for (var n in kp) { + a = kp[n]; + v = self.opt.railpadding[a]; + (v) ? rail.css("padding-"+a,v+"px") : self.opt.railpadding[a] = 0; + } + + rail.append(cursor); + + rail.width = Math.max(parseFloat(self.opt.cursorwidth), cursor.outerWidth()); + rail.css({ + width: rail.width + "px", + zIndex: self.zindex, + background: self.opt.background, + cursor: "default" + }); + + rail.visibility = true; + rail.scrollable = true; + + rail.align = (self.opt.railalign == "left") ? 0 : 1; + + self.rail = rail; + + self.rail.drag = false; + + var zoom = false; + if (self.opt.boxzoom && !self.ispage && !cap.isieold) { + zoom = document.createElement('div'); + + self.bind(zoom, "click", self.doZoom); + self.bind(zoom, "mouseenter", function() { + self.zoom.css('opacity', self.opt.cursoropacitymax); + }); + self.bind(zoom, "mouseleave", function() { + self.zoom.css('opacity', self.opt.cursoropacitymin); + }); + + self.zoom = $(zoom); + self.zoom.css({ + cursor: "pointer", + zIndex: self.zindex, + backgroundImage: 'url(' + self.opt.scriptpath + 'zoomico.png)', + height: 18, + width: 18, + backgroundPosition: '0px 0px' + }); + if (self.opt.dblclickzoom) self.bind(self.win, "dblclick", self.doZoom); + if (cap.cantouch && self.opt.gesturezoom) { + self.ongesturezoom = function(e) { + if (e.scale > 1.5) self.doZoomIn(e); + if (e.scale < 0.8) self.doZoomOut(e); + return self.cancelEvent(e); + }; + self.bind(self.win, "gestureend", self.ongesturezoom); + } + } + + // init HORIZ + + self.railh = false; + var railh; + + if (self.opt.horizrailenabled) { + + self.css(cont, { + overflowX: 'hidden' + }); + + var cursor = $(document.createElement('div')); + cursor.css({ + position: "absolute", + top: 0, + height: self.opt.cursorwidth, + width: 0, + backgroundColor: self.opt.cursorcolor, + border: self.opt.cursorborder, + backgroundClip: 'padding-box', + '-webkit-border-radius': self.opt.cursorborderradius, + '-moz-border-radius': self.opt.cursorborderradius, + 'border-radius': self.opt.cursorborderradius + }); + + if (cap.isieold) cursor.css('overflow', 'hidden'); //IE6 horiz scrollbar issue + + cursor.wborder = parseFloat(cursor.outerWidth() - cursor.innerWidth()); + + cursor.addClass('nicescroll-cursors'); + + self.cursorh = cursor; + + railh = $(document.createElement('div')); + railh.attr('id', self.id + '-hr'); + railh.addClass('nicescroll-rails nicescroll-rails-hr'); + railh.height = Math.max(parseFloat(self.opt.cursorwidth), cursor.outerHeight()); + railh.css({ + height: railh.height + "px", + 'zIndex': self.zindex, + "background": self.opt.background + }); + + railh.append(cursor); + + railh.visibility = true; + railh.scrollable = true; + + railh.align = (self.opt.railvalign == "top") ? 0 : 1; + + self.railh = railh; + + self.railh.drag = false; + + } + + // + + if (self.ispage) { + rail.css({ + position: "fixed", + top: 0, + height: "100%" + }); + (rail.align) ? rail.css({ + right: 0 + }): rail.css({ + left: 0 + }); + self.body.append(rail); + if (self.railh) { + railh.css({ + position: "fixed", + left: 0, + width: "100%" + }); + (railh.align) ? railh.css({ + bottom: 0 + }): railh.css({ + top: 0 + }); + self.body.append(railh); + } + } else { + if (self.ishwscroll) { + if (self.win.css('position') == 'static') self.css(self.win, { + 'position': 'relative' + }); + var bd = (self.win[0].nodeName == 'HTML') ? self.body : self.win; + $(bd).scrollTop(0).scrollLeft(0); // fix rail position if content already scrolled + if (self.zoom) { + self.zoom.css({ + position: "absolute", + top: 1, + right: 0, + "margin-right": rail.width + 4 + }); + bd.append(self.zoom); + } + rail.css({ + position: "absolute", + top: 0 + }); + (rail.align) ? rail.css({ + right: 0 + }): rail.css({ + left: 0 + }); + bd.append(rail); + if (railh) { + railh.css({ + position: "absolute", + left: 0, + bottom: 0 + }); + (railh.align) ? railh.css({ + bottom: 0 + }): railh.css({ + top: 0 + }); + bd.append(railh); + } + } else { + self.isfixed = (self.win.css("position") == "fixed"); + var rlpos = (self.isfixed) ? "fixed" : "absolute"; + + if (!self.isfixed) self.viewport = self.getViewport(self.win[0]); + if (self.viewport) { + self.body = self.viewport; + if ((/fixed|absolute/.test(self.viewport.css("position"))) == false) self.css(self.viewport, { + "position": "relative" + }); + } + + rail.css({ + position: rlpos + }); + if (self.zoom) self.zoom.css({ + position: rlpos + }); + self.updateScrollBar(); + self.body.append(rail); + if (self.zoom) self.body.append(self.zoom); + if (self.railh) { + railh.css({ + position: rlpos + }); + self.body.append(railh); + } + } + + if (cap.isios) self.css(self.win, { + '-webkit-tap-highlight-color': 'rgba(0,0,0,0)', + '-webkit-touch-callout': 'none' + }); // prevent grey layer on click + + if (cap.isie && self.opt.disableoutline) self.win.attr("hideFocus", "true"); // IE, prevent dotted rectangle on focused div + if (cap.iswebkit && self.opt.disableoutline) self.win.css('outline', 'none'); // Webkit outline + //if (cap.isopera&&self.opt.disableoutline) self.win.css({"outline":"0"}); // Opera 12- to test [TODO] + + } + + if (self.opt.autohidemode === false) { + self.autohidedom = false; + self.rail.css({ + opacity: self.opt.cursoropacitymax + }); + if (self.railh) self.railh.css({ + opacity: self.opt.cursoropacitymax + }); + } else if ((self.opt.autohidemode === true) || (self.opt.autohidemode === "leave")) { + self.autohidedom = $().add(self.rail); + if (cap.isie8) self.autohidedom = self.autohidedom.add(self.cursor); + if (self.railh) self.autohidedom = self.autohidedom.add(self.railh); + if (self.railh && cap.isie8) self.autohidedom = self.autohidedom.add(self.cursorh); + } else if (self.opt.autohidemode == "scroll") { + self.autohidedom = $().add(self.rail); + if (self.railh) self.autohidedom = self.autohidedom.add(self.railh); + } else if (self.opt.autohidemode == "cursor") { + self.autohidedom = $().add(self.cursor); + if (self.railh) self.autohidedom = self.autohidedom.add(self.cursorh); + } else if (self.opt.autohidemode == "hidden") { + self.autohidedom = false; + self.hide(); + self.railslocked = false; + } + + if (cap.isie9mobile) { + + self.scrollmom = new ScrollMomentumClass2D(self); + + self.onmangotouch = function() { + var py = self.getScrollTop(); + var px = self.getScrollLeft(); + + if ((py == self.scrollmom.lastscrolly) && (px == self.scrollmom.lastscrollx)) return true; + + var dfy = py - self.mangotouch.sy; + var dfx = px - self.mangotouch.sx; + var df = Math.round(Math.sqrt(Math.pow(dfx, 2) + Math.pow(dfy, 2))); + if (df == 0) return; + + var dry = (dfy < 0) ? -1 : 1; + var drx = (dfx < 0) ? -1 : 1; + + var tm = +new Date(); + if (self.mangotouch.lazy) clearTimeout(self.mangotouch.lazy); + + if (((tm - self.mangotouch.tm) > 80) || (self.mangotouch.dry != dry) || (self.mangotouch.drx != drx)) { + self.scrollmom.stop(); + self.scrollmom.reset(px, py); + self.mangotouch.sy = py; + self.mangotouch.ly = py; + self.mangotouch.sx = px; + self.mangotouch.lx = px; + self.mangotouch.dry = dry; + self.mangotouch.drx = drx; + self.mangotouch.tm = tm; + } else { + + self.scrollmom.stop(); + self.scrollmom.update(self.mangotouch.sx - dfx, self.mangotouch.sy - dfy); + self.mangotouch.tm = tm; + + var ds = Math.max(Math.abs(self.mangotouch.ly - py), Math.abs(self.mangotouch.lx - px)); + self.mangotouch.ly = py; + self.mangotouch.lx = px; + + if (ds > 2) { + self.mangotouch.lazy = setTimeout(function() { + self.mangotouch.lazy = false; + self.mangotouch.dry = 0; + self.mangotouch.drx = 0; + self.mangotouch.tm = 0; + self.scrollmom.doMomentum(30); + }, 100); + } + } + }; + + var top = self.getScrollTop(); + var lef = self.getScrollLeft(); + self.mangotouch = { + sy: top, + ly: top, + dry: 0, + sx: lef, + lx: lef, + drx: 0, + lazy: false, + tm: 0 + }; + + self.bind(self.docscroll, "scroll", self.onmangotouch); + + } else { + + if (cap.cantouch || self.istouchcapable || self.opt.touchbehavior || cap.hasmstouch) { + + self.scrollmom = new ScrollMomentumClass2D(self); + + self.ontouchstart = function(e) { + if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; + + self.hasmoving = false; + + if (!self.railslocked) { + var tg; + if (cap.hasmstouch) { + tg = (e.target) ? e.target : false; + while (tg) { + var nc = $(tg).getNiceScroll(); + if ((nc.length > 0) && (nc[0].me == self.me)) break; + if (nc.length > 0) return false; + if ((tg.nodeName == 'DIV') && (tg.id == self.id)) break; + tg = (tg.parentNode) ? tg.parentNode : false; + } + } + + self.cancelScroll(); + + tg = self.getTarget(e); + + if (tg) { + var skp = (/INPUT/i.test(tg.nodeName)) && (/range/i.test(tg.type)); + if (skp) return self.stopPropagation(e); + } + + if (!("clientX" in e) && ("changedTouches" in e)) { + e.clientX = e.changedTouches[0].clientX; + e.clientY = e.changedTouches[0].clientY; + } + + if (self.forcescreen) { + var le = e; + e = { + "original": (e.original) ? e.original : e + }; + e.clientX = le.screenX; + e.clientY = le.screenY; + } + + self.rail.drag = { + x: e.clientX, + y: e.clientY, + sx: self.scroll.x, + sy: self.scroll.y, + st: self.getScrollTop(), + sl: self.getScrollLeft(), + pt: 2, + dl: false + }; + + if (self.ispage || !self.opt.directionlockdeadzone) { + self.rail.drag.dl = "f"; + } else { + + var view = { + w: $(window).width(), + h: $(window).height() + }; + + var page = { + w: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), + h: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + }; + + var maxh = Math.max(0, page.h - view.h); + var maxw = Math.max(0, page.w - view.w); + + if (!self.rail.scrollable && self.railh.scrollable) self.rail.drag.ck = (maxh > 0) ? "v" : false; + else if (self.rail.scrollable && !self.railh.scrollable) self.rail.drag.ck = (maxw > 0) ? "h" : false; + else self.rail.drag.ck = false; + if (!self.rail.drag.ck) self.rail.drag.dl = "f"; + } + + if (self.opt.touchbehavior && self.isiframe && cap.isie) { + var wp = self.win.position(); + self.rail.drag.x += wp.left; + self.rail.drag.y += wp.top; + } + + self.hasmoving = false; + self.lastmouseup = false; + self.scrollmom.reset(e.clientX, e.clientY); + + if (!cap.cantouch && !this.istouchcapable && !e.pointerType) { + + var ip = (tg) ? /INPUT|SELECT|TEXTAREA/i.test(tg.nodeName) : false; + if (!ip) { + if (!self.ispage && cap.hasmousecapture) tg.setCapture(); + if (self.opt.touchbehavior) { + if (tg.onclick && !(tg._onclick || false)) { // intercept DOM0 onclick event + tg._onclick = tg.onclick; + tg.onclick = function(e) { + if (self.hasmoving) return false; + tg._onclick.call(this, e); + }; + } + return self.cancelEvent(e); + } + return self.stopPropagation(e); + } + + if (/SUBMIT|CANCEL|BUTTON/i.test($(tg).attr('type'))) { + pc = { + "tg": tg, + "click": false + }; + self.preventclick = pc; + } + + } + } + + }; + + self.ontouchend = function(e) { + if (!self.rail.drag) return true; + if (self.rail.drag.pt == 2) { + if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; + + self.scrollmom.doMomentum(); + self.rail.drag = false; + if (self.hasmoving) { + self.lastmouseup = true; + self.hideCursor(); + if (cap.hasmousecapture) document.releaseCapture(); + if (!cap.cantouch) return self.cancelEvent(e); + } + } + else if (self.rail.drag.pt == 1) { + return self.onmouseup(e); + } + + }; + + var moveneedoffset = (self.opt.touchbehavior && self.isiframe && !cap.hasmousecapture); + + self.ontouchmove = function(e, byiframe) { + + if (!self.rail.drag) return false; + + if (e.targetTouches && self.opt.preventmultitouchscrolling) { + if (e.targetTouches.length > 1) return false; // multitouch + } + + if (e.pointerType && e.pointerType != 2 && e.pointerType != "touch") return false; + + if (self.rail.drag.pt == 2) { + if (cap.cantouch && (cap.isios) && e.original === undefined) return true; // prevent ios "ghost" events by clickable elements + + self.hasmoving = true; + + if (self.preventclick && !self.preventclick.click) { + self.preventclick.click = self.preventclick.tg.onclick || false; + self.preventclick.tg.onclick = self.onpreventclick; + } + + var ev = $.extend({ + "original": e + }, e); + e = ev; + + if (("changedTouches" in e)) { + e.clientX = e.changedTouches[0].clientX; + e.clientY = e.changedTouches[0].clientY; + } + + if (self.forcescreen) { + var le = e; + e = { + "original": (e.original) ? e.original : e + }; + e.clientX = le.screenX; + e.clientY = le.screenY; + } + + var ofy,ofx; + ofx = ofy = 0; + + if (moveneedoffset && !byiframe) { + var wp = self.win.position(); + ofx = -wp.left; + ofy = -wp.top; + } + + var fy = e.clientY + ofy; + var my = (fy - self.rail.drag.y); + var fx = e.clientX + ofx; + var mx = (fx - self.rail.drag.x); + + var ny = self.rail.drag.st - my; + + if (self.ishwscroll && self.opt.bouncescroll) { + if (ny < 0) { + ny = Math.round(ny / 2); + // fy = 0; + } else if (ny > self.page.maxh) { + ny = self.page.maxh + Math.round((ny - self.page.maxh) / 2); + // fy = 0; + } + } else { + if (ny < 0) { + ny = 0; + fy = 0; + } + if (ny > self.page.maxh) { + ny = self.page.maxh; + fy = 0; + } + } + + var nx; + if (self.railh && self.railh.scrollable) { + nx = (self.isrtlmode) ? mx - self.rail.drag.sl : self.rail.drag.sl - mx; + + if (self.ishwscroll && self.opt.bouncescroll) { + if (nx < 0) { + nx = Math.round(nx / 2); + // fx = 0; + } else if (nx > self.page.maxw) { + nx = self.page.maxw + Math.round((nx - self.page.maxw) / 2); + // fx = 0; + } + } else { + if (nx < 0) { + nx = 0; + fx = 0; + } + if (nx > self.page.maxw) { + nx = self.page.maxw; + fx = 0; + } + } + + } + + var grabbed = false; + if (self.rail.drag.dl) { + grabbed = true; + if (self.rail.drag.dl == "v") nx = self.rail.drag.sl; + else if (self.rail.drag.dl == "h") ny = self.rail.drag.st; + } else { + var ay = Math.abs(my); + var ax = Math.abs(mx); + var dz = self.opt.directionlockdeadzone; + if (self.rail.drag.ck == "v") { + if (ay > dz && (ax <= (ay * 0.3))) { + self.rail.drag = false; + return true; + } else if (ax > dz) { + self.rail.drag.dl = "f"; + $("body").scrollTop($("body").scrollTop()); // stop iOS native scrolling (when active javascript has blocked) + } + } else if (self.rail.drag.ck == "h") { + if (ax > dz && (ay <= (ax * 0.3))) { + self.rail.drag = false; + return true; + } else if (ay > dz) { + self.rail.drag.dl = "f"; + $("body").scrollLeft($("body").scrollLeft()); // stop iOS native scrolling (when active javascript has blocked) + } + } + } + + self.synched("touchmove", function() { + if (self.rail.drag && (self.rail.drag.pt == 2)) { + if (self.prepareTransition) self.prepareTransition(0); + if (self.rail.scrollable) self.setScrollTop(ny); + self.scrollmom.update(fx, fy); + if (self.railh && self.railh.scrollable) { + self.setScrollLeft(nx); + self.showCursor(ny, nx); + } else { + self.showCursor(ny); + } + if (cap.isie10) document.selection.clear(); + } + }); + + if (cap.ischrome && self.istouchcapable) grabbed = false; //chrome touch emulation doesn't like! + if (grabbed) return self.cancelEvent(e); + } + else if (self.rail.drag.pt == 1) { // drag on cursor + return self.onmousemove(e); + } + + }; + + } + + self.onmousedown = function(e, hronly) { + if (self.rail.drag && self.rail.drag.pt != 1) return; + if (self.railslocked) return self.cancelEvent(e); + self.cancelScroll(); + self.rail.drag = { + x: e.clientX, + y: e.clientY, + sx: self.scroll.x, + sy: self.scroll.y, + pt: 1, + hr: (!!hronly) + }; + var tg = self.getTarget(e); + if (!self.ispage && cap.hasmousecapture) tg.setCapture(); + if (self.isiframe && !cap.hasmousecapture) { + self.saved.csspointerevents = self.doc.css("pointer-events"); + self.css(self.doc, { + "pointer-events": "none" + }); + } + self.hasmoving = false; + return self.cancelEvent(e); + }; + + self.onmouseup = function(e) { + if (self.rail.drag) { + if (self.rail.drag.pt != 1) return true; + + if (cap.hasmousecapture) document.releaseCapture(); + if (self.isiframe && !cap.hasmousecapture) self.doc.css("pointer-events", self.saved.csspointerevents); + self.rail.drag = false; + //if (!self.rail.active) self.hideCursor(); + if (self.hasmoving) self.triggerScrollEnd(); // TODO - check &&!self.scrollrunning + return self.cancelEvent(e); + } + }; + + self.onmousemove = function(e) { + if (self.rail.drag) { + if (self.rail.drag.pt != 1) return; + + if (cap.ischrome && e.which == 0) return self.onmouseup(e); + + self.cursorfreezed = true; + self.hasmoving = true; + + if (self.rail.drag.hr) { + self.scroll.x = self.rail.drag.sx + (e.clientX - self.rail.drag.x); + if (self.scroll.x < 0) self.scroll.x = 0; + var mw = self.scrollvaluemaxw; + if (self.scroll.x > mw) self.scroll.x = mw; + } else { + self.scroll.y = self.rail.drag.sy + (e.clientY - self.rail.drag.y); + if (self.scroll.y < 0) self.scroll.y = 0; + var my = self.scrollvaluemax; + if (self.scroll.y > my) self.scroll.y = my; + } + + self.synched('mousemove', function() { + if (self.rail.drag && (self.rail.drag.pt == 1)) { + self.showCursor(); + if (self.rail.drag.hr) { + if (self.hasreversehr) { + self.doScrollLeft(self.scrollvaluemaxw-Math.round(self.scroll.x * self.scrollratio.x), self.opt.cursordragspeed); + } else { + self.doScrollLeft(Math.round(self.scroll.x * self.scrollratio.x), self.opt.cursordragspeed); + } + } + else self.doScrollTop(Math.round(self.scroll.y * self.scrollratio.y), self.opt.cursordragspeed); + } + }); + + return self.cancelEvent(e); + } + else { + self.checkarea = 0; + } + }; + + if (cap.cantouch || self.opt.touchbehavior) { + + self.onpreventclick = function(e) { + if (self.preventclick) { + self.preventclick.tg.onclick = self.preventclick.click; + self.preventclick = false; + return self.cancelEvent(e); + } + }; + + self.bind(self.win, "mousedown", self.ontouchstart); // control content dragging + + self.onclick = (cap.isios) ? false : function(e) { // it needs to check IE11 ??? + if (self.lastmouseup) { + self.lastmouseup = false; + return self.cancelEvent(e); + } else { + return true; + } + }; + + if (self.opt.grabcursorenabled && cap.cursorgrabvalue) { + self.css((self.ispage) ? self.doc : self.win, { + 'cursor': cap.cursorgrabvalue + }); + self.css(self.rail, { + 'cursor': cap.cursorgrabvalue + }); + } + + } else { + + var checkSelectionScroll = function(e) { + if (!self.selectiondrag) return; + + if (e) { + var ww = self.win.outerHeight(); + var df = (e.pageY - self.selectiondrag.top); + if (df > 0 && df < ww) df = 0; + if (df >= ww) df -= ww; + self.selectiondrag.df = df; + } + if (self.selectiondrag.df == 0) return; + + var rt = -Math.floor(self.selectiondrag.df / 6) * 2; + self.doScrollBy(rt); + + self.debounced("doselectionscroll", function() { + checkSelectionScroll(); + }, 50); + }; + + if ("getSelection" in document) { // A grade - Major browsers + self.hasTextSelected = function() { + return (document.getSelection().rangeCount > 0); + }; + } else if ("selection" in document) { //IE9- + self.hasTextSelected = function() { + return (document.selection.type != "None"); + }; + } else { + self.hasTextSelected = function() { // no support + return false; + }; + } + + self.onselectionstart = function(e) { +/* More testing - severe chrome issues + if (!self.haswrapper&&(e.which&&e.which==2)) { // fool browser to manage middle button scrolling + self.win.css({'overflow':'auto'}); + setTimeout(function(){ + self.win.css({'overflow':''}); + },10); + return true; + } +*/ + if (self.ispage) return; + self.selectiondrag = self.win.offset(); + }; + + self.onselectionend = function(e) { + self.selectiondrag = false; + }; + self.onselectiondrag = function(e) { + if (!self.selectiondrag) return; + if (self.hasTextSelected()) self.debounced("selectionscroll", function() { + checkSelectionScroll(e); + }, 250); + }; + + + } + + if (cap.hasw3ctouch) { //IE11+ + self.css(self.rail, { + 'touch-action': 'none' + }); + self.css(self.cursor, { + 'touch-action': 'none' + }); + self.bind(self.win, "pointerdown", self.ontouchstart); + self.bind(document, "pointerup", self.ontouchend); + self.bind(document, "pointermove", self.ontouchmove); + } else if (cap.hasmstouch) { //IE10 + self.css(self.rail, { + '-ms-touch-action': 'none' + }); + self.css(self.cursor, { + '-ms-touch-action': 'none' + }); + self.bind(self.win, "MSPointerDown", self.ontouchstart); + self.bind(document, "MSPointerUp", self.ontouchend); + self.bind(document, "MSPointerMove", self.ontouchmove); + self.bind(self.cursor, "MSGestureHold", function(e) { + e.preventDefault(); + }); + self.bind(self.cursor, "contextmenu", function(e) { + e.preventDefault(); + }); + } else if (this.istouchcapable) { //desktop with screen touch enabled + self.bind(self.win, "touchstart", self.ontouchstart); + self.bind(document, "touchend", self.ontouchend); + self.bind(document, "touchcancel", self.ontouchend); + self.bind(document, "touchmove", self.ontouchmove); + } + + + if (self.opt.cursordragontouch || (!cap.cantouch && !self.opt.touchbehavior)) { + + self.rail.css({ + cursor: "default" + }); + self.railh && self.railh.css({ + cursor: "default" + }); + + self.jqbind(self.rail, "mouseenter", function() { + if (!self.ispage && !self.win.is(":visible")) return false; + if (self.canshowonmouseevent) self.showCursor(); + self.rail.active = true; + }); + self.jqbind(self.rail, "mouseleave", function() { + self.rail.active = false; + if (!self.rail.drag) self.hideCursor(); + }); + + if (self.opt.sensitiverail) { + self.bind(self.rail, "click", function(e) { + self.doRailClick(e, false, false); + }); + self.bind(self.rail, "dblclick", function(e) { + self.doRailClick(e, true, false); + }); + self.bind(self.cursor, "click", function(e) { + self.cancelEvent(e); + }); + self.bind(self.cursor, "dblclick", function(e) { + self.cancelEvent(e); + }); + } + + if (self.railh) { + self.jqbind(self.railh, "mouseenter", function() { + if (!self.ispage && !self.win.is(":visible")) return false; + if (self.canshowonmouseevent) self.showCursor(); + self.rail.active = true; + }); + self.jqbind(self.railh, "mouseleave", function() { + self.rail.active = false; + if (!self.rail.drag) self.hideCursor(); + }); + + if (self.opt.sensitiverail) { + self.bind(self.railh, "click", function(e) { + self.doRailClick(e, false, true); + }); + self.bind(self.railh, "dblclick", function(e) { + self.doRailClick(e, true, true); + }); + self.bind(self.cursorh, "click", function(e) { + self.cancelEvent(e); + }); + self.bind(self.cursorh, "dblclick", function(e) { + self.cancelEvent(e); + }); + } + + } + + } + + if (!cap.cantouch && !self.opt.touchbehavior) { + + self.bind((cap.hasmousecapture) ? self.win : document, "mouseup", self.onmouseup); + self.bind(document, "mousemove", self.onmousemove); + if (self.onclick) self.bind(document, "click", self.onclick); + + self.bind(self.cursor, "mousedown", self.onmousedown); + self.bind(self.cursor, "mouseup", self.onmouseup); + + if (self.railh) { + self.bind(self.cursorh, "mousedown", function(e) { + self.onmousedown(e, true); + }); + self.bind(self.cursorh, "mouseup", self.onmouseup); + } + + if (!self.ispage && self.opt.enablescrollonselection) { + self.bind(self.win[0], "mousedown", self.onselectionstart); + self.bind(document, "mouseup", self.onselectionend); + self.bind(self.cursor, "mouseup", self.onselectionend); + if (self.cursorh) self.bind(self.cursorh, "mouseup", self.onselectionend); + self.bind(document, "mousemove", self.onselectiondrag); + } + + if (self.zoom) { + self.jqbind(self.zoom, "mouseenter", function() { + if (self.canshowonmouseevent) self.showCursor(); + self.rail.active = true; + }); + self.jqbind(self.zoom, "mouseleave", function() { + self.rail.active = false; + if (!self.rail.drag) self.hideCursor(); + }); + } + + } else { + + self.bind((cap.hasmousecapture) ? self.win : document, "mouseup", self.ontouchend); + self.bind(document, "mousemove", self.ontouchmove); + if (self.onclick) self.bind(document, "click", self.onclick); + + if (self.opt.cursordragontouch) { + self.bind(self.cursor, "mousedown", self.onmousedown); + self.bind(self.cursor, "mouseup", self.onmouseup); + //self.bind(self.cursor, "mousemove", self.onmousemove); + self.cursorh && self.bind(self.cursorh, "mousedown", function(e) { + self.onmousedown(e, true); + }); + //self.cursorh && self.bind(self.cursorh, "mousemove", self.onmousemove); + self.cursorh && self.bind(self.cursorh, "mouseup", self.onmouseup); + } else { + self.bind(self.rail, "mousedown", function(e){e.preventDefault();}); // prevent text selection + self.railh&&self.bind(self.railh, "mousedown", function(e){e.preventDefault();}); + } + + } + + + if (self.opt.enablemousewheel) { + if (!self.isiframe) self.mousewheel((cap.isie && self.ispage) ? document : self.win , self.onmousewheel); + self.mousewheel(self.rail, self.onmousewheel); + if (self.railh) self.mousewheel(self.railh, self.onmousewheelhr); + } + + if (!self.ispage && !cap.cantouch && !(/HTML|^BODY/.test(self.win[0].nodeName))) { + if (!self.win.attr("tabindex")) self.win.attr({ + "tabindex": tabindexcounter++ + }); + + self.jqbind(self.win, "focus", function(e) { + domfocus = (self.getTarget(e)).id || true; + self.hasfocus = true; + if (self.canshowonmouseevent) self.noticeCursor(); + }); + self.jqbind(self.win, "blur", function(e) { + domfocus = false; + self.hasfocus = false; + }); + + self.jqbind(self.win, "mouseenter", function(e) { + mousefocus = (self.getTarget(e)).id || true; + self.hasmousefocus = true; + if (self.canshowonmouseevent) self.noticeCursor(); + }); + self.jqbind(self.win, "mouseleave", function() { + mousefocus = false; + self.hasmousefocus = false; + if (!self.rail.drag) self.hideCursor(); + }); + + } + + } // !ie9mobile + + //Thanks to http://www.quirksmode.org !! + self.onkeypress = function(e) { + if (self.railslocked && self.page.maxh == 0) return true; + + e = (e) ? e : window.e; + var tg = self.getTarget(e); + if (tg && /INPUT|TEXTAREA|SELECT|OPTION/.test(tg.nodeName)) { + var tp = tg.getAttribute('type') || tg.type || false; + if ((!tp) || !(/submit|button|cancel/i.tp)) return true; + } + + if ($(tg).attr('contenteditable')) return true; + + if (self.hasfocus || (self.hasmousefocus && !domfocus) || (self.ispage && !domfocus && !mousefocus)) { + var key = e.keyCode; + + if (self.railslocked && key != 27) return self.cancelEvent(e); + + var ctrl = e.ctrlKey || false; + var shift = e.shiftKey || false; + + var ret = false; + switch (key) { + case 38: + case 63233: //safari + self.doScrollBy(24 * 3); + ret = true; + break; + case 40: + case 63235: //safari + self.doScrollBy(-24 * 3); + ret = true; + break; + case 37: + case 63232: //safari + if (self.railh) { + (ctrl) ? self.doScrollLeft(0): self.doScrollLeftBy(24 * 3); + ret = true; + } + break; + case 39: + case 63234: //safari + if (self.railh) { + (ctrl) ? self.doScrollLeft(self.page.maxw): self.doScrollLeftBy(-24 * 3); + ret = true; + } + break; + case 33: + case 63276: // safari + self.doScrollBy(self.view.h); + ret = true; + break; + case 34: + case 63277: // safari + self.doScrollBy(-self.view.h); + ret = true; + break; + case 36: + case 63273: // safari + (self.railh && ctrl) ? self.doScrollPos(0, 0): self.doScrollTo(0); + ret = true; + break; + case 35: + case 63275: // safari + (self.railh && ctrl) ? self.doScrollPos(self.page.maxw, self.page.maxh): self.doScrollTo(self.page.maxh); + ret = true; + break; + case 32: + if (self.opt.spacebarenabled) { + (shift) ? self.doScrollBy(self.view.h): self.doScrollBy(-self.view.h); + ret = true; + } + break; + case 27: // ESC + if (self.zoomactive) { + self.doZoom(); + ret = true; + } + break; + } + if (ret) return self.cancelEvent(e); + } + }; + + if (self.opt.enablekeyboard) self.bind(document, (cap.isopera && !cap.isopera12) ? "keypress" : "keydown", self.onkeypress); + + self.bind(document, "keydown", function(e) { + var ctrl = e.ctrlKey || false; + if (ctrl) self.wheelprevented = true; + }); + self.bind(document, "keyup", function(e) { + var ctrl = e.ctrlKey || false; + if (!ctrl) self.wheelprevented = false; + }); + self.bind(window,"blur",function(e){ + self.wheelprevented = false; + }); + + self.bind(window, 'resize', self.lazyResize); + self.bind(window, 'orientationchange', self.lazyResize); + + self.bind(window, "load", self.lazyResize); + + if (cap.ischrome && !self.ispage && !self.haswrapper) { //chrome void scrollbar bug - it persists in version 26 + var tmp = self.win.attr("style"); + var ww = parseFloat(self.win.css("width")) + 1; + self.win.css('width', ww); + self.synched("chromefix", function() { + self.win.attr("style", tmp); + }); + } + + + // Trying a cross-browser implementation - good luck! + + self.onAttributeChange = function(e) { + self.lazyResize(self.isieold ? 250 : 30); + }; + + if ((!self.isie11) && (ClsMutationObserver !== false)) { // IE11 crashes #568 + self.observerbody = new ClsMutationObserver(function(mutations) { + mutations.forEach(function(mut){ + if (mut.type=="attributes") { + return ($("body").hasClass("modal-open") && $("body").hasClass("modal-dialog") && !$.contains($('.modal-dialog')[0],self.doc[0])) ? self.hide() : self.show(); // Support for Bootstrap modal; Added check if the nice scroll element is inside a modal + } + }); + if (document.body.scrollHeight!=self.page.maxh) return self.lazyResize(30); + }); + self.observerbody.observe(document.body, { + childList: true, + subtree: true, + characterData: false, + attributes: true, + attributeFilter: ['class'] + }); + } + + if (!self.ispage && !self.haswrapper) { + // redesigned MutationObserver for Chrome18+/Firefox14+/iOS6+ with support for: remove div, add/remove content + if (ClsMutationObserver !== false) { + self.observer = new ClsMutationObserver(function(mutations) { + mutations.forEach(self.onAttributeChange); + }); + self.observer.observe(self.win[0], { + childList: true, + characterData: false, + attributes: true, + subtree: false + }); + self.observerremover = new ClsMutationObserver(function(mutations) { + mutations.forEach(function(mo) { + if (mo.removedNodes.length > 0) { + for (var dd in mo.removedNodes) { + if (!!self && (mo.removedNodes[dd] == self.win[0])) return self.remove(); + } + } + }); + }); + self.observerremover.observe(self.win[0].parentNode, { + childList: true, + characterData: false, + attributes: false, + subtree: false + }); + } else { + self.bind(self.win, (cap.isie && !cap.isie9) ? "propertychange" : "DOMAttrModified", self.onAttributeChange); + if (cap.isie9) self.win[0].attachEvent("onpropertychange", self.onAttributeChange); //IE9 DOMAttrModified bug + self.bind(self.win, "DOMNodeRemoved", function(e) { + if (e.target == self.win[0]) self.remove(); + }); + } + } + + // + + if (!self.ispage && self.opt.boxzoom) self.bind(window, "resize", self.resizeZoom); + if (self.istextarea) { + self.bind(self.win, "keydown", self.lazyResize); + self.bind(self.win, "mouseup", self.lazyResize); + } + + // self.checkrtlmode = true; + self.lazyResize(30); + + } + + if (this.doc[0].nodeName == 'IFRAME') { + var oniframeload = function() { + self.iframexd = false; + var doc; + try { + doc = 'contentDocument' in this ? this.contentDocument : this.contentWindow.document; + var a = doc.domain; + } catch (e) { + self.iframexd = true; + doc = false; + } + + if (self.iframexd) { + if ("console" in window) console.log('NiceScroll error: policy restriced iframe'); + return true; //cross-domain - I can't manage this + } + + self.forcescreen = true; + + if (self.isiframe) { + self.iframe = { + "doc": $(doc), + "html": self.doc.contents().find('html')[0], + "body": self.doc.contents().find('body')[0] + }; + self.getContentSize = function() { + return { + w: Math.max(self.iframe.html.scrollWidth, self.iframe.body.scrollWidth), + h: Math.max(self.iframe.html.scrollHeight, self.iframe.body.scrollHeight) + }; + }; + self.docscroll = $(self.iframe.body); //$(this.contentWindow); + } + + if (!cap.isios && self.opt.iframeautoresize && !self.isiframe) { + self.win.scrollTop(0); // reset position + self.doc.height(""); //reset height to fix browser bug + var hh = Math.max(doc.getElementsByTagName('html')[0].scrollHeight, doc.body.scrollHeight); + self.doc.height(hh); + } + self.lazyResize(30); + + if (cap.isie7) self.css($(self.iframe.html), _scrollyhidden); + self.css($(self.iframe.body), _scrollyhidden); + + if (cap.isios && self.haswrapper) { + self.css($(doc.body), { + '-webkit-transform': 'translate3d(0,0,0)' + }); // avoid iFrame content clipping - thanks to http://blog.derraab.com/2012/04/02/avoid-iframe-content-clipping-with-css-transform-on-ios/ + } + + if ('contentWindow' in this) { + self.bind(this.contentWindow, "scroll", self.onscroll); //IE8 & minor + } else { + self.bind(doc, "scroll", self.onscroll); + } + + if (self.opt.enablemousewheel) { + self.mousewheel(doc, self.onmousewheel); + } + + if (self.opt.enablekeyboard) self.bind(doc, (cap.isopera) ? "keypress" : "keydown", self.onkeypress); + + if (cap.cantouch || self.opt.touchbehavior) { + self.bind(doc, "mousedown", self.ontouchstart); + self.bind(doc, "mousemove", function(e) { + return self.ontouchmove(e, true); + }); + if (self.opt.grabcursorenabled && cap.cursorgrabvalue) self.css($(doc.body), { + 'cursor': cap.cursorgrabvalue + }); + } + + self.bind(doc, "mouseup", self.ontouchend); + + if (self.zoom) { + if (self.opt.dblclickzoom) self.bind(doc, 'dblclick', self.doZoom); + if (self.ongesturezoom) self.bind(doc, "gestureend", self.ongesturezoom); + } + }; + + if (this.doc[0].readyState && this.doc[0].readyState == "complete") { + setTimeout(function() { + oniframeload.call(self.doc[0], false); + }, 500); + } + self.bind(this.doc, "load", oniframeload); + + } + + }; + + this.showCursor = function(py, px) { + if (self.cursortimeout) { + clearTimeout(self.cursortimeout); + self.cursortimeout = 0; + } + if (!self.rail) return; + if (self.autohidedom) { + self.autohidedom.stop().css({ + opacity: self.opt.cursoropacitymax + }); + self.cursoractive = true; + } + + if (!self.rail.drag || self.rail.drag.pt != 1) { + if (py !== undefined && py !== false) { + self.scroll.y = Math.round(py * 1 / self.scrollratio.y); + } + if (px !== undefined) { + self.scroll.x = Math.round(px * 1 / self.scrollratio.x); + } + } + + self.cursor.css({ + height: self.cursorheight, + top: self.scroll.y + }); + if (self.cursorh) { + var lx = (self.hasreversehr) ? self.scrollvaluemaxw-self.scroll.x : self.scroll.x; + (!self.rail.align && self.rail.visibility) ? self.cursorh.css({ + width: self.cursorwidth, + left: lx + self.rail.width + }): self.cursorh.css({ + width: self.cursorwidth, + left: lx + }); + self.cursoractive = true; + } + + if (self.zoom) self.zoom.stop().css({ + opacity: self.opt.cursoropacitymax + }); + }; + + this.hideCursor = function(tm) { + if (self.cursortimeout) return; + if (!self.rail) return; + if (!self.autohidedom) return; + if (self.hasmousefocus && self.opt.autohidemode == "leave") return; + self.cursortimeout = setTimeout(function() { + if (!self.rail.active || !self.showonmouseevent) { + self.autohidedom.stop().animate({ + opacity: self.opt.cursoropacitymin + }); + if (self.zoom) self.zoom.stop().animate({ + opacity: self.opt.cursoropacitymin + }); + self.cursoractive = false; + } + self.cursortimeout = 0; + }, tm || self.opt.hidecursordelay); + }; + + this.noticeCursor = function(tm, py, px) { + self.showCursor(py, px); + if (!self.rail.active) self.hideCursor(tm); + }; + + this.getContentSize = + (self.ispage) ? + function() { + return { + w: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), + h: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + }; + } : (self.haswrapper) ? + function() { + return { + w: self.doc.outerWidth() + parseInt(self.win.css('paddingLeft')) + parseInt(self.win.css('paddingRight')), + h: self.doc.outerHeight() + parseInt(self.win.css('paddingTop')) + parseInt(self.win.css('paddingBottom')) + }; + } : function() { + return { + w: self.docscroll[0].scrollWidth, + h: self.docscroll[0].scrollHeight + }; + }; + + this.onResize = function(e, page) { + + if (!self || !self.win) return false; + + if (!self.haswrapper && !self.ispage) { + if (self.win.css('display') == 'none') { + if (self.visibility) self.hideRail().hideRailHr(); + return false; + } else { + if (!self.hidden && !self.visibility) self.showRail().showRailHr(); + } + } + + var premaxh = self.page.maxh; + var premaxw = self.page.maxw; + + var preview = { + h: self.view.h, + w: self.view.w + }; + + self.view = { + w: (self.ispage) ? self.win.width() : parseInt(self.win[0].clientWidth), + h: (self.ispage) ? self.win.height() : parseInt(self.win[0].clientHeight) + }; + + self.page = (page) ? page : self.getContentSize(); + + self.page.maxh = Math.max(0, self.page.h - self.view.h); + self.page.maxw = Math.max(0, self.page.w - self.view.w); + + if ((self.page.maxh == premaxh) && (self.page.maxw == premaxw) && (self.view.w == preview.w) && (self.view.h == preview.h)) { + // test position + if (!self.ispage) { + var pos = self.win.offset(); + if (self.lastposition) { + var lst = self.lastposition; + if ((lst.top == pos.top) && (lst.left == pos.left)) return self; //nothing to do + } + self.lastposition = pos; + } else { + return self; //nothing to do + } + } + + if (self.page.maxh == 0) { + self.hideRail(); + self.scrollvaluemax = 0; + self.scroll.y = 0; + self.scrollratio.y = 0; + self.cursorheight = 0; + self.setScrollTop(0); + if (self.rail) self.rail.scrollable = false; + } else { + self.page.maxh -= (self.opt.railpadding.top + self.opt.railpadding.bottom); //** + self.rail.scrollable = true; + } + + if (self.page.maxw == 0) { + self.hideRailHr(); + self.scrollvaluemaxw = 0; + self.scroll.x = 0; + self.scrollratio.x = 0; + self.cursorwidth = 0; + self.setScrollLeft(0); + if (self.railh) { + self.railh.scrollable = false; + } + } else { + self.page.maxw -= (self.opt.railpadding.left + self.opt.railpadding.right); //** + if (self.railh) self.railh.scrollable = (self.opt.horizrailenabled); + } + + self.railslocked = (self.locked) || ((self.page.maxh == 0) && (self.page.maxw == 0)); + if (self.railslocked) { + if (!self.ispage) self.updateScrollBar(self.view); + return false; + } + + if (!self.hidden && !self.visibility) { + self.showRail().showRailHr(); + } + else if (self.railh && (!self.hidden && !self.railh.visibility)) self.showRailHr(); + + if (self.istextarea && self.win.css('resize') && self.win.css('resize') != 'none') self.view.h -= 20; + + self.cursorheight = Math.min(self.view.h, Math.round(self.view.h * (self.view.h / self.page.h))); + self.cursorheight = (self.opt.cursorfixedheight) ? self.opt.cursorfixedheight : Math.max(self.opt.cursorminheight, self.cursorheight); + + self.cursorwidth = Math.min(self.view.w, Math.round(self.view.w * (self.view.w / self.page.w))); + self.cursorwidth = (self.opt.cursorfixedheight) ? self.opt.cursorfixedheight : Math.max(self.opt.cursorminheight, self.cursorwidth); + + self.scrollvaluemax = self.view.h - self.cursorheight - self.cursor.hborder - (self.opt.railpadding.top + self.opt.railpadding.bottom); //** + + if (self.railh) { + self.railh.width = (self.page.maxh > 0) ? (self.view.w - self.rail.width) : self.view.w; + self.scrollvaluemaxw = self.railh.width - self.cursorwidth - self.cursorh.wborder - (self.opt.railpadding.left + self.opt.railpadding.right); //** + } + + /* + if (self.checkrtlmode&&self.railh) { + self.checkrtlmode = false; + if (self.opt.rtlmode&&self.scroll.x==0) self.setScrollLeft(self.page.maxw); + } +*/ + + if (!self.ispage) self.updateScrollBar(self.view); + + self.scrollratio = { + x: (self.page.maxw / self.scrollvaluemaxw), + y: (self.page.maxh / self.scrollvaluemax) + }; + + var sy = self.getScrollTop(); + if (sy > self.page.maxh) { + self.doScrollTop(self.page.maxh); + } else { + self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); + self.scroll.x = Math.round(self.getScrollLeft() * (1 / self.scrollratio.x)); + if (self.cursoractive) self.noticeCursor(); + } + + if (self.scroll.y && (self.getScrollTop() == 0)) self.doScrollTo(Math.floor(self.scroll.y * self.scrollratio.y)); + + return self; + }; + + this.resize = self.onResize; + + this.hlazyresize = 0; + + this.lazyResize = function(tm) { // event debounce +/* + tm = (isNaN(tm)) ? 30 : tm; + self.debounced('resize', self.resize, tm); +*/ + +// if (!self.haswrapper&&self.opt.autohidemode!==false) self.hide(); + if (!self.haswrapper) self.hide(); + if (self.hlazyresize) clearTimeout(self.hlazyresize); + self.hlazyresize = setTimeout(function(){ + self && self.show().resize(); + },240); + + return self; + }; + + // modified by MDN https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/wheel + function _modernWheelEvent(dom, name, fn, bubble) { + self._bind(dom, name, function(e) { + var e = (e) ? e : window.event; + var event = { + original: e, + target: e.target || e.srcElement, + type: "wheel", + deltaMode: e.type == "MozMousePixelScroll" ? 0 : 1, + deltaX: 0, + deltaZ: 0, + preventDefault: function() { + e.preventDefault ? e.preventDefault() : e.returnValue = false; + return false; + }, + stopImmediatePropagation: function() { + (e.stopImmediatePropagation) ? e.stopImmediatePropagation(): e.cancelBubble = true; + } + }; + + if (name == "mousewheel") { + e.wheelDeltaX && (event.deltaX = -1 / 40 * e.wheelDeltaX); + e.wheelDeltaY && (event.deltaY = -1 / 40 * e.wheelDeltaY); + !event.deltaY && !event.deltaX && (event.deltaY = -1 / 40 * e.wheelDelta); + } else { + event.deltaY = e.detail; + } + + return fn.call(dom, event); + }, bubble); + } + + + + this.jqbind = function(dom, name, fn) { // use jquery bind for non-native events (mouseenter/mouseleave) + self.events.push({ + e: dom, + n: name, + f: fn, + q: true + }); + $(dom).bind(name, fn); + }; + + this.mousewheel = function(dom, fn, bubble) { // bind mousewheel + var el = ("jquery" in dom) ? dom[0] : dom; + if ("onwheel" in document.createElement("div")) { // Modern browsers support "wheel" + self._bind(el, "wheel", fn, bubble || false); + } else { + var wname = (document.onmousewheel !== undefined) ? "mousewheel" : "DOMMouseScroll"; // older Webkit+IE support or older Firefox + _modernWheelEvent(el, wname, fn, bubble || false); + if (wname == "DOMMouseScroll") _modernWheelEvent(el, "MozMousePixelScroll", fn, bubble || false); // Firefox legacy + } + }; + + if (cap.haseventlistener) { // W3C standard event model + + this.bind = function(dom, name, fn, bubble) { // W3C + var el = ("jquery" in dom) ? dom[0] : dom; + self._bind(el, name, fn, bubble || false); + }; + + this._bind = function(el, name, fn, bubble) { // primitive bind + self.events.push({ + e: el, + n: name, + f: fn, + b: bubble, + q: false + }); + el.addEventListener(name, fn, bubble || false); + }; + this.cancelEvent = function(e) { + if (!e) return false; + var e = (e.original) ? e.original : e; + if (e.cancelable) e.preventDefault(); + e.stopPropagation(); + if (e.preventManipulation) e.preventManipulation(); //IE10 + return false; + }; + this.stopPropagation = function(e) { + if (!e) return false; + var e = (e.original) ? e.original : e; + e.stopPropagation(); + return false; + }; + this._unbind = function(el, name, fn, bub) { // primitive unbind + el.removeEventListener(name, fn, bub); + }; + } else { // old IE model + + this.bind = function(dom, name, fn, bubble) { // legacy IE + var el = ("jquery" in dom) ? dom[0] : dom; + self._bind(el, name, function(e) { + e = e || window.event || false; + if (e && e.srcElement) { + e.target = e.srcElement; + } + if (!("pageY" in e)) { + e.pageX = e.clientX + document.documentElement.scrollLeft; + e.pageY = e.clientY + document.documentElement.scrollTop; + } + return ((fn.call(el, e) === false) || bubble === false) ? self.cancelEvent(e) : true; + }); + }; + + this._bind = function(el, name, fn, bubble) { // primitive bind + self.events.push({ + e: el, + n: name, + f: fn, + b: bubble, + q: false + }); + if (el.attachEvent) { + el.attachEvent("on" + name, fn); + } else { + el["on" + name] = fn; + } + }; + // Thanks to http://www.switchonthecode.com !! + this.cancelEvent = function(e) { + var e = window.event || false; + if (!e) return false; + e.cancelBubble = true; + e.cancel = true; + e.returnValue = false; + return false; + }; + this.stopPropagation = function(e) { + var e = window.event || false; + if (!e) return false; + e.cancelBubble = true; + return false; + }; + this._unbind = function(el, name, fn, bub) { // primitive unbind IE old + if (el.detachEvent) { + el.detachEvent('on' + name, fn); + } else { + el['on' + name] = false; + } + }; + } + + this.unbindAll = function() { + for (var a = 0; a < self.events.length; a++) { + var r = self.events[a]; + (r.q) ? r.e.unbind(r.n, r.f): self._unbind(r.e, r.n, r.f, r.b); + } + }; + + this.showRail = function() { + if ((self.page.maxh != 0) && (self.ispage || self.win.css('display') != 'none')) { + self.visibility = true; + self.rail.visibility = true; + self.rail.css('display', 'block'); + } + return self; + }; + + this.showRailHr = function() { + if (!self.railh) return self; + if ((self.page.maxw != 0) && (self.ispage || self.win.css('display') != 'none')) { + self.railh.visibility = true; + self.railh.css('display', 'block'); + } + return self; + }; + + this.hideRail = function() { + self.visibility = false; + self.rail.visibility = false; + self.rail.css('display', 'none'); + return self; + }; + + this.hideRailHr = function() { + if (!self.railh) return self; + self.railh.visibility = false; + self.railh.css('display', 'none'); + return self; + }; + + this.show = function() { + self.hidden = false; + self.railslocked = false; + return self.showRail().showRailHr(); + }; + + this.hide = function() { + self.hidden = true; + self.railslocked = true; + return self.hideRail().hideRailHr(); + }; + + this.toggle = function() { + return (self.hidden) ? self.show() : self.hide(); + }; + + this.remove = function() { + self.stop(); + if (self.cursortimeout) clearTimeout(self.cursortimeout); +// if (self.debouncedelayed) clearTimeout(self.debouncedelayed); + for(var n in self.delaylist) if (self.delaylist[n]) clearAnimationFrame(self.delaylist[n].h); + self.doZoomOut(); + self.unbindAll(); + + if (cap.isie9) self.win[0].detachEvent("onpropertychange", self.onAttributeChange); //IE9 DOMAttrModified bug + + if (self.observer !== false) self.observer.disconnect(); + if (self.observerremover !== false) self.observerremover.disconnect(); + if (self.observerbody !== false) self.observerbody.disconnect(); + + self.events = null; + + if (self.cursor) { + self.cursor.remove(); + } + if (self.cursorh) { + self.cursorh.remove(); + } + if (self.rail) { + self.rail.remove(); + } + if (self.railh) { + self.railh.remove(); + } + if (self.zoom) { + self.zoom.remove(); + } + for (var a = 0; a < self.saved.css.length; a++) { + var d = self.saved.css[a]; + d[0].css(d[1], (d[2] === undefined) ? '' : d[2]); + } + self.saved = false; + self.me.data('__nicescroll', ''); //erase all traces + + // memory leak fixed by GianlucaGuarini - thanks a lot! + // remove the current nicescroll from the $.nicescroll array & normalize array + var lst = $.nicescroll; + lst.each(function(i) { + if (!this) return; + if (this.id === self.id) { + delete lst[i]; + for (var b = ++i; b < lst.length; b++, i++) lst[i] = lst[b]; + lst.length--; + if (lst.length) delete lst[lst.length]; + } + }); + + for (var i in self) { + self[i] = null; + delete self[i]; + } + + self = null; + + }; + + this.scrollstart = function(fn) { + this.onscrollstart = fn; + return self; + }; + this.scrollend = function(fn) { + this.onscrollend = fn; + return self; + }; + this.scrollcancel = function(fn) { + this.onscrollcancel = fn; + return self; + }; + + this.zoomin = function(fn) { + this.onzoomin = fn; + return self; + }; + this.zoomout = function(fn) { + this.onzoomout = fn; + return self; + }; + + this.isScrollable = function(e) { + var dom = (e.target) ? e.target : e; + if (dom.nodeName == 'OPTION') return true; + while (dom && (dom.nodeType == 1) && !(/^BODY|HTML/.test(dom.nodeName))) { + var dd = $(dom); + var ov = dd.css('overflowY') || dd.css('overflowX') || dd.css('overflow') || ''; + if (/scroll|auto/.test(ov)) return (dom.clientHeight != dom.scrollHeight); + dom = (dom.parentNode) ? dom.parentNode : false; + } + return false; + }; + + this.getViewport = function(me) { + var dom = (me && me.parentNode) ? me.parentNode : false; + while (dom && (dom.nodeType == 1) && !(/^BODY|HTML/.test(dom.nodeName))) { + var dd = $(dom); + if (/fixed|absolute/.test(dd.css("position"))) return dd; + var ov = dd.css('overflowY') || dd.css('overflowX') || dd.css('overflow') || ''; + if ((/scroll|auto/.test(ov)) && (dom.clientHeight != dom.scrollHeight)) return dd; + if (dd.getNiceScroll().length > 0) return dd; + dom = (dom.parentNode) ? dom.parentNode : false; + } + return false; //(dom) ? $(dom) : false; + }; + + this.triggerScrollEnd = function() { + if (!self.onscrollend) return; + + var px = self.getScrollLeft(); + var py = self.getScrollTop(); + + var info = { + type: "scrollend", + current: { + x: px, + y: py + }, + end: { + x: px, + y: py + } + }; + self.onscrollend.call(self, info); + }; + + function execScrollWheel(e, hr, chkscroll) { + var px, py; + + if (e.deltaMode == 0) { // PIXEL + px = -Math.floor(e.deltaX * (self.opt.mousescrollstep / (18 * 3))); + py = -Math.floor(e.deltaY * (self.opt.mousescrollstep / (18 * 3))); + } else if (e.deltaMode == 1) { // LINE + px = -Math.floor(e.deltaX * self.opt.mousescrollstep); + py = -Math.floor(e.deltaY * self.opt.mousescrollstep); + } + + if (hr && self.opt.oneaxismousemode && (px == 0) && py) { // classic vertical-only mousewheel + browser with x/y support + px = py; + py = 0; + + if (chkscroll) { + var hrend = (px < 0) ? (self.getScrollLeft() >= self.page.maxw) : (self.getScrollLeft() <= 0); + if (hrend) { // preserve vertical scrolling + py = px; + px = 0; + } + } + + } + + // invert horizontal direction for rtl mode + if (self.isrtlmode) px = -px; + + if (px) { + if (self.scrollmom) { + self.scrollmom.stop(); + } + self.lastdeltax += px; + self.debounced("mousewheelx", function() { + var dt = self.lastdeltax; + self.lastdeltax = 0; + if (!self.rail.drag) { + self.doScrollLeftBy(dt); + } + }, 15); + } + if (py) { + if (self.opt.nativeparentscrolling && chkscroll && !self.ispage && !self.zoomactive) { + if (py < 0) { + if (self.getScrollTop() >= self.page.maxh) return true; + } else { + if (self.getScrollTop() <= 0) return true; + } + } + if (self.scrollmom) { + self.scrollmom.stop(); + } + self.lastdeltay += py; +// self.debounced("mousewheely", function() { + self.synched("mousewheely", function() { + var dt = self.lastdeltay; + self.lastdeltay = 0; + if (!self.rail.drag) { + self.doScrollBy(dt); + } + }, 15); + } + + e.stopImmediatePropagation(); + return e.preventDefault(); + } + + this.onmousewheel = function(e) { + if (self.wheelprevented) return; + if (self.railslocked) { + self.debounced("checkunlock", self.resize, 250); + return true; + } + if (self.rail.drag) return self.cancelEvent(e); + + if (self.opt.oneaxismousemode == "auto" && e.deltaX != 0) self.opt.oneaxismousemode = false; // check two-axis mouse support (not very elegant) + + if (self.opt.oneaxismousemode && e.deltaX == 0) { + if (!self.rail.scrollable) { + if (self.railh && self.railh.scrollable) { + return self.onmousewheelhr(e); + } else { + return true; + } + } + } + + var nw = +(new Date()); + var chk = false; + if (self.opt.preservenativescrolling && ((self.checkarea + 600) < nw)) { + self.nativescrollingarea = self.isScrollable(e); + chk = true; + } + self.checkarea = nw; + if (self.nativescrollingarea) return true; // this isn't my business + var ret = execScrollWheel(e, false, chk); + if (ret) self.checkarea = 0; + return ret; + }; + + this.onmousewheelhr = function(e) { + if (self.wheelprevented) return; + if (self.railslocked || !self.railh.scrollable) return true; + if (self.rail.drag) return self.cancelEvent(e); + + var nw = +(new Date()); + var chk = false; + if (self.opt.preservenativescrolling && ((self.checkarea + 600) < nw)) { + self.nativescrollingarea = self.isScrollable(e); + chk = true; + } + self.checkarea = nw; + if (self.nativescrollingarea) return true; // this isn't my business + if (self.railslocked) return self.cancelEvent(e); + + return execScrollWheel(e, true, chk); + }; + + this.stop = function() { + self.cancelScroll(); + if (self.scrollmon) self.scrollmon.stop(); + self.cursorfreezed = false; + self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); + self.noticeCursor(); + return self; + }; + + this.getTransitionSpeed = function(dif) { + var sp = Math.round(self.opt.scrollspeed * 10); + var ex = Math.min(sp, Math.round((dif / 20) * self.opt.scrollspeed)); + return (ex > 20) ? ex : 0; + }; + + if (!self.opt.smoothscroll) { + this.doScrollLeft = function(x, spd) { //direct + var y = self.getScrollTop(); + self.doScrollPos(x, y, spd); + }; + this.doScrollTop = function(y, spd) { //direct + var x = self.getScrollLeft(); + self.doScrollPos(x, y, spd); + }; + this.doScrollPos = function(x, y, spd) { //direct + var nx = (x > self.page.maxw) ? self.page.maxw : x; + if (nx < 0) nx = 0; + var ny = (y > self.page.maxh) ? self.page.maxh : y; + if (ny < 0) ny = 0; + self.synched('scroll', function() { + self.setScrollTop(ny); + self.setScrollLeft(nx); + }); + }; + this.cancelScroll = function() {}; // direct + } else if (self.ishwscroll && cap.hastransition && self.opt.usetransition && !!self.opt.smoothscroll) { + this.prepareTransition = function(dif, istime) { + var ex = (istime) ? ((dif > 20) ? dif : 0) : self.getTransitionSpeed(dif); + var trans = (ex) ? cap.prefixstyle + 'transform ' + ex + 'ms ease-out' : ''; + if (!self.lasttransitionstyle || self.lasttransitionstyle != trans) { + self.lasttransitionstyle = trans; + self.doc.css(cap.transitionstyle, trans); + } + return ex; + }; + + this.doScrollLeft = function(x, spd) { //trans + var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop(); + self.doScrollPos(x, y, spd); + }; + + this.doScrollTop = function(y, spd) { //trans + var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft(); + self.doScrollPos(x, y, spd); + }; + + this.doScrollPos = function(x, y, spd) { //trans + + var py = self.getScrollTop(); + var px = self.getScrollLeft(); + + if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection + + if (self.opt.bouncescroll == false) { + if (y < 0) y = 0; + else if (y > self.page.maxh) y = self.page.maxh; + if (x < 0) x = 0; + else if (x > self.page.maxw) x = self.page.maxw; + } + + if (self.scrollrunning && x == self.newscrollx && y == self.newscrolly) return false; + + self.newscrolly = y; + self.newscrollx = x; + + self.newscrollspeed = spd || false; + + if (self.timer) return false; + + self.timer = setTimeout(function() { + + var top = self.getScrollTop(); + var lft = self.getScrollLeft(); + + var dst = {}; + dst.x = x - lft; + dst.y = y - top; + dst.px = lft; + dst.py = top; + + var dd = Math.round(Math.sqrt(Math.pow(dst.x, 2) + Math.pow(dst.y, 2))); + var ms = (self.newscrollspeed && self.newscrollspeed > 1) ? self.newscrollspeed : self.getTransitionSpeed(dd); + if (self.newscrollspeed && self.newscrollspeed <= 1) ms *= self.newscrollspeed; + + self.prepareTransition(ms, true); + + if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); + + if (ms > 0) { + + if (!self.scrollrunning && self.onscrollstart) { + var info = { + "type": "scrollstart", + "current": { + "x": lft, + "y": top + }, + "request": { + "x": x, + "y": y + }, + "end": { + "x": self.newscrollx, + "y": self.newscrolly + }, + "speed": ms + }; + self.onscrollstart.call(self, info); + } + + if (cap.transitionend) { + if (!self.scrollendtrapped) { + self.scrollendtrapped = true; + self.bind(self.doc, cap.transitionend, self.onScrollTransitionEnd, false); //I have got to do something usefull!! + } + } else { + if (self.scrollendtrapped) clearTimeout(self.scrollendtrapped); + self.scrollendtrapped = setTimeout(self.onScrollTransitionEnd, ms); // simulate transitionend event + } + + var py = top; + var px = lft; + self.timerscroll = { + bz: new BezierClass(py, self.newscrolly, ms, 0, 0, 0.58, 1), + bh: new BezierClass(px, self.newscrollx, ms, 0, 0, 0.58, 1) + }; + if (!self.cursorfreezed) self.timerscroll.tm = setInterval(function() { + self.showCursor(self.getScrollTop(), self.getScrollLeft()); + }, 60); + + } + + self.synched("doScroll-set", function() { + self.timer = 0; + if (self.scrollendtrapped) self.scrollrunning = true; + self.setScrollTop(self.newscrolly); + self.setScrollLeft(self.newscrollx); + if (!self.scrollendtrapped) self.onScrollTransitionEnd(); + }); + + + }, 50); + + }; + + this.cancelScroll = function() { + if (!self.scrollendtrapped) return true; + var py = self.getScrollTop(); + var px = self.getScrollLeft(); + self.scrollrunning = false; + if (!cap.transitionend) clearTimeout(cap.transitionend); + self.scrollendtrapped = false; + self._unbind(self.doc[0], cap.transitionend, self.onScrollTransitionEnd); + self.prepareTransition(0); + self.setScrollTop(py); // fire event onscroll + if (self.railh) self.setScrollLeft(px); + if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); + self.timerscroll = false; + + self.cursorfreezed = false; + + self.showCursor(py, px); + return self; + }; + this.onScrollTransitionEnd = function() { + if (self.scrollendtrapped) self._unbind(self.doc[0], cap.transitionend, self.onScrollTransitionEnd); + self.scrollendtrapped = false; + self.prepareTransition(0); + if (self.timerscroll && self.timerscroll.tm) clearInterval(self.timerscroll.tm); + self.timerscroll = false; + var py = self.getScrollTop(); + var px = self.getScrollLeft(); + self.setScrollTop(py); // fire event onscroll + if (self.railh) self.setScrollLeft(px); // fire event onscroll left + + self.noticeCursor(false, py, px); + + self.cursorfreezed = false; + + if (py < 0) py = 0; + else if (py > self.page.maxh) py = self.page.maxh; + if (px < 0) px = 0; + else if (px > self.page.maxw) px = self.page.maxw; + if ((py != self.newscrolly) || (px != self.newscrollx)) return self.doScrollPos(px, py, self.opt.snapbackspeed); + + if (self.onscrollend && self.scrollrunning) { + self.triggerScrollEnd(); + } + self.scrollrunning = false; + + }; + + } else { + + this.doScrollLeft = function(x, spd) { //no-trans + var y = (self.scrollrunning) ? self.newscrolly : self.getScrollTop(); + self.doScrollPos(x, y, spd); + }; + + this.doScrollTop = function(y, spd) { //no-trans + var x = (self.scrollrunning) ? self.newscrollx : self.getScrollLeft(); + self.doScrollPos(x, y, spd); + }; + + this.doScrollPos = function(x, y, spd) { //no-trans + var y = (y === undefined || y === false) ? self.getScrollTop(true) : y; + + if ((self.timer) && (self.newscrolly == y) && (self.newscrollx == x)) return true; + + if (self.timer) clearAnimationFrame(self.timer); + self.timer = 0; + + var py = self.getScrollTop(); + var px = self.getScrollLeft(); + + if (((self.newscrolly - py) * (y - py) < 0) || ((self.newscrollx - px) * (x - px) < 0)) self.cancelScroll(); //inverted movement detection + + self.newscrolly = y; + self.newscrollx = x; + + if (!self.bouncescroll || !self.rail.visibility) { + if (self.newscrolly < 0) { + self.newscrolly = 0; + } else if (self.newscrolly > self.page.maxh) { + self.newscrolly = self.page.maxh; + } + } + if (!self.bouncescroll || !self.railh.visibility) { + if (self.newscrollx < 0) { + self.newscrollx = 0; + } else if (self.newscrollx > self.page.maxw) { + self.newscrollx = self.page.maxw; + } + } + + self.dst = {}; + self.dst.x = x - px; + self.dst.y = y - py; + self.dst.px = px; + self.dst.py = py; + + var dst = Math.round(Math.sqrt(Math.pow(self.dst.x, 2) + Math.pow(self.dst.y, 2))); + + self.dst.ax = self.dst.x / dst; + self.dst.ay = self.dst.y / dst; + + var pa = 0; + var pe = dst; + + if (self.dst.x == 0) { + pa = py; + pe = y; + self.dst.ay = 1; + self.dst.py = 0; + } else if (self.dst.y == 0) { + pa = px; + pe = x; + self.dst.ax = 1; + self.dst.px = 0; + } + + var ms = self.getTransitionSpeed(dst); + if (spd && spd <= 1) ms *= spd; + if (ms > 0) { + self.bzscroll = (self.bzscroll) ? self.bzscroll.update(pe, ms) : new BezierClass(pa, pe, ms, 0, 1, 0, 1); + } else { + self.bzscroll = false; + } + + if (self.timer) return; + + if ((py == self.page.maxh && y >= self.page.maxh) || (px == self.page.maxw && x >= self.page.maxw)) self.checkContentSize(); + + var sync = 1; + + function scrolling() { + if (self.cancelAnimationFrame) return true; + + self.scrollrunning = true; + + sync = 1 - sync; + if (sync) return (self.timer = setAnimationFrame(scrolling) || 1); + + var done = 0; + var sx, sy; + + var sc = sy = self.getScrollTop(); + if (self.dst.ay) { + sc = (self.bzscroll) ? self.dst.py + (self.bzscroll.getNow() * self.dst.ay) : self.newscrolly; + var dr = sc - sy; + if ((dr < 0 && sc < self.newscrolly) || (dr > 0 && sc > self.newscrolly)) sc = self.newscrolly; + self.setScrollTop(sc); + if (sc == self.newscrolly) done = 1; + } else { + done = 1; + } + + var scx = sx = self.getScrollLeft(); + if (self.dst.ax) { + scx = (self.bzscroll) ? self.dst.px + (self.bzscroll.getNow() * self.dst.ax) : self.newscrollx; + var dr = scx - sx; + if ((dr < 0 && scx < self.newscrollx) || (dr > 0 && scx > self.newscrollx)) scx = self.newscrollx; + self.setScrollLeft(scx); + if (scx == self.newscrollx) done += 1; + } else { + done += 1; + } + + if (done == 2) { + self.timer = 0; + self.cursorfreezed = false; + self.bzscroll = false; + self.scrollrunning = false; + if (sc < 0) sc = 0; + else if (sc > self.page.maxh) sc = Math.max(0,self.page.maxh); + if (scx < 0) scx = 0; + else if (scx > self.page.maxw) scx = self.page.maxw; + if ((scx != self.newscrollx) || (sc != self.newscrolly)) self.doScrollPos(scx, sc); + else { + if (self.onscrollend) { + self.triggerScrollEnd(); + } + } + } else { + self.timer = setAnimationFrame(scrolling) || 1; + } + } + self.cancelAnimationFrame = false; + self.timer = 1; + + if (self.onscrollstart && !self.scrollrunning) { + var info = { + "type": "scrollstart", + "current": { + "x": px, + "y": py + }, + "request": { + "x": x, + "y": y + }, + "end": { + "x": self.newscrollx, + "y": self.newscrolly + }, + "speed": ms + }; + self.onscrollstart.call(self, info); + } + + scrolling(); + + if ((py == self.page.maxh && y >= py) || (px == self.page.maxw && x >= px)) self.checkContentSize(); + + self.noticeCursor(); + }; + + this.cancelScroll = function() { + if (self.timer) clearAnimationFrame(self.timer); + self.timer = 0; + self.bzscroll = false; + self.scrollrunning = false; + return self; + }; + + } + + this.doScrollBy = function(stp, relative) { + var ny = 0; + if (relative) { + ny = Math.floor((self.scroll.y - stp) * self.scrollratio.y); + } else { + var sy = (self.timer) ? self.newscrolly : self.getScrollTop(true); + ny = sy - stp; + } + if (self.bouncescroll) { + var haf = Math.round(self.view.h / 2); + if (ny < -haf) ny = -haf; + else if (ny > (self.page.maxh + haf)) ny = (self.page.maxh + haf); + } + self.cursorfreezed = false; + + var py = self.getScrollTop(true); + if (ny < 0 && py <= 0) return self.noticeCursor(); + else if (ny > self.page.maxh && py >= self.page.maxh) { + self.checkContentSize(); + return self.noticeCursor(); + } + + self.doScrollTop(ny); + }; + + this.doScrollLeftBy = function(stp, relative) { + var nx = 0; + if (relative) { + nx = Math.floor((self.scroll.x - stp) * self.scrollratio.x); + } else { + var sx = (self.timer) ? self.newscrollx : self.getScrollLeft(true); + nx = sx - stp; + } + if (self.bouncescroll) { + var haf = Math.round(self.view.w / 2); + if (nx < -haf) nx = -haf; + else if (nx > (self.page.maxw + haf)) nx = (self.page.maxw + haf); + } + self.cursorfreezed = false; + + var px = self.getScrollLeft(true); + if (nx < 0 && px <= 0) return self.noticeCursor(); + else if (nx > self.page.maxw && px >= self.page.maxw) return self.noticeCursor(); + + self.doScrollLeft(nx); + }; + + this.doScrollTo = function(pos, relative) { + var ny = (relative) ? Math.round(pos * self.scrollratio.y) : pos; + if (ny < 0) ny = 0; + else if (ny > self.page.maxh) ny = self.page.maxh; + self.cursorfreezed = false; + self.doScrollTop(pos); + }; + + this.checkContentSize = function() { + var pg = self.getContentSize(); + if ((pg.h != self.page.h) || (pg.w != self.page.w)) self.resize(false, pg); + }; + + self.onscroll = function(e) { + if (self.rail.drag) return; + if (!self.cursorfreezed) { + self.synched('scroll', function() { + self.scroll.y = Math.round(self.getScrollTop() * (1 / self.scrollratio.y)); + if (self.railh) self.scroll.x = Math.round(self.getScrollLeft() * (1 / self.scrollratio.x)); + self.noticeCursor(); + }); + } + }; + self.bind(self.docscroll, "scroll", self.onscroll); + + this.doZoomIn = function(e) { + if (self.zoomactive) return; + self.zoomactive = true; + + self.zoomrestore = { + style: {} + }; + var lst = ['position', 'top', 'left', 'zIndex', 'backgroundColor', 'marginTop', 'marginBottom', 'marginLeft', 'marginRight']; + var win = self.win[0].style; + for (var a in lst) { + var pp = lst[a]; + self.zoomrestore.style[pp] = (win[pp] !== undefined) ? win[pp] : ''; + } + + self.zoomrestore.style.width = self.win.css('width'); + self.zoomrestore.style.height = self.win.css('height'); + + self.zoomrestore.padding = { + w: self.win.outerWidth() - self.win.width(), + h: self.win.outerHeight() - self.win.height() + }; + + if (cap.isios4) { + self.zoomrestore.scrollTop = $(window).scrollTop(); + $(window).scrollTop(0); + } + + self.win.css({ + position: (cap.isios4) ? "absolute" : "fixed", + top: 0, + left: 0, + zIndex: globalmaxzindex + 100, + margin: 0 + }); + var bkg = self.win.css("backgroundColor"); + if (bkg == "" || /transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(bkg)) self.win.css("backgroundColor", "#fff"); + self.rail.css({ + zIndex: globalmaxzindex + 101 + }); + self.zoom.css({ + zIndex: globalmaxzindex + 102 + }); + self.zoom.css('backgroundPosition', '0px -18px'); + self.resizeZoom(); + + if (self.onzoomin) self.onzoomin.call(self); + + return self.cancelEvent(e); + }; + + this.doZoomOut = function(e) { + if (!self.zoomactive) return; + self.zoomactive = false; + + self.win.css("margin", ""); + self.win.css(self.zoomrestore.style); + + if (cap.isios4) { + $(window).scrollTop(self.zoomrestore.scrollTop); + } + + self.rail.css({ + "z-index": self.zindex + }); + self.zoom.css({ + "z-index": self.zindex + }); + self.zoomrestore = false; + self.zoom.css('backgroundPosition', '0px 0px'); + self.onResize(); + + if (self.onzoomout) self.onzoomout.call(self); + + return self.cancelEvent(e); + }; + + this.doZoom = function(e) { + return (self.zoomactive) ? self.doZoomOut(e) : self.doZoomIn(e); + }; + + this.resizeZoom = function() { + if (!self.zoomactive) return; + + var py = self.getScrollTop(); //preserve scrolling position + self.win.css({ + width: $(window).width() - self.zoomrestore.padding.w + "px", + height: $(window).height() - self.zoomrestore.padding.h + "px" + }); + self.onResize(); + + self.setScrollTop(Math.min(self.page.maxh, py)); + }; + + this.init(); + + $.nicescroll.push(this); + + }; + + // Inspired by the work of Kin Blas + // http://webpro.host.adobe.com/people/jblas/momentum/includes/jquery.momentum.0.7.js + + + var ScrollMomentumClass2D = function(nc) { + var self = this; + this.nc = nc; + + this.lastx = 0; + this.lasty = 0; + this.speedx = 0; + this.speedy = 0; + this.lasttime = 0; + this.steptime = 0; + this.snapx = false; + this.snapy = false; + this.demulx = 0; + this.demuly = 0; + + this.lastscrollx = -1; + this.lastscrolly = -1; + + this.chkx = 0; + this.chky = 0; + + this.timer = 0; + + this.time = function() { + return +new Date(); //beautifull hack + }; + + this.reset = function(px, py) { + self.stop(); + var now = self.time(); + self.steptime = 0; + self.lasttime = now; + self.speedx = 0; + self.speedy = 0; + self.lastx = px; + self.lasty = py; + self.lastscrollx = -1; + self.lastscrolly = -1; + }; + + this.update = function(px, py) { + var now = self.time(); + self.steptime = now - self.lasttime; + self.lasttime = now; + var dy = py - self.lasty; + var dx = px - self.lastx; + var sy = self.nc.getScrollTop(); + var sx = self.nc.getScrollLeft(); + var newy = sy + dy; + var newx = sx + dx; + self.snapx = (newx < 0) || (newx > self.nc.page.maxw); + self.snapy = (newy < 0) || (newy > self.nc.page.maxh); + self.speedx = dx; + self.speedy = dy; + self.lastx = px; + self.lasty = py; + }; + + this.stop = function() { + self.nc.unsynched("domomentum2d"); + if (self.timer) clearTimeout(self.timer); + self.timer = 0; + self.lastscrollx = -1; + self.lastscrolly = -1; + }; + + this.doSnapy = function(nx, ny) { + var snap = false; + + if (ny < 0) { + ny = 0; + snap = true; + } else if (ny > self.nc.page.maxh) { + ny = self.nc.page.maxh; + snap = true; + } + + if (nx < 0) { + nx = 0; + snap = true; + } else if (nx > self.nc.page.maxw) { + nx = self.nc.page.maxw; + snap = true; + } + + (snap) ? self.nc.doScrollPos(nx, ny, self.nc.opt.snapbackspeed): self.nc.triggerScrollEnd(); + }; + + this.doMomentum = function(gp) { + var t = self.time(); + var l = (gp) ? t + gp : self.lasttime; + + var sl = self.nc.getScrollLeft(); + var st = self.nc.getScrollTop(); + + var pageh = self.nc.page.maxh; + var pagew = self.nc.page.maxw; + + self.speedx = (pagew > 0) ? Math.min(60, self.speedx) : 0; + self.speedy = (pageh > 0) ? Math.min(60, self.speedy) : 0; + + var chk = l && (t - l) <= 60; + + if ((st < 0) || (st > pageh) || (sl < 0) || (sl > pagew)) chk = false; + + var sy = (self.speedy && chk) ? self.speedy : false; + var sx = (self.speedx && chk) ? self.speedx : false; + + if (sy || sx) { + var tm = Math.max(16, self.steptime); //timeout granularity + + if (tm > 50) { // do smooth + var xm = tm / 50; + self.speedx *= xm; + self.speedy *= xm; + tm = 50; + } + + self.demulxy = 0; + + self.lastscrollx = self.nc.getScrollLeft(); + self.chkx = self.lastscrollx; + self.lastscrolly = self.nc.getScrollTop(); + self.chky = self.lastscrolly; + + var nx = self.lastscrollx; + var ny = self.lastscrolly; + + var onscroll = function() { + var df = ((self.time() - t) > 600) ? 0.04 : 0.02; + + if (self.speedx) { + nx = Math.floor(self.lastscrollx - (self.speedx * (1 - self.demulxy))); + self.lastscrollx = nx; + if ((nx < 0) || (nx > pagew)) df = 0.10; + } + + if (self.speedy) { + ny = Math.floor(self.lastscrolly - (self.speedy * (1 - self.demulxy))); + self.lastscrolly = ny; + if ((ny < 0) || (ny > pageh)) df = 0.10; + } + + self.demulxy = Math.min(1, self.demulxy + df); + + self.nc.synched("domomentum2d", function() { + + if (self.speedx) { + var scx = self.nc.getScrollLeft(); +// if (scx != self.chkx) self.stop(); + self.chkx = nx; + self.nc.setScrollLeft(nx); + } + + if (self.speedy) { + var scy = self.nc.getScrollTop(); +// if (scy != self.chky) self.stop(); + self.chky = ny; + self.nc.setScrollTop(ny); + } + + if (!self.timer) { + self.nc.hideCursor(); + self.doSnapy(nx, ny); + } + + }); + + if (self.demulxy < 1) { + self.timer = setTimeout(onscroll, tm); + } else { + self.stop(); + self.nc.hideCursor(); + self.doSnapy(nx, ny); + } + }; + + onscroll(); + + } else { + self.doSnapy(self.nc.getScrollLeft(), self.nc.getScrollTop()); + } + + }; + + }; + + + // override jQuery scrollTop + + var _scrollTop = jQuery.fn.scrollTop; // preserve original function + + jQuery.cssHooks.pageYOffset = { + get: function(elem, computed, extra) { + var nice = $.data(elem, '__nicescroll') || false; + return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(elem); + }, + set: function(elem, value) { + var nice = $.data(elem, '__nicescroll') || false; + (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)): _scrollTop.call(elem, value); + return this; + } + }; + + /* + $.fx.step["scrollTop"] = function(fx){ + $.cssHooks["scrollTop"].set( fx.elem, fx.now + fx.unit ); + }; +*/ + + jQuery.fn.scrollTop = function(value) { + if (value === undefined) { + var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false; + return (nice && nice.ishwscroll) ? nice.getScrollTop() : _scrollTop.call(this); + } else { + return this.each(function() { + var nice = $.data(this, '__nicescroll') || false; + (nice && nice.ishwscroll) ? nice.setScrollTop(parseInt(value)): _scrollTop.call($(this), value); + }); + } + }; + + // override jQuery scrollLeft + + var _scrollLeft = jQuery.fn.scrollLeft; // preserve original function + + $.cssHooks.pageXOffset = { + get: function(elem, computed, extra) { + var nice = $.data(elem, '__nicescroll') || false; + return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(elem); + }, + set: function(elem, value) { + var nice = $.data(elem, '__nicescroll') || false; + (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)): _scrollLeft.call(elem, value); + return this; + } + }; + + /* + $.fx.step["scrollLeft"] = function(fx){ + $.cssHooks["scrollLeft"].set( fx.elem, fx.now + fx.unit ); + }; +*/ + + jQuery.fn.scrollLeft = function(value) { + if (value === undefined) { + var nice = (this[0]) ? $.data(this[0], '__nicescroll') || false : false; + return (nice && nice.ishwscroll) ? nice.getScrollLeft() : _scrollLeft.call(this); + } else { + return this.each(function() { + var nice = $.data(this, '__nicescroll') || false; + (nice && nice.ishwscroll) ? nice.setScrollLeft(parseInt(value)): _scrollLeft.call($(this), value); + }); + } + }; + + var NiceScrollArray = function(doms) { + var self = this; + this.length = 0; + this.name = "nicescrollarray"; + + this.each = function(fn) { + $.each(self, fn); + return self; + }; + + this.push = function(nice) { + self[self.length] = nice; + self.length++; + }; + + this.eq = function(idx) { + return self[idx]; + }; + + if (doms) { + for (var a = 0; a < doms.length; a++) { + var nice = $.data(doms[a], '__nicescroll') || false; + if (nice) { + this[this.length] = nice; + this.length++; + } + } + } + + return this; + }; + + function mplex(el, lst, fn) { + for (var a = 0; a < lst.length; a++) fn(el, lst[a]); + } + mplex( + NiceScrollArray.prototype, ['show', 'hide', 'toggle', 'onResize', 'resize', 'remove', 'stop', 'doScrollPos'], + function(e, n) { + e[n] = function() { + var args = arguments; + return this.each(function() { + this[n].apply(this, args); + }); + }; + } + ); + + jQuery.fn.getNiceScroll = function(index) { + if (index === undefined) { + return new NiceScrollArray(this); + } else { + return this[index] && $.data(this[index], '__nicescroll') || false; + } + }; + + jQuery.expr[':'].nicescroll = function(a) { + return $.data(a, '__nicescroll') !== undefined; + }; + + $.fn.niceScroll = function(wrapper, opt) { + if (opt === undefined && typeof wrapper == "object" && !("jquery" in wrapper)) { + opt = wrapper; + wrapper = false; + } + opt = $.extend({},opt); // cloning + var ret = new NiceScrollArray(); + if (opt === undefined) opt = {}; + + if (wrapper || false) { + opt.doc = $(wrapper); + opt.win = $(this); + } + var docundef = !("doc" in opt); + if (!docundef && !("win" in opt)) opt.win = $(this); + + this.each(function() { + var nice = $(this).data('__nicescroll') || false; + if (!nice) { + opt.doc = (docundef) ? $(this) : opt.doc; + nice = new NiceScrollClass(opt, $(this)); + $(this).data('__nicescroll', nice); + } + ret.push(nice); + }); + return (ret.length == 1) ? ret[0] : ret; + }; + + window.NiceScroll = { + getjQuery: function() { + return jQuery; + } + }; + + if (!$.nicescroll) { + $.nicescroll = new NiceScrollArray(); + $.nicescroll.options = _globaloptions; + } + +})); + diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/jquery.nicescroll.min.js b/d2ice.att.io/app/core/js/jquery.nicescroll-master/jquery.nicescroll.min.js new file mode 100755 index 00000000..2013b3cc --- /dev/null +++ b/d2ice.att.io/app/core/js/jquery.nicescroll-master/jquery.nicescroll.min.js @@ -0,0 +1,158 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/* jquery.nicescroll 3.6.8 InuYaksa*2015 MIT http://nicescroll.areaaperta.com */(function(f){"function"===typeof define&&define.amd?define(["jquery"],f):"object"===typeof exports?module.exports=f(require("jquery")):f(jQuery)})(function(f){var B=!1,F=!1,O=0,P=2E3,A=0,J=["webkit","ms","moz","o"],v=window.requestAnimationFrame||!1,w=window.cancelAnimationFrame||!1;if(!v)for(var Q in J){var G=J[Q];if(v=window[G+"RequestAnimationFrame"]){w=window[G+"CancelAnimationFrame"]||window[G+"CancelRequestAnimationFrame"];break}}var x=window.MutationObserver||window.WebKitMutationObserver|| +!1,K={zindex:"auto",cursoropacitymin:0,cursoropacitymax:1,cursorcolor:"#424242",cursorwidth:"6px",cursorborder:"1px solid #fff",cursorborderradius:"5px",scrollspeed:60,mousescrollstep:24,touchbehavior:!1,hwacceleration:!0,usetransition:!0,boxzoom:!1,dblclickzoom:!0,gesturezoom:!0,grabcursorenabled:!0,autohidemode:!0,background:"",iframeautoresize:!0,cursorminheight:32,preservenativescrolling:!0,railoffset:!1,railhoffset:!1,bouncescroll:!0,spacebarenabled:!0,railpadding:{top:0,right:0,left:0,bottom:0}, +disableoutline:!0,horizrailenabled:!0,railalign:"right",railvalign:"bottom",enabletranslate3d:!0,enablemousewheel:!0,enablekeyboard:!0,smoothscroll:!0,sensitiverail:!0,enablemouselockapi:!0,cursorfixedheight:!1,directionlockdeadzone:6,hidecursordelay:400,nativeparentscrolling:!0,enablescrollonselection:!0,overflowx:!0,overflowy:!0,cursordragspeed:.3,rtlmode:"auto",cursordragontouch:!1,oneaxismousemode:"auto",scriptpath:function(){var f=document.getElementsByTagName("script"),f=f.length?f[f.length- +1].src.split("?")[0]:"";return 0d?a.getScrollLeft()>=a.page.maxw:0>=a.getScrollLeft())&&(e=d,d=0));a.isrtlmode&&(d=-d);d&&(a.scrollmom&&a.scrollmom.stop(),a.lastdeltax+=d,a.debounced("mousewheelx",function(){var b=a.lastdeltax;a.lastdeltax=0;a.rail.drag||a.doScrollLeftBy(b)},15));if(e){if(a.opt.nativeparentscrolling&&c&&!a.ispage&&!a.zoomactive)if(0>e){if(a.getScrollTop()>=a.page.maxh)return!0}else if(0>=a.getScrollTop())return!0;a.scrollmom&&a.scrollmom.stop();a.lastdeltay+=e; +a.synched("mousewheely",function(){var b=a.lastdeltay;a.lastdeltay=0;a.rail.drag||a.doScrollBy(b)},15)}b.stopImmediatePropagation();return b.preventDefault()}var a=this;this.version="3.6.8";this.name="nicescroll";this.me=c;this.opt={doc:f("body"),win:!1};f.extend(this.opt,K);this.opt.snapbackspeed=80;if(h)for(var r in a.opt)void 0!==h[r]&&(a.opt[r]=h[r]);a.opt.disablemutationobserver&&(x=!1);this.iddoc=(this.doc=a.opt.doc)&&this.doc[0]?this.doc[0].id||"":"";this.ispage=/^BODY|HTML/.test(a.opt.win? +a.opt.win[0].nodeName:this.doc[0].nodeName);this.haswrapper=!1!==a.opt.win;this.win=a.opt.win||(this.ispage?f(window):this.doc);this.docscroll=this.ispage&&!this.haswrapper?f(window):this.win;this.body=f("body");this.iframe=this.isfixed=this.viewport=!1;this.isiframe="IFRAME"==this.doc[0].nodeName&&"IFRAME"==this.win[0].nodeName;this.istextarea="TEXTAREA"==this.win[0].nodeName;this.forcescreen=!1;this.canshowonmouseevent="scroll"!=a.opt.autohidemode;this.page=this.view=this.onzoomout=this.onzoomin= +this.onscrollcancel=this.onscrollend=this.onscrollstart=this.onclick=this.ongesturezoom=this.onkeypress=this.onmousewheel=this.onmousemove=this.onmouseup=this.onmousedown=!1;this.scroll={x:0,y:0};this.scrollratio={x:0,y:0};this.cursorheight=20;this.scrollvaluemax=0;if("auto"==this.opt.rtlmode){r=this.win[0]==window?this.body:this.win;var p=r.css("writing-mode")||r.css("-webkit-writing-mode")||r.css("-ms-writing-mode")||r.css("-moz-writing-mode");"horizontal-tb"==p||"lr-tb"==p||""==p?(this.isrtlmode= +"rtl"==r.css("direction"),this.isvertical=!1):(this.isrtlmode="vertical-rl"==p||"tb"==p||"tb-rl"==p||"rl-tb"==p,this.isvertical="vertical-rl"==p||"tb"==p||"tb-rl"==p)}else this.isrtlmode=!0===this.opt.rtlmode,this.isvertical=!1;this.observerbody=this.observerremover=this.observer=this.scrollmom=this.scrollrunning=!1;do this.id="ascrail"+P++;while(document.getElementById(this.id));this.hasmousefocus=this.hasfocus=this.zoomactive=this.zoom=this.selectiondrag=this.cursorfreezed=this.cursor=this.rail= +!1;this.visibility=!0;this.hidden=this.locked=this.railslocked=!1;this.cursoractive=!0;this.wheelprevented=!1;this.overflowx=a.opt.overflowx;this.overflowy=a.opt.overflowy;this.nativescrollingarea=!1;this.checkarea=0;this.events=[];this.saved={};this.delaylist={};this.synclist={};this.lastdeltay=this.lastdeltax=0;this.detected=R();var e=f.extend({},this.detected);this.ishwscroll=(this.canhwscroll=e.hastransform&&a.opt.hwacceleration)&&a.haswrapper;this.hasreversehr=this.isrtlmode?this.isvertical? +!(e.iswebkit||e.isie||e.isie11):!(e.iswebkit||e.isie&&!e.isie10&&!e.isie11):!1;this.istouchcapable=!1;e.cantouch||!e.hasw3ctouch&&!e.hasmstouch?!e.cantouch||e.isios||e.isandroid||!e.iswebkit&&!e.ismozilla||(this.istouchcapable=!0):this.istouchcapable=!0;a.opt.enablemouselockapi||(e.hasmousecapture=!1,e.haspointerlock=!1);this.debounced=function(b,g,c){a&&(a.delaylist[b]||(g.call(a),a.delaylist[b]={h:v(function(){a.delaylist[b].fn.call(a);a.delaylist[b]=!1},c)}),a.delaylist[b].fn=g)};var I=!1;this.synched= +function(b,g){a.synclist[b]=g;(function(){I||(v(function(){if(a){I=!1;for(var b in a.synclist){var g=a.synclist[b];g&&g.call(a);a.synclist[b]=!1}}}),I=!0)})();return b};this.unsynched=function(b){a.synclist[b]&&(a.synclist[b]=!1)};this.css=function(b,g){for(var c in g)a.saved.css.push([b,c,b.css(c)]),b.css(c,g[c])};this.scrollTop=function(b){return void 0===b?a.getScrollTop():a.setScrollTop(b)};this.scrollLeft=function(b){return void 0===b?a.getScrollLeft():a.setScrollLeft(b)};var D=function(a,g, +c,d,e,f,k){this.st=a;this.ed=g;this.spd=c;this.p1=d||0;this.p2=e||1;this.p3=f||0;this.p4=k||1;this.ts=(new Date).getTime();this.df=this.ed-this.st};D.prototype={B2:function(a){return 3*a*a*(1-a)},B3:function(a){return 3*a*(1-a)*(1-a)},B4:function(a){return(1-a)*(1-a)*(1-a)},getNow:function(){var a=1-((new Date).getTime()-this.ts)/this.spd,g=this.B2(a)+this.B3(a)+this.B4(a);return 0>a?this.ed:this.st+Math.round(this.df*g)},update:function(a,g){this.st=this.getNow();this.ed=a;this.spd=g;this.ts=(new Date).getTime(); +this.df=this.ed-this.st;return this}};if(this.ishwscroll){this.doc.translate={x:0,y:0,tx:"0px",ty:"0px"};e.hastranslate3d&&e.isios&&this.doc.css("-webkit-backface-visibility","hidden");this.getScrollTop=function(b){if(!b){if(b=k())return 16==b.length?-b[13]:-b[5];if(a.timerscroll&&a.timerscroll.bz)return a.timerscroll.bz.getNow()}return a.doc.translate.y};this.getScrollLeft=function(b){if(!b){if(b=k())return 16==b.length?-b[12]:-b[4];if(a.timerscroll&&a.timerscroll.bh)return a.timerscroll.bh.getNow()}return a.doc.translate.x}; +this.notifyScrollEvent=function(a){var g=document.createEvent("UIEvents");g.initUIEvent("scroll",!1,!0,window,1);g.niceevent=!0;a.dispatchEvent(g)};var y=this.isrtlmode?1:-1;e.hastranslate3d&&a.opt.enabletranslate3d?(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle, +"translate3d("+a.doc.translate.tx+","+a.doc.translate.ty+",0px)");g||a.notifyScrollEvent(a.win[0])}):(this.setScrollTop=function(b,g){a.doc.translate.y=b;a.doc.translate.ty=-1*b+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])},this.setScrollLeft=function(b,g){a.doc.translate.x=b;a.doc.translate.tx=b*y+"px";a.doc.css(e.trstyle,"translate("+a.doc.translate.tx+","+a.doc.translate.ty+")");g||a.notifyScrollEvent(a.win[0])})}else this.getScrollTop= +function(){return a.docscroll.scrollTop()},this.setScrollTop=function(b){return setTimeout(function(){a&&a.docscroll.scrollTop(b)},1)},this.getScrollLeft=function(){return a.hasreversehr?a.detected.ismozilla?a.page.maxw-Math.abs(a.docscroll.scrollLeft()):a.page.maxw-a.docscroll.scrollLeft():a.docscroll.scrollLeft()},this.setScrollLeft=function(b){return setTimeout(function(){if(a)return a.hasreversehr&&(b=a.detected.ismozilla?-(a.page.maxw-b):a.page.maxw-b),a.docscroll.scrollLeft(b)},1)};this.getTarget= +function(a){return a?a.target?a.target:a.srcElement?a.srcElement:!1:!1};this.hasParent=function(a,g){if(!a)return!1;for(var c=a.target||a.srcElement||a||!1;c&&c.id!=g;)c=c.parentNode||!1;return!1!==c};var z={thin:1,medium:3,thick:5};this.getDocumentScrollOffset=function(){return{top:window.pageYOffset||document.documentElement.scrollTop,left:window.pageXOffset||document.documentElement.scrollLeft}};this.getOffset=function(){if(a.isfixed){var b=a.win.offset(),g=a.getDocumentScrollOffset();b.top-=g.top; +b.left-=g.left;return b}b=a.win.offset();if(!a.viewport)return b;g=a.viewport.offset();return{top:b.top-g.top,left:b.left-g.left}};this.updateScrollBar=function(b){var g,c,e;if(a.ishwscroll)a.rail.css({height:a.win.innerHeight()-(a.opt.railpadding.top+a.opt.railpadding.bottom)}),a.railh&&a.railh.css({width:a.win.innerWidth()-(a.opt.railpadding.left+a.opt.railpadding.right)});else{var f=a.getOffset();g=f.top;c=f.left-(a.opt.railpadding.left+a.opt.railpadding.right);g+=d(a.win,"border-top-width",!0); +c+=a.rail.align?a.win.outerWidth()-d(a.win,"border-right-width")-a.rail.width:d(a.win,"border-left-width");if(e=a.opt.railoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);a.railslocked||a.rail.css({top:g,left:c,height:(b?b.h:a.win.innerHeight())-(a.opt.railpadding.top+a.opt.railpadding.bottom)});a.zoom&&a.zoom.css({top:g+1,left:1==a.rail.align?c-20:c+a.rail.width+4});if(a.railh&&!a.railslocked){g=f.top;c=f.left;if(e=a.opt.railhoffset)e.top&&(g+=e.top),e.left&&(c+=e.left);b=a.railh.align?g+d(a.win,"border-top-width", +!0)+a.win.innerHeight()-a.railh.height:g+d(a.win,"border-top-width",!0);c+=d(a.win,"border-left-width");a.railh.css({top:b-(a.opt.railpadding.top+a.opt.railpadding.bottom),left:c,width:a.railh.width})}}};this.doRailClick=function(b,g,c){var d;a.railslocked||(a.cancelEvent(b),g?(g=c?a.doScrollLeft:a.doScrollTop,d=c?(b.pageX-a.railh.offset().left-a.cursorwidth/2)*a.scrollratio.x:(b.pageY-a.rail.offset().top-a.cursorheight/2)*a.scrollratio.y,g(d)):(g=c?a.doScrollLeftBy:a.doScrollBy,d=c?a.scroll.x:a.scroll.y, +b=c?b.pageX-a.railh.offset().left:b.pageY-a.rail.offset().top,c=c?a.view.w:a.view.h,g(d>=b?c:-c)))};a.hasanimationframe=v;a.hascancelanimationframe=w;a.hasanimationframe?a.hascancelanimationframe||(w=function(){a.cancelAnimationFrame=!0}):(v=function(a){return setTimeout(a,15-Math.floor(+new Date/1E3)%16)},w=clearTimeout);this.init=function(){a.saved.css=[];if(e.isie7mobile||e.isoperamini)return!0;e.hasmstouch&&a.css(a.ispage?f("html"):a.win,{_touchaction:"none"});var b=e.ismodernie||e.isie10?{"-ms-overflow-style":"none"}: +{"overflow-y":"hidden"};a.zindex="auto";a.zindex=a.ispage||"auto"!=a.opt.zindex?a.opt.zindex:l()||"auto";!a.ispage&&"auto"!=a.zindex&&a.zindex>A&&(A=a.zindex);a.isie&&0==a.zindex&&"auto"==a.opt.zindex&&(a.zindex="auto");if(!a.ispage||!e.cantouch&&!e.isieold&&!e.isie9mobile){var c=a.docscroll;a.ispage&&(c=a.haswrapper?a.win:a.doc);e.isie9mobile||a.css(c,b);a.ispage&&e.isie7&&("BODY"==a.doc[0].nodeName?a.css(f("html"),{"overflow-y":"hidden"}):"HTML"==a.doc[0].nodeName&&a.css(f("body"),b));!e.isios|| +a.ispage||a.haswrapper||a.css(f("body"),{"-webkit-overflow-scrolling":"touch"});var d=f(document.createElement("div"));d.css({position:"relative",top:0,"float":"right",width:a.opt.cursorwidth,height:0,"background-color":a.opt.cursorcolor,border:a.opt.cursorborder,"background-clip":"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius,"border-radius":a.opt.cursorborderradius});d.hborder=parseFloat(d.outerHeight()-d.innerHeight());d.addClass("nicescroll-cursors"); +a.cursor=d;var m=f(document.createElement("div"));m.attr("id",a.id);m.addClass("nicescroll-rails nicescroll-rails-vr");var k,h,p=["left","right","top","bottom"],L;for(L in p)h=p[L],(k=a.opt.railpadding[h])?m.css("padding-"+h,k+"px"):a.opt.railpadding[h]=0;m.append(d);m.width=Math.max(parseFloat(a.opt.cursorwidth),d.outerWidth());m.css({width:m.width+"px",zIndex:a.zindex,background:a.opt.background,cursor:"default"});m.visibility=!0;m.scrollable=!0;m.align="left"==a.opt.railalign?0:1;a.rail=m;d=a.rail.drag= +!1;!a.opt.boxzoom||a.ispage||e.isieold||(d=document.createElement("div"),a.bind(d,"click",a.doZoom),a.bind(d,"mouseenter",function(){a.zoom.css("opacity",a.opt.cursoropacitymax)}),a.bind(d,"mouseleave",function(){a.zoom.css("opacity",a.opt.cursoropacitymin)}),a.zoom=f(d),a.zoom.css({cursor:"pointer",zIndex:a.zindex,backgroundImage:"url("+a.opt.scriptpath+"zoomico.png)",height:18,width:18,backgroundPosition:"0px 0px"}),a.opt.dblclickzoom&&a.bind(a.win,"dblclick",a.doZoom),e.cantouch&&a.opt.gesturezoom&& +(a.ongesturezoom=function(b){1.5b.scale&&a.doZoomOut(b);return a.cancelEvent(b)},a.bind(a.win,"gestureend",a.ongesturezoom)));a.railh=!1;var n;a.opt.horizrailenabled&&(a.css(c,{overflowX:"hidden"}),d=f(document.createElement("div")),d.css({position:"absolute",top:0,height:a.opt.cursorwidth,width:0,backgroundColor:a.opt.cursorcolor,border:a.opt.cursorborder,backgroundClip:"padding-box","-webkit-border-radius":a.opt.cursorborderradius,"-moz-border-radius":a.opt.cursorborderradius, +"border-radius":a.opt.cursorborderradius}),e.isieold&&d.css("overflow","hidden"),d.wborder=parseFloat(d.outerWidth()-d.innerWidth()),d.addClass("nicescroll-cursors"),a.cursorh=d,n=f(document.createElement("div")),n.attr("id",a.id+"-hr"),n.addClass("nicescroll-rails nicescroll-rails-hr"),n.height=Math.max(parseFloat(a.opt.cursorwidth),d.outerHeight()),n.css({height:n.height+"px",zIndex:a.zindex,background:a.opt.background}),n.append(d),n.visibility=!0,n.scrollable=!0,n.align="top"==a.opt.railvalign? +0:1,a.railh=n,a.railh.drag=!1);a.ispage?(m.css({position:"fixed",top:0,height:"100%"}),m.align?m.css({right:0}):m.css({left:0}),a.body.append(m),a.railh&&(n.css({position:"fixed",left:0,width:"100%"}),n.align?n.css({bottom:0}):n.css({top:0}),a.body.append(n))):(a.ishwscroll?("static"==a.win.css("position")&&a.css(a.win,{position:"relative"}),c="HTML"==a.win[0].nodeName?a.body:a.win,f(c).scrollTop(0).scrollLeft(0),a.zoom&&(a.zoom.css({position:"absolute",top:1,right:0,"margin-right":m.width+4}),c.append(a.zoom)), +m.css({position:"absolute",top:0}),m.align?m.css({right:0}):m.css({left:0}),c.append(m),n&&(n.css({position:"absolute",left:0,bottom:0}),n.align?n.css({bottom:0}):n.css({top:0}),c.append(n))):(a.isfixed="fixed"==a.win.css("position"),c=a.isfixed?"fixed":"absolute",a.isfixed||(a.viewport=a.getViewport(a.win[0])),a.viewport&&(a.body=a.viewport,0==/fixed|absolute/.test(a.viewport.css("position"))&&a.css(a.viewport,{position:"relative"})),m.css({position:c}),a.zoom&&a.zoom.css({position:c}),a.updateScrollBar(), +a.body.append(m),a.zoom&&a.body.append(a.zoom),a.railh&&(n.css({position:c}),a.body.append(n))),e.isios&&a.css(a.win,{"-webkit-tap-highlight-color":"rgba(0,0,0,0)","-webkit-touch-callout":"none"}),e.isie&&a.opt.disableoutline&&a.win.attr("hideFocus","true"),e.iswebkit&&a.opt.disableoutline&&a.win.css("outline","none"));!1===a.opt.autohidemode?(a.autohidedom=!1,a.rail.css({opacity:a.opt.cursoropacitymax}),a.railh&&a.railh.css({opacity:a.opt.cursoropacitymax})):!0===a.opt.autohidemode||"leave"===a.opt.autohidemode? +(a.autohidedom=f().add(a.rail),e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursor)),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh)),a.railh&&e.isie8&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"scroll"==a.opt.autohidemode?(a.autohidedom=f().add(a.rail),a.railh&&(a.autohidedom=a.autohidedom.add(a.railh))):"cursor"==a.opt.autohidemode?(a.autohidedom=f().add(a.cursor),a.railh&&(a.autohidedom=a.autohidedom.add(a.cursorh))):"hidden"==a.opt.autohidemode&&(a.autohidedom=!1,a.hide(),a.railslocked= +!1);if(e.isie9mobile)a.scrollmom=new M(a),a.onmangotouch=function(){var b=a.getScrollTop(),c=a.getScrollLeft();if(b==a.scrollmom.lastscrolly&&c==a.scrollmom.lastscrollx)return!0;var g=b-a.mangotouch.sy,d=c-a.mangotouch.sx;if(0!=Math.round(Math.sqrt(Math.pow(d,2)+Math.pow(g,2)))){var e=0>g?-1:1,f=0>d?-1:1,u=+new Date;a.mangotouch.lazy&&clearTimeout(a.mangotouch.lazy);80h?h=Math.round(h/2):h>a.page.maxh&&(h=a.page.maxh+Math.round((h-a.page.maxh)/2)):(0>h&&(u=h=0),h>a.page.maxh&&(h=a.page.maxh,u=0));var l;a.railh&&a.railh.scrollable&&(l=a.isrtlmode?k-a.rail.drag.sl:a.rail.drag.sl-k,a.ishwscroll&&a.opt.bouncescroll?0>l?l=Math.round(l/2):l>a.page.maxw&&(l=a.page.maxw+Math.round((l-a.page.maxw)/ +2)):(0>l&&(m=l=0),l>a.page.maxw&&(l=a.page.maxw,m=0)));g=!1;if(a.rail.drag.dl)g=!0,"v"==a.rail.drag.dl?l=a.rail.drag.sl:"h"==a.rail.drag.dl&&(h=a.rail.drag.st);else{d=Math.abs(d);var k=Math.abs(k),C=a.opt.directionlockdeadzone;if("v"==a.rail.drag.ck){if(d>C&&k<=.3*d)return a.rail.drag=!1,!0;k>C&&(a.rail.drag.dl="f",f("body").scrollTop(f("body").scrollTop()))}else if("h"==a.rail.drag.ck){if(k>C&&d<=.3*k)return a.rail.drag=!1,!0;d>C&&(a.rail.drag.dl="f",f("body").scrollLeft(f("body").scrollLeft()))}}a.synched("touchmove", +function(){a.rail.drag&&2==a.rail.drag.pt&&(a.prepareTransition&&a.prepareTransition(0),a.rail.scrollable&&a.setScrollTop(h),a.scrollmom.update(m,u),a.railh&&a.railh.scrollable?(a.setScrollLeft(l),a.showCursor(h,l)):a.showCursor(h),e.isie10&&document.selection.clear())});e.ischrome&&a.istouchcapable&&(g=!1);if(g)return a.cancelEvent(b)}else if(1==a.rail.drag.pt)return a.onmousemove(b)}}a.onmousedown=function(b,c){if(!a.rail.drag||1==a.rail.drag.pt){if(a.railslocked)return a.cancelEvent(b);a.cancelScroll(); +a.rail.drag={x:b.clientX,y:b.clientY,sx:a.scroll.x,sy:a.scroll.y,pt:1,hr:!!c};var g=a.getTarget(b);!a.ispage&&e.hasmousecapture&&g.setCapture();a.isiframe&&!e.hasmousecapture&&(a.saved.csspointerevents=a.doc.css("pointer-events"),a.css(a.doc,{"pointer-events":"none"}));a.hasmoving=!1;return a.cancelEvent(b)}};a.onmouseup=function(b){if(a.rail.drag){if(1!=a.rail.drag.pt)return!0;e.hasmousecapture&&document.releaseCapture();a.isiframe&&!e.hasmousecapture&&a.doc.css("pointer-events",a.saved.csspointerevents); +a.rail.drag=!1;a.hasmoving&&a.triggerScrollEnd();return a.cancelEvent(b)}};a.onmousemove=function(b){if(a.rail.drag){if(1==a.rail.drag.pt){if(e.ischrome&&0==b.which)return a.onmouseup(b);a.cursorfreezed=!0;a.hasmoving=!0;if(a.rail.drag.hr){a.scroll.x=a.rail.drag.sx+(b.clientX-a.rail.drag.x);0>a.scroll.x&&(a.scroll.x=0);var c=a.scrollvaluemaxw;a.scroll.x>c&&(a.scroll.x=c)}else a.scroll.y=a.rail.drag.sy+(b.clientY-a.rail.drag.y),0>a.scroll.y&&(a.scroll.y=0),c=a.scrollvaluemax,a.scroll.y>c&&(a.scroll.y= +c);a.synched("mousemove",function(){a.rail.drag&&1==a.rail.drag.pt&&(a.showCursor(),a.rail.drag.hr?a.hasreversehr?a.doScrollLeft(a.scrollvaluemaxw-Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollLeft(Math.round(a.scroll.x*a.scrollratio.x),a.opt.cursordragspeed):a.doScrollTop(Math.round(a.scroll.y*a.scrollratio.y),a.opt.cursordragspeed))});return a.cancelEvent(b)}}else a.checkarea=0};if(e.cantouch||a.opt.touchbehavior)a.onpreventclick=function(b){if(a.preventclick)return a.preventclick.tg.onclick= +a.preventclick.click,a.preventclick=!1,a.cancelEvent(b)},a.bind(a.win,"mousedown",a.ontouchstart),a.onclick=e.isios?!1:function(b){return a.lastmouseup?(a.lastmouseup=!1,a.cancelEvent(b)):!0},a.opt.grabcursorenabled&&e.cursorgrabvalue&&(a.css(a.ispage?a.doc:a.win,{cursor:e.cursorgrabvalue}),a.css(a.rail,{cursor:e.cursorgrabvalue}));else{var r=function(b){if(a.selectiondrag){if(b){var c=a.win.outerHeight();b=b.pageY-a.selectiondrag.top;0=c&&(b-=c);a.selectiondrag.df=b}0!=a.selectiondrag.df&& +(a.doScrollBy(2*-Math.floor(a.selectiondrag.df/6)),a.debounced("doselectionscroll",function(){r()},50))}};a.hasTextSelected="getSelection"in document?function(){return 0a.page.maxh?a.doScrollTop(a.page.maxh):(a.scroll.y=Math.round(a.getScrollTop()* +(1/a.scrollratio.y)),a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x)),a.cursoractive&&a.noticeCursor());a.scroll.y&&0==a.getScrollTop()&&a.doScrollTo(Math.floor(a.scroll.y*a.scrollratio.y));return a};this.resize=a.onResize;this.hlazyresize=0;this.lazyResize=function(b){a.haswrapper||a.hide();a.hlazyresize&&clearTimeout(a.hlazyresize);a.hlazyresize=setTimeout(function(){a&&a.show().resize()},240);return a};this.jqbind=function(b,c,d){a.events.push({e:b,n:c,f:d,q:!0});f(b).bind(c,d)};this.mousewheel= +function(b,c,d){b="jquery"in b?b[0]:b;if("onwheel"in document.createElement("div"))a._bind(b,"wheel",c,d||!1);else{var e=void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";q(b,e,c,d||!1);"DOMMouseScroll"==e&&q(b,"MozMousePixelScroll",c,d||!1)}};e.haseventlistener?(this.bind=function(b,c,d,e){a._bind("jquery"in b?b[0]:b,c,d,e||!1)},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.addEventListener(c,d,e||!1)},this.cancelEvent=function(a){if(!a)return!1;a=a.original?a.original: +a;a.cancelable&&a.preventDefault();a.stopPropagation();a.preventManipulation&&a.preventManipulation();return!1},this.stopPropagation=function(a){if(!a)return!1;a=a.original?a.original:a;a.stopPropagation();return!1},this._unbind=function(a,c,d,e){a.removeEventListener(c,d,e)}):(this.bind=function(b,c,d,e){var f="jquery"in b?b[0]:b;a._bind(f,c,function(b){(b=b||window.event||!1)&&b.srcElement&&(b.target=b.srcElement);"pageY"in b||(b.pageX=b.clientX+document.documentElement.scrollLeft,b.pageY=b.clientY+ +document.documentElement.scrollTop);return!1===d.call(f,b)||!1===e?a.cancelEvent(b):!0})},this._bind=function(b,c,d,e){a.events.push({e:b,n:c,f:d,b:e,q:!1});b.attachEvent?b.attachEvent("on"+c,d):b["on"+c]=d},this.cancelEvent=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;a.cancel=!0;return a.returnValue=!1},this.stopPropagation=function(a){a=window.event||!1;if(!a)return!1;a.cancelBubble=!0;return!1},this._unbind=function(a,c,d,e){a.detachEvent?a.detachEvent("on"+c,d):a["on"+c]=!1}); +this.unbindAll=function(){for(var b=0;b(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();0==a.opt.bouncescroll&&(0>c?c=0:c>a.page.maxh&&(c=a.page.maxh),0>b?b=0:b>a.page.maxw&&(b=a.page.maxw));if(a.scrollrunning&&b==a.newscrollx&&c==a.newscrolly)return!1;a.newscrolly=c;a.newscrollx=b;a.newscrollspeed=d||!1;if(a.timer)return!1;a.timer=setTimeout(function(){var d=a.getScrollTop(),f=a.getScrollLeft(), +k=Math.round(Math.sqrt(Math.pow(b-f,2)+Math.pow(c-d,2))),k=a.newscrollspeed&&1=a.newscrollspeed&&(k*=a.newscrollspeed);a.prepareTransition(k,!0);a.timerscroll&&a.timerscroll.tm&&clearInterval(a.timerscroll.tm);0b?b=0:b>a.page.maxh&&(b=a.page.maxh);0>c?c=0:c>a.page.maxw&&(c=a.page.maxw);if(b!=a.newscrolly||c!=a.newscrollx)return a.doScrollPos(c, +b,a.opt.snapbackspeed);a.onscrollend&&a.scrollrunning&&a.triggerScrollEnd();a.scrollrunning=!1}):(this.doScrollLeft=function(b,c){var d=a.scrollrunning?a.newscrolly:a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.scrollrunning?a.newscrollx:a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){function e(){if(a.cancelAnimationFrame)return!0;a.scrollrunning=!0;if(p=1-p)return a.timer=v(e)||1;var b=0,c,d,f=d=a.getScrollTop();if(a.dst.ay){f=a.bzscroll? +a.dst.py+a.bzscroll.getNow()*a.dst.ay:a.newscrolly;c=f-d;if(0>c&&fa.newscrolly)f=a.newscrolly;a.setScrollTop(f);f==a.newscrolly&&(b=1)}else b=1;d=c=a.getScrollLeft();if(a.dst.ax){d=a.bzscroll?a.dst.px+a.bzscroll.getNow()*a.dst.ax:a.newscrollx;c=d-c;if(0>c&&da.newscrollx)d=a.newscrollx;a.setScrollLeft(d);d==a.newscrollx&&(b+=1)}else b+=1;2==b?(a.timer=0,a.cursorfreezed=!1,a.bzscroll=!1,a.scrollrunning=!1,0>f?f=0:f>a.page.maxh&&(f=Math.max(0,a.page.maxh)), +0>d?d=0:d>a.page.maxw&&(d=a.page.maxw),d!=a.newscrollx||f!=a.newscrolly?a.doScrollPos(d,f):a.onscrollend&&a.triggerScrollEnd()):a.timer=v(e)||1}c=void 0===c||!1===c?a.getScrollTop(!0):c;if(a.timer&&a.newscrolly==c&&a.newscrollx==b)return!0;a.timer&&w(a.timer);a.timer=0;var f=a.getScrollTop(),k=a.getScrollLeft();(0>(a.newscrolly-f)*(c-f)||0>(a.newscrollx-k)*(b-k))&&a.cancelScroll();a.newscrolly=c;a.newscrollx=b;a.bouncescroll&&a.rail.visibility||(0>a.newscrolly?a.newscrolly=0:a.newscrolly>a.page.maxh&& +(a.newscrolly=a.page.maxh));a.bouncescroll&&a.railh.visibility||(0>a.newscrollx?a.newscrollx=0:a.newscrollx>a.page.maxw&&(a.newscrollx=a.page.maxw));a.dst={};a.dst.x=b-k;a.dst.y=c-f;a.dst.px=k;a.dst.py=f;var h=Math.round(Math.sqrt(Math.pow(a.dst.x,2)+Math.pow(a.dst.y,2)));a.dst.ax=a.dst.x/h;a.dst.ay=a.dst.y/h;var l=0,n=h;0==a.dst.x?(l=f,n=c,a.dst.ay=1,a.dst.py=0):0==a.dst.y&&(l=k,n=b,a.dst.ax=1,a.dst.px=0);h=a.getTransitionSpeed(h);d&&1>=d&&(h*=d);a.bzscroll=0=a.page.maxh||k==a.page.maxw&&b>=a.page.maxw)&&a.checkContentSize();var p=1;a.cancelAnimationFrame=!1;a.timer=1;a.onscrollstart&&!a.scrollrunning&&a.onscrollstart.call(a,{type:"scrollstart",current:{x:k,y:f},request:{x:b,y:c},end:{x:a.newscrollx,y:a.newscrolly},speed:h});e();(f==a.page.maxh&&c>=f||k==a.page.maxw&&b>=k)&&a.checkContentSize();a.noticeCursor()}},this.cancelScroll=function(){a.timer&&w(a.timer);a.timer=0;a.bzscroll=!1;a.scrollrunning= +!1;return a}):(this.doScrollLeft=function(b,c){var d=a.getScrollTop();a.doScrollPos(b,d,c)},this.doScrollTop=function(b,c){var d=a.getScrollLeft();a.doScrollPos(d,b,c)},this.doScrollPos=function(b,c,d){var e=b>a.page.maxw?a.page.maxw:b;0>e&&(e=0);var f=c>a.page.maxh?a.page.maxh:c;0>f&&(f=0);a.synched("scroll",function(){a.setScrollTop(f);a.setScrollLeft(e)})},this.cancelScroll=function(){});this.doScrollBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.y-b)*a.scrollratio.y):(a.timer?a.newscrolly: +a.getScrollTop(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.h/2);d<-e?d=-e:d>a.page.maxh+e&&(d=a.page.maxh+e)}a.cursorfreezed=!1;e=a.getScrollTop(!0);if(0>d&&0>=e)return a.noticeCursor();if(d>a.page.maxh&&e>=a.page.maxh)return a.checkContentSize(),a.noticeCursor();a.doScrollTop(d)};this.doScrollLeftBy=function(b,c){var d=0,d=c?Math.floor((a.scroll.x-b)*a.scrollratio.x):(a.timer?a.newscrollx:a.getScrollLeft(!0))-b;if(a.bouncescroll){var e=Math.round(a.view.w/2);d<-e?d=-e:d>a.page.maxw+e&&(d=a.page.maxw+ +e)}a.cursorfreezed=!1;e=a.getScrollLeft(!0);if(0>d&&0>=e||d>a.page.maxw&&e>=a.page.maxw)return a.noticeCursor();a.doScrollLeft(d)};this.doScrollTo=function(b,c){a.cursorfreezed=!1;a.doScrollTop(b)};this.checkContentSize=function(){var b=a.getContentSize();b.h==a.page.h&&b.w==a.page.w||a.resize(!1,b)};a.onscroll=function(b){a.rail.drag||a.cursorfreezed||a.synched("scroll",function(){a.scroll.y=Math.round(a.getScrollTop()*(1/a.scrollratio.y));a.railh&&(a.scroll.x=Math.round(a.getScrollLeft()*(1/a.scrollratio.x))); +a.noticeCursor()})};a.bind(a.docscroll,"scroll",a.onscroll);this.doZoomIn=function(b){if(!a.zoomactive){a.zoomactive=!0;a.zoomrestore={style:{}};var c="position top left zIndex backgroundColor marginTop marginBottom marginLeft marginRight".split(" "),d=a.win[0].style,k;for(k in c){var h=c[k];a.zoomrestore.style[h]=void 0!==d[h]?d[h]:""}a.zoomrestore.style.width=a.win.css("width");a.zoomrestore.style.height=a.win.css("height");a.zoomrestore.padding={w:a.win.outerWidth()-a.win.width(),h:a.win.outerHeight()- +a.win.height()};e.isios4&&(a.zoomrestore.scrollTop=f(window).scrollTop(),f(window).scrollTop(0));a.win.css({position:e.isios4?"absolute":"fixed",top:0,left:0,zIndex:A+100,margin:0});c=a.win.css("backgroundColor");(""==c||/transparent|rgba\(0, 0, 0, 0\)|rgba\(0,0,0,0\)/.test(c))&&a.win.css("backgroundColor","#fff");a.rail.css({zIndex:A+101});a.zoom.css({zIndex:A+102});a.zoom.css("backgroundPosition","0px -18px");a.resizeZoom();a.onzoomin&&a.onzoomin.call(a);return a.cancelEvent(b)}};this.doZoomOut= +function(b){if(a.zoomactive)return a.zoomactive=!1,a.win.css("margin",""),a.win.css(a.zoomrestore.style),e.isios4&&f(window).scrollTop(a.zoomrestore.scrollTop),a.rail.css({"z-index":a.zindex}),a.zoom.css({"z-index":a.zindex}),a.zoomrestore=!1,a.zoom.css("backgroundPosition","0px 0px"),a.onResize(),a.onzoomout&&a.onzoomout.call(a),a.cancelEvent(b)};this.doZoom=function(b){return a.zoomactive?a.doZoomOut(b):a.doZoomIn(b)};this.resizeZoom=function(){if(a.zoomactive){var b=a.getScrollTop();a.win.css({width:f(window).width()- +a.zoomrestore.padding.w+"px",height:f(window).height()-a.zoomrestore.padding.h+"px"});a.onResize();a.setScrollTop(Math.min(a.page.maxh,b))}};this.init();f.nicescroll.push(this)},M=function(f){var c=this;this.nc=f;this.steptime=this.lasttime=this.speedy=this.speedx=this.lasty=this.lastx=0;this.snapy=this.snapx=!1;this.demuly=this.demulx=0;this.lastscrolly=this.lastscrollx=-1;this.timer=this.chky=this.chkx=0;this.time=function(){return+new Date};this.reset=function(f,h){c.stop();var d=c.time();c.steptime= +0;c.lasttime=d;c.speedx=0;c.speedy=0;c.lastx=f;c.lasty=h;c.lastscrollx=-1;c.lastscrolly=-1};this.update=function(f,h){var d=c.time();c.steptime=d-c.lasttime;c.lasttime=d;var d=h-c.lasty,q=f-c.lastx,t=c.nc.getScrollTop(),a=c.nc.getScrollLeft(),t=t+d,a=a+q;c.snapx=0>a||a>c.nc.page.maxw;c.snapy=0>t||t>c.nc.page.maxh;c.speedx=q;c.speedy=d;c.lastx=f;c.lasty=h};this.stop=function(){c.nc.unsynched("domomentum2d");c.timer&&clearTimeout(c.timer);c.timer=0;c.lastscrollx=-1;c.lastscrolly=-1};this.doSnapy=function(f, +h){var d=!1;0>h?(h=0,d=!0):h>c.nc.page.maxh&&(h=c.nc.page.maxh,d=!0);0>f?(f=0,d=!0):f>c.nc.page.maxw&&(f=c.nc.page.maxw,d=!0);d?c.nc.doScrollPos(f,h,c.nc.opt.snapbackspeed):c.nc.triggerScrollEnd()};this.doMomentum=function(f){var h=c.time(),d=f?h+f:c.lasttime;f=c.nc.getScrollLeft();var q=c.nc.getScrollTop(),t=c.nc.page.maxh,a=c.nc.page.maxw;c.speedx=0=h-d;if(0>q||q>t||0>f||f>a)d=!1;f=c.speedx&&d?c.speedx:!1;if(c.speedy&&d&&c.speedy|| +f){var r=Math.max(16,c.steptime);50p||p>a)&&(d=.1);c.speedy&&(e=Math.floor(c.lastscrolly-c.speedy*(1-c.demulxy)),c.lastscrolly=e,0>e||e>t)&&(d=.1);c.demulxy=Math.min(1,c.demulxy+ +d);c.nc.synched("domomentum2d",function(){c.speedx&&(c.nc.getScrollLeft(),c.chkx=p,c.nc.setScrollLeft(p));c.speedy&&(c.nc.getScrollTop(),c.chky=e,c.nc.setScrollTop(e));c.timer||(c.nc.hideCursor(),c.doSnapy(p,e))});1>c.demulxy?c.timer=setTimeout(v,r):(c.stop(),c.nc.hideCursor(),c.doSnapy(p,e))};v()}else c.doSnapy(c.nc.getScrollLeft(),c.nc.getScrollTop())}},y=f.fn.scrollTop;f.cssHooks.pageYOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll?c.getScrollTop():y.call(h)},set:function(h, +c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollTop(parseInt(c)):y.call(h,c);return this}};f.fn.scrollTop=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollTop():y.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollTop(parseInt(h)):y.call(f(this),h)})};var z=f.fn.scrollLeft;f.cssHooks.pageXOffset={get:function(h,c,k){return(c=f.data(h,"__nicescroll")||!1)&&c.ishwscroll? +c.getScrollLeft():z.call(h)},set:function(h,c){var k=f.data(h,"__nicescroll")||!1;k&&k.ishwscroll?k.setScrollLeft(parseInt(c)):z.call(h,c);return this}};f.fn.scrollLeft=function(h){if(void 0===h){var c=this[0]?f.data(this[0],"__nicescroll")||!1:!1;return c&&c.ishwscroll?c.getScrollLeft():z.call(this)}return this.each(function(){var c=f.data(this,"__nicescroll")||!1;c&&c.ishwscroll?c.setScrollLeft(parseInt(h)):z.call(f(this),h)})};var E=function(h){var c=this;this.length=0;this.name="nicescrollarray"; +this.each=function(d){f.each(c,d);return c};this.push=function(d){c[c.length]=d;c.length++};this.eq=function(d){return c[d]};if(h)for(var k=0;k=1.8.3" + }, + "devDependencies": {}, + "npmName": "nicescroll", + "npmFileMap": [{ + "basePath": "/dist/", + "files": [ + "*.js", + "zoomico.png" + ] + }] +} diff --git a/d2ice.att.io/app/core/js/jquery.nicescroll-master/zoomico.png b/d2ice.att.io/app/core/js/jquery.nicescroll-master/zoomico.png new file mode 100755 index 00000000..57e32da4 Binary files /dev/null and b/d2ice.att.io/app/core/js/jquery.nicescroll-master/zoomico.png differ diff --git a/d2ice.att.io/app/core/layouts/dashboard/dashboard.html b/d2ice.att.io/app/core/layouts/dashboard/dashboard.html new file mode 100755 index 00000000..0bca2cd7 --- /dev/null +++ b/d2ice.att.io/app/core/layouts/dashboard/dashboard.html @@ -0,0 +1,50 @@ + +
+ +
+ +
+ + +
+
+ +
+
diff --git a/d2ice.att.io/app/core/layouts/dashboard/dashboard.less b/d2ice.att.io/app/core/layouts/dashboard/dashboard.less new file mode 100755 index 00000000..03d2c380 --- /dev/null +++ b/d2ice.att.io/app/core/layouts/dashboard/dashboard.less @@ -0,0 +1,65 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.dashboard { + height: 100%; + + .content-container { + height: 100%; + position: relative; + padding-top: 55px; + #content { + height: 100%; + + .row { + height: auto; + } + } + } + + #sidebar { + padding: 20px 5px 20px 5px; + height: 100%; + overflow-y: auto; + + .line-separator { + border-bottom: dashed 1px @main_color_a; + margin: 20px 0; + } + } +} diff --git a/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.html b/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.html new file mode 100755 index 00000000..ca2e0e18 --- /dev/null +++ b/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.html @@ -0,0 +1,79 @@ + + + +
+
+

+

+
+
+
+
+
+
+ +
+
+
+
+
+
+
diff --git a/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.less b/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.less new file mode 100755 index 00000000..ba8b5d2e --- /dev/null +++ b/d2ice.att.io/app/core/layouts/full-page-with-header/full-page-with-header.less @@ -0,0 +1,112 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +#full-page-with-header { + margin-top: 59px; + background: url('images/top.jpg') no-repeat 0 0; + + #content { + overflow: auto; + position: absolute; + top: 201px; + bottom: 0; + right: 0; + left: 0; + height: auto; + } + + #header-title { + height: 130px; + } + + .banner { + -webkit-box-shadow:0 1px 2px rgba(43, 48, 51, 0.08); + -moz-box-shadow:0 1px 2px rgba(43, 48, 51, 0.08); + box-shadow:0 1px 2px rgba(43, 48, 51, 0.08); + z-index:20; + } + + .navbar { + background-color:#fff; + margin-bottom:0; + } + + #logo { + float:left; + display:block; + margin:20px 0; + } + #logo .logo-trans {display:none} + + /* Transparent Header */ + .banner[data-transparent-header="true"] { + width:100%; + /*top:0; + left:0; + position:absolute; + overflow:visible !important;*/ + z-index:9998; + background-color:transparent; + box-shadow:none; + -webkit-box-shadow:none; + -moz-box-shadow:none; + -o-box-shadow:none; + border-bottom:1px solid rgba(255,255,255,0.25) !important; + } + + .boxed-mode .banner[data-transparent-header="true"] { + left:0; right:0; margin:0 auto; + } + + .banner[data-transparent-header="true"] #logo .logo-trans {display:inline} + .banner[data-transparent-header="true"] #logo .logo-main {display:none} + + .banner[data-transparent-header="true"] .navbar-nav > li > a, + .banner[data-transparent-header="true"] .navbar-nav > li.active > a {color:#fff} + .banner[data-transparent-header="true"] .navbar-nav > li > a:hover, + .banner[data-transparent-header="true"] .navbar-nav > li.active > a:hover {color:#fff} + + .banner[data-transparent-header="true"] .navbar-nav > li > a:hover:after, + .banner[data-transparent-header="true"] .navbar-nav > li.active > a:after, + .banner[data-transparent-header="true"] .navbar-nav > li.active > a:hover:after, + .banner[data-transparent-header="true"] .navbar-nav > li.active > a:focus:after {background-color:#fff} + + .menu-seperator { + .p_14_r; + } +} diff --git a/d2ice.att.io/app/core/navigation/layouts/account-navigation/account.navigation.controller.js b/d2ice.att.io/app/core/navigation/layouts/account-navigation/account.navigation.controller.js new file mode 100755 index 00000000..0f966cf2 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/account-navigation/account.navigation.controller.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 28/05/2017. + */ +(function () { + 'use strict'; + angular + .module('ice.dashboard.account', []) + .controller('accountNavigationController', ['$state', accountNavigationController]); + + function accountNavigationController($state) { + var vm = this; + + var init = function() + { + vm.selectedPage = $state.$current.name || 'app.account'; + }; + + vm.loadPageContent = function(sref) { + vm.selectedPage = sref; + $state.go(sref); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.html b/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.html new file mode 100755 index 00000000..4bdcc529 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.html @@ -0,0 +1,48 @@ + +
+ +

Profile

+
    +
  • Account»
  • +
  • Settings»
  • +
  • Notifications»
  • +
+
+ diff --git a/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.less b/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.less new file mode 100755 index 00000000..34a824e8 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/account-navigation/navigation.less @@ -0,0 +1,75 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.navigation { + + + h1.caption { + .a_24_m; + position: relative; + } + h1.caption.profile { + float:none; + } + + li { + text-decoration: none; + list-style: none; + } + + ul.actions-list { + & > li { + .m_16_r; + margin: 0 0 20px 0; + cursor: pointer; + + &.selected { + .m_16_m; + text-decoration: underline; + } + + span { + &.selected { + float: right; + text-decoration: none; + } + } + } + } + +} diff --git a/d2ice.att.io/app/core/navigation/layouts/admin-navigation/admin.navigation.controller.js b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/admin.navigation.controller.js new file mode 100755 index 00000000..9d74511f --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/admin.navigation.controller.js @@ -0,0 +1,93 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by le056g on 07/02/2017. + */ +(function () { + 'use strict'; + angular + .module('ice.main.admin', ['ice.services.users']) + .controller('adminNavigationController', ['$scope', '$log', 'checklistService', '$rootScope', '$state', + adminNavigationController]); + + function adminNavigationController($scope, $log, checklistService, $rootScope, $state) { + var vm = this; + + var init = function(){ + vm.checkListTemplates=null; + initChecklistTemplates(); + registerWatchers(); + }; + + var registerWatchers = function() { + $scope.$watch(function () { return $state.params.templateName; }, function (newValue, oldValue) { + if (newValue !== oldValue && vm.selectedTemplate){ + vm.selectedTemplate.name = newValue; + }; + }); + }; + + var initChecklistTemplates = function(){ + checklistService.getChecklistTemplates() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200 && response.data && response.data !== '') { + vm.checkListTemplates = response.data.checkListTemplates; + } + else { + $log.debug("getChecklistTemplates Failed. response.status="+response.status) + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.selectTemplate = function(template){ + if(template !== vm.selectedTemplate) { + vm.selectedTemplate = template; + $state.go('app.admin.checklisttemplate', {template_uuid:template.uuid}); + } + + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.html b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.html new file mode 100755 index 00000000..54974f71 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.html @@ -0,0 +1,64 @@ + +
+ +

Admin

+ + +
+ + + diff --git a/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.less b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.less new file mode 100755 index 00000000..ea2c112f --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/admin-navigation/navigation.less @@ -0,0 +1,133 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.admin-navigation { + + .menu-engagements-category { + margin-bottom: 20px; + .menu-engagement-category-title { + .m_16_m; + border-bottom: solid 2px; + border-color: @main_color_q; + margin: 10px 0; + } + } + + border-right: 1px solid @main_color_q; + height: 100%; + background-color: @bg_color_navigation; + overflow-y: auto; + padding: 0px 20px; + + li { + text-decoration: none; + list-style: none; + } + + ul.engagements-list { + & > li { + .m_16_r; + margin: 0 0 10px 0; + &.selected { + .a_16_m; + + } + } + } + ul.engagements-list li { + position:relative; + } + + ul.engagements-list .clickable { + display: block; + cursor: pointer; + } + + ul.engagement-details { + padding: 0 0 0 8px; + border-left: 1px solid; + border-color: @main_color_q; + + .m_14_r; + & > li { + margin: 0px; + line-height: 18px; + &.selected { + + & > .engagement_detail_menu_name { + text-decoration: underline; + } + + & > .engagement_detail_menu_raquo { + float: right; + margin-right: 20px; + } + } + } + } + + ul.engagement-details > li.engagement-details-sub-catgeory { + margin-top: 5px; + } + ul.engagement-details > li.engagement-details-sub-catgeory > .sub-category-title { + font-size: 16px; + font-weight: bold; + } + + .sub-category { + display: inline-block; + margin: 0 0 10px 0; + .a_16_m; + position: relative; + } + + .admin-navbar{ + padding-right: 0px; + padding-left: 0px; + } + + .template-selected { + .m_14_m; + .checklist-icon { + .sprite.active-cl; + } + text-decoration: underline; + } + + +} diff --git a/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/documentation.navigation.controller.js b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/documentation.navigation.controller.js new file mode 100755 index 00000000..9c63f9c7 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/documentation.navigation.controller.js @@ -0,0 +1,100 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 06/02/2017. + */ +(function () { + 'use strict'; + angular + .module('ice.documentation', []) + .controller('documentationNavigationController', ['_', '$state','cmsService', 'sessionStorageService', '$log', + documentationNavigationController]); + + function documentationNavigationController(_, $state,cmsService, sessionStorageService, $log) { + var vm = this; + var documentationLastPageSessionKey = 'LastDocumentationPageId'; + + var init = function() + { + + + cmsService.getPages("Documentation") + .then(function(response) { + if(response && response.data && response.data.length === 1) { + vm.documentationPage = response.data[0]; + + var lastPageId = sessionStorageService.getJson(documentationLastPageSessionKey); + if(lastPageId) { + vm.loadPageContent(lastPageId); + } else { + vm.loadPageContent(vm.documentationPage.id); + } + } + }) + .catch(function(error) { + $log.error(error); + }); + }; + + vm.loadPageContent = function(pageId) { + if(vm.selectedSearchedPage) { + delete vm.selectedSearchedPage; + } + + vm.pageId = pageId; + sessionStorageService.setJson(documentationLastPageSessionKey, pageId); + $state.go('app.documentation.page',{page_id: pageId}); + }; + + vm.isPageCollapsed = function(page) { + var result = true; + + if(page && page.children && page.children.length > 0) { + var pages = _.flatMap(page.children, function(child) { + return _.concat(child.children, child); + }); + result = (page.id != vm.pageId) && !_.some(pages, ['id', vm.pageId]); + } + + return result; + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.html b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.html new file mode 100755 index 00000000..28bb653c --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.html @@ -0,0 +1,85 @@ + +
+ + +

Documentation

+ + + + diff --git a/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.less b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.less new file mode 100755 index 00000000..ef6b6c12 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/documentation-navigation/navigation.less @@ -0,0 +1,110 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.navigation { + .documentation { + border-right: 1px solid @main_color_q; + height: 100%; + background-color: @bg_color_navigation; + overflow-y: auto; + padding: 0px 20px; + #documentation-search { + margin-bottom: 20px; + } + + #mobile-collapse { display:none;} + @media (max-width: 992px) { + #mobile-collapse { + display: block; + position: relative; + top: 24px; + color: @main_color_a; + cursor:pointer; + } + } + + h1.caption { + .a_24_m; + position: relative; + } + h1.caption.documentation { + float: none; + width: 95%; + } + + li { + text-decoration: none; + list-style: none; + } + + ul.actions-list { + .pages-list { + .page { + display: block; + cursor: pointer; + margin-bottom: 5px; + padding-top: 5px; + .m_16_r; + } + .sub-page { + display: block; + cursor: pointer; + line-height: 22px; + } + .selected { + .a_16_m; + } + .page-childs { + .f-type._14_r; + cursor: pointer; + padding: 3px 0 0 8px; + border-left: 1px solid; + border-color: @main_color_q; + color: @main_color_m; + .selected { + .a_14_m; + } + } + } + } + + span.fa-caret-right { + vertical-align: middle; + } + } +} diff --git a/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.html b/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.html new file mode 100755 index 00000000..17bc1996 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.html @@ -0,0 +1,197 @@ + +
+ + +

Engagements

+ + + + + + + diff --git a/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.less b/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.less new file mode 100755 index 00000000..63b48c32 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/layouts/horizontal-navigation/navigation.less @@ -0,0 +1,208 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.navigation{ + height: 100%; + padding: 0; +} + +.dashboard-navigation { + #engagement-search { + margin-bottom: 20px; + .popover .popover-content{ + padding: 5px 10px; + color: #5a5a5a; + font-family: omnes-regular, sans-serif; + font-size: 10px; + } + .popover.right > .arrow:after { + bottom: 10px; + left: 1px; + content: " "; + } + .popover > .arrow { + border-width: 0px; + } + } + .menu-engagements-category { + margin-bottom: 20px; + .menu-engagement-category-title { + .m_16_m; + border-bottom: solid 2px; + border-color: @main_color_q; + margin: 10px 0; + } + } + #mobile-collapse { display:none;} + + @media (max-width: 992px) { + + #mobile-collapse { + display: block; + position: relative; + top: 21px; + color: @main_color_a; + cursor:pointer; + } + } + + #search-no-results { + margin-top: 10px; + } + #nav-bar-wrapper { + padding:0px; + } + border-right: 1px solid @main_color_q; + height: 100%; + background-color: @bg_color_navigation; + overflow-y: auto; + padding: 0px 20px; + + @media (max-width: 992px) { + height:auto; + } + h1.caption { + float: left; + .a_24_m; + position: relative; + .add-engagement { + display: inline-block; + margin-left: 8px; + cursor: pointer; + position: relative; + top: 2px; + } + } + + li { + text-decoration: none; + list-style: none; + } + + ul.engagements-list { + & > li { + .m_16_r; + margin: 0 0 10px 0; + &.selected { + .a_16_m; + + } + } + } + ul.engagements-list li { + position:relative; + } + + ul.engagements-list .red_dot { + .sprite.items-todo; + display: block; + position: absolute; + left: -12px; + top: 4px; + } + ul.engagements-list .clickable { + display: block; + cursor: pointer; + } + + ul.engagement-details > li.engagement-details-sub-catgeory .selected { + .m_14_m; + .checklist-icon { + .sprite.active-cl; + } + } + + ul.engagement-details { + padding: 0 0 0 8px; + border-left: 1px solid; + border-color: @main_color_q; + + .m_14_r; + & > li { + margin: 0px; + line-height: 18px; + &.selected { + + & > .engagement_detail_menu_name { + text-decoration: underline; + } + + & > .engagement_detail_menu_raquo { + float: right; + margin-right: 20px; + } + } + } + } + + ul.engagement-details > li.engagement-details-sub-catgeory { + margin-top: 5px; + } + ul.engagement-details > li.engagement-details-sub-catgeory > .sub-category-title { + font-size: 16px; + font-weight: bold; + } + ul.engagement-details > li.engagement-details-sub-catgeory > .sub-category-title > .add-checklist { + width: 18px; + height: 18px; + display: inline-block; + padding-left: 2px; + position: relative; + top: 2px; + } + + ul.engagement-details > li.engagement-details-sub-catgeory > .engagement-checklist { + padding-left: 6px; + } + + ul.engagement-details > li.engagement-details-sub-catgeory > .engagement-checklist > li > .checklist-icon { + display: inline-block; + position: relative; + top: 2px; + left: -5px; + } + .search-engagement-name { + text-decoration: underline; + display:block; + } + .search-engagement-fields { + font-size: smaller; + display:block; + } + +} diff --git a/d2ice.att.io/app/core/navigation/navigation.controller.js b/d2ice.att.io/app/core/navigation/navigation.controller.js new file mode 100755 index 00000000..5013b7b4 --- /dev/null +++ b/d2ice.att.io/app/core/navigation/navigation.controller.js @@ -0,0 +1,456 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.navigation', ['ui.bootstrap']) + .controller('NavigationController', ["$rootScope", "$q", "iceConstants","pageService","$location", "vfService", + "localStorageService", "$state", "usersService", "$uibModal",'$scope','$window', 'toastService', + '$log', NavigationController]); + + function NavigationController($rootScope, $q,iceConstants, pageService, $location, vfService, localStorageService, + $state, usersService, $uibModal, $scope, $window, toastService, $log) { + var vm = this; + + $scope.selected = undefined; + $scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', + 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', + 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', + 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', + 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', + 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', + 'Wisconsin', 'Wyoming']; + + vm.formatted_engagements = {}; + vm.starred_engagements = {}; + vm.recent_engagements = {}; + vm.showOpenWizardButton = false; + var userData = usersService.getUserData(); + if(userData!=undefined && + userData.activationSuccess==true){ + vm.activation_success = true; + } + vm.selectEngagement = function (uuid, view_type, sub_id, enable_refresh) { + var w = angular.element($window); + + if (view_type != undefined && w.width() < 992) { + $('.navbar-collapse').collapse("hide"); + } + + if ($state.params.messagePass != null) + { + toastService.setToast($state.params.messagePass, 'success'); + $state.params.messagePass == null; + } + + if (uuid == undefined && localStorageService.getJson("ice.settings.eng_uuid") != undefined) + uuid = localStorageService.getJson("ice.settings.eng_uuid"); + else + $state.go('app.dashboard.dashboard'); + + var deferred = $q.defer(); + + if (view_type != undefined) { + vm.view_type = view_type; + } else if ( pageService.getPage() != '') { + vm.view_type = pageService.getPage(); + } else if ( localStorageService.getJson("ice.settings.view_type") != undefined) { + vm.view_type = localStorageService.getJson("ice.settings.view_type"); + } else { + vm.view_type = 'overview'; + } + + if (sub_id != undefined) { + sub_id = sub_id; + } else if (localStorageService.getJson("ice.settings.sub_id") != undefined) { + sub_id = localStorageService.getJson("ice.settings.sub_id"); + } + + localStorageService.setJson("ice.settings.view_type",vm.view_type); + localStorageService.setJson("ice.settings.sub_id",sub_id); + pageService.setPage(vm.view_type); + $scope.$watch(function () { return pageService.getPage(); }, function (newValue, oldValue) { + if (newValue !== oldValue) vm.view_type = newValue; + }); + + // Select | unselect the engagement on navigation panel. + vm.engagement = undefined; + angular.forEach(vm.recent_engagements,function (item,key) { + if (item.uuid === uuid) { + vm.engagement = item; + vm.engagement.selected = true; + vm.engagement.page = vm.view_type + vm.engagement.sub_id = sub_id; + vm.engagement.view_type = vm.view_type; + } else { + item.selected = undefined; + } + var uuidJson = { + selectedUuid: uuid + }; + vm.recent_engagements[key] = item; + }); + + angular.forEach(vm.starred_engagements, function (item,key) { + if (item.uuid === uuid) { + vm.engagement = item; + vm.engagement.selected = true; + vm.engagement.page = vm.view_type + vm.engagement.sub_id = sub_id; + vm.engagement.view_type = vm.view_type; + + } else { + item.selected = undefined; + } + var uuidJson = { + selectedUuid: uuid + }; + vm.starred_engagements[key] = item; + }); + + if (!vm.engagement) { + if (vm.last_not_found_engagement != true) { + localStorageService.setJson("ice.settings.eng_uuid", undefined); + initEngagements(); + } else { + initEngagements(true); + } + } else { + + localStorageService.setJson("ice.settings.eng_uuid", uuid); + vm.showOpenWizardButton = true; + + if(enable_refresh === undefined || enable_refresh === true){ //We won't refresh the page if located on the new dashboard view (dashboard.dashboard) (because it's wrong to refresh and we lose the page number). + if (vm.activation_success) + { + $state.go('app.dashboard.'+vm.view_type,{engagement_uuid:uuid,engagement:vm.engagement,sub_id:sub_id,messagePass: "You have successfully activated your account!"}); + } + else { + $state.go('app.dashboard.'+vm.view_type,{engagement_uuid:uuid,engagement:vm.engagement,sub_id:sub_id,messagePass: null}); + } + } + } + + vm.isReviewer = usersService.isReviewer(vm.me, vm.engagement.reviewer_uuid); + vm.isPeerReviewer = usersService.isPeerReviewer(vm.me, vm.engagement.peer_reviewer_uuid); + deferred.resolve(uuid); + return deferred.promise; + + }; + + + vm.searchSelectEngagement = function (engagement_uuid){ + vfService.getSingleEngagement(vm.me.uuid,engagement_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + + if (response.status === 200 && response.data && response.data !== '') { + initEngagements(false, {uuid : engagement_uuid,page_type:'overview',sub_id:undefined}); + + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + + var init = function () { + + // In case the url is dashboard/ then we come from server redirect, need to load user withuot login. + // This is a workaround to remove slash at the beginning. + // The slash is there because the ui-router does not support optional params in URL address, and I used regex: + // url: '/dashboard{user_uuid: (?:/[^/]+)?}' and the value returned for user_uuid contains slash at the start. + vm.me = vm.user = usersService.getUserData(); + vm.isAdmin = usersService.isAdmin(vm.me); + vm.isEngagementEL = usersService.isUserInRole(iceConstants.roles.el); + vm.vfc_num = 0; + // In case user exist in localStorage but not active redirect to activation link. + if (vm.user && vm.user.is_active===false) { + $state.go('app.resend_activation', {"message": "Please activate your account first"}); + return; + } + + // In case user is not in localStorage redirect to login page + if (vm.user === undefined) { + $state.go('app.login', {"message": "Please login first"}); + return; + } + initEngagements(false); + + $rootScope.$on('onUpdateEngagements', function (event,args) { + + if (args != undefined && args.select != undefined) + { + initEngagements(false,args.select); + } else { + initEngagements(true); + } + }); + + }; + + var initEngagements = function (selectLast,manual_select) { + $rootScope.ice.loader.show = true; + vm.starred_engagements = {}; + vm.recent_engagements = {}; + vm.formatted_engagements = {}; + vfService.getStarredEngagements() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200 && response.data && response.data !== '') { + iterate_over_engagements(response.data,true, false); + } + else if (response.status === 204){ + $log.error("no starred VFs were found for you."); + } + else { + $log.error("getStarredEngagements Failed.") + } + + vfService.getRecentEngagements() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200 && response.data && response.data !== '') { + if (response.data.length > 0) { + iterate_over_engagements(response.data, false, true, selectLast, manual_select); + } + else { + $state.go('app.dashboard.overview', { + engagement_uuid: undefined, + engagement: undefined, + sub_id: undefined + }); + } + } + else if (response.status === 204){ + $log.error("no recent VFs were found for you."); + select_active_engagements(selectLast); + } + else { + $log.error("getRecentEngagements Failed.") + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + }; + + $rootScope.$on('searchSelectEngagement', function (event,eng_uuid) { + vm.searchSelectEngagement(eng_uuid); + }); + + var iterate_over_engagements = function(engagements, starred, recent,selectLast,manual_select) { + var i = undefined; + for( i = 0 ; i < engagements.length; i++){ + var engagement = {}; + if (starred === true) + { + engagement.creator = engagements[i].engagement__creator__uuid; + engagement.is_service_provider_internal = engagements[i].is_service_provider_internal; + engagement.name = engagements[i].engagement__engagement_manual_id + ": " + engagements[i].name; + engagement.engagement_manual_id = engagements[i].engagement__engagement_manual_id; + engagement.reviewer_uuid = engagements[i].engagement__reviewer__uuid; + engagement.uuid = engagements[i].engagement__uuid; + engagement.peer_reviewer_uuid = engagements[i].engagement__peer_reviewer__uuid; + } else { + engagement.creator = engagements[i].vf__engagement__creator__uuid; + engagement.is_service_provider_internal = engagements[i].vf__is_service_provider_internal; + engagement.name = engagements[i].vf__engagement__engagement_manual_id + ": " + engagements[i].vf__name; + engagement.engagement_manual_id = engagements[i].vf__engagement__engagement_manual_id; + engagement.uuid = engagements[i].vf__engagement__uuid; + engagement.last_update = engagements[i].last_update; + engagement.reviewer_uuid = engagements[i].vf__engagement__reviewer__uuid; + engagement.peer_reviewer_uuid = engagements[i].vf__engagement__peer_reviewer__uuid; + } + + if (engagements[i].action_type !="NAVIGATED_INTO_ENGAGEMENT") + engagement.red_dot = engagements[i].action_type.split("_").join(" "); + else + engagement.red_dot = false; + + engagement.checklists = engagements[i].checklists; + + engagement.page = 'overview'; + + vm.formatted_engagements[engagement.engagement_manual_id] = engagement; + if(starred === true){ + vm.starred_engagements[engagement.engagement_manual_id] = engagement; + } + else if (recent === true){ + if (vm.starred_engagements[engagement.engagement_manual_id] == undefined) + vm.recent_engagements[engagement.engagement_manual_id] = engagement; + } + } + if (manual_select !=undefined) { + if(!manual_select.view_type) { + vm.selectEngagement(manual_select.uuid, manual_select.page_type, manual_select.sub_id, manual_select.enable_refresh); + } + else{ + vm.selectEngagement(manual_select.uuid, manual_select.view_type, manual_select.sub_id, manual_select.enable_refresh); + } + } + else if (selectLast != undefined) + { + select_active_engagements(selectLast); + } + + return new Promise(function(resolve, reject) { + resolve(vm.formatted_engagements); + }); + } + + var select_active_engagements = function (selectLast) { + var eng_uuid = false; + var selected_eng_uuid = localStorageService.getJson("ice.settings.eng_uuid"); + var currUser = usersService.getUserData(); + var keys = Object.keys(vm.formatted_engagements); + if ( keys.length > 0 ){ // This case represents a user has any engagements to work on + if (selectLast == true) { + eng_uuid = vm.formatted_engagements[Object.keys(vm.formatted_engagements)[0]].uuid; + } + else if ($location.search().eng_uuid) { + eng_uuid = $location.search().eng_uuid; + } + else if (selected_eng_uuid != null) { // if you re-visit the page after you already been inside, than the last select eng is stored in the storage + eng_uuid = selected_eng_uuid; + } + else if($state.params.engagement_uuid!=undefined){ + // if we came from any different page or came from activation and is an invited user or has already been attached to an engagement ('contact' user) so the login url has consisted a engagement uuid as a path param + eng_uuid = $state.params.engagement_uuid; + } + if (eng_uuid != false) { + var selectPromise = vm.selectEngagement(eng_uuid); + } else { + $state.go('app.dashboard.dashboard'); + if ($state.params.messagePass != null) + { + toastService.setToast($state.params.messagePass, 'success'); + $state.params.messagePass == null; + } + } + + if (eng_uuid == false) + { + eng_uuid = vm.formatted_engagements[Object.keys(vm.formatted_engagements)[0]].uuid; + vm.engagement = vm.formatted_engagements[Object.keys(vm.formatted_engagements)[0]]; + } + /* If user performs activation and he is the creator of current engagement*/ + if (vm.engagement != undefined && vm.engagement.creator!=null && + currUser.uuid == vm.engagement.creator && + vm.activation_success==true) { + vm.openGettingStartedWizard(eng_uuid); + } + } + else if (currUser.activationSuccess==true) { + //This case handles new user with no engs that performs activation + vm.openGettingStartedWizard(); + $state.go('app.dashboard.dashboard'); + } else { + $state.go('app.dashboard.dashboard'); + } + vm.activation_success = false; + usersService.setUserActivationSuccess(undefined);// Cleaning the activationSuccess flag + }; + + + init(); + + + vm.openGettingStartedWizard = function (eng_uuid) { + var is_service_provider_internal = vm.engagement && eng_uuid ? vm.engagement.is_service_provider_internal : false; + eng_uuid = eng_uuid || ''; + var args = { + user: vm.user, + eng_uuid: eng_uuid, + is_service_provider_internal: is_service_provider_internal, + showActivationMessage: vm.activation_success + } + $rootScope.$broadcast('openGettingStartedWizard', args); + + vm.activation_success = false; + }; + + vm.addChecklist = function(engagementUuid){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/checklist/checklist.html', + controller: 'ChecklistModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + engagementUuid: function () { + return engagementUuid; + }, + modal_type: function () { + return 'create'; + }, + wizardData: function () { + return false; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + var sub_id = undefined; + if (data != undefined) { + sub_id = data.uuid; + initEngagements(false,{uuid:engagementUuid,page_type: 'checklist',sub_id:sub_id}); + + if(data.progress) { + vm.callback(data); + } + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + } +})(); diff --git a/d2ice.att.io/app/core/navigation/navigation.module.js b/d2ice.att.io/app/core/navigation/navigation.module.js new file mode 100755 index 00000000..0d936f3b --- /dev/null +++ b/d2ice.att.io/app/core/navigation/navigation.module.js @@ -0,0 +1,51 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.navigation', []) + .config(config); + + function config() { + + } + +})(); diff --git a/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.html b/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.html new file mode 100755 index 00000000..e1bbda0a --- /dev/null +++ b/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.html @@ -0,0 +1,75 @@ + +
+ +
+ + + +
+ + + + +
+ {{vm.notifications}} +
+ +
+ + + + +
diff --git a/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.less b/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.less new file mode 100755 index 00000000..75d0bbf9 --- /dev/null +++ b/d2ice.att.io/app/core/toolbar/layouts/horizontal-navigation/toolbar.less @@ -0,0 +1,132 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.dashboard { + .dropdown-menu { + .divider { + margin: 0; + } + li { + margin: 8px; + + a.logout { + color: @func_color_q; + } + + a.dashboard-admin-link{ + .a_16_r; + } + + i { + margin-right: 10px; + } + } + } + + #toolbar { + background-color: @toolbar_background_color; + height: 55px; + display: flex; + flex-direction: row; + align-items: center; + + .header-logo { + .logo-white; + margin: 0 30px; + } + + ul.header-top-menu { + display: flex; + flex-direction: row; + justify-content: center; + margin: 0; + + li { + list-style: none; + margin: 0 20px; + + a { + .p_18_m; + text-decoration: none; + } + } + } + + .header-right { + margin: 0 30px; + display: flex; + flex-direction: row; + justify-content: flex-end; + + .dropdown-menu { + left: -120px; + + } + + .header-chat { + .profiles-sprite; + .profiles-sprite.notification; + margin-right: 10px; + position: relative; + } + .header-avatar { + .profiles-sprite; + .profiles-sprite.avatar-white; + cursor: pointer; + + .notifications { + min-width: 16px; + height: 16px; + border: solid 1px #ffffff; + background-color: #F5A623; + display: block; + position: absolute; + left: 22px; + + .count { + .p_10_r; + display: block; + margin-left: 4px; + margin-right: 4px; + margin-top: 1px; + } + } + } + } + } +} diff --git a/d2ice.att.io/app/core/toolbar/toolbar.controller.js b/d2ice.att.io/app/core/toolbar/toolbar.controller.js new file mode 100755 index 00000000..8d47b89f --- /dev/null +++ b/d2ice.att.io/app/core/toolbar/toolbar.controller.js @@ -0,0 +1,94 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.toolbar') + .controller('ToolbarController', ["$rootScope", "localStorageService", "usersService", "$state", "$log","$uibModal", + ToolbarController]); + + function ToolbarController($rootScope, localStorageService, usersService, $state, $log, $uibModal) { + + var vm = this; + vm.notifications = 0; + + + var user = usersService.getUserData(); + if (user){ + vm.isAdmin = usersService.isAdmin(user); + usersService.getNotifications(user.uuid) + .then(function (response) { + if (response.status === 200) { + vm.notifications = response.data.notifications_number? response.data.notifications_number:0; + } + }) + .catch(function (error) { + $log.error(error); + }); + } + + vm.logout = function() { + usersService.resetUserData(); + localStorageService.setJson("ice.settings.eng_uuid", undefined); + $state.go('app.login'); + }; + + vm.addFeedback = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/feedback/feedback.html', + controller: 'FeedbackModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + action: function () { + return 'add'; + } + } + }); + }; + + $rootScope.$on('eventClearNotifications', function (event, args) { + vm.notifications = 0; + }); + + } + +})(); diff --git a/d2ice.att.io/app/core/toolbar/toolbar.module.js b/d2ice.att.io/app/core/toolbar/toolbar.module.js new file mode 100755 index 00000000..75dd3538 --- /dev/null +++ b/d2ice.att.io/app/core/toolbar/toolbar.module.js @@ -0,0 +1,51 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.toolbar', []) + .config(config); + + function config() { + + } + +})(); diff --git a/d2ice.att.io/app/directives/ice-announcement/ice-announcement.directive.js b/d2ice.att.io/app/directives/ice-announcement/ice-announcement.directive.js new file mode 100755 index 00000000..e70d5d61 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-announcement/ice-announcement.directive.js @@ -0,0 +1,91 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.directives') + .directive('iceAnnouncement', ['$rootScope', 'cmsService', 'localStorageService', iceAnnouncement]); + + function iceAnnouncement($rootScope, cmsService, localStorageService) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/ice-announcement/ice-announcement.html'; + directive.link = function (scope, element, attrs) { + var lastAnnouncementStorageKey = 'lastAnnouncement'; + + var init = function() { + var announcement = cmsService.getAnnouncement(); + + if(announcement) { + scope.toast = announcement; + + //announcement will be presented for two days: + var twoDaysBeforeDate = new Date(); + twoDaysBeforeDate.setDate(twoDaysBeforeDate.getDate() - 2); + var publishedDate = new Date(scope.toast.publishDate); + if(publishedDate < twoDaysBeforeDate) { + scope.closeAlert(); + } + } + }; + + scope.closeAlert = function() { + scope.toast.show = false; + setLastAnnouncementClosedParam(true); + }; + + function setLastAnnouncementClosedParam(closed) { + var lastAnnouncement = localStorageService.getJson(lastAnnouncementStorageKey) || {}; + lastAnnouncement['closed'] = closed; + localStorageService.setJson(lastAnnouncementStorageKey, lastAnnouncement); + }; + + init(); + + //whenever the announcement updated we will update the directive view: + $rootScope.$watch('showAnnouncement', function(newVal, OldVal){ + init(); + }, true); + }; + + return directive; + } +})(); diff --git a/d2ice.att.io/app/directives/ice-announcement/ice-announcement.html b/d2ice.att.io/app/directives/ice-announcement/ice-announcement.html new file mode 100755 index 00000000..04d9b3f0 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-announcement/ice-announcement.html @@ -0,0 +1,44 @@ + +
+ + + Read more >> + +
diff --git a/d2ice.att.io/app/directives/ice-loader/ice-loader.directive.js b/d2ice.att.io/app/directives/ice-loader/ice-loader.directive.js new file mode 100755 index 00000000..1456df42 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-loader/ice-loader.directive.js @@ -0,0 +1,96 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.directives') + .directive('iceLoader', iceLoader); + + function iceLoader($rootScope) { + var directive = {}; + directive.restrict = 'E'; + directive.transclude = false; + //directive.templateUrl = 'directives/ice-loader/ice-loader.html'; + directive.scope = { + selector: "@selector" + }; + + directive.link = function (scope, element, attrs) { + + $rootScope.$watch('ice.loader.show', function(newVal, OldVal){ + //scope.loader = $rootScope.ice.loader; + if (newVal===true) { + var selector = $(scope.selector); + var loaderId = calculateUniqueId(); + var loader = $('
'); + $('body').append(loader); + selector.addClass('ice-loader-overlay'); + var pos = selector.offset(); + if (pos) { + loader.css({ + top: pos.top + selector.height() / 2, + left: pos.left + selector.width() / 2, + position: 'fixed' + }); + } + } else if (newVal===false) { + var selector = $(scope.selector); + selector.removeClass('ice-loader-overlay'); + var loaderId = calculateUniqueId(); + var loader = $('#' + loaderId); + loader.remove(); + } + }, true); + + var calculateUniqueId = function(){ + var prefix = 'ice-loader-'; + var name = scope.selector; + name = name.replace(".",""); + name = name.replace("#",""); + return prefix + name; + }; + + }; + return directive; + + } + +})(); diff --git a/d2ice.att.io/app/directives/ice-loader/ice-loader.html b/d2ice.att.io/app/directives/ice-loader/ice-loader.html new file mode 100755 index 00000000..009a7ee6 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-loader/ice-loader.html @@ -0,0 +1,39 @@ + +
diff --git a/d2ice.att.io/app/directives/ice-loader/ice-loader.less b/d2ice.att.io/app/directives/ice-loader/ice-loader.less new file mode 100755 index 00000000..22b761e3 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-loader/ice-loader.less @@ -0,0 +1,52 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.ice-loader { + + background: url('images/wait.gif') no-repeat top left; width: 16px; height: 11px; + display: block; + .m_14_m; + /*top: 50%; + left: 50%;*/ + +} + +.ice-loader-overlay { + /*background-color: #F2F2F2;*/ + opacity: 0.2; +} diff --git a/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.directive.js b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.directive.js new file mode 100755 index 00000000..d46a0903 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.directive.js @@ -0,0 +1,87 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.directives') + .directive('iceNewsAndAnnouncement', ['cmsService', '$uibModal', '$log', iceNewsAndAnnouncement]); + + function iceNewsAndAnnouncement(cmsService, $uibModal, $log) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/ice-news-and-announcement/ice-news-and-announcement.html'; + directive.scope = {limit: '=limit', fromLastDays: '=fromLastDays', showDescription: "=showDescription"}; + directive.link = function (scope, element, attrs) { + var limit = scope.limit || 5; + var fromLastDays = scope.fromLastDays || ""; + var init = function () { + cmsService.getPosts(limit, fromLastDays, ['Announcement', 'News']) + .then(function(response) { + scope.cmsPosts = response.data; + }) + .catch(function(error) { + $log.error(error); + }); + }; + + scope.openCMSReadMoreModal = function(cmsPost) { + if(cmsPost) { + $uibModal.open({ + templateUrl: 'main/modals/cms-post-modal/cms-post-modal.html', + controller: 'cmsPostModalController', + controllerAs: 'vm', + size: 'cms-post-read-more', + resolve: { + post: function () { + return cmsPost; + } + } + }); + } else { + $log.debug("Cannot open cms post.") + } + }; + + init(); + }; + + return directive; + } +})(); diff --git a/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.html b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.html new file mode 100755 index 00000000..df377dd6 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.html @@ -0,0 +1,51 @@ + +
+
News & Announcements
+
    +

    There are no posts.

    +
  • +
    +

    {{post.title}}

    +
    + Posted at {{post.publish_date | date2: 'EEEE MMMM doo yyyy'}} by {{post.user.username}} +

    +
  • +
+
diff --git a/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.less b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.less new file mode 100755 index 00000000..47c9fc81 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-news-and-announcement/ice-news-and-announcement.less @@ -0,0 +1,80 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +#news-and-announcements { + border: 1px solid @func_color_x; + padding:0px; + + #news-and-announcements-header { + background-color: @func_color_x; + .p_22_m; + padding: 10px 10px 0; + } + #news-and-announcements-list { + list-style:none; + padding: 0 15px; + .news-and-announcements-details { + border-bottom: 1px dashed @main_color_a; + padding-bottom:10px; + + .news-and-announcements-details-header { + .news-and-announcements-details-title { + .f-type ._20_m; + cursor: pointer; + margin-top: 15px; + margin-bottom: 0px; + margin-left: 15px; + word-wrap: break-word; + } + } + .news-and-announcements-description { + .m_18_r; + margin: 3px 0px; + line-height: 20px; + word-wrap: break-word; + } + .news-and-announcements-creation { + .m_12_r; + } + } + .news-and-announcements-details:last-child { + padding:0px; + border:none; + } + } +} diff --git a/d2ice.att.io/app/directives/ice-toast/ice-toast.directive.js b/d2ice.att.io/app/directives/ice-toast/ice-toast.directive.js new file mode 100755 index 00000000..bb7df0c5 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-toast/ice-toast.directive.js @@ -0,0 +1,76 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.directives') + .directive('iceToast', ['$rootScope', 'toastService', iceToast]); + + function iceToast($rootScope, toastService) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/ice-toast/ice-toast.html'; + directive.scope = {isModal: '=isModal'}; + directive.link = function (scope, element, attrs) { + var init = function() { + var toast = toastService.getToast(); + + if(toast) { + scope.toast = toast; + } + }; + + scope.closeAlert = function() { + toastService.clearToast(); + }; + + init(); + + //whenever the toast updated we will update the directive view: + $rootScope.$watch('showToast', function(newVal, OldVal){ + init(); + }, true); + }; + + return directive; + } + +})(); diff --git a/d2ice.att.io/app/directives/ice-toast/ice-toast.html b/d2ice.att.io/app/directives/ice-toast/ice-toast.html new file mode 100755 index 00000000..9badf3bf --- /dev/null +++ b/d2ice.att.io/app/directives/ice-toast/ice-toast.html @@ -0,0 +1,44 @@ + +
+ + + Read more >> + +
diff --git a/d2ice.att.io/app/directives/ice-toast/ice-toast.less b/d2ice.att.io/app/directives/ice-toast/ice-toast.less new file mode 100755 index 00000000..0741fee1 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-toast/ice-toast.less @@ -0,0 +1,48 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.ice-toast { + u { + .m_14_r; + } + + @media (max-width: 992px) { + padding-top: 10px; + padding-left: 0%; + } +} diff --git a/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.directive.js b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.directive.js new file mode 100755 index 00000000..3c5b867f --- /dev/null +++ b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.directive.js @@ -0,0 +1,69 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.directives') + .directive('iceToolTip', ['cmsService', '$log', iceToolTip]); + + function iceToolTip(cmsService, $log) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/ice-tooltip/ice-tooltip.html'; + directive.link = function (scope, element, attrs) { + var limit = 5; + + cmsService.getPosts(limit, '', ['FAQ']) + .then(function(response) { + if(response.data && response.data.length > 0) { + var rangeMax = response.data.length; + var randPostIndex = Math.floor(Math.random() * rangeMax); + scope.tipContent = response.data[randPostIndex]; + } + }) + .catch(function(error) { + $log.error(error); + }); + }; + + return directive; + } + +})(); diff --git a/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.html b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.html new file mode 100755 index 00000000..3c09051f --- /dev/null +++ b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.html @@ -0,0 +1,44 @@ + +
+
Did you know?
+
+

{{tipContent.excerpt}}

+
+
diff --git a/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.less b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.less new file mode 100755 index 00000000..949e9a04 --- /dev/null +++ b/d2ice.att.io/app/directives/ice-tooltip/ice-tooltip.less @@ -0,0 +1,82 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.tooltip-container { + border: 1px solid @main_color_o; + background-color: @main_color_p; + padding: 0px; + + .tooltip-title { + .f-type._22_m; + background-color: @main_color_p; + color: @tooltip_header_color; + padding: 10px 10px 0; + } + + .tooltip-content { + background-color: @main_color_p; + word-wrap: break-word; + + h4 { + padding: 0 15px; + } + } +} + +#nav-bar-wrapper { + .tooltip-container { + bottom: 10px; + + .tooltip-title { + .f-type._16_m; + background-color: @main_color_p; + color: @tooltip_header_color; + padding: 15px 15px 0; + } + + .tooltip-content { + background-color: @main_color_p; + word-wrap: break-word; + + h4 { + .f-type._16_r; + padding: 0 15px; + } + } + } +} diff --git a/d2ice.att.io/app/directives/notifications/notifications.directive.js b/d2ice.att.io/app/directives/notifications/notifications.directive.js new file mode 100755 index 00000000..159a535e --- /dev/null +++ b/d2ice.att.io/app/directives/notifications/notifications.directive.js @@ -0,0 +1,130 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.directives') + .directive('notifications', notifications); + + String.prototype.replaceAll = function(str1, str2, ignore) + { + return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),(ignore?"gi":"g")),(typeof(str2)=="string")?str2.replace(/\$/g,"$$$$"):str2); + } + + function notifications($compile,$filter,$rootScope,$location,localStorageService) { + var directive = {}; + directive.restrict = 'E'; + directive.template = '
'; + directive.scope = {activity : '='}; + directive.controller = ['$scope', function($scope) { + $scope.addDateStamp = function(activity) { + var description = ""; + var timeGapLocal = moment().format("z");// timeGap(); + + var ampm = moment().format('A'); + var mom =moment().tz( moment.tz.guess()).format('z'); + + if (activity.description.indexOf(' at ') == -1) + { + if (activity.description.substr(activity.description.length - 1) == '.') + description = activity.description.substr(0, activity.description.length - 1); + else + description = activity.description; + } else { + description = activity.description.substring(0, activity.description.indexOf(" at ")); + } + activity.description = description + ' at ' + $filter('date')(activity.create_time,'yyyy-MM-dd hh:mm:ss',timeGapLocal) + " " + ampm + " " + mom; + + return activity; + } + $scope.addPopover = function(activity,macro,short,long) { + + var template = "" + short +""; + activity.description = activity.description.replaceAll(macro, template); + } + + $scope.addSelectEngagement = function (activity,macro,short,uuid) { + var template = "" + short +""; + activity.description = activity.description.replaceAll(macro, template); + } + + $scope.goToEngagement = function(uuid){ + localStorageService.setJson("ice.settings.eng_uuid",uuid); + $location.path('/dashboard/overview'); + $location.replace(); + $rootScope.$broadcast('onUpdateEngagements',{select : {uuid:uuid,page_type:'overview',sub_id:undefined}}); + }; + + + }]; + directive.link = function(scope, iElement, iAttrs, ctrl) { + var activity = scope.activity; + activity.meta_data = JSON.parse(activity.metadata); + scope.addDateStamp(activity); + angular.forEach(activity.meta_data.macros,function(macro,key){ + switch (macro.type) + { + case 'popover': + scope.addPopover(activity,key,macro.short,macro.long); + break; + case 'select_engagement': + scope.addSelectEngagement(activity,key,macro.short,macro.eng_uuid); + break; + + } + + }); + var template = "" + scope.activity.description + ""; + + iElement.html(template).show(); + $compile(iElement.contents())(scope); + }; + return directive; + } + +})(); \ No newline at end of file diff --git a/d2ice.att.io/app/directives/progress/progress.directive.js b/d2ice.att.io/app/directives/progress/progress.directive.js new file mode 100755 index 00000000..073ff0cf --- /dev/null +++ b/d2ice.att.io/app/directives/progress/progress.directive.js @@ -0,0 +1,211 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.directives') + .directive('progressDirective', ["$uibModal", "$rootScope", "$log", "vfService", ProgressDirective]); + + function ProgressDirective($uibModal, $rootScope, $log, vfService) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/progress/progress.html'; + directive.scope = { + progress: "@progress", + data: "=data", + callback: "=callback", + statuses: "@statuses", + enable_refresh: "@enableRefresh", + }; + directive.link = function (scope, element, attrs) { + var init = function() { + if(!scope.statuses){ + scope.statuses = false; + } + + calculateDaysLeft(); + registerWatches(); + }; + + var calculateDaysLeft = function(){ + var currentDate = moment(); + var completionDate = moment(scope.data.completion_date); + var days_diff = Math.ceil(completionDate.diff(currentDate, 'days',true)); + if (days_diff < 0 ) + days_diff = 0; + scope.daysLeft = days_diff; + }; + + var registerWatches = function() { + scope.$watch('data.completion_date', function(oldVal, newVal) { + if (oldVal !== newVal){ + calculateDaysLeft(); + } + }); + + scope.$watch('data.heat_validated_time', function(oldVal, newVal) { + if (oldVal !== newVal){ + normalizeData(); + } + }); + + scope.$watch('data.vnf_version', function(oldVal, newVal) { + if (oldVal !== newVal){ + normalizeData(); + } + }); + + scope.$watch('data.image_scan_time', function(oldVal, newVal) { + if (oldVal !== newVal){ + normalizeData(); + } + }); + + scope.$watch('data.aic_instantiation_time', function(oldVal, newVal) { + if (oldVal !== newVal){ + normalizeData(); + } + }); + + scope.$watch('data.asdc_onboarding_time', function(oldVal, newVal) { + if (oldVal !== newVal){ + normalizeData(); + } + }); + }; + + var normalizeData = function() { + if(scope.data) { + if(!scope.data.ecomp_release){ + scope.data.ecomp_release = "-"; + } + if(!scope.data.aic_version){ + scope.data.aic_version = "-"; + } + + if(!scope.data.aic_instantiation_time){ + scope.data.aic_instantiation_time = "-"; + } + + if(!scope.data.vnf_version){ + scope.data.vnf_version = "-"; + } + + if(!scope.data.asdc_onboarding_time){ + scope.data.asdc_onboarding_time = "-"; + } + + if(!scope.data.heat_validated_time){ + scope.data.heat_validated_time = "-"; + } + + if(!scope.data.image_scan_time){ + scope.data.image_scan_time = "-"; + } + } + }; + + scope.starEngagement = function () { + vfService.putStarredEngagements(scope.data.engagement_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200 && response.data && response.data !== '') { + $rootScope.$broadcast('onUpdateEngagements', {select: { + uuid: scope.data.engagement_uuid, + page_type: 'dashboard', + sub_id: undefined, + enable_refresh: scope.enable_refresh + } + }); + if(scope.data.starred == false){ + scope.data.starred = true; + } + else { + scope.data.starred = false; + } + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + scope.goToEngagement = function(uuid){ + $rootScope.$broadcast('searchSelectEngagement',uuid); + }; + + scope.changeProgress = function(){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/change-progress/change-progress.html', + controller: 'ChangeProgressModalController', + controllerAs: 'vm', + resolve: { + progress: function () { + return scope.progress; + }, + engagementUuid: function () { + return scope.data.engagement_uuid; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + if (!data){ + return; + } + scope.progress = data.progress || scope.progress; + if (data.progress) { + scope.callback(data); + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + init(); + }; + + return directive; + } + +})(); diff --git a/d2ice.att.io/app/directives/progress/progress.html b/d2ice.att.io/app/directives/progress/progress.html new file mode 100755 index 00000000..6656a913 --- /dev/null +++ b/d2ice.att.io/app/directives/progress/progress.html @@ -0,0 +1,82 @@ + +
+
+ +
+ Progress + + + + + + + {{data.manual_id}}: {{data.name}} + +
+ +
+
+
+ {{progress}} % + +
+
+
+ Target AIC Version: {{data.aic_version}} + ECOMP Release: {{data.ecomp_release}} + VNF Version: +
+
+ +
+
Heat Validated:{{data.heat_validated_time | date:'shortDate'}}
+
Image Scan:{{data.image_scan_time | date:'shortDate'}}
+
AIC Instantiation:{{data.aic_instantiation_time | date:'shortDate'}}
+
ASDC Onboarding:{{data.asdc_onboarding_time | date:'shortDate'}}
+
+
+
diff --git a/d2ice.att.io/app/directives/progress/progress.less b/d2ice.att.io/app/directives/progress/progress.less new file mode 100755 index 00000000..c374886a --- /dev/null +++ b/d2ice.att.io/app/directives/progress/progress.less @@ -0,0 +1,184 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.steps-progress-wrapper { + position: relative; + border: 1px solid; + border-color: @main_color_o; + padding: 10px 15px; + background-color: @main_color_p; + + .progress-side-info { + padding: 0 10px; + margin-top: 4px; + + .value { + line-height: 20px; + .m_12_r; + } + + .progress-side-info-row { + .m_12_m; + line-height:20px; + + .progress-side-info-first-row { + padding-top: 1%; + } + + .progress-side-info-last-row { + padding-bottom: 1%; + } + } + } + + .progress-body-content { + .progress-left-content { + border-right: solid 1px @main_color_o; + + } + + .progress-version-release { + margin-top: 5px; + color: @main_color_m + } + + .description { + .progress-title { + .b_20; + + .manual-id { + .b_20_m; + } + + .progress-click { + cursor:pointer; + } + + .progress-question-mark { + font-size: 20px; + color: @main_color_r; + display: inline-block; + margin-left: 1px; + cursor: pointer; + position: relative; + top: 1px; + } + + .star-engagement-action { + display: inline-block; + cursor: pointer; + position: relative; + margin-right: 5px; + } + } + + .progress-edit-days-left { + float: right; + position: relative; + margin-right: 1%; + + .steps-progress-days-left { + .m_14_m; + vertical-align: bottom; + } + + .edit { + .sprite; + .sprite.edit-medium; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + } + } + } + + .steps-progress-bar { + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + border: solid 1px @main_color_o; + height: 30px; + + .progress-filled { + background-color: red; + /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#1672a4+0,c2e1f2+100 */ + background: @gradient_left; /* Old browsers */ + background: -moz-linear-gradient(left, @gradient_left 0%, @gradient_right 100%); /* FF3.6-15 */ + background: -webkit-linear-gradient(left, @gradient_left 0%, @gradient_right 100%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to right, @gradient_left 0%, @gradient_right 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=@gradient_left, endColorstr=@gradient_right, GradientType=1); /* IE6-9 */ + border-right: solid 1px @main_color_o; + } + + .progress-empty { + position: relative; + + &.right { + .percents { + left: 10px; + } + .edit { + left: 50px; + } + } + + .edit { + font-size: 21px; + color: @main_color_r; + display: inline-block; + position: absolute; + top: 5px; + left: -25px; + cursor: pointer; + } + + .percents { + position: absolute; + top: 4px; + left: -60px; + } + + &.full { + .percents { left: -70px; } + } + } + } + } +} diff --git a/d2ice.att.io/app/directives/step-stages/step-stages.directive.js b/d2ice.att.io/app/directives/step-stages/step-stages.directive.js new file mode 100755 index 00000000..50a97206 --- /dev/null +++ b/d2ice.att.io/app/directives/step-stages/step-stages.directive.js @@ -0,0 +1,172 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.directives', []) + .directive('stepStagesDirective', ProgressDirective); + + function ProgressDirective($rootScope, iceConstants, localStorageService, usersService, $uibModal) { + var directive = {}; + directive.restrict = 'E'; + directive.templateUrl = 'directives/step-stages/step-stages.html'; + directive.scope = { + stage : "=stage", + stage_num: "=stageNum", + eng_uuid : "@engUuid", + team: "=team", + eng_name: "@engName", + initactivitylogs: '&' + }; + directive.controller = ['$scope', 'vfService', '$log', function($scope, vfService, $log) { + $scope.set_engagement_stage = function(scope, requested_stage){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/set-eng-stage/set-eng-stage-modal.html', + controller: 'setEngStageModalController', + controllerAs: 'vm', + resolve: { + stage: function () { + return requested_stage; + }, + eng_name: function () { + return $scope.eng_name; + }, + current_stage: function () { + return $scope.stage; + } + } + }); + + modalInstance.result.then(function (bool) { + if(bool) { + vfService.set_engagement_stage(scope.eng_uuid, requested_stage) + .then(function (response) { + if (response.status === 202) { + scope.stage = requested_stage; + switch (requested_stage) { + case 'Intake': + scope.stage_num = 1; + break; + case 'Active': + scope.stage_num = 2; + break; + case 'Validated': + scope.stage_num = 3; + break; + case 'Completed': + scope.stage_num = 4; + break; + } + $rootScope.$broadcast('onUpdateNextSteps',{'stage': scope.stage, 'eng_uuid': scope.eng_uuid}); + $scope.initactivitylogs(); + } + else { + return false; + } + }) + .catch(function (error) { + $log.error(error); + }); + } + else { + return; + } + }); + + + }; + + $scope.hover_design = function(bool, num){ + $scope.temp_num = num; + $scope.hover = bool; + return; + }; + + + }]; + + + directive.link = function (scope, element, attrs) { + scope.hover = false; + scope.temp_num = 0; + scope.priviliged = false; + scope.const = iceConstants.stages; + scope.loaded = false; + scope.user = usersService.getUserData(); + scope.$watchGroup(['user','team'], function(new_vals, old_vals, scope){ + if(!(new_vals[0]) || !(new_vals[1])){ + return; + } + else if (!(scope.loaded)){ + if( (usersService.isEngagementEL(scope.team)) || (usersService.isAdmin(scope.user))){ + scope.priviliged = true; + }; + scope.loaded = true; + + } + }); + + scope.hover_actions = function(bool, num){ + if(!(scope.priviliged)){ + return; + }; + scope.hover_design(bool, num); + }; + + scope.set_stage = function(requested_stage){ + if(!(scope.priviliged)){ + return; + }; + if (scope.stage === requested_stage){ + $log.debug("Same stage was chosen, request ignored."); + return; + }; + + var result = scope.set_engagement_stage(scope, requested_stage); + + }; + + }; + return directive; + } + +})(); + diff --git a/d2ice.att.io/app/directives/step-stages/step-stages.html b/d2ice.att.io/app/directives/step-stages/step-stages.html new file mode 100755 index 00000000..0ccbd1d8 --- /dev/null +++ b/d2ice.att.io/app/directives/step-stages/step-stages.html @@ -0,0 +1,44 @@ + +
+
{{const.intake}}
+
{{const.active}}
+
{{const.validated}}
+
{{const.completed}}
+
diff --git a/d2ice.att.io/app/directives/step-stages/step-stages.less b/d2ice.att.io/app/directives/step-stages/step-stages.less new file mode 100755 index 00000000..617d0c64 --- /dev/null +++ b/d2ice.att.io/app/directives/step-stages/step-stages.less @@ -0,0 +1,75 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.steps-stages-wrapper { + + display: flex; + flex-direction: row; + justify-content: space-between; + overflow: hidden; + padding: 10px 0 0 0; + + .steps-stage { + + width: 100%; + + &:not(.selected) { + .step-progress-dashed(34px, @toolbar_background_color, 100%); + } + + &.selected { + .step-progress(34px, @toolbar_background_color, 100%); + } + + &.hover-selected { + .step-progress(34px, @toolbar_background_color, 100%); + cursor: pointer; + } + + &.previous-stage { + .step-progress-solid(34px, @toolbar_background_color, 100%); + } + + &.hover-previous-stage { + .step-progress-solid(34px, @toolbar_background_color, 100%); + cursor: pointer; + } + + } + +} diff --git a/d2ice.att.io/app/favicon.png b/d2ice.att.io/app/favicon.png new file mode 100755 index 00000000..6e9f04df Binary files /dev/null and b/d2ice.att.io/app/favicon.png differ diff --git a/d2ice.att.io/app/filters/capitalize.filter.js b/d2ice.att.io/app/filters/capitalize.filter.js new file mode 100755 index 00000000..fa191f58 --- /dev/null +++ b/d2ice.att.io/app/filters/capitalize.filter.js @@ -0,0 +1,52 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('capitalize', [capitalize]); + + function capitalize() { + return function(input) { + return (input) ? input.charAt(0).toUpperCase() + input.substr(1).toLowerCase() : ''; + } + } +})(); diff --git a/d2ice.att.io/app/filters/customDocumentationPageSearch.filter.js b/d2ice.att.io/app/filters/customDocumentationPageSearch.filter.js new file mode 100755 index 00000000..edf1e691 --- /dev/null +++ b/d2ice.att.io/app/filters/customDocumentationPageSearch.filter.js @@ -0,0 +1,58 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('customDocumentationPageSearch', ['cmsService', customDocumentationPageSearch]); + + function customDocumentationPageSearch(cmsService) { + return function(search_list,search_term) { + return cmsService.searchPages(search_term) + .then(function (response) { + return response.data; + }) + .catch(function (error) { + $log.error(error); + }); + } + } +})(); diff --git a/d2ice.att.io/app/filters/customVFSearchFilter.filter.js b/d2ice.att.io/app/filters/customVFSearchFilter.filter.js new file mode 100755 index 00000000..13c6fbf4 --- /dev/null +++ b/d2ice.att.io/app/filters/customVFSearchFilter.filter.js @@ -0,0 +1,62 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('customVFSearchFilter', ['vfService', '$log', customVFSearchFilter]); + + function customVFSearchFilter (vfService, $log) { + return function(search_list,search_term) { + var postData = {'stage': 'All', 'keyword': search_term, 'offset': 0, 'limit': 20}; + return vfService.getExpandedEngagements(postData) + .then(function (response) { + if (response.status === 200 && response.data && response.data !== '') { + return response.data['array']; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + } +})(); diff --git a/d2ice.att.io/app/filters/date2.filter.js b/d2ice.att.io/app/filters/date2.filter.js new file mode 100755 index 00000000..f39761e7 --- /dev/null +++ b/d2ice.att.io/app/filters/date2.filter.js @@ -0,0 +1,60 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('date2', ['$filter', date2]); + + function date2($filter) { + var suffixes = ["th", "st", "nd", "rd"]; + return function(input, format) { + if(input) { + var dtfilter = $filter('date')(input, format); + var day = parseInt($filter('date')(input, 'dd')); + var relevantDigits = (day < 30) ? day % 20 : day % 30; + var suffix = (relevantDigits <= 3) ? suffixes[relevantDigits] : suffixes[0]; + return dtfilter.replace('oo', suffix); + } + return input; + }; + } +})(); diff --git a/d2ice.att.io/app/filters/doesExists.filter.js b/d2ice.att.io/app/filters/doesExists.filter.js new file mode 100755 index 00000000..fd52ee2b --- /dev/null +++ b/d2ice.att.io/app/filters/doesExists.filter.js @@ -0,0 +1,52 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('doesExists', ['$sce', '$injector', '$log', doesExists]); + + function doesExists ($sce, $injector, $log) { + return function(matchItem, query) { + return matchItem.toLowerCase().includes(query.toLowerCase()); + }; + } +})(); diff --git a/d2ice.att.io/app/filters/htmlspecialchars.filter.js b/d2ice.att.io/app/filters/htmlspecialchars.filter.js new file mode 100755 index 00000000..e96749d2 --- /dev/null +++ b/d2ice.att.io/app/filters/htmlspecialchars.filter.js @@ -0,0 +1,62 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('htmlspecialchars', ['_','$filter', htmlspecialchars]); + + function htmlspecialchars(_,$filter) { + return function(input) { + input = _.replace(input,/\&\;/g,"&"); + input = _.replace(input,/\<\;/g,"<"); + input = _.replace(input,/\>\;/g,">"); + input = _.replace(input,/\"\;/g,'"'); + input = _.replace(input,/\\;/g,"'"); + input = _.replace(input,/<(\s)*script/g,"_script"); +// input = _.replace(input,/style=\"font-weight: bold;\"/g,"class=\"bold\""); +// input = _.replace(input,/style=\"font-style: italic;\"/g,"class=\"italic\""); +// input = _.replace(input,/style=\"text-decoration-line: line-through;\"/g,"class=\"line-through\""); +// input = _.replace(input,/style=\"text-decoration-line: underline;\"/g,"class=\"underline\""); + return input; + }; + } +})(); diff --git a/d2ice.att.io/app/filters/htmlstylespan.filter.js b/d2ice.att.io/app/filters/htmlstylespan.filter.js new file mode 100755 index 00000000..ae79eebf --- /dev/null +++ b/d2ice.att.io/app/filters/htmlstylespan.filter.js @@ -0,0 +1,56 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 07/02/2017. + */ +(function () { + 'use strict'; + angular.module('ice.filters') + .filter('htmlstylespan', ['_','$filter', htmlstylespan]); + + function htmlstylespan(_,$filter) { + return function(input) { + input = _.replace(input,/style=\"font-weight: bold;\"/g,"class=\"bold\""); + input = _.replace(input,/style=\"font-style: italic;\"/g,"class=\"italic\""); + input = _.replace(input,/style=\"text-decoration-line: line-through;\"/g,"class=\"line-through\""); + input = _.replace(input,/style=\"text-decoration-line: underline;\"/g,"class=\"underline\""); + return input; + }; + } +})(); diff --git a/d2ice.att.io/app/filters/trusted.filter.js b/d2ice.att.io/app/filters/trusted.filter.js new file mode 100755 index 00000000..9f6fe13f --- /dev/null +++ b/d2ice.att.io/app/filters/trusted.filter.js @@ -0,0 +1,49 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular.module('ice.filters', []) + .filter('trusted', ['$sce', trusted]); + + function trusted ($sce){ + return function(html){ + return $sce.trustAsHtml(html) + } + } +})(); diff --git a/d2ice.att.io/app/index.html b/d2ice.att.io/app/index.html new file mode 100755 index 00000000..5743dba5 --- /dev/null +++ b/d2ice.att.io/app/index.html @@ -0,0 +1,262 @@ + + + + + + + + + AT&T | {{'program.name' | i18next}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/d2ice.att.io/app/interceptors/httpInterceptors.js b/d2ice.att.io/app/interceptors/httpInterceptors.js new file mode 100755 index 00000000..fb8c6ad6 --- /dev/null +++ b/d2ice.att.io/app/interceptors/httpInterceptors.js @@ -0,0 +1,95 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +'use strict'; + +angular.module('ice.interceptors.http', []) + .factory('httpRequestInterceptor', function ($injector, $rootScope) { + return { + request: function (config) { + // Send the user only for API requests + if (config.url.indexOf($rootScope.baseURL) !== -1) { + config.headers = config.headers || {}; + var user = $injector.get('usersService').getUserData(function() {}); + if (user && !config.skipAuth) { + config.headers.Authorization = "token "+user.jwtToken; + } + } + return config; + } + }; + }) + .factory('httpResponseInterceptor', function ($rootScope) { + return { + response: function (response) { + return response; + } + } + }) + .factory('httpRequestErrorInterceptor', function ($q) { + return { + requestError: function (request) { + // Do something + return request; + } + } + }) + .factory('httpResponseErrorInterceptor', ["$q", "$rootScope", "$injector", "toastService", function ($q, $rootScope, $injector, toastService) { + return { + responseError: function (response) { + var $state = $injector.get('$state'); + var status = response.status; + switch (status) { + case 401: + //AuthFactory.clearUser(); + toastService.setToast(response.statusText, 'danger'); + //$window.location = "/auth/login?redirectUrl=" + redirectUrl; + break; + case 403: + $state.go('app.login'); + break; + case 404: + //$state.go("app.errors_error-404"); + break; + } + + // otherwise + return $q.reject(response); + } + } + }]); diff --git a/d2ice.att.io/app/locales/en/translation.json b/d2ice.att.io/app/locales/en/translation.json new file mode 100755 index 00000000..176fa89c --- /dev/null +++ b/d2ice.att.io/app/locales/en/translation.json @@ -0,0 +1,12 @@ +{ + "vendor": { + "name": "EXAMPLE VENDOR", + "email": "admin@example.com" + }, + "serviceProvider": { + "name": "EXAMPLE PROVIDER" + }, + "program": { + "name": "VVP PROGRAM" + } +} diff --git a/d2ice.att.io/app/main/activation/activate/activateUser.controller.js b/d2ice.att.io/app/main/activation/activate/activateUser.controller.js new file mode 100755 index 00000000..39e60123 --- /dev/null +++ b/d2ice.att.io/app/main/activation/activate/activateUser.controller.js @@ -0,0 +1,60 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.activation.activateUser') + .controller('ActivateUserController', ["$state", "usersService", "$log", "$stateParams", LoginController]); + + function LoginController($state, usersService, $log, $stateParams) { + var init = function () { + usersService.activateUser($stateParams.userID, $stateParams.token) + .then(function (response) { + $state.go('app.login', {activation_success: response.data.activation_success, + engagement_uuid: response.data.engagement_uuid}); + }) + .catch(function (error) { + $log.error(error); + $state.go('app.login', {message: error.message.detail}); + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/activation/activate/activateUser.html b/d2ice.att.io/app/main/activation/activate/activateUser.html new file mode 100755 index 00000000..2041a607 --- /dev/null +++ b/d2ice.att.io/app/main/activation/activate/activateUser.html @@ -0,0 +1,39 @@ + +
diff --git a/d2ice.att.io/app/main/activation/activate/activateUser.module.js b/d2ice.att.io/app/main/activation/activate/activateUser.module.js new file mode 100755 index 00000000..b2e1f169 --- /dev/null +++ b/d2ice.att.io/app/main/activation/activate/activateUser.module.js @@ -0,0 +1,58 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.activation.activateUser', []) + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.activateUser', { + url: '/activate/:userID/:token', + views: { + 'main@': { + templateUrl: 'main/activation/activate/activateUser.html', + controller : 'ActivateUserController as vm' + } + }, + params: {} + }); + } +})(); diff --git a/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.controller.js b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.controller.js new file mode 100755 index 00000000..c8859a7d --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.controller.js @@ -0,0 +1,111 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.addVendorContact') + .controller('AddVendorContactController', ["$state", "vfService", "usersService", "$log", "$rootScope", + AddVendorContactController]); + + function AddVendorContactController($state, vfService, usersService, $log, $rootScope) { + + var vm = this; + vm.data = {}; + + var init = function() { + $rootScope.ice.loader.show = true; + $rootScope.headerTitle = ""; + $rootScope.headerSubTitle = ""; + + vm.choices = [{ VirtualFunction: '', TargetLab: '', TargetAic: '',is_service_provider_internal: '' }]; + + vfService.getCompanies() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.companies = response.data; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + }; + + vm.submitForm = function () { + vm.data.company = vm.data.company.uuid; + + $rootScope.ice.loader.show = true; + usersService.addVendorContact(vm.data) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + if (response.data.is_active) { + $state.go('app.dashboard.overview'); + } else { + $state.go('app.resend_activation'); + } + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + vm.Msg = response.status + " : " + response.statusText; + vm.bgColor = "#FFEBEB"; // RED #FFEBEB green DFF0D9 + $log.error(error); + }); + }; + + vm.addNewChoice = function (){ + var newItemNo = vm.choices.length + 1; + vm.choices.push({ 'id': newItemNo }); + }; + + vm.removeChoice = function (){ + var lastItem = vm.choices.length - 1; + vm.choices.splice(lastItem); + }; + + init(); + } + +})(); + diff --git a/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.html b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.html new file mode 100755 index 00000000..ff9bd6e6 --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.html @@ -0,0 +1,111 @@ + + + +
+
+
+ +
+ +
+ + +
+ Please select a company +
+
+ +
+ + +
+ Name is a required field. + Full Name is too short. + Full Name is too long. +
+
+ +
+ + +
+ Email is a required field. + Enter a valid email. +
+
+ +
+ + +
+ Phone is a required field. + Phone is too short. + Phone is too long. + Phone must consist of numbers only. +
+
+ +
+  I agree to receive regular email updates. +
+ +
+  I accept the AT&T's {{'program.name' | i18next}} Terms of Service and Privacy Policy. +
+ +
+ +
+
reCAPTCHA is invalid.
+
+ + + + + + +
+ +
+
+ +
diff --git a/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.less b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.less new file mode 100755 index 00000000..166962d9 --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.less @@ -0,0 +1,82 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.addVendorContact { + + .add-button + { + float:left; + .sprite; + .sprite.add; + } + + .remove-button + { + width:100px; + height:40px; + line-height:20px; + vertical-align:middle; + padding-left:10px; + float:left; + } + + .login-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a.register { + text-decoration: underline; + float: right; + margin: 10px 0 0 0; + } + +} diff --git a/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.module.js b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.module.js new file mode 100755 index 00000000..c7b7396a --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVendorContact/addVendorContact.module.js @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.addVendorContact', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.addVendorContact', { + url : '/addVendorContact', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.addVendorContact': { + templateUrl: 'main/activation/addVendorContact/addVendorContact.html', + controller : 'AddVendorContactController as vm' + } + }, + bodyClass: 'addVendorContact' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/addVf/addVf.controller.js b/d2ice.att.io/app/main/activation/addVf/addVf.controller.js new file mode 100755 index 00000000..5a00c170 --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVf/addVf.controller.js @@ -0,0 +1,277 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.addVf') + .controller('AddVfController', ["$scope", "$state", "vfService", "toastService", "$location", "$rootScope", + "localStorageService", 'usersService', '$log', AddVfController]) + .directive('addVf', function () { + return { + restrict: 'AEC', + templateUrl: 'main/activation/addVf/addVf.html', + link: function(scope, elm, attrs) { + + }, + controller: AddVfController, + controllerAs: 'vm', + scope: { + isModal: '=isModal' + } + } + }); + + function AddVfController($scope, $state, vfService, toastService, $location, $rootScope,localStorageService, + usersService, $log) { + var vm = this; + vm.data = []; + vm.isModal = $scope.isModal; + vm.user = usersService.getUserData(); + if (vm.user == undefined) { + $state.go('app.login'); + } + + $rootScope.headerTitle = "Add Virtual Function"; + $rootScope.headerSubTitle = "
Please use the form below to submit the virtual functions you would " + + "like to engage with ICE.
Please do note that each VF will be tracked separately.
"; + + if (!vm.isModal && $location.search().activation_success) { + toastService.setToast('You have successfully activated your account', 'success', {displayFor: 'modal'}); + } + + var targetLabDate1 = []; + //vm.targetLabDate = iceConstants.targetLabDate; + vm.targetLabDate = monthesPlus12(); + + + $rootScope.ice.loader.show = true; + vfService.getDeployTargets() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.deployTargets = response.data; + } + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + vfService.getECOMPReleases() + .then(function (response) { + if (response.status === 200) { + vm.ECOMPReleases = response.data; + } + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + vm.choices = [{VirtualFunction: '', TargetLab: '', TargetAic: '', is_service_provider_internal: ''}]; + + vm.addNewChoice = function () { + var newItemNo = vm.choices.length + 1; + vm.choices.push({'id': newItemNo}); + }; + + vm.removeChoice = function (index) { + vm.choices.splice(index,1); + }; + + vm.submitForm = function () { + var is_service_provider_internal; + var jsonAddVf = []; + angular.forEach(vm.choices, function (value, key) { + if (value.is_service_provider_internal == true) { + is_service_provider_internal = "True"; + } else { + is_service_provider_internal = "False"; + } + vm.item = []; + var jsonItem = new Object(); + jsonItem.virtual_function = value.VirtualFunction; + var objDate = new Date(Date.parse((value.TargetLab) + moment().format("z"))); + jsonItem.target_lab_entry_date = objDate.getFullYear() + "-" + + addZero(objDate.getMonth()+1) + "-" + addZero(objDate.getDate()); + jsonItem.version = value.VFVersion; + jsonItem.target_aic_uuid = value.TargetAic; + jsonItem.ecomp_release = value.ECOMPRelease; + jsonItem.is_service_provider_internal = (is_service_provider_internal === "True"); + jsonAddVf.push(jsonItem); + }); + + $rootScope.ice.loader.show = true; + vfService.addVfs(JSON.stringify(jsonAddVf))//vm.data)) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + localStorageService.setJson("vfs", response.data); + + if (!vm.isModal) { + if (response.data.is_active) { + $state.go('app.dashboard.overview'); + } else { + $state.go('app.resend_activation'); + } + } else { + $scope.$emit('onUpdateEngagements',{ + select: { + uuid:response.data[0].engagement.uuid,page_type:'overview', + sub_id:undefined + } + }); + $scope.$emit('moveWizardNextStep', response.data[0]); + } + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + + vm.skipAddVf = function () { + if (!vm.isModal && $location.search().activation_success) { + $state.go('app.dashboard.overview'); + } else { + $state.go('app.resend_activation'); + } + }; + vm.myDate = new Date(); + vm.minDate = new Date( + vm.myDate.getFullYear(), + vm.myDate.getMonth(), + vm.myDate.getDate()); + vm.maxDate = new Date( + vm.myDate.getFullYear() + 2, + vm.myDate.getMonth(), + vm.myDate.getDate()); + + } + + + var monthesPlus12 = function() + { + var i; + var arrMonthYear=[]; + var startingMonth = (new Date().getMonth()+1); + var startingYear = (new Date().getFullYear()); + for (i = startingMonth ; i<=12;i++) + { + arrMonthYear.push({"val": monthZero(i) + "-" + startingYear, "nam": MonthNumToName(i) + " " + + startingYear}); + } + for (i=1; i < startingMonth ; i++) + { + arrMonthYear.push({"val": monthZero(i) + "-" + (startingYear+1), "nam": MonthNumToName(i) + " " + + (startingYear + 1)}); + } + return(arrMonthYear); + } + + var monthZero = function(m) + { + var ret = m; + if (m<10) + { + ret = "0"+m; + } + return(ret); + } + + var MonthNumToName = function(m) + { + var MonthName; + switch (m) + { + case 1: + MonthName = "January"; + break; + case 2: + MonthName = "February"; + break; + case 3: + MonthName = "March"; + break; + case 4: + MonthName = "April"; + break; + case 5: + MonthName = "May"; + break; + case 6: + MonthName = "June"; + break; + case 7: + MonthName = "July"; + break; + case 8: + MonthName = "August"; + break; + case 9: + MonthName = "September"; + break; + case 10: + MonthName = "October"; + break; + case 11: + MonthName = "November"; + break; + case 12: + MonthName = "December"; + break; + } + return(MonthName); + } + + var addZero = function(x) + { + if (x<10) + { + return("0"+x); + } + else + { + return(x); + } + } +})(); + diff --git a/d2ice.att.io/app/main/activation/addVf/addVf.html b/d2ice.att.io/app/main/activation/addVf/addVf.html new file mode 100755 index 00000000..4dff7b0b --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVf/addVf.html @@ -0,0 +1,130 @@ + + +
+
+
+
+
+
+ +
+
+ +
+ +
+ Use the form below to add your VF.Try to be as accurate as you can around the information to + make sure the validation can accomplished as possible. +
+
+
+ +
+
VF Name
+ +
+ VF Name can be alphanumeric or/and Hyphen +
+
+
+
+

Key Metadata

+
+ +
+ +
+
Target Lab Entry Date
+ + +
+
+
+ + The virtual function is only developed internally inside AT&T. +
+
+
+
+ +
+
+
+
+
diff --git a/d2ice.att.io/app/main/activation/addVf/addVf.less b/d2ice.att.io/app/main/activation/addVf/addVf.less new file mode 100755 index 00000000..dd78bae3 --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVf/addVf.less @@ -0,0 +1,176 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.add-vf { + + .reject_large { + .actions-sprite; + .actions-sprite.reject_large; + cursor: pointer; + } + + .table{ + margin-bottom: 0; + } + + .table-container-flex { + + + .action-row-wrapper, .data-row-wrapper { + padding: 5px 10px; + margin-bottom:5px; + + } + + .data-row-wrapper:nth-child(even) { + background: rgba(158, 158, 158, 0.28); + + + } + + .data-row-wrapper:nth-child(odd) { + border-bottom: 1px solid; + border-top: 1px solid; + border-color: @main_color_q; + } + + .data-row-wrapper:first-child { + border-top: none; + } + + .data-row-wrapper:last-child { + border-bottom:none; + } + .flex-item { + padding-left:0px; + } + .flex-item:nth-child(1) { + padding: 5px 15px 5px 0px; + flex-grow: 25; + } + + .flex-item:nth-child(2) { + flex-grow: 25; + } + + .flex-item:nth-child(3) { + flex-grow: 25; + } + + .flex-item:nth-child(4) { + flex-grow: 25; + } + .flex-item:nth-child(5) { + flex-grow: 25; + } + + } + + .add-vf-confirm-checkbox { + display: block; + clear: both; + } + + .add-button { + display: block; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } + } + + .remove-button { + width:100px; + height:40px; + line-height:20px; + vertical-align:middle; + padding-left:10px; + float:left; + .a_16_m; + margin-top: 8px; + cursor: pointer; + + .remove-icon { + display: inline-block; + vertical-align: text-top; + margin-right: 6px; + .sprite; + .sprite.delete-circle; + cursor: pointer; + } + } + + .lineColor + { + margin: 2px; + } + + .addVf-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + #skip-add-vf-singup { + margin-top: 10px; + display: block; + text-decoration: underline; + text-align: left; + .a_16_r; + } + + +} diff --git a/d2ice.att.io/app/main/activation/addVf/addVf.module.js b/d2ice.att.io/app/main/activation/addVf/addVf.module.js new file mode 100755 index 00000000..bac2c90b --- /dev/null +++ b/d2ice.att.io/app/main/activation/addVf/addVf.module.js @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.addVf', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.addVf', { + url : '/addVf', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.addVf': { + templateUrl: 'main/activation/addVf/addVf.html', + controller : 'AddVfController as vm' + } + }, + bodyClass: 'add-vf' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/contactUs/contactUs.controller.js b/d2ice.att.io/app/main/activation/contactUs/contactUs.controller.js new file mode 100755 index 00000000..bed33798 --- /dev/null +++ b/d2ice.att.io/app/main/activation/contactUs/contactUs.controller.js @@ -0,0 +1,57 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.contactUs') + .controller('ContactUsController', ["$rootScope", ContactUsController]); + + function ContactUsController($rootScope) { + + var vm = this; + + $rootScope.headerTitle = "Contact Us"; + $rootScope.headerSubTitle = "Please fill in the details below"; + + } + +})(); + diff --git a/d2ice.att.io/app/main/activation/contactUs/contactUs.html b/d2ice.att.io/app/main/activation/contactUs/contactUs.html new file mode 100755 index 00000000..653ebc1d --- /dev/null +++ b/d2ice.att.io/app/main/activation/contactUs/contactUs.html @@ -0,0 +1,53 @@ + +
+ +
+
+ +
+ + + +
+ +
+
+ +
diff --git a/d2ice.att.io/app/main/activation/contactUs/contactUs.less b/d2ice.att.io/app/main/activation/contactUs/contactUs.less new file mode 100755 index 00000000..befbb342 --- /dev/null +++ b/d2ice.att.io/app/main/activation/contactUs/contactUs.less @@ -0,0 +1,59 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.contact-us { + + .contact-us-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + +} diff --git a/d2ice.att.io/app/main/activation/contactUs/contactUs.module.js b/d2ice.att.io/app/main/activation/contactUs/contactUs.module.js new file mode 100755 index 00000000..9259671d --- /dev/null +++ b/d2ice.att.io/app/main/activation/contactUs/contactUs.module.js @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.contactUs', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.contactus', { + url : '/contactUs', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.contactus': { + templateUrl: 'main/activation/contactUs/contactUs.html', + controller : 'ContactUsController as vm' + } + }, + bodyClass: 'contact-us' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.controller.js b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.controller.js new file mode 100755 index 00000000..72ff43c0 --- /dev/null +++ b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.controller.js @@ -0,0 +1,97 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.activation.inviteMembers') + .controller('InviteMembersController', ["$state", "vfService", "$rootScope", "$log", InviteMembersController]); + + function InviteMembersController($state, vfService, $rootScope, $log) { + var vm = this; + vm.data = []; + + var init = function() { + $rootScope.headerTitle = "Invite Team Members"; + $rootScope.headerSubTitle = "You can invite as many team members to collaborate around your virtual" + + " function as you would like. Please do remember that anyone invited to collaborate with you around" + + " the virtual function will have equal access."; + vm.choices = [{ Email: '' }]; + }; + + vm.submitForm = function () { + var jsonInviteMembers=[]; + angular.forEach(vm.choices, function(value, key) { + vm.item=[]; + var jsonItem = new Object(); + jsonItem.email = value.email; + jsonInviteMembers.push(jsonItem); + }); + + $rootScope.ice.loader.show = true; + vfService.inviteMembers(JSON.stringify(jsonInviteMembers)) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + if (response.data.is_active) { + $state.go('app.dashboard.overview'); + } else { + $state.go('app.resend_activation'); + } + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.addNewChoice = function () { + var newItemNo = vm.choices.length + 1; + vm.choices.push({ 'id': newItemNo }); + }; + + vm.removeChoice = function () { + var lastItem = vm.choices.length - 1; + vm.choices.splice(lastItem); + }; + + init(); + } +})(); + diff --git a/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.html b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.html new file mode 100755 index 00000000..60fa01d5 --- /dev/null +++ b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.html @@ -0,0 +1,72 @@ + + + +
+ +
+ +
+ +
+
+
+
+
+
+ +
+ Email is a required field. + Enter a valid email. +
+
+
+
+ Remove +
+
+
+ + Invite another team member + + + +
+
+
diff --git a/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.less b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.less new file mode 100755 index 00000000..9eb02dc3 --- /dev/null +++ b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.less @@ -0,0 +1,86 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.inviteMembers { + + .inviteMembers-title { + height: 130px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + h1 {.p_24; margin: 20px 0 10px 0;} + h2 {.p_16_m; margin: 0;} + } + + .add-button { + &:after { + .sprite; + .sprite.add; + display: block; + } + } + + .remove-button { + width:100px; + height:40px; + line-height:20px; + vertical-align:middle; + padding-left:10px; + float:left; + } + + .inviteMembers-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + +} diff --git a/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.module.js b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.module.js new file mode 100755 index 00000000..61d8f1f0 --- /dev/null +++ b/d2ice.att.io/app/main/activation/inviteMembers/inviteMembers.module.js @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.inviteMembers', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.inviteMembers', { + url : '/inviteMembers', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.inviteMembers': { + templateUrl: 'main/activation/inviteMembers/inviteMembers.html', + controller : 'InviteMembers as vm' + } + }, + bodyClass: 'inviteMembers' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/login/login.controller.js b/d2ice.att.io/app/main/activation/login/login.controller.js new file mode 100755 index 00000000..9ed5f1be --- /dev/null +++ b/d2ice.att.io/app/main/activation/login/login.controller.js @@ -0,0 +1,119 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.login') + .controller('LoginController', ["$state", "usersService", "$log", "$rootScope", "$location", "toastService", + "$stateParams", LoginController]); + + function LoginController($state, usersService, $log, $rootScope, $location, toastService, $stateParams) { + var vm = this; + vm.data = {}; + $rootScope.headerTitle = "Login"; + $rootScope.headerSubTitle = "Please use the form below to login"; + usersService.resetUserData(); + var t=""; + + if ($state.params.message){ + toastService.setToast($state.params.message, 'danger'); + $log.warn($state.params.message); + } + + if ($location.search().t != undefined){ + t = "token"+$location.search().t + } + + vm.data.invitation = $location.search().invitation; + + vm.submitForm = function () { + $rootScope.ice.loader.show = true; + usersService.login(JSON.stringify(vm.data), t) + .then(function (response) { + if (response.status === 200) { + $rootScope.ice.loader.show = false; + + usersService.setUserActivationSuccess($state.params.activation_success); + + if(response.data.isResetPwdFlow!=undefined && response.data.isResetPwdFlow==true){ + $state.go("app.updatePassword"); + } + else{ + // This is a workaround to remove slash at the beginning. + // The slash is there because the ui-router does not support optional + // params in URL address, and I used regex: + // url: '/login{enggement_uuid: (?:/[^/]+)?}' and the value returned for engagement_uuid + // contains slash at the start. + var engagement_uuid = $state.params.engagement_uuid; + if (response.data.eng_uuid != undefined) + engagement_uuid = response.data.eng_uuid; + + if (engagement_uuid){ + engagement_uuid = engagement_uuid.replace('/',''); + $state.go("app.dashboard.overview", {"engagement_uuid": engagement_uuid}); + } else { + $state.go("app.dashboard.dashboard"); + } + } + } + }) + .catch(function (error) { + if(error && error.message && error.message.detail) { + toastService.setToast(error.message.detail, 'danger'); + } else { + toastService.setToast(error.message, 'danger'); + } + + $rootScope.ice.loader.show = false; + $log.error(error.message); + if(error.status===403){ // The server will return 403 if the user.is_active==false + $log.error('User is not active, redirecting to resend_activation page'); + $state.go("app.resend_activation", {"message": "Please activate your account first"}); + } + if(error.status===302){ // The server will return 302 if the temporary password has expired + $log.error('Temporary password has expired, redirecting to reset_password page'); + $state.go('app.resetPassword', {"message":"Your temporary password has expired, please" + + " generate a new one"}); + } + }); + }; + } +})(); diff --git a/d2ice.att.io/app/main/activation/login/login.html b/d2ice.att.io/app/main/activation/login/login.html new file mode 100755 index 00000000..d095fda1 --- /dev/null +++ b/d2ice.att.io/app/main/activation/login/login.html @@ -0,0 +1,90 @@ + + + +
+ +
+
+ +
+
+ +
diff --git a/d2ice.att.io/app/main/activation/login/login.less b/d2ice.att.io/app/main/activation/login/login.less new file mode 100755 index 00000000..9dd6a9f7 --- /dev/null +++ b/d2ice.att.io/app/main/activation/login/login.less @@ -0,0 +1,109 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.login { + + .login-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a.register { + text-decoration: underline; + float: right; + margin: 10px 0 0 0; + } + + + .leftLink + { + padding-top:5px; + width:50%; + text-align:left; + float:left; + + a, + a:hover, + a:active, + a:focus + { + .m_14_r; + cursor: pointer; + } + + a{ + text-decoration:underline; + } + } + + .rightLink + { + font-size:14px; + padding-top:5px; + width:50%; + text-align:right; + float:left; + + a, + a:hover, + a:active, + a:focus + { + .m_14_r; + cursor: pointer; + } + + a{ + text-decoration:underline; + } + } + +} diff --git a/d2ice.att.io/app/main/activation/login/login.module.js b/d2ice.att.io/app/main/activation/login/login.module.js new file mode 100755 index 00000000..9953063b --- /dev/null +++ b/d2ice.att.io/app/main/activation/login/login.module.js @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.login', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.login', { + url: '/login{engagement_uuid: (?:/[^/]+)?}', + views: { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller: 'MainController as vm' + }, + 'content@app.login': { + templateUrl: 'main/activation/login/login.html', + controller: 'LoginController as vm' + } + }, + params: {message: null, activation_success: undefined}, + bodyClass: 'login' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/register/register.controller.js b/d2ice.att.io/app/main/activation/register/register.controller.js new file mode 100755 index 00000000..e4e525a7 --- /dev/null +++ b/d2ice.att.io/app/main/activation/register/register.controller.js @@ -0,0 +1,122 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.register') + .controller('RegisterController', ["usersService", "$state", "$location", "vfService", "$rootScope", + "toastService", "$log",'$i18next', RegisterController]); + + function RegisterController(usersService, $state, $location, vfService, $rootScope, toastService, $log,$i18next) { + + var vm = this; + vm.data = {}; + var programName = $i18next.t('program.name'); + var init = function() + { + + $rootScope.headerTitle = "Sign Up"; + $rootScope.headerSubTitle = "Please use the form to Sign Up to " +programName; + + usersService.resetUserData(); + + var companyParam = $location.search().company; + + vm.data.full_name = $location.search().full_name; + vm.data.email = $location.search().email; + vm.data.phone_number = $location.search().phone_number; + + $rootScope.ice.loader.show = true; + vfService.getCompanies() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200){ + vm.vendors = response.data; + if (companyParam != undefined) { + angular.forEach(vm.vendors, function (value, key) { + if (value.uuid === companyParam) { + vm.data.company = value.name; + }; + }); + } + } + }) + .catch(function (error){ + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.submitForm = function () { + if(grecaptcha.getResponse().length != 0) + { + $rootScope.ice.loader.show = true; + if (vm.data.regular_email_updates != true) { + vm.data.regular_email_updates = false; + } + vm.data.inviter_uuid = $location.search().inviter_uuid; + vm.data.eng_uuid = $location.search().eng_uuid; + vm.data.invitation = $location.search().invitation; + vm.data.is_contact_user = ($location.search().is_contact_user === "true"); + vm.email = $location.search().email; + + usersService.register(vm.data) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + $state.go('app.resend_activation'); + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error.message); + }); + $rootScope.PleaseFill = ""; + } else { + toastService.setToast('Please fill CAPTCHA!', 'danger'); + $log.warn("Please fill CAPTCHA!"); + } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/activation/register/register.html b/d2ice.att.io/app/main/activation/register/register.html new file mode 100755 index 00000000..b6af8ce4 --- /dev/null +++ b/d2ice.att.io/app/main/activation/register/register.html @@ -0,0 +1,127 @@ + + + +
+ +
+
+ +
+
+ + +
+ Please select a company +
+
+ +
+ + +
+ Name is a required field. + Full Name is too short. + Full Name is too long. + Full Name must be alphanumeric +
+
+ +
+ + +
+ Email is a required field. + Enter a valid email. +
+
+ +
+ + +
+ Phone is a required field. + Phone is too short. + Phone is too long. + Phone format invalid +
+
+ +
+ + +
+ Password is a required field. + Password is too short. + Password is too long. +
+
+ +
+  I agree to receive regular email updates from AT&T {{'program.name' | i18next}}. +
+ + + +
+ +
+
+ + {{PleaseFill}} + + + + +
+
+
+ +
diff --git a/d2ice.att.io/app/main/activation/register/register.less b/d2ice.att.io/app/main/activation/register/register.less new file mode 100755 index 00000000..7df0cce9 --- /dev/null +++ b/d2ice.att.io/app/main/activation/register/register.less @@ -0,0 +1,100 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.register { + .phone-place-holder::-webkit-input-placeholder { + opacity: 0.7; + } + .phone-place-holder::-moz-placeholder { + opacity: 0.7; + } + .phone-place-holder:-moz-placeholder { + opacity: 0.7; + } + .phone-place-holder:-ms-input-placeholder { + opacity: 0.7; + } + + .register-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a, + a:hover, + a:active, + a:focus + { + .m_14_r; + cursor: pointer; + } + + a.login, a.login:hover{ + .m_14_r; + float: right; + margin: 5px 0 0 0; + } + + a.login{ + text-decoration: underline; + } + + .form-group { + a { + font-size:14px; + text-decoration:underline; + + &:hover { + font-size:14px; + } + } + } +} diff --git a/d2ice.att.io/app/main/activation/register/register.module.js b/d2ice.att.io/app/main/activation/register/register.module.js new file mode 100755 index 00000000..e463ceb1 --- /dev/null +++ b/d2ice.att.io/app/main/activation/register/register.module.js @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.register', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.register', { + url : '/signUp', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.register': { + templateUrl: 'main/activation/register/register.html', + controller : 'RegisterController as vm' + } + }, + bodyClass: 'register' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/resendActivation/resendActivation.controller.js b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.controller.js new file mode 100755 index 00000000..374d9005 --- /dev/null +++ b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.controller.js @@ -0,0 +1,79 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.activation.resendActivation') + .controller('resendActivationController', ["usersService", "toastService", "$rootScope", "$state", "$log", + resendActivationController]); + + function resendActivationController(usersService, toastService, $rootScope, $state, $log) { + var vm = this; + vm.data = []; + + var init = function() { + $rootScope.headerTitle = "Activate Your Account"; + $rootScope.headerSubTitle = "Please follow the instructions below to activate your account."; + + if ($state.params.message){ + toastService.setToast($state.params.message, 'danger'); + } + + vm.activated=false; //True false + vm.showHideMsg = false; + vm.showHideWait = false; + }; + + vm.submitForm = function () { + $rootScope.ice.loader.show = true; + usersService.resendActivationMail() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/activation/resendActivation/resendActivation.html b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.html new file mode 100755 index 00000000..cc2cc91b --- /dev/null +++ b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.html @@ -0,0 +1,61 @@ + + + +
+ +
+
+
+

+ You have successfully created your account! To begin using this site you will need to activate your account via the email we have just sent to your email address. +

+ Please note that sometimes activation emails end up in users spam/junk folders, so please check there. +

+ If you have not received it, please click the resend the Activation Email button below. +

+ + + +
+
+
+
diff --git a/d2ice.att.io/app/main/activation/resendActivation/resendActivation.less b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.less new file mode 100755 index 00000000..5d2277cb --- /dev/null +++ b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.less @@ -0,0 +1,67 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.resend-activation { + + .active-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + .leftLink{ + padding-top:5px; + width:50%; + text-align:left; + float:left; + + } + +} diff --git a/d2ice.att.io/app/main/activation/resendActivation/resendActivation.module.js b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.module.js new file mode 100755 index 00000000..90a28339 --- /dev/null +++ b/d2ice.att.io/app/main/activation/resendActivation/resendActivation.module.js @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.resendActivation', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.resend_activation', { + url : '/resendActivation', + views : { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller : 'MainController as vm' + }, + 'content@app.resend_activation': { + templateUrl: 'main/activation/resendActivation/resendActivation.html', + controller : 'resendActivationController as vm' + } + }, + params: {message: null}, + bodyClass: 'resend-activation' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/resetPassword/resetPassword.controller.js b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.controller.js new file mode 100755 index 00000000..9702c2e4 --- /dev/null +++ b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.controller.js @@ -0,0 +1,95 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.activation.resetPassword') + .controller('ResetPasswordController', ["$state", "usersService", "toastService", "$rootScope", "$window", + "$log", ResetPasswordController]); + + function ResetPasswordController($state, usersService, toastService, $rootScope, $window,$log) + { + var vm = this; + vm.data = {}; + var ngReq = true; + $rootScope.headerTitle = "Reset Your Password"; + $rootScope.headerSubTitle = "Please follow the instructions below to reset your password"; + + if($state.params.message!=undefined && $state.params.message!=""){ + toastService.setToast($state.params.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.warn($state.params.message); + } + + vm.submitForm = function() + { + $rootScope.ice.loader.show = true; + var jsonEmail = + { + email : vm.data.email + }; + toastService.clearToast() + usersService.sendResetPwdInstructions(jsonEmail) + .then(function (response) { + if (response.status === 200) { + toastService.setToast('An email with detailed instructions on how to reset your password was sent to your Email.', 'success'); + ngReq = false; + vm.data.email = ""; + $rootScope.ice.loader.show = false; + } + else + { + toastService.setToast('Error sending reset password instructions email.', 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) + { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error.message); + }); + }; + + vm.sendMail = function() + { + $window.open("mailto:d2ice@att.com","_self"); + } + } +})(); diff --git a/d2ice.att.io/app/main/activation/resetPassword/resetPassword.html b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.html new file mode 100755 index 00000000..41d90a69 --- /dev/null +++ b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.html @@ -0,0 +1,64 @@ + + + +
+ +
+
+
+
+ + +
+ Email is a required field. + Enter a valid email. +
+
+ + + + +
+
+
+ +
diff --git a/d2ice.att.io/app/main/activation/resetPassword/resetPassword.less b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.less new file mode 100755 index 00000000..18f79364 --- /dev/null +++ b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.less @@ -0,0 +1,84 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.resetPassword { + + .resetPassword-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a.register { + text-decoration: underline; + float: right; + margin: 10px 0 0 0; + } + + .leftLink { + width:100%; + padding-top:5px; + text-align:left; + + a, + a:hover, + a:active, + a:focus + { + .m_14_r; + cursor: pointer; + } + + a{ + text-decoration:underline; + } + } + +} diff --git a/d2ice.att.io/app/main/activation/resetPassword/resetPassword.module.js b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.module.js new file mode 100755 index 00000000..792e51dd --- /dev/null +++ b/d2ice.att.io/app/main/activation/resetPassword/resetPassword.module.js @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.resetPassword',[]) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.resetPassword', { + url: '/resetPassword', + views: { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller: 'MainController as vm' + }, + 'content@app.resetPassword': { + templateUrl: 'main/activation/resetPassword/resetPassword.html', + controller: 'ResetPasswordController as vm' + } + }, + params: {message: null}, + bodyClass: 'resetPassword' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/terms/terms.controller.js b/d2ice.att.io/app/main/activation/terms/terms.controller.js new file mode 100755 index 00000000..9eabdc25 --- /dev/null +++ b/d2ice.att.io/app/main/activation/terms/terms.controller.js @@ -0,0 +1,56 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.terms') + .controller('TermsController', ["$rootScope", TermsController]); + + function TermsController($rootScope) + { + var vm = this; + vm.data = {}; + + $rootScope.headerTitle = "Terms of Service"; + $rootScope.headerSubTitle = "Last updated 2016-06-10"; + } + +})(); diff --git a/d2ice.att.io/app/main/activation/terms/terms.html b/d2ice.att.io/app/main/activation/terms/terms.html new file mode 100755 index 00000000..fd39eb99 --- /dev/null +++ b/d2ice.att.io/app/main/activation/terms/terms.html @@ -0,0 +1,105 @@ + +
+ +
+
+ +
+ +

The {{'serviceProvider.name' | i18next}} Domain 2 ICE ({{'program.name' | i18next}}) are maintained by {{'serviceProvider.name' | i18next}} Foundry (“{{'serviceProvider.name' | i18next}}”) for use by any one interested in incubating or validating their Virtual Function (VF) against our Domain 2.0 architecture. When you or any other person, employee or representative authorized by you (collectively referred to as “You” or “Your”) use the {{'serviceProvider.name' | i18next}} Domain 2.0 ICE, You accept the Terms and Conditions stated below (the “Terms and Conditions”).  Do not use the {{'program.name' | i18next}} if You do not agree with these Terms and Conditions.

+ +
    + +
  1. Content Ownership. The {{'serviceProvider.name' | i18next}} Domain 2.0 ICE (“{{'program.name' | i18next}}”) provide You access to technical resources, such as product, service, and network information, and community forums and contain trademarks, service marks, logos, copyrights, other intellectual property, including, without limitation, text, data, graphics, audio, video, and product, service, network, process, and technical descriptions and information (collectively, the "Content") owned by, licensed to, and/or supplied to {{'serviceProvider.name' | i18next}}. As between You, {{'serviceProvider.name' | i18next}} its third party Content licensors and suppliers, {{'serviceProvider.name' | i18next}} or such third party Content licensors and suppliers are the sole owners of all Content on the {{'program.name' | i18next}}, including, without limitation, all copyrights, trademarks, service marks, patent, trade secret, and other intellectual property rights thereto. {{'serviceProvider.name' | i18next}} is the sole owner of the {{'program.name' | i18next}}. The {{'program.name' | i18next}} may contain links and references to third-party websites, which are provided for the convenience.  {{'serviceProvider.name' | i18next}} is not responsible for the content or information contained on such third party websites

  2. + +
  3. Account Registration. In order to use certain features of the {{'program.name' | i18next}}, You will be asked to create a user Account and password (an "Account") and provide certain information ("Registration Data"). You agree: (i) that the Registration Data You provide will be true, accurate, current and complete at the time You provide it; (ii) to maintain and update such Registration Data to keep it true, accurate, current and complete; and (iii) that {{'serviceProvider.name' | i18next}} may contact You and require You to confirm some or all of Your Registration Data before using certain features of the {{'program.name' | i18next}}. You are responsible for maintaining the confidentiality of Your Account credentials and for all activities, charges and/or liabilities that occur from Your Account, whether or not authorized by You. You must immediately notify {{'serviceProvider.name' | i18next}} of any unauthorized use of Your Account credentials or any other breach of security of which You become aware. We will not be liable for any loss or damage arising from Your failure to comply with this section.

  4. + +
  5. Limited License. Subject to Your compliance with these Terms and Conditions, and in consideration of Your promises reflected herein, {{'serviceProvider.name' | i18next}} grants to You a limited, non-exclusive, revocable, non-transferable license to access, view and use the {{'program.name' | i18next}}, including the Content contained therein, subject to any access restrictions or fees {{'serviceProvider.name' | i18next}} may establish from time to time. You may download, view, copy and print the Content solely for Your own use; provided that, without the express prior written permission of {{'serviceProvider.name' | i18next}}, such Content may not be adapted, modified, published, displayed, transmitted, transferred, shared with or disseminated to anyone for any purpose which is inconsistent with the business purpose of these {{'program.name' | i18next}}, facilitates unfair competition with these {{'program.name' | i18next}}, or exploits these {{'program.name' | i18next}} in any way or which is inappropriate under applicable US or international law. You are not permitted to distribute, assign, transfer or sublicense any right to use the {{'program.name' | i18next}}, either in whole or in part, to any third party. 

  6. + +
  7. Use Restrictions. Notwithstanding the foregoing license grant, You may not resell, redistribute, broadcast or transfer the Content or use the Content in a searchable, machine-readable database or file except through the authorized access to these {{'program.name' | i18next}}. Unless separately and specifically authorized in writing by {{'serviceProvider.name' | i18next}}, You may not rent, lease, sublicense, distribute, transfer, copy, reproduce, publicly display, publish, adapt, modify, create derivative works, mine, harvest, collect, store or time-share these {{'program.name' | i18next}}, any part thereof, or any of the Content received or accessed therefrom to or through any person or entity.  Access to any restricted area of the {{'program.name' | i18next}} without the authorization of {{'serviceProvider.name' | i18next}} is prohibited. You agree to use these {{'program.name' | i18next}}, including, without limitation, any restricted area, and the Content contained herein for lawful purposes only. You may not utilize logos, marks, or other distinctive graphics, video, or audio material in Your links, without {{'serviceProvider.name' | i18next}}’s express written permission, which {{'serviceProvider.name' | i18next}} may withhold in its discretion. You may not link in any manner reasonably likely to (i) imply affiliation with or endorsement or sponsorship by {{'serviceProvider.name' | i18next}}, (ii) cause confusion, mistake, or deception, (iii) dilute {{'serviceProvider.name' | i18next}}'s trademarks or service marks, or (iv) otherwise violate state or federal law. In addition, You may only link to the home page of the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} unless {{'serviceProvider.name' | i18next}} authorizes You to do otherwise. You may not use spiders, robots, data mining techniques or other automated devices or programs to catalog, download or programs to catalog, download or otherwise reproduce, store or distribute Content available on the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}}.  You may not use any such automated means to manipulate the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} or attempt to exceed the limited authorization and access granted to You under these Terms and Conditions.  You may not resell use of, or access to, the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} to any third party. + +

  8. Forums. {{'serviceProvider.name' | i18next}} may make forums available within the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} to help developers request and provide development help and share tips.  By submitting comments, posts, content, information, or messages (“Posts”) to such forums, You represent and warrant that: (i) You own and control all rights to the content in Your Posts, that You transmit or otherwise make available, or You have the lawful right to distribute, reproduce, and provide such content; (ii) the Posts are accurate and not misleading; and (iii) providing such Posts does not: (a) violate this Agreement or (b) violate the rights of, or cause any injury to, any person or entity. Further, You grant us a royalty-free, perpetual, irrevocable license to use such Posts.  Also, You understand and agree that {{'serviceProvider.name' | i18next}} retains the right to reformat, excerpt or translate any Posts submitted by You. You understand and agree that {{'serviceProvider.name' | i18next}} will not be liable for any Posts publicly posted or privately transmitted on these Web Sites. You understand and agree that we cannot guarantee the identity, statements or representations of any other users with whom You may interact in the course of using these Web Sites. Additionally, we cannot guarantee that any Posts obtained from our users or otherwise, is accurate, complete, authentic, current or reliable. Your use of the forums, if any, will further be governed by the {{'serviceProvider.name' | i18next}} Community Rules available for review within the forums.  Those rules are incorporated into these Terms and Conditions by this reference.  Users should be aware that forums and discussion groups are public and not private communications. Further, users acknowledge that Postings by other users are not endorsed by {{'serviceProvider.name' | i18next}}, and that such Posts shall not be considered as having been reviewed, screened or approved by {{'serviceProvider.name' | i18next}}.

    + +

    You agree not to submit or transmit any Post that (a) is libelous, defamatory, vulgar or obscene, pornographic, sexually offensive or explicit, harmful or harassing, threatening, hateful, racially, culturally, ethnically or otherwise objectionable or offensive, discriminatory or abusive; (b) violates any law or regulation or the rights of others; (c) infringes any copyright, trademark or other intellectual property right, or any proprietary or personal rights or confidentiality obligations of others; or (d)  is a solicitation for funding, advertising or solicitation for goods or services; or (e) (iv) which is used to unlawfully collude against another person in restraint of trade and competition.  You are solely responsible and liable for any such activity, behavior, use and conduct.  This means that You, and not {{'serviceProvider.name' | i18next}} or its, suppliers, or licensors, are entirely responsible for all Posts You submit or transmit.  {{'serviceProvider.name' | i18next}} reserves the right to filter, edit, or control all Your Posts and does not guarantee the accuracy, integrity or quality of Your Post.  Under no circumstances will {{'serviceProvider.name' | i18next}} or its suppliers, or licensors be liable in any way to You for any Posts, including, but not limited to, any errors or omissions in any content, information, or messages, or any loss or damage of any kind incurred as a result of the use of any such content, information or messages posted, emailed, transmitted.  You shall be solely liable for any damages resulting from any infringement of copyright, trademark or other proprietary right, or any other harm resulting from Your Post to a forum.  {{'serviceProvider.name' | i18next}} does not and cannot review every Post by You on forums and is not responsible for any Post.  {{'serviceProvider.name' | i18next}} reserves the right to delete, move or edit, at its sole discretion, any Post that does not comply with this paragraph. You acknowledge that any Post may be edited, removed, modified, published, transmitted and displayed by {{'serviceProvider.name' | i18next}}.   {{'serviceProvider.name' | i18next}} is under no obligation to use any Post you transmit or submit. You agree that {{'serviceProvider.name' | i18next}} is not under any obligation of confidentiality, express or implied, with respect to Your Post.

    + +

    Any Post, comments, content, information or materials sent to us, including, but not limited to, data,  ideas, answers, questions, comments, suggestions, feedback or the like,  (collectively, "Feedback"), is non-confidential and shall become our sole property. We shall have no obligation to You of any kind, monetary or non-monetary, with respect to such Feedback and shall be free to reproduce, use, disclose, exhibit, display, transform, create derivative works from and distribute the Feedback to others without limitation or obligation.  You acknowledge that {{'serviceProvider.name' | i18next}} has absolutely no liability for alleged infringement or misappropriation in connection with such information/Post. The submission of such information/Post to {{'serviceProvider.name' | i18next}} will in no way prevent, or require, the purchase, manufacture or use of any products, services, plans or ideas by {{'serviceProvider.name' | i18next}} for any purpose whatsoever.

  9. + +
  10. Consent to Monitoring and Disclosure. You acknowledge that {{'serviceProvider.name' | i18next}} reserves the right, and may from time to time, monitor Your access and use of the {{'program.name' | i18next}} and Your Posts. {{'serviceProvider.name' | i18next}}, at its sole discretion and without further notice to You, may (but is not obligated to) review, censor or prohibit the transmission or receipt of any Post which {{'serviceProvider.name' | i18next}} deems inappropriate or that violates these Terms or Conditions or any {{'serviceProvider.name' | i18next}} Policy. During monitoring, Posts may be examined, recorded, copied, and used for authorized purposes. Your use of the {{'program.name' | i18next}}, authorized or unauthorized, constitutes consent to such monitoring.

  11. + +
  12. Copyright Complaints. {{'serviceProvider.name' | i18next}} respects the intellectual property rights of others. If You believe that Your work has been copied and has been posted, stored or transmitted by or through the {{'program.name' | i18next}} in a way that constitutes copyright infringement, please submit a notification pursuant to the Digital Millennium Copyright Act ("DMCA") in accordance with the process detailed at http://www.att.net/general-info/claims.html and directed to:  Designated Agent: Manager of Security & Copyright Infringement, 1800 Perimeter Park Drive, Suite 100, Morrisville, NC 27560, Phone: (919) 319-5737, Fax: (919) 319-8154, E-mail: copyright@att.com.

  13. + +
  14. Privacy. It is the policy of {{'serviceProvider.name' | i18next}} to respect the privacy of its customers and any persons who visit its web sites.  For this reason, {{'serviceProvider.name' | i18next}} has established a Privacy Policy, the terms of which are available for Your review at:  www.att.com/privacy.  Subject to these Terms and Conditions, the relevant provisions of said Privacy Policy are incorporated by this reference.

  15. + +
  16. Subject to Change. {{'serviceProvider.name' | i18next}} reserves the right to modify these Terms and Conditions, the Privacy Statement, and the business policies and practices associated with the use of these {{'program.name' | i18next}}. Such modifications may include, without limitation, implementation of user priorities, implementation of rules for use by You, and discontinuance of functional aspects of the {{'program.name' | i18next}}, and changes in prices. {{'serviceProvider.name' | i18next}} may also add, withdraw or modify any Content contained within these {{'program.name' | i18next}} at any time in its sole discretion.  Your use of these {{'program.name' | i18next}} is Your agreement to be bound by such changes.

  17. + +
  18. Term. The period during which You are entitled to use the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} (“Term”) begins on the date upon which You agree to these Terms and Conditions. {{'serviceProvider.name' | i18next}} may revoke or terminate the License granted in its sole discretion at any time. Without limiting the generality of the foregoing, we may revoke or terminate the License if You: (i) breach any obligation in these Terms and Conditions or in any other agreement between You and us, (ii) violate any policy or guideline applicable to the {{'program.name' | i18next}}, Content, or any other {{'serviceProvider.name' | i18next}} service, or (iii) use these {{'program.name' | i18next}} or Content specifically authorized in these Terms and Conditions, without our prior written permission.   Additionally, either You or {{'serviceProvider.name' | i18next}} may terminate this License at any time without cause, but termination of this License will not relieve You of the obligations under these Terms and Conditions that You assumed by using these {{'program.name' | i18next}}.

  19. + +
  20. Termination of {{'serviceProvider.name' | i18next}} Web Site and Service. {{'serviceProvider.name' | i18next}} may discontinue, terminate, suspend or shut down the {{'serviceProvider.name' | i18next}} Web Site, {{'program.name' | i18next}}, particular {{'program.name' | i18next}}, and/or remove Content at any time and for any or no reason. We are not obligated to give notice of such discontinuation, termination, suspension, removal or shut-down.  Your License shall automatically terminate, if {{'serviceProvider.name' | i18next}} discontinues, terminates, suspends or shut downs the {{'serviceProvider.name' | i18next}} Web Site.

  21. + +
  22. Application Agreement(s).  These Terms and Conditions relate solely to Your access to, and use of, the {{'program.name' | i18next}} and Content.  No commitments, obligations, terms or restrictions are imposed upon either party with respect to any Application(s) by virtue of these Terms and Conditions.  Any agreements between You and {{'serviceProvider.name' | i18next}} regarding Applications will be governed by a separate agreement(s).

  23. + +
  24. Trademarks. The {{'serviceProvider.name' | i18next}} name, trade names, trademarks and logo, as well as all related product and service names, design marks and slogans, are the property of {{'serviceProvider.name' | i18next}}, and may not be used by You for any purpose unless specifically authorized in writing, and in advance, by {{'serviceProvider.name' | i18next}}.  All other names, marks and logos are the names, marks and logos of their respective owners.  All right, title and interest, including, without limitation, all copyrights, trademarks and other intellectual property rights, in the {{'program.name' | i18next}} and Content belong to {{'serviceProvider.name' | i18next}}, its licensors, or suppliers.

  25. + +
  26. Connectivity; Delay in Service. You are responsible for all costs and expenses associated with establishing and maintaining Your connection to these {{'program.name' | i18next}}. Neither {{'serviceProvider.name' | i18next}}, nor any of its licensors or suppliers (including its and their officers, directors, managers, employees, affiliates, agents, or representatives) shall be liable for any loss or liability resulting, directly or indirectly, from delays or interruptions due to electric or mechanic equipment failures,  interconnection problems, defects, weather, strikes, walkouts, fire, acts of nature, riots, armed conflicts, acts of war or other like causes. {{'serviceProvider.name' | i18next}} shall have no responsibility to provide You access to these {{'program.name' | i18next}} during any such interruption.

  27. + +
  28. Limitation of Liability. YOU ASSUME FULL RESPONSIBILITY FOR IMPLEMENTING SUFFICIENT PROCEDURES AND CHECKS TO SATISFY YOUR REQUIREMENTS FOR ACCURACY AND SUITABILITY OF THESE {{'program.name' | i18next}} AND THE CONTENT, AND FOR MAINTAINING ANY MEANS WHICH YOU MAY REQUIRE FOR THE RECONSTRUCTION OF LOST DATA OR SUBSEQUENT MANIPULATIONS OR ANALYSES OF THE CONTENT PROVIDED UNDER THIS AGREEMENT. YOU ACKNOWLEDGE AND AGREE THAT {{'serviceProvider.name' | i18next}}, ITS AFFILIATES, LICENSORS, AND SUPPLIERS (INCLUDING ITS OR THEIR OFFICERS, DIRECTORS, MANAGERS, EMPLOYEES, AFFILIATES, AGENTS,  AND REPRESENTATIVES (“LIMITED LIABILITY PARTIES” FOR THE REMAINDER OF THIS PARAGRAPH) WILL NOT BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM AN INABILITY TO ACCESS OR USE THE {{'program.name' | i18next}} AND/OR CONTENT AVAILABLE ON OR ACCESSIBLE THROUGH THE {{'program.name' | i18next}}. THESE LIMITATIONS ON THE LIABILITY OF THE LIMITED LIABILITY PARTIES APPLY WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHER TORTIOUS ACTION ARISING OUT OF OR IN CONNECTION WITH THE CONTENT AVAILABLE ON OR ACCESSIBLE THROUGH THE {{'program.name' | i18next}} AND THE LIMITATIONS APPLY EVEN IF LIMITED LIABILITY PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  YOU AGREE AND ACKNOWLEDGE THAT THESE LIMITATIONS ON THE LIABILITY OF LIMITED LIABILITY PARTIES REFLECT A REASONABLE ALLOCATION OF RISK AND THAT SUCH ALLOCATION OF RISK IS A SIGNIFICANT INDUCMENT FOR {{'serviceProvider.name' | i18next}} TO ALLOW YOU TO ACCESS AND USE THE {{'program.name' | i18next}}.  IN NO EVENT WILL THE AGGREGATE, TOTAL LIABILITY OF THE LIMITED LIABILITY PARTIES FOR DAMAGES, INJURY, LOSSES AND CAUSES OF ACTION, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM OR RELATING TO ACCESS OR USE OF THE {{'program.name' | i18next}} EXCEED TEN DOLLARS ($10.00). BECAUSE SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SOME OF THE ABOVE LIMITATIONS MAY NOT APPLY IN THOSE JURISDICTIONS. IN SUCH JURISDICTIONS, THE LIMITED LIABILITY PARTIES¿ LIABILITY IS LIMITED TO THE GREATEST EXTENT PERMITTED BY LAW.

  29. + +
  30. Disclaimer of Warranties. BROWSING AND USE OF THE {{'program.name' | i18next}} AND CONTENT IS AT YOUR OWN RISK. YOU ACKNOWLEDGE THAT INACCURACIES MAY OCCUR, AND THAT {{'serviceProvider.name' | i18next}} AND ITS LICENSORS AND SUPPLIERS DO NOT WARRANT THE ACCURACY OR SUITABILITY OF THE {{'program.name' | i18next}} AND CONTENT FOR ANY PURPOSE. FURTHERMORE, THE {{'program.name' | i18next}} AND CONTENT MAY CONTAIN LINKS TO THIRD PARTY WEBSITES NOT UNDER THE CONTROL OR OPERATION OF {{'serviceProvider.name' | i18next}}. {{'serviceProvider.name' | i18next}} PROVIDES ANY SUCH LINKS ONLY AS A CONVENIENCE FOR YOU AND IS NOT RESPONSIBLE FOR ANY SUCH LINKED SITES, THE CONTENT ON ANY SUCH LINKED SITES OR A SITE LINKED TO OR FROM ANY SUCH LINKED SITES. YOU ASSUME ALL RESPONSIBILITY AND RISK FOR USE OF THE {{'program.name' | i18next}}, THE CONTENT AND THE INTERNET GENERALLY. ACCESS TO AND/OR USE OF THE {{'program.name' | i18next}} AND CONTENT PROVIDED ON OR AVAILABLE THROUGH THE {{'program.name' | i18next}} ARE PROVIDED OR MADE AVAILABLE ON AN ¿AS IS¿ AND ¿AS AVAILABLE¿ BASIS WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, NON-INFRINGEMENT OR IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. NO ADVICE OR INFORMATION GIVEN BY {{'serviceProvider.name' | i18next}}, ITS AFFILIATES OR IT LICENSORS, OR SUPPLIERS WILL CREATE ANY WARRANTY. FURTHER, NEITHER {{'serviceProvider.name' | i18next}} NOR ITS AFFILIATES, LICENSORS, OR SUPPLIERS WARRANT THAT CONTENT PROVIDED ON OR AVAILABLE THROUGH THE {{'program.name' | i18next}} WILL BE UN-INTERRUPTABLE, ACCURATE, COMPLETE, USEFUL, FUNCTIONAL OR ERROR FREE, OR THAT CONTENT OR MATERIAL PROVIDED ON OR AVAILABLE THROUGH THE {{'program.name' | i18next}} IS FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ANY CONTENT AVAILABLE ON OR ACCESSIBLE THROUGH THE {{'program.name' | i18next}} MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS.

  31. + +
  32. Indemnification. You agree to release, indemnify, defend and hold {{'serviceProvider.name' | i18next}}, its affiliates and/or its licensors, and suppliers and their affiliates, officers, directors, managers, employees, agents and representatives  harmless from losses, damages, claims, demands, suits, liabilities, fines, penalties, and expenses, including reasonable attorneys’ fees, made by any third party due to or arising out of Your access to or use of the {{'serviceProvider.name' | i18next}} {{'program.name' | i18next}} or the Content, the violation by You of these Terms and Conditions, the infringement by You of any intellectual property or other right of any person or entity, and/or any Posts You submit or transmit to any Forums. + +

  33. Severability. If any of these Terms and Conditions are held to be invalid or unenforceable with respect to a party, the remainder of these Terms and Conditions, or the application of such provision to persons other than those to whom it is held invalid or unenforceable shall not be affected and each remaining provision of these Terms and Conditions shall be valid and enforceable to the fullest extent permitted by law.

  34. + +
  35. Publicity. Nothing contained in these Terms and Conditions will be construed as granting to You any right to use or refer to in advertising, publicity, promotion, marketing or other activities, any name, trade name, trade or service mark or any other designation of {{'serviceProvider.name' | i18next}}, its licensors, or suppliers, including any contraction, abbreviation or simulation of any kind of the foregoing, unless specifically authorized in writing, and in advance, by {{'serviceProvider.name' | i18next}}, its licensors, or suppliers.

  36. + +
  37. International Use. {{'serviceProvider.name' | i18next}} controls and operates these {{'program.name' | i18next}} from its offices in the United States of America. {{'serviceProvider.name' | i18next}} does not represent that Content accessible via the {{'program.name' | i18next}} is appropriate or available for use in all geographic locations, especially some locations outside the United States, and accessing such from certain locations may be illegal and prohibited.  If You access or use such Content from such locations, You are acting on Your own initiative, and {{'serviceProvider.name' | i18next}} is not responsible for Your compliance with local laws or other applicable legal or regulatory restrictions.  You agree that You will not access or use the {{'program.name' | i18next}} or Content where prohibited by applicable law, rule or regulation.  You represent and warrant that You are not (a) located in any country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country, or (b) listed on any U.S. Government list of prohibited or restricted parties including the Treasury Department’s list of Specially Designated Nationals or the U.S. Department of Commerce Denied Persons List or Entity List. You also agree that You will not use the {{'program.name' | i18next}} or Content for any purposes prohibited by United States law.

  38. + +
  39. Governing Law. The laws of the State of Texas, excluding its conflicts-of-law rules, shall govern this Agreement and Your use of these {{'program.name' | i18next}} and Content. You agree that any claim or dispute with {{'serviceProvider.name' | i18next}} relating in any way to Your use of the {{'program.name' | i18next}} or Content shall be commenced and heard in the state or federal courts of the State of Texas, County of Dallas, and You agree and expressly consent to the exercise of personal jurisdiction in the courts of the State of Texas, in connection with any such dispute.  You and {{'serviceProvider.name' | i18next}} agree that any cause of action arising out of or related to or use of the {{'program.name' | i18next}} or Content  must commence within one (1) year after the cause of action arises.  Otherwise, such cause of action is permanently barred.  Because some jurisdictions do not permit such time bars, this limitation may not apply in all situations.

  40. + +
  41. Miscellaneous. {{'serviceProvider.name' | i18next}}’s failure to exercise or enforce any right or provision of these Terms and Conditions will not constitute a waiver of such right or provision unless acknowledged and agreed to by {{'serviceProvider.name' | i18next}} in writing.  Neither the course of conduct between the parties nor trade practice will act to modify any provision of these Terms and Conditions. 

  42. + +
+ +
+ +
+
+ +
diff --git a/d2ice.att.io/app/main/activation/terms/terms.less b/d2ice.att.io/app/main/activation/terms/terms.less new file mode 100755 index 00000000..e809c9d6 --- /dev/null +++ b/d2ice.att.io/app/main/activation/terms/terms.less @@ -0,0 +1,65 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.terms { + + .terms-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a.register { + text-decoration: underline; + float: right; + margin: 10px 0 0 0; + } + +} diff --git a/d2ice.att.io/app/main/activation/terms/terms.module.js b/d2ice.att.io/app/main/activation/terms/terms.module.js new file mode 100755 index 00000000..68a429cf --- /dev/null +++ b/d2ice.att.io/app/main/activation/terms/terms.module.js @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.terms', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.terms', { + url: '/terms', + views: { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller: 'MainController as vm' + }, + 'content@app.terms': { + templateUrl: 'main/activation/terms/terms.html', + controller: 'TermsController as vm' + } + }, + params: {message: null}, + bodyClass: 'terms' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/activation/updatePassword/updatePassword.controller.js b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.controller.js new file mode 100755 index 00000000..364dcc77 --- /dev/null +++ b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.controller.js @@ -0,0 +1,95 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.updatePassword') + .controller('UpdatePasswordController', ["$state", "usersService", "localStorageService", "$rootScope", "toastService", "$window", UpdatePasswordController]); + + function UpdatePasswordController($state, usersService, localStorageService, $rootScope, toastService, $window) { + + var vm = this; + vm.data = {}; + + var ngReq = true; + + $rootScope.headerTitle = "Update Your Password"; + $rootScope.headerSubTitle = "Please follow the instructions below to update your password"; + + vm.submitForm = function() + { + $rootScope.ice.loader.show = true; + var jsonPasswordConfirm = + { + password : vm.data.password, + confirm_password : vm.data.confirm_password + } + + usersService.updatePassword(usersService.getUserData().uuid, jsonPasswordConfirm) + .then(function (response) { + if (response.status === 200) { + toastService.setToast('Password was updated Successfully!', 'success'); + ngReq = false; + vm.data.password = ""; + vm.data.confirm_password = ""; + $rootScope.ice.loader.show = false; + //$timeout(function() { $state.go("app.dashboard"); }, 2000); + $state.go('app.dashboard.dashboard', {"messagePass": "Password was updated Successfully!"}); + } + else + { + toastService.setToast('Error updating your password.', 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + }); + }; + + vm.sendMail = function() + { + $window.open("mailto:d2ice@att.com","_self"); + } + } + +})(); diff --git a/d2ice.att.io/app/main/activation/updatePassword/updatePassword.html b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.html new file mode 100755 index 00000000..65569cdb --- /dev/null +++ b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.html @@ -0,0 +1,76 @@ + + + +
+ +
+
+
+
+ + +
+ Password is required field. + Password is too short. + Password is too long. +
+
+ +
+ + +
+ Confirm password is required field. + Passwords do not match. +
+
+ + + + + + +
+
+
+ +
diff --git a/d2ice.att.io/app/main/activation/updatePassword/updatePassword.less b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.less new file mode 100755 index 00000000..a6524df5 --- /dev/null +++ b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.less @@ -0,0 +1,85 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.updatePassword { + + .updatePassword-form { + margin-top: 20px; + } + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + a.register { + text-decoration: underline; + float: right; + margin: 10px 0 0 0; + } + + .leftLink{ + padding-top:5px; + width:50%; + text-align:left; + float:left; + + a, + a:hover, + a:active, + a:focus + { + .m_14_r; + cursor: pointer; + } + + a{ + text-decoration:underline; + } + } + +} diff --git a/d2ice.att.io/app/main/activation/updatePassword/updatePassword.module.js b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.module.js new file mode 100755 index 00000000..b00e619b --- /dev/null +++ b/d2ice.att.io/app/main/activation/updatePassword/updatePassword.module.js @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.activation.updatePassword', []) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.updatePassword', { + url: '/updatePassword{engagement_uuid: (?:/[^/]+)?}', + views: { + 'main@': { + templateUrl: 'core/layouts/full-page-with-header/full-page-with-header.html', + controller: 'MainController as vm' + }, + 'content@app.updatePassword': { + templateUrl: 'main/activation/updatePassword/updatePassword.html', + controller: 'UpdatePasswordController as vm' + } + }, + params: {message: null,messagePass:null}, + bodyClass: 'updatePassword' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/admin/admin.module.js b/d2ice.att.io/app/main/admin/admin.module.js new file mode 100755 index 00000000..391461d0 --- /dev/null +++ b/d2ice.att.io/app/main/admin/admin.module.js @@ -0,0 +1,89 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.main.admin') + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.admin', { + url: '/admin', + views: { + 'navigation@app': { + templateUrl: 'core/navigation/layouts/admin-navigation/navigation.html', + controller: 'adminNavigationController as vm' + } + }, + bodyClass: 'nav-admin', + resolve: { authenticate: authenticate } + }) + .state('app.admin.checklisttemplate', { + url: '/admin/checklist-template', + views: { + 'content@app': { + templateUrl: 'main/admin/checklist-template/checklist-template.html', + controller: 'checklistTemplateController as vm' + } + }, + params: {template_uuid: undefined}, + bodyClass: 'checklist-template', + }); + + function authenticate(usersService, $q, $timeout, $state) { + var result = usersService.isAdmin(usersService.getUserData()); + + if(result === true) { + return $q.when(); + } else { + $timeout(function() { + $state.go('app.login'); + }); + } + + return $q.reject(); + } + } + + + +})(); diff --git a/d2ice.att.io/app/main/admin/checklist-template/checklist-template.controller.js b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.controller.js new file mode 100755 index 00000000..e3033544 --- /dev/null +++ b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.controller.js @@ -0,0 +1,241 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.main.admin') + .controller('checklistTemplateController', ["_", "$scope", "checklistService", "$stateParams", "toastService", + "$uibModal", "$log", checklistTemplateController]); + + function checklistTemplateController(_, $scope, checklistService, $stateParams, toastService, $uibModal, $log) { + var vm = this; + var templateToRevert; + + var init = function(){ + if ($stateParams['template_uuid']){ + vm.inlineEditingElements = {}; + vm.wysiwyg_menu = [ + ['bold', 'italic', 'strikethrough', 'underline'], + ['unordered-list', 'ordered-list', 'outdent', 'indent'] + ]; + + checklistService.getChecklistTemplate($stateParams['template_uuid']) + .then(function (response) { + if (response.status === 200) { + vm.template = response.data; + registerWatchers(); + orderTemplateItems(); + templateToRevert = angular.copy(response.data); + initFirstLineItemSelection(); + } + }) + .catch(function (err){ + $log.error("got error with getChecklistTemplate"); + }); + } + }; + + vm.switchElementInlineEditing = function(elementName) { + vm.inlineEditingElements[elementName] = !vm.inlineEditingElements[elementName]; + }; + + vm.save = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/general-prompt-modal/general-prompt-modal.html', + controller: 'generalPromptModalController', + controllerAs: 'vm', + resolve: { + modalDetails: function () { + return { + "upper_headline": 'Master Checklist Template: ', + "upper_headline_value": vm.template.name, + "headline": 'Are you done editing?', + "is_message":true, + "message": 'Editing a master checklist template will effect all checklists currently ' + + 'created of that type and will also restart the validation for all active engagements', + "approve": 'Yes', + "cancelText": 'No', + "is_close_modal_button":false + }; + } + } + }); + + modalInstance.result.then(function (saveApproved) { + if(saveApproved) { + checklistService.saveChecklistTemplate(vm.template) + .then(function (response) { + if (response.status === 200) { + templateToRevert = angular.copy(vm.template); + toastService.setToast("Template was saved successfully.", 'success'); + } + }) + .catch(function (err){ + toastService.setToast("Problem occurred while saving template.", 'danger'); + $log.error("got error with saveChecklistTemplate"); + }); + } + }); + }; + + vm.cancel = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/general-prompt-modal/general-prompt-modal.html', + controller: 'generalPromptModalController', + controllerAs: 'vm', + resolve: { + modalDetails: function () { + return { + "upper_headline": 'Master Checklist Template: ', + "upper_headline_value": vm.template.name, + "headline": 'Are you sure you want to revert all changes?', + "is_message":false, + "approve": 'Yes', + "cancelText": 'No', + "is_close_modal_button":false + }; + } + } + }); + + modalInstance.result.then(function (revertApproved) { + if(revertApproved) { + vm.template = angular.copy(templateToRevert); + initFirstLineItemSelection(); + toastService.setToast("All changes discarded.", 'success'); + } + }); + }; + + vm.deleteSection = function(sectionToDelete) { + _.remove(vm.template.sections, function(section) {return sectionToDelete === section;}); + initFirstLineItemSelection(); + }; + + vm.selectLineItem = function(lineItem, section, $event) { + if(vm.selectedLineItem != lineItem) { + vm.selectedSection = section; + vm.selectedLineItem = lineItem; + $scope.$$postDigest(function () { + // Make extended window follow selected decision line + if ($event != undefined) + { + var line_item_bottom_offset = angular.element($event.target).prop('offsetHeight') + angular.element($event.target).prop('offsetTop'); + var extendended_item_height = angular.element("#line-item-extended").prop('offsetHeight'); + var diff_between_elements = line_item_bottom_offset - extendended_item_height; + if (diff_between_elements > 0) { + angular.element("#line-item-extended").css('margin-top',(20+diff_between_elements) +'px'); + } else { + angular.element("#line-item-extended").css('margin-top',''); + } + } + }); + } + }; + + vm.addLineItem = function(section) { + if(section) { + var maxWeight = _.maxBy(section.lineItems, function(lineItem) {return lineItem.weight;}) + 1; + var newLineItem = {"uuid": "newEntity", + "name": "Untitled line item", + "description": "Please add a description", + "weight": maxWeight, + "validation_instructions": "Please add validation instructions for the line item."}; + + section.lineItems.push(newLineItem); + } + }; + + vm.addSection = function() { + if(vm.template) { + var maxWeight = _.maxBy(vm.template.sections, function(section) {return section.weight;}) + 1; + var newSection = {"uuid": "newEntity", + "name": "Untitled section", + "description": "Section added from portal", + "validation_instructions": "valid instructions", + "weight": maxWeight, + "lineItems": []}; + + vm.template.sections.push(newSection); + } + }; + + vm.deleteLineItem = function(lineItemToDelete) { + _.remove(vm.selectedSection.lineItems, function(lineItem) {return lineItemToDelete === lineItem;}); + initFirstLineItemSelection(); + }; + + vm.isSaveInvalid = function() { + var result = false; + if(vm.template) { + result = _.find(vm.template.sections, function(section) { return section.lineItems.length === 0; }) != undefined; + } + + return result; + }; + + var registerWatchers = function() { + $scope.$watch('vm.template.name', function(newVal, OldVal){ + $stateParams.templateName = newVal; + }, true); + }; + + var initFirstLineItemSelection = function () { + vm.selectedSection = vm.template.sections && vm.template.sections.length > 0 + ? vm.template.sections[0] + : undefined; + + vm.selectedLineItem = vm.selectedSection ? vm.selectedSection.lineItems[0] : undefined; + + angular.element("#line-item-extended").css('margin-top',''); + }; + + var orderTemplateItems = function() { + if(vm.template) { + vm.template.sections = _.orderBy(vm.template.sections, 'weight'); + + _.forEach(vm.template.sections, function(section) { + section.lineItems = _.orderBy(section.lineItems, 'weight'); + }); + } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/admin/checklist-template/checklist-template.html b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.html new file mode 100755 index 00000000..cea7b11b --- /dev/null +++ b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.html @@ -0,0 +1,174 @@ + +
+
+
+

+ + Master Checklist Template: + {{vm.template.name}} + + +
+ Template name is a required field. + Template name is too short. + Template name is too long. +
+
+

+
+ Editing a master checklist template will affect all checklists currently created of that type + and will also restart the validation for all active engagements. +
+
+ +
+
+
+
+
+
+
+
    +
  • +

    + Section {{$index+1}}: {{section.name}} + + + + +
    + Section name is a required field. + Section name is too short. + Section name is too long. +
    +
    +

    +
      +
    • + + + {{$parent.$index+1}}.{{$index+1}} + + {{lineItem.name}} +
       
      + +
    • +
    • + + Add Another line item +
    • +
    +
  • +
+ +
+
+
+ + Add Another Section +
diff --git a/d2ice.att.io/app/main/admin/checklist-template/checklist-template.less b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.less new file mode 100755 index 00000000..7077958e --- /dev/null +++ b/d2ice.att.io/app/main/admin/checklist-template/checklist-template.less @@ -0,0 +1,552 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.cl-add-item-line { + width: 80%; + + .add-button { + .sprite; + .sprite.small-grey-add; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + } +} + +.cl-action-button{ + width: 30%; + margin-bottom: 2%; + margin-right: 3%; + &:last-child { + margin-right: 0; + } + +} + +.checklist-template-edit-item { + padding: 5px; + &.edit-template-name{ + .a_24_r; + } + + &.edit-section-name{ + .m_24; + } + + &.edit-lineitem-name{ + .m_18; + background-color: white; + line-height: normal; + } + &.edit-lineitem-description{ + .m_18; + width: 100%; + line-height: normal; + } +} + +.glyphicon-cursor-approve-changes { + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + float: right; +} + +.lineitem-changed-icon { + .sprite; + .sprite.grey-check-mark; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + margin-left: -15px; +} + +.remove-item { + .sprite; + .sprite.red-delete; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + float: right; + margin-right: 1%; +} + +.template-edit-item { + .sprite; + .sprite.edit-medium; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; + float: right; +} + +.add-another-section { + .sprite; + .sprite.big-grey-add; + display: inline-block; + cursor: pointer; + position:relative; + top:3px; +} + +.another-section { + border-top: 1px dashed ; + padding-top: 0.5%; +} + + +.checklist-template { + height:100%; + + #checklist-main-section { + padding-left: 12px; + } + + .ice-form-error { + text-transform: none; + } + + .section-topic{ + padding-left: 4%; + .m_24_m; + } + + .lineitem-index{ + padding-left: 5%; + } + + .lineitem-icon-and-index{ + padding-left: 0px; + } + + #cl-header { + height:12%; + padding-top:1%; + padding-bottom: 2%; + + .checklist-template-topic{ + border-right: 1px solid; + + #cl-title { + padding-left: 0px; + + .template-name { + .a_24_r; + } + + .template-topic { + .a_24_m; + } + } + + .edit-checklist { + display: inline-block; + margin-right: 5px; + cursor: pointer; + } + } + } + + + + + + #state-actions .btn { + width: 100%; + } + + .action-buttons{ + width: 100%; + margin-bottom: 7px; + } + + + + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } + + + .add-button { + margin-top: 8px; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + + } + + + + + #cl-title h1 { + .a_24_r; + margin: 0 0 30px 0; + } + + h3 { + .m_18_m; + } + h2 { + margin: 0 0 10px 0; + .a_24_m; + position: relative; + .add-people, + .add-step { + .sprite; + .sprite.add; + display: inline-block; + margin-left: 8px; + cursor: pointer; + } + } + + .main-section { + margin-top: 30px; + } + } + + + #state-bar { + float:none; + height: 5%; + + } + + + + #cl-header > #cl-title > span.bold { + .a_24_m; + } + + + .cl-action-buttons-frame{ + list-style: none; + display: inline; + padding-top: 20px; + } + + + + #line-item-list { + list-style: none; + padding-right:15px; + } + + + #line-item-list > li { + margin-bottom: 25px; + } + #line-item-list > li > h2 { + text-transform: capitalize; + border-bottom: 1px solid; + border-color: @main_color_q; + width: 100%; + margin-bottom: 0px; + padding-left: 5px; + .m_24; + } + #line-item-list > li > h2 > span.bold { + .m_24_m; + } + + #line-item-list > li > ul { + list-style: none; + } + #line-item-list > li > ul >li.line-item-row { + border-bottom: 1px solid; + border-color: @main_color_q; + line-height: 30px; + padding: 0px; + vertical-align: middle; + height: 30px; + .m_16_r; + cursor: pointer; + } + + #line-item-list > li > ul >li.line-item-row .value-icon { + padding: 0px; + } + + #line-item-list > li > ul >li.line-item-row .value-icon span { + display: inline-block; + position: relative; + top: 3px; + margin-right: 5px; + margin-left: 3px; + width:15px; + height:15px; + } + + #line-item-list > li > ul >li.line-item-row .auto-icon { + text-align:right; + padding: 0px; + } + + #line-item-list > li > ul >li.line-item-row .auto-icon span { + display: inline-block; + position: relative; + top: 3px; + margin-right: 3px; + } + + #line-item-list > li > ul >li.line-item-row.selected-line { + background-color: @bg_color_a; + border-left: 2px solid; + border-top: 2px solid; + border-bottom: 2px solid; + border-color: @main_color_a; + position:relative; + z-index:1; + top: -1px; + left: -2px; + } + + #line-item-list > li > ul >li.line-item-row.selected-line > .selected-line-connector { + position: absolute; + right: -19px; + width: 20px; + height: 30px; + top: -2px; + background-color: @bg_color_a; + border-top: 2px solid; + border-bottom: 2px solid; + border-color: @main_color_a; + } + #line-item-extended { + background-color: @bg_color_a; + border: 2px solid; + border-color: @main_color_a; + padding:15px; + @media (min-width: 992px) { + max-height: 100%; + overflow-y: auto; + } + } + #line-item-extended >header { + padding: 0 30px; + padding-bottom: 0px; + } + #line-item-extended >header > h2 { + text-transform: capitalize; + padding:0px; + margin:0px; + line-height:32px; + .m_18_r; + } + #line-item-extended > header > h2 > span.bold { + .m_18_m; + } + #line-item-extended >header > #decision-actions { + list-style: none; + text-align: right; + margin:0px; + } + #line-item-extended >header > #decision-actions > li { + display: inline-block; + margin-left: 2px; + .sprite; + } + #line-item-extended >header > #decision-actions.active > li { + cursor:pointer; + } + + #line-item-extended >header > #decision-actions > li.not-relevant-btn { + .sprite.not-relevant-btn; + } + + #line-item-extended >header > #decision-actions.active > li.not-relevant-btn:hover { + .sprite.not-relevant-btn-active; + } + #line-item-extended >header > #decision-actions > li.not-relevant-btn.active { + .sprite.not-relevant-btn-active; + } + #line-item-extended >header > #decision-actions > li.denied-cl-btn { + .sprite.denied-cl-btn; + } + #line-item-extended >header > #decision-actions.active > li.denied-cl-btn:hover { + .sprite.denied-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.denied-cl-btn.active { + .sprite.denied-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.approved-cl-btn { + .sprite.approved-cl-btn; + } + #line-item-extended >header > #decision-actions.active > li.approved-cl-btn:hover { + .sprite.approved-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.approved-cl-btn.active { + .sprite.approved-cl-btn-active; + } + + + #line-item-extended > #line-item-description { + margin: 0 15px; + .m_16_r; + } + + #line-item-extended > #line-item-validation-instructions { + .m_14_r; + background-color: #fff; + border: 1px solid; + border-color: @main_color_a; + padding: 15px; + margin-top: 15px; + } + + #line-item-extended > #line-item-validation-instructions h3 { + text-transform: capitalize; + margin: 0px; + .m_18_m; + } + + #line-item-extended > #line-item-validation-instructions p { + margin-top: 5px; + + } + + #line-item-extended > #line-item-validation-instructions p ul { + padding-left: 15px; + } + + #line-item-extended > #line-item-audit-logs { + padding:0 15px; + } + + #line-item-extended > #line-item-audit-logs > h3 { + text-transform: capitalize; + .m_18_m; + + } + #line-item-extended > #line-item-audit-logs > #audit-log-list { + list-style:none; + + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li { + margin: 0 15px 10px; + border-bottom: 2px solid; + border-color: @main_color_q; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-creator { + .m_16_m; + margin:0px; + padding:0px; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-date { + text-align:right; + .m_14_r; + padding:0px; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-text { + .m_16_r; + margin-bottom:0px; + padding:0px; + } + + #line-item-extended > #line-item-audit-logs > #new-audit-log-from { + margin: 0 0 15px; + } + + #line-item-extended > #line-item-audit-logs > #new-audit-log-from #new-audit-log-text { + border-color: @main_color_q; + margin-bottom:15px; + } + + .btn-gradient-primary { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #37B2E5; + *background-color: #37B2E5; + background-image: -moz-linear-gradient(top, #0079AB, #37B2E5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0079AB), to(#37B2E5)); + background-image: -webkit-linear-gradient(top, #0079AB, #37B2E5); + background-image: -o-linear-gradient(top, #0079AB, #37B2E5); + background-image: linear-gradient(to bottom, #0079AB, #37B2E5); + background-repeat: repeat-x; + border-color: #37B2E5; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0079AB', endColorstr='#37B2E5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + + .btn-gradient-success { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41A02C; + *background-color: #41A02C; + background-image: -moz-linear-gradient(top, #A2E652, #41A02C); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C)); + background-image: -webkit-linear-gradient(top, #A2E652, #41A02C); + background-image: -o-linear-gradient(top, #A2E652, #41A02C); + background-image: linear-gradient(to bottom, #A2E652, #41A02C); + background-repeat: repeat-x; + border-color: #41A02C; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + + .btn-gradient-danger { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #AE0020; + *background-color: #AE0020; + background-image: -moz-linear-gradient(top, #F74658, #AE0020); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020)); + background-image: -webkit-linear-gradient(top, #F74658, #AE0020); + background-image: -o-linear-gradient(top, #F74658, #AE0020); + background-image: linear-gradient(to bottom, #F74658, #AE0020); + background-repeat: repeat-x; + border-color: #AE0020; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + diff --git a/d2ice.att.io/app/main/dashboard/account/account.controller.js b/d2ice.att.io/app/main/dashboard/account/account.controller.js new file mode 100755 index 00000000..da648f73 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/account.controller.js @@ -0,0 +1,150 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.dashboard.account') + .controller('DashboardAccountController', ["$state", "usersService", "vfService", "$log", + "$rootScope", "toastService", dashboardAccountController]); + + function dashboardAccountController($state,usersService,vfService, $log, $rootScope, toastService) { + + var vm = this; + vm.data = {}; + + var init = function() + { + + vm.user = usersService.getUserData(); + + if (vm.user == undefined) { + $state.go('app.login'); + return; + } + + var user_uuid = vm.user.uuid; + + $rootScope.ice.loader.show = true; + usersService.getIceUser(user_uuid) + .then + (function (response) + { + if (response.status === 200) + { + vm.data.full_name = response.data.full_name; + vm.data.email = response.data.email; + vm.data.phone_number = response.data.phone_number; + vm.data.password = ''; //user.password; + vm.data.ssh_key = response.data.ssh_public_key; + vm.data.company = response.data.company.name; + vm.data.access_key = response.data.rgwa_access_key; + vm.data.access_secret = "•••••••••••••••"; + $rootScope.ice.loader.show = false; + } + else + { + toastService.setToast('Error getting account', 'danger'); + $log.error("Error getting account: " + uuid); + $rootScope.ice.loader.show = false; + } + } + ).catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + + vfService.getCompanies() + .then(function (response) { + if (response.status === 200) + { + vm.companies = response.data; + } + }) + .catch(function (error) + { + $log.error(error.message); + }); + + + + }; + + init(); + + vm.getAccessSecret = function () + { + usersService.getRGWASecret() + .then + (function (response) + { + if (response.status === 200) + { + vm.data.access_secret = response.data.rgwa_secret_key; + } + else + { + toastService.setToast('Error getting user\'s access secret', 'danger'); + $log.error("Error getting access secret: " + uuid); + $rootScope.ice.loader.show = false; + } + } + ).catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + } + + vm.submitForm = function () + { + var user = usersService.getUserData(); + usersService.updateAccount(user.uuid, vm.data) + .then(function (response) { + if (response.status === 200) { + toastService.setToast('Account was updated successfully!', 'success'); + } + }) + .catch(function (error) { + toastService.setToast(error.message.detail, 'danger'); + }); + }; + } + +})(); diff --git a/d2ice.att.io/app/main/dashboard/account/account.html b/d2ice.att.io/app/main/dashboard/account/account.html new file mode 100755 index 00000000..de792d3a --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/account.html @@ -0,0 +1,159 @@ + + + +

Account

+ +
+ +
+ + +
+ + + +
+ + + +
+ +
+
+
+

Your Storage Credentials

+
+ +
Access Key: +
{{vm.data.access_key}}
+
+ +
Access Secret (Show) +
{{vm.data.access_secret}}
+
+ +
+
+
+ +
+ diff --git a/d2ice.att.io/app/main/dashboard/account/account.less b/d2ice.att.io/app/main/dashboard/account/account.less new file mode 100755 index 00000000..d32db492 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/account.less @@ -0,0 +1,215 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.account { + + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + .content { + + .steps-progress-wrapper { + margin-top: 10px; + } + + h1 { + .a_36; + margin: 0 0 30px 0; + } + + h2 { + margin: 0 0 10px 0; + .a_24_m; + position: relative; + .add-people, + .add-step { + .sprite; + .sprite.add; + display: inline-block; + margin-left: 8px; + cursor: pointer; + } + } + + h3 { + .a_20_m; + } + + .main-section { + margin-top: 30px; + } + + .steps { + + border-right: dashed 1px @main_color_a; + height: 100%; + padding-right: 20px; + + ul { + li.step { + + &.selected { + background-color: #DEF3FF; + } + + list-style: none; + position: relative; + padding: 10px 10px 10px 4px; + + .description { + + .m_16_r; + border-bottom: dashed 1px @main_color_n; + padding: 10px 0; + + input { + position: absolute; + top: 10px; + left: 0; + margin-right: 20px; + } + + .step-text { + margin-left: 20px; + } + + .step-state { + position: absolute; + top: 24px; + &.todo { + .steps-sprite; + .steps-sprite.todo; + display: inline-block; + } + &.confirmed { + .steps-sprite; + .steps-sprite.confirmed; + display: inline-block; + } + &.completed { + .steps-sprite; + .steps-sprite.completed; + display: inline-block; + } + &.completed-non-el { + .steps-sprite; + .steps-sprite.completed-non-el; + display: inline-block; + } + } + } + .details { + .m_12_r; + margin-bottom: 20px; + .actions { + float: right; + margin-top: 4px; + + .moveto-confirmed { + .sprite; + .sprite.success; + display: inline-block; + cursor: pointer; + } + .moveto-todo { + .sprite; + .sprite.delete-circle; + display: inline-block; + cursor: pointer; + } + .moveto-delete { + .sprite; + .sprite.delete; + display: inline-block; + cursor: pointer; + } + } + } + } + } + } + + .right-panel { + height: 100%; + padding-left: 20px; + padding-bottom: 5px; + + .personImage + { + .profiles-sprite; + .profiles-sprite.profile-large; + display: block; + } + + .line-separator { + border-bottom: solid lightgrey; + margin: 20px 0; + } + + .storage-credentials { + .m_18_r; + } + + .access-key { + margin-bottom: 10px; + .m_16_r; + } + + .access-secret { + margin-bottom: 10px; + .m_16_r; + } + + .show-secret { + .underline; + cursor: pointer; + } + } + } +} diff --git a/d2ice.att.io/app/main/dashboard/account/account.module.js b/d2ice.att.io/app/main/dashboard/account/account.module.js new file mode 100755 index 00000000..052cbbfb --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/account.module.js @@ -0,0 +1,85 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.dashboard.account') + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.account', { + url: '/account', + views: { + 'content@app': { + templateUrl: 'main/dashboard/account/account.html', + controller: 'DashboardAccountController as vm' + }, + 'navigation@app': { + templateUrl: 'core/navigation/layouts/account-navigation/navigation.html', + controller: 'accountNavigationController as vm' + } + }, + params: {engagement_uuid: null}, + bodyClass: 'account' + }) + .state('app.account.notifications', { + url: '/account/notifications', + views: { + 'content@app': { + templateUrl: 'main/dashboard/account/notifications/notifications.html', + controller: 'DashboardNotificationsController as vm' + } + }, + bodyClass: 'notifications' + }) + .state('app.account.userProfile', { + url: '/account/userProfile', + views: { + 'content@app': { + templateUrl: 'main/dashboard/account/user-profile-settings/user-profile-settings.html', + controller: 'accountUserProfileSettingsController as vm' + } + }, + bodyClass: 'account' + }); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/account/notifications/notifications.controller.js b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.controller.js new file mode 100755 index 00000000..0e9542dd --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.controller.js @@ -0,0 +1,140 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.account') + .controller('DashboardNotificationsController', ["$state","pageService","usersService", "toastService", "$rootScope", "$scope", "$log", dashboardNotificationsController]); + + function dashboardNotificationsController($state,pageService, usersService, toastService, $rootScope, $scope, $log) { + var vm = this; + vm.data = {}; + var init = function() + { + pageService.setPage('notification'); + $rootScope.timeGapLocal = moment().format("z");// timeGap(); + $rootScope.ampm = moment().format('A'); + $rootScope.mom =moment().tz( moment.tz.guess()).format('z'); + + vm.pagination_num_of_objects = 10; + vm.current_starting_offset = "0"; + vm.page_num = 1; + vm.user = usersService.getUserData(); + if (vm.user == undefined) { + $state.go('app.login'); + return; + } + vm.getNotifications(true) + } + + vm.getNotifications = function (reset) { + var user_uuid = vm.user.uuid; + $rootScope.ice.loader.show = true; + vm.current_starting_offset = (vm.page_num-1)*vm.pagination_num_of_objects; + usersService.getNotificationsDescription(vm.user.uuid,vm.current_starting_offset,vm.pagination_num_of_objects) + .then + (function (response) + { + if (response.status === 200) + { + vm.notifications = response.data['serilizedActivitySet']; + vm.num_of_returned_items = response.data['num_of_objects']; + vm.notifications_display_list = vm.notifications; + if (reset){ + usersService.resetNotificationNum(user_uuid) + .then + (function (response) + { + if (response.status === 200) + { + $scope.$emit('eventClearNotifications',0); + } + } + ) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + $rootScope.ice.loader.show = false; + } + else + { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + } + ) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + } + ); + }; + + vm.delNotification = function(uuid) + { + var itemIndex = 0; + + for(var i=0; i < vm.notifications.length; i++) + { + if (vm.notifications[i].uuid == uuid) + { + itemIndex = i; + break; + } + } + usersService.notificationsDelete(uuid) + .then + (function (response) { + if (response.status != 400){ + vm.notifications.splice(itemIndex , 1); + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + init(); + } +})(); \ No newline at end of file diff --git a/d2ice.att.io/app/main/dashboard/account/notifications/notifications.html b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.html new file mode 100755 index 00000000..f92cc41a --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.html @@ -0,0 +1,60 @@ + + + +
+
+

Notifications

+
+
+
+ +
+
+
+
+
+
+ + + +
+
diff --git a/d2ice.att.io/app/main/dashboard/account/notifications/notifications.less b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.less new file mode 100755 index 00000000..7981be89 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/notifications/notifications.less @@ -0,0 +1,348 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.engagement_link { + text-decoration: underline; + cursor:pointer; +} +.notifications { + + .table{ + margin-bottom: 0; + } + + .table-container-flex { + + .data-row-wrapper { + padding: 10px 20px; + } + + .flex-item:nth-child(1) { + padding-left: 5px; + padding-top: 15px; + flex-grow: 2; + } + + .flex-item:nth-child(2) { + padding-top: 12px; + flex-grow: 93; + } + + .flex-item:nth-child(3) { + padding-top: 12px; + flex-grow: 5; + } + + } + + .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus + { + background-color: #DEF3FF; + border-color: #DDDDDD; + color: #000000; + cursor:pointer; + z-index:2; + } + + .btn { + width: 100%; + } + + .lineColor + { + background-color:#F6F3F3; + } + + .electricity + { + .sprite; + .sprite.electricity; + display: block; + margin-top: 10px; + margin-left: 10px; + } + + .delete + { + .sprite; + .sprite.delete-circle; + display: block; + cursor:pointer; + margin-top: 11px; + } + + + .fLeft + { + float:left; + height:50px; + } + + .hoverCyan + { + line-height: 40px; + &:hover { + background-color: #DEF3FF; + } + } + + .boldFont + { + font-weight: bold; + } + + .marginLeft60 + { + margin-left:-60px; + } + + .height510 + { + height:510px; + margin-top:-30px; + } + + .height50 + { + height:50px; + line-height:50px; + width:1100px; + } + + .marginLeft5 + { + margin-left:5px; + } + + .marginTop5 + { + margin-top:5px; + margin-left: 40px; + } + + .personImage + { + .profiles-sprite; + .profiles-sprite.profile-large; + display: block; + } + + .textAlignCenter + { + text-align:center; + width:1100px + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + .pad17 + { + padding-top:17px; + display: block; + } + + .content { + + .steps-progress-wrapper { + margin-top: 10px; + } + + h1 { + .a_36; + margin: 0 0 30px 0; + } + + h2 { + margin: 0 0 10px 0; + .a_24_m; + position: relative; + .add-people, + .add-step { + .sprite; + .sprite.add; + display: inline-block; + margin-left: 8px; + cursor: pointer; + } + } + + .main-section { + margin-top: 30px; + } + + .steps { + + + height: 100%; + padding-right: 20px; + + ul { + li.step { + + &.selected { + background-color: #DEF3FF; + } + + list-style: none; + position: relative; + padding: 10px 10px 10px 4px; + + .description { + + .m_16_r; + + padding: 10px 0; + + input { + position: absolute; + top: 10px; + left: 0; + margin-right: 20px; + } + + .step-text { + margin-left: 20px; + } + + .step-state { + position: absolute; + top: 24px; + &.todo { + .steps-sprite; + .steps-sprite.todo; + display: inline-block; + } + &.confirmed { + .steps-sprite; + .steps-sprite.confirmed; + display: inline-block; + } + &.completed { + .steps-sprite; + .steps-sprite.completed; + display: inline-block; + } + &.completed-non-el { + .steps-sprite; + .steps-sprite.completed-non-el; + display: inline-block; + } + } + } + .details { + .m_12_r; + margin-bottom: 20px; + .actions { + float: right; + margin-top: 4px; + + .moveto-confirmed { + .sprite; + .sprite.success; + display: inline-block; + cursor: pointer; + } + .moveto-todo { + .sprite; + .sprite.delete-circle; + display: inline-block; + cursor: pointer; + } + .moveto-delete { + .sprite; + .sprite.delete; + display: inline-block; + cursor: pointer; + } + } + } + } + } + } + + .team-and-logs { + height: 100%; + padding-left: 20px; + .team { + ul.team-avatars { + + li { + list-style: none; + display: inline-block; + margin-right: 10px; + .profiles-sprite; + .profiles-sprite.profile-medium; + + &.me { + .profiles-sprite; + .profiles-sprite.avatar-blue; + } + } + } + } + + .activity-log { + ul.activity-log-details { + li { + list-style: none; + position: relative; + margin-left: 30px; + + &:before { + content: ''; + display: inline-block; + .sprite; + .sprite.electricity; + position: absolute; + top: 0; + left: -30px; + } + } + } + } + } + } +} diff --git a/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.controller.js b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.controller.js new file mode 100755 index 00000000..6d51a440 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.controller.js @@ -0,0 +1,98 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.account') + .controller('accountUserProfileSettingsController', ['toastService', 'usersService', + accountUserProfileSettingsController]); + + function accountUserProfileSettingsController(toastService, usersService) { + var vm = this; + + var init = function() + { + usersService.getIceUser() + .then + (function (response) { + vm.receiveEmails = response.data.regular_email_updates; + vm.receiveEmailsEveryTime = response.data.email_updates_on_every_notification; + vm.receiveDigestEmails = response.data.email_updates_daily_digest; + + vm.receiveNotifications = vm.receiveEmailsEveryTime || vm.receiveDigestEmails; + } + ).catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + }; + + vm.submitForm = function() { + var user = usersService.getUserData(); + var userData = {}; + + userData.regular_email_updates = vm.receiveEmails; + userData.email_updates_on_every_notification = vm.receiveEmailsEveryTime; + userData.email_updates_daily_digest = vm.receiveDigestEmails; + userData.company = user.company.name; + userData.full_name = user.full_name; + userData.email = user.email; + userData.phone_number = user.phone_number; + + usersService.updateAccount(user.uuid, userData) + .then(function (response) { + if (response.status === 200) { + toastService.setToast('User profile settings was updated successfully!', 'success'); + } + }) + .catch(function (error) { + toastService.setToast(error.message.detail, 'danger'); + }); + }; + + vm.changeReceiveNotifications = function() { + if(!vm.receiveNotifications) { + vm.receiveEmailsEveryTime = false; + vm.receiveDigestEmails = false; + } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.html b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.html new file mode 100755 index 00000000..521c73ab --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.html @@ -0,0 +1,66 @@ + + +

Settings

+ diff --git a/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.less b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.less new file mode 100755 index 00000000..41ad47ec --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/account/user-profile-settings/user-profile-settings.less @@ -0,0 +1,45 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.user-profile-settings-form { + .receive-email-options { + padding-left: 20px; + } +} + + diff --git a/d2ice.att.io/app/main/dashboard/checklist/checklist.controller.js b/d2ice.att.io/app/main/dashboard/checklist/checklist.controller.js new file mode 100755 index 00000000..293134cd --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/checklist/checklist.controller.js @@ -0,0 +1,445 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.checklist',[]) + .controller('DashboardChecklistController', ["$scope", "$stateParams", "$rootScope", "checklistService", + "iceConstants", "usersService", "$uibModal", "toastService", "$log", DashboardChecklistController]); + function DashboardChecklistController($scope, $stateParams, $rootScope, checklistService, iceConstants, + usersService, $uibModal, toastService, $log) { + + var vm = this; + vm.data = {}; + var engagementUuid = $stateParams.engagement_uuid; + vm.checklistUuid = $stateParams.sub_id; + vm.selected_decision = false; + + var init = function() { + if (vm.checklistUuid == null) + return; + + checklistService.getChecklist(vm.checklistUuid) + .then(function (response) { + if (response.status === 200) { + vm.data = response.data; + vm.data.states = iceConstants.checklist_states; + vm.me = usersService.getUserData(); + vm.is_peer_reviewer = usersService.isPeerReviewer(vm.me, response.data.checklist.engagement.peer_reviewer.uuid); + // if state pending dont allow changing data manually + if(vm.data.checklist.associated_files) { + vm.has_files = true; + } + else { + vm.has_files = false; + } + vm.formatDecisions(); + + } + }) + .catch(function (error) { + if (error.status === 410) { + $rootScope.$broadcast('onUpdateEngagements',{ + select:{ + uuid: $stateParams.engagement_uuid, + view_type : 'overview', + sub_id: undefined + } + }); + } + else{ + $log.error(error.message); + return false; + } + }); + }; + + + vm.formatDecisions = function () { + var section_counter = 0; + vm.data.checklistDecisions = _.orderBy(vm.data.checklistDecisions, 'weight'); + angular.forEach(vm.data.checklistDecisions, function(section,section_key) { + section_counter ++; + section.counter = section_counter; + var decision_counter = 0; + section.decisions = _.orderBy(section.decisions, 'weight'); + angular.forEach(section.decisions,function(decision,decision_key) { + decision_counter++; + // add text of section and line number E.g 2.1 + decision.counter = section_counter+'.'+decision_counter; + + // set selected decision default value + if (vm.selected_decision == false) + { + vm.selected_decision = decision; + vm.selectDecision(decision); + } + + // choose which decision value to show + var view_value; + switch(vm.data.checklist.state) + { + case 'peer_review': + view_value = decision.peer_review_value; + break; + case 'review': + case 'approval': + case 'handoff': + case 'closed': + view_value = decision.review_value; + break; + } + + // choose which ucib to show + var view_value_css; + switch(view_value) + { + case 'approved': + view_value_css = 'sprite approved-cl'; + break; + case 'denied': + view_value_css = 'sprite denied-cl'; + break; + case 'not_relevant': + view_value_css = 'sprite not-relevant-cl'; + break; + } + + // choose which line item type icon to show + var auto_icon_css + switch(decision.lineitem.line_type) + { + case 'auto': + auto_icon_css = 'sprite automation-state'; + } + vm.data.checklistDecisions[section_key].decisions[decision_key]['selected-value'] = view_value + vm.data.checklistDecisions[section_key].decisions[decision_key]['view_value'] = view_value; + vm.data.checklistDecisions[section_key].decisions[decision_key]['view_value_css'] = view_value_css; + vm.data.checklistDecisions[section_key].decisions[decision_key]['auto_icon_css'] = auto_icon_css; + }); + }); + // after decision change refresh which state buttons to shows + vm.refreshStateOptions(); + + }; + + // set decision value + vm.setDecision = function(decision,value) { + checklistService.putChecklistDecision(decision.uuid,{value:value}) + .then(function (response) { + if (response.status === 200) { + switch(vm.data.checklist.state) + { + case 'peer_review': + decision.peer_review_value = value; + break; + case 'review': + decision.review_value = value; + break; + } + vm.formatDecisions(); + } + }); + + }; + + // decice which state change buttons to choose + vm.refreshStateOptions = function () { + var force_break = false; + vm.is_able_to_approve = true; + angular.forEach(vm.data.checklistDecisions, function (section,key) { + if (!force_break) + angular.forEach(section.decisions, function (decision,key) { + if (!force_break){ + // if not all decisions have value only only next_step + if ( decision['view_value'] != 'approved' && decision['view_value'] != 'not_relevant' ) { + vm.is_able_to_approve = false; + force_break=true; + } + } + }); + + }); + }; + + // set state + vm.stateAction = function(action) { + switch(action) + { + case 'approve': + var postData = {}; + postData["description"] = ''; + postData["decline"] = "False"; + checklistService.setState(vm.data.checklist.uuid, postData) + .then(function (response) { + if (response.status === 200) { + $rootScope.$broadcast('onUpdateEngagements',{select:{uuid:engagementUuid,page_type:'overview',sub_id:vm.data.checklist.uuid}}); + } + else { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + break; + case 'reject': + vm.openSetState(action,vm.data.checklist); + break; + case 'next_step': + vm.openNextSteps(vm.data.checklist); + break; + } + }; + + vm.formatDate = function (create_time) { + var region = moment().tz( moment.tz.guess()).format('z'); + var dt = ""; + dt = moment(create_time).local().format('YYYY-MM-DD hh:mm:ss A') + " " + region; + return dt; + }; + + // add decision log + vm.submitDecisionAuditLog = function () { + + var jsonPost = {"description":vm.selected_decision.new_audit_log_description}; + checklistService.createAuditlogDecisionChecklist(vm.selected_decision.uuid, jsonPost) + .then(function (response) { + if (response.status === 200) + { + if (vm.data.decisionAuditLogs[vm.selected_decision.uuid] == undefined) + vm.data.decisionAuditLogs[vm.selected_decision.uuid] = [] + vm.data.decisionAuditLogs[vm.selected_decision.uuid].push(response.data); + vm.selected_decision.new_audit_log_description = "" + } + else + { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + } + + // choose active decision + vm.selectDecision = function(decision,$event) { + if(vm.selected_decision != decision || vm.selected_decision.selected === undefined) { + // remove status from previos decision + vm.selected_decision.selected = false; + + // populate new decision + vm.selected_decision = decision; + vm.selected_decision.selected = true; + + $scope.$$postDigest(function () { + // Make extended window follow selected decision line + if ($event != undefined) + { + var line_item_bottom_offset = angular.element($event.target).prop('offsetHeight') + angular.element($event.target).prop('offsetTop'); + var extendended_item_height = angular.element("#line-item-extended").prop('offsetHeight'); + var diff_between_elements = line_item_bottom_offset - extendended_item_height; + if (diff_between_elements > 0) + { + angular.element("#line-item-extended").css('margin-top',(20+diff_between_elements) +'px') + } else { + angular.element("#line-item-extended").css('margin-top','') + } + } + }); + } + }; + + // next steps modal + vm.openNextSteps = function(checklist) { + var modalInstance = $uibModal.open( + { + templateUrl: 'main/modals/next-steps/next-steps.html', + controller: 'NextStepsModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + engagement_team: function () { + return checklist.engagement.engagement_team; + }, + title: function () { + return checklist.name; + }, + associated_files: function () { + return checklist.repo_associated_files; + }, + engagement_uuid: function () { + return checklist.engagement.uuid; + }, + checklist: function () { + return checklist; + }, + nextstep: function () { + return undefined; + } + + } + }); + + modalInstance.result.then(function (data) { + if (data === 200) { + $rootScope.$broadcast('onUpdateEngagements',{select:{uuid:engagementUuid,page_type:'overview',sub_id:checklist.uuid}}); + } + }, function () { + }); + }; + + // set state modal + vm.openSetState = function(action,checklist) { + var modalInstance = $uibModal.open( + { + templateUrl: 'main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html', + controller: 'stateDecisionModalController', + controllerAs: 'vm', + resolve: { + checklist: function () {return checklist}, + action: function () {return action} + } + }); + + modalInstance.result.then(function (data) { + if (data) { + $rootScope.$broadcast('onUpdateEngagements',{select:{uuid:engagementUuid,page_type:'overview',sub_id:checklist.uuid}}); + } + }, function () { + }); + + }; + + vm.openJenkinsLogModal = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/general-log-modal/general-log-modal.html', + controller: 'GeneralLogModalController', + controllerAs: 'vm', + size: 'general-log-modal', + resolve: { + modalDetails: function () { + return { + "headline": 'Jenkins log', + "body": vm.data.checklist.jenkins_log, + }; + } + } + }); + }; + + // audit log modal + vm.auditLog = function() { + + var auditLogData = { + name:vm.data.checklist.name, + uuid:vm.data.checklist.uuid, + checklistAuditLogs: vm.data.checklistAuditLogs + + }; + + var modalInstance = $uibModal.open( + { + templateUrl: 'main/modals/audit-log/audit-log.html', + controller: 'AuditLogModalController', + controllerAs: 'vm', + size: 'lg' + + , + resolve: { + wizardData: function () { + return auditLogData; + } + } + }); + + modalInstance.result.then(function (data) { + if (data) { + vm.data.checklistAuditLogs.push(data); + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + // edit checklist + vm.editChecklist = function() { + var checklistData = { + uuid:vm.data.checklist.uuid, + name:vm.data.checklist.name, + templates:vm.data.checklist.templates, + selectedTemplateUuid:vm.data.checklist.template.uuid, + selectedTemplateName:vm.data.checklist.template.name, + associatedFiles:vm.data.checklist.associated_files, + state:vm.data.checklist.state + }; + + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/checklist/checklist.html', + controller: 'ChecklistModalController', + controllerAs: 'vm', + size: 'lg' + , + resolve: { + wizardData: function () { + return checklistData; + }, + engagementUuid: function () { + return engagementUuid; + }, + modal_type: function () { + return 'update'; + } + } + }); + modalInstance.result.then(function (data) { + if (data) { + vm.data.checklist.name = data.checklist_name; + vm.data.checklist.associated_files = data.associated_files; + } + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/checklist/checklist.html b/d2ice.att.io/app/main/dashboard/checklist/checklist.html new file mode 100755 index 00000000..b8da8836 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/checklist/checklist.html @@ -0,0 +1,117 @@ + +
+
+ +
+
+

+ + Checklist: + {{vm.data.checklist.name}} +

+
+ +
+ + + +
+
    +
  • Audit Log ({{vm.data.checklistAuditLogs.length}})
  • +
  • Jenkins Log
  • + +
+
+
+ +
+
    +
  • Section {{section.counter}}: {{section.section.name}}

    +
      +
    • + {{decision.counter}} + {{decision.lineitem.name}} + + +
    • +
    +
  • +
+ +
+
diff --git a/d2ice.att.io/app/main/dashboard/checklist/checklist.less b/d2ice.att.io/app/main/dashboard/checklist/checklist.less new file mode 100755 index 00000000..5e0d228e --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/checklist/checklist.less @@ -0,0 +1,826 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.cl-action-button{ + width: 30%; + margin-bottom: 2%; + margin-right: 3%; + &:last-child { + margin-right: 0; + } + +} +#main .popover { + max-width: 330px; +} +// Pop over rules +.popover { + border: 2px solid #15B3E8; + .m_14_r; + z-index:100000; +} + +.popover .popover-title { + background-color: white; + margin-top: 5px; + .a_18_m; + padding: 5px 10px; +} + +.popover .popover-content { + padding: 5px 10px; + .m_16_r; +} +.popover .popover-content ul{ + list-style-type: none;// square; + padding-left:0px; + margin-left:0px; + .m_16_r; + word-wrap: break-word; +} +.cl-action-control { + padding-left:8% +} + +.checkList { + height:100%; + > #checklist-main-section { + height:80% !important; + } + + .blocked-area { + pointer-events: none; + opacity: 0.5; + filter: alpha(opacity=50); + background-color: white; + } + + #modal_header_checklist { + margin-top:0px; + padding: 0 29px; + } + + #modal-header-checklist-15 { + margin-top:0px; + padding: 0 15px; + } + + .rows { + + } + + + .font-deco { + text-decoration-line: underline; + text-decoration-style: dashed; + } + + .lineColor + { + background-color:#F6F3F3; + } + + .font_header + { + .m_18_m; + } + + .font_header_chk_name + { + .m_18_r; + } + + .font_user_name + { + .m_18_m; + } + + .font_date + { + .m_14_r; + } + + .font_line + { + border-bottom: 1px solid grey; + } + + .font_desc + { + .m_16_r; + text-align:left; + } + + .pad0 + { + padding:0px; + } + + .dash + { + border-bottom: dashed 1px; + border-color: @main_color_q; + padding: 0px; + } + + .italic + { + font-style:italic; + } + + + #modal-title { + margin: 0px; + } + + .checkList-form { + max-height: 100%; + //overflow-y: auto; + //overflow-x: hidden; + + #audit-log-lines { + + } + + + #checklist-subject + { + padding:0 15px; + margin-bottom: 0px; + } + + .checklist-modal-multi-select { + margin-top: 1%; + + .btn-group .btn { + .m_14_m; + } + } + + .btn { + width: 100%; + } + + .action-buttons{ + width: 100%; + margin-bottom: 7px; + } + + .col-no-pad + { + padding:0px; + } + + .col-no-top + { + margin:0px 0px 0px 0px; + } + + .text-right + { + text-align:right; + } + + .modal-header { + display: flex; + flex-direction: row; + + h2, h3 { + display: inline-block; + flex-grow: 10; + } + } + + .font_title + { + .a_16_m; + } + + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } + + + .add-button { + margin-top: 8px; + display: block; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + + } + + .margin_btm + { + margin-bottom:12px; + } + + .margin_top + { + margin-top:12px; + } + + .margin_btm5 + { + margin-bottom: 5px; + } + + + .personImage + { + .profiles-sprite; + .profiles-sprite.profile-large; + display: block; + } + + .table{ + margin-bottom: 0; + } + + .table-container-flex { + + .data-row-wrapper { + padding: 10px 20px; + } + + .flex-item:nth-child(1) { + padding-left: 0; + flex-grow: 25; + } + + .flex-item:nth-child(2) { + flex-grow: 25; + } + + .flex-item:nth-child(3) { + flex-grow: 25; + } + + .flex-item:nth-child(4) { + flex-grow: 25; + } + + } + + .table-container-flex-a { + + .data-row-wrapper { + padding: 10px 20px; + } + + .flex-item-a:nth-child(1) { + + padding-left: 0; + flex-grow: 40; + width:90%; + float:left; + } + + .flex-item-a:nth-child(2) { + + flex-grow: 25; + width:10%; + float:left; + } + } + //.a_16_m; + + .remove-icon { + cursor: pointer; + vertical-align: text-top; + //.sprite; + //.sprite.delete;//-circle; + .actions-sprite; + .actions-sprite.delete_large; + + display:block; + position:relative; + top:11px; + } + + + + + //.btn-primary-with-margin { + // border: 1px solid #8799A3; + // border-radius: 6px; + // background: #1E79B0; /* For browsers that do not support gradients */ + // background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + // background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + // background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + // background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + // margin-bottom:7px; + //} + // + //.btn-primary { + // border: 1px solid #8799A3; + // border-radius: 6px; + // background: #1E79B0; /* For browsers that do not support gradients */ + // background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + // background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + // background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + // background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + //} + + + .flex-item-a:nth-child(0) { + padding-left: 0; + flex-grow: 40; + width:80% + } + + .flex-item-a:nth-child(1) { + flex-grow: 25; + width:20%; + } + + //.content { + + .steps-progress-wrapper { + margin-top: 10px; + } + + .fnt + { + font-size:20px; + } + + h1 { + .a_36; + margin: 0 0 30px 0; + } + + h3 { + .m_18_m; + } + h2 { + margin: 0 0 10px 0; + .a_24_m; + position: relative; + .add-people, + .add-step { + .sprite; + .sprite.add; + display: inline-block; + margin-left: 8px; + cursor: pointer; + } + } + + .main-section { + margin-top: 30px; + } + } + + // dashboard css + padding:0 20px; + + #state-bar { + float:none; + height: 5%; + + } + #state-bar > ul { + border-bottom: dashed 1px; + border-color: @main_color_q; + padding-bottom:2px; + } + #state-bar > ul > li { + .m_14_r; + text-transform: uppercase; + text-align: left; + } + #state-bar > ul > li.active { + font-family:@font-omnes-bold; + } + + #state-bar > ul > li > .state-icon { + display: inline-block; + position: relative; + top: 2px; + margin-right:5px; + } + + #cl-header { + height:12%; + padding-top:1%; + } + + #cl-header > #cl-title { + padding-left: 0px; + .a_24; + } + #cl-header > #cl-title > span.bold { + .a_24_m; + } + #cl-header > #cl-title > #edit-checklist { + display: inline-block; + margin-right: 5px; + cursor: pointer; + } + + #cl-side-actions { + list-style: none; + margin-top: 5px; + } + + + #cl-side-actions > li { + display:inline-block; + margin-left:5px; + .n_12_m; + } + + .cl-action-buttons-frame{ + + list-style: none; + text-align: right; + } + + .cl-btn-associated { + border-bottom: 1px solid; + border-color: @main_color_l; + .a_26_m; + } + + .cl-btn-cl-audit { + margin-right: 15%; + border-bottom: 1px solid; + border-color: @main_color_l; + } + + + #state-actions { + display: inline-block; + border-bottom: 1px solid; + border-color: @main_color_q; + padding-bottom: 5px; + } + #state-actions button { + margin-left: 10px; + } + #state-actions button:first-child { + margin-left: 0px; + } + #cl-side-actions span { + cursor: pointer; + border-bottom: 2px solid @main_color_m; + //text-transform: uppercase; + border-bottom: 1px solid; + border-color: @main_color_q; + + } + + + #line-item-list { + list-style: none; + padding-right:15px; + } + + + #line-item-list > li { + margin-bottom: 25px; + } + #line-item-list > li > h2 { + text-transform: capitalize; + border-bottom: 1px solid; + border-color: @main_color_q; + width: 100%; + margin-bottom: 0px; + padding-left: 5px; + .m_24; + } + #line-item-list > li > h2 > span.bold { + .m_24_m; + } + + #line-item-list > li > ul { + list-style: none; + } + #line-item-list > li > ul >li.line-item-row { + border-bottom: 1px solid; + border-color: @main_color_q; + line-height: 30px; + padding: 0px; + vertical-align: middle; + height: 30px; + .m_16_r; + cursor: pointer; + } + + #line-item-list > li > ul >li.line-item-row .value-icon { + padding: 0px; + } + + #line-item-list > li > ul >li.line-item-row .value-icon span { + display: inline-block; + position: relative; + top: 3px; + margin-right: 5px; + margin-left: 3px; + width:15px; + height:15px; + } + + #line-item-list > li > ul >li.line-item-row .auto-icon { + text-align:right; + padding: 0px; + } + + #line-item-list > li > ul >li.line-item-row .auto-icon span { + display: inline-block; + position: relative; + top: 3px; + margin-right: 3px; + } + + #line-item-list > li > ul >li.line-item-row.selected-line { + background-color: @bg_color_a; + border-left: 2px solid; + border-top: 2px solid; + border-bottom: 2px solid; + border-color: @main_color_a; + position:relative; + z-index:1; + top: -1px; + left: -2px; + } + + #line-item-list > li > ul >li.line-item-row.selected-line > .selected-line-connector { + position: absolute; + right: -19px; + width: 20px; + height: 30px; + top: -2px; + background-color: @bg_color_a; + border-top: 2px solid; + border-bottom: 2px solid; + border-color: @main_color_a; + } + #line-item-extended { + background-color: @bg_color_a; + border: 2px solid; + border-color: @main_color_a; + padding:15px; + @media (min-width: 992px) { + max-height: 100%; + overflow-y: auto; + } + } + #line-item-extended >header { + padding: 0 30px; + padding-bottom: 0px; + } + #line-item-extended >header > h2 { + text-transform: capitalize; + padding:0px; + margin:0px; + line-height:32px; + .m_18_r; + } + #line-item-extended > header > h2 > span.bold { + .m_18_m; + } + #line-item-extended >header > #decision-actions { + list-style: none; + text-align: right; + margin:0px; + } + #line-item-extended >header > #decision-actions > li { + display: inline-block; + margin-left: 2px; + .sprite; + } + #line-item-extended >header > #decision-actions.active > li { + cursor:pointer; + } + + #line-item-extended >header > #decision-actions > li.not-relevant-btn { + .sprite.not-relevant-btn; + } + + #line-item-extended >header > #decision-actions.active > li.not-relevant-btn:hover { + .sprite.not-relevant-btn-active; + } + #line-item-extended >header > #decision-actions > li.not-relevant-btn.active { + .sprite.not-relevant-btn-active; + } + #line-item-extended >header > #decision-actions > li.denied-cl-btn { + .sprite.denied-cl-btn; + } + #line-item-extended >header > #decision-actions.active > li.denied-cl-btn:hover { + .sprite.denied-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.denied-cl-btn.active { + .sprite.denied-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.approved-cl-btn { + .sprite.approved-cl-btn; + } + #line-item-extended >header > #decision-actions.active > li.approved-cl-btn:hover { + .sprite.approved-cl-btn-active; + } + #line-item-extended >header > #decision-actions > li.approved-cl-btn.active { + .sprite.approved-cl-btn-active; + } + + + #line-item-extended > #line-item-description { + margin: 0 15px; + .m_16_r; + } + + #line-item-extended > #line-item-validation-instructions { + .m_14_r; + background-color: #fff; + border: 1px solid; + border-color: @main_color_a; + padding: 15px; + margin-top: 15px; + } + + #line-item-extended > #line-item-validation-instructions h3 { + text-transform: capitalize; + margin: 0px; + .m_18_m; + } + + #line-item-extended > #line-item-validation-instructions p { + margin-top: 5px; + + } + + #line-item-extended > #line-item-validation-instructions p ul { + padding-left: 15px; + } + + #line-item-extended > #line-item-audit-logs { + padding:0 15px; + } + + #line-item-extended > #line-item-audit-logs > h3 { + text-transform: capitalize; + .m_18_m; + + } + #line-item-extended > #line-item-audit-logs > #audit-log-list { + list-style:none; + + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li { + margin: 0 15px 10px; + border-bottom: 2px solid; + border-color: @main_color_q; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-creator { + .m_16_m; + margin:0px; + padding:0px; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-date { + text-align:right; + .m_14_r; + padding:0px; + } + #line-item-extended > #line-item-audit-logs > #audit-log-list > li > .audit-text { + .m_16_r; + margin-bottom:0px; + padding:0px; + } + + #line-item-extended > #line-item-audit-logs > #new-audit-log-from { + margin: 0 0 15px; + } + + #line-item-extended > #line-item-audit-logs > #new-audit-log-from #new-audit-log-text { + border-color: @main_color_q; + margin-bottom:15px; + } + + .btn-gradient-primary { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #37B2E5; + *background-color: #37B2E5; + background-image: -moz-linear-gradient(top, #0079AB, #37B2E5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0079AB), to(#37B2E5)); + background-image: -webkit-linear-gradient(top, #0079AB, #37B2E5); + background-image: -o-linear-gradient(top, #0079AB, #37B2E5); + background-image: linear-gradient(to bottom, #0079AB, #37B2E5); + background-repeat: repeat-x; + border-color: #37B2E5; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0079AB', endColorstr='#37B2E5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #37B2E5; + *background-color: #003bb3; + } + + .btn-gradient-success { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41A02C; + *background-color: #41A02C; + background-image: -moz-linear-gradient(top, #A2E652, #41A02C); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C)); + background-image: -webkit-linear-gradient(top, #A2E652, #41A02C); + background-image: -o-linear-gradient(top, #A2E652, #41A02C); + background-image: linear-gradient(to bottom, #A2E652, #41A02C); + background-repeat: repeat-x; + border-color: #41A02C; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #41A02C; + *background-color: #003bb3; + } + + .btn-gradient-danger { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #AE0020; + *background-color: #AE0020; + background-image: -moz-linear-gradient(top, #F74658, #AE0020); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020)); + background-image: -webkit-linear-gradient(top, #F74658, #AE0020); + background-image: -o-linear-gradient(top, #F74658, #AE0020); + background-image: linear-gradient(to bottom, #F74658, #AE0020); + background-repeat: repeat-x; + border-color: #AE0020; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #AE0020; + *background-color: #003bb3; + } + + + + +} diff --git a/d2ice.att.io/app/main/dashboard/dashboard/dashboard.controller.js b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.controller.js new file mode 100755 index 00000000..b6183b79 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.controller.js @@ -0,0 +1,235 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.dashboard',['angularUtils.directives.dirPagination', 'ngFileSaver']) + .controller('DashboardMainController', ["$rootScope", "pageService", "stepsService", "vfService", "usersService", + "iceConstants", "localStorageService", "FileSaver", "Blob", "cmsService", "$uibModal", "$log", dashboardMainController]); + + function dashboardMainController($rootScope, pageService, stepsService, vfService, usersService, iceConstants, + localStorageService, FileSaver, Blob, cmsService, $uibModal, $log) { + var vm = this; + + var init = function () { + pageService.setPage('dashboard'); + cmsService.setAnnouncementToast(); + localStorageService.setJson("ice.settings.eng_uuid",undefined); + vm.stages = iceConstants.stages; + vm.stages.all = 'All'; + vm.search_keyword = ''; + vm.search_stage = 'All'; + vm.statistic_stage_filter = 'All'; + vm.current_starting_offset = "0"; + vm.num_of_returned_items = 0; + vm.pagination_num_of_objects = 8; + vm.me = vm.user = usersService.getUserData(); + vm.isAdminRo = usersService.isUserInRole(iceConstants.roles.admin_ro); + vm.isEngagmentEL = usersService.isUserInRole(iceConstants.roles.el); + vm.isEngagmentLead = usersService.isEngagementEL(vm.team); + vm.isAdmin = usersService.isAdmin(vm.me); + vm.page_num = 1; + vm.searchEngagements(1); + vm.request_statistics_data(); + getUserNextSteps(); + }; + + vm.request_statistics_data = function(){ + vfService.getEngagements(vm.me.uuid) + .then(function (response) { + if (response.status === 200 && response.data && response.data !== '') { + vm.enagements_search_list = response.data; + var vfc_array = undefined; + var vfc_num = 0; + var eng_num = 0; + vm.enagements_search_list.forEach(function (engagement) { + if(vm.statistic_stage_filter == "All") { + eng_num++; + if (engagement.engagement_stage == "Validated" || engagement.engagement_stage == "Completed") { + if (engagement.vfc.length > 1) { + vfc_array = engagement.vfc.split(", ").length; + vfc_num += vfc_array; + } + } + } + else { + if(engagement.engagement_stage == vm.statistic_stage_filter){ + eng_num++; + if (engagement.vfc.length > 1 && (engagement.engagement_stage == "Validated" || engagement.engagement_stage == "Completed")) { + vfc_array = engagement.vfc.split(", ").length; + vfc_num += vfc_array; + } + } + } + + }); + + vm.vfc_num = vfc_num; + vm.eng_num = eng_num; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + }; + + vm.onStageChange = function() { + vm.page_num = 1; + + vm.searchEngagements(); + }; + + vm.onKeywordChange = function() { + vm.page_num = 1; + + vm.searchEngagements(); + }; + + vm.searchEngagements = function () { + vm.current_starting_offset = (vm.page_num-1)*vm.pagination_num_of_objects; + vm.postData = {'stage': vm.search_stage, 'keyword': vm.search_keyword, 'offset': vm.current_starting_offset, 'limit': vm.pagination_num_of_objects}; + vfService.getExpandedEngagements(vm.postData) + .then(function (response) { + if (response.status === 200 && response.data && response.data !== '') { + vm.vf_search_list = response.data['array']; + vm.num_of_returned_items = response.data['num_of_objects']; + vm.vf_search_list.forEach(function (vf){ + var progress_needed_data = { + enable_edit: false, + completion_date: vf.engagement__target_completion_date, + ecomp_release: vf.ecomp_release__name, + vnf_version: vf.version, + aic_version: vf.deployment_target__version, + aic_instantiation_time:vf.engagement__aic_instantiation_time, + asdc_onboarding_time:vf.engagement__asdc_onboarding_time, + heat_validated_time:vf.engagement__heat_validated_time, + image_scan_time: vf.engagement__image_scan_time, + engagement_uuid: vf.engagement__uuid, + manual_id: vf.engagement__engagement_manual_id, + name: vf.vf__name, + starred: false + }; + vf.progress_needed_data = progress_needed_data; + vf.starred_users.forEach(function (user) { + if (vm.me.uuid == user) { + vf.progress_needed_data.starred = true; + } + }); + + + }); + vm.vf_display_list = vm.vf_search_list; + + addStatusesLoadedAttr(); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.goToEngagement = function(uuid){ + $rootScope.$broadcast('searchSelectEngagement',uuid); + }; + + vm.exportEngagementCSV = function() { + var stage = vm.search_stage || ""; + var keyword = vm.search_keyword || ""; + $rootScope.ice.loader.show = true; + + vfService.exportEngagementsCSV(stage, keyword) + .then(function(response) { + if(response && response.data) { + var data = new Blob([response.data], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}); + FileSaver.saveAs(data, 'D2Ice.xlsx'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.openCMSReadMoreModal = function(cmsPost) { + if(cmsPost) { + $uibModal.open({ + templateUrl: 'main/modals/cms-post-modal/cms-post-modal.html', + controller: 'cmsPostModalController', + controllerAs: 'vm', + size: 'cms-post-read-more', + resolve: { + post: function () { + return cmsPost; + } + } + }); + } else { + $log.warn("Cannot open cms post.") + } + }; + + function getUserNextSteps() { + vm.userNextSteps = []; + + stepsService.getByUser() + .then(function(response) { + vm.userNextSteps = response.data.data; + vm.userNextStepsCount = response.data.count; + }) + .catch(function (error) { + $log.error(error); + }); + }; + + function addStatusesLoadedAttr() { + angular.element(document).ready(function () { + var statusesTitleElement = angular.element( document.querySelector('#dashboard-title')); + if(statusesTitleElement && statusesTitleElement.length === 1) { + statusesTitleElement.attr('list-loaded', 'true'); + } + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/dashboard/dashboard.html b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.html new file mode 100755 index 00000000..c03251b9 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.html @@ -0,0 +1,111 @@ + +
+
+
+

Statuses

+ + Stage + + + +
+ +
+ + +
+ Export to Excel >> + +
+
+ +
diff --git a/d2ice.att.io/app/main/dashboard/dashboard/dashboard.less b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.less new file mode 100755 index 00000000..4c824796 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/dashboard/dashboard.less @@ -0,0 +1,189 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + .dashboard .content-container #content { + height: 100%; + overflow-y: auto; + } +.dashboard-view { + padding: 10px; + + .steps-progress-wrapper { + border:none; + background-color: @main_color_p; + } + + + #dashboard-main-panel { + #dashboard-header { + #dashboard-title { + .a_26_m; + margin:0px; + line-height:40px; + } + .search-filters { + text-align: right; + .m_16_m; + line-height:40px; + .search-filter-stage { + margin-left:10px; + display: inline-block; + width: 40%; + } + #search-filter-keyword { + margin-left:10px; + display: inline-block; + width: 40%; + } + + } + } + #search-results { + .progress-bar-row { + padding:0px; + } + + .progress-bar-row:nth-child(even) .steps-progress-wrapper { + background-color: @func_color_r; + } + + #export-to-csv { + text-align : right; + .m_14_m; + text-decoration: underline; + cursor:pointer; + } + #engagements-pagination { + text-align:center; + .pagination { + margin:0px; + } + } + + } + + } + #dashboard-side-panel { + border-left: solid 1px @main_color_gray; + + #assgined-nextsteps { + border: 1px solid @toolbar_background_color; + padding:0px; + + #next-steps-header { + background-color: @toolbar_background_color; + .p_22_m; + padding: 10px 10px 0; + } + #next-steps-list { + list-style:none; + padding: 0 15px; + .next-step-details { + border-bottom: 1px dashed @main_color_a; + padding-bottom:10px; + + .next-step-details-header { + .engagement-title { + cursor:pointer; + .m_14_m; + margin-top: 15px; + margin-bottom: 0px; + .engagement-name { + text-decoration: underline; + } + } + .due-date { + .m_14_m; + margin-top: 10px; + margin-bottom: 0px; + text-align:right; + .due-date-icon { + } + } + } + .next-step-description { + .m_18_r; + margin: 3px 0px; + line-height: 20px; + } + .next-step-creation { + .m_14_r; + } + + } + .next-step-details:last-child { + padding:0px; + border:none; + } + } + } + .line-seperator { + border-bottom: dashed 1px @main_color_gray; + margin: 20px 0; + } + #statistics { + + border: 1px solid @main_color_gray; + padding:15px; + + #statistics-header { + margin-bottom: 10px; + h2 { + .m_24_m; + color: @main_color_gray; + margin: 0px; + } + .search-filters { + text-align: right; + .search-filter-stage { + margin-left:10px; + width:50%; + + } + } + } + #statistics-list { + .statistic-name { + } + .statistic-count { + text-align:right; + } + } + } + } +} diff --git a/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.controller.js b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.controller.js new file mode 100755 index 00000000..c8af53f7 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.controller.js @@ -0,0 +1,245 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.main') + .controller('detailedViewController', ["$rootScope", "$stateParams", "vfcService", "dtsiteService", "usersService", + "$uibModal", "vfService", "$log", "_", detailedViewController]); + + function detailedViewController($rootScope, $stateParams, vfcService, dtsiteService, usersService, $uibModal, vfService, $log, _) { + var vm = this; + + var init = function () { + $rootScope.timeGapLocal = moment().format("z");// timeGap(); + $rootScope.ampm = moment().format('A'); + $rootScope.mom = moment().tz(moment.tz.guess()).format('z'); + vm.is_aic_edit_mode = false; + vm.is_ecomp_edit_mode = false; + vm.aic_loaded = false; + vm.ecomp_loaded = false; + + if($stateParams.engagement != undefined) { + vm.engagement = $stateParams.engagement; + } + + if (vm.engagement != undefined) + { + vm.me = usersService.getUserData(); + vfService.getSingleEngagement(vm.me.uuid,vm.engagement.uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + + if (response.status === 200 && response.data && response.data !== '') { + var vf_data = response.data; + + vm.engagement_manual_id = vf_data.engagement.engagement_manual_id; + vm.vf_name = vf_data.name; + vm.vf_version = vf_data.version; + vm.vf_uuid = vf_data.uuid; + vm.ecomp_release = vf_data.ecomp_release; + vm.target_lab = new Date(vf_data.target_lab_entry_date); + vm.dtversion = vf_data.deployment_target; + vm.selected_dt_uuid = vm.dtversion.uuid; + vm.selected_ecomp_uuid = vm.ecomp_release.uuid; + vm.me = usersService.getUserData(); + vm.name = vm.engagement.name; + vm.isEngagementEL = usersService.isEngagementEL(vf_data.engagement.engagement_team); + vm.isAdmin = usersService.isAdmin(vm.me); + initDTsites(); + initVfcs(); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + } + }; + + + vm.addVfc = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/detailed-view/vfc/detailed-view-vfc-modal.html', + controller: 'detailedViewVFCModalController', + controllerAs: 'vm', + resolve: { + vf_uuid: function () { + return vm.vf_uuid; + }, + } + }); + modalInstance.result.then(function (data) { + if (data) { + initVfcs(); + } + }); + }; + this.personArray = [vm.dtversion,vm.vf_uuid]; + + vm.editValidationDetails = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/validation-details/detailed-view-validation-details-modal.html', + controller: 'validationDetailsModalController', + controllerAs: 'vm', + resolve: { + vf_uuid: function () { + return vm.vf_uuid; + } + } + }); + modalInstance.result.then(function (data) { + if (data) { + init(); + } + }); + }; + + vm.addDTS = function () { + if(vm.isEngagementEL || vm.isAdmin) { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html', + controller: 'detailedViewDtsitesModalController', + controllerAs: 'vm', + resolve: { + vf_uuid: function () { + return vm.vf_uuid; + }, + } + }); + + modalInstance.result.then(function (data) { + if (data) { + if(data === 200) { + initDTsites(); + } + } + }); + } + }; + + + vm.changeTargetLabEntry = function(){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/target-lab-entry/change-lab-entry-date.html', + controller: 'ChangeLabEntryDateModalController', + controllerAs: 'vm', + resolve: { + targetLabDate: function () { + return vm.target_lab; + }, + engagementUuid: function () { + return vm.engagement.uuid; + } + } + }); + modalInstance.result.then(function (data) { + if (!data){ + return; + } + else { + vm.target_lab = new Date(data.target_date); + $log.debug("data.target_date",data.target_date) + $log.debug("vm.target_lab",vm.target_lab) + } + }, function () { + $log.error('Modal dismissed at: ' + new Date()); + }); + }; + //In case user press the delete icon next to a VFC, this function would be activated + vm.deleteVfc = function(vfc_uuid){ + vfcService.delete(vfc_uuid,vm.vf_uuid) + .then(function (response) { + if (response.status === 204) { + initVfcs(); + } + }) + .catch(function (error) { + $log.error(error); + }); + }; + + vm.deleteDTSite = function(vfUuid, dtsUuid){ + dtsiteService.delete(vm.vf_uuid, dtsUuid) + .then(function (response) { + if (response.status === 204) { + initDTsites(); + } + }) + .catch(function (error) { + $log.error(error); + }); + }; + + + var initDTsites = function() { + if(vm.isEngagementEL || vm.isAdmin) { + $rootScope.ice.loader.show = true; + dtsiteService.getVFSites(vm.vf_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.dtsites = response.data; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + }; + + var initVfcs = function() { + $rootScope.ice.loader.show = true; + vfcService.get(vm.vf_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.vfcs = response.data; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + init(); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.html b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.html new file mode 100755 index 00000000..02eb760a --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.html @@ -0,0 +1,109 @@ + +
+
+

{{vm.engagement_manual_id + ': '}}{{vm.vf_name}}

+
+
+
+
+
+ Validation Details + +
+
+
+
ECOMP Release: {{vm.ecomp_release.name}}
+
+
+
Target AIC Version:{{vm.dtversion.version}}
+
+
+
VF Version: {{vm.vf_version}}
+
+
+
+
+
+ Target Lab Entry + +
+
+

{{vm.target_lab | date:'shortDate'}}

+
+
+
+
+ Deployment Targets + +
+
+
    +
  • + {{dts.name}} + + + + +
  • +
+
+
+
+
+
+
+ Virtual Function Components + +
+
+
    +
  • + {{vfc.name +' (' + vfc.external_ref_id + ')'}} + + + + +
  • +
+
+
+
+
+
diff --git a/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.less b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.less new file mode 100755 index 00000000..dbac5c2d --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/detailed-view/detailed-view.less @@ -0,0 +1,400 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +#detailed-view { + + padding:0px 30px 0px 30px; + + .glyphicon-cursor-detailed-view { + cursor: pointer; + margin-left: 0.5%; + } + + .detailed-view-edit-mode { + cursor: pointer; + margin-left: 0.5%; + display: inline-block; + position: relative; + top: 3px; + .sprite; + .sprite.edit-medium; + } + + .hide-element { + display:none; + } + + .show-select { + display:block; + margin-bottom: 3%; + } + + .row > h1 { + padding: 0px; + margin-bottom: 0px; + + .a_36; + + .bold { + .a_36_m; + } + } + + .remove-button { + height: 10px; + .a_16_m; + cursor: pointer; + + + .remove-icon { + .sprite; + .sprite.delete; + cursor: pointer; + display: block; + position: relative; + } + } + + .steps-progress-wrapper { + margin-top: 10px; + } + + + + h2 { + display: inline-block; + margin: 0 0 10px 0; + .a_24_m; + font-size: 20px; + position: relative; + .add-vfc { + .sprite; + .sprite.add; + display: inline-block; + margin-left: 8px; + cursor: pointer; + position: relative; + top: 3px; + } + } + + .main-section { + margin-top: 30px; + } + + .steps-header { + + .steps-filter { + display: inline-block; + float: right; + .a_16_m; + .todo { + .sprite; + .sprite.todo; + display: inline-block; + cursor: pointer; + } + .completed { + .sprite; + .sprite.pending; + display: inline-block; + cursor: pointer; + } + .confirmed { + .sprite; + .sprite.approved; + display: inline-block; + cursor: pointer; + } + } + } + + .vfc-column { + height: 100%; + padding-right: 20px; + padding-left: 20px; + padding-top: 20px; + + ul { + li.step { + + list-style: none; + position: relative; + padding: 5px 10px 0px 4px; + font-size: 16px; + } + } + } + + .vfc-steps { + border-right: dashed 1px @main_color_a; + height: 100%; + padding-right: 20px; + padding-left: 0px; + padding-top: 20px; + + ul { + li.step { + + list-style: none; + position: relative; + padding: 5px 10px 0px 4px; + font-size: 16px; + &:hover { + background-color: #DEF3FF; + + .details { + .actions { + span { + visibility: visible; + } + } + } + + } + + &.completed { + background-color: #dddddd; + opacity: 0.7; + } + + .description { + + .m_16_r; + border-bottom: dashed 1px @main_color_n; + padding: 10px 0; + + input { + position: absolute; + top: 10px; + left: 0; + margin-right: 20px; + } + + .step-text { + margin-left: 20px; + } + + .step-state { + + position: absolute; + top: 24px; + + &.todo { + .steps-sprite; + .steps-sprite.todo; + display: inline-block; + } + &.confirmed { + .steps-sprite; + .steps-sprite.confirmed; + display: inline-block; + } + &.completed { + .steps-sprite; + .steps-sprite.completed; + display: inline-block; + } + &.completed-non-el { + .steps-sprite; + .steps-sprite.completed-non-el; + display: inline-block; + } + } + + } + .details { + .m_12_r; + margin: 6px 0 10px 0; + + .actions { + float: right; + margin-top: 2px; + + span { + visibility: hidden; + } + + .moveto-confirmed { + .actions-sprite; + .actions-sprite.approve_large; + display: inline-block; + cursor: pointer; + } + .moveto-todo { + .actions-sprite; + .actions-sprite.reject_large; + display: inline-block; + cursor: pointer; + } + .moveto-delete { + .actions-sprite; + .actions-sprite.delete_large; + display: inline-block; + cursor: pointer; + } + } + } + } + } + + } + #deployment-targets { + border: 1px solid @engagement_team_color; + padding:0px; + margin-bottom: 20px; + + #deployment-targets-header { + background-color: @engagement_team_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .edit-target-completion { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + #deployment-targets-content { + .f-type._16_r; + margin: 15px; + } + } + #virtual-function-components { + border: 1px solid @engagement_status_color; + padding:0px; + margin-bottom: 20px; + + #virtual-function-header { + background-color: @engagement_status_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .edit-target-completion { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + #virtual-function-content { + .f-type._16_r; + margin: 15px; + } + } + + #target-lab-entry { + border: 1px solid @target_completion_color; + padding:0px; + margin-bottom: 20px; + + #target-lab-entry-header { + background-color: @target_completion_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .edit-target-completion { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + #target-lab-entry-content { + .f-type._16_r; + margin: 15px; + } + } + #validation-details { + border: 1px solid #4990E2; + padding:0px; + margin-bottom: 20px; + + #validation-details-header { + background-color: #4990E2; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .edit-target-completion { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + #validation-details-content { + .f-type._16_r; + margin: 15px; + } + } + .team-and-logs { + height: 100%; + padding-left: 20px; + padding-top: 20px; + margin-left: -1px; + border-left: dashed 1px @main_color_a; + + .line{ + margin-bottom: 10px; + } + + } + + .add-next-step-form { + .ice-wysiwyg { + height: 200px; + .wysiwyg-menu > div { + background-color: #f1f1f1; + padding: 2px; + } + } + } + + .vfc-main-section { + margin-top: 0px; + } +} diff --git a/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.directive.js b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.directive.js new file mode 100755 index 00000000..3676e51c --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.directive.js @@ -0,0 +1,308 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + angular + .module('ice.dashboard.get-started-modal') + .directive('getStartedModal', function () { + return { + restrict: 'AEC', + scope: {}, + link: function (scope, elm, attrs) { + scope.$emit('openGettingStartedWizardLoaded'); + }, + controller: ['$rootScope', '$scope', '$uibModal', 'toastService', '$log', + function ($rootScope, $scope, $uibModal, toastService, $log) { + + var gm = this; + gm.data = {}; + + gm.openModal = function () { + toastService.clearToast(); + var modalInstance = $uibModal.open({ + templateUrl: 'main/dashboard/get-started-modal/wizard/wizard-container.html', + controller: 'ModalCtrl', + controllerAs: 'wizard', + resolve: { + wizardData: function () { + return gm.wizardData; + } + }, + backdrop: 'static' + }); + }; + + $scope.$on('openGettingStartedWizard', function (event, args) { + + gm.wizardData = args; + gm.openModal(); + }); + }], + controllerAs: 'gm' + }; + }) + .controller('ModalCtrl', ['$rootScope', '$scope', '$uibModalInstance', 'vfService', 'usersService', 'localStorageService', 'wizardData', 'toastService', '$log', '$i18next', + function ($rootScope, $scope, $uibModalInstance, vfService, usersService, localStorageService, wizardData, toastService, $log, $i18next) { + + var wizard = this; + wizard.steps = []; + wizard.data = {}; + wizard.user = wizardData.user; + wizard.is_service_provider_internal = wizardData.is_service_provider_internal; + wizard.eng_uuid = wizardData.eng_uuid; + wizard.requiredStep = wizardData.requiredStep; + + var serviceProviderName = $i18next.t('serviceProvider.name'); + + var availableSteps = { + addVF: {name: 'addVF', title: 'Add a VF'}, + addSponsor: { + name: 'addContact', + title: 'Add ' + serviceProviderName +' Sponsor', + mode: 'sponsor', + submitButton: 'Add ' + serviceProviderName + ' Sponsor' + }, + addVendor: { + name: 'addContact', + title: 'Add Vendor Contact', + mode: 'vendor', + submitButton: 'Add Vendor Cotact', + }, + inviteMembers: {name: 'inviteMembers', title: 'Invite Team Members'}, + addSSH: {name: 'addSSH', title: 'Add SSH Key'} + }; + + wizard.setStep = function (step) { + wizard.currentStep = step + wizard.title = step.title; + step.completed = true; + }; + + function initWizard() { + + $rootScope.ice.loader.show = true; + + if (wizardData.showActivationMessage) { + toastService.setToast('You have successfully activated your account!', 'success', {displayFor: 'modal'}); + } + + wizard.stepIndex = 0; + + if (wizard.requiredStep) { + wizard.steps.push(availableSteps[wizard.requiredStep]); + wizard.setStep(wizard.steps[wizard.stepIndex]); + $rootScope.ice.loader.show = false; + return; + } + + if (!wizard.eng_uuid || wizard.eng_uuid === "") { + wizard.steps.push(availableSteps.addVF); + } + if (wizard.user.is_service_provider_contact === true && !wizard.is_service_provider_internal) { + wizard.steps.push(availableSteps.addVendor); + } else if (!wizard.user.is_service_provider_contact) { + wizard.steps.push(availableSteps.addSponsor); + } + + getCompanies(); + + wizard.steps.push(availableSteps.inviteMembers); + + var userData = usersService.getUserData() || {}; + var ssh_public_key = userData.ssh_public_key; + if ((wizard.user.ssh_public_key === "" || wizard.user.ssh_public_key === null) && + (ssh_public_key === "" || ssh_public_key === null)) { + wizard.steps.push(availableSteps.addSSH); + } + + $rootScope.ice.loader.show = false; + wizard.setStep(wizard.steps[wizard.stepIndex]); + } + + initWizard(); + + wizard.getCurrentStep = function () { + return wizard.currentStep.name; + }; + + wizard.nextStep = function () { + wizard.clearMessage(); + wizard.stepIndex++; + + if (wizard.stepIndex === (wizard.steps.length)) { + wizard.closeWizard(); + return; + } + + wizard.setStep(wizard.steps[wizard.stepIndex]); + }; + + wizard.closeWizard = function () { + wizard.clearMessage(); + $uibModalInstance.close(); + + }; + + wizard.clearMessage = function () { + toastService.clearToast(); + }; + + wizard.onAddContactSubmit = function () { + $rootScope.ice.loader.show = true; + wizard.data.addContact.eng_uuid = wizard.eng_uuid; + + if (wizard.user.is_main_vendor_contact === true && !wizard.is_service_provider_internal) { + wizard.data.addContact.company = wizard.data.addContact.company; + } else if (!wizard.user.is_main_vendor_contact) { + wizard.data.addContact.company = wizard.data.attCompanyUuid; + } + + usersService.addVendorContact(wizard.data.addContact) + .then(function (response) { + if (response.status === 200) { + $rootScope.ice.loader.show = false; + wizard.nextStep(); + } + }, function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $log.error(error.message); + $rootScope.ice.loader.show = false; + }) + .catch(function (error) { + wizard.Msg = error.status + " : " + error.statusText; + wizard.bgColor = "#FFEBEB"; // RED #FFEBEB green DFF0D9 + $log.error(error); + $rootScope.ice.loader.show = false; + }); + }; + + wizard.onInviteSubmit = function () { + $rootScope.ice.loader.show = true; + var is_service_provider_internal; + var jsonInviteMembers = []; + angular.forEach(wizard.inviteMembers.choices, function (value, key) { + wizard.item = []; + var jsonItem = new Object(); + jsonItem.email = value.email; + jsonItem.eng_uuid = wizard.eng_uuid; + jsonInviteMembers.push(jsonItem); + }); + + vfService.inviteMembers(JSON.stringify(jsonInviteMembers)) + .then(function (response) { + if (response.status === 200) { + wizard.nextStep(); + } + $rootScope.ice.loader.show = false; + }) + .catch(function (error) { + toastService.setToast(error.message.detail, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error.message); + }); + }; + + wizard.inviteMembers = { + choices: [ + { + email: '', + eng_uuid: '' + }] + }; + + wizard.addNewChoice = function () { + var newItemNo = wizard.inviteMembers.choices.length + 1; + wizard.inviteMembers.choices.push({'id': newItemNo}); + }; + + wizard.removeChoice = function () { + var lastItem = wizard.inviteMembers.choices.length - 1; + wizard.inviteMembers.choices.splice(lastItem); + }; + + wizard.onAddSSHSubmit = function () { + $rootScope.ice.loader.show = true; + usersService.setSSHKey(wizard.user.uuid, wizard.data.addSSH) + .then(function (response) { + if (response.status === 200) { + usersService.getIceUser() + .then(function (response) { + if (response.status === 200 && response.data && response.data !== '') { + wizard.user = response.data; + $rootScope.ice.loader.show = false; + $scope.$emit('onUpdateEngagements'); + } + }); + wizard.nextStep(); + } + + }).catch(function (error) { + toastService.setToast(error.message.detail, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error.message.detail); + }); + }; + + $scope.$on('moveWizardNextStep', function (event, args) { + wizard.is_service_provider_internal = args.is_service_provider_internal; + wizard.eng_uuid = args.engagement.uuid; + wizard.nextStep(); + }); + + function getCompanies() { + vfService.getCompanies() + .then(function (response) { + if (response.status === 200) { + wizard.companies = response.data; + if(wizard.companies!=undefined){ + for(var i=0; i diff --git a/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.less b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.less new file mode 100755 index 00000000..81381198 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.less @@ -0,0 +1,47 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +.getting-started-wizard { + + ul.step-indication { + li { + display: inline; + } + } +} diff --git a/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.module.js b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.module.js new file mode 100755 index 00000000..6e54399a --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/get-started-modal/get-started-modal.module.js @@ -0,0 +1,48 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + + 'use strict'; + + angular + .module('ice.dashboard.get-started-modal', ['ngAnimate', 'ui.bootstrap', 'ice.activation.addVf']); + + +})(); diff --git a/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard-container.html b/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard-container.html new file mode 100755 index 00000000..97628a62 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard-container.html @@ -0,0 +1,192 @@ + + +
+ + + + + +
diff --git a/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard.less b/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard.less new file mode 100755 index 00000000..4398d975 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/get-started-modal/wizard/wizard.less @@ -0,0 +1,255 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.dev-button { + position: absolute; + top: 0; + left: 0; +} + +.reject_large { + .actions-sprite; + .actions-sprite.reject_large; + cursor: pointer; +} + +.modal-content { + .getting-started-wizard { + .modal-header { + display: flex; + flex-direction: row; + + h2, h3 { + display: inline-block; + flex-grow: 10; + } + } + + .modal-body { + .btn { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + } + } +} + +.getting-started-wizard { + + + + + + md-datepicker.btn.datepicker_btn { + .md-datepicker-input { + width: 100%; + text-align: center; + line-height: 32px; + } + } + #vf-name-title { + font-size: 16px; + } + #title-key-metadata{ + font-size: 16px; + position: relative; + top: 20px; + left: 30px; + background: white; + padding: 0 20px; + margin-top: -15px; + } + .fields_key_metadata{ + border:1px solid #ccc; + padding: 26px 10px; + + } + /* Override addVf pages styles */ + .container { + width: auto; + + .col-md-2 { width: 0; } + .col-md-8 { width: 100%; } + + .table-container-flex .flex-item { + padding: 5px 5px; + } + + .remove-button { + display: none; + } + } + + .table-container-flex { + + .flex-item:nth-child(1) { + padding-left: 0; + flex-grow: 33; + } + + .flex-item:nth-child(2) { + flex-grow: 33; + } + + .flex-item:nth-child(3) { + flex-grow: 33; + } + + } + + ul.step-indication { + list-style: none; + display: inline-block; + + li { + display: inline-block; + background-color: #DDDDDD; + width: 30px; + height: 30px; + margin-right: 10px; + padding: 6px 11px; + .m_14_m; + + &.selected { + .p_14_m; + background-color: #1370A3; + } + + &:last-child { + margin-right: 0; + } + } + } + + .addVendorContact-form { + padding: 20px 0 0 0; + + button { + margin-top: 10px; + } + } + + .inviteMembers-form { + padding: 20px 0 0 0; + + button { + margin-top: 10px; + } + + .add-button { + margin-top: 8px; + display: block; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } + } + + .remove-button { + vertical-align:middle; + .a_16_m; + cursor: pointer; + + .remove-icon { + display: inline-block; + vertical-align: text-top; + margin-right: 6px; + .sprite; + .sprite.delete-circle; + cursor: pointer; + } + } + + + .remove-button { + vertical-align:middle; + .a_16_m; + cursor: pointer; + + .reject-large { + display: inline-block; + vertical-align: text-top; + margin-right: 6px; + .sprite; + .sprite.delete-circle; + cursor: pointer; + } + } + + .input-wrapper { + margin-bottom: 10px; + } + + } + + .addVf-form { + padding: 0; + } + + .addSsh-form { + padding: 0; + + .form-group { + margin-top: 20px; + } + + button { + margin-top: 10px; + } + + textarea { + min-height: 80px; + } + } + +} diff --git a/d2ice.att.io/app/main/dashboard/main.module.js b/d2ice.att.io/app/main/dashboard/main.module.js new file mode 100755 index 00000000..01a34a84 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/main.module.js @@ -0,0 +1,107 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.dashboard.main', ['ice.dashboard.get-started-modal']) + .config(config); + + function config($stateProvider) { + + $stateProvider + .state('app.dashboard', { + abstract: true, + views: { + 'navigation@app': { + templateUrl: 'core/navigation/layouts/horizontal-navigation/navigation.html', + controller: 'NavigationController as vm' + } + }, + bodyClass: 'dashboard' + }). + state('app.dashboard.dashboard', { + url: '/dashboard/dashboard', + views: { + 'content@app': { + templateUrl: 'main/dashboard/dashboard/dashboard.html', + controller: 'DashboardMainController as vm' + }, + }, + params: {engagement_uuid: null,engagement:null,messagePass: null}, + bodyClass: 'dashboard' + }). + state('app.dashboard.overview', { + url: '/dashboard/overview', + views: { + 'content@app': { + templateUrl: 'main/dashboard/overview/overview.html', + controller: 'OverviewMainController as vm' + }, + }, + params: {engagement_uuid: null,engagement:null,messagePass: null}, + bodyClass: 'dashboard' + }). + state('app.dashboard.detailedview', { + url: '/dashboard/detailedview', + views: { + 'content@app': { + templateUrl: 'main/dashboard/detailed-view/detailed-view.html', + controller: 'detailedViewController as vm' + }, + }, + params: {engagement_uuid: null,engagement:null}, + bodyClass: 'dashboard' + }). + state('app.dashboard.checklist', { + url: '/dashboard/checklist', + views: { + 'content@app': { + templateUrl: 'main/dashboard/checklist/checklist.html', + controller: 'DashboardChecklistController as vm' + }, + }, + params: {engagement_uuid: null,sub_id:null,engagement:null}, + bodyClass: 'dashboard' + }); + + } + +})(); diff --git a/d2ice.att.io/app/main/dashboard/main/main.html b/d2ice.att.io/app/main/dashboard/main/main.html new file mode 100755 index 00000000..f768619e --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/main/main.html @@ -0,0 +1,172 @@ + +
+ + +
+
+ +

{{vm.name}}

+
+ GIT: {{vm.git_repo_url}} +
+ +
+ +
+
+
+
+

Next Steps

+ + Files + + States + + +
+
    +
  • +
    + +
    +
    + + {{step.last_updater && step.last_updater.full_name || step.creator.full_name}} +  {{step.last_update_type}}:  + + {{(step.last_update_time) | date2: 'EEEE MMMM doo yyyy'}} at {{(step.last_update_time) | date: 'hh:mm' : timeGapLocal }} {{ampm}} {{mom}} +
    +
    +
    +
    +
    + {{(step['due_date']) | date2: 'EEEE MMMM doo yyyy'}} + + +
      + +
    • +
    • +
    + Associated Files ({{step.files.length}}) + +
    +
    +
  • +
+
+
+ +
+

Current Status

+ + Last updated {{(vm.status.update_time) | date2: 'EEEE MMMM doo yyyy'}} at {{(vm.status.update_time) | date: 'hh:mm' : timeGapLocal }} {{ampm}} {{mom}} + by {{vm.status.creator.full_name}} + +

{{vm.status.description == undefined && 'No status update has been provided yet.' || vm.status.description }}

+
+ +
+

Team Members

+
    +
  • + +
  • +
+
+ +
+

Activity Log

+
    +
  • + +
  • +
+
+ +
+ +
+
diff --git a/d2ice.att.io/app/main/dashboard/overview/overview.controller.js b/d2ice.att.io/app/main/dashboard/overview/overview.controller.js new file mode 100755 index 00000000..19d9839f --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/overview/overview.controller.js @@ -0,0 +1,833 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { +//test + 'use strict'; + + angular + .module('ice.dashboard.overview',[]) + .controller('OverviewMainController', ["$scope","$rootScope", "_","$stateParams", "statusService", "stepsService", "vfService", "usersService", "iceConstants", "$uibModal", "cmsService", "toastService", "$state", "$log", overviewMainController]); + + function overviewMainController($scope,$rootScope,_, $stateParams, statusService, stepsService, vfService, usersService, iceConstants, $uibModal, cmsService, toastService, $state, $log) { + var vm = this; + + vm.sortableOptions = { + handle: ' .order-nextstep', + axis: 'y', + update: function(e, ui) { + stepsService.order_next_steps(vm.engagement.uuid, vm.steps) + .then(function (response) { + if (response.status === 200) { + $log.debug('updated'); + } + }) + .catch(function (error) { + $log.error(error); + }); + } + }; + + var init = function () { + cmsService.setAnnouncementToast(); + $rootScope.timeGapLocal = moment().format("z");// timeGap(); + $rootScope.ampm = moment().format('A'); + $rootScope.mom =moment().tz( moment.tz.guess()).format('z'); + + vm.engagement = $stateParams.engagement; + + if (vm.engagement != undefined) + { + vm.me = usersService.getUserData(); + vfService.getSingleEngagement(vm.me.uuid,vm.engagement.uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + + if (response.status === 200 && response.data && response.data !== '') { + vm.vf = response.data; + vm.is_service_provider_internal = vm.vf.is_service_provider_internal; + vm.name = vm.vf.name; + vm.manual_id = vm.vf.engagement.engagement_manual_id; + if(!vm.vf.git_repo_url || vm.vf.git_repo_url==-1){ + vm.git_repo_url = false; + } + else { + vm.git_repo_url = vm.vf.git_repo_url; + } + vm.storage_bucket_url = vm.manual_id + '_' + vm.name.toLowerCase(); + vm.team = vm.vf.engagement.engagement_team; + vm.me = usersService.getUserData(); + vm.stages = iceConstants.stages; + vm.stage = vm.vf.engagement.engagement_stage; + vm.stage_num = 0; + vm.set_stage_num(vm.stage); + vm.in_overview_page = true; + vm.uuid = vm.engagement.uuid; + vm.progress = vm.vf.engagement.progress; + vm.completion_date = vm.vf.engagement.target_completion_date; + vm.starred = false; + vm.isEngagmentLead = usersService.isUserInRole('el'); + vm.isEngagementEL = usersService.isEngagementEL(vm.team); + vm.isAdmin = usersService.isAdmin(vm.me); + vm.does_user_role_allow_action_array = [vm.isAdmin, vm.isEngagementEL]; + vm.unremoveable_users_from_eng_team_array = [vm.vf.engagement.reviewer.uuid, vm.vf.engagement.peer_reviewer.uuid, + vm.vf.engagement.creator.uuid] + if (vm.vf.engagement.contact_user != null) { + vm.unremoveable_users_from_eng_team_array.push(vm.vf.engagement.contact_user.uuid); + } + vm.states = iceConstants.states; + vm.states_select = serializeStates(iceConstants.states); + vm.selected_state_filter = getSelectedStatesByUserType(); + vm.steps = []; + vm.vf_name = vm.vf.name; + vm.vf.engagement.starred_engagement.forEach(function(user) { + if (vm.me.uuid == user.uuid) + vm.starred = true; + }); + vm.all_states = false; + vm.all_files = true; + initSteps(); + vm.initActivityLogs(); + vm.files = vm.vf.files; + vm.files_filter_options = []; + vm.files_filter_options = vm.files_filter_options.concat(vm.files); + vm.files_filter_options.push("Any file"); + vm.chosen_files_filter = ["Any file"]; + vm.show_step = true; + vm.status = false; + statusService.get(vm.uuid) + .then(function (response) { + if (response.status === 200) + { + vm.status = response.data; + } else + { + $log.error(response); + } + }) + .catch(function (error) { + vm.status = false; + $log.error(error.message); + }); + vm.progress_needed_data = getEngagementProgressData(); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + + } + }; + + vm.set_stage_num = function(state) { + switch (state) { + case 'Intake': + vm.stage_num = 1; + break; + case 'Active': + vm.stage_num = 2; + break; + case 'Validated': + vm.stage_num = 3; + break; + case 'Completed': + vm.stage_num = 4; + break; + }; + }; + + vm.checkIfAdmin = function(user){ + return usersService.isAdmin(user); + }; + + + vm.is_user_allowed = function(){ + if(_.includes(vm.does_user_role_allow_action_array, true) == true){ + return true; + } + else { + return false; + } + } + + + vm.is_able_to_delete = function(requested_user){ + if(vm.is_user_allowed() && !_.includes(vm.unremoveable_users_from_eng_team_array, requested_user.uuid) + && !vm.checkIfAdmin(requested_user)) { + return true; + } + else { + return false; + } + }; + + + vm.remove_user_from_eng = function(requested_user){ + if(vm.is_able_to_delete(requested_user)) { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/general-prompt-modal/general-prompt-modal.html', + controller: 'generalPromptModalController', + controllerAs: 'vm', + resolve: { + modalDetails: function () { + return { + "upper_headline": 'Remove user from engagement team: ', + "upper_headline_value": requested_user.full_name, + "headline": 'Are you sure you would like to remove the user out of the team members?', + "is_message":false, + "message": '', + "approve": 'Yes', + "cancelText": 'No', + "is_close_modal_button":true + }; + } + } + }); + //in order to close the ui-popover before opening the confirmation modal. + angular.element('body').click(); + + modalInstance.result.then(function (approve_deletion) { + if(approve_deletion) { + var data = {'eng_uuid': vm.vf.engagement.uuid, 'user_uuid': requested_user.uuid} + vfService.remove_user_from_eng(data).then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 204) { + $rootScope.$broadcast('onUpdateEngagements',{select : {uuid:vm.engagement.uuid,page_type:'overview',sub_id:undefined}}); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + }); + } + else { + toastService.setToast('Action is not allowed.', 'danger'); + $rootScope.ice.loader.show = false; + return; + } + }; + + + $scope.is_match_both_filters = function () { + return function (step) { + + var result = false; + + if(vm.all_files && vm.all_states) { + result = true; + } + else if (vm.all_states && vm.is_contain_files(step)){ + result = true; + } + else if (vm.all_files && vm.is_same_state(step.state)){ + result = true; + } + else if (vm.is_contain_files(step) && vm.is_same_state(step.state)){ + result = true; + } + + if (result) { + return step; + } + return false; + } + } + + vm.is_all_files = function() { + vm.all_files = vm.chosen_files_filter.indexOf("Any file") !== -1; + } + + vm.is_contain_files = function(step) { + if (step.files) { + for (var i = 0; i < step.files.length; i++) { + if (vm.chosen_files_filter.indexOf(step.files[i]) !== -1) { + return true; + } + } + } + + return false; + }; + + vm.is_same_state = function(step_state){ + return vm.selected_state_filter.indexOf(step_state) !== -1; + }; + + vm.update_next_steps_choice = function(){ + if(vm.selected_state_filter.indexOf("All") !== -1){ + vm.all_states = true; + } + else { + vm.all_states = false; + } + }; + + vm.editStatus = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/status/status.html', + controller: 'StatusModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + + engagement_uuid: function () { + return vm.engagement.uuid; + }, + action: function () { + return 'edit'; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + if (data) { + vm.status = data; + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + vm.addStatus = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/status/status.html', + controller: 'StatusModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + + engagement_uuid: function () { + return vm.engagement.uuid; + }, + action: function () { + return 'add'; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + if (data) { + vm.status = data; + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + vm.deleteStep = function(step_uuid){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/general-prompt-modal/general-prompt-modal.html', + controller: 'generalPromptModalController', + controllerAs: 'vm', + resolve: { + modalDetails: function () { + return { + "headline": 'Delete Step', + "is_message":true, + "message": 'Are you sure you want to delete this step?', + "approve": 'Delete Step', + "is_close_modal_button":true + }; + } + } + }); + + modalInstance.result.then(function (deletionApproved) { + if(deletionApproved) { + stepsService.delete(step_uuid) + .then(function (response) { + if (response.status === 204) { + initSteps(); + initActivityLogs(); + } + }) + .catch(function (error) { + $log.error(error); + }); + } + }); + }; + + // next steps modal + vm.editStep = function (nextstep) { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/next-steps/next-steps.html', + controller: 'NextStepsModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + + engagement_team: function () { + return vm.team; + }, + title: function () { + return vm.engagement.name; + }, + associated_files: function () { + return vm.files; + }, + engagement_uuid: function () { + return vm.engagement.uuid; + }, + checklist: function () { + return undefined; + }, + nextstep: function () { + return nextstep; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + if (data) { + initSteps(); + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + vm.addStep = function () { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/next-steps/next-steps.html', + controller: 'NextStepsModalController', + controllerAs: 'vm', + size: 'lg', + resolve: { + engagement_team: function () { + return vm.team; + }, + title: function () { + return vm.engagement.name; + }, + associated_files: function () { + return vm.files; + }, + engagement_uuid: function () { + return vm.engagement.uuid; + }, + checklist: function () { + return undefined; + }, + nextstep: function () { + return undefined; + } + } + }); + + // Update the progress after modal closed. + modalInstance.result.then(function (data) { + if (data) { + data.forEach(function (step) { + step['creator'] = vm.me; + vm.steps.push(step); + }); + initSteps(); + } + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + $rootScope.$on('onUpdateNextSteps', function (event, args) { + if(args.eng_uuid && args.stage){ + vm.uuid = args.eng_uuid; + vm.stage = args.stage; + } + else{ + $log.error("onUpdateNextStep expecting args"); + return; + } + initSteps(); + }); + + vm.starEngagement = function () { + + vfService.putStarredEngagements(vm.engagement.uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200 && response.data && response.data !== '') { + if (vm.starred == true) + vm.starred = false + else + vm.starred = true + $rootScope.$broadcast('onUpdateEngagements',{select : {uuid:vm.engagement.uuid,page_type:'overview',sub_id:undefined}}); + + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + + vm.updateStep = function (stepUuid, stepState) { + var data = {"state":stepState}; + stepsService.update(stepUuid, data) + .then(function (response) { + if (response.status === 200) { + var step = getStepByUuid(stepUuid); + if (step){ + initSteps(); + vm.initActivityLogs(); + } + } + }) + .catch(function (error) { + $log.error(error); + }); + }; + + vm.toggleCompleted = function (stepUuid) { + var step = getStepByUuid(stepUuid); + if (step){ + if(step.state == vm.states.incomplete){ + vm.updateStep(stepUuid, iceConstants.states.completed); + }else if(step.state == vm.states.completed){ + vm.updateStep(stepUuid, iceConstants.states.incomplete); + } + + } + }; + + vm.updateProgress = function(data) { + if (data && data.progress){ + vm.progress = data.progress; + } else if (data && data.target_date){ + vm.completion_date = data.target_date; + vm.target_completion_date = data.target_date; + } + }; + + vm.addPeople = function () { + + var args = { + user: vm.me, + eng_uuid: vm.engagement.uuid, + is_service_provider_internal: vm.is_service_provider_internal, + requiredStep: 'inviteMembers' + }; + + $rootScope.$broadcast('openGettingStartedWizard', args); + }; + + var initSteps = function() { + $rootScope.ice.loader.show = true; + stepsService.get(vm.uuid, vm.stage) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.steps = []; + response.data.forEach(function (step) { + vm.steps.push(step); + }); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.initActivityLogs = function() { + $rootScope.ice.loader.show = true; + vfService.getActivities(vm.uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.activities = response.data; + + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + var getStepByUuid = function(stepUuid) { + var foundStep; + if (vm.steps) { + vm.steps.forEach(function (step) { + if (step.uuid === stepUuid) { + foundStep = step; + } + }); + } + return foundStep; + }; + + var serializeStates = function(states) { + var result = [] + for(var key in states) { + result.push(states[key]) + } + + return result; + }; + + var getSelectedStatesByUserType = function() { + var result = []; + +// if(vm.isEngagementEL || vm.isAdmin) { +// result.push("All","Completed","Incomplete"); +// } else { //For normal users: + result.push("Incomplete") +// } + + return result; + }; + + var getEngagementProgressData = function() { + var result = { + "enable_edit": ((vm.isEngagementEL || vm.isAdmin) && vm.in_overview_page), + "completion_date":vm.vf.engagement.target_completion_date, + "ecomp_release": vm.vf.ecomp_release.name, + "vnf_version": vm.vf.version, + "aic_version":vm.vf.deployment_target.version, + "aic_instantiation_time":vm.vf.engagement.aic_instantiation_time, + "asdc_onboarding_time":vm.vf.engagement.asdc_onboarding_time, + "heat_validated_time":vm.vf.engagement.heat_validated_time, + "image_scan_time":vm.vf.engagement.image_scan_time, + "engagement_uuid": vm.uuid, manual_id: vm.manual_id + }; + + return result; + }; + + vm.archiveEngagement = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/archive-engagement-modal/archive-engagement-modal.html', + controller: 'archiveEngagementModalController', + controllerAs: 'vm', + resolve: { + engagementDetails: function () { + return { + "manual_id": vm.manual_id, + "name": vm.name, + "engagement": vm.engagement + }; + } + } + }); + + modalInstance.result.then(function (archiveReason) { + if(archiveReason && vm.engagement && vm.engagement.uuid) { + vfService.archiveEngagement(vm.engagement.uuid, archiveReason) + .then(function() { + $state.go('app.dashboard.dashboard'); + toastService.setToast("Engagement '" + vm.engagement.name + "' archived successfully.", 'success'); + }) + .catch (function(error) { + toastService.setToast("Server failed archiving engagement.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } else { + toastService.setToast("No reason was supplied, therefor engagement cannot be archived.", 'danger'); + } + }); + }; + + vm.changeReviewer = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/select-el-modal/select-el-modal.html', + controller: 'selectELModalController', + controllerAs: 'vm', + resolve: { + // We are not allow the reviewer and peer reviewer to be the same: + excludeUuids: function () { + return [vm.engagement.peer_reviewer_uuid]; + }, + selectedOption: function() { + return vm.engagement.reviewer_uuid; + } + } + }); + + modalInstance.result.then(function (userUuid) { + if(vm.engagement && vm.engagement.uuid) { + + if (userUuid == vm.engagement.peer_reviewer_uuid) { + vfService.switchEngagementReviewers(vm.engagement.uuid, userUuid, vm.engagement.reviewer_uuid) + .then(function (response) { + vm.engagement.reviewer_uuid = response.data.reviewer; + vm.engagement.peer_reviewer_uuid = response.data.peerreviewer; + toastService.setToast("Reviewer and peer reviewer updated successfully.", 'success'); + }) + .catch(function (error) { + toastService.setToast("Server failed to update engagement reviewers.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } else { + vfService.updateEngagementReviewer(vm.engagement.uuid, userUuid) + .then(function(response){ + _.remove(vm.team, function(user) {return user.uuid === vm.engagement.reviewer_uuid;}); + vm.team.push(response.data); + vm.engagement.reviewer_uuid = response.data.uuid; + toastService.setToast("Reviewer updated successfully.", 'success'); + }) + .catch(function(error) { + toastService.setToast("Server failed to update engagement reviewer.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }} else { + toastService.setToast("Problem occurred while updating reviewer - missing engagement uuid.", 'danger'); + } + }) + }; + + vm.changePeerReviewer = function() { + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/select-el-modal/select-el-modal.html', + controller: 'selectELModalController', + controllerAs: 'vm', + resolve: { + // We are not allow the reviewer and peer reviewer to be the same: + excludeUuids: function () { + return [vm.engagement.reviewer_uuid]; + }, + selectedOption: function() { + return vm.engagement.peer_reviewer_uuid; + } + } + }); + + modalInstance.result.then(function (userUuid) { + if(vm.engagement && vm.engagement.uuid) { + + if (userUuid == vm.engagement.reviewer_uuid) { + vfService.switchEngagementReviewers(vm.engagement.uuid, vm.engagement.peer_reviewer_uuid, userUuid) + .then(function (response) { + vm.engagement.reviewer_uuid = response.data.reviewer; + vm.engagement.peer_reviewer_uuid = response.data.peerreviewer; + toastService.setToast("Peer reviewer and reviewer updated successfully.", 'success'); + }) + .catch(function (error) { + toastService.setToast("Server failed to update engagement reviewers.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } else { + vfService.updateEngagementPeerReviewer(vm.engagement.uuid, userUuid) + .then(function(response) { + $log.debug("vm.team", vm.team); + _.remove(vm.team, function(user) {return user.uuid === vm.engagement.peer_reviewer_uuid;}); + vm.team.push(response.data); + vm.engagement.peer_reviewer_uuid = response.data.uuid; + toastService.setToast("Peer reviewer updated successfully.", 'success'); + }) + .catch(function(error) { + toastService.setToast("Server failed to update engagement peer reviewer.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }} else { + toastService.setToast("Problem occurred while updating peer reviewer - missing engagement uuid.", 'danger'); + } + }) + }; + + vm.updateEngagementStatus = function() { + vm.vf.engagement.progress = parseInt(vm.progress); + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/update-engagement-status-modal/update-engagement-status-modal.html', + controller: 'updateEngagementStatusModalController', + controllerAs: 'vm', + resolve: { + engagement: function () { + // We will deliver a copy of the engagement so if the user hit 'Cancel' we won't change the original: + return angular.copy(vm.vf.engagement); + } + } + }); + + modalInstance.result.then(function (result) { + vfService.updateEngagement(result.engagement, result.status) + .then(function(response) { + vm.vf.engagement = result.engagement; + vm.progress = vm.vf.engagement.progress; + vm.progress_needed_data = getEngagementProgressData(); + vm.status = response.data; + toastService.setToast("Engagement status updated successfully.", 'success'); + }) + .catch(function(error){ + toastService.setToast("Server failed to update engagement status.", 'danger'); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }) + }; + + vm.changeTargetCompletion = function(){ + var modalInstance = $uibModal.open({ + templateUrl: 'main/modals/change-date/change-date.html', + controller: 'ChangeDateModalController', + controllerAs: 'vm', + resolve: { + completionDate: function () { + return vm.vf.engagement.target_completion_date; + }, + engagementUuid: function () { + return vm.engagement.uuid; + } + } + }); + + modalInstance.result.then(function (data) { + if (!data){ + return; + } + vm.completion_date = data.target_date || vm.vf.engagement.target_completion_date; + vm.vf.engagement.target_completion_date = vm.completion_date; + }, function () { + $log.debug('Modal dismissed at: ' + new Date()); + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/dashboard/overview/overview.html b/d2ice.att.io/app/main/dashboard/overview/overview.html new file mode 100755 index 00000000..d1b3fc40 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/overview/overview.html @@ -0,0 +1,212 @@ + +
+ +
+ + +
+
+ +

+ {{vm.manual_id}}: {{vm.name}} +

+ + + +
+
+ GIT: {{vm.git_repo_url}} + + STORAGE BUCKET: {{vm.storage_bucket_url}} +
+
+ +
+ + +
+ +
+
+
+

Next Steps

+ + Files + + States + + +
+
    +
  • + +
    + +
    +
    + + + {{step.engagement ? (step.last_updater && step.last_updater.full_name || step.creator.full_name) : "System Next Step"}} +  {{step.last_update_type}}:  + + {{(step.last_update_time) | date2: 'EEEE MMMM doo yyyy'}} at {{(step.last_update_time) | date: 'hh:mm' : timeGapLocal }} {{ampm}} {{mom}} +
    +
    +
    +
    +
    + {{(step['due_date']) | date2: 'EEEE MMMM doo yyyy'}} +
      +
    • +
    • +
    + Associated Files + +
    +
    +
  • +

    No next steps matching filtered results.

    +
+
+
+
+
+ Target Completion + +
+
+

{{vm.completion_date | date:'shortDate'}}

+
+
+
+
+ Current Status + +
+
+ +
+
+
+
+ Team Members + +
+ +
+ +
+
Activity Log
+
    +
  • + +
  • +
+
+
+
+
diff --git a/d2ice.att.io/app/main/dashboard/overview/overview.less b/d2ice.att.io/app/main/dashboard/overview/overview.less new file mode 100755 index 00000000..48f76a47 --- /dev/null +++ b/d2ice.att.io/app/main/dashboard/overview/overview.less @@ -0,0 +1,575 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.dashboard { + + .remove-user-from-eng { + .x_16_r; + float: right; + cursor: pointer; + .remove-icon { + .sprite; + .sprite.red-delete; + display: inline-block; + margin-left: 8px; + position: relative; + top: 3px; + } + } + + .popover-title-name { + .a_18_m; + } + + .popover-title-company { + .a_18_r; + } + + .popover-role-title { + .n_16_i; + } + + .popover-details { + .popover-details-topic { + .m_16_m; + } + .popover-details-detail { + word-wrap: break-word; + + .m_16_r; + } + } + + .content-container #content .main-wrapper { + height: 100%; + overflow-y: auto; + overflow-x: hidden; + padding: 10px ; + } + + .no-display-text{ + .a_36_m; + } + + .no-display{ + display: none; + } + + .overview { + #engagement-title { + color: @toolbar_background_color; + } + .manual-id { + .m_36_m; + color: @toolbar_background_color; + } + + .filter-wrapper { + text-align: right; + padding:0px; + span { + padding: 0px; + margin-left: 5px; + + } + .form-control-main-view{ + margin-left: 5px; + display: inline; + padding: 6px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + } + } + + .state-filter { + button { + padding: 0px 5px 0px 8px; + margin-bottom: 1px; + } + + span { + right: 6px !important; + top: 9px !important; + } + + a { + font-size: 14px; + } + } + + .steps-progress-wrapper { + margin-top: 10px; + } + + h1 { + display: inline-block; + .a_36; + margin: 0 0 30px 0; + } + + h2 { + display: inline-block; + margin: 0 0 10px 0; + .a_24_m; + position: relative; + .add-people, + .add-step { + display: inline-block; + margin-left: 8px; + cursor: pointer; + position: relative; + top: 2px; + } + } + + .main-section { + margin-top: 30px; + } + + .steps-header { + background-color: @toolbar_background_color; + color: @main_color_p; + padding: 10px 0px 0px 0px; + margin: 0px 0px 0px -5px; + + h2 { + font-size: 20px; + color: @main_color_p; + } + + .steps-filter { + display: inline-block; + float: right; + .a_16_m; + .todo { + .sprite; + .sprite.todo; + display: inline-block; + cursor: pointer; + } + .completed { + .sprite; + .sprite.pending; + display: inline-block; + cursor: pointer; + } + .confirmed { + .sprite; + .sprite.approved; + display: inline-block; + cursor: pointer; + } + } + } + + #engagement-target-completion { + border: 1px solid @target_completion_color; + padding:0px; + margin-bottom: 20px; + + #target-completion-header { + background-color: @target_completion_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .edit-target-completion { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + .target-completion-content { + .f-type._16_r; + margin: 15px; + } + } + + #engagement-status { + border: 1px solid @engagement_status_color; + padding:0px; + margin-bottom: 20px; + + #engagement-status-header { + background-color: @engagement_status_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .add-engagement-status { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + .engagement-status-content { + .f-type._16_r; + margin: 15px; + + #status-update-details { + display:block; + .m_12_r; + } + + #status-description { + margin: 3px 0px 0px 0px; + .m_16_r; + } + + .edit-engagement-status { + font-size: 21px; + padding-left: 6px; + cursor:pointer; + color: @main_color_m; + } + } + } + + #engagement-team { + border: 1px solid @engagement_team_color; + padding:0px; + margin-bottom: 20px; + + #engagement-team-header { + background-color: @engagement_team_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + + .add-team-member { + font-size: 21px; + vertical-align: middle; + padding-left: 6px; + cursor:pointer; + } + } + + .engagement-team-content { + .f-type._16_r; + margin: 15px; + + ul.team-avatars { + li.team-member-avatar { + font-size: 40px; + cursor:pointer; + color: @engagement_team_color; + } + + li { + list-style: none; + display: inline-block; + margin-right: 10px; + } + } + } + } + + #star-engagement-action { + display: inline-block; + cursor:pointer; + position: relative; + bottom: 3px; + margin-right: 5px; + } + + #star-engagement-action.not_starred{ + .sprite.starred; + } + + #star-engagement-action.is_starred { + .sprite.starred-selected; + } + + #star-engagement-action.not_starred:hover{ + .sprite.starred-selected; + } + + #star-engagement-action.is_starred:hover { + .sprite.starred; + } + + .steps { + padding-bottom: 140px; + padding-right: 20px; + padding-left: 20px; + + ul { + li.step { + border-bottom: dashed 1px @main_color_n; + .step-wrapper { + border-left: 2px solid transparent; + margin: 7px 0px 7px 1px; + &:hover { + border-left: 2px solid @main_color_a; + background-color: #DEF3FF; + + .description { + .step-state { + &.incomplete { + color: @main_color_d; + opacity: 0.7; + } + } + } + } + } + .next-step-actions { + display:none; + height: 100%; + width: 20px; + position: relative; + padding-top: 10px; + float: left; + left: -18px; + margin-right: -20px; + + > span { + margin-bottom: 3px; + cursor: pointer; + display:block; + } + .order-nextstep { + color: @main_color_o; + cursor:pointer; + } + .edit-next-step { + cursor:pointer; + color: @main_color_o; + } + .moveto-confirmed { + .actions-sprite; + .actions-sprite.approve_large; + + } + .moveto-todo { + .actions-sprite; + .actions-sprite.reject_large; + } + .moveto-delete { + cursor:pointer; + color: @main_color_o; + } + + } + &:hover { + .next-step-actions { + display:block; + } + .details { + .actions { + span { + visibility: visible; + } + } + } + } + + div.completed { + opacity: 0.7; + } + div.confirmed { + opacity: 0.7; + } + + .details { + text-align: right; + .next-step-due-date { + color: @main_color_m; + font-weight: bold; + + .icon { + display: inline-block; + margin-right: 5px; + position: relative; + } + } + + .associated-files { + color: @main_color_m; + font-weight: bold; + cursor: pointer; + } + + ul.next-step-team-mates { + li { + list-style: none; + display: inline-block; + font-size: 27px; + padding-left: 5px; + color: @engagement_team_color; + + &.me { + color: @main_color_a; + } + } + + } + + } + list-style: none; + position: relative; + + .description { + .m_16_r; + + padding:5px; + + input { + position: absolute; + top: 10px; + left: 0; + margin-right: 20px; + } + + .step-text { + margin-left: 35px; + } + .last-action-details { + .m_12_r; + .name { + font-weight: bold; + .m_12_m; + + } + } + .step-state { + position: absolute; + top: 25px; + font-size: 25px; + + &.incomplete { + color: @main_color_o; + display: inline-block; + } + &.completed { + color: @main_color_d; + display: inline-block; + } + } + } + } + } + } + + .team-and-logs { + border-left: dashed 1px @main_color_a; + padding-left: 20px; + padding-right: 20px; + + .activity-log { + + border: 1px solid @engagement_team_color; + padding:0px; + margin-bottom: 20px; + + #activity-log-header { + background-color: @engagement_team_color; + .p_18_m; + padding: 5px 5px 0; + line-height: 35px; + } + ul.activity-log-details { + margin:15px; + li { + list-style: none; + position: relative; + margin: 0 0 10px; + + } + } + } + + } + + .admin-actions-dropdown { + .sprite.admin-dropdown; + color: @main_color_a; + font-size: 20px; + vertical-align: 4px; + margin-left: 5px; + cursor: pointer; + display: inline-block; + } + } + + .add-next-step-form { + .ice-wysiwyg { + height: 200px; + .wysiwyg-menu > div { + background-color: #f1f1f1; + padding: 2px; + } + } + } + + .git-repo-url{ + text-align: left; + .m_16_m; + } + + .storage-bucket-url{ + text-align: left; + .m_16_m; + } + + .line-separator { + border-bottom: solid thin; + margin-top: 5px; + margin-bottom: 7px; + align-items: left; + } +} + +.intl-tel-input { + width: 100%; +} + +.iti-flag { + background-image: url(images/flags.png); +} diff --git a/d2ice.att.io/app/main/documentation/documentation.controller.js b/d2ice.att.io/app/main/documentation/documentation.controller.js new file mode 100755 index 00000000..6e3ebb27 --- /dev/null +++ b/d2ice.att.io/app/main/documentation/documentation.controller.js @@ -0,0 +1,74 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.documentation') + .controller('documentationController', ["cmsService", "$stateParams", "$log", documentationController]); + + function documentationController(cmsService, $stateParams, $log) { + var vm = this; + + var init = function() + { + loadPageData(); + }; + + function loadPageData() { + if($stateParams.page_id) { + cmsService.getPage($stateParams.page_id) + .then(function(response) { + if(response && response.data) { + vm.pageId = $stateParams.page_id; + vm.pageTitle = response.data["title"]; + vm.pageContent = response.data["content"]; + vm.publishDate = response.data["publish_date"]; + } + }) + .catch(function(error) { + $log.error(error); + }); + } + } + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/documentation/documentation.html b/d2ice.att.io/app/main/documentation/documentation.html new file mode 100755 index 00000000..44b7c0d8 --- /dev/null +++ b/d2ice.att.io/app/main/documentation/documentation.html @@ -0,0 +1,47 @@ + + +
+
+

{{vm.pageTitle}}

+ Updated at {{vm.publishDate | date2: 'EEEE MMMM doo yyyy'}} +
+
+
+ diff --git a/d2ice.att.io/app/main/documentation/documentation.less b/d2ice.att.io/app/main/documentation/documentation.less new file mode 100755 index 00000000..7b7f188b --- /dev/null +++ b/d2ice.att.io/app/main/documentation/documentation.less @@ -0,0 +1,96 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.documentation-container { + .page-title { + .a_26_m; + margin:0px; + } + + .page-publish { + .f-type._14_m; + + bottom: 10px; + } + + .page-content{ + .f-type._16_r; + margin-top: 10px; + + ul { + padding-left: 30px; + } + + h1 { + font-weight: bold; + } + + h2 { + font-weight: bold; + } + + h3 { + font-weight: bold; + } + + table { + border-right: 1px solid @main_color_c; + border-left: 1px solid @main_color_c; + + tr { + border-bottom: 1px solid @main_color_c; + border-top: 1px solid @main_color_c; + border-collapse: collapse; + + td { + padding: 0 0 0 7px; + } + } + + thead { + background-color: @main_color_c; + color: @main_color_p; + font-weight: bold; + } + } + } +} + +#documentation-side-panel { + border-left: dashed 1px @main_color_a; +} diff --git a/d2ice.att.io/app/main/documentation/documentation.module.js b/d2ice.att.io/app/main/documentation/documentation.module.js new file mode 100755 index 00000000..fb944e0d --- /dev/null +++ b/d2ice.att.io/app/main/documentation/documentation.module.js @@ -0,0 +1,74 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.documentation') + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.documentation', { + views: { + 'navigation@app': { + templateUrl: 'core/navigation/layouts/documentation-navigation/navigation.html', + controller: 'documentationNavigationController as vm' + }, + 'sidebar@app': { + templateUrl: 'main/documentation/sidebar/documentation.sidebar.html' + } + }, + bodyClass: 'documentation', + params: {displaySidebar: true} + }) + .state('app.documentation.page', { + url: '/documentation', + views: { + 'content@app': { + templateUrl: 'main/documentation/documentation.html', + controller: 'documentationController as vm' + } + }, + bodyClass: 'documentation', + params: {displaySidebar: true, page_id: undefined} + }); + } +})(); diff --git a/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.html b/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.html new file mode 100755 index 00000000..c6381a7d --- /dev/null +++ b/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.html @@ -0,0 +1,41 @@ + + diff --git a/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.less b/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.less new file mode 100755 index 00000000..51694fe9 --- /dev/null +++ b/d2ice.att.io/app/main/documentation/sidebar/documentation.sidebar.less @@ -0,0 +1,61 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +#documentation-side-panel { + .tooltip-title { + font-size: 18px; + } + + #tooltip-description { + font-size: 16px; + } + + #news-and-announcements-header { + font-size: 18px; + } + + #news-and-announcements-list { + .news-and-announcements-details { + .news-and-announcements-details-header { + .news-and-announcements-details-title { + font-size: 16px; + } + } + } + } +} diff --git a/d2ice.att.io/app/main/errors/404.html b/d2ice.att.io/app/main/errors/404.html new file mode 100755 index 00000000..62309745 --- /dev/null +++ b/d2ice.att.io/app/main/errors/404.html @@ -0,0 +1,190 @@ + + + + + + Page Not Found :( + + + +
+

Not found :(

+

Sorry, but the page you were trying to view does not exist.

+

It looks like this was the result of either:

+
    +
  • a mistyped address
  • +
  • an out-of-date link
  • +
+ + +
+ + diff --git a/d2ice.att.io/app/main/main.controller.js b/d2ice.att.io/app/main/main.controller.js new file mode 100755 index 00000000..9c91aae9 --- /dev/null +++ b/d2ice.att.io/app/main/main.controller.js @@ -0,0 +1,60 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.main',[]) + .controller('MainController', MainController)//; + .config(function($mdDateLocaleProvider) { + $mdDateLocaleProvider.formatDate = function (date) { + return date ? moment(date).format('MMMM Do YYYY') : ''; + }; + + $mdDateLocaleProvider.parseDate = function (dateString) { + var m = moment(dateString, 'YYYY-MM-DD', true); + return m.isValid() ? m.toDate() : new Date(NaN); + }; + }); + + function MainController($scope, $rootScope) { + + } + +})(); \ No newline at end of file diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js new file mode 100755 index 00000000..3c1226cb --- /dev/null +++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.controller.js @@ -0,0 +1,66 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('archiveEngagementModalController', ['$uibModalInstance','engagementDetails',archiveEngagementModalController]); + + function archiveEngagementModalController($uibModalInstance, engagementDetails) { + + var vm = this; + var init = function () { + if(engagementDetails) { + vm.engagement = engagementDetails; + } + }; + + vm.closeModal = function () { + $uibModalInstance.dismiss(); + }; + + vm.archiveEngagement = function() { + $uibModalInstance.close(vm.reason); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html new file mode 100755 index 00000000..7d4b5b07 --- /dev/null +++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.html @@ -0,0 +1,56 @@ + +
+ + +
diff --git a/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less new file mode 100755 index 00000000..da2f8503 --- /dev/null +++ b/d2ice.att.io/app/main/modals/archive-engagement-modal/archive-engagement-modal.less @@ -0,0 +1,54 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.archive-engagement-modal { + padding: 0px 15px 0px 15px; + + .archive-engagement-title { + .a_24_m;; + } + + .archive-engagement-reason { + .m_16_r; + } + + .modal-body { + top: 10px; + } +} + diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js b/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js new file mode 100755 index 00000000..84e7fbc6 --- /dev/null +++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.controller.js @@ -0,0 +1,95 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('AuditLogModalController', ['$rootScope', '$uibModalInstance', 'checklistService', 'wizardData', + 'toastService', '$log', AuditLogModalController]); + + function AuditLogModalController($rootScope, $uibModalInstance, checklistService, wizardData, toastService, $log) { + var vm = this; + + var init = function() + { + var arr = []; + var i; + var region = moment().tz( moment.tz.guess()).format('z'); + var dt = ""; + vm.name = wizardData.name; + vm.checklistAuditLogs = wizardData.checklistAuditLogs; + vm.checklistAuditLogs.forEach(function (cl) + { + dt = moment(cl.create_time).local().format('YYYY-MM-DD hh:mm:ss A') + " " + region; + arr.push({"name":cl.creator.full_name,"dt":dt,"desc":cl.description}); + }); + vm.checklistAuditLogs = arr; + } + + init(); + + vm.submitForm = function () + { + var jsonPost = {"description":vm.description}; + checklistService.createAuditlogChecklist(wizardData.uuid, jsonPost) + .then(function (response) { + if (response.status === 200) + { + $uibModalInstance.close(response.data); + vm.closeModal(); + } + else + { + toastService.setToast(response.error, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $log.error(error.message); + }); + }; + + vm.closeModal = function(){ + toastService.clearToast(); + $uibModalInstance.close(); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.html b/d2ice.att.io/app/main/modals/audit-log/audit-log.html new file mode 100755 index 00000000..a4ad06f7 --- /dev/null +++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.html @@ -0,0 +1,76 @@ + + + + + + diff --git a/d2ice.att.io/app/main/modals/audit-log/audit-log.less b/d2ice.att.io/app/main/modals/audit-log/audit-log.less new file mode 100755 index 00000000..7ba728e6 --- /dev/null +++ b/d2ice.att.io/app/main/modals/audit-log/audit-log.less @@ -0,0 +1,49 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.auditlog { + + .audit-log-items { + border-bottom: 1px solid; + margin-bottom: 5px; + } + + .textarea-checklist-audit { + resize: none; + } +} diff --git a/d2ice.att.io/app/main/modals/change-date/change-date.controller.js b/d2ice.att.io/app/main/modals/change-date/change-date.controller.js new file mode 100755 index 00000000..35290c99 --- /dev/null +++ b/d2ice.att.io/app/main/modals/change-date/change-date.controller.js @@ -0,0 +1,75 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.modals') + .controller('ChangeDateModalController', ["$uibModalInstance", "completionDate", "engagementUuid", "vfService", "$rootScope", "toastService", changeDateModalController]); + + function changeDateModalController($uibModalInstance, completionDate, engagementUuid, vfService, $rootScope, toastService) { + + var vm = this; + //vm.completionDate = new Date(completionDate); + vm.completionDate = completionDate; + + vm.dateOptions = { + minDate: new Date(), + showWeeks: true + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.submitForm = function(){ + var postData={"target_date": moment(vm.completionDate).format("YYYY-MM-DD")}; + vfService.updateDaysLeft(engagementUuid, postData) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(postData); + } + }) + .catch(function (error) { + toastService.setToast(error.status + ': Error changing completion date!', 'danger'); + }); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/change-date/change-date.html b/d2ice.att.io/app/main/modals/change-date/change-date.html new file mode 100755 index 00000000..4d3e0b59 --- /dev/null +++ b/d2ice.att.io/app/main/modals/change-date/change-date.html @@ -0,0 +1,62 @@ + +
+ + + +
diff --git a/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js b/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js new file mode 100755 index 00000000..e28b2528 --- /dev/null +++ b/d2ice.att.io/app/main/modals/change-progress/change-progress.controller.js @@ -0,0 +1,71 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.modals',[]) + .controller('ChangeProgressModalController', ["$uibModalInstance", "progress", "engagementUuid", "vfService", + "$log", "toastService", ChangeProgressModalController]); + + function ChangeProgressModalController($uibModalInstance, progress, engagementUuid, vfService, $log, toastService) { + + var vm = this; + vm.progress = progress; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.submitForm = function(){ + var postData={"progress": vm.progress}; + vfService.updateProgress(engagementUuid, postData) + .then(function (response) { + if (response.status === 202) { + $uibModalInstance.close(postData); + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/change-progress/change-progress.html b/d2ice.att.io/app/main/modals/change-progress/change-progress.html new file mode 100755 index 00000000..adfb7e7a --- /dev/null +++ b/d2ice.att.io/app/main/modals/change-progress/change-progress.html @@ -0,0 +1,65 @@ + +
+ + + + +
diff --git a/d2ice.att.io/app/main/modals/checklist/checklist.controller.js b/d2ice.att.io/app/main/modals/checklist/checklist.controller.js new file mode 100755 index 00000000..4a20b53d --- /dev/null +++ b/d2ice.att.io/app/main/modals/checklist/checklist.controller.js @@ -0,0 +1,238 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('ChecklistModalController', ['toastService', '$rootScope', '$uibModalInstance', 'checklistService', + 'engagementUuid', 'modal_type', 'wizardData', '$log', ChecklistModalController]); + + function ChecklistModalController(toastService, $rootScope, $uibModalInstance, checklistService, engagementUuid, + modal_type, wizardData, $log) { + var vm = this; + vm.checkListAssociatedFiles = []; + vm.selectedCheckListAssociatedFiles = []; + vm.isDisabled = false; + + var init = function() { + switch(modal_type) { + case 'create': + vm.create = true; + vm.createUpadeTitle = "Create"; + vm.modalType = 'create'; + vm.modalTitle = "Create"; + checklistService.getDataForCreateChecklist(engagementUuid) + .then(function (response) { + if (response.status === 200) { + vm.checkListTemplatesLists = []; + vm.checkListTemplates = response.data.checkListTemplates; + angular.forEach(response.data.checkListAssociatedFiles, function (value, key) { + vm.checkListAssociatedFiles.push({File: value}); + }); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error.message); + }); + break; + case 'update': + vm.update = true; + vm.createUpadeTitle = "Update"; + vm.modalType = 'udpate'; + vm.modalTitle = "Update"; + vm.checklistUuid = wizardData.uuid; + vm.checkListName = wizardData.name; + checklistService.getDataForCreateChecklist(engagementUuid) + .then(function (response) { + if (response.status === 200) { + vm.checkListAssociatedFiles = [] + angular.forEach(response.data.checkListAssociatedFiles, function (value, key) { + vm.checkListAssociatedFiles.push({File: value}); + }); + $rootScope.ice.loader.show = false; + + vm.selectedCheckListAssociatedFiles =[] + + angular.forEach(wizardData.associatedFiles, function(val, key1) { + vm.selectedCheckListAssociatedFiles.push({File: val}); + }); + + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error.message); + }); + vm.selectedTemplateUuid = wizardData.selectedTemplateUuid; + vm.selectedTemplateName = wizardData.selectedTemplateName; + + break; + } + } + init(); + + vm.addFile = function () + { + var newItemNo = vm.selectedCheckListAssociatedFiles.length + 1; + vm.selectedCheckListAssociatedFiles.push({'id': newItemNo}); + }; + + vm.removeFile = function (index) + { + vm.selectedCheckListAssociatedFiles.splice(index,1); + }; + + vm.closeModal = function(){ + toastService.clearToast(); + $rootScope.$emit('onChecklistUpdate'); + $uibModalInstance.close(vm.checkListName); + $uibModalInstance.close(); + }; + + + vm.submitForm = function () + { + vm.isDisabled = true; + var checklist_files = []; + switch(modal_type){ + case 'create': + angular.forEach(vm.selectedCheckListAssociatedFiles, function(val, key1) { + checklist_files.push(val.File); + }); + var jsonPost = { + "checkListAssociatedFiles": checklist_files, + "checkListName": vm.checkListName, + "checkListTemplateUuid" : vm.selectedTemplateUuid + }; + + checklistService.createChecklist(engagementUuid, jsonPost) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.data); + $rootScope.ice.loader.show = false; + vm.closeModal(); + } + }) + .catch(function (error) { + toastService.setToast(error.message || 'Error creating check list.', 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + vm.isDisabled = false; + $log.error(error.message); + }); + break; + case 'update': + + var updated_file_list = []; + angular.forEach(vm.selectedCheckListAssociatedFiles, function(val, key1) { + updated_file_list.push(val.File); + }); + $log.debug("update", updated_file_list); + var jsonPut = { + "checklistUuid": vm.checklistUuid, + "checkListAssociatedFiles": updated_file_list, + "checkListName": vm.checkListName, + "checkListTemplateUuid" : vm.selectedTemplateUuid + }; + checklistService.putDataForChecklist(vm.checklistUuid, jsonPut) + .then(function (response) { + if (response.status === 200) { + $rootScope.$broadcast('onUpdateEngagements',{select:{uuid: engagementUuid, view_type : 'checklist', sub_id: vm.checklistUuid}}); + $rootScope.ice.loader.show = false; + + var response_data = {}; + response_data.checklist_name = vm.checkListName; + response_data.associated_files = updated_file_list; + var array1 = vm.checkListAssociatedFiles.sort(); + var array2 = updated_file_list.sort(); + + var is_same_files = (array1.length == array2.length) && array1.every(function(element, index) { + return element === array2[index]; + }); + // if file list changed reject checklist + if (!is_same_files && wizardData.state != 'pending') + { + var postData = {}; + postData["description"] = "Rejected due to file list change"; + postData["decline"] = "True"; + + checklistService.setState(vm.checklistUuid, postData) + .then(function (response) { + if (response.status === 200) { + $rootScope.$broadcast('onUpdateEngagements'); + } + else { + toastService.setToast(response.error, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + vm.isDisabled = false; + return; + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + vm.isDisabled = false; + return; + }); + } + + $uibModalInstance.close(response_data); + vm.closeModal(); + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error.message); + vm.isDisabled = false; + + }); + break; + default: + $log.debug('no submit action found'); + vm.isDisabled = false; + break; + } + } + } +})(); diff --git a/d2ice.att.io/app/main/modals/checklist/checklist.html b/d2ice.att.io/app/main/modals/checklist/checklist.html new file mode 100755 index 00000000..d308c9d2 --- /dev/null +++ b/d2ice.att.io/app/main/modals/checklist/checklist.html @@ -0,0 +1,107 @@ + + + + + + + diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js new file mode 100755 index 00000000..160b57cc --- /dev/null +++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.controller.js @@ -0,0 +1,105 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('stateDecisionModalController', ['$rootScope','$uibModalInstance', 'checklistService', + 'toastService', 'action', 'checklist', '$log', stateDecisionModalController]); + + function stateDecisionModalController($rootScope, $uibModalInstance, checklistService, toastService, action, + checklist, $log) { + + var vm = this; + + var init = function () { + vm.description = null; + vm.checklist_name = checklist.name; + vm.state = checklist.state; + vm.action = action; + vm.modalText = (vm.state == 'pending') ? "Are you sure you want to move the checklist state to Automation?": + "Please use the button below to either approve or reject the " + + "checklist.
You can also add a log entry comment."; + }; + + vm.submitForm = function(decision) { + var postData = {}; + if (vm.description != null) { + postData["description"] = vm.description; + } + else{ + postData["description"] = ''; + } + + if (decision === true) { + postData["decline"] = "False"; + } + else { + postData["decline"] = "True"; + } + + + + checklistService.setState(checklist.uuid, postData) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.data); + vm.closeModal(); + } + else { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + + }; + + vm.closeModal = function () { + $uibModalInstance.close(); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html new file mode 100755 index 00000000..4db81b1f --- /dev/null +++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html @@ -0,0 +1,58 @@ + + +
+ +
+ +
+ +
+
+ Inserted text should not include any special chars such as: \%_*." +
+ +
diff --git a/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less new file mode 100755 index 00000000..08bf14e9 --- /dev/null +++ b/d2ice.att.io/app/main/modals/checklist/state-approve-or-reject/state-approve-or-reject.less @@ -0,0 +1,173 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.modal-open .modal { + z-index: 30000 !important; +} + +#approve-or-reject-state { + + .modal-title { + .a_22_m; + } + + .decision-modal-body { + margin-bottom: 8px; + margin-top: 10px; + } + + .decision-comment { + .m_14_r;; + } + + .modal_buttons { + .custom-button { + position: relative; + width: 30%; + float: left; + display: inline-block; + } + .custom-space { + position: relative; + width: 5%; + float: left; + min-height: 1px; + } + } + + .state-title .bold { + .m_18_m; + } + .state-title { + .m_18_r; + } + .state-title-border { + border-bottom: dashed 1px; + border-color: @main_color_q; + margin-left: 0px; + } + + .comment-textarea { + resize: vertical; + } + + .btn-gradient-success { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41A02C; + *background-color: #41A02C; + background-image: -moz-linear-gradient(top, #A2E652, #41A02C); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C)); + background-image: -webkit-linear-gradient(top, #A2E652, #41A02C); + background-image: -o-linear-gradient(top, #A2E652, #41A02C); + background-image: linear-gradient(to bottom, #A2E652, #41A02C); + background-repeat: repeat-x; + border-color: #41A02C; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #41A02C; + *background-color: #003bb3; + } + + .btn-gradient-danger { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #AE0020; + *background-color: #AE0020; + background-image: -moz-linear-gradient(top, #F74658, #AE0020); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020)); + background-image: -webkit-linear-gradient(top, #F74658, #AE0020); + background-image: -o-linear-gradient(top, #F74658, #AE0020); + background-image: linear-gradient(to bottom, #F74658, #AE0020); + background-repeat: repeat-x; + border-color: #AE0020; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #AE0020; + *background-color: #003bb3; + } + + .btn-gradient-default { + font-weight: bold; + color: #B3B3B3; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #D0D0D0; + *background-color: #D0D0D0; + background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0)); + background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0); + background-repeat: repeat-x; + border-color: #D0D0D0; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + } + .btn-sample:hover, + .btn-sample:focus, + .btn-sample:active, + .btn-sample.active, + .btn-sample.disabled, + .btn-sample[disabled] { + color: #FFFFFF; + background-color: #D0D0D0; + *background-color: #003bb3; + } + +} diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js new file mode 100755 index 00000000..09773283 --- /dev/null +++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.controller.js @@ -0,0 +1,92 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('cmsPostModalController', ['$uibModalInstance', 'cmsService','post', '$log', cmsPostModalController]); + + function cmsPostModalController($uibModalInstance, cmsService, post, $log) { + + var vm = this; + var init = function () { + if(post) { + vm.post = post; + } else { + cmsService.getLastAnnouncementPost() + .then(function(response) { + if(response && response.data && response.data.length === 1) { + vm.post = response.data[0]; + } + }) + .catch(function(error) { + $log.error(error); + }); + } + + loadRecentPosts(); + }; + + vm.closeModal = function (bool) { + $uibModalInstance.close(bool); + }; + + vm.loadSelectedPostData = function(post) { + if(post) { + vm.post = post; + } + }; + + function loadRecentPosts() { + var limit = 5; + var fromLastDays = ""; + + cmsService.getPosts(limit, fromLastDays, ['Announcement', 'News']) + .then(function(response) { + vm.recentPosts = response.data; + }) + .catch(function(error) { + $log.error(error); + }); + } + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html new file mode 100755 index 00000000..cd51c5e3 --- /dev/null +++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.html @@ -0,0 +1,55 @@ + +
+ + +
+
+ Most recent news & announcements +
    +
  • + {{post.title}}Posted at {{post.publish_date | date2: 'EEEE MMMM doo yyyy'}} by {{post.user.username}} +
  • +
+
+
diff --git a/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less new file mode 100755 index 00000000..832ef012 --- /dev/null +++ b/d2ice.att.io/app/main/modals/cms-post-modal/cms-post-modal.less @@ -0,0 +1,106 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.toast-read-more-container { + padding: 0 20px; + word-wrap: break-word; + + .recent-cms-posts-container { + .line-separator { + border-bottom: solid 1px @main_color_m; + margin: 20px 0; + } + + .recent-cms-posts-title { + .a_16_m; + + } + + ul.recent-cms-posts { + margin-top: 3px; + + li { + .f-type._16_m; + list-style: none; + position: relative; + line-height: 28px; + cursor: pointer; + + .post-creation { + .f-type._12_r; + } + + &:before { + content: ''; + display: inline-block; + position: absolute; + top: 0; + } + } + + li.selected { + background-color: @func_color_r; + } + } + } +} + +.toast-read-more-title { + .a_26_m; + line-height: 26px; +} + +.toast-read-more-creation { + display: block; +} + +.toast-read-more-content { + .m_18_r; + line-height: 20px; + padding: 10px 20px 0; +} + +.modal-cms-post-read-more { + width: 70%; + margin: 0px auto; + height: 100%; + + .modal-content { + height: 100%; + } +} diff --git a/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js new file mode 100755 index 00000000..e14a9f88 --- /dev/null +++ b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.controller.js @@ -0,0 +1,100 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('detailedViewDtsitesModalController', ["$rootScope", "$uibModalInstance", "$stateParams", + "dtsiteService", "toastService", "vf_uuid", "$log", detailedViewDtsitesModalController]); + + function detailedViewDtsitesModalController($rootScope, $uibModalInstance, $stateParams, dtsiteService, toastService, + vf_uuid, $log) { + + var vm = this; + + var init = function () { + if($stateParams.engagement != undefined) { + vm.vf = $stateParams.engagement.vf; + } + getDTsites(); + + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.json = ''; + + vm.submitForm = function(){ + var postData={ + "name": vm.json, + "vf_uuid": vf_uuid + }; + + dtsiteService.add(postData) + .then(function (response) { + $uibModalInstance.close(response.status); + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + }; + + var getDTsites = function() { + $rootScope.ice.loader.show = true; + dtsiteService.get() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.dtsites = response.data; + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + init(); + } + +})(); diff --git a/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html new file mode 100755 index 00000000..901cd624 --- /dev/null +++ b/d2ice.att.io/app/main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html @@ -0,0 +1,62 @@ + +
+ + + + + +
diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js new file mode 100755 index 00000000..983d8d99 --- /dev/null +++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.controller.js @@ -0,0 +1,124 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + + 'use strict'; + + angular + .module('ice.modals') + .controller('detailedViewVFCModalController', ["$rootScope", "$uibModalInstance", "vfcService", "toastService", + "vf_uuid", "usersService", "$log", detailedViewVFCModalController]); + + function detailedViewVFCModalController($rootScope, $uibModalInstance, vfcService, toastService, vf_uuid, usersService, $log) { + + var vm = this; + + var init = function () { + vm.me = usersService.getUserData(); + + getVendors() + }; + + vm.vfcs = [{name:'',external_ref_id:'',company:''}]; + vm.companies = []; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.addNewChoice = function () { + var newItemNo = vm.vfcs.length + 1; + vm.vfcs.push({'id': newItemNo}); + }; + + vm.removeChoice = function (index) { + vm.vfcs.splice(index,1); + }; + + vm.submitForm = function(){ + var jsonAddVfc = []; + angular.forEach(vm.vfcs, function (value, key) { + vm.item = []; + var jsonItem = new Object(); + jsonItem.name = value.name; + jsonItem.external_ref_id = value.external_ref_id; + jsonItem.company = value.company; + jsonAddVfc.push(jsonItem); + }); + + var postData={ + "vfcs": jsonAddVfc, + "vf_uuid": vf_uuid, + "creator": vm.me, + }; + + vfcService.add(postData) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.status); + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + }; + + var getVendors = function() { + $rootScope.ice.loader.show = true; + vfcService.getCompanies() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.companies = response.data; + if(vm.companies.length === 0 ){ + console.warn("No vendors pulled, request was successfull") + } + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html new file mode 100755 index 00000000..7ac2097f --- /dev/null +++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.html @@ -0,0 +1,100 @@ + + + + + diff --git a/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less new file mode 100755 index 00000000..5ce9098d --- /dev/null +++ b/d2ice.att.io/app/main/modals/detailed-view/vfc/detailed-view-vfc-modal.less @@ -0,0 +1,68 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.vfc-remove-button { + width: 20px; + height: 40px; + float: right; + .a_16_m; + cursor: pointer; + margin: 14px 0 0 0; + + .remove-icon { + .sprite; + .sprite.delete-circle; + cursor: pointer; + display: block; + } +} + +.modal-add-vfc { + margin-top: 8px; + display: block; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } +} diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.controller.js b/d2ice.att.io/app/main/modals/feedback/feedback.controller.js new file mode 100755 index 00000000..acee617b --- /dev/null +++ b/d2ice.att.io/app/main/modals/feedback/feedback.controller.js @@ -0,0 +1,82 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('FeedbackModalController', ['$rootScope','$uibModalInstance', 'feedbackService', + 'action', 'toastService', '$log', FeedbackModalController]); + + function FeedbackModalController($rootScope, $uibModalInstance, feedbackService, action, toastService, $log) { + var vm = this; + + var init = function() { + vm.action = action; + vm.feedback_modal_description = ''; + }; + + init(); + + vm.submitForm = function () + { + var feedbackPostData = {"description":vm.feedback_modal_description}; + if (action == 'add') { + feedbackService.add(feedbackPostData) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.data); + toastService.setToast('Feedback was sent successfully.', 'success'); + } else { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + } + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.html b/d2ice.att.io/app/main/modals/feedback/feedback.html new file mode 100755 index 00000000..88912c84 --- /dev/null +++ b/d2ice.att.io/app/main/modals/feedback/feedback.html @@ -0,0 +1,57 @@ + + + + + diff --git a/d2ice.att.io/app/main/modals/feedback/feedback.less b/d2ice.att.io/app/main/modals/feedback/feedback.less new file mode 100755 index 00000000..5d7fd8b3 --- /dev/null +++ b/d2ice.att.io/app/main/modals/feedback/feedback.less @@ -0,0 +1,44 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.feedback-modal-body { + .feedback-modal-description { + border-color: @main_color_q; + margin-bottom:15px; + } +} diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js new file mode 100755 index 00000000..98fb2c14 --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.controller.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('GeneralLogModalController', ['$uibModalInstance', 'modalDetails', GeneralLogModalController]); + + function GeneralLogModalController($uibModalInstance, modalDetails) { + + var vm = this; + + var init = function() { + if(modalDetails) { + vm.headline = modalDetails.headline || 'General log modal'; + vm.body = modalDetails.body || 'There is no body'; + } + }; + + init(); + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html new file mode 100755 index 00000000..f87a8ac7 --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.html @@ -0,0 +1,45 @@ + +
+ + +
diff --git a/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less new file mode 100755 index 00000000..e48ed525 --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-log-modal/general-log-modal.less @@ -0,0 +1,72 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + + +.general-log-containter { + height: inherit; + padding: 0 20px 30px; + word-wrap: break-word; + + .general-log-subtitle { + padding-bottom: 10px; + } + + .general-log-body { + height: inherit; + overflow:scroll; + padding: 0px 20px 0; + .m_18_r; + line-height: 20px; + } +} + +.general-log-modal-title { + .a_26_m; + line-height: 26px; +} + +.modal-general-log-modal { + width: 70%; + margin: 0px auto; + height: 100%; + + .modal-content { + height: 100%; + } +} diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js new file mode 100755 index 00000000..f887a5ee --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.controller.js @@ -0,0 +1,74 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('generalPromptModalController', ['$uibModalInstance','modalDetails',generalPromptModalController]); + + function generalPromptModalController($uibModalInstance, modalDetails) { + + var vm = this; + var init = function () { + if(modalDetails) { + vm.upper_headline = modalDetails.upper_headline; + vm.upper_headline_value = modalDetails.upper_headline_value; + vm.headline = modalDetails.headline || 'D2ICE'; + vm.message = modalDetails.message || 'Are you sure?'; + vm.closeCallback = modalDetails.closeCallback; + vm.approveText = modalDetails.approve || 'Approve'; + vm.cancelText = modalDetails.cancel || 'Cancel'; + vm.is_close_modal_button = modalDetails.is_close_modal_button; + vm.is_message = modalDetails.is_message; + } + }; + + vm.closeModal = function (bool) { + if(vm.closeCallback) { + vm.closeCallback(bool); + } + + $uibModalInstance.close(bool); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html new file mode 100755 index 00000000..3bd31887 --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.html @@ -0,0 +1,52 @@ + + + diff --git a/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less new file mode 100755 index 00000000..d367cdaa --- /dev/null +++ b/d2ice.att.io/app/main/modals/general-prompt-modal/general-prompt-modal.less @@ -0,0 +1,151 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.general-prompt-text-details { + .l_14_r; + padding: 3% 0% 3% 0%; +} + +.general-prompt-upper-headline { + .l_14_m; +} +.general-prompt-upper-dash { + border-bottom: dashed 1px #5a5a5a; + margin-bottom: 15px; +} +.upper-headline-value{ + .l_14_i; +} + +.general-prompt-body{ + margin: 0px; +} + +.general-prompt-title { + .m_18_r; + + .bold { + .a_18_m; + } + +} + + +.btn-gradient-success { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41A02C; + *background-color: #41A02C; + background-image: -moz-linear-gradient(top, #A2E652, #41A02C); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C)); + background-image: -webkit-linear-gradient(top, #A2E652, #41A02C); + background-image: -o-linear-gradient(top, #A2E652, #41A02C); + background-image: linear-gradient(to bottom, #A2E652, #41A02C); + background-repeat: repeat-x; + border-color: #41A02C; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #41A02C; + *background-color: #003bb3; +} + +.btn-gradient-danger { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #AE0020; + *background-color: #AE0020; + background-image: -moz-linear-gradient(top, #F74658, #AE0020); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020)); + background-image: -webkit-linear-gradient(top, #F74658, #AE0020); + background-image: -o-linear-gradient(top, #F74658, #AE0020); + background-image: linear-gradient(to bottom, #F74658, #AE0020); + background-repeat: repeat-x; + border-color: #AE0020; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #AE0020; + *background-color: #003bb3; +} + +.btn-gradient-default { + font-weight: bold; + color: #B3B3B3; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #D0D0D0; + *background-color: #D0D0D0; + background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0)); + background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0); + background-repeat: repeat-x; + border-color: #D0D0D0; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #D0D0D0; + *background-color: #003bb3; +} diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js b/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js new file mode 100755 index 00000000..b90921ff --- /dev/null +++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.controller.js @@ -0,0 +1,278 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('NextStepsModalController', ['$rootScope', '$uibModalInstance', 'stepsService', 'engagement_team', + 'title', 'associated_files', 'engagement_uuid', 'checklist', 'nextstep', 'toastService', '$log', NextStepsModalController]); + + function NextStepsModalController($rootScope, $uibModalInstance, stepsService, engagement_team, title, + associated_files, engagement_uuid, checklist, nextstep, toastService, $log) { + + var vm = this; + vm.nextSteps = [{assigneesUuids: '',description: '', files: '', duedate: ''}]; + + var init = function() { + + vm.myDate = new Date(); + vm.minDate = new Date( + vm.myDate.getFullYear(), + vm.myDate.getMonth(), + vm.myDate.getDate()); + vm.maxDate = new Date( + vm.myDate.getFullYear() + 2, + vm.myDate.getMonth(), + vm.myDate.getDate()); + vm.onlyWeekendsPredicate = function (date) { + var day = date.getDay(); + return day === 0 || day === 6; + }; + + vm.wysiwyg_menu = [ + ['bold', 'italic', 'strikethrough', 'underline'], + ['unordered-list', 'ordered-list', 'outdent', 'indent'] + ]; + vm.select_str = {File: 'Select All'}; + vm.select_all_flag = false; + vm.associated_files = []; + vm.associated_files.push( vm.select_str); + vm.assigness = []; + vm.title = title; + if (checklist == undefined) + { + vm.checklist = {}; + vm.checklist.uuid = undefined; + } else { + vm.checklist = checklist; + } + + var unique_files = []; + angular.forEach(associated_files, function (value, key) { + if (unique_files.indexOf(value) == -1) { + unique_files.push(value); + vm.associated_files.push({File: value}); + } + }); + angular.forEach(engagement_team, function (value, key) { + vm.assigness.push({name: value.full_name, id: value.uuid}); + }); + vm.edit = false; + + if (nextstep != undefined) + { + vm.edit = true; + var current = {}; + current.description = nextstep.description; + current.files = []; + current.duedate = new Date(nextstep.due_date); + var unique_files = []; + angular.forEach(nextstep.files, function(val, key1) { + if (unique_files.indexOf(value) == -1) { + unique_files.push(value); + current.files.push({File: val}); + } + }); + + current.assigneesUuids = []; + angular.forEach(nextstep.assignees, function(val, key1) { + current.assigneesUuids.push({name : val.full_name, id :val.uuid}); + + }); + vm.nextSteps = [current]; + } + }; + + init(); + + vm.get_chosen_files_num = function(ns){ + if (ns.files.length == associated_files.length+1) { + return ns.files.length - 1; + } + return ns.files.length + } + + vm.add_all_associated_files = function (ns , choose_option){ + if (choose_option == true) { + ns.files = []; + ns.files.push({File: 'Select All'}); + _.forEach(associated_files, function (value, key) { + ns.files.push({File: value}); + }); + } + else { + vm.select_all_flag = false; + ns.files = []; + } + return; + } + + vm.pull_select_all_from_list = function(ns){ + var shortened_files_list = []; + _.forEach(ns.files, function(item) { + if (!_.isEqual(item, vm.select_str)) { + shortened_files_list.push(item); + } + }); + ns.files = shortened_files_list; + } + + vm.verify_files_choice = function(ns){ + _.forEach(ns.files, function(item) { + if (ns.files.length == associated_files.length && vm.select_all_flag) { + if (item === vm.select_str) { + vm.select_all_flag = false; + vm.pull_select_all_from_list(ns); + } + else { + vm.add_all_associated_files(ns, false) + } + } + else if (ns.files.length == associated_files.length && !vm.select_all_flag) { + ns.files.push({File: 'Select All'}); + vm.select_all_flag = true; + } + else if (item === vm.select_str) { + vm.select_all_flag = true; + vm.add_all_associated_files(ns, true) + } + }) + } + + vm.addNewStep = function () { + var newItemNo = vm.nextSteps.length + 1; + vm.nextSteps.push({'id': newItemNo}); + }; + + vm.removeStep = function (index) { + vm.nextSteps.splice(index,1); + }; + + vm.closeModal = function(){ + $rootScope.ice.loader.show = false; + toastService.clearToast(); + $uibModalInstance.close(); + }; + + vm.submitForm = function () { + + var jsonNextSteps = []; + + var objDate; + var strDate; + angular.forEach(vm.nextSteps, function(value, key) { + var next_step = {}; + next_step.files = []; + if (value.files.length > associated_files.length) { + vm.pull_select_all_from_list(value); + } + angular.forEach(value.files, function(val, key1) { + next_step.files.push(val.File); + }); + next_step.assigneesUuids = []; + angular.forEach(value.assigneesUuids, function(val, key1) { + next_step.assigneesUuids.push(val.id); + }); + + // TODO exho correct format in one command + objDate = new Date(Date.parse((value.duedate) + moment().format("z"))); + next_step.duedate = objDate.getFullYear() + "-" + addZero(objDate.getMonth()+1) + "-" + addZero(objDate.getDate()); + next_step.description = value.description; + jsonNextSteps.push(next_step); + }); + var checklist_uuid = vm.checklist.uuid; + var engUuid = engagement_uuid; + if (vm.edit){ + stepsService.edit(engagement_uuid, nextstep.uuid,jsonNextSteps[0]) + .then(function (response) { + if (response.status === 202) { + $uibModalInstance.close(response.data); + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error adding next step!', 'danger', {displayFor: 'modal'}); + }); + } else if (vm.checklist.uuid == undefined) { + + stepsService.add(engagement_uuid, jsonNextSteps) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.data); + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error adding next step!', 'danger', {displayFor: 'modal'}); + }); + } else { + stepsService.createChecklistNextStep(checklist_uuid, engUuid, jsonNextSteps) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.status); + vm.closeModal(); + } + else + { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error); + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger', {displayFor: 'modal'}); + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + }; + + var addZero = function(x) + { + if (x<10) + { + return("0"+x); + } else + { + return(x); + } + } + } +})(); diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.html b/d2ice.att.io/app/main/modals/next-steps/next-steps.html new file mode 100755 index 00000000..588247e8 --- /dev/null +++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.html @@ -0,0 +1,138 @@ + + + + diff --git a/d2ice.att.io/app/main/modals/next-steps/next-steps.less b/d2ice.att.io/app/main/modals/next-steps/next-steps.less new file mode 100755 index 00000000..faf3eb9e --- /dev/null +++ b/d2ice.att.io/app/main/modals/next-steps/next-steps.less @@ -0,0 +1,307 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.md-datepicker-calendar-pane { + z-index:30001; +} +md-datepicker.btn { + width:100%; + padding: 0px; + position: relative; + + .md-button.md-icon-button.md-datepicker-button { + float:left; + min-height: 0px; + height: 32px; + z-index: 2; + width: 100%; + padding: 0px; + margin: 0px; + md-icon { + display:none; + } + } + + .md-datepicker-input-container{ + + line-height: 28px; + border-bottom:none; + margin-left: 0px; + position: absolute; + left: 0px; + padding-left: 0px; + width: 100% + } + + .md-datepicker-input { + width: 100%; + text-align: left; + line-height: 32px; + padding-left: 10px; + margin: 0px; + } + .md-datepicker-input::-webkit-input-placeholder { + color: #555; + } + .md-datepicker-triangle-button { + top: 7px; + } + .md-datepicker-triangle-button .md-datepicker-expand-triangle { + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + } + + .md-datepicker-triangle-button .md-datepicker-expand-triangle:before { + position: absolute; + top: -13px; + left: -3px; + display: inline-block; + border-left: 3.8px solid transparent; + border-right: 3.8px solid transparent; + border-top: 7px solid transparent; + border-bottom: 5.9px solid #555555; + content: ''; + } + + .md-datepicker-triangle-button .md-datepicker-expand-triangle:after { + position: absolute; + top: 1px; + left: -3px; + display: inline-block; + border-left: 3.8px solid transparent; + border-right: 3.8px solid transparent; + border-top: 5.9px solid #555555; + border-bottom: 7px solid transparent; + content: ''; + } + +} + +.dropdown-menu li[data-ng-if="modelValue().length > 0"] { + display:none; +} +.next-steps +{ + md-datepicker .md-datepicker-input { + text-align: center; + } + +} + +.next-steps { + + .checklist-name + { + padding-left:0px; + border-bottom:1px dashed; + } + + .addNextSteps + { + + margin-bottom:10px;margin-top:10px; + } + + .repeaterNextStep + { + + margin-bottom:10px; + padding-left:10px; + padding-right:10px; + padding-left:10px; + padding-top:10px; + padding-bottom:10px; + border:1px solid; + border-color:#CCCCCC; + } + + .padTop4 + { + padding-top:4px; + } + + .padTop10 + { + padding-top:10px; + } + + .padLeft0 + { + padding-left:0px; + } + + .add-header + { + .a_16_m; + } + + .ice-wysiwyg { + height: 200px; + .wysiwyg-menu > div { + background-color: #f1f1f1; + padding: 2px; + } + } + + .font-deco { + text-decoration-line: underline; + text-decoration-style: dashed; + } + + .text-right + { + text-align:right; + } + + .font_header + { + margin_top:0px; + .m_18_m; + } + + .font_header_add_next + { + .a_24_m; + } + + .font_header_chk_name + { + .m_18_r; + } + + .margin_btm + { + margin-bottom:12px; + } + + .ms + { + background-color:yellow; + } + + multiselect > .btn-group + { + width:100%; + } + multiselect > .btn-group > .btn + { + width:100%; + } + multiselect > .btn-group > .dropdown-menu + { + width:100%; + } + + form > .lineColor + { + background-color:#F6F3F3; + } + + .add-icon { + .sprite; + .sprite.add; + display: inline-block; + } + + .add-button { + margin-top: 8px; + display: block; + .add-text { + .a_16_m; + vertical-align: top; + margin-left: 6px; + } + } + + .remove-icon { + cursor: pointer; + vertical-align: text-top; + //.sprite; + //.sprite.delete;//-circle; + .actions-sprite; + .actions-sprite.delete_large; + + display:block; + position:relative; + top:11px; + } + + .posRelative + { + position:relative; + } + + .posAbsDelBtn + { + position:absolute; + top:10px; + right:20px; + z-index:40000; + } + + #btn-submit { + width: 100%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + + + .datepickerdemoBasicUsage { + /** Demo styles for mdCalendar. */ } + .datepickerdemoBasicUsage md-content { + padding-bottom: 200px; } + .datepickerdemoBasicUsage .validation-messages { + font-size: 12px; + color: #dd2c00; + margin-left: 15px; } + + + + +} diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js new file mode 100755 index 00000000..9b73e706 --- /dev/null +++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.controller.js @@ -0,0 +1,78 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('selectELModalController', ['$uibModalInstance', 'excludeUuids', 'selectedOption', 'usersService', + '_', '$log', selectELModalController]); + + function selectELModalController($uibModalInstance, excludeUuids, selectedOption, usersService, _, $log) { + var vm = this; + vm.show_warning = false; + var init = function () { + usersService.getEngagementLeads() + .then(function(response) { + vm.engagementLeads = _.filter(response.data, function(el) { + return el.uuid; + }); + + vm.selectedUserUuid = _.find(vm.engagementLeads, ['uuid', selectedOption]); + }) + .catch(function(error) { + $log.error(error); + vm.closeModal(); + }); + }; + + vm.closeModal = function () { + $uibModalInstance.dismiss(); + }; + + vm.onUserSelect = function() { + if(vm.selectedUserUuid) { + $uibModalInstance.close(vm.selectedUserUuid); + } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html new file mode 100755 index 00000000..fa285a6d --- /dev/null +++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.html @@ -0,0 +1,56 @@ + +
+ + +
diff --git a/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less new file mode 100755 index 00000000..6371cf7e --- /dev/null +++ b/d2ice.att.io/app/main/modals/select-el-modal/select-el-modal.less @@ -0,0 +1,54 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.select-engagement-lead-modal { + padding: 0px 15px 0px 15px; + + .select-engagement-lead-title { + .a_24_m;; + } + + .select-engagement-lead-description { + .m_16_r; + } + + .modal-body { + top: 10px; + } +} + diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js new file mode 100755 index 00000000..3824870d --- /dev/null +++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.controller.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('setEngStageModalController', ['$rootScope','$uibModalInstance','stage','eng_name','current_stage', setEngStageModalController]); + + function setEngStageModalController($rootScope, $uibModalInstance,stage, eng_name, current_stage) { + + var vm = this; + var init = function () { + vm.stage = stage; + vm.current_stage = current_stage; + vm.modalText = "Are you sure you want to set the Engagement's stage to "+vm.stage+"?"; + vm.eng_name = eng_name; + } + + vm.closeModal = function (bool) { + $uibModalInstance.close(bool); + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html new file mode 100755 index 00000000..362eb93b --- /dev/null +++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.html @@ -0,0 +1,49 @@ + + + diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less new file mode 100755 index 00000000..af7d5ba1 --- /dev/null +++ b/d2ice.att.io/app/main/modals/set-eng-stage/set-eng-stage-modal.less @@ -0,0 +1,135 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.set-stage-modal-text-details { + .m_18_r; + padding: 3% 0% 3% 0%; +} + +.set-stage-title { + .m_18_r; + + .bold { + .a_18_m; + } + +} + +.btn-gradient-success { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #41A02C; + *background-color: #41A02C; + background-image: -moz-linear-gradient(top, #A2E652, #41A02C); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#A2E652), to(#41A02C)); + background-image: -webkit-linear-gradient(top, #A2E652, #41A02C); + background-image: -o-linear-gradient(top, #A2E652, #41A02C); + background-image: linear-gradient(to bottom, #A2E652, #41A02C); + background-repeat: repeat-x; + border-color: #41A02C; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #41A02C; + *background-color: #003bb3; +} + +.btn-gradient-danger { + font-weight: bold; + color: #FFFFFF; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #AE0020; + *background-color: #AE0020; + background-image: -moz-linear-gradient(top, #F74658, #AE0020); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#F74658), to(#AE0020)); + background-image: -webkit-linear-gradient(top, #F74658, #AE0020); + background-image: -o-linear-gradient(top, #F74658, #AE0020); + background-image: linear-gradient(to bottom, #F74658, #AE0020); + background-repeat: repeat-x; + border-color: #AE0020; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #AE0020; + *background-color: #003bb3; +} + +.btn-gradient-default { + font-weight: bold; + color: #B3B3B3; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #D0D0D0; + *background-color: #D0D0D0; + background-image: -moz-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#FCFCFC), to(#D0D0D0)); + background-image: -webkit-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: -o-linear-gradient(top, #FCFCFC, #D0D0D0); + background-image: linear-gradient(to bottom, #FCFCFC, #D0D0D0); + background-repeat: repeat-x; + border-color: #D0D0D0; + border-color: #888; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-sample:hover, +.btn-sample:focus, +.btn-sample:active, +.btn-sample.active, +.btn-sample.disabled, +.btn-sample[disabled] { + color: #FFFFFF; + background-color: #D0D0D0; + *background-color: #003bb3; +} diff --git a/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html b/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html new file mode 100755 index 00000000..adf81be3 --- /dev/null +++ b/d2ice.att.io/app/main/modals/set-eng-stage/set_eng_stage_modal.html @@ -0,0 +1,58 @@ + + +
+ + + +
+ +
+
+ + +
diff --git a/d2ice.att.io/app/main/modals/status/status.controller.js b/d2ice.att.io/app/main/modals/status/status.controller.js new file mode 100755 index 00000000..9a90ec52 --- /dev/null +++ b/d2ice.att.io/app/main/modals/status/status.controller.js @@ -0,0 +1,125 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('StatusModalController', ['$rootScope', '$uibModalInstance', 'statusService', 'engagement_uuid', + 'action', 'toastService', '$log', StatusModalController]); + + function StatusModalController($rootScope, $uibModalInstance, statusService, engagement_uuid, action, toastService, $log) { + var vm = this; + + var init = function() { + vm.engagement_uuid = engagement_uuid; + vm.action = action; + if (action == 'edit') { + statusService.get(engagement_uuid) + .then(function (response) { + if (response.status === 200) + { + vm.status = response.data; + vm.status_modal_description = vm.status.description; + vm.eng_status_uuid = vm.status.uuid; + } else + { + $log.error(response); + } + }) + .catch(function (error) { + vm.status = false; + $log.error(error.message); + }); + } else { + vm.status_modal_description = ''; + } + }; + + init(); + + vm.submitForm = function () + { + var jsonPost = {"description":vm.status_modal_description}; + if (action == 'edit') { + jsonPost.eng_status_uuid = vm.eng_status_uuid; + statusService.update(vm.engagement_uuid, jsonPost) + .then(function (response) { + if (response.status === 200) + { + $uibModalInstance.close(response.data); + vm.closeModal(); + } + else + { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + } else { + statusService.add(vm.engagement_uuid, jsonPost) + .then(function (response) { + if (response.status === 200) + { + + $uibModalInstance.close(response.data); + vm.closeModal(); + } + else + { + toastService.setToast(response.error, 'danger'); + $rootScope.ice.loader.show = false; + } + }) + .catch(function (error) { + toastService.setToast(error.message, 'danger'); + $log.error(error.message); + }); + } + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/status/status.html b/d2ice.att.io/app/main/modals/status/status.html new file mode 100755 index 00000000..83c50d2b --- /dev/null +++ b/d2ice.att.io/app/main/modals/status/status.html @@ -0,0 +1,59 @@ + + + + + diff --git a/d2ice.att.io/app/main/modals/status/status.less b/d2ice.att.io/app/main/modals/status/status.less new file mode 100755 index 00000000..ae5f7945 --- /dev/null +++ b/d2ice.att.io/app/main/modals/status/status.less @@ -0,0 +1,44 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.status-modal-body { + .status-modal-description { + border-color: @main_color_q; + margin-bottom:15px; + } +} diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js new file mode 100755 index 00000000..a300d3da --- /dev/null +++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.controller.js @@ -0,0 +1,78 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.modals') + .controller('ChangeLabEntryDateModalController', ["$uibModalInstance", "targetLabDate", "engagementUuid", "vfService", "$rootScope", "toastService", changeLabEntryDateModalController]); + + function changeLabEntryDateModalController($uibModalInstance, targetLabDate, engagementUuid, vfService, $rootScope, toastService) { + + var vm = this; + //vm.completionDate = new Date(completionDate); + vm.targetLabDate = targetLabDate; + vm.dateOptions = { + minDate: new Date(), + showWeeks: true + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.myDate = new Date(); + vm.minDate = moment(vm.myDate).format("YYYY-MM-DD") + vm.maxDate = moment(vm.myDate).add(2, 'years').format("YYYY-MM-DD"); + + vm.submitForm = function(){ + var postData={"target_date": moment(vm.targetLabDate).format("YYYY-MM-DD")}; + vfService.updateLabEntryDaysLeft(engagementUuid, postData) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(postData); + } + }) + .catch(function (error) { + toastService.setToast(error.status + ': Error changing completion date!', 'danger'); + }); + }; + } +})(); diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html new file mode 100755 index 00000000..cfd30f79 --- /dev/null +++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.html @@ -0,0 +1,55 @@ + +
+ + +
+ + diff --git a/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less new file mode 100755 index 00000000..8aa6f3be --- /dev/null +++ b/d2ice.att.io/app/main/modals/target-lab-entry/change-lab-entry-date.less @@ -0,0 +1,49 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + .edit-target-lab-date-modal { + .md-datepicker-input-container { + .md-datepicker-input { + width: 100%; + text-align: left; + line-height: 32px; + padding-left: 95px; + margin: 0px; + } + } + } \ No newline at end of file diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js new file mode 100755 index 00000000..f9afa320 --- /dev/null +++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.controller.js @@ -0,0 +1,73 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. + +(function () { + 'use strict'; + + angular + .module('ice.modals') + .controller('updateEngagementStatusModalController', ['$uibModalInstance', 'engagement', updateEngagementStatusModalController]); + + function updateEngagementStatusModalController($uibModalInstance, engagement) { + var vm = this; + var init = function () { + vm.engagement = engagement; + formatDates(); + }; + + vm.closeModal = function () { + $uibModalInstance.dismiss(); + }; + + vm.updateEngagement = function() { + formatDates(); + $uibModalInstance.close({"engagement": vm.engagement, "status": vm.status}); + }; + + var formatDates = function() { + if(vm.engagement.target_completion_date){ vm.engagement.target_completion_date = new Date(vm.engagement.target_completion_date); } + if(vm.engagement.heat_validated_time){ vm.engagement.heat_validated_time = new Date(vm.engagement.heat_validated_time); } + if(vm.engagement.image_scan_time){ vm.engagement.image_scan_time = new Date(vm.engagement.image_scan_time); } + if(vm.engagement.aic_instantiation_time){ vm.engagement.aic_instantiation_time = new Date(vm.engagement.aic_instantiation_time); } + if(vm.engagement.asdc_onboarding_time){ vm.engagement.asdc_onboarding_time = new Date(vm.engagement.asdc_onboarding_time); } + }; + + init(); + } +})(); diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html new file mode 100755 index 00000000..29abb24e --- /dev/null +++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.html @@ -0,0 +1,97 @@ + +
+ + +
diff --git a/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less new file mode 100755 index 00000000..8bce9da3 --- /dev/null +++ b/d2ice.att.io/app/main/modals/update-engagement-status-modal/update-engagement-status-modal.less @@ -0,0 +1,61 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.update-engagement-status-modal { + padding: 0px 15px 0px 15px; + + .update-engagement-status-title { + .a_24_m;; + } + + .update-engagement-status-description { + .m_16_r; + } + + .form-field-title{ + .m_16_r; + } + + .modal-body { + top: 10px; + } + + .md-datepicker-input { + max-width: none; + } +} diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js new file mode 100755 index 00000000..1370e367 --- /dev/null +++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.controller.js @@ -0,0 +1,202 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + + 'use strict'; + + angular + .module('ice.modals') + .controller('validationDetailsModalController', ["$rootScope", "$uibModalInstance", "vfcService", "vfService", "$stateParams", "toastService", "vf_uuid", "usersService", "$log", "_", validationDetailsModalController]); + + function validationDetailsModalController($rootScope, $uibModalInstance, vfcService,vfService, $stateParams,toastService, vf_uuid, usersService,$log,_) { + + var vm = this; + var init = function () { + if($stateParams.engagement) { + vm.engagement = $stateParams.engagement; + } + vm.me = usersService.getUserData(); + vfService.getSingleEngagement(vm.me.uuid,vm.engagement.uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + + if (response.status === 200 && response.data && response.data !== '') { + var vf_data = response.data; + vm.engagement_manual_id = vf_data.engagement.engagement_manual_id; + vm.vf_name = vf_data.name; + vm.vf_uuid = vf_data.uuid; + vm.ecomp_release = vf_data.ecomp_release; + vm.target_lab = new Date(vf_data.target_lab_entry_date); + vm.dtversion = vf_data.deployment_target; + vm.selected_dt_uuid = vm.dtversion.uuid; + vm.selected_ecomp_uuid = vm.ecomp_release.uuid; + vm.me = usersService.getUserData(); + vm.name = vm.engagement.name; + vm.isEngagementEL = usersService.isEngagementEL(vf_data.engagement.engagement_team); + vm.isAdmin = usersService.isAdmin(vm.me); + vm.choices = [{TargetLab: '', TargetAic: ''}]; + getDeployTargets(); + getECOMPReleases(); + getVFVersion(); + } + }) + .catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + }; + + vm.closeModal = function(){ + $uibModalInstance.close(); + }; + + vm.addNewChoice = function () { + var newItemNo = vm.choices.length + 1; + vm.choices.push({'id': newItemNo}); + }; + + function getDeployTargets() { + vfService.getDeployTargets() + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.deployTargets = response.data; + if (_.filter(vm.deployTargets, {'uuid': vm.dtversion.uuid}).length === 0) { + vm.dtversion.disabled = true; + vm.deployTargets.push(vm.dtversion); + } + } + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + function getECOMPReleases(){ + vfService.getECOMPReleases() + .then(function (response) { + if (response.status === 200) { + vm.ECOMPReleases = response.data; + if (_.filter(vm.ECOMPReleases, {'uuid':vm.ecomp_release.uuid}).length === 0) { + vm.ecomp_release.disabled = true; + vm.ECOMPReleases.push(vm.ecomp_release); + } + } + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + } + function getVFVersion(){ + vfService.getVFVersion(vf_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + if (response.status === 200) { + vm.VFVersion = response.data; + } + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.debug(error); + }); + } + vm.removeChoice = function (index) { + vm.choices.splice(index,1); + }; + + vm.submitForm = function(){ + var validationDetailsSelection = { + "vf_uuid": vm.vf_uuid, + "version": vm.VFVersion, + "target_aic_uuid": vm.TargetAic, + "ecomp_release": vm.ECOMPRelease + }; + + vfService.updateVfs(validationDetailsSelection,vm.vf_uuid) + .then(function (response) { + if (response.status === 200) { + $uibModalInstance.close(response.status); + } + }) + .catch(function (error) { + $log.error(error); + toastService.setToast(error.status + ': Error changing progress!', 'danger'); + }); + }; + + vm.update_deployment_target = function(){ + if(vm.dtversion.uuid == vm.selected_dt_uuid){ + return + } + angular.forEach(vm.dt_AIC_versions, function (value, key) { + if (value.uuid === vm.selected_dt_uuid) { + vm.dtversion = value; + }; + }); + vfService.updateDeployTargets(vm.engagement.uuid, vm.selected_dt_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + vm.set_edit_mode('aic'); + }; + vm.update_ECOMP_release = function(){ + if( vm.ecomp_release.uuid == vm.selected_ecomp_uuid){ + return; + } + _.each(vm.ECOMPReleases, function (value, key) { + if (value.uuid === vm.selected_ecomp_uuid) { + vm.ecomp_release = value; + }; + }); + vfService.updateECOMPReleases(vm.engagement.uuid, vm.selected_ecomp_uuid) + .then(function (response) { + $rootScope.ice.loader.show = false; + }).catch(function (error) { + $rootScope.ice.loader.show = false; + $log.error(error); + }); + vm.set_edit_mode('ecomp'); + }; + + init(); + } + +})(); diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html new file mode 100755 index 00000000..48e3fe2a --- /dev/null +++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.html @@ -0,0 +1,101 @@ + + + diff --git a/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less new file mode 100755 index 00000000..08fd5ea8 --- /dev/null +++ b/d2ice.att.io/app/main/modals/validation-details/detailed-view-validation-details-modal.less @@ -0,0 +1,49 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +#validation-details-form { + #edit-validation-setails-save-button { + margin-top: 15px; + } + + .field-title { + .m_16_m; + margin-bottom: 2px; + margin-top: 5px; + } +} diff --git a/d2ice.att.io/app/robots.txt b/d2ice.att.io/app/robots.txt new file mode 100755 index 00000000..4d521f95 --- /dev/null +++ b/d2ice.att.io/app/robots.txt @@ -0,0 +1,4 @@ +# robotstxt.org + +User-agent: * +Disallow: diff --git a/d2ice.att.io/app/services/cache.service.js b/d2ice.att.io/app/services/cache.service.js new file mode 100755 index 00000000..6897e785 --- /dev/null +++ b/d2ice.att.io/app/services/cache.service.js @@ -0,0 +1,89 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular + .module('ice.services.cacheService', []) + .service('cacheService', function () { + + var data = {}; + + this.get = function (key) { + return data[key]; + }; + + this.delete = function (key) { + return data[key] = undefined; + }; + + this.deleteAll = function () { + return data = {}; + }; + + this.set = function (key, value) { + if (data[key] === undefined) { + data[key] = value; + } else { + data[key] = $.extend({}, value, data[key]); + } + }; + + this.toString = function() { + return data; + }; + + }) + + .factory('pageService', function () { + var page = ''; + return { + getPage: function () { + return page; + }, + setPage: function (new_page) { + page = new_page; + } + }; + }); + + + +})(); diff --git a/d2ice.att.io/app/services/checklist.service.js b/d2ice.att.io/app/services/checklist.service.js new file mode 100755 index 00000000..c2aae9ee --- /dev/null +++ b/d2ice.att.io/app/services/checklist.service.js @@ -0,0 +1,213 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + var current_checklist; + + angular.module('ice.services.checklist', []) + + .factory('checklistService', ['$rootScope', '$http', '$q', 'cacheService', '$log', + function ($rootScope,$http, $q, cacheService, $log) { + + var urls = cacheService.get("configuration").urls; + + var vm = this; + + this.setState = function (clUuid, postData) { + var deferred = $q.defer(); + $http.put(urls.checklist.state.put.replace('@cl_uuid',clUuid) ,postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.createChecklist = function (engUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.checklist.createChecklist.replace("@engUuid", engUuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getDataForCreateChecklist = function (engUuid) { + var deferred = $q.defer(); + $http.get(urls.checklist.getDataForChecklist.replace('@engUuid',engUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getChecklist = function (checklistUuid) { + var deferred = $q.defer(); + $http.get(urls.checklist.getChecklist.replace('@checklistUuid',checklistUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.putDataForChecklist = function (checklist_uuid,putData) { + var deferred = $q.defer(); + $http.put(urls.checklist.putDataForChecklist.replace('@checklist_uuid',checklist_uuid),putData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + this.putChecklistDecision = function (decisionUuid, putData) { + var deferred = $q.defer(); + $http.put(urls.checklist.checklistDecision.replace('@decisionUuid',decisionUuid),putData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.createAuditlogChecklist = function (checklist_uuid, postData) { + var deferred = $q.defer(); + $http.post(urls.checklist.createAuditlogChecklist.replace('@checklist_uuid',checklist_uuid),postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.createAuditlogDecisionChecklist = function (decision_uuid,postData) { + var deferred = $q.defer(); + $http.post(urls.checklist.createAuditlogDecisionChecklist.replace('@decision_uuid',decision_uuid),postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + + this.setChecklistExitEntity = function(checklist_data) { + current_checklist = checklist_data; + $log.debug("set checklist"); + } + + + this.callChecklistExit = function(page_view) { + if (current_checklist != undefined && page_view == 'checklist') { + + var modal_type = 'set_state'; + angular.forEach(current_checklist.data.checklistDecisions, function (section,key) { + angular.forEach(section.decisions, function (decision,key) { + if (decision['view_value'] != 'approved' && decision['view_value'] != 'not_relevant' || decision['view_value'] == '') { + modal_type = 'next_step'; + } + }); + }); + if (modal_type == 'next_step') + this.openNextSteps(); + else if (modal_type == 'set_state') + this.openSetState(); + } + } + + this.getChecklistTemplates = function () { + var deferred = $q.defer(); + $http.get(urls.checklist.getChecklistTemplates). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getChecklistTemplate = function (templateUuid) { + var deferred = $q.defer(); + $http.get(urls.checklist.getChecklistTemplate.replace('@templateUuid', templateUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.saveChecklistTemplate = function (putData) { + var deferred = $q.defer(); + $http.put(urls.checklist.saveChecklistTemplate, putData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + return this; + + }]); + +})(); diff --git a/d2ice.att.io/app/services/cms.service.js b/d2ice.att.io/app/services/cms.service.js new file mode 100755 index 00000000..15a3ac32 --- /dev/null +++ b/d2ice.att.io/app/services/cms.service.js @@ -0,0 +1,162 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 17/01/2017. + */ +(function () { + 'use strict'; + + angular.module('ice.services.cms', []) + .service('cmsService', ['$http', '$q', 'cacheService', 'localStorageService', '$uibModal', '$rootScope', '$log', cmsService]); + + function cmsService($http, $q, cacheService, localStorageService, $uibModal, $rootScope, $log) { + var urls = cacheService.get("configuration").urls; + var lastAnnouncementStorageKey = 'lastAnnouncement'; + var lastAnnouncementMessage; + + this.getPosts = function(limit, fromLastDays, categories) { + var deferred = $q.defer(); + var categoriesParam = categories && categories instanceof Array ? categories.join() : ''; + + $http.get(urls.cms.posts.get.replace('@limit',limit).replace('@offset',0).replace('@fromLastDays',fromLastDays).replace('@category',categoriesParam)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.getLastAnnouncementPost = function() { + var deferred = $q.defer(); + var limit = 1; + + $http.get(urls.cms.posts.get.replace('@limit', limit).replace('@offset',0).replace('@fromLastDays','').replace('@category','Announcement')). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.setAnnouncementToast = function() { + var openCMSPostModal = function() { + $uibModal.open({ + templateUrl: 'main/modals/cms-post-modal/cms-post-modal.html', + controller: 'cmsPostModalController', + controllerAs: 'vm', + size: 'cms-post-read-more', + resolve: { + post: function () { + return undefined; + } + } + }); + }; + + this.getLastAnnouncementPost() + .then(function(response) { + if(response && response.data && response.data.length === 1) { + var lastAnnouncement = localStorageService.getJson(lastAnnouncementStorageKey); + if(!lastAnnouncement || lastAnnouncement.id != response.data[0].id || !lastAnnouncement.closed) { + localStorageService.setJson(lastAnnouncementStorageKey, {"id": response.data[0].id, "closed": false}); + var toastMessage = "Important announcement: " + response.data[0].title + "."; + lastAnnouncementMessage = {message: toastMessage, readMore: openCMSPostModal, type: 'warning', show: true, displayFor: 'all', publishDate: response.data[0].publish_date}; + $rootScope.showAnnouncement = !$rootScope.showAnnouncement; + } + } + }) + .catch(function(error) { + $log.error(error); + }); + }; + + this.getAnnouncement = function() { + return lastAnnouncementMessage; + }; + + this.getPages = function(title) { + var deferred = $q.defer(); + + if(!title) { title = ''; } + $http.get(urls.cms.pages.get.replace('@title',title)) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.getPage = function(id) { + var deferred = $q.defer(); + + $http.get(urls.cms.pages.getById.replace('@id',id)) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.searchPages = function(keyword) { + var deferred = $q.defer(); + + $http.get(urls.cms.pages.search.replace('@keyword',keyword)) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + } + }; +})(); diff --git a/d2ice.att.io/app/services/dtsite.service.js b/d2ice.att.io/app/services/dtsite.service.js new file mode 100755 index 00000000..26fca386 --- /dev/null +++ b/d2ice.att.io/app/services/dtsite.service.js @@ -0,0 +1,100 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.dtsite', []) + + .service('dtsiteService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + + this.getVFSites = function (vfUuid) { + var deferred = $q.defer(); + $http.get(urls.dtsite.getVFSites.replace('@vfUuid',vfUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.get = function () { + var deferred = $q.defer(); + $http.get(urls.dtsite.get). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.delete = function (vfUuid, dtsUuid) { + var deferred = $q.defer(); + $http.delete(urls.dtsite.delete.replace('@vfUuid',vfUuid).replace('@dtsUuid',dtsUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.add = function (postData) { + var deferred = $q.defer(); + $http.post(urls.dtsite.add ,postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + }]); + +})(); diff --git a/d2ice.att.io/app/services/feedback.service.js b/d2ice.att.io/app/services/feedback.service.js new file mode 100755 index 00000000..4d8e8ae7 --- /dev/null +++ b/d2ice.att.io/app/services/feedback.service.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.feedback', []) + + .service('feedbackService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + this.add = function ( postData) { + var deferred = $q.defer(); + $http.post(urls.feedback.add.replace(), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + }]); + +})(); \ No newline at end of file diff --git a/d2ice.att.io/app/services/localstorage.service.js b/d2ice.att.io/app/services/localstorage.service.js new file mode 100755 index 00000000..f17d8009 --- /dev/null +++ b/d2ice.att.io/app/services/localstorage.service.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +'use strict'; + +angular.module('ice.services.localStorage', []) + + .service('localStorageService', function ($window) { + + this.setJson = function (key, val) { + $window.localStorage && $window.localStorage.setItem(key, JSON.stringify(val)); + return this; + }; + + this.getJson = function (key) { + var val = $window.localStorage && $window.localStorage.getItem(key); + var returnVal; + try { + returnVal = val ? JSON.parse(val) : undefined; + } catch(err){} + return returnVal; + }; + + this.delete = function (key) { + return $window.localStorage && $window.localStorage.removeItem(key); + }; + + }); diff --git a/d2ice.att.io/app/services/sessionStorage.service.js b/d2ice.att.io/app/services/sessionStorage.service.js new file mode 100755 index 00000000..da3a91de --- /dev/null +++ b/d2ice.att.io/app/services/sessionStorage.service.js @@ -0,0 +1,65 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular.module('ice.services.sessionStorage', []) + .service('sessionStorageService', ['$window', sessionStorageService]); + + function sessionStorageService($window) { + this.setJson = function (key, val) { + $window.sessionStorage && $window.sessionStorage.setItem(key, JSON.stringify(val)); + return this; + }; + + this.getJson = function (key) { + var val = $window.sessionStorage && $window.sessionStorage.getItem(key); + var returnVal; + try { + returnVal = val ? JSON.parse(val) : undefined; + } catch (err) { + } + return returnVal; + }; + + this.delete = function (key) { + return $window.sessionStorage && $window.sessionStorage.removeItem(key); + }; + } +})(); diff --git a/d2ice.att.io/app/services/status.service.js b/d2ice.att.io/app/services/status.service.js new file mode 100755 index 00000000..985b1898 --- /dev/null +++ b/d2ice.att.io/app/services/status.service.js @@ -0,0 +1,87 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.status', []) + + .service('statusService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + this.get = function (engagement) { + var deferred = $q.defer(); + $http.get(urls.status.get.replace('@engagement',engagement)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.update = function (engagement, postData) { + var deferred = $q.defer(); + $http.put(urls.status.update.replace('@engagement',engagement), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.add = function (engagement, postData) { + var deferred = $q.defer(); + $http.post(urls.status.update.replace('@engagement',engagement), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + }]); + +})(); \ No newline at end of file diff --git a/d2ice.att.io/app/services/steps.service.js b/d2ice.att.io/app/services/steps.service.js new file mode 100755 index 00000000..eef4dc99 --- /dev/null +++ b/d2ice.att.io/app/services/steps.service.js @@ -0,0 +1,162 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.steps', []) + + .service('stepsService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + this.getByUser = function() { + var deferred = $q.defer(); + + $http.get(urls.steps.getByUser) + .success(function(data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.get = function (engagement, progress) { + var deferred = $q.defer(); + $http.get(urls.steps.get.replace('@engagement',engagement).replace('@progress',progress)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.update = function (stepUuid, postData) { + var deferred = $q.defer(); + $http.put(urls.steps.update.replace('@stepUuid',stepUuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.delete = function (stepUuid) { + var deferred = $q.defer(); + $http.delete(urls.steps.delete.replace('@stepUuid',stepUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.add = function (engagement, postData) { + var deferred = $q.defer(); + $http.post(urls.steps.add.replace('@engagement',engagement), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.edit = function (engagement_uuid, nextstep_uuid,postData) { + var deferred = $q.defer(); + $http.put(urls.steps.edit.replace('@stepUuid',nextstep_uuid).replace('@engUuid',engagement_uuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.order_next_steps = function (engagement_uuid, postData) { + var deferred = $q.defer(); + $http.put(urls.steps.order_next_steps.replace('@engUuid',engagement_uuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.createNextStep = function (checklist_uuid, engUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.steps.createNextStep.replace('@engUuid',engUuid),postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.createChecklistNextStep = function (checklist_uuid, engUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.steps.createChecklistNextStep.replace('@checkListUuid',checklist_uuid).replace('@engUuid',engUuid),postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + + }]); + +})(); diff --git a/d2ice.att.io/app/services/toast.service.js b/d2ice.att.io/app/services/toast.service.js new file mode 100755 index 00000000..15c2e12a --- /dev/null +++ b/d2ice.att.io/app/services/toast.service.js @@ -0,0 +1,92 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + 'use strict'; + + angular.module('ice.services.toast', []) + .service('toastService', ['$rootScope', function ($rootScope) { + var message; + var messageType; + var sticky; + var showMessage = false; + var readMore; + var displayFor = 'all'; + + var setToast = function(incomingMessage, incomingType, options) { + if (incomingMessage && incomingMessage.detail != undefined) + incomingMessage = incomingMessage.detail + if(incomingMessage && incomingType) { + message = incomingMessage; + messageType = incomingType; + sticky = options && options.sticky ? options.sticky : false; + readMore = options && options.readMoreCallback ? options.readMoreCallback : undefined; + displayFor = options && options.displayFor ? options.displayFor : 'all'; + showMessage = true; + $rootScope.showToast = true; + } else { + throw "You must provide both message an type in order to set new message toast" + } + }; + + var clearToast = function() { + message = undefined; + messageType = undefined; + showMessage = false; + displayFor = 'all'; + $rootScope.showToast = false; + }; + + var getToast = function() { + return { + "message": message, + "type": messageType, + "show": showMessage, + "sticky": sticky, + "readMore": readMore, + "displayFor": displayFor + }; + }; + + return { + setToast: setToast, + clearToast: clearToast, + getToast: getToast + }; + }]); +})(); diff --git a/d2ice.att.io/app/services/users.service.js b/d2ice.att.io/app/services/users.service.js new file mode 100755 index 00000000..7d8afcc7 --- /dev/null +++ b/d2ice.att.io/app/services/users.service.js @@ -0,0 +1,322 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.users', []) + .service('usersService', ['$http', '$q', 'cacheService','iceConstants', 'localStorageService', '$state', + 'sessionStorageService', '_', '$log', userService]); + + function userService ($http, $q, cacheService, iceConstants, localStorageService, $state, sessionStorageService, + _, $log) { + var urls = cacheService.get("configuration").urls; + var userDataSessionStorageKey = 'user'; + var userData = sessionStorageService.getJson(userDataSessionStorageKey); + + this.isEngagementEL = function(engagement_team) { + var found_uuid = _.find(engagement_team, {'uuid': userData.uuid}); + if (found_uuid == undefined) + return false; + if (userData && userData.role.name === iceConstants.roles.el) + return true; + return false; + } + + this.isUserInRole = function(role) { + return userData && userData.role && userData.role.name === role; + } + + this.isReviewer = function(user, reviewer_uuid) { + return user && reviewer_uuid && user.uuid == reviewer_uuid; + } + + this.isPeerReviewer = function(user, peer_reviewer_uuid) { + return user && peer_reviewer_uuid && user.uuid == peer_reviewer_uuid; + } + + this.isAdmin = function(user) { + return user && user.role && user.role.name === iceConstants.roles.admin; + }; + + this.updatePassword = function (userUuid, postData) { + var deferred = $q.defer(); + $http.put(urls.auth.updatePassword, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.sendResetPwdInstructions = function (postData) { + var deferred = $q.defer(); + $http.post(urls.auth.sendResetPwdInstructions, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.login = function (postData, t) { + var deferred = $q.defer(); + $http.post(urls.auth.login.replace("/@t", t), postData). + success(function (data, status, headers, config) { + userData = data; + delete userData.password; + userData.jwtToken = data.token; + sessionStorageService.setJson(userDataSessionStorageKey, userData); + + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.register = function (postData) { + var deferred = $q.defer(); + $http.post(urls.auth.register, postData). + success(function (data, status, headers, config) { + userData = data; + userData.jwtToken = data.token; + sessionStorageService.setJson(userDataSessionStorageKey, userData); + + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.addVendorContact = function (postData) { + var deferred = $q.defer(); + $http.post(urls.auth.addVendorContact, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.resendActivationMail = function (user_uuid) { + var deferred = $q.defer(); + $http.get(urls.auth.resendActivationMail.replace("@user_uuid", user_uuid), {skipAuth: true}). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getNotifications = function (userUuid) { + var deferred = $q.defer(); + $http.get(urls.notifications.getNotifications). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.resetNotificationNum = function (userUuid) { + var deferred = $q.defer(); + $http.put(urls.notifications.resetNotificationNum). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.notificationsDelete = function (uuid) { + var deferred = $q.defer(); + $http.delete(urls.notifications.notificationsDelete.replace("@uuid", uuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getNotificationsDescription = function (userUuid,offset,limit) { + var deferred = $q.defer(); + $http.get(urls.notifications.getNotificationsDescription.replace("@userUuid", userUuid).replace("@offset", offset).replace("@limit", limit)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getIceUser = function () { + var deferred = $q.defer(); + $http.get(urls.auth.getIceUser). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateAccount = function (userUuid, putData) { + var deferred = $q.defer(); + $http.put(urls.auth.account, putData). + success(function (data, status, headers, config) { + var oldToken = userData.jwtToken; + userData = data; + userData.jwtToken = oldToken; + sessionStorageService.setJson(userDataSessionStorageKey, userData); + + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.setSSHKey = function (userUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.auth.setSSHKey, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getUserData = function(undefinedCallback) { + if(!userData) { + if(undefinedCallback) { + $log.debug("There is no user data, will invoke callback pass as argument."); + undefinedCallback(); + } else { + $log.debug("There is no user data, will be redirected into /login page."); + $state.go('app.login'); + } + } + + return userData; + }; + + this.resetUserData = function() { + $log.debug('Clearing user from cache...'); + userData = undefined; + sessionStorageService.delete(userDataSessionStorageKey); + localStorageService.setJson("ice.settings.view_type", undefined); + localStorageService.setJson("ice.settings.eng_uuid", undefined); + localStorageService.setJson("ice.settings.sub_id", undefined); + }; + + this.setUserActivationSuccess = function(activationSuccess) { + if(userData) { + userData.activationSuccess = activationSuccess; + sessionStorageService.setJson(userDataSessionStorageKey, userData); + } + }; + + this.getEngagementLeads = function() { + var deferred = $q.defer(); + var user = this.getUserData(); + if(this.isAdmin(user)) { + $http.get(urls.users.engagementleads.get) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + } else { + deferred.reject("Just admin allowed to get engagement leads list."); + } + + return deferred.promise; + }; + + this.activateUser = function(userId, token) { + var deferred = $q.defer(); + + $http.get(urls.users.activate.replace("@userid", userId).replace("@token", token), {skipAuth: true}) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.getRGWASecret = function () { + var deferred = $q.defer(); + $http.get(urls.auth.getRGWASecret). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + }; +})(); diff --git a/d2ice.att.io/app/services/vf.service.js b/d2ice.att.io/app/services/vf.service.js new file mode 100755 index 00000000..8207562a --- /dev/null +++ b/d2ice.att.io/app/services/vf.service.js @@ -0,0 +1,403 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.vf', []) + + .service('vfService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + this.addVfs = function (postData) { + var deferred = $q.defer(); + $http.post(urls.auth.addVfs, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateVfs = function (putData,vf_uuid) { + var deferred = $q.defer(); + $http.put(urls.vf.updateVfs.put.replace('@vf_uuid',vf_uuid),putData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.inviteMembers = function (postData) { + var deferred = $q.defer(); + $http.post(urls.auth.inviteMembers, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getCompanies = function () { + var deferred = $q.defer(); + $http.get(urls.auth.getCompanies). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getDeployTargets = function () { + var deferred = $q.defer(); + $http.get(urls.vf.deployment_target.getDeployTargets). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getECOMPReleases = function () { + var deferred = $q.defer(); + $http.get(urls.vf.ecomp.getECOMPReleases). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + this.getVFVersion = function (vfUuid) { + var deferred = $q.defer(); + $http.get(urls.vf.version.getVFVersion.replace('@vfUuid',vfUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getEngagements = function (userUuid) { + var deferred = $q.defer(); + $http.get(urls.auth.engagements). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getExpandedEngagements = function (postData) { + var deferred = $q.defer(); + $http.post(urls.engagement.engagementsExpanded, postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getSingleEngagement = function (userUuid,engagementUuid) { + var deferred = $q.defer(); + $http.get(urls.auth.single_engagement.replace('@engagementUuid',engagementUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getStarredEngagements = function(){ + var deferred = $q.defer(); + $http.get(urls.engagement.starred_engagement.get). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.putStarredEngagements = function(engagementUuid){ + var deferred = $q.defer(); + var data = {} + data['engagement_uuid'] = engagementUuid; + $http.put(urls.engagement.starred_engagement.put,data). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getRecentEngagements = function(){ + var deferred = $q.defer(); + $http.get(urls.engagement.recent_engagement.get). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getActivities = function (engagementUuid) { + var deferred = $q.defer(); + $http.get(urls.auth.activities.replace('@engagementUuid',engagementUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateProgress = function (engagementUuid, postData) { + var deferred = $q.defer(); + $http.put(urls.engagement.updateProgress.replace('@engagementUuid',engagementUuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateDeployTargets = function (engagementUuid, dt_uuid) { + var deferred = $q.defer(); + $http.put(urls.vf.deployment_target.updateDeployTargets.replace('@engagementUuid',engagementUuid). + replace('@deployment_target_uuid',dt_uuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateECOMPReleases = function (engagementUuid, ECOMP_uuid) { + var deferred = $q.defer(); + $http.put(urls.vf.ecomp.updateECOMPReleases.replace('@engagementUuid',engagementUuid). + replace('@ecomp_uuid', ECOMP_uuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateDaysLeft = function (engagementUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.auth.updateDaysLeft.replace('@engagementUuid',engagementUuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.updateLabEntryDaysLeft = function (engagementUuid, postData) { + var deferred = $q.defer(); + $http.post(urls.auth.updateLabEntryDaysLeft.replace('@engagementUuid',engagementUuid), postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + + this.set_engagement_stage = function(engagementUuid, requested_stage){ + var deferred = $q.defer(); + $http.put(urls.engagement.setStage.replace('@engagementUuid',engagementUuid).replace('@stage',requested_stage)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.exportEngagementsCSV = function (stage, keyword) { + var deferred = $q.defer(); + + if(stage == null || keyword == null) { + deferred.reject("Invalid arguments on engagements export csv.") + } else { + $http({method: 'GET', url: urls.engagement.exportEngagementsCSV.replace('@stage',stage).replace("@keyword", keyword), + headers: {'Content-Type': "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, responseType: "arraybuffer"}). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + } + + return deferred.promise; + }; + + this.archiveEngagement = function(engagementUuid, reason) { + var deferred = $q.defer(); + var putData = {"reason": reason}; + $http.put(urls.engagement.archive.put.replace('@engagementUuid',engagementUuid), putData) + .success(function (data, status, headers, config) { + deferred.resolve(); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.updateEngagementReviewer = function(engagementUuid, userUuid) { + var deferred = $q.defer(); + var putData = {"reviewer": userUuid}; + + $http.put(urls.engagement.reviewer.put.replace('@engagementUuid',engagementUuid), putData) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.updateEngagementPeerReviewer = function(engagementUuid, userUuid) { + var deferred = $q.defer(); + var putData = {"peerreviewer": userUuid}; + + $http.put(urls.engagement.peerreviewer.put.replace('@engagementUuid',engagementUuid), putData) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.switchEngagementReviewers = function(engagementUuid, reviewer_uuid, peer_reviewer_uuid) { + var deferred = $q.defer(); + var putData = {"reviewer": reviewer_uuid, "peerreviewer": peer_reviewer_uuid}; + + $http.put(urls.engagement.switchReviewers.put.replace('@engagementUuid',engagementUuid), putData) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + this.updateEngagement = function(engagement, status) { + var deferred = $q.defer(); + var putData = {"engagement": engagement, "status": status}; + + $http.put(urls.engagement.put.replace('@engagementUuid',engagement.uuid), putData) + .success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }) + .error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + + return deferred.promise; + }; + + + this.remove_user_from_eng = function(postData) { + var deferred = $q.defer(); + if (postData == null) { + deferred.reject("Invalid arguments on remove_user_from_eng.") + } + else { + $http.put(urls.engagement.engagement_team.put, postData).success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }).error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + } + return deferred.promise; + }; + }]); + +})(); diff --git a/d2ice.att.io/app/services/vfc.service.js b/d2ice.att.io/app/services/vfc.service.js new file mode 100755 index 00000000..a6ab0f9f --- /dev/null +++ b/d2ice.att.io/app/services/vfc.service.js @@ -0,0 +1,99 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +(function () { + + 'use strict'; + + angular.module('ice.services.vfc', []) + + .service('vfcService', ['$http', '$q', 'cacheService', function ($http, $q, cacheService) { + + var urls = cacheService.get("configuration").urls; + + this.get = function (vfUuid) { + var deferred = $q.defer(); + $http.get(urls.vfcs.get.replace('@vfUuid',vfUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.delete = function (vfcUuid,vfUuid) { + var deferred = $q.defer(); + $http.delete(urls.vfcs.delete.replace('@vfUuid',vfUuid).replace('@vfcUuid',vfcUuid)). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.add = function (postData) { + var deferred = $q.defer(); + $http.post(urls.vfcs.add ,postData). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + this.getCompanies = function () { + var deferred = $q.defer(); + $http.get(urls.auth.getCompanies). + success(function (data, status, headers, config) { + deferred.resolve({data: data, status: status}); + }). + error(function (data, status, headers, config) { + deferred.reject({message: data, status: status}); + }); + return deferred.promise; + }; + + }]); + +})(); diff --git a/d2ice.att.io/app/styles/buttons.less b/d2ice.att.io/app/styles/buttons.less new file mode 100755 index 00000000..9b3c10e8 --- /dev/null +++ b/d2ice.att.io/app/styles/buttons.less @@ -0,0 +1,38 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. diff --git a/d2ice.att.io/app/styles/fonts.less b/d2ice.att.io/app/styles/fonts.less new file mode 100755 index 00000000..822a9606 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts.less @@ -0,0 +1,110 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +//Omnes_ATT W02 Italic +@font-face { + font-family: omnes-italic; + src: url('fonts/OmnesATT/Omnes_ATTW02Italic.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02Italic.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02Italic.ttf'); +} + +//Omnes_ATT W02 Light +@font-face { + font-family: omnes-light; + src: url('fonts/OmnesATT/Omnes_ATTW02Light.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02Light.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02Light.ttf'); +} + +//Omnes_ATT W02 Light Italic +@font-face { + font-family: omnes-light-italic; + src: url('fonts/OmnesATT/Omnes_ATTW02LightItalic.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02LightItalic.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf'); +} + +//Omnes_ATT W02 Medium +@font-face { + font-family: omnes-medium; + src: url('fonts/OmnesATT/Omnes_ATTW02Medium.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02Medium.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02Medium.ttf'); +} + +//Omnes_ATT W02 Medium Italic +@font-face { + font-family: omnes-medium-italic; + src: url('fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf'); +} + +//Omnes_ATT W02 Regular +@font-face { + font-family: omnes-regular; + src: url('fonts/OmnesATT/Omnes_ATTW02.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02.ttf'); +} + +//Omnes_ATT W02 Bold +@font-face { + font-family: omnes-bold; + src: url('fonts/OmnesATT/Omnes_ATTW02Bold.eot'); + src: url('fonts/OmnesATT/Omnes_ATTW02Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/Omnes_ATTW02Bold.ttf'); +} + +//Omnes_ATT W02 Bold Italic +@font-face { + font-family: omnes-bold-italic; + src: url('fonts/OmnesATT/OmnesATTW02BoldItalic.eot'); + src: url('fonts/OmnesATT/OmnesATTW02BoldItalic.eot?#iefix') format('embedded-opentype'), + url('fonts/OmnesATT/OmnesATTW02BoldItalic.ttf'); +} + + +//ClearviewATT Book +@font-face { + font-family: clearview-book; + src: url('fonts/ClearviewATT/ClearviewATT-Bk.eot'); + src: url('fonts/ClearviewATT/ClearviewATT-Bk.eot?#iefix') format('embedded-opentype'), + url('fonts/ClearviewATT/ClearviewATT-Bk.ttf'); +} diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.eot new file mode 100755 index 00000000..83074fbe Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.svg new file mode 100755 index 00000000..564f750d --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.svg @@ -0,0 +1,424 @@ + + + + +1.0 +ClearviewATT Bd +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf new file mode 100755 index 00000000..7bfb9d5c Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.woff new file mode 100755 index 00000000..b1f00eea Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bd.woff differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.eot new file mode 100755 index 00000000..22646213 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.svg new file mode 100755 index 00000000..0996bb5e --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.svg @@ -0,0 +1,425 @@ + + + + +1.0 +ClearviewATT BdIt +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.ttf new file mode 100755 index 00000000..69b3c834 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.woff new file mode 100755 index 00000000..f2850a6f Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BdIt.woff differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.eot new file mode 100755 index 00000000..a945fb35 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.svg new file mode 100755 index 00000000..27920494 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.svg @@ -0,0 +1,425 @@ + + + + +1.0 +ClearviewATT Bk +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf new file mode 100755 index 00000000..b4390461 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.woff new file mode 100755 index 00000000..53735678 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Bk.woff differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.eot new file mode 100755 index 00000000..4ab66957 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.svg new file mode 100755 index 00000000..c2337a7f --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.svg @@ -0,0 +1,425 @@ + + + + +1.0 +ClearviewATT BkIt +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.ttf new file mode 100755 index 00000000..7e7aa057 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.woff new file mode 100755 index 00000000..55fbfd68 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-BkIt.woff differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.eot new file mode 100755 index 00000000..06a4bf99 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.svg new file mode 100755 index 00000000..40656e14 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.svg @@ -0,0 +1,425 @@ + + + + +1.0 +ClearviewATT Lt +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf new file mode 100755 index 00000000..c9a45c0e Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.woff new file mode 100755 index 00000000..521ee2e9 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-Lt.woff differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.eot b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.eot new file mode 100755 index 00000000..06772919 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.eot differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.svg b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.svg new file mode 100755 index 00000000..bff63e55 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.svg @@ -0,0 +1,424 @@ + + + + +1.0 +ClearviewATT LtIt +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Copyright (c) Terminal Design, Inc, 2005. All rights reserved. +Clearview is a trademark of Terminal Design, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.ttf b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.ttf new file mode 100755 index 00000000..bd7ac471 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.woff b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.woff new file mode 100755 index 00000000..7f8a2741 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/ClearviewATT/ClearviewATT-LtIt.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/AT&T Variation ID.tab b/d2ice.att.io/app/styles/fonts/OmnesATT/AT&T Variation ID.tab new file mode 100755 index 00000000..e0085fd9 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/AT&T Variation ID.tab @@ -0,0 +1,9 @@ + Variation ID tier +602 24875 1243116 Omnes_ATT W02 Italic 1243117 38 CUS24875W02 +602 24872 1243119 Omnes_ATT W02 Light 1243120 38 CUS24872W02 +602 24873 1243122 Omnes_ATT W02 Light Italic 1243123 38 CUS24873W02 +602 24876 1243125 Omnes_ATT W02 Medium 1243126 38 CUS24876W02 +602 24877 1243128 Omnes_ATT W02 Medium Italic 1243129 38 CUS24877W02 +602 24874 1243131 Omnes_ATT W02 Regular 1243132 38 CUS24874W02 +602 26730 1418220 Omnes_ATT W02 Bold 1418221 38 CUS26730W02 +602 26731 1418223 Omnes_ATT W02 Bold Italic 1418224 38 CUS26731W02 diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.eot new file mode 100755 index 00000000..da1c1d1e Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.svg new file mode 100755 index 00000000..916075aa --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.svg @@ -0,0 +1,3671 @@ + + + + +1.0 +Omnes_ATT W02 Bold Italic +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.ttf new file mode 100755 index 00000000..4f35e1f9 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.woff new file mode 100755 index 00000000..1722dce9 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/OmnesATTW02BoldItalic.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.eot new file mode 100755 index 00000000..39e1eae7 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.svg new file mode 100755 index 00000000..73923de0 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.svg @@ -0,0 +1,3694 @@ + + + + +1.0 +Omnes_ATT W02 +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated by RoboFog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.ttf new file mode 100755 index 00000000..2342be4b Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.woff new file mode 100755 index 00000000..0acf1f02 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot new file mode 100755 index 00000000..0e5892d1 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg new file mode 100755 index 00000000..9670981b --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.svg @@ -0,0 +1,4365 @@ + + + + +1.0 +Omnes_ATT W02 Bold +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf new file mode 100755 index 00000000..94934087 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff new file mode 100755 index 00000000..1dfd28f2 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Bold.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot new file mode 100755 index 00000000..8723e66f Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg new file mode 100755 index 00000000..dbf33a97 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.svg @@ -0,0 +1,3799 @@ + + + + +1.0 +Omnes_ATT W02 Italic +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated by RoboFog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf new file mode 100755 index 00000000..4ef76763 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff new file mode 100755 index 00000000..750d90d3 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Italic.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.eot new file mode 100755 index 00000000..280d111f Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.svg new file mode 100755 index 00000000..85f39f50 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.svg @@ -0,0 +1,3872 @@ + + + + +1.0 +Omnes_ATT W02 Light +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf new file mode 100755 index 00000000..273761ab Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.woff new file mode 100755 index 00000000..b12120a8 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Light.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.eot new file mode 100755 index 00000000..2da6a99e Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.svg new file mode 100755 index 00000000..ab6936ce --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.svg @@ -0,0 +1,3030 @@ + + + + +1.0 +Omnes_ATT W02 Light Italic +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf new file mode 100755 index 00000000..5153cee6 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.woff new file mode 100755 index 00000000..cf9993a1 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02LightItalic.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot new file mode 100755 index 00000000..37c715f5 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg new file mode 100755 index 00000000..ad72d0be --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.svg @@ -0,0 +1,2473 @@ + + + + +1.0 +Omnes_ATT W02 Medium +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf new file mode 100755 index 00000000..27404254 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff new file mode 100755 index 00000000..5cff69ad Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02Medium.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot new file mode 100755 index 00000000..84ba4acc Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg new file mode 100755 index 00000000..eca8f738 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.svg @@ -0,0 +1,3837 @@ + + + + +1.0 +Omnes_ATT W02 Medium Italic +Monotype Imaging Inc. + +Fonts.com WebFonts +http://webfonts.fonts.com +Home of the Web fonts + + +http://webfonts.fonts.com/Legal + +Generated in 2010 by FontLab Studio. Copyright info pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz AÁÀÂÄÅÃÆ CÇ DÐ EÉÈÊË I Í Ì Î Ï NÑ +OÓÒÔÖÕØŒ SŠ UÚÙÛÜ YÝŸ ZŽ Þ aáàâäåãæ cç dð eéèêë i ı í ì î ï nñ oóòôöõøœ sšß uúùûü yýÿ zž +þ 1234567890 ½ ¼ ¾ % ‰ $¢£¥ƒ€¤ † ‡ § ¶ # ^~µ +×± < = > ÷¬ !¡?¿ " & ' * ° . , : ; () [ \ ] {} / | +¦ _ ‚ „ … ‹› «» ‘ ’ “ ” • ­ - – — @ © ® ™ ªº ¹²³ ´ ` ˆ ˜ ¨ ¯ · ¸ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf new file mode 100755 index 00000000..46bfd531 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff new file mode 100755 index 00000000..20419ed3 Binary files /dev/null and b/d2ice.att.io/app/styles/fonts/OmnesATT/Omnes_ATTW02MediumItalic.woff differ diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/demo-async.htm b/d2ice.att.io/app/styles/fonts/OmnesATT/demo-async.htm new file mode 100755 index 00000000..f7a43e6a --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/demo-async.htm @@ -0,0 +1,169 @@ + + + + Webfonts Demo + + + + + + +
+

Fonts.com Web fonts

+

@font-face implementation instructions

+

The asynchronous script loads in the background allowing the other elements of your website to load first and undeterred.

+
+

The fonts contained in this kit are:

+
+
Omnes_ATT W02 Italic
+
Omnes_ATT W02 Light
+
Omnes_ATT W02 Light Italic
+
Omnes_ATT W02 Medium
+
Omnes_ATT W02 Medium Italic
+
Omnes_ATT W02 Regular
+
Omnes_ATT W02 Bold
+
Omnes_ATT W02 Bold Italic
+ +
+
+ Click here for css only web fonts implementation +
+
+

CSS Implementation Guidelines

+

You and any third party web font hosting service are responsible for ensuring that the font software in the self-hosting kit, in its original format, can only be used on the Web Sites for which the self-hosting kit was downloaded and cannot be used or referenced by any other web site. This includes, but is not limited to installing adequate technical protection measures that restrict the use and/or access to the font software, for instance by utilizing JavaScript or access control mechanism for cross-origin resource sharing and protecting against use on web sites other than the Web Sites for which the self-hosting kit was downloaded by restricting domain access only to such Web Sites. You must also retain the pageview tracking code on any Web Site that you self-host. In the event this Agreement terminates for any reason, the font software included with the self-hosting kit must be deleted from the server and all copies must be destroyed or returned to Monotype Imaging.

+

View "WEB FONT SOFTWARE" LICENSE AGREEMENT

+

Asynchronous Implementation (Requires JavaScript)

+

Font file names have been obfuscated to protect the font software. You can identify font format based on file ending:

+
    +
  • 1 - TrueType (ttf)
  • +
  • 2 - Embedded OpenType (eot)
  • +
  • 3 - Web Open Font Format (woff)
  • +
  • 4 - Scalable Vector Graphics (svg)
  • +
+

Copy and paste following code in head section of the page

+
+ +

Licensing information should be included within the CSS

+
/*
+This CSS resource incorporates links to font software which is the valuable copyrighted
+property of Monotype Imaging and/or its suppliers. You may not attempt to copy, install,
+redistribute, convert, modify or reverse engineer this font software. Please contact Monotype
+Imaging with any questions regarding Web Fonts:  http://webfonts.fonts.com
+*/
+
+
+ + diff --git a/d2ice.att.io/app/styles/fonts/OmnesATT/demo.htm b/d2ice.att.io/app/styles/fonts/OmnesATT/demo.htm new file mode 100755 index 00000000..edb62ad3 --- /dev/null +++ b/d2ice.att.io/app/styles/fonts/OmnesATT/demo.htm @@ -0,0 +1,155 @@ + + + + Webfonts Demo + + + + + +
+

Fonts.com Web fonts

+

@font-face implementation instructions

+
+

The fonts contained in this kit are:

+
+
Omnes_ATT W02 Italic
+
Omnes_ATT W02 Light
+
Omnes_ATT W02 Light Italic
+
Omnes_ATT W02 Medium
+
Omnes_ATT W02 Medium Italic
+
Omnes_ATT W02 Regular
+
Omnes_ATT W02 Bold
+
Omnes_ATT W02 Bold Italic
+ +
+
+ Click here for asynchronous web fonts implementation +
+
+

CSS Implementation Guidelines

+

You and any third party web font hosting service are responsible for ensuring that the font software in the self-hosting kit, in its original format, can only be used on the Web Sites for which the self-hosting kit was downloaded and cannot be used or referenced by any other web site. This includes, but is not limited to installing adequate technical protection measures that restrict the use and/or access to the font software, for instance by utilizing JavaScript or access control mechanism for cross-origin resource sharing and protecting against use on web sites other than the Web Sites for which the self-hosting kit was downloaded by restricting domain access only to such Web Sites. You must also retain the pageview tracking code on any Web Site that you self-host. In the event this Agreement terminates for any reason, the font software included with the self-hosting kit must be deleted from the server and all copies must be destroyed or returned to Monotype Imaging.

+

View "WEB FONT SOFTWARE" LICENSE AGREEMENT

+

Font file names have been obfuscated to protect the font software. You can identify font format based on file ending:

+
    +
  • 1 - TrueType (ttf)
  • +
  • 2 - Embedded OpenType (eot)
  • +
  • 3 - Web Open Font Format (woff)
  • +
  • 4 - Scalable Vector Graphics (svg)
  • +
+

Copy and paste following code in head section of the page

+
+ +

Licensing information should be included within the CSS

+
/*
+This CSS resource incorporates links to font software which is the valuable copyrighted
+property of Monotype Imaging and/or its suppliers. You may not attempt to copy, install,
+redistribute, convert, modify or reverse engineer this font software. Please contact Monotype
+Imaging with any questions regarding Web Fonts:  http://webfonts.fonts.com
+*/
+
+
+ + diff --git a/d2ice.att.io/app/styles/form.less b/d2ice.att.io/app/styles/form.less new file mode 100755 index 00000000..98d221e6 --- /dev/null +++ b/d2ice.att.io/app/styles/form.less @@ -0,0 +1,54 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +label { + font-weight: 400; +} + +.ice-form-label { + .s_14_r; + + &.required:before { + content: '* '; + .q_14_m; + } +} + +.ice-form-error { + .q_14_r; +} diff --git a/d2ice.att.io/app/styles/global.less b/d2ice.att.io/app/styles/global.less new file mode 100755 index 00000000..5a521ed6 --- /dev/null +++ b/d2ice.att.io/app/styles/global.less @@ -0,0 +1,174 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +html { + height: 100%; +} + +body { + .m_14_r; + height: 100%; +} + +* { + box-sizing: border-box; + margin: 0; + outline: none; + -webkit-transition: none !important; + transition: none !important; +} + + + +/* Extra small devices (phones, less than 768px) */ +/* No media query since this is the default in Bootstrap */ +@media (max-width: 992px) { + .navbar-header { + float: none; + } + .navbar-left,.navbar-right { + float: none !important; + } + .navbar-toggle { + display: block; + } + .navbar-collapse { + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); + } + .navbar-fixed-top { + top: 0; + border-width: 0 0 1px; + } + .navbar-collapse.collapse { + display: none!important; + } + .navbar-nav { + float: none!important; + margin-top: 7.5px; + } + .navbar-nav>li { + float: none; + } + .navbar-nav>li>a { + padding-top: 10px; + padding-bottom: 10px; + } + .collapse.in{ + display:block !important; + } +} + + + + +/* Small devices (tablets, 768px and up) */ +@media (min-width:768px) { html, body { + // height: 100%; + // overflow: auto; + } } + + + + + + +/* Medium devices (desktops, 992px and up) */ +@media (min-width: 998px) { html, body { + height: 100%; + overflow: hidden; + } } + + + + + + +body.ice { + + .container-fluid { height: 100%; } + .container-fluid > .row { height: 100%; } + .container-fluid > .row > #main { height: 100%; } + + #header-title { + height: 130px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + h1 {.p_24; margin: 20px 0 10px 0;} + h2 {.p_16_m; margin: 0;} + } + + #content { + padding: 20px; + /*height: 100%;*/ + + .row { + height: 100%; + } + } + + a, + a:hover, + a:active, + a:focus + { + .m_16_r; + text-decoration: none; + cursor: pointer; + } + + ul { + padding: 0; + } + +} + +.bold { + font-weight: bold; +} +.italic { + font-style: italic; +} +.line-through { + text-decoration-line: line-through; +} +.underline { + text-decoration-line: underline; +} \ No newline at end of file diff --git a/d2ice.att.io/app/styles/images/Collaborate.png b/d2ice.att.io/app/styles/images/Collaborate.png new file mode 100755 index 00000000..97a7b52d Binary files /dev/null and b/d2ice.att.io/app/styles/images/Collaborate.png differ diff --git a/d2ice.att.io/app/styles/images/Incubate.png b/d2ice.att.io/app/styles/images/Incubate.png new file mode 100755 index 00000000..bd30eb84 Binary files /dev/null and b/d2ice.att.io/app/styles/images/Incubate.png differ diff --git a/d2ice.att.io/app/styles/images/Validate.png b/d2ice.att.io/app/styles/images/Validate.png new file mode 100755 index 00000000..993f7efe Binary files /dev/null and b/d2ice.att.io/app/styles/images/Validate.png differ diff --git a/d2ice.att.io/app/styles/images/actions-sprite.png b/d2ice.att.io/app/styles/images/actions-sprite.png new file mode 100755 index 00000000..df1b6f14 Binary files /dev/null and b/d2ice.att.io/app/styles/images/actions-sprite.png differ diff --git a/d2ice.att.io/app/styles/images/btn1.png b/d2ice.att.io/app/styles/images/btn1.png new file mode 100755 index 00000000..16d4c049 Binary files /dev/null and b/d2ice.att.io/app/styles/images/btn1.png differ diff --git a/d2ice.att.io/app/styles/images/btn2.png b/d2ice.att.io/app/styles/images/btn2.png new file mode 100755 index 00000000..fb47af39 Binary files /dev/null and b/d2ice.att.io/app/styles/images/btn2.png differ diff --git a/d2ice.att.io/app/styles/images/btn3.png b/d2ice.att.io/app/styles/images/btn3.png new file mode 100755 index 00000000..c8599120 Binary files /dev/null and b/d2ice.att.io/app/styles/images/btn3.png differ diff --git a/d2ice.att.io/app/styles/images/btnX.png b/d2ice.att.io/app/styles/images/btnX.png new file mode 100755 index 00000000..08b2136f Binary files /dev/null and b/d2ice.att.io/app/styles/images/btnX.png differ diff --git a/d2ice.att.io/app/styles/images/d2sandbox_logos-150x30.png b/d2ice.att.io/app/styles/images/d2sandbox_logos-150x30.png new file mode 100755 index 00000000..ceb58efb Binary files /dev/null and b/d2ice.att.io/app/styles/images/d2sandbox_logos-150x30.png differ diff --git a/d2ice.att.io/app/styles/images/d2sandbox_logos_color-150x30.png b/d2ice.att.io/app/styles/images/d2sandbox_logos_color-150x30.png new file mode 100755 index 00000000..e17fd63e Binary files /dev/null and b/d2ice.att.io/app/styles/images/d2sandbox_logos_color-150x30.png differ diff --git a/d2ice.att.io/app/styles/images/flags.png b/d2ice.att.io/app/styles/images/flags.png new file mode 100755 index 00000000..89b1f1cd Binary files /dev/null and b/d2ice.att.io/app/styles/images/flags.png differ diff --git a/d2ice.att.io/app/styles/images/flags@2x.png b/d2ice.att.io/app/styles/images/flags@2x.png new file mode 100755 index 00000000..3624e635 Binary files /dev/null and b/d2ice.att.io/app/styles/images/flags@2x.png differ diff --git a/d2ice.att.io/app/styles/images/home_bg1-1920x1138.jpg b/d2ice.att.io/app/styles/images/home_bg1-1920x1138.jpg new file mode 100755 index 00000000..1a56a1eb Binary files /dev/null and b/d2ice.att.io/app/styles/images/home_bg1-1920x1138.jpg differ diff --git a/d2ice.att.io/app/styles/images/icons-sprite-v2.png b/d2ice.att.io/app/styles/images/icons-sprite-v2.png new file mode 100755 index 00000000..ebba7cb4 Binary files /dev/null and b/d2ice.att.io/app/styles/images/icons-sprite-v2.png differ diff --git a/d2ice.att.io/app/styles/images/icons-sprite-v3.png b/d2ice.att.io/app/styles/images/icons-sprite-v3.png new file mode 100755 index 00000000..0c39540a Binary files /dev/null and b/d2ice.att.io/app/styles/images/icons-sprite-v3.png differ diff --git a/d2ice.att.io/app/styles/images/icons-sprite-v4.png b/d2ice.att.io/app/styles/images/icons-sprite-v4.png new file mode 100755 index 00000000..757006e0 Binary files /dev/null and b/d2ice.att.io/app/styles/images/icons-sprite-v4.png differ diff --git a/d2ice.att.io/app/styles/images/icons-sprite-v5.png b/d2ice.att.io/app/styles/images/icons-sprite-v5.png new file mode 100755 index 00000000..ab0d5a25 Binary files /dev/null and b/d2ice.att.io/app/styles/images/icons-sprite-v5.png differ diff --git a/d2ice.att.io/app/styles/images/icons-sprite.png b/d2ice.att.io/app/styles/images/icons-sprite.png new file mode 100755 index 00000000..97b98b4b Binary files /dev/null and b/d2ice.att.io/app/styles/images/icons-sprite.png differ diff --git a/d2ice.att.io/app/styles/images/profiles-sprite.png b/d2ice.att.io/app/styles/images/profiles-sprite.png new file mode 100755 index 00000000..fda15cc3 Binary files /dev/null and b/d2ice.att.io/app/styles/images/profiles-sprite.png differ diff --git a/d2ice.att.io/app/styles/images/steps-sprite.png b/d2ice.att.io/app/styles/images/steps-sprite.png new file mode 100755 index 00000000..f71abf72 Binary files /dev/null and b/d2ice.att.io/app/styles/images/steps-sprite.png differ diff --git a/d2ice.att.io/app/styles/images/top.jpg b/d2ice.att.io/app/styles/images/top.jpg new file mode 100755 index 00000000..7764a937 Binary files /dev/null and b/d2ice.att.io/app/styles/images/top.jpg differ diff --git a/d2ice.att.io/app/styles/images/wait.gif b/d2ice.att.io/app/styles/images/wait.gif new file mode 100755 index 00000000..32446bd7 Binary files /dev/null and b/d2ice.att.io/app/styles/images/wait.gif differ diff --git a/d2ice.att.io/app/styles/mixins.less b/d2ice.att.io/app/styles/mixins.less new file mode 100755 index 00000000..e34c4344 --- /dev/null +++ b/d2ice.att.io/app/styles/mixins.less @@ -0,0 +1,381 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +@import "variables"; + +.f-color { + .a {color: @main_color_a;} + .b {color: @main_color_b;} + .c {color: @main_color_c;} + .d {color: @main_color_d;} + .e {color: @main_color_e;} + .f {color: @main_color_f;} + .g {color: @main_color_g;} + .h {color: @main_color_h;} + .i {color: @main_color_i;} + .j {color: @main_color_j;} + .k {color: @main_color_k;} + .l {color: @main_color_l;} + .m {color: @main_color_m;} + .n {color: @main_color_n;} + .o {color: @main_color_o;} + .p {color: @main_color_p;} + + .q {color: @func_color_q;} + .r {color: @func_color_r;} + .s {color: @func_color_s;} + .x {color: @func_color_x;} + + + .t {color: @tlv_color_t;} + .u {color: @tlv_color_u;} + .v {color: @tlv_color_v;} + + .w {color: @bg_color_a;} + + +} + +.f-type { + ._36 { + font-family: @font-omnes-light; + font-size: 36px; + } + ._36_m { + font-family: @font-omnes-medium; + font-size: 36px; + } + ._26 { + font-family: @font-omnes-light; + font-size: 26px; + } + ._26_m { + font-family: @font-omnes-medium; + font-size: 26px; + } + ._24 { + font-family: @font-omnes-light; + font-size: 24px; + } + ._24_m { + font-family: @font-omnes-medium; + font-size: 24px; + } + ._24_r { + font-family: @font-omnes-regular; + font-size: 24px; + } + ._22 { + font-family: @font-omnes-light; + font-size: 22px; + } + ._22_m { + font-family: @font-omnes-medium; + font-size: 22px; + } + ._20 { + font-family: @font-omnes-light; + font-size: 20px; + } + ._20_m { + font-family: @font-omnes-medium; + font-size: 20px; + } + ._18 { + font-family: @font-omnes-light; + font-size: 18px; + } + ._18_r { + font-family: @font-omnes-regular; + font-size: 18px; + } + ._18_m { + font-family: @font-omnes-medium; + font-size: 18px; + } + ._16_i { + font-family: @font-omnes-medium-italic; + font-size: 16px; + } + ._16_r { + font-family: @font-omnes-regular; + font-size: 16px; + } + ._16_m { + font-family: @font-omnes-medium; + font-size: 16px; + } + ._14_r { + font-family: @font-omnes-regular; + font-size: 14px; + } + ._14_m { + font-family: @font-omnes-medium; + font-size: 14px; + } + ._14_i { + font-family: @font-omnes-medium-italic; + font-size: 14px; + } + ._13_r { + font-family: @font-omnes-regular; + font-size: 13px; + } + ._13_m { + font-family: @font-omnes-medium; + font-size: 13px; + } + ._13_i { + font-family: @font-omnes-medium-italic; + font-size: 13px; + } + ._12_r { + font-family: @font-omnes-regular; + font-size: 12px; + } + ._12_m { + font-family: @font-omnes-medium; + font-size: 12px; + } + ._12_i { + font-family: @font-omnes-medium-italic; + font-size: 12px; + } + ._10_r { + font-family: @font-omnes-regular; + font-size: 10px; + } + ._10_m { + font-family: @font-omnes-medium; + font-size: 10px; + } +} + +.buildForColor(a); +.buildForColor(b); +.buildForColor(c); +.buildForColor(d); +.buildForColor(e); +.buildForColor(f); +.buildForColor(g); +.buildForColor(h); +.buildForColor(i); +.buildForColor(j); +.buildForColor(k); +.buildForColor(l); +.buildForColor(m); +.buildForColor(n); +.buildForColor(o); +.buildForColor(p); + +.buildForFuncColor(q); +.buildForFuncColor(r); +.buildForFuncColor(s); +.buildForFuncColor(x); + +.buildForTlvColor(t); +.buildForTlvColor(u); +.buildForTlvColor(v); + + +.buildForColor(@c){ + .@{c}_36 { color: ~"@{main_color_@{c}}"; .f-type > ._36;} + .@{c}_36_m { color: ~"@{main_color_@{c}}"; .f-type > ._36_m;} + .@{c}_26 { color: ~"@{main_color_@{c}}"; .f-type > ._26;} + .@{c}_26_m { color: ~"@{main_color_@{c}}"; .f-type > ._26_m;} + .@{c}_24 { color: ~"@{main_color_@{c}}"; .f-type > ._24;} + .@{c}_24_m { color: ~"@{main_color_@{c}}"; .f-type > ._24_m;} + .@{c}_24_r { color: ~"@{main_color_@{c}}"; .f-type > ._24_r;} + .@{c}_22 { color: ~"@{main_color_@{c}}"; .f-type > ._22;} + .@{c}_22_m { color: ~"@{main_color_@{c}}"; .f-type > ._22_m;} + .@{c}_20 { color: ~"@{main_color_@{c}}"; .f-type > ._20;} + .@{c}_20_m { color: ~"@{main_color_@{c}}"; .f-type > ._20_m;} + .@{c}_18 { color: ~"@{main_color_@{c}}"; .f-type > ._18;} + .@{c}_18_r { color: ~"@{main_color_@{c}}"; .f-type > ._18_r;} + .@{c}_18_m { color: ~"@{main_color_@{c}}"; .f-type > ._18_m;} + .@{c}_16_i { color: ~"@{main_color_@{c}}"; .f-type > ._16_i;} + .@{c}_16_r { color: ~"@{main_color_@{c}}"; .f-type > ._16_r;} + .@{c}_16_m { color: ~"@{main_color_@{c}}"; .f-type > ._16_m;} + .@{c}_14_r { color: ~"@{main_color_@{c}}"; .f-type > ._14_r;} + .@{c}_14_m { color: ~"@{main_color_@{c}}"; .f-type > ._14_m;} + .@{c}_14_i { color: ~"@{main_color_@{c}}"; .f-type > ._14_i;} + .@{c}_13_r { color: ~"@{main_color_@{c}}"; .f-type > ._13_r;} + .@{c}_13_m { color: ~"@{main_color_@{c}}"; .f-type > ._13_m;} + .@{c}_13_i { color: ~"@{main_color_@{c}}"; .f-type > ._13_i;} + .@{c}_12_r { color: ~"@{main_color_@{c}}"; .f-type > ._12_r;} + .@{c}_12_m { color: ~"@{main_color_@{c}}"; .f-type > ._12_m;} + .@{c}_12_i { color: ~"@{main_color_@{c}}"; .f-type > ._12_i;} + .@{c}_10_r { color: ~"@{main_color_@{c}}"; .f-type > ._10_r;} + .@{c}_10_m { color: ~"@{main_color_@{c}}"; .f-type > ._10_m;} + +} + +.buildForFuncColor(@c){ + .@{c}_36 { color: ~"@{func_color_@{c}}"; .f-type > ._36;} + .@{c}_36_m { color: ~"@{func_color_@{c}}"; .f-type > ._36_m;} + .@{c}_26 { color: ~"@{func_color_@{c}}"; .f-type > ._26;} + .@{c}_26_m { color: ~"@{func_color_@{c}}"; .f-type > ._26_m;} + .@{c}_24 { color: ~"@{func_color_@{c}}"; .f-type > ._24;} + .@{c}_24_m { color: ~"@{func_color_@{c}}"; .f-type > ._24_m;} + .@{c}_24_r { color: ~"@{func_color_@{c}}"; .f-type > ._24_r;} + .@{c}_22 { color: ~"@{func_color_@{c}}"; .f-type > ._22;} + .@{c}_22_m { color: ~"@{func_color_@{c}}"; .f-type > ._22_m;} + .@{c}_20 { color: ~"@{func_color_@{c}}"; .f-type > ._20;} + .@{c}_20_m { color: ~"@{func_color_@{c}}"; .f-type > ._20_m;} + .@{c}_18 { color: ~"@{func_color_@{c}}"; .f-type > ._18;} + .@{c}_18_r { color: ~"@{func_color_@{c}}"; .f-type > ._18_r;} + .@{c}_18_m { color: ~"@{func_color_@{c}}"; .f-type > ._18_m;} + .@{c}_16_r { color: ~"@{func_color_@{c}}"; .f-type > ._16_r;} + .@{c}_16_m { color: ~"@{func_color_@{c}}"; .f-type > ._16_m;} + .@{c}_14_r { color: ~"@{func_color_@{c}}"; .f-type > ._14_r;} + .@{c}_14_m { color: ~"@{func_color_@{c}}"; .f-type > ._14_m;} + .@{c}_14_i { color: ~"@{func_color_@{c}}"; .f-type > ._14_i;} + .@{c}_13_r { color: ~"@{func_color_@{c}}"; .f-type > ._13_r;} + .@{c}_13_m { color: ~"@{func_color_@{c}}"; .f-type > ._13_m;} + .@{c}_13_i { color: ~"@{func_color_@{c}}"; .f-type > ._13_i;} + .@{c}_12_r { color: ~"@{func_color_@{c}}"; .f-type > ._12_r;} + .@{c}_12_m { color: ~"@{func_color_@{c}}"; .f-type > ._12_m;} + .@{c}_12_i { color: ~"@{func_color_@{c}}"; .f-type > ._12_i;} +} + + +.buildForTlvColor(@c){ + .@{c}_36 { color: ~"@{tlv_color_@{c}}"; .f-type > ._36;} + .@{c}_36_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._36_m;} + .@{c}_26 { color: ~"@{tlv_color_@{c}}"; .f-type > ._26;} + .@{c}_26_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._26_m;} + .@{c}_24 { color: ~"@{tlv_color_@{c}}"; .f-type > ._24;} + .@{c}_24_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._24_m;} + .@{c}_24_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._24_r;} + .@{c}_22 { color: ~"@{tlv_color_@{c}}"; .f-type > ._22;} + .@{c}_22_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._22_m;} + .@{c}_20 { color: ~"@{tlv_color_@{c}}"; .f-type > ._20;} + .@{c}_20_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._20_m;} + .@{c}_18 { color: ~"@{tlv_color_@{c}}"; .f-type > ._18;} + .@{c}_18_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._18_r;} + .@{c}_18_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._18_m;} + .@{c}_16_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._16_r;} + .@{c}_16_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._16_m;} + .@{c}_14_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._14_r;} + .@{c}_14_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._14_m;} + .@{c}_14_i { color: ~"@{tlv_color_@{c}}"; .f-type > ._14_i;} + .@{c}_13_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._13_r;} + .@{c}_13_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._13_m;} + .@{c}_13_i { color: ~"@{tlv_color_@{c}}"; .f-type > ._13_i;} + .@{c}_12_r { color: ~"@{tlv_color_@{c}}"; .f-type > ._12_r;} + .@{c}_12_m { color: ~"@{tlv_color_@{c}}"; .f-type > ._12_m;} + .@{c}_12_i { color: ~"@{tlv_color_@{c}}"; .f-type > ._12_i;} +} + +.disabled { + opacity: 0.4 !important; + cursor: auto; + background-color: transparent; + pointer-events: none; +} + +.circle(@size) { + border-radius: 50%; + width: @size; + height: @size; +} + +.step-progress(@size, @color, @width) { + position: relative; + .circle { + .circle(@size); + display: inline-block; + background-color: @color; + } + .line { + border-bottom: solid 2px @color; + position: absolute; + top: @size/2-1; + width: @width; + } + .text { + position: absolute; + top: -5px; + margin-left: 10px; + .a_16_m; + } +} + +.step-progress-dashed(@size, @color, @width) { + position: relative; + .circle { + .circle(@size); + display: inline-block; + background-color: #ffffff; + border: dashed 1px @color; + } + .line { + border-bottom: dashed 1px @color; + position: absolute; + top: @size/2-1; + width: @width; + } + .text { + position: absolute; + top: -5px; + margin-left: 10px; + .a_16_m; + } +} + +.step-progress-solid(@size, @color, @width) { + position: relative; + .circle { + .circle(@size); + display: inline-block; + background-color: #ffffff; + border: solid 1px @color; + } + .line { + border-bottom: solid 1px @color; + position: absolute; + top: @size/2-1; + width: @width; + } + .text { + position: absolute; + top: -5px; + margin-left: 10px; + .a_16_m; + } +} diff --git a/d2ice.att.io/app/styles/modals.less b/d2ice.att.io/app/styles/modals.less new file mode 100755 index 00000000..b6bf1205 --- /dev/null +++ b/d2ice.att.io/app/styles/modals.less @@ -0,0 +1,102 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/* Overrides bootstrap modal */ +.modal-content { + border: 6px solid #1370A3; + border-radius: 0; + padding: 30px 30px; + + .modal-header { + + border-bottom: none; + border-top: none; + padding: 0; + + h2, h3 { + .a_24_m; + margin-bottom: 10px; + } + + .close { + outline: none; + .sprite; + .sprite.close; + display: block; + opacity: 1; + position: absolute; + top: 10px; + right: 7px; + + span { + display: none; + } + } + } + + .modal-body { + padding: 0; + } + + .modal-footer { + border-top: none; + padding: 0; + + .btn { + width: 100%; + } + + .btn4Confirmation { + width: 20%; + } + + .btn-primary { + border: 1px solid #8799A3; + border-radius: 6px; + background: #1E79B0; /* For browsers that do not support gradients */ + background: -webkit-linear-gradient(#1E79B0, #62ADD5); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#1E79B0, #62ADD5); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#1E79B0, #62ADD5); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#1E79B0, #62ADD5); /* Standard syntax (must be last) */ + } + + } + +} + + diff --git a/d2ice.att.io/app/styles/sprite.less b/d2ice.att.io/app/styles/sprite.less new file mode 100755 index 00000000..ec729a15 --- /dev/null +++ b/d2ice.att.io/app/styles/sprite.less @@ -0,0 +1,128 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.sprite { background: url('images/icons-sprite-v5.png') no-repeat top left; width: 20px; height: 20px; } +.profiles-sprite { background: url('images/profiles-sprite.png') no-repeat top left; width: 40px; height: 28px; } +.steps-sprite {background-image: url(images/steps-sprite.png); background-repeat: no-repeat; display: block;} +.actions-sprite { background: url('images/actions-sprite.png') no-repeat top left; width: 15px; height: 15px; } + +.actions-sprite.delete_large { background-position: 0 0; } +.actions-sprite.reject_large { background-position: -25px 0; } +.actions-sprite.approve_large { background-position: -50px 0; } + +.sprite.added { background-position: 0 0; } +.sprite.approve { background-position: -30px 0; } +.sprite.complete { background-position: -60px 0; } +.sprite.electricity { background-position: -90px 0; } +.sprite.invite { background-position: -120px 0; } +.sprite.upload { background-position: -150px 0; } +.sprite.add { background-position: -180px 0; width: 18px; height: 18px; } +.sprite.success { background-position: -208px 0; width: 15px; height: 15px; } +.sprite.delete { background-position: -233px 0; width: 15px; height: 15px; } +.sprite.edit-large { background-position: -258px 0; height: 18px; } +.sprite.edit-medium { background-position: -288px 0; width: 17px; height: 16px; } +.sprite.edit-small { background-position: -315px 0; width: 15px; height: 14px; } +.sprite.approved { background-position: -340px 0; width: 12px; height: 12px; } +.sprite.pendingnon-el { background-position: -362px 0; width: 12px; height: 12px; } +.sprite.pending { background-position: -384px 0; width: 12px; height: 12px; } +.sprite.todo { background-position: -406px 0; width: 12px; height: 12px; } +.sprite.amburger { background-position: -428px 0; width: 12px; height: 12px; } +.sprite.question-mark { background-position: -450px 0; width: 18px; height: 18px; } +.sprite.delete-circle { background-position: -478px 0; width: 15px; height: 15px; } +.sprite.close { background-position: -503px 0; width: 15px; height: 15px; } + +.sprite.automation-state { background-position: -529px 0; width:15px; height:15px;} +.sprite.review-state-active { background-position: -554px 0; width:15px; height:15px;} +.sprite.review-state { background-position: -579px 0; width:15px; height:15px;} +.sprite.peer_review-state-active { background-position: -604px 0; width:15px; height:15px;} +.sprite.peer_review-state { background-position: -629px 0; width:15px; height:15px;} +.sprite.approval-state-active { background-position: -654px 0; width:15px; height:15px;} +.sprite.approval-state { background-position: -679px 0; width:15px; height:15px;} +.sprite.handoff-state-active { background-position: -704px 0; width:15px; height:15px;} +.sprite.handoff-state { background-position: -729px 0; width:15px; height:15px;} +.sprite.closed-state-active { background-position: -754px 0; width:15px; height:15px;} +.sprite.closed-state { background-position: -779px 0; width:15px; height:15px;} +.sprite.active-cl { background-position: -804px 0; width:15px; height:15px;} +.sprite.delete-cl { background-position: -829px 0; width:15px; height:15px;} +.sprite.denied-cl { background-position: -854px 0; width:15px; height:15px;} +.sprite.approved-cl { background-position: -879px 0; width: 15px;height:15px;} +.sprite.denied-cl-btn-active { background-position: -904px 0; width: 25px; height: 25px; } +.sprite.denied-cl-btn { background-position: -939px 0; width: 25px; height: 25px; } +.sprite.approved-cl-btn-active { background-position: -974px 0; width: 25px; height: 25px; } +.sprite.approved-cl-btn { background-position: -1009px 0; width: 25px; height: 25px; } +.sprite.not-relevant-btn-active { background-position: -1044px 0; width: 25px; height: 25px; } +.sprite.not-relevant-btn { background-position: -1079px 0; width: 25px; height: 25px; } +.sprite.items-todo { background-position: -1114px 0; width: 8px; height: 8px; } +.sprite.duedate { background-position: -1132px 0; width: 12px; height: 12px; } +.sprite.small-edit { background-position: -1154px 0; height: 14px; } +.sprite.not-relevant-cl { background-position: -1179px 0; width:15px; height:15px; } +.sprite.pending-state { background-position: -1204px 0; width:15px; height:15px; } +.sprite.starred { background-position: -1230px 0; width:19px; height:19px; } +.sprite.starred-selected { background-position: -1260px 0; width:19px; height:19px; } +.sprite.small-grey-add { background-position: -1288px 0; width:17px; height:15px; } +.sprite.big-grey-add { background-position: -1313px 0; width:19px; height:18px; } +.sprite.red-delete { background-position: -1341px 0; width:17px; height:16px; } +.sprite.grey-check-mark { background-position: -1390px 0; width:17px; height:15px; } +.sprite.order { background-position: -1417px 0; width: 14px; height: 12px;} +.sprite.admin-dropdown { background-position: 0 -63px; width: 14px; height: 14px; } + + +.profiles-sprite.avatar-blue { background-position: 0 0; height: 40px; } +.profiles-sprite.notification { background-position: 0 -50px; width: 25px; } +.profiles-sprite.profile-large { background-position: 0 -88px; width: 150px; height: 140px; } +.profiles-sprite.profile-medium { background-position: 0 -238px; height: 40px; } +.profiles-sprite.profile-white { background-position: 0 -288px; width: 32px; } +.profiles-sprite.avatar-white { background-position: 0 -326px; width: 30px; height: 30px; } + +.steps-sprite.confirmed { width: 12px; height: 12px; background-position: -5px -5px;} +.steps-sprite.completed {width: 12px;height: 12px;background-position: -27px -5px;} +.steps-sprite.completed-non-el {width: 12px;height: 12px;background-position: -49px -5px;} +.steps-sprite.todo {width: 12px;height: 12px;background-position: -71px -5px;} + + +.logo-white { + background: url('images/d2sandbox_logos-150x30.png') no-repeat 0 0; + width: 150px; + height: 30px; +} + +.logo-color { + background: url('images/d2sandbox_logos_color-150x30.png') no-repeat 0 0; + width: 150px; + height: 30px; +} diff --git a/d2ice.att.io/app/styles/table-flex.less b/d2ice.att.io/app/styles/table-flex.less new file mode 100755 index 00000000..d25c679b --- /dev/null +++ b/d2ice.att.io/app/styles/table-flex.less @@ -0,0 +1,77 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.table-container-flex { + clear: both; + + .table { + width: 100%; + + .head { + + .head-row { + text-align: center; + padding: 8px 15px; + .l_14_m; + + &:last-child { + border-right: none; + } + + } + } + .body { + + } + + } + + .flex-container { + display: flex; + } + + .flex-item { + width:10px; + line-height: 25px; + padding: 5px 15px; + flex-grow: 1; + text-align: left; + + } + +} diff --git a/d2ice.att.io/app/styles/variables.less b/d2ice.att.io/app/styles/variables.less new file mode 100755 index 00000000..c8b6163b --- /dev/null +++ b/d2ice.att.io/app/styles/variables.less @@ -0,0 +1,122 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +// Fonts +@font-omnes-light: omnes-light, sans-serif; +@font-omnes-regular: omnes-regular, sans-serif; +@font-omnes-medium: omnes-medium, sans-serif; +@font-omnes-medium-italic: omnes-medium-italic, sans-serif; +@font-omnes-bold: omnes-bold, sans-serif; + +/*---------------------------------------------- General ----------------------------------------------*/ +@images: "images"; + + + +// Main Colors +@main_color_a: #1370a3; +@main_color_b: #1370a3; +@main_color_c: #1370a3; +@main_color_d: #4ca90c; +@main_color_e: #007a3e; +@main_color_f: #b5bd00; +@main_color_g: #ea7499; +@main_color_h: #ffb81c; +@main_color_i: #702f8a; +@main_color_j: #9063cd; +@main_color_k: #caa2dd; +@main_color_l: #000000; +@main_color_m: #5a5a5a; +@main_color_n: #959595; +@main_color_o: #d2d2d2; +@main_color_p: #ffffff; +@main_color_q: #abb8c0; +@main_color_r: #1370A3; +@main_color_s: #dddddd; +@main_color_gray: #9B9B9B; + +// Functional Colors +@func_color_q: #cf2a2a; +@func_color_r: #f2f2f2; +@func_color_s: #191919; +@func_color_b: #0568ae; +@func_color_e: #007a3e; +@func_color_h: #ffb81c; +@func_color_x: #D74854; + + +// Tlv Colors +@tlv_color_t: #faf8f8; +@tlv_color_u: #eaeaea; +@tlv_color_v: #e6f6fb; + +// BG color +@bg_color_a: #EEF9FF; +@bg_color_b: #f6f3f3; +@bg_color_navigation: #DEF3FF; + +// Welcome page colors: +@welcome_box_text_color: #5c5c5c; +@welcome_button_gradient1: #1E79B0; +@welcome_button_gradient2: #62ADD5; +@welcome_button_border: #8799A3; +@welcome_navbar_hr: #585858; +@welcome_footer_bg: #2e2e2e; +@welcome_footer_text: #cbcbcb; + +// Tooltip colors: +@tooltip_header_color: #444141; + +//Toolbar colors: +@toolbar_background_color: #4990E2; + +//Progress directive colors: +@gradient_left: #4990E2; +@gradient_right: #DCEEFC; + +//Target completion box colors: +@target_completion_color: #FAC05F; + +//Engagement status box colors: +@engagement_status_color: #98C678; + +//Engagement team box colors: +@engagement_team_color: @main_color_gray; + +/*---------------------------------------------- Parameters ----------------------------------------------*/ +@header_height: 90px; diff --git a/d2ice.att.io/app/welcome/index.html b/d2ice.att.io/app/welcome/index.html new file mode 100755 index 00000000..63a921b1 --- /dev/null +++ b/d2ice.att.io/app/welcome/index.html @@ -0,0 +1,50 @@ + + + + + + + AT&T | {{'program.name' | i18next}} + + + + diff --git a/d2ice.att.io/app/welcome/welcome.controller.js b/d2ice.att.io/app/welcome/welcome.controller.js new file mode 100755 index 00000000..8f5aa1a8 --- /dev/null +++ b/d2ice.att.io/app/welcome/welcome.controller.js @@ -0,0 +1,58 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 26/12/2016. + */ +(function() { + 'use strict'; + + angular + .module('ice.welcome') + .controller('WelcomeController', ["$state", "$location", "localStorageService", WelcomeController]); + + function WelcomeController($state, $location, localStorageService) { + var vm = this; + + var init = function() { + + } + + init(); + } +})(); diff --git a/d2ice.att.io/app/welcome/welcome.html b/d2ice.att.io/app/welcome/welcome.html new file mode 100755 index 00000000..14292a6a --- /dev/null +++ b/d2ice.att.io/app/welcome/welcome.html @@ -0,0 +1,114 @@ + + + +
+
+
+

Welcome to {{'program.name' | i18next}}

+

{{'program.name' | i18next}} is a process allowing VFs to be incubated & validated against the {{'serviceProvider.name' | i18next}} Domain 2.0 architecture.

+ Get Started +
+
+
+ +
+
+
+
+ +

Incubate

+

{{'program.name' | i18next}} encourages you to engage early to make sure the process is as iterative and collaborative as possible.

+
+
+
+
+ +

Validate

+

{{'program.name' | i18next}} is focused to help validate your VF according the {{'serviceProvider.name' | i18next}} guidelines and requirements to allow for seamless onboarding.

+
+
+
+
+ +

Collaborate

+

{{'program.name' | i18next}} allows and encourages you to collaborate with your VF team to validate your VF both internally and externally.

+
+
+
+
+ +
+ +
diff --git a/d2ice.att.io/app/welcome/welcome.less b/d2ice.att.io/app/welcome/welcome.less new file mode 100755 index 00000000..426e1dfd --- /dev/null +++ b/d2ice.att.io/app/welcome/welcome.less @@ -0,0 +1,208 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.welcome-boxes { + margin-top: 60px; +} + +.welcome-box { + h3 { + font-weight: bold; + } + + p { + font-size: 16px; + padding: 0 15px; + color: @welcome_box_text_color; + margin-bottom: 0; + } +} + +.get-started-button { + width:190px; + margin-top:20px; + text-align:center; + margin-left:auto; + margin-right:auto; + color:white !important; + height:48px; + font-size:18px !important; + font-weight: bold; + line-height:38px; + vertical-align: middle; + background: linear-gradient(@welcome_button_gradient1, @welcome_button_gradient2); + border: 1px solid @welcome_button_border; + border-radius: 6px; +} + +.welcome-body { + overflow: auto; +} + +.welcome-navbar { + background-color: black; + padding-left: 10%; + padding-right: 10%; + border-color: @welcome_navbar_hr; + border-left: black; + z-index: 1030; + left: 0; + right: 0; + position: absolute; + border-radius: 0; + top: 0; +} + +.welcome-nav-link { + color: @main_color_p !important; + font-weight: 600; + line-height: 20px; + margin-top: 7px; +} + +.welcome { + position: relative; + width: 100%; + //min-height: auto; + -webkit-background-size: cover; + -moz-background-size: cover; + background-size: cover; + -o-background-size: cover; + background: url('../styles/images/home_bg1-1920x1138.jpg') center; + text-align: center; + color: white; +} + +.welcome .header-content { + position: relative; + text-align: center; + padding: 100px 15px 100px; + width: 100%; +} +.welcome .header-content .header-content-inner h1 { + font-weight: 700; + margin-top: 0; + margin-bottom: 0; + font-size: 30px; + color: @main_color_p; +} + +.welcome .header-content .header-content-inner p { + font-weight: 300; + font-size: 16px; + margin-bottom: 50px; + color: @main_color_p; +} + +@media (min-width: 768px) { + .welcome { + min-height: 73%; + } + + .welcome .header-content { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + padding: 0 50px; + } + + .welcome .header-content .header-content-inner { + max-width: 100%; + margin-left: auto; + margin-right: auto; + } + + .welcome .header-content .header-content-inner h1 { + font-size: 50px; + } + + .welcome .header-content .header-content-inner p { + font-size: 18px; + max-width: 90%; + margin-left: auto; + margin-right: auto; + } +} + +.welcome-footer { + background: @welcome_footer_bg; + color: @welcome_footer_text; + padding: 60px 0 0; + margin-top: 60px; +} + +.welcome-footer-copyright { + color: @welcome_footer_text; + font-size: 17px; + line-height: 25px; + padding-bottom: 5px; + text-align: center; +} + +.welcome-logo { + margin-top: -8px; +} + +.navbar-collapse .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { + background: none; +} + +.navbar-collapse .navbar-nav > li > a:hover:after, +.navbar-collapse .navbar-nav > li.active > a:after, +.navbar-collapse .navbar-nav > li.active > a:hover:after, +.navbar-collapse .navbar-nav > li.active > a:focus:after { + position:absolute; + bottom:9px; + left:50%; + content:''; + width:20px; + height:2px; + margin-left:-10px; + background-color:#fff; +} + + +.navbar-nav > li + li {margin-left:2px} +.navbar-collapse .navbar-nav > li.active > a, +.navbar-collapse .navbar-nav > li.active > a:hover, +.navbar-collapse .navbar-nav > li.active > a:focus { + color:#828282; + background-color:transparent; +} diff --git a/d2ice.att.io/app/welcome/welcome.module.js b/d2ice.att.io/app/welcome/welcome.module.js new file mode 100755 index 00000000..a17e3680 --- /dev/null +++ b/d2ice.att.io/app/welcome/welcome.module.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 26/12/2016. + */ +(function () { + 'use strict'; + + angular + .module('ice.welcome', []) + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.welcome', { + url: '/', + views: { + 'main@': { + templateUrl: 'welcome/welcome.html', + controller: 'WelcomeController as vm' + } + }, + params: {}, + bodyClass: 'welcome-body' + }); + } +})(); diff --git a/d2ice.att.io/bower.json b/d2ice.att.io/bower.json new file mode 100755 index 00000000..3a0c5e83 --- /dev/null +++ b/d2ice.att.io/bower.json @@ -0,0 +1,56 @@ +{ + "name": "ice", + "version": "0.0.0", + "dependencies": { + "angular": "1.5.0", + "bootstrap": "3.2.0", + "angular-ui-router": "0.3.0", + "angular-animate": "1.5.0", + "angular-bootstrap": "1.3.3", + "moment": "momentjs#2.17.0", + "angular-sanitize": "1.5.0", + "angular-wysiwyg": "git://github.com/TerryMooreII/angular-wysiwyg.git#master", + "moment-timezone": "0.5.10", + "angular-utils": "michaelbromley/angularUtils-pagination", + "angular-ui-select": "0.19.6", + "angular-bootstrap-multiselect": "edgargonzalez525/angular-bootstrap-multiselect", + "bootstrap-ui-datetime-picker": "2.4.3", + "angular-material": "1.1.1", + "angular-toArrayFilter": "1.0.1", + "ng-intl-tel-input": "2.0.0", + "angular-aria": "1.5.0", + "angular-cookies": "1.5.0", + "angular-mocks": "1.5.0", + "angular-messages": "1.5.0", + "angular-file-saver": "1.1.3", + "animate.css": "3.5.2", + "lodash": "4.17.4", + "angular-ui-sortable": "0.16.1", + "ng-i18next": "1.0.4", + "i18next-xhr-backend": "1.4.2" + }, + "appPath": "app", + "moduleName": "iceApp", + "overrides": { + "bootstrap": { + "main": [ + "less/bootstrap.less", + "dist/css/bootstrap.css", + "dist/js/bootstrap.js" + ] + }, + "angular-wysiwyg": { + "main": "./dist/angular-wysiwyg.js" + }, + "ng-intl-tel-input": { + "main": [ + "./dist/ng-intl-tel-input.js", + "../intl-tel-input/build/js/utils.js" + ] + } + }, + "resolutions": { + "angular": "1.5.0", + "jquery": ">=1.7" + } +} diff --git a/d2ice.att.io/dist/favicon.png b/d2ice.att.io/dist/favicon.png new file mode 100755 index 00000000..6e9f04df Binary files /dev/null and b/d2ice.att.io/dist/favicon.png differ diff --git a/d2ice.att.io/dist/fonts/FontAwesome.otf b/d2ice.att.io/dist/fonts/FontAwesome.otf new file mode 100755 index 00000000..401ec0f3 Binary files /dev/null and b/d2ice.att.io/dist/fonts/FontAwesome.otf differ diff --git a/d2ice.att.io/dist/fonts/fontawesome-webfont.eot b/d2ice.att.io/dist/fonts/fontawesome-webfont.eot new file mode 100755 index 00000000..e9f60ca9 Binary files /dev/null and b/d2ice.att.io/dist/fonts/fontawesome-webfont.eot differ diff --git a/d2ice.att.io/dist/fonts/fontawesome-webfont.svg b/d2ice.att.io/dist/fonts/fontawesome-webfont.svg new file mode 100755 index 00000000..855c845e --- /dev/null +++ b/d2ice.att.io/dist/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/d2ice.att.io/dist/fonts/fontawesome-webfont.ttf b/d2ice.att.io/dist/fonts/fontawesome-webfont.ttf new file mode 100755 index 00000000..35acda2f Binary files /dev/null and b/d2ice.att.io/dist/fonts/fontawesome-webfont.ttf differ diff --git a/d2ice.att.io/dist/fonts/fontawesome-webfont.woff b/d2ice.att.io/dist/fonts/fontawesome-webfont.woff new file mode 100755 index 00000000..400014a4 Binary files /dev/null and b/d2ice.att.io/dist/fonts/fontawesome-webfont.woff differ diff --git a/d2ice.att.io/dist/fonts/fontawesome-webfont.woff2 b/d2ice.att.io/dist/fonts/fontawesome-webfont.woff2 new file mode 100755 index 00000000..4d13fc60 Binary files /dev/null and b/d2ice.att.io/dist/fonts/fontawesome-webfont.woff2 differ diff --git a/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.eot b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.eot new file mode 100755 index 00000000..4a4ca865 Binary files /dev/null and b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.eot differ diff --git a/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.svg b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.svg new file mode 100755 index 00000000..e3e2dc73 --- /dev/null +++ b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.ttf b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.ttf new file mode 100755 index 00000000..67fa00bf Binary files /dev/null and b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.ttf differ diff --git a/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.woff b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.woff new file mode 100755 index 00000000..8c54182a Binary files /dev/null and b/d2ice.att.io/dist/fonts/glyphicons-halflings-regular.woff differ diff --git a/d2ice.att.io/dist/index.html b/d2ice.att.io/dist/index.html new file mode 100755 index 00000000..e6b1edd8 --- /dev/null +++ b/d2ice.att.io/dist/index.html @@ -0,0 +1,86 @@ + + + + + + + + + AT&T | {{'program.name' | i18next}} + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ + + + + + diff --git a/d2ice.att.io/dist/locales/en/translation.json b/d2ice.att.io/dist/locales/en/translation.json new file mode 100755 index 00000000..176fa89c --- /dev/null +++ b/d2ice.att.io/dist/locales/en/translation.json @@ -0,0 +1,12 @@ +{ + "vendor": { + "name": "EXAMPLE VENDOR", + "email": "admin@example.com" + }, + "serviceProvider": { + "name": "EXAMPLE PROVIDER" + }, + "program": { + "name": "VVP PROGRAM" + } +} diff --git a/d2ice.att.io/dist/robots.txt b/d2ice.att.io/dist/robots.txt new file mode 100755 index 00000000..4d521f95 --- /dev/null +++ b/d2ice.att.io/dist/robots.txt @@ -0,0 +1,4 @@ +# robotstxt.org + +User-agent: * +Disallow: diff --git a/d2ice.att.io/dist/scripts/scripts.c1bed7e7.js b/d2ice.att.io/dist/scripts/scripts.c1bed7e7.js new file mode 100755 index 00000000..67ceafbe --- /dev/null +++ b/d2ice.att.io/dist/scripts/scripts.c1bed7e7.js @@ -0,0 +1,14 @@ +!function(){"use strict";angular.module("ice",["ngSanitize","ngAnimate","wysiwyg.module","ui.router","ice.env","ice.modals","angularUtils.directives.dirPagination","ui.select","ui.multiselect","ui.bootstrap","ui.bootstrap.datetimepicker","ngMaterial","ngMessages","angular-toArrayFilter","ngIntlTelInput","ui.sortable","jm.i18next","ice.toolbar","ice.navigation","ice.main","ice.contactUs","ice.dashboard.main","ice.dashboard.overview","ice.dashboard.dashboard","ice.activation.login","ice.activation.register","ice.activation.addVf","ice.activation.addVendorContact","ice.activation.resendActivation","ice.activation.terms","ice.activation.activateUser","ice.dashboard.account","ice.documentation","ice.activation.resetPassword","ice.activation.updatePassword","ice.dashboard.checklist","ice.welcome","ice.main.admin","ice.services.cacheService","ice.services.users","ice.services.localStorage","ice.services.vf","ice.services.steps","ice.services.vfc","ice.services.dtsite","ice.services.checklist","ice.services.status","ice.services.feedback","ice.services.toast","ice.services.cms","ice.services.sessionStorage","ice.directives","ice.filters","ice.interceptors.http"])}(),angular.module("ice.env",[]).constant("ENV",{name:"production",apiBase:"/vvp/v1/engmgr/"}),function(){"use strict";angular.module("ice").constant("_",window._).constant("iceConstants",{states:{incomplete:"Incomplete",completed:"Completed"},stages:{intake:"Intake",active:"Active",validated:"Validated",completed:"Completed"},roles:{standard:"standard_user",el:"el",admin:"admin",admin_ro:"admin_ro"},checklist_states:["automation","review","peer review","approval","handoff","closed"]})}(),function(){"use strict";function a(a){a.defaults.useXDomain=!0,delete a.defaults.headers.common["X-Requested-With"],a.interceptors.push("httpRequestInterceptor"),a.interceptors.push("httpResponseInterceptor"),a.interceptors.push("httpRequestErrorInterceptor"),a.interceptors.push("httpResponseErrorInterceptor")}angular.module("ice").config(a).config(["ngIntlTelInputProvider",function(a){a.set({initialCountry:"us"})}]),a.$inject=["$httpProvider"]}(),function(){"use strict";function a(a,b,c){c.hashPrefix(""),b.otherwise("/login"),b.when("/dashboard","/dashbaord/overview");var d="horizontalNavigation",e={horizontalNavigation:{main:"core/layouts/dashboard/dashboard.html",toolbar:"core/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"core/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"core/layouts/content-with-toolbar.html",toolbar:"toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};a.state("app",{abstract:!0,views:{"main@":{templateUrl:e[d].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:e[d].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:e[d].navigation,controller:"NavigationController as vm"}}})}angular.module("ice").config(a),a.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"]}(),function(){"use strict";function a(a,b,c,d){if(-1!=navigator.userAgent.indexOf("Safari")&&-1==navigator.userAgent.indexOf("Chrome"))d.debug("Smooth Scroll Off (Safari).");else try{$("#content-israel").niceScroll({zindex:2e4,scrollspeed:60,mousescrollstep:60,cursorborderradius:"10px",cursorborder:"1px solid rgba(255, 255, 255, 0.4)",cursorcolor:"rgba(0, 0, 0, 0.6)",cursorwidth:"10px"})}catch(a){d.debug("Smooth Scroll Off.")}}angular.module("ice").controller("AppController",["$state","$timeout","$rootScope","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h){var i="LastDocumentationPageId",j=function(){var a=b.getToast();a&&!a.sticky&&b.clearToast()},k=function(a){a&&a.name&&"app.documentation.page"!==a.name&&"app.documentation"!==a.name&&c.delete(i)},l=function(){g.i18next&&(g.i18next.use(g.i18nextXHRBackend),g.i18next.init({debug:!1,lng:"en",fallbackLng:"en",backend:{loadPath:"locales/{{lng}}/{{ns}}.json"},useCookie:!1,useLocalStorage:!1},function(a,b){a&&h.error(a)}))};!function(){a.user={},a.ice={},a.ice.loader={},a.state=d,a.baseURL=f.apiBase,l();var b=a.$on("$stateChangeStart",function(a,b,c,d,e){j(),k(b)}),c=a.$on("$stateChangeSuccess",function(){});a.$on("$destroy",function(){b(),c()}),e.set("configuration",{urls:{auth:{login:a.baseURL+"login/@t",register:a.baseURL+"signup",addVfs:a.baseURL+"vf/",getCompanies:a.baseURL+"vendors",resendActivationMail:a.baseURL+"users/activation-mail/@user_uuid",addVendorContact:a.baseURL+"add-contact",single_engagement:a.baseURL+"single-engagement/@engagementUuid",engagements:a.baseURL+"engagement",inviteMembers:a.baseURL+"invite-team-members",activities:a.baseURL+"engagement/@engagementUuid/activities/",updateDaysLeft:a.baseURL+"engagements/@engagementUuid/target_date",updateLabEntryDaysLeft:a.baseURL+"engagements/@engagementUuid/target_lab_date",setSSHKey:a.baseURL+"users/ssh",getIceUser:a.baseURL+"users",getRGWASecret:a.baseURL+"users/account/rgwa/",account:a.baseURL+"users/account",updatePassword:a.baseURL+"users/pwd/",sendResetPwdInstructions:a.baseURL+"users/pwd/reset-instructions/"},notifications:{getNotifications:a.baseURL+"notifications/num",resetNotificationNum:a.baseURL+"notifications/reset",notificationsDelete:a.baseURL+"notifications/@uuid",getNotificationsDescription:a.baseURL+"notifications/@userUuid/@offset/@limit"},steps:{get:a.baseURL+"engagements/@engagement/nextsteps/@progress",add:a.baseURL+"engagements/@engagement/nextsteps",edit:a.baseURL+"nextsteps/@stepUuid/engagement/@engUuid",order_next_steps:a.baseURL+"engagements/@engUuid/nextsteps/order_next_steps",update:a.baseURL+"nextsteps/@stepUuid/state",delete:a.baseURL+"nextsteps/@stepUuid",createChecklistNextStep:a.baseURL+"engagement/@engUuid/checklist/@checkListUuid/nextstep/",createNextStep:a.baseURL+"eng/@engUuid/nextstep/",getByUser:a.baseURL+"engagements/user/nextsteps/"},vf:{updateVfs:{put:a.baseURL+"vf/@vf_uuid/validation-details/"},deployment_target:{getDeployTargets:a.baseURL+"deployment-targets",updateDeployTargets:a.baseURL+"engagement/@engagementUuid//deployment-targets/@deployment_target_uuid"},ecomp:{getECOMPReleases:a.baseURL+"ecomp-releases",updateECOMPReleases:a.baseURL+"engagement/@engagementUuid/ecomp-releases/@ecomp_uuid"},version:{getVFVersion:a.baseURL+"vf/@vfUuid/vf-version/"}},vfcs:{add:a.baseURL+"vfcs/",get:a.baseURL+"vf/@vfUuid/vfcs/",delete:a.baseURL+"vf/@vfUuid/vfcs/@vfcUuid"},status:{get:a.baseURL+"engagements/@engagement/status",add:a.baseURL+"engagements/@engagement/status",update:a.baseURL+"engagements/@engagement/status"},feedback:{add:a.baseURL+"add-feedback"},dtsite:{get:a.baseURL+"dtsites/",getVFSites:a.baseURL+"vf/@vfUuid/dtsites/",add:a.baseURL+"dtsites/",delete:a.baseURL+"vf/@vfUuid/dtsites/@dtsUuid"},checklist:{state:{put:a.baseURL+"checklist/@cl_uuid/state/"},createChecklist:a.baseURL+"engagement/@engUuid/checklist/new/",getDataForChecklist:a.baseURL+"engagement/@engUuid/checklist/new/",getChecklist:a.baseURL+"checklist/@checklistUuid",putDataForChecklist:a.baseURL+"checklist/@checklist_uuid",checklistDecision:a.baseURL+"checklist/decision/@decisionUuid",createAuditlogChecklist:a.baseURL+"checklist/@checklist_uuid/auditlog/",createAuditlogDecisionChecklist:a.baseURL+"checklist/decision/@decision_uuid/auditlog/",getChecklistTemplates:a.baseURL+"checklist/templates/",getChecklistTemplate:a.baseURL+"checklist/template/@templateUuid",saveChecklistTemplate:a.baseURL+"checklist/template/"},engagement:{put:a.baseURL+"engagements/@engagementUuid/",updateProgress:a.baseURL+"engagements/@engagementUuid/progress",setStage:a.baseURL+"single-engagement/@engagementUuid/stage/@stage",starred_engagement:{put:a.baseURL+"engagements/starred_eng/",get:a.baseURL+"engagements/starred_eng/"},recent_engagement:{get:a.baseURL+"engagements/recent_eng/"},engagement_team:{put:a.baseURL+"engagements/engagement-team/"},engagementsExpanded:a.baseURL+"engagement/expanded/",exportEngagementsCSV:a.baseURL+"engagement/export/?stage=@stage&keyword=@keyword",reviewer:{put:a.baseURL+"engagements/@engagementUuid/reviewer/"},peerreviewer:{put:a.baseURL+"engagements/@engagementUuid/peerreviewer/"},switchReviewers:{put:a.baseURL+"engagements/@engagementUuid/switch-reviewers/"},archive:{put:a.baseURL+"engagements/@engagementUuid/archive/"}},welcome:{welcome:a.baseURL+"welcome/"},cms:{posts:{get:a.baseURL+"cms/posts/?limit=@limit&offset=@offset&fromLastDays=@fromLastDays&category=@category"},pages:{get:a.baseURL+"cms/pages/?title=@title",getById:a.baseURL+"cms/pages/@id/",search:a.baseURL+"cms/pages/search/?keyword=@keyword"}},users:{engagementleads:{get:a.baseURL+"users/engagementleads/"},activate:a.baseURL+"users/activate/@userid/@token"}}})}()}angular.module("ice").run(a),a.$inject=["$rootScope","toastService","sessionStorageService","$state","cacheService","ENV","$window","$log"]}(),angular.module("ice.interceptors.http",[]).factory("httpRequestInterceptor",["$injector","$rootScope",function(a,b){return{request:function(c){if(-1!==c.url.indexOf(b.baseURL)){c.headers=c.headers||{};var d=a.get("usersService").getUserData(function(){});d&&!c.skipAuth&&(c.headers.Authorization="token "+d.jwtToken)}return c}}}]).factory("httpResponseInterceptor",["$rootScope",function(a){return{response:function(a){return a}}}]).factory("httpRequestErrorInterceptor",["$q",function(a){return{requestError:function(a){return a}}}]).factory("httpResponseErrorInterceptor",["$q","$rootScope","$injector","toastService",function(a,b,c,d){return{responseError:function(b){var e=c.get("$state");switch(b.status){case 401:d.setToast(b.statusText,"danger");break;case 403:e.go("app.login")}return a.reject(b)}}}]),function(){"use strict";angular.module("ice.services.cacheService",[]).service("cacheService",function(){var a={};this.get=function(b){return a[b]},this.delete=function(b){return a[b]=void 0},this.deleteAll=function(){return a={}},this.set=function(b,c){void 0===a[b]?a[b]=c:a[b]=$.extend({},c,a[b])},this.toString=function(){return a}}).factory("pageService",function(){var a="";return{getPage:function(){return a},setPage:function(b){a=b}}})}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i){var j=c.get("configuration").urls,k="user",l=g.getJson(k);this.isEngagementEL=function(a){return void 0!=h.find(a,{uuid:l.uuid})&&!(!l||l.role.name!==d.roles.el)},this.isUserInRole=function(a){return l&&l.role&&l.role.name===a},this.isReviewer=function(a,b){return a&&b&&a.uuid==b},this.isPeerReviewer=function(a,b){return a&&b&&a.uuid==b},this.isAdmin=function(a){return a&&a.role&&a.role.name===d.roles.admin},this.updatePassword=function(c,d){var e=b.defer();return a.put(j.auth.updatePassword,d).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.sendResetPwdInstructions=function(c){var d=b.defer();return a.post(j.auth.sendResetPwdInstructions,c).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.login=function(c,d){var e=b.defer();return a.post(j.auth.login.replace("/@t",d),c).success(function(a,b,c,d){l=a,delete l.password,l.jwtToken=a.token,g.setJson(k,l),e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.register=function(c){var d=b.defer();return a.post(j.auth.register,c).success(function(a,b,c,e){l=a,l.jwtToken=a.token,g.setJson(k,l),d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.addVendorContact=function(c){var d=b.defer();return a.post(j.auth.addVendorContact,c).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.resendActivationMail=function(c){var d=b.defer();return a.get(j.auth.resendActivationMail.replace("@user_uuid",c),{skipAuth:!0}).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.getNotifications=function(c){var d=b.defer();return a.get(j.notifications.getNotifications).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.resetNotificationNum=function(c){var d=b.defer();return a.put(j.notifications.resetNotificationNum).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.notificationsDelete=function(c){var d=b.defer();return a.delete(j.notifications.notificationsDelete.replace("@uuid",c)).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.getNotificationsDescription=function(c,d,e){var f=b.defer();return a.get(j.notifications.getNotificationsDescription.replace("@userUuid",c).replace("@offset",d).replace("@limit",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.getIceUser=function(){var c=b.defer();return a.get(j.auth.getIceUser).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.updateAccount=function(c,d){var e=b.defer();return a.put(j.auth.account,d).success(function(a,b,c,d){var f=l.jwtToken;l=a,l.jwtToken=f,g.setJson(k,l),e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.setSSHKey=function(c,d){var e=b.defer();return a.post(j.auth.setSSHKey,d).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getUserData=function(a){return l||(a?(i.debug("There is no user data, will invoke callback pass as argument."),a()):(i.debug("There is no user data, will be redirected into /login page."),f.go("app.login"))),l},this.resetUserData=function(){i.debug("Clearing user from cache..."),l=void 0,g.delete(k),e.setJson("ice.settings.view_type",void 0),e.setJson("ice.settings.eng_uuid",void 0),e.setJson("ice.settings.sub_id",void 0)},this.setUserActivationSuccess=function(a){l&&(l.activationSuccess=a,g.setJson(k,l))},this.getEngagementLeads=function(){var c=b.defer(),d=this.getUserData();return this.isAdmin(d)?a.get(j.users.engagementleads.get).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}):c.reject("Just admin allowed to get engagement leads list."),c.promise},this.activateUser=function(c,d){var e=b.defer();return a.get(j.users.activate.replace("@userid",c).replace("@token",d),{skipAuth:!0}).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getRGWASecret=function(){var c=b.defer();return a.get(j.auth.getRGWASecret).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise}}angular.module("ice.services.users",[]).service("usersService",["$http","$q","cacheService","iceConstants","localStorageService","$state","sessionStorageService","_","$log",a])}(),function(){"use strict";angular.module("ice.services.vf",[]).service("vfService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.addVfs=function(c){var e=b.defer();return a.post(d.auth.addVfs,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.updateVfs=function(c,e){var f=b.defer();return a.put(d.vf.updateVfs.put.replace("@vf_uuid",e),c).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.inviteMembers=function(c){var e=b.defer();return a.post(d.auth.inviteMembers,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getCompanies=function(){var c=b.defer();return a.get(d.auth.getCompanies).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.getDeployTargets=function(){var c=b.defer();return a.get(d.vf.deployment_target.getDeployTargets).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.getECOMPReleases=function(){var c=b.defer();return a.get(d.vf.ecomp.getECOMPReleases).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.getVFVersion=function(c){var e=b.defer();return a.get(d.vf.version.getVFVersion.replace("@vfUuid",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getEngagements=function(c){var e=b.defer();return a.get(d.auth.engagements).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getExpandedEngagements=function(c){var e=b.defer();return a.post(d.engagement.engagementsExpanded,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getSingleEngagement=function(c,e){var f=b.defer();return a.get(d.auth.single_engagement.replace("@engagementUuid",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.getStarredEngagements=function(){var c=b.defer();return a.get(d.engagement.starred_engagement.get).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.putStarredEngagements=function(c){var e=b.defer(),f={};return f.engagement_uuid=c,a.put(d.engagement.starred_engagement.put,f).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getRecentEngagements=function(){var c=b.defer();return a.get(d.engagement.recent_engagement.get).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.getActivities=function(c){var e=b.defer();return a.get(d.auth.activities.replace("@engagementUuid",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.updateProgress=function(c,e){var f=b.defer();return a.put(d.engagement.updateProgress.replace("@engagementUuid",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateDeployTargets=function(c,e){var f=b.defer();return a.put(d.vf.deployment_target.updateDeployTargets.replace("@engagementUuid",c).replace("@deployment_target_uuid",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateECOMPReleases=function(c,e){var f=b.defer();return a.put(d.vf.ecomp.updateECOMPReleases.replace("@engagementUuid",c).replace("@ecomp_uuid",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateDaysLeft=function(c,e){var f=b.defer();return a.post(d.auth.updateDaysLeft.replace("@engagementUuid",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateLabEntryDaysLeft=function(c,e){var f=b.defer();return a.post(d.auth.updateLabEntryDaysLeft.replace("@engagementUuid",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.set_engagement_stage=function(c,e){var f=b.defer();return a.put(d.engagement.setStage.replace("@engagementUuid",c).replace("@stage",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.exportEngagementsCSV=function(c,e){var f=b.defer();return null==c||null==e?f.reject("Invalid arguments on engagements export csv."):a({method:"GET",url:d.engagement.exportEngagementsCSV.replace("@stage",c).replace("@keyword",e),headers:{"Content-Type":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"},responseType:"arraybuffer"}).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.archiveEngagement=function(c,e){var f=b.defer(),g={reason:e};return a.put(d.engagement.archive.put.replace("@engagementUuid",c),g).success(function(a,b,c,d){f.resolve()}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateEngagementReviewer=function(c,e){var f=b.defer(),g={reviewer:e};return a.put(d.engagement.reviewer.put.replace("@engagementUuid",c),g).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.updateEngagementPeerReviewer=function(c,e){var f=b.defer(),g={peerreviewer:e};return a.put(d.engagement.peerreviewer.put.replace("@engagementUuid",c),g).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.switchEngagementReviewers=function(c,e,f){var g=b.defer(),h={reviewer:e,peerreviewer:f};return a.put(d.engagement.switchReviewers.put.replace("@engagementUuid",c),h).success(function(a,b,c,d){g.resolve({data:a,status:b})}).error(function(a,b,c,d){g.reject({message:a,status:b})}),g.promise},this.updateEngagement=function(c,e){var f=b.defer(),g={engagement:c,status:e};return a.put(d.engagement.put.replace("@engagementUuid",c.uuid),g).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.remove_user_from_eng=function(c){var e=b.defer();return null==c?e.reject("Invalid arguments on remove_user_from_eng."):a.put(d.engagement.engagement_team.put,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise}}])}(),function(){"use strict";angular.module("ice.services.vfc",[]).service("vfcService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.get=function(c){var e=b.defer();return a.get(d.vfcs.get.replace("@vfUuid",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.delete=function(c,e){var f=b.defer();return a.delete(d.vfcs.delete.replace("@vfUuid",e).replace("@vfcUuid",c)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.add=function(c){var e=b.defer();return a.post(d.vfcs.add,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getCompanies=function(){var c=b.defer();return a.get(d.auth.getCompanies).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise}}])}(),angular.module("ice.services.localStorage",[]).service("localStorageService",["$window",function(a){this.setJson=function(b,c){return a.localStorage&&a.localStorage.setItem(b,JSON.stringify(c)),this},this.getJson=function(b){var c,d=a.localStorage&&a.localStorage.getItem(b);try{c=d?JSON.parse(d):void 0}catch(a){}return c},this.delete=function(b){return a.localStorage&&a.localStorage.removeItem(b)}}]),function(){"use strict";angular.module("ice.services.steps",[]).service("stepsService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.getByUser=function(){var c=b.defer();return a.get(d.steps.getByUser).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.get=function(c,e){var f=b.defer();return a.get(d.steps.get.replace("@engagement",c).replace("@progress",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.update=function(c,e){var f=b.defer();return a.put(d.steps.update.replace("@stepUuid",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.delete=function(c){var e=b.defer();return a.delete(d.steps.delete.replace("@stepUuid",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.add=function(c,e){var f=b.defer();return a.post(d.steps.add.replace("@engagement",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.edit=function(c,e,f){var g=b.defer();return a.put(d.steps.edit.replace("@stepUuid",e).replace("@engUuid",c),f).success(function(a,b,c,d){g.resolve({data:a,status:b})}).error(function(a,b,c,d){g.reject({message:a,status:b})}),g.promise},this.order_next_steps=function(c,e){var f=b.defer();return a.put(d.steps.order_next_steps.replace("@engUuid",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.createNextStep=function(c,e,f){var g=b.defer();return a.post(d.steps.createNextStep.replace("@engUuid",e),f).success(function(a,b,c,d){g.resolve({data:a,status:b})}).error(function(a,b,c,d){g.reject({message:a,status:b})}),g.promise},this.createChecklistNextStep=function(c,e,f){var g=b.defer();return a.post(d.steps.createChecklistNextStep.replace("@checkListUuid",c).replace("@engUuid",e),f).success(function(a,b,c,d){g.resolve({data:a,status:b})}).error(function(a,b,c,d){g.reject({message:a,status:b})}),g.promise}}])}(),function(){"use strict";angular.module("ice.services.dtsite",[]).service("dtsiteService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.getVFSites=function(c){var e=b.defer();return a.get(d.dtsite.getVFSites.replace("@vfUuid",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.get=function(){var c=b.defer();return a.get(d.dtsite.get).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.delete=function(c,e){var f=b.defer();return a.delete(d.dtsite.delete.replace("@vfUuid",c).replace("@dtsUuid",e)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.add=function(c){var e=b.defer();return a.post(d.dtsite.add,c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise}}])}(),function(){"use strict";var a;angular.module("ice.services.checklist",[]).factory("checklistService",["$rootScope","$http","$q","cacheService","$log",function(b,c,d,e,f){var g=e.get("configuration").urls;return this.setState=function(a,b){var e=d.defer();return c.put(g.checklist.state.put.replace("@cl_uuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.createChecklist=function(a,b){var e=d.defer();return c.post(g.checklist.createChecklist.replace("@engUuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.getDataForCreateChecklist=function(a){var b=d.defer();return c.get(g.checklist.getDataForChecklist.replace("@engUuid",a)).success(function(a,c,d,e){b.resolve({data:a,status:c})}).error(function(a,c,d,e){b.reject({message:a,status:c})}),b.promise},this.getChecklist=function(a){var b=d.defer();return c.get(g.checklist.getChecklist.replace("@checklistUuid",a)).success(function(a,c,d,e){b.resolve({data:a,status:c})}).error(function(a,c,d,e){b.reject({message:a,status:c})}),b.promise},this.putDataForChecklist=function(a,b){var e=d.defer();return c.put(g.checklist.putDataForChecklist.replace("@checklist_uuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.putChecklistDecision=function(a,b){var e=d.defer();return c.put(g.checklist.checklistDecision.replace("@decisionUuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.createAuditlogChecklist=function(a,b){var e=d.defer();return c.post(g.checklist.createAuditlogChecklist.replace("@checklist_uuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.createAuditlogDecisionChecklist=function(a,b){var e=d.defer();return c.post(g.checklist.createAuditlogDecisionChecklist.replace("@decision_uuid",a),b).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.setChecklistExitEntity=function(b){a=b,f.debug("set checklist")},this.callChecklistExit=function(b){if(void 0!=a&&"checklist"==b){var c="set_state";angular.forEach(a.data.checklistDecisions,function(a,b){angular.forEach(a.decisions,function(a,b){("approved"!=a.view_value&&"not_relevant"!=a.view_value||""==a.view_value)&&(c="next_step")})}),"next_step"==c?this.openNextSteps():"set_state"==c&&this.openSetState()}},this.getChecklistTemplates=function(){var a=d.defer();return c.get(g.checklist.getChecklistTemplates).success(function(b,c,d,e){a.resolve({data:b,status:c})}).error(function(b,c,d,e){a.reject({message:b,status:c})}),a.promise},this.getChecklistTemplate=function(a){var b=d.defer();return c.get(g.checklist.getChecklistTemplate.replace("@templateUuid",a)).success(function(a,c,d,e){b.resolve({data:a,status:c})}).error(function(a,c,d,e){b.reject({message:a,status:c})}),b.promise},this.saveChecklistTemplate=function(a){var b=d.defer();return c.put(g.checklist.saveChecklistTemplate,a).success(function(a,c,d,e){b.resolve({data:a,status:c})}).error(function(a,c,d,e){b.reject({message:a,status:c})}),b.promise},this}])}(),function(){"use strict";angular.module("ice.services.status",[]).service("statusService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.get=function(c){var e=b.defer();return a.get(d.status.get.replace("@engagement",c)).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise},this.update=function(c,e){var f=b.defer();return a.put(d.status.update.replace("@engagement",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.add=function(c,e){var f=b.defer();return a.post(d.status.update.replace("@engagement",c),e).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise}}])}(),function(){"use strict";angular.module("ice.services.feedback",[]).service("feedbackService",["$http","$q","cacheService",function(a,b,c){var d=c.get("configuration").urls;this.add=function(c){var e=b.defer();return a.post(d.feedback.add.replace(),c).success(function(a,b,c,d){e.resolve({data:a,status:b})}).error(function(a,b,c,d){e.reject({message:a,status:b})}),e.promise}}])}(),function(){"use strict";angular.module("ice.services.toast",[]).service("toastService",["$rootScope",function(a){var b,c,d,e,f=!1,g="all";return{setToast:function(h,i,j){if(h&&void 0!=h.detail&&(h=h.detail),!h||!i)throw"You must provide both message an type in order to set new message toast";b=h,c=i,d=!(!j||!j.sticky)&&j.sticky,e=j&&j.readMoreCallback?j.readMoreCallback:void 0,g=j&&j.displayFor?j.displayFor:"all",f=!0,a.showToast=!0},clearToast:function(){ +b=void 0,c=void 0,f=!1,g="all",a.showToast=!1},getToast:function(){return{message:b,type:c,show:f,sticky:d,readMore:e,displayFor:g}}}}])}(),function(){"use strict";function a(a,b,c,d,e,f,g){var h,i=c.get("configuration").urls,j="lastAnnouncement";this.getPosts=function(c,d,e){var f=b.defer(),g=e&&e instanceof Array?e.join():"";return a.get(i.cms.posts.get.replace("@limit",c).replace("@offset",0).replace("@fromLastDays",d).replace("@category",g)).success(function(a,b,c,d){f.resolve({data:a,status:b})}).error(function(a,b,c,d){f.reject({message:a,status:b})}),f.promise},this.getLastAnnouncementPost=function(){var c=b.defer();return a.get(i.cms.posts.get.replace("@limit",1).replace("@offset",0).replace("@fromLastDays","").replace("@category","Announcement")).success(function(a,b,d,e){c.resolve({data:a,status:b})}).error(function(a,b,d,e){c.reject({message:a,status:b})}),c.promise},this.setAnnouncementToast=function(){var a=function(){e.open({templateUrl:"main/modals/cms-post-modal/cms-post-modal.html",controller:"cmsPostModalController",controllerAs:"vm",size:"cms-post-read-more",resolve:{post:function(){}}})};this.getLastAnnouncementPost().then(function(b){if(b&&b.data&&1===b.data.length){var c=d.getJson(j);if(!c||c.id!=b.data[0].id||!c.closed){d.setJson(j,{id:b.data[0].id,closed:!1});var e="Important announcement: "+b.data[0].title+".";h={message:e,readMore:a,type:"warning",show:!0,displayFor:"all",publishDate:b.data[0].publish_date},f.showAnnouncement=!f.showAnnouncement}}}).catch(function(a){g.error(a)})},this.getAnnouncement=function(){return h},this.getPages=function(c){var d=b.defer();return c||(c=""),a.get(i.cms.pages.get.replace("@title",c)).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.getPage=function(c){var d=b.defer();return a.get(i.cms.pages.getById.replace("@id",c)).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise},this.searchPages=function(c){var d=b.defer();return a.get(i.cms.pages.search.replace("@keyword",c)).success(function(a,b,c,e){d.resolve({data:a,status:b})}).error(function(a,b,c,e){d.reject({message:a,status:b})}),d.promise}}angular.module("ice.services.cms",[]).service("cmsService",["$http","$q","cacheService","localStorageService","$uibModal","$rootScope","$log",a])}(),function(){"use strict";function a(a){this.setJson=function(b,c){return a.sessionStorage&&a.sessionStorage.setItem(b,JSON.stringify(c)),this},this.getJson=function(b){var c,d=a.sessionStorage&&a.sessionStorage.getItem(b);try{c=d?JSON.parse(d):void 0}catch(a){}return c},this.delete=function(b){return a.sessionStorage&&a.sessionStorage.removeItem(b)}}angular.module("ice.services.sessionStorage",[]).service("sessionStorageService",["$window",a])}(),function(){"use strict";function a(a,b,c,d,e){var f={};return f.restrict="E",f.templateUrl="directives/step-stages/step-stages.html",f.scope={stage:"=stage",stage_num:"=stageNum",eng_uuid:"@engUuid",team:"=team",eng_name:"@engName",initactivitylogs:"&"},f.controller=["$scope","vfService","$log",function(b,c,d){b.set_engagement_stage=function(f,g){e.open({templateUrl:"main/modals/set-eng-stage/set-eng-stage-modal.html",controller:"setEngStageModalController",controllerAs:"vm",resolve:{stage:function(){return g},eng_name:function(){return b.eng_name},current_stage:function(){return b.stage}}}).result.then(function(e){e&&c.set_engagement_stage(f.eng_uuid,g).then(function(c){if(202!==c.status)return!1;switch(f.stage=g,g){case"Intake":f.stage_num=1;break;case"Active":f.stage_num=2;break;case"Validated":f.stage_num=3;break;case"Completed":f.stage_num=4}a.$broadcast("onUpdateNextSteps",{stage:f.stage,eng_uuid:f.eng_uuid}),b.initactivitylogs()}).catch(function(a){d.error(a)})})},b.hover_design=function(a,c){b.temp_num=c,b.hover=a}}],f.link=function(a,c,e){a.hover=!1,a.temp_num=0,a.priviliged=!1,a.const=b.stages,a.loaded=!1,a.user=d.getUserData(),a.$watchGroup(["user","team"],function(a,b,c){a[0]&&a[1]&&(c.loaded||((d.isEngagementEL(c.team)||d.isAdmin(c.user))&&(c.priviliged=!0),c.loaded=!0))}),a.hover_actions=function(b,c){a.priviliged&&a.hover_design(b,c)},a.set_stage=function(b){if(a.priviliged){if(a.stage===b)return void $log.debug("Same stage was chosen, request ignored.");a.set_engagement_stage(a,b)}}},f}angular.module("ice.directives",[]).directive("stepStagesDirective",a),a.$inject=["$rootScope","iceConstants","localStorageService","usersService","$uibModal"]}(),function(){"use strict";function a(a,b,c,d){var e={};return e.restrict="E",e.templateUrl="directives/progress/progress.html",e.scope={progress:"@progress",data:"=data",callback:"=callback",statuses:"@statuses",enable_refresh:"@enableRefresh"},e.link=function(e,f,g){var h=function(){e.statuses||(e.statuses=!1),i(),j()},i=function(){var a=moment(),b=moment(e.data.completion_date),c=Math.ceil(b.diff(a,"days",!0));c<0&&(c=0),e.daysLeft=c},j=function(){e.$watch("data.completion_date",function(a,b){a!==b&&i()}),e.$watch("data.heat_validated_time",function(a,b){a!==b&&k()}),e.$watch("data.vnf_version",function(a,b){a!==b&&k()}),e.$watch("data.image_scan_time",function(a,b){a!==b&&k()}),e.$watch("data.aic_instantiation_time",function(a,b){a!==b&&k()}),e.$watch("data.asdc_onboarding_time",function(a,b){a!==b&&k()})},k=function(){e.data&&(e.data.ecomp_release||(e.data.ecomp_release="-"),e.data.aic_version||(e.data.aic_version="-"),e.data.aic_instantiation_time||(e.data.aic_instantiation_time="-"),e.data.vnf_version||(e.data.vnf_version="-"),e.data.asdc_onboarding_time||(e.data.asdc_onboarding_time="-"),e.data.heat_validated_time||(e.data.heat_validated_time="-"),e.data.image_scan_time||(e.data.image_scan_time="-"))};e.starEngagement=function(){d.putStarredEngagements(e.data.engagement_uuid).then(function(a){b.ice.loader.show=!1,200===a.status&&a.data&&""!==a.data&&(b.$broadcast("onUpdateEngagements",{select:{uuid:e.data.engagement_uuid,page_type:"dashboard",sub_id:void 0,enable_refresh:e.enable_refresh}}),0==e.data.starred?e.data.starred=!0:e.data.starred=!1)}).catch(function(a){b.ice.loader.show=!1,c.error(a)})},e.goToEngagement=function(a){b.$broadcast("searchSelectEngagement",a)},e.changeProgress=function(){a.open({templateUrl:"main/modals/change-progress/change-progress.html",controller:"ChangeProgressModalController",controllerAs:"vm",resolve:{progress:function(){return e.progress},engagementUuid:function(){return e.data.engagement_uuid}}}).result.then(function(a){a&&(e.progress=a.progress||e.progress,a.progress&&e.callback(a))},function(){c.debug("Modal dismissed at: "+new Date)})},h()},e}angular.module("ice.directives").directive("progressDirective",["$uibModal","$rootScope","$log","vfService",a])}(),function(){"use strict";function a(a,b,c,d,e){var f={};return f.restrict="E",f.template="
",f.scope={activity:"="},f.controller=["$scope",function(a){a.addDateStamp=function(a){var c="",d=moment().format("z"),e=moment().format("A"),f=moment().tz(moment.tz.guess()).format("z");return c=-1==a.description.indexOf(" at ")?"."==a.description.substr(a.description.length-1)?a.description.substr(0,a.description.length-1):a.description:a.description.substring(0,a.description.indexOf(" at ")),a.description=c+" at "+b("date")(a.create_time,"yyyy-MM-dd hh:mm:ss",d)+" "+e+" "+f,a},a.addPopover=function(a,b,c,d){var e=""+c+"";a.description=a.description.replaceAll(b,e)},a.addSelectEngagement=function(a,b,c,d){var e="";a.description=a.description.replaceAll(b,e)},a.goToEngagement=function(a){e.setJson("ice.settings.eng_uuid",a),d.path("/dashboard/overview"),d.replace(),c.$broadcast("onUpdateEngagements",{select:{uuid:a,page_type:"overview",sub_id:void 0}})}}],f.link=function(b,c,d,e){var f=b.activity;f.meta_data=JSON.parse(f.metadata),b.addDateStamp(f),angular.forEach(f.meta_data.macros,function(a,c){switch(a.type){case"popover":b.addPopover(f,c,a.short,a.long);break;case"select_engagement":b.addSelectEngagement(f,c,a.short,a.eng_uuid)}});var g=""+b.activity.description+"";c.html(g).show(),a(c.contents())(b)},f}angular.module("ice.directives").directive("notifications",a),String.prototype.replaceAll=function(a,b,c){return this.replace(new RegExp(a.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&"),c?"gi":"g"),"string"==typeof b?b.replace(/\$/g,"$$$$"):b)},a.$inject=["$compile","$filter","$rootScope","$location","localStorageService"]}(),function(){"use strict";function a(a){var b={};return b.restrict="E",b.transclude=!1,b.scope={selector:"@selector"},b.link=function(b,c,d){a.$watch("ice.loader.show",function(a,c){if(!0===a){var d=$(b.selector),f=e(),g=$('
');$("body").append(g),d.addClass("ice-loader-overlay");var h=d.offset();h&&g.css({top:h.top+d.height()/2,left:h.left+d.width()/2,position:"fixed"})}else if(!1===a){var d=$(b.selector);d.removeClass("ice-loader-overlay");var f=e(),g=$("#"+f);g.remove()}},!0);var e=function(){var a=b.selector;return a=a.replace(".",""),"ice-loader-"+(a=a.replace("#",""))}},b}angular.module("ice.directives").directive("iceLoader",a),a.$inject=["$rootScope"]}(),function(){"use strict";function a(a,b){var c={};return c.restrict="E",c.templateUrl="directives/ice-toast/ice-toast.html",c.scope={isModal:"=isModal"},c.link=function(c,d,e){var f=function(){var a=b.getToast();a&&(c.toast=a)};c.closeAlert=function(){b.clearToast()},f(),a.$watch("showToast",function(a,b){f()},!0)},c}angular.module("ice.directives").directive("iceToast",["$rootScope","toastService",a])}(),function(){"use strict";function a(a,b,c){var d={};return d.restrict="E",d.templateUrl="directives/ice-announcement/ice-announcement.html",d.link=function(d,e,f){function g(a){var b=c.getJson(h)||{};b.closed=a,c.setJson(h,b)}var h="lastAnnouncement",i=function(){var a=b.getAnnouncement();if(a){d.toast=a;var c=new Date;c.setDate(c.getDate()-2);new Date(d.toast.publishDate)0){var b=a.data.length,d=Math.floor(Math.random()*b);c.tipContent=a.data[d]}}).catch(function(a){b.error(a)})},c}angular.module("ice.directives").directive("iceToolTip",["cmsService","$log",a])}(),function(){"use strict";function a(a,b,c){var d={};return d.restrict="E",d.templateUrl="directives/ice-news-and-announcement/ice-news-and-announcement.html",d.scope={limit:"=limit",fromLastDays:"=fromLastDays",showDescription:"=showDescription"},d.link=function(d,e,f){var g=d.limit||5,h=d.fromLastDays||"",i=function(){a.getPosts(g,h,["Announcement","News"]).then(function(a){d.cmsPosts=a.data}).catch(function(a){c.error(a)})};d.openCMSReadMoreModal=function(a){a?b.open({templateUrl:"main/modals/cms-post-modal/cms-post-modal.html",controller:"cmsPostModalController",controllerAs:"vm",size:"cms-post-read-more",resolve:{post:function(){return a}}}):c.debug("Cannot open cms post.")},i()},d}angular.module("ice.directives").directive("iceNewsAndAnnouncement",["cmsService","$uibModal","$log",a])}(),function(){"use strict";function a(a){return function(b){return a.trustAsHtml(b)}}angular.module("ice.filters",[]).filter("trusted",["$sce",a])}(),function(){"use strict";function a(a,b,c){return function(a,b){return a.toLowerCase().includes(b.toLowerCase())}}angular.module("ice.filters").filter("doesExists",["$sce","$injector","$log",a])}(),function(){"use strict";function a(){return function(a){return a?a.charAt(0).toUpperCase()+a.substr(1).toLowerCase():""}}angular.module("ice.filters").filter("capitalize",[a])}(),function(){"use strict";function a(a,b){return function(c,d){var e={stage:"All",keyword:d,offset:0,limit:20};return a.getExpandedEngagements(e).then(function(a){if(200===a.status&&a.data&&""!==a.data)return a.data.array}).catch(function(a){$rootScope.ice.loader.show=!1,b.error(a)})}}angular.module("ice.filters").filter("customVFSearchFilter",["vfService","$log",a])}(),function(){"use strict";function a(a){var b=["th","st","nd","rd"];return function(c,d){if(c){var e=a("date")(c,d),f=parseInt(a("date")(c,"dd")),g=f<30?f%20:f%30,h=g<=3?b[g]:b[0];return e.replace("oo",h)}return c}}angular.module("ice.filters").filter("date2",["$filter",a])}(),function(){"use strict";function a(a,b){return function(b){return b=a.replace(b,/\&\;/g,"&"),b=a.replace(b,/\<\;/g,"<"),b=a.replace(b,/\>\;/g,">"),b=a.replace(b,/\"\;/g,'"'),b=a.replace(b,/\\;/g,"'"),b=a.replace(b,/<(\s)*script/g,"_script")}}angular.module("ice.filters").filter("htmlspecialchars",["_","$filter",a])}(),function(){"use strict";function a(a,b){return function(b){return b=a.replace(b,/style=\"font-weight: bold;\"/g,'class="bold"'),b=a.replace(b,/style=\"font-style: italic;\"/g,'class="italic"'),b=a.replace(b,/style=\"text-decoration-line: line-through;\"/g,'class="line-through"'),b=a.replace(b,/style=\"text-decoration-line: underline;\"/g,'class="underline"')}}angular.module("ice.filters").filter("htmlstylespan",["_","$filter",a])}(),function(){"use strict";function a(a){return function(b,c){return a.searchPages(c).then(function(a){return a.data}).catch(function(a){$log.error(a)})}}angular.module("ice.filters").filter("customDocumentationPageSearch",["cmsService",a])}(),function(){"use strict";function a(){}angular.module("ice.toolbar",[]).config(a)}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;g.notifications=0;var h=c.getUserData();h&&(g.isAdmin=c.isAdmin(h),c.getNotifications(h.uuid).then(function(a){200===a.status&&(g.notifications=a.data.notifications_number?a.data.notifications_number:0)}).catch(function(a){e.error(a)})),g.logout=function(){c.resetUserData(),b.setJson("ice.settings.eng_uuid",void 0),d.go("app.login")},g.addFeedback=function(){f.open({templateUrl:"main/modals/feedback/feedback.html",controller:"FeedbackModalController",controllerAs:"vm",size:"lg",resolve:{action:function(){return"add"}}})},a.$on("eventClearNotifications",function(a,b){g.notifications=0})}angular.module("ice.toolbar").controller("ToolbarController",["$rootScope","localStorageService","usersService","$state","$log","$uibModal",a])}(),function(){"use strict";function a(){}angular.module("ice.navigation",[]).config(a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var o=this;k.selected=void 0,k.states=["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota","North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],o.formatted_engagements={},o.starred_engagements={},o.recent_engagements={},o.showOpenWizardButton=!1;var p=i.getUserData();void 0!=p&&1==p.activationSuccess&&(o.activation_success=!0),o.selectEngagement=function(a,c,e,f){var j=angular.element(l);void 0!=c&&j.width()<992&&$(".navbar-collapse").collapse("hide"),null!=h.params.messagePass&&(m.setToast(h.params.messagePass,"success"),h.params.messagePass),void 0==a&&void 0!=g.getJson("ice.settings.eng_uuid")?a=g.getJson("ice.settings.eng_uuid"):h.go("app.dashboard.dashboard");var n=b.defer();return void 0!=c?o.view_type=c:""!=d.getPage()?o.view_type=d.getPage():void 0!=g.getJson("ice.settings.view_type")?o.view_type=g.getJson("ice.settings.view_type"):o.view_type="overview",void 0!=e?e=e:void 0!=g.getJson("ice.settings.sub_id")&&(e=g.getJson("ice.settings.sub_id")),g.setJson("ice.settings.view_type",o.view_type),g.setJson("ice.settings.sub_id",e),d.setPage(o.view_type),k.$watch(function(){return d.getPage()},function(a,b){a!==b&&(o.view_type=a)}),o.engagement=void 0,angular.forEach(o.recent_engagements,function(b,c){b.uuid===a?(o.engagement=b,o.engagement.selected=!0,o.engagement.page=o.view_type,o.engagement.sub_id=e,o.engagement.view_type=o.view_type):b.selected=void 0;o.recent_engagements[c]=b}),angular.forEach(o.starred_engagements,function(b,c){b.uuid===a?(o.engagement=b,o.engagement.selected=!0,o.engagement.page=o.view_type,o.engagement.sub_id=e,o.engagement.view_type=o.view_type):b.selected=void 0;o.starred_engagements[c]=b}),o.engagement?(g.setJson("ice.settings.eng_uuid",a),o.showOpenWizardButton=!0,void 0!==f&&!0!==f||(o.activation_success?h.go("app.dashboard."+o.view_type,{engagement_uuid:a,engagement:o.engagement,sub_id:e,messagePass:"You have successfully activated your account!"}):h.go("app.dashboard."+o.view_type,{engagement_uuid:a,engagement:o.engagement,sub_id:e,messagePass:null}))):1!=o.last_not_found_engagement?(g.setJson("ice.settings.eng_uuid",void 0),r()):r(!0),o.isReviewer=i.isReviewer(o.me,o.engagement.reviewer_uuid),o.isPeerReviewer=i.isPeerReviewer(o.me,o.engagement.peer_reviewer_uuid),n.resolve(a),n.promise},o.searchSelectEngagement=function(b){f.getSingleEngagement(o.me.uuid,b).then(function(c){a.ice.loader.show=!1,200===c.status&&c.data&&""!==c.data&&r(!1,{uuid:b,page_type:"overview",sub_id:void 0})}).catch(function(b){a.ice.loader.show=!1,n.error(b)})};var q=function(){return o.me=o.user=i.getUserData(),o.isAdmin=i.isAdmin(o.me),o.isEngagementEL=i.isUserInRole(c.roles.el),o.vfc_num=0,o.user&&!1===o.user.is_active?void h.go("app.resend_activation",{message:"Please activate your account first"}):void 0===o.user?void h.go("app.login",{message:"Please login first"}):(r(!1),void a.$on("onUpdateEngagements",function(a,b){void 0!=b&&void 0!=b.select?r(!1,b.select):r(!0)}))},r=function(b,c){a.ice.loader.show=!0,o.starred_engagements={},o.recent_engagements={},o.formatted_engagements={},f.getStarredEngagements().then(function(d){a.ice.loader.show=!1,200===d.status&&d.data&&""!==d.data?s(d.data,!0,!1):204===d.status?n.error("no starred VFs were found for you."):n.error("getStarredEngagements Failed."),f.getRecentEngagements().then(function(d){a.ice.loader.show=!1,200===d.status&&d.data&&""!==d.data?d.data.length>0?s(d.data,!1,!0,b,c):h.go("app.dashboard.overview",{engagement_uuid:void 0,engagement:void 0,sub_id:void 0}):204===d.status?(n.error("no recent VFs were found for you."),t(b)):n.error("getRecentEngagements Failed.")}).catch(function(b){a.ice.loader.show=!1,n.error(b)})}).catch(function(b){a.ice.loader.show=!1,n.error(b)})};a.$on("searchSelectEngagement",function(a,b){o.searchSelectEngagement(b)});var s=function(a,b,c,d,e){var f=void 0;for(f=0;f0?(1==a?b=o.formatted_engagements[Object.keys(o.formatted_engagements)[0]].uuid:e.search().eng_uuid?b=e.search().eng_uuid:null!=c?b=c:void 0!=h.params.engagement_uuid&&(b=h.params.engagement_uuid),0!=b?o.selectEngagement(b):(h.go("app.dashboard.dashboard"),null!=h.params.messagePass&&(m.setToast(h.params.messagePass,"success"),h.params.messagePass)),0==b&&(b=o.formatted_engagements[Object.keys(o.formatted_engagements)[0]].uuid,o.engagement=o.formatted_engagements[Object.keys(o.formatted_engagements)[0]]),void 0!=o.engagement&&null!=o.engagement.creator&&d.uuid==o.engagement.creator&&1==o.activation_success&&o.openGettingStartedWizard(b)):1==d.activationSuccess?(o.openGettingStartedWizard(),h.go("app.dashboard.dashboard")):h.go("app.dashboard.dashboard");o.activation_success=!1,i.setUserActivationSuccess(void 0)};q(),o.openGettingStartedWizard=function(b){var c=!(!o.engagement||!b)&&o.engagement.is_service_provider_internal;b=b||"";var d={user:o.user,eng_uuid:b,is_service_provider_internal:c,showActivationMessage:o.activation_success};a.$broadcast("openGettingStartedWizard",d),o.activation_success=!1},o.addChecklist=function(a){j.open({templateUrl:"main/modals/checklist/checklist.html",controller:"ChecklistModalController",controllerAs:"vm",size:"lg",resolve:{engagementUuid:function(){return a},modal_type:function(){return"create"},wizardData:function(){return!1}}}).result.then(function(b){var c=void 0;void 0!=b&&(c=b.uuid,r(!1,{uuid:a,page_type:"checklist",sub_id:c}),b.progress&&o.callback(b))},function(){n.debug("Modal dismissed at: "+new Date)})}}angular.module("ice.navigation",["ui.bootstrap"]).controller("NavigationController",["$rootScope","$q","iceConstants","pageService","$location","vfService","localStorageService","$state","usersService","$uibModal","$scope","$window","toastService","$log",a])}(),function(){"use strict";function a(a,b,c,d,e){var f=this,g=function(){f.checkListTemplates=null,i(),h()},h=function(){a.$watch(function(){return e.params.templateName},function(a,b){a!==b&&f.selectedTemplate&&(f.selectedTemplate.name=a)})},i=function(){c.getChecklistTemplates().then(function(a){d.ice.loader.show=!1,200===a.status&&a.data&&""!==a.data?f.checkListTemplates=a.data.checkListTemplates:b.debug("getChecklistTemplates Failed. response.status="+a.status)}).catch(function(a){d.ice.loader.show=!1,b.error(a)})};f.selectTemplate=function(a){a!==f.selectedTemplate&&(f.selectedTemplate=a,e.go("app.admin.checklisttemplate",{template_uuid:a.uuid}))},g()}angular.module("ice.main.admin",["ice.services.users"]).controller("adminNavigationController",["$scope","$log","checklistService","$rootScope","$state",a])}(),function(){"use strict";function a(a,b,c,d,e){var f=this,g="LastDocumentationPageId",h=function(){c.getPages("Documentation").then(function(a){if(a&&a.data&&1===a.data.length){f.documentationPage=a.data[0];var b=d.getJson(g);b?f.loadPageContent(b):f.loadPageContent(f.documentationPage.id)}}).catch(function(a){e.error(a)})};f.loadPageContent=function(a){f.selectedSearchedPage&&delete f.selectedSearchedPage,f.pageId=a,d.setJson(g,a),b.go("app.documentation.page",{page_id:a})},f.isPageCollapsed=function(b){var c=!0;if(b&&b.children&&b.children.length>0){var d=a.flatMap(b.children,function(b){return a.concat(b.children,b)});c=b.id!=f.pageId&&!a.some(d,["id",f.pageId])}return c},h()}angular.module("ice.documentation",[]).controller("documentationNavigationController",["_","$state","cmsService","sessionStorageService","$log",a])}(),function(){"use strict";function a(a){var b=this,c=function(){b.selectedPage=a.$current.name||"app.account"};b.loadPageContent=function(c){b.selectedPage=c,a.go(c)},c()}angular.module("ice.dashboard.account",[]).controller("accountNavigationController",["$state",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;g.progress=b,g.closeModal=function(){a.close()},g.submitForm=function(){var b={progress:g.progress};d.updateProgress(c,b).then(function(c){202===c.status&&a.close(b)}).catch(function(a){e.error(a),f.setToast(a.status+": Error changing progress!","danger")})}}angular.module("ice.modals",[]).controller("ChangeProgressModalController",["$uibModalInstance","progress","engagementUuid","vfService","$log","toastService",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;g.completionDate=b,g.dateOptions={minDate:new Date,showWeeks:!0},g.closeModal=function(){a.close()},g.submitForm=function(){var b={target_date:moment(g.completionDate).format("YYYY-MM-DD")};d.updateDaysLeft(c,b).then(function(c){200===c.status&&a.close(b)}).catch(function(a){f.setToast(a.status+": Error changing completion date!","danger")})}}angular.module("ice.modals").controller("ChangeDateModalController",["$uibModalInstance","completionDate","engagementUuid","vfService","$rootScope","toastService",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;g.targetLabDate=b,g.dateOptions={minDate:new Date,showWeeks:!0},g.closeModal=function(){a.close()},g.myDate=new Date,g.minDate=moment(g.myDate).format("YYYY-MM-DD"),g.maxDate=moment(g.myDate).add(2,"years").format("YYYY-MM-DD"),g.submitForm=function(){var b={target_date:moment(g.targetLabDate).format("YYYY-MM-DD")};d.updateLabEntryDaysLeft(c,b).then(function(c){200===c.status&&a.close(b)}).catch(function(a){f.setToast(a.status+": Error changing completion date!","danger")})}}angular.module("ice.modals").controller("ChangeLabEntryDateModalController",["$uibModalInstance","targetLabDate","engagementUuid","vfService","$rootScope","toastService",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k){var l=this;l.nextSteps=[{assigneesUuids:"",description:"",files:"",duedate:""}],function(){l.myDate=new Date,l.minDate=new Date(l.myDate.getFullYear(),l.myDate.getMonth(),l.myDate.getDate()),l.maxDate=new Date(l.myDate.getFullYear()+2,l.myDate.getMonth(),l.myDate.getDate()),l.onlyWeekendsPredicate=function(a){var b=a.getDay();return 0===b||6===b},l.wysiwyg_menu=[["bold","italic","strikethrough","underline"],["unordered-list","ordered-list","outdent","indent"]],l.select_str={File:"Select All"},l.select_all_flag=!1,l.associated_files=[],l.associated_files.push(l.select_str),l.assigness=[],l.title=e,void 0==h?(l.checklist={},l.checklist.uuid=void 0):l.checklist=h;var a=[];if(angular.forEach(f,function(b,c){-1==a.indexOf(b)&&(a.push(b),l.associated_files.push({File:b}))}),angular.forEach(d,function(a,b){l.assigness.push({name:a.full_name,id:a.uuid})}),l.edit=!1,void 0!=i){l.edit=!0;var b={};b.description=i.description,b.files=[],b.duedate=new Date(i.due_date);var a=[];angular.forEach(i.files,function(c,d){-1==a.indexOf(value)&&(a.push(value),b.files.push({File:c}))}),b.assigneesUuids=[],angular.forEach(i.assignees,function(a,c){b.assigneesUuids.push({name:a.full_name,id:a.uuid})}),l.nextSteps=[b]}}(),l.get_chosen_files_num=function(a){return a.files.length==f.length+1?a.files.length-1:a.files.length},l.add_all_associated_files=function(a,b){1==b?(a.files=[],a.files.push({File:"Select All"}),_.forEach(f,function(b,c){a.files.push({File:b})})):(l.select_all_flag=!1,a.files=[])},l.pull_select_all_from_list=function(a){var b=[];_.forEach(a.files,function(a){_.isEqual(a,l.select_str)||b.push(a)}),a.files=b},l.verify_files_choice=function(a){_.forEach(a.files,function(b){a.files.length==f.length&&l.select_all_flag?b===l.select_str?(l.select_all_flag=!1,l.pull_select_all_from_list(a)):l.add_all_associated_files(a,!1):a.files.length!=f.length||l.select_all_flag?b===l.select_str&&(l.select_all_flag=!0,l.add_all_associated_files(a,!0)):(a.files.push({File:"Select All"}),l.select_all_flag=!0)})},l.addNewStep=function(){var a=l.nextSteps.length+1;l.nextSteps.push({id:a})},l.removeStep=function(a){l.nextSteps.splice(a,1)},l.closeModal=function(){a.ice.loader.show=!1,j.clearToast(),b.close()},l.submitForm=function(){var d,e=[];angular.forEach(l.nextSteps,function(a,b){var c={};c.files=[],a.files.length>f.length&&l.pull_select_all_from_list(a),angular.forEach(a.files,function(a,b){c.files.push(a.File)}),c.assigneesUuids=[],angular.forEach(a.assigneesUuids,function(a,b){c.assigneesUuids.push(a.id)}),d=new Date(Date.parse(a.duedate+moment().format("z"))),c.duedate=d.getFullYear()+"-"+m(d.getMonth()+1)+"-"+m(d.getDate()),c.description=a.description,e.push(c)});var h=l.checklist.uuid,n=g;l.edit?c.edit(g,i.uuid,e[0]).then(function(a){202===a.status&&b.close(a.data)}).catch(function(a){k.error(a),j.setToast(a.status+": Error adding next step!","danger",{displayFor:"modal"})}):void 0==l.checklist.uuid?c.add(g,e).then(function(a){200===a.status&&b.close(a.data)}).catch(function(a){k.error(a),j.setToast(a.status+": Error adding next step!","danger",{displayFor:"modal"})}):c.createChecklistNextStep(h,n,e).then(function(c){200===c.status?(b.close(c.status),l.closeModal()):(j.setToast(error.message,"danger",{displayFor:"modal"}),a.ice.loader.show=!1,k.error(error))}).catch(function(b){j.setToast(b.message,"danger",{displayFor:"modal"}),a.ice.loader.show=!1,k.error(b)})};var m=function(a){return a<10?"0"+a:a}}angular.module("ice.modals").controller("NextStepsModalController",["$rootScope","$uibModalInstance","stepsService","engagement_team","title","associated_files","engagement_uuid","checklist","nextstep","toastService","$log",a])}(),function(){"use strict";function a(a,b,c,d,e){var f=this,g=function(){f.stage=c,f.current_stage=e,f.modalText="Are you sure you want to set the Engagement's stage to "+f.stage+"?",f.eng_name=d};f.closeModal=function(a){b.close(a)},g()}angular.module("ice.modals").controller("setEngStageModalController",["$rootScope","$uibModalInstance","stage","eng_name","current_stage",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h){var i=this;i.checkListAssociatedFiles=[],i.selectedCheckListAssociatedFiles=[],i.isDisabled=!1,function(){switch(f){case"create":i.create=!0,i.createUpadeTitle="Create",i.modalType="create",i.modalTitle="Create",d.getDataForCreateChecklist(e).then(function(a){200===a.status&&(i.checkListTemplatesLists=[],i.checkListTemplates=a.data.checkListTemplates,angular.forEach(a.data.checkListAssociatedFiles,function(a,b){i.checkListAssociatedFiles.push({File:a})}),b.ice.loader.show=!1)}).catch(function(c){a.setToast(c.message,"danger",{displayFor:"modal"}),b.ice.loader.show=!1,h.error(c.message)});break;case"update":i.update=!0,i.createUpadeTitle="Update",i.modalType="udpate",i.modalTitle="Update",i.checklistUuid=g.uuid,i.checkListName=g.name,d.getDataForCreateChecklist(e).then(function(a){200===a.status&&(i.checkListAssociatedFiles=[],angular.forEach(a.data.checkListAssociatedFiles,function(a,b){i.checkListAssociatedFiles.push({File:a})}),b.ice.loader.show=!1,i.selectedCheckListAssociatedFiles=[],angular.forEach(g.associatedFiles,function(a,b){i.selectedCheckListAssociatedFiles.push({File:a})}))}).catch(function(c){a.setToast(c.message,"danger",{displayFor:"modal"}),b.ice.loader.show=!1,h.error(c.message)}),i.selectedTemplateUuid=g.selectedTemplateUuid,i.selectedTemplateName=g.selectedTemplateName}}(),i.addFile=function(){var a=i.selectedCheckListAssociatedFiles.length+1;i.selectedCheckListAssociatedFiles.push({id:a})},i.removeFile=function(a){i.selectedCheckListAssociatedFiles.splice(a,1)},i.closeModal=function(){a.clearToast(),b.$emit("onChecklistUpdate"),c.close(i.checkListName),c.close()}, +i.submitForm=function(){i.isDisabled=!0;var j=[];switch(f){case"create":angular.forEach(i.selectedCheckListAssociatedFiles,function(a,b){j.push(a.File)});var k={checkListAssociatedFiles:j,checkListName:i.checkListName,checkListTemplateUuid:i.selectedTemplateUuid};d.createChecklist(e,k).then(function(a){200===a.status&&(c.close(a.data),b.ice.loader.show=!1,i.closeModal())}).catch(function(c){a.setToast(c.message||"Error creating check list.","danger",{displayFor:"modal"}),b.ice.loader.show=!1,i.isDisabled=!1,h.error(c.message)});break;case"update":var l=[];angular.forEach(i.selectedCheckListAssociatedFiles,function(a,b){l.push(a.File)}),h.debug("update",l);var m={checklistUuid:i.checklistUuid,checkListAssociatedFiles:l,checkListName:i.checkListName,checkListTemplateUuid:i.selectedTemplateUuid};d.putDataForChecklist(i.checklistUuid,m).then(function(f){if(200===f.status){b.$broadcast("onUpdateEngagements",{select:{uuid:e,view_type:"checklist",sub_id:i.checklistUuid}}),b.ice.loader.show=!1;var j={};j.checklist_name=i.checkListName,j.associated_files=l;var k=i.checkListAssociatedFiles.sort(),m=l.sort();if((k.length!=m.length||!k.every(function(a,b){return a===m[b]}))&&"pending"!=g.state){var n={};n.description="Rejected due to file list change",n.decline="True",d.setState(i.checklistUuid,n).then(function(c){if(200!==c.status)return a.setToast(c.error,"danger",{displayFor:"modal"}),b.ice.loader.show=!1,void(i.isDisabled=!1);b.$broadcast("onUpdateEngagements")}).catch(function(b){h.error(b),a.setToast(b.status+": Error changing progress!","danger"),i.isDisabled=!1})}c.close(j),i.closeModal()}}).catch(function(c){a.setToast(c.message,"danger",{displayFor:"modal"}),b.ice.loader.show=!1,h.error(c.message),i.isDisabled=!1});break;default:h.debug("no submit action found"),i.isDisabled=!1}}}angular.module("ice.modals").controller("ChecklistModalController",["toastService","$rootScope","$uibModalInstance","checklistService","engagementUuid","modal_type","wizardData","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;(function(){var a=[],b=moment().tz(moment.tz.guess()).format("z"),c="";g.name=d.name,g.checklistAuditLogs=d.checklistAuditLogs,g.checklistAuditLogs.forEach(function(d){c=moment(d.create_time).local().format("YYYY-MM-DD hh:mm:ss A")+" "+b,a.push({name:d.creator.full_name,dt:c,desc:d.description})}),g.checklistAuditLogs=a})(),g.submitForm=function(){var h={description:g.description};c.createAuditlogChecklist(d.uuid,h).then(function(c){200===c.status?(b.close(c.data),g.closeModal()):(e.setToast(c.error,"danger",{displayFor:"modal"}),a.ice.loader.show=!1)}).catch(function(a){e.setToast(a.message,"danger",{displayFor:"modal"}),f.error(a.message)})},g.closeModal=function(){e.clearToast(),b.close()}}angular.module("ice.modals").controller("AuditLogModalController",["$rootScope","$uibModalInstance","checklistService","wizardData","toastService","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g){var h=this,i=function(){h.me=f.getUserData(),j()};h.vfcs=[{name:"",external_ref_id:"",company:""}],h.companies=[],h.closeModal=function(){b.close()},h.addNewChoice=function(){var a=h.vfcs.length+1;h.vfcs.push({id:a})},h.removeChoice=function(a){h.vfcs.splice(a,1)},h.submitForm=function(){var a=[];angular.forEach(h.vfcs,function(b,c){h.item=[];var d=new Object;d.name=b.name,d.external_ref_id=b.external_ref_id,d.company=b.company,a.push(d)});var f={vfcs:a,vf_uuid:e,creator:h.me};c.add(f).then(function(a){200===a.status&&b.close(a.status)}).catch(function(a){g.error(a),d.setToast(a.status+": Error changing progress!","danger")})};var j=function(){a.ice.loader.show=!0,c.getCompanies().then(function(b){a.ice.loader.show=!1,200===b.status&&(h.companies=b.data,0===h.companies.length&&console.warn("No vendors pulled, request was successfull"))}).catch(function(b){a.ice.loader.show=!1,g.error(b)})};i()}angular.module("ice.modals").controller("detailedViewVFCModalController",["$rootScope","$uibModalInstance","vfcService","toastService","vf_uuid","usersService","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j){function k(){d.getDeployTargets().then(function(b){a.ice.loader.show=!1,200===b.status&&(n.deployTargets=b.data,0===j.filter(n.deployTargets,{uuid:n.dtversion.uuid}).length&&(n.dtversion.disabled=!0,n.deployTargets.push(n.dtversion)))}).catch(function(b){a.ice.loader.show=!1,i.error(b)})}function l(){d.getECOMPReleases().then(function(a){200===a.status&&(n.ECOMPReleases=a.data,0===j.filter(n.ECOMPReleases,{uuid:n.ecomp_release.uuid}).length&&(n.ecomp_release.disabled=!0,n.ECOMPReleases.push(n.ecomp_release)))}).catch(function(b){a.ice.loader.show=!1,i.error(b)})}function m(){d.getVFVersion(g).then(function(b){a.ice.loader.show=!1,200===b.status&&(n.VFVersion=b.data)}).catch(function(b){a.ice.loader.show=!1,i.debug(b)})}var n=this,o=function(){e.engagement&&(n.engagement=e.engagement),n.me=h.getUserData(),d.getSingleEngagement(n.me.uuid,n.engagement.uuid).then(function(b){if(a.ice.loader.show=!1,200===b.status&&b.data&&""!==b.data){var c=b.data;n.engagement_manual_id=c.engagement.engagement_manual_id,n.vf_name=c.name,n.vf_uuid=c.uuid,n.ecomp_release=c.ecomp_release,n.target_lab=new Date(c.target_lab_entry_date),n.dtversion=c.deployment_target,n.selected_dt_uuid=n.dtversion.uuid,n.selected_ecomp_uuid=n.ecomp_release.uuid,n.me=h.getUserData(),n.name=n.engagement.name,n.isEngagementEL=h.isEngagementEL(c.engagement.engagement_team),n.isAdmin=h.isAdmin(n.me),n.choices=[{TargetLab:"",TargetAic:""}],k(),l(),m()}}).catch(function(b){a.ice.loader.show=!1,i.error(b)})};n.closeModal=function(){b.close()},n.addNewChoice=function(){var a=n.choices.length+1;n.choices.push({id:a})},n.removeChoice=function(a){n.choices.splice(a,1)},n.submitForm=function(){var a={vf_uuid:n.vf_uuid,version:n.VFVersion,target_aic_uuid:n.TargetAic,ecomp_release:n.ECOMPRelease};d.updateVfs(a,n.vf_uuid).then(function(a){200===a.status&&b.close(a.status)}).catch(function(a){i.error(a),f.setToast(a.status+": Error changing progress!","danger")})},n.update_deployment_target=function(){n.dtversion.uuid!=n.selected_dt_uuid&&(angular.forEach(n.dt_AIC_versions,function(a,b){a.uuid===n.selected_dt_uuid&&(n.dtversion=a)}),d.updateDeployTargets(n.engagement.uuid,n.selected_dt_uuid).then(function(b){a.ice.loader.show=!1}).catch(function(b){a.ice.loader.show=!1,i.error(b)}),n.set_edit_mode("aic"))},n.update_ECOMP_release=function(){n.ecomp_release.uuid!=n.selected_ecomp_uuid&&(j.each(n.ECOMPReleases,function(a,b){a.uuid===n.selected_ecomp_uuid&&(n.ecomp_release=a)}),d.updateECOMPReleases(n.engagement.uuid,n.selected_ecomp_uuid).then(function(b){a.ice.loader.show=!1}).catch(function(b){a.ice.loader.show=!1,i.error(b)}),n.set_edit_mode("ecomp"))},o()}angular.module("ice.modals").controller("validationDetailsModalController",["$rootScope","$uibModalInstance","vfcService","vfService","$stateParams","toastService","vf_uuid","usersService","$log","_",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g){var h=this,i=function(){void 0!=c.engagement&&(h.vf=c.engagement.vf),j()};h.closeModal=function(){b.close()},h.json="",h.submitForm=function(){var a={name:h.json,vf_uuid:f};d.add(a).then(function(a){b.close(a.status)}).catch(function(a){g.error(a),e.setToast(a.status+": Error changing progress!","danger")})};var j=function(){a.ice.loader.show=!0,d.get().then(function(b){a.ice.loader.show=!1,200===b.status&&(h.dtsites=b.data)}).catch(function(b){a.ice.loader.show=!1,g.error(b)})};i()}angular.module("ice.modals").controller("detailedViewDtsitesModalController",["$rootScope","$uibModalInstance","$stateParams","dtsiteService","toastService","vf_uuid","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g){var h=this,i=function(){h.description=null,h.checklist_name=f.name,h.state=f.state,h.action=e,h.modalText="pending"==h.state?"Are you sure you want to move the checklist state to Automation?":"Please use the button below to either approve or reject the checklist.
You can also add a log entry comment."};h.submitForm=function(e){var i={};null!=h.description?i.description=h.description:i.description="",i.decline=!0===e?"False":"True",c.setState(f.uuid,i).then(function(c){200===c.status?(b.close(c.data),h.closeModal()):(d.setToast(c.error,"danger"),a.ice.loader.show=!1)}).catch(function(a){g.error(a),d.setToast(a.status+": Error changing progress!","danger")})},h.closeModal=function(){b.close()},i()}angular.module("ice.modals").controller("stateDecisionModalController",["$rootScope","$uibModalInstance","checklistService","toastService","action","checklist","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g){var h=this;(function(){h.engagement_uuid=d,h.action=e,"edit"==e?c.get(d).then(function(a){200===a.status?(h.status=a.data,h.status_modal_description=h.status.description,h.eng_status_uuid=h.status.uuid):g.error(a)}).catch(function(a){h.status=!1,g.error(a.message)}):h.status_modal_description=""})(),h.submitForm=function(){var d={description:h.status_modal_description};"edit"==e?(d.eng_status_uuid=h.eng_status_uuid,c.update(h.engagement_uuid,d).then(function(c){200===c.status?(b.close(c.data),h.closeModal()):(f.setToast(c.error,"danger"),a.ice.loader.show=!1)}).catch(function(a){f.setToast(a.message,"danger"),g.error(a.message)})):c.add(h.engagement_uuid,d).then(function(c){200===c.status?(b.close(c.data),h.closeModal()):(f.setToast(c.error,"danger"),a.ice.loader.show=!1)}).catch(function(a){f.setToast(a.message,"danger"),g.error(a.message)})},h.closeModal=function(){b.close()}}angular.module("ice.modals").controller("StatusModalController",["$rootScope","$uibModalInstance","statusService","engagement_uuid","action","toastService","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;(function(){g.action=d,g.feedback_modal_description=""})(),g.submitForm=function(){var h={description:g.feedback_modal_description};"add"==d&&c.add(h).then(function(c){200===c.status?(b.close(c.data),e.setToast("Feedback was sent successfully.","success")):(e.setToast(c.error,"danger"),a.ice.loader.show=!1)}).catch(function(a){e.setToast(a.message,"danger"),f.error(a.message)})},g.closeModal=function(){b.close()}}angular.module("ice.modals").controller("FeedbackModalController",["$rootScope","$uibModalInstance","feedbackService","action","toastService","$log",a])}(),function(){"use strict";function a(a,b){var c=this,d=function(){b&&(c.upper_headline=b.upper_headline,c.upper_headline_value=b.upper_headline_value,c.headline=b.headline||"D2ICE",c.message=b.message||"Are you sure?",c.closeCallback=b.closeCallback,c.approveText=b.approve||"Approve",c.cancelText=b.cancel||"Cancel",c.is_close_modal_button=b.is_close_modal_button,c.is_message=b.is_message)};c.closeModal=function(b){c.closeCallback&&c.closeCallback(b),a.close(b)},d()}angular.module("ice.modals").controller("generalPromptModalController",["$uibModalInstance","modalDetails",a])}(),function(){"use strict";function a(a,b){var c=this;(function(){b&&(c.headline=b.headline||"General log modal",c.body=b.body||"There is no body")})(),c.closeModal=function(){a.close()}}angular.module("ice.modals").controller("GeneralLogModalController",["$uibModalInstance","modalDetails",a])}(),function(){"use strict";function a(a,b,c,d){function e(){b.getPosts(5,"",["Announcement","News"]).then(function(a){f.recentPosts=a.data}).catch(function(a){d.error(a)})}var f=this,g=function(){c?f.post=c:b.getLastAnnouncementPost().then(function(a){a&&a.data&&1===a.data.length&&(f.post=a.data[0])}).catch(function(a){d.error(a)}),e()};f.closeModal=function(b){a.close(b)},f.loadSelectedPostData=function(a){a&&(f.post=a)},g()}angular.module("ice.modals").controller("cmsPostModalController",["$uibModalInstance","cmsService","post","$log",a])}(),function(){"use strict";function a(a,b){var c=this,d=function(){b&&(c.engagement=b)};c.closeModal=function(){a.dismiss()},c.archiveEngagement=function(){a.close(c.reason)},d()}angular.module("ice.modals").controller("archiveEngagementModalController",["$uibModalInstance","engagementDetails",a])}(),function(){"use strict";function a(a,b,c,d,e,f){var g=this;g.show_warning=!1;var h=function(){d.getEngagementLeads().then(function(a){g.engagementLeads=e.filter(a.data,function(a){return a.uuid}),g.selectedUserUuid=e.find(g.engagementLeads,["uuid",c])}).catch(function(a){f.error(a),g.closeModal()})};g.closeModal=function(){a.dismiss()},g.onUserSelect=function(){g.selectedUserUuid&&a.close(g.selectedUserUuid)},h()}angular.module("ice.modals").controller("selectELModalController",["$uibModalInstance","excludeUuids","selectedOption","usersService","_","$log",a])}(),function(){"use strict";function a(a,b){var c=this,d=function(){c.engagement=b,e()};c.closeModal=function(){a.dismiss()},c.updateEngagement=function(){e(),a.close({engagement:c.engagement,status:c.status})};var e=function(){c.engagement.target_completion_date&&(c.engagement.target_completion_date=new Date(c.engagement.target_completion_date)),c.engagement.heat_validated_time&&(c.engagement.heat_validated_time=new Date(c.engagement.heat_validated_time)),c.engagement.image_scan_time&&(c.engagement.image_scan_time=new Date(c.engagement.image_scan_time)),c.engagement.aic_instantiation_time&&(c.engagement.aic_instantiation_time=new Date(c.engagement.aic_instantiation_time)),c.engagement.asdc_onboarding_time&&(c.engagement.asdc_onboarding_time=new Date(c.engagement.asdc_onboarding_time))};d()}angular.module("ice.modals").controller("updateEngagementStatusModalController",["$uibModalInstance","engagement",a])}(),function(){"use strict";function a(a,b){}angular.module("ice.main",[]).controller("MainController",a).config(["$mdDateLocaleProvider",function(a){a.formatDate=function(a){return a?moment(a).format("MMMM Do YYYY"):""},a.parseDate=function(a){var b=moment(a,"YYYY-MM-DD",!0);return b.isValid()?b.toDate():new Date(NaN)}}]),a.$inject=["$scope","$rootScope"]}(),function(){"use strict";function a(a){a.state("app.dashboard",{abstract:!0,views:{"navigation@app":{templateUrl:"core/navigation/layouts/horizontal-navigation/navigation.html",controller:"NavigationController as vm"}},bodyClass:"dashboard"}).state("app.dashboard.dashboard",{url:"/dashboard/dashboard",views:{"content@app":{templateUrl:"main/dashboard/dashboard/dashboard.html",controller:"DashboardMainController as vm"}},params:{engagement_uuid:null,engagement:null,messagePass:null},bodyClass:"dashboard"}).state("app.dashboard.overview",{url:"/dashboard/overview",views:{"content@app":{templateUrl:"main/dashboard/overview/overview.html",controller:"OverviewMainController as vm"}},params:{engagement_uuid:null,engagement:null,messagePass:null},bodyClass:"dashboard"}).state("app.dashboard.detailedview",{url:"/dashboard/detailedview",views:{"content@app":{templateUrl:"main/dashboard/detailed-view/detailed-view.html",controller:"detailedViewController as vm"}},params:{engagement_uuid:null,engagement:null},bodyClass:"dashboard"}).state("app.dashboard.checklist",{url:"/dashboard/checklist",views:{"content@app":{templateUrl:"main/dashboard/checklist/checklist.html",controller:"DashboardChecklistController as vm"}},params:{engagement_uuid:null,sub_id:null,engagement:null},bodyClass:"dashboard"})}angular.module("ice.dashboard.main",["ice.dashboard.get-started-modal"]).config(a),a.$inject=["$stateProvider"]}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var o=this;o.sortableOptions={handle:" .order-nextstep",axis:"y",update:function(a,b){f.order_next_steps(o.engagement.uuid,o.steps).then(function(a){200===a.status&&n.debug("updated")}).catch(function(a){n.error(a)})}};var p=function(){k.setAnnouncementToast(),b.timeGapLocal=moment().format("z"),b.ampm=moment().format("A"),b.mom=moment().tz(moment.tz.guess()).format("z"),o.engagement=d.engagement,void 0!=o.engagement&&(o.me=h.getUserData(),g.getSingleEngagement(o.me.uuid,o.engagement.uuid).then(function(a){b.ice.loader.show=!1,200===a.status&&a.data&&""!==a.data&&(o.vf=a.data,o.is_service_provider_internal=o.vf.is_service_provider_internal,o.name=o.vf.name,o.manual_id=o.vf.engagement.engagement_manual_id,o.vf.git_repo_url&&-1!=o.vf.git_repo_url?o.git_repo_url=o.vf.git_repo_url:o.git_repo_url=!1,o.storage_bucket_url=o.manual_id+"_"+o.name.toLowerCase(),o.team=o.vf.engagement.engagement_team,o.me=h.getUserData(),o.stages=i.stages,o.stage=o.vf.engagement.engagement_stage,o.stage_num=0,o.set_stage_num(o.stage),o.in_overview_page=!0,o.uuid=o.engagement.uuid,o.progress=o.vf.engagement.progress,o.completion_date=o.vf.engagement.target_completion_date,o.starred=!1,o.isEngagmentLead=h.isUserInRole("el"),o.isEngagementEL=h.isEngagementEL(o.team),o.isAdmin=h.isAdmin(o.me),o.does_user_role_allow_action_array=[o.isAdmin,o.isEngagementEL],o.unremoveable_users_from_eng_team_array=[o.vf.engagement.reviewer.uuid,o.vf.engagement.peer_reviewer.uuid,o.vf.engagement.creator.uuid],null!=o.vf.engagement.contact_user&&o.unremoveable_users_from_eng_team_array.push(o.vf.engagement.contact_user.uuid),o.states=i.states,o.states_select=s(i.states),o.selected_state_filter=t(),o.steps=[],o.vf_name=o.vf.name,o.vf.engagement.starred_engagement.forEach(function(a){o.me.uuid==a.uuid&&(o.starred=!0)}),o.all_states=!1,o.all_files=!0,q(),o.initActivityLogs(),o.files=o.vf.files,o.files_filter_options=[],o.files_filter_options=o.files_filter_options.concat(o.files),o.files_filter_options.push("Any file"),o.chosen_files_filter=["Any file"],o.show_step=!0,o.status=!1,e.get(o.uuid).then(function(a){200===a.status?o.status=a.data:n.error(a)}).catch(function(a){o.status=!1,n.error(a.message)}),o.progress_needed_data=u())}).catch(function(a){b.ice.loader.show=!1,n.error(a)}))};o.set_stage_num=function(a){switch(a){case"Intake":o.stage_num=1;break;case"Active":o.stage_num=2;break;case"Validated":o.stage_num=3;break;case"Completed":o.stage_num=4}},o.checkIfAdmin=function(a){return h.isAdmin(a)},o.is_user_allowed=function(){return 1==c.includes(o.does_user_role_allow_action_array,!0)},o.is_able_to_delete=function(a){return!(!o.is_user_allowed()||c.includes(o.unremoveable_users_from_eng_team_array,a.uuid)||o.checkIfAdmin(a))},o.remove_user_from_eng=function(a){if(!o.is_able_to_delete(a))return l.setToast("Action is not allowed.","danger"),void(b.ice.loader.show=!1);var c=j.open({templateUrl:"main/modals/general-prompt-modal/general-prompt-modal.html",controller:"generalPromptModalController",controllerAs:"vm",resolve:{modalDetails:function(){return{upper_headline:"Remove user from engagement team: ",upper_headline_value:a.full_name,headline:"Are you sure you would like to remove the user out of the team members?",is_message:!1,message:"",approve:"Yes",cancelText:"No",is_close_modal_button:!0}}}});angular.element("body").click(),c.result.then(function(c){if(c){var d={eng_uuid:o.vf.engagement.uuid,user_uuid:a.uuid};g.remove_user_from_eng(d).then(function(a){b.ice.loader.show=!1,204===a.status&&b.$broadcast("onUpdateEngagements",{select:{uuid:o.engagement.uuid,page_type:"overview",sub_id:void 0}})}).catch(function(a){b.ice.loader.show=!1,n.error(a)})}})},a.is_match_both_filters=function(){return function(a){var b=!1;return o.all_files&&o.all_states?b=!0:o.all_states&&o.is_contain_files(a)?b=!0:o.all_files&&o.is_same_state(a.state)?b=!0:o.is_contain_files(a)&&o.is_same_state(a.state)&&(b=!0),!!b&&a}},o.is_all_files=function(){o.all_files=-1!==o.chosen_files_filter.indexOf("Any file")},o.is_contain_files=function(a){if(a.files)for(var b=0;b1&&(b=a.vfc.split(", ").length,c+=b)):a.engagement_stage==o.statistic_stage_filter&&(d++,a.vfc.length>1&&("Validated"==a.engagement_stage||"Completed"==a.engagement_stage)&&(b=a.vfc.split(", ").length,c+=b))}),o.vfc_num=c,o.eng_num=d}}).catch(function(b){a.ice.loader.show=!1,l.error(b)})},o.onStageChange=function(){o.page_num=1,o.searchEngagements()},o.onKeywordChange=function(){o.page_num=1,o.searchEngagements()},o.searchEngagements=function(){o.current_starting_offset=(o.page_num-1)*o.pagination_num_of_objects,o.postData={stage:o.search_stage,keyword:o.search_keyword,offset:o.current_starting_offset,limit:o.pagination_num_of_objects},d.getExpandedEngagements(o.postData).then(function(a){200===a.status&&a.data&&""!==a.data&&(o.vf_search_list=a.data.array,o.num_of_returned_items=a.data.num_of_objects,o.vf_search_list.forEach(function(a){var b={enable_edit:!1,completion_date:a.engagement__target_completion_date,ecomp_release:a.ecomp_release__name,vnf_version:a.version,aic_version:a.deployment_target__version,aic_instantiation_time:a.engagement__aic_instantiation_time,asdc_onboarding_time:a.engagement__asdc_onboarding_time,heat_validated_time:a.engagement__heat_validated_time,image_scan_time:a.engagement__image_scan_time,engagement_uuid:a.engagement__uuid,manual_id:a.engagement__engagement_manual_id,name:a.vf__name,starred:!1};a.progress_needed_data=b,a.starred_users.forEach(function(b){o.me.uuid==b&&(a.progress_needed_data.starred=!0)})}),o.vf_display_list=o.vf_search_list,n())}).catch(function(b){a.ice.loader.show=!1,l.error(b)})},o.goToEngagement=function(b){a.$broadcast("searchSelectEngagement",b)},o.exportEngagementCSV=function(){var b=o.search_stage||"",c=o.search_keyword||"" +;a.ice.loader.show=!0,d.exportEngagementsCSV(b,c).then(function(b){if(b&&b.data){var c=new i([b.data],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});h.saveAs(c,"D2Ice.xlsx"),a.ice.loader.show=!1}}).catch(function(b){a.ice.loader.show=!1,l.error(b)})},o.openCMSReadMoreModal=function(a){a?k.open({templateUrl:"main/modals/cms-post-modal/cms-post-modal.html",controller:"cmsPostModalController",controllerAs:"vm",size:"cms-post-read-more",resolve:{post:function(){return a}}}):l.warn("Cannot open cms post.")},p()}angular.module("ice.dashboard.dashboard",["angularUtils.directives.dirPagination","ngFileSaver"]).controller("DashboardMainController",["$rootScope","pageService","stepsService","vfService","usersService","iceConstants","localStorageService","FileSaver","Blob","cmsService","$uibModal","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i){var j=this;j.data={};var k=b.engagement_uuid;j.checklistUuid=b.sub_id,j.selected_decision=!1;var l=function(){null!=j.checklistUuid&&d.getChecklist(j.checklistUuid).then(function(a){200===a.status&&(j.data=a.data,j.data.states=e.checklist_states,j.me=f.getUserData(),j.is_peer_reviewer=f.isPeerReviewer(j.me,a.data.checklist.engagement.peer_reviewer.uuid),j.data.checklist.associated_files?j.has_files=!0:j.has_files=!1,j.formatDecisions())}).catch(function(a){if(410!==a.status)return i.error(a.message),!1;c.$broadcast("onUpdateEngagements",{select:{uuid:b.engagement_uuid,view_type:"overview",sub_id:void 0}})})};j.formatDecisions=function(){var a=0;j.data.checklistDecisions=_.orderBy(j.data.checklistDecisions,"weight"),angular.forEach(j.data.checklistDecisions,function(b,c){a++,b.counter=a;var d=0;b.decisions=_.orderBy(b.decisions,"weight"),angular.forEach(b.decisions,function(b,e){d++,b.counter=a+"."+d,0==j.selected_decision&&(j.selected_decision=b,j.selectDecision(b));var f;switch(j.data.checklist.state){case"peer_review":f=b.peer_review_value;break;case"review":case"approval":case"handoff":case"closed":f=b.review_value}var g;switch(f){case"approved":g="sprite approved-cl";break;case"denied":g="sprite denied-cl";break;case"not_relevant":g="sprite not-relevant-cl"}var h;switch(b.lineitem.line_type){case"auto":h="sprite automation-state"}j.data.checklistDecisions[c].decisions[e]["selected-value"]=f,j.data.checklistDecisions[c].decisions[e].view_value=f,j.data.checklistDecisions[c].decisions[e].view_value_css=g,j.data.checklistDecisions[c].decisions[e].auto_icon_css=h})}),j.refreshStateOptions()},j.setDecision=function(a,b){d.putChecklistDecision(a.uuid,{value:b}).then(function(c){if(200===c.status){switch(j.data.checklist.state){case"peer_review":a.peer_review_value=b;break;case"review":a.review_value=b}j.formatDecisions()}})},j.refreshStateOptions=function(){var a=!1;j.is_able_to_approve=!0,angular.forEach(j.data.checklistDecisions,function(b,c){a||angular.forEach(b.decisions,function(b,c){a||"approved"!=b.view_value&&"not_relevant"!=b.view_value&&(j.is_able_to_approve=!1,a=!0)})})},j.stateAction=function(a){switch(a){case"approve":var b={};b.description="",b.decline="False",d.setState(j.data.checklist.uuid,b).then(function(a){200===a.status?c.$broadcast("onUpdateEngagements",{select:{uuid:k,page_type:"overview",sub_id:j.data.checklist.uuid}}):(h.setToast(a.error,"danger"),c.ice.loader.show=!1)}).catch(function(a){i.error(a),h.setToast(a.status+": Error changing progress!","danger")});break;case"reject":j.openSetState(a,j.data.checklist);break;case"next_step":j.openNextSteps(j.data.checklist)}},j.formatDate=function(a){var b=moment().tz(moment.tz.guess()).format("z");return moment(a).local().format("YYYY-MM-DD hh:mm:ss A")+" "+b},j.submitDecisionAuditLog=function(){var a={description:j.selected_decision.new_audit_log_description};d.createAuditlogDecisionChecklist(j.selected_decision.uuid,a).then(function(a){200===a.status?(void 0==j.data.decisionAuditLogs[j.selected_decision.uuid]&&(j.data.decisionAuditLogs[j.selected_decision.uuid]=[]),j.data.decisionAuditLogs[j.selected_decision.uuid].push(a.data),j.selected_decision.new_audit_log_description=""):(h.setToast(a.error,"danger"),c.ice.loader.show=!1)}).catch(function(a){h.setToast(a.message,"danger"),i.error(a.message)})},j.selectDecision=function(b,c){j.selected_decision==b&&void 0!==j.selected_decision.selected||(j.selected_decision.selected=!1,j.selected_decision=b,j.selected_decision.selected=!0,a.$$postDigest(function(){if(void 0!=c){var a=angular.element(c.target).prop("offsetHeight")+angular.element(c.target).prop("offsetTop"),b=angular.element("#line-item-extended").prop("offsetHeight"),d=a-b;d>0?angular.element("#line-item-extended").css("margin-top",20+d+"px"):angular.element("#line-item-extended").css("margin-top","")}}))},j.openNextSteps=function(a){g.open({templateUrl:"main/modals/next-steps/next-steps.html",controller:"NextStepsModalController",controllerAs:"vm",size:"lg",resolve:{engagement_team:function(){return a.engagement.engagement_team},title:function(){return a.name},associated_files:function(){return a.repo_associated_files},engagement_uuid:function(){return a.engagement.uuid},checklist:function(){return a},nextstep:function(){}}}).result.then(function(b){200===b&&c.$broadcast("onUpdateEngagements",{select:{uuid:k,page_type:"overview",sub_id:a.uuid}})},function(){})},j.openSetState=function(a,b){g.open({templateUrl:"main/modals/checklist/state-approve-or-reject/state-approve-or-reject.html",controller:"stateDecisionModalController",controllerAs:"vm",resolve:{checklist:function(){return b},action:function(){return a}}}).result.then(function(a){a&&c.$broadcast("onUpdateEngagements",{select:{uuid:k,page_type:"overview",sub_id:b.uuid}})},function(){})},j.openJenkinsLogModal=function(){g.open({templateUrl:"main/modals/general-log-modal/general-log-modal.html",controller:"GeneralLogModalController",controllerAs:"vm",size:"general-log-modal",resolve:{modalDetails:function(){return{headline:"Jenkins log",body:j.data.checklist.jenkins_log}}}})},j.auditLog=function(){var a={name:j.data.checklist.name,uuid:j.data.checklist.uuid,checklistAuditLogs:j.data.checklistAuditLogs};g.open({templateUrl:"main/modals/audit-log/audit-log.html",controller:"AuditLogModalController",controllerAs:"vm",size:"lg",resolve:{wizardData:function(){return a}}}).result.then(function(a){a&&j.data.checklistAuditLogs.push(a)},function(){i.debug("Modal dismissed at: "+new Date)})},j.editChecklist=function(){var a={uuid:j.data.checklist.uuid,name:j.data.checklist.name,templates:j.data.checklist.templates,selectedTemplateUuid:j.data.checklist.template.uuid,selectedTemplateName:j.data.checklist.template.name,associatedFiles:j.data.checklist.associated_files,state:j.data.checklist.state};g.open({templateUrl:"main/modals/checklist/checklist.html",controller:"ChecklistModalController",controllerAs:"vm",size:"lg",resolve:{wizardData:function(){return a},engagementUuid:function(){return k},modal_type:function(){return"update"}}}).result.then(function(a){a&&(j.data.checklist.name=a.checklist_name,j.data.checklist.associated_files=a.associated_files)})},l()}angular.module("ice.dashboard.checklist",[]).controller("DashboardChecklistController",["$scope","$stateParams","$rootScope","checklistService","iceConstants","usersService","$uibModal","toastService","$log",a])}(),function(){"use strict";angular.module("ice.dashboard.get-started-modal",["ngAnimate","ui.bootstrap","ice.activation.addVf"])}(),function(){"use strict";angular.module("ice.dashboard.get-started-modal").directive("getStartedModal",function(){return{restrict:"AEC",scope:{},link:function(a,b,c){a.$emit("openGettingStartedWizardLoaded")},controller:["$rootScope","$scope","$uibModal","toastService","$log",function(a,b,c,d,e){var f=this;f.data={},f.openModal=function(){d.clearToast();c.open({templateUrl:"main/dashboard/get-started-modal/wizard/wizard-container.html",controller:"ModalCtrl",controllerAs:"wizard",resolve:{wizardData:function(){return f.wizardData}},backdrop:"static"})},b.$on("openGettingStartedWizard",function(a,b){f.wizardData=b,f.openModal()})}],controllerAs:"gm"}}).controller("ModalCtrl",["$rootScope","$scope","$uibModalInstance","vfService","usersService","localStorageService","wizardData","toastService","$log","$i18next",function(a,b,c,d,e,f,g,h,i,j){function k(){if(a.ice.loader.show=!0,g.showActivationMessage&&h.setToast("You have successfully activated your account!","success",{displayFor:"modal"}),m.stepIndex=0,m.requiredStep)return m.steps.push(o[m.requiredStep]),m.setStep(m.steps[m.stepIndex]),void(a.ice.loader.show=!1);m.eng_uuid&&""!==m.eng_uuid||m.steps.push(o.addVF),!0!==m.user.is_service_provider_contact||m.is_service_provider_internal?m.user.is_service_provider_contact||m.steps.push(o.addSponsor):m.steps.push(o.addVendor),l(),m.steps.push(o.inviteMembers);var b=e.getUserData()||{},c=b.ssh_public_key;""!==m.user.ssh_public_key&&null!==m.user.ssh_public_key||""!==c&&null!==c||m.steps.push(o.addSSH),a.ice.loader.show=!1,m.setStep(m.steps[m.stepIndex])}function l(){d.getCompanies().then(function(a){if(200===a.status&&(m.companies=a.data,void 0!=m.companies))for(var b=0;b0?angular.element("#line-item-extended").css("margin-top",20+c+"px"):angular.element("#line-item-extended").css("margin-top","")}}))},i.addLineItem=function(b){if(b){var c=a.maxBy(b.lineItems,function(a){return a.weight})+1,d={uuid:"newEntity",name:"Untitled line item",description:"Please add a description",weight:c,validation_instructions:"Please add validation instructions for the line item."};b.lineItems.push(d)}},i.addSection=function(){if(i.template){var b=a.maxBy(i.template.sections,function(a){return a.weight})+1,c={uuid:"newEntity",name:"Untitled section",description:"Section added from portal",validation_instructions:"valid instructions",weight:b,lineItems:[]};i.template.sections.push(c)}},i.deleteLineItem=function(b){a.remove(i.selectedSection.lineItems,function(a){return b===a}),l()},i.isSaveInvalid=function(){var b=!1;return i.template&&(b=void 0!=a.find(i.template.sections,function(a){return 0===a.lineItems.length})),b};var k=function(){b.$watch("vm.template.name",function(a,b){d.templateName=a},!0)},l=function(){i.selectedSection=i.template.sections&&i.template.sections.length>0?i.template.sections[0]:void 0,i.selectedLineItem=i.selectedSection?i.selectedSection.lineItems[0]:void 0,angular.element("#line-item-extended").css("margin-top","")},m=function(){i.template&&(i.template.sections=a.orderBy(i.template.sections,"weight"),a.forEach(i.template.sections,function(b){b.lineItems=a.orderBy(b.lineItems,"weight")}))};j()}angular.module("ice.main.admin").controller("checklistTemplateController",["_","$scope","checklistService","$stateParams","toastService","$uibModal","$log",a])}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i){var j=this,k=function(){a.timeGapLocal=moment().format("z"),a.ampm=moment().format("A"),a.mom=moment().tz(moment.tz.guess()).format("z"),j.is_aic_edit_mode=!1,j.is_ecomp_edit_mode=!1,j.aic_loaded=!1,j.ecomp_loaded=!1,void 0!=b.engagement&&(j.engagement=b.engagement),void 0!=j.engagement&&(j.me=e.getUserData(),g.getSingleEngagement(j.me.uuid,j.engagement.uuid).then(function(b){if(a.ice.loader.show=!1,200===b.status&&b.data&&""!==b.data){var c=b.data;j.engagement_manual_id=c.engagement.engagement_manual_id,j.vf_name=c.name,j.vf_version=c.version,j.vf_uuid=c.uuid,j.ecomp_release=c.ecomp_release,j.target_lab=new Date(c.target_lab_entry_date),j.dtversion=c.deployment_target,j.selected_dt_uuid=j.dtversion.uuid,j.selected_ecomp_uuid=j.ecomp_release.uuid,j.me=e.getUserData(),j.name=j.engagement.name,j.isEngagementEL=e.isEngagementEL(c.engagement.engagement_team),j.isAdmin=e.isAdmin(j.me),l(),m()}}).catch(function(b){a.ice.loader.show=!1,h.error(b)}))};j.addVfc=function(){f.open({templateUrl:"main/modals/detailed-view/vfc/detailed-view-vfc-modal.html",controller:"detailedViewVFCModalController",controllerAs:"vm",resolve:{vf_uuid:function(){return j.vf_uuid}}}).result.then(function(a){a&&m()})},this.personArray=[j.dtversion,j.vf_uuid],j.editValidationDetails=function(){f.open({templateUrl:"main/modals/validation-details/detailed-view-validation-details-modal.html",controller:"validationDetailsModalController",controllerAs:"vm",resolve:{vf_uuid:function(){return j.vf_uuid}}}).result.then(function(a){a&&k()})},j.addDTS=function(){if(j.isEngagementEL||j.isAdmin){f.open({templateUrl:"main/modals/detailed-view/dtsite/detailed-view-dtsites-modal.html",controller:"detailedViewDtsitesModalController",controllerAs:"vm",resolve:{vf_uuid:function(){return j.vf_uuid}}}).result.then(function(a){a&&200===a&&l()})}},j.changeTargetLabEntry=function(){f.open({templateUrl:"main/modals/target-lab-entry/change-lab-entry-date.html",controller:"ChangeLabEntryDateModalController",controllerAs:"vm",resolve:{targetLabDate:function(){return j.target_lab},engagementUuid:function(){return j.engagement.uuid}}}).result.then(function(a){a&&(j.target_lab=new Date(a.target_date),h.debug("data.target_date",a.target_date),h.debug("vm.target_lab",j.target_lab))},function(){h.error("Modal dismissed at: "+new Date)})},j.deleteVfc=function(a){c.delete(a,j.vf_uuid).then(function(a){204===a.status&&m()}).catch(function(a){h.error(a)})},j.deleteDTSite=function(a,b){d.delete(j.vf_uuid,b).then(function(a){204===a.status&&l()}).catch(function(a){h.error(a)})};var l=function(){(j.isEngagementEL||j.isAdmin)&&(a.ice.loader.show=!0,d.getVFSites(j.vf_uuid).then(function(b){a.ice.loader.show=!1,200===b.status&&(j.dtsites=b.data)}).catch(function(b){a.ice.loader.show=!1,h.error(b)}))},m=function(){a.ice.loader.show=!0,c.get(j.vf_uuid).then(function(b){a.ice.loader.show=!1,200===b.status&&(j.vfcs=b.data)}).catch(function(b){a.ice.loader.show=!1,h.error(b)})};k()}angular.module("ice.dashboard.main").controller("detailedViewController",["$rootScope","$stateParams","vfcService","dtsiteService","usersService","$uibModal","vfService","$log","_",a])}(),function(){"use strict";function a(a){a.state("app.documentation",{views:{"navigation@app":{templateUrl:"core/navigation/layouts/documentation-navigation/navigation.html",controller:"documentationNavigationController as vm"},"sidebar@app":{templateUrl:"main/documentation/sidebar/documentation.sidebar.html"}},bodyClass:"documentation",params:{displaySidebar:!0}}).state("app.documentation.page",{url:"/documentation",views:{"content@app":{templateUrl:"main/documentation/documentation.html",controller:"documentationController as vm"}},bodyClass:"documentation",params:{displaySidebar:!0,page_id:void 0}})}angular.module("ice.documentation").config(a),a.$inject=["$stateProvider"]}(),function(){"use strict";function a(a,b,c){function d(){b.page_id&&a.getPage(b.page_id).then(function(a){a&&a.data&&(e.pageId=b.page_id,e.pageTitle=a.data.title,e.pageContent=a.data.content,e.publishDate=a.data.publish_date)}).catch(function(a){c.error(a)})}var e=this;!function(){d()}()}angular.module("ice.documentation").controller("documentationController",["cmsService","$stateParams","$log",a])}(),function(){"use strict";function a(a,b){var c=this,d=function(){b.getIceUser().then(function(a){c.receiveEmails=a.data.regular_email_updates,c.receiveEmailsEveryTime=a.data.email_updates_on_every_notification,c.receiveDigestEmails=a.data.email_updates_daily_digest,c.receiveNotifications=c.receiveEmailsEveryTime||c.receiveDigestEmails}).catch(function(b){a.setToast(b.message,"danger"),$log.error(b.message)})};c.submitForm=function(){var d=b.getUserData(),e={};e.regular_email_updates=c.receiveEmails,e.email_updates_on_every_notification=c.receiveEmailsEveryTime,e.email_updates_daily_digest=c.receiveDigestEmails,e.company=d.company.name,e.full_name=d.full_name,e.email=d.email,e.phone_number=d.phone_number,b.updateAccount(d.uuid,e).then(function(b){200===b.status&&a.setToast("User profile settings was updated successfully!","success")}).catch(function(b){a.setToast(b.message.detail,"danger")})},c.changeReceiveNotifications=function(){c.receiveNotifications||(c.receiveEmailsEveryTime=!1,c.receiveDigestEmails=!1)},d()}angular.module("ice.dashboard.account").controller("accountUserProfileSettingsController",["toastService","usersService",a])}(),angular.module("ice").run(["$templateCache",function(a){"use strict";a.put("main/activation/activate/activateUser.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
'),a.put("main/activation/addVendorContact/addVendorContact.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
Please select a company
Name is a required field. Full Name is too short. Full Name is too long.
Email is a required field. Enter a valid email.
Phone is a required field. Phone is too short. Phone is too long. Phone must consist of numbers only.
 I agree to receive regular email updates.
 I accept the AT&T\'s {{\'program.name\' | i18next}} Terms of Service and Privacy Policy.
reCAPTCHA is invalid.
'),a.put("main/activation/addVf/addVf.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
\x3c!-- Table body --\x3e
\x3c!-- Text --\x3e
Use the form below to add your VF.Try to be as accurate as you can around the information to make sure the validation can accomplished as possible.
\x3c!-- Virtual Function --\x3e
VF Name
VF Name can be alphanumeric or/and Hyphen

Key Metadata

\x3c!-- Target Lab Entry --\x3e
Target Lab Entry Date
The virtual function is only developed internally inside AT&T.
'),a.put("main/activation/contactUs/contactUs.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
'),a.put("main/activation/inviteMembers/inviteMembers.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
Email is a required field. Enter a valid email.
Invite another team member
'), +a.put("main/activation/login/login.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
'),a.put("main/activation/register/register.html",'\x3c!--\n============LICENSE_START========================================== \norg.onap.vvp/portal\n===================================================================\nCopyright © 2017 AT&T Intellectual Property. All rights reserved.\n===================================================================\n\nUnless otherwise specified, all software contained herein is licensed\nunder the Apache License, Version 2.0 (the “License”);\nyou may not use this software except in compliance with the License.\nYou may obtain a copy of the License at\n\n http:www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n\nUnless otherwise specified, all documentation contained herein is licensed\nunder the Creative Commons License, Attribution 4.0 Intl. (the “License”);\nyou may not use this documentation except in compliance with the License.\nYou may obtain a copy of the License at\n\n https:creativecommons.org/licenses/by/4.0/\n\nUnless required by applicable law or agreed to in writing, documentation\ndistributed under the License is distributed on an "AS IS" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n============LICENSE_END============================================\n\nECOMP is a trademark and service mark of AT&T Intellectual Property.--\x3e
+ + +
+

Fonts.com Web fonts

+

@font-face implementation instructions

+

The asynchronous script loads in the background allowing the other elements of your website to load first and undeterred.

+
+

The fonts contained in this kit are:

+
+
Omnes_ATT W02 Italic
+
Omnes_ATT W02 Light
+
Omnes_ATT W02 Light Italic
+
Omnes_ATT W02 Medium
+
Omnes_ATT W02 Medium Italic
+
Omnes_ATT W02 Regular
+
Omnes_ATT W02 Bold
+
Omnes_ATT W02 Bold Italic
+ +
+
+ Click here for css only web fonts implementation +
+
+

CSS Implementation Guidelines

+

You and any third party web font hosting service are responsible for ensuring that the font software in the self-hosting kit, in its original format, can only be used on the Web Sites for which the self-hosting kit was downloaded and cannot be used or referenced by any other web site. This includes, but is not limited to installing adequate technical protection measures that restrict the use and/or access to the font software, for instance by utilizing JavaScript or access control mechanism for cross-origin resource sharing and protecting against use on web sites other than the Web Sites for which the self-hosting kit was downloaded by restricting domain access only to such Web Sites. You must also retain the pageview tracking code on any Web Site that you self-host. In the event this Agreement terminates for any reason, the font software included with the self-hosting kit must be deleted from the server and all copies must be destroyed or returned to Monotype Imaging.

+

View "WEB FONT SOFTWARE" LICENSE AGREEMENT

+

Asynchronous Implementation (Requires JavaScript)

+

Font file names have been obfuscated to protect the font software. You can identify font format based on file ending:

+
    +
  • 1 - TrueType (ttf)
  • +
  • 2 - Embedded OpenType (eot)
  • +
  • 3 - Web Open Font Format (woff)
  • +
  • 4 - Scalable Vector Graphics (svg)
  • +
+

Copy and paste following code in head section of the page

+
+ +

Licensing information should be included within the CSS

+
/*
+This CSS resource incorporates links to font software which is the valuable copyrighted
+property of Monotype Imaging and/or its suppliers. You may not attempt to copy, install,
+redistribute, convert, modify or reverse engineer this font software. Please contact Monotype
+Imaging with any questions regarding Web Fonts:  http://webfonts.fonts.com
+*/
+
+
+ + diff --git a/d2ice.att.io/dist/styles/fonts/OmnesATT/demo.htm b/d2ice.att.io/dist/styles/fonts/OmnesATT/demo.htm new file mode 100755 index 00000000..edb62ad3 --- /dev/null +++ b/d2ice.att.io/dist/styles/fonts/OmnesATT/demo.htm @@ -0,0 +1,155 @@ + + + + Webfonts Demo + + + + + +
+

Fonts.com Web fonts

+

@font-face implementation instructions

+
+

The fonts contained in this kit are:

+
+
Omnes_ATT W02 Italic
+
Omnes_ATT W02 Light
+
Omnes_ATT W02 Light Italic
+
Omnes_ATT W02 Medium
+
Omnes_ATT W02 Medium Italic
+
Omnes_ATT W02 Regular
+
Omnes_ATT W02 Bold
+
Omnes_ATT W02 Bold Italic
+ +
+
+ Click here for asynchronous web fonts implementation +
+
+

CSS Implementation Guidelines

+

You and any third party web font hosting service are responsible for ensuring that the font software in the self-hosting kit, in its original format, can only be used on the Web Sites for which the self-hosting kit was downloaded and cannot be used or referenced by any other web site. This includes, but is not limited to installing adequate technical protection measures that restrict the use and/or access to the font software, for instance by utilizing JavaScript or access control mechanism for cross-origin resource sharing and protecting against use on web sites other than the Web Sites for which the self-hosting kit was downloaded by restricting domain access only to such Web Sites. You must also retain the pageview tracking code on any Web Site that you self-host. In the event this Agreement terminates for any reason, the font software included with the self-hosting kit must be deleted from the server and all copies must be destroyed or returned to Monotype Imaging.

+

View "WEB FONT SOFTWARE" LICENSE AGREEMENT

+

Font file names have been obfuscated to protect the font software. You can identify font format based on file ending:

+
    +
  • 1 - TrueType (ttf)
  • +
  • 2 - Embedded OpenType (eot)
  • +
  • 3 - Web Open Font Format (woff)
  • +
  • 4 - Scalable Vector Graphics (svg)
  • +
+

Copy and paste following code in head section of the page

+
+ +

Licensing information should be included within the CSS

+
/*
+This CSS resource incorporates links to font software which is the valuable copyrighted
+property of Monotype Imaging and/or its suppliers. You may not attempt to copy, install,
+redistribute, convert, modify or reverse engineer this font software. Please contact Monotype
+Imaging with any questions regarding Web Fonts:  http://webfonts.fonts.com
+*/
+
+
+ + diff --git a/d2ice.att.io/dist/styles/images/Collaborate.png b/d2ice.att.io/dist/styles/images/Collaborate.png new file mode 100755 index 00000000..c9620fe2 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/Collaborate.png differ diff --git a/d2ice.att.io/dist/styles/images/Incubate.png b/d2ice.att.io/dist/styles/images/Incubate.png new file mode 100755 index 00000000..a286e543 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/Incubate.png differ diff --git a/d2ice.att.io/dist/styles/images/Validate.png b/d2ice.att.io/dist/styles/images/Validate.png new file mode 100755 index 00000000..cae7c3b4 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/Validate.png differ diff --git a/d2ice.att.io/dist/styles/images/actions-sprite.png b/d2ice.att.io/dist/styles/images/actions-sprite.png new file mode 100755 index 00000000..f5bd8e21 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/actions-sprite.png differ diff --git a/d2ice.att.io/dist/styles/images/btn1.png b/d2ice.att.io/dist/styles/images/btn1.png new file mode 100755 index 00000000..f64474a7 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/btn1.png differ diff --git a/d2ice.att.io/dist/styles/images/btn2.png b/d2ice.att.io/dist/styles/images/btn2.png new file mode 100755 index 00000000..8c32da99 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/btn2.png differ diff --git a/d2ice.att.io/dist/styles/images/btn3.png b/d2ice.att.io/dist/styles/images/btn3.png new file mode 100755 index 00000000..cb823506 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/btn3.png differ diff --git a/d2ice.att.io/dist/styles/images/btnX.png b/d2ice.att.io/dist/styles/images/btnX.png new file mode 100755 index 00000000..97bf32db Binary files /dev/null and b/d2ice.att.io/dist/styles/images/btnX.png differ diff --git a/d2ice.att.io/dist/styles/images/d2sandbox_logos-150x30.png b/d2ice.att.io/dist/styles/images/d2sandbox_logos-150x30.png new file mode 100755 index 00000000..252c572e Binary files /dev/null and b/d2ice.att.io/dist/styles/images/d2sandbox_logos-150x30.png differ diff --git a/d2ice.att.io/dist/styles/images/d2sandbox_logos_color-150x30.png b/d2ice.att.io/dist/styles/images/d2sandbox_logos_color-150x30.png new file mode 100755 index 00000000..ec7a2c8a Binary files /dev/null and b/d2ice.att.io/dist/styles/images/d2sandbox_logos_color-150x30.png differ diff --git a/d2ice.att.io/dist/styles/images/flags.png b/d2ice.att.io/dist/styles/images/flags.png new file mode 100755 index 00000000..89b1f1cd Binary files /dev/null and b/d2ice.att.io/dist/styles/images/flags.png differ diff --git a/d2ice.att.io/dist/styles/images/flags@2x.png b/d2ice.att.io/dist/styles/images/flags@2x.png new file mode 100755 index 00000000..3624e635 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/flags@2x.png differ diff --git a/d2ice.att.io/dist/styles/images/home_bg1-1920x1138.jpg b/d2ice.att.io/dist/styles/images/home_bg1-1920x1138.jpg new file mode 100755 index 00000000..1a56a1eb Binary files /dev/null and b/d2ice.att.io/dist/styles/images/home_bg1-1920x1138.jpg differ diff --git a/d2ice.att.io/dist/styles/images/icons-sprite-v2.png b/d2ice.att.io/dist/styles/images/icons-sprite-v2.png new file mode 100755 index 00000000..b4d406cc Binary files /dev/null and b/d2ice.att.io/dist/styles/images/icons-sprite-v2.png differ diff --git a/d2ice.att.io/dist/styles/images/icons-sprite-v3.png b/d2ice.att.io/dist/styles/images/icons-sprite-v3.png new file mode 100755 index 00000000..9a787aa2 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/icons-sprite-v3.png differ diff --git a/d2ice.att.io/dist/styles/images/icons-sprite-v4.png b/d2ice.att.io/dist/styles/images/icons-sprite-v4.png new file mode 100755 index 00000000..fe60f0d4 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/icons-sprite-v4.png differ diff --git a/d2ice.att.io/dist/styles/images/icons-sprite-v5.png b/d2ice.att.io/dist/styles/images/icons-sprite-v5.png new file mode 100755 index 00000000..48474468 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/icons-sprite-v5.png differ diff --git a/d2ice.att.io/dist/styles/images/icons-sprite.png b/d2ice.att.io/dist/styles/images/icons-sprite.png new file mode 100755 index 00000000..d3f053ff Binary files /dev/null and b/d2ice.att.io/dist/styles/images/icons-sprite.png differ diff --git a/d2ice.att.io/dist/styles/images/profiles-sprite.png b/d2ice.att.io/dist/styles/images/profiles-sprite.png new file mode 100755 index 00000000..c7ca9868 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/profiles-sprite.png differ diff --git a/d2ice.att.io/dist/styles/images/steps-sprite.png b/d2ice.att.io/dist/styles/images/steps-sprite.png new file mode 100755 index 00000000..7e9e7c12 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/steps-sprite.png differ diff --git a/d2ice.att.io/dist/styles/images/top.jpg b/d2ice.att.io/dist/styles/images/top.jpg new file mode 100755 index 00000000..6d021c19 Binary files /dev/null and b/d2ice.att.io/dist/styles/images/top.jpg differ diff --git a/d2ice.att.io/dist/styles/images/wait.gif b/d2ice.att.io/dist/styles/images/wait.gif new file mode 100755 index 00000000..08c5320d Binary files /dev/null and b/d2ice.att.io/dist/styles/images/wait.gif differ diff --git a/d2ice.att.io/dist/styles/main.e3dcf1a7.css b/d2ice.att.io/dist/styles/main.e3dcf1a7.css new file mode 100755 index 00000000..2b666d46 --- /dev/null +++ b/d2ice.att.io/dist/styles/main.e3dcf1a7.css @@ -0,0 +1 @@ +body,body.ice .container-fluid,body.ice .container-fluid>.row,body.ice .container-fluid>.row>#main,html{height:100%}.checkList .italic,.italic{font-style:italic}.checkList .font-deco,.next-steps .font-deco{-webkit-text-decoration-style:dashed;text-decoration-style:dashed}@font-face{font-family:omnes-italic;src:url(fonts/OmnesATT/Omnes_ATTW02Italic.eot);src:url(fonts/OmnesATT/Omnes_ATTW02Italic.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02Italic.ttf)}@font-face{font-family:omnes-light;src:url(fonts/OmnesATT/Omnes_ATTW02Light.eot);src:url(fonts/OmnesATT/Omnes_ATTW02Light.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02Light.ttf)}@font-face{font-family:omnes-light-italic;src:url(fonts/OmnesATT/Omnes_ATTW02LightItalic.eot);src:url(fonts/OmnesATT/Omnes_ATTW02LightItalic.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02LightItalic.ttf)}@font-face{font-family:omnes-medium;src:url(fonts/OmnesATT/Omnes_ATTW02Medium.eot);src:url(fonts/OmnesATT/Omnes_ATTW02Medium.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02Medium.ttf)}@font-face{font-family:omnes-medium-italic;src:url(fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot);src:url(fonts/OmnesATT/Omnes_ATTW02MediumItalic.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02MediumItalic.ttf)}@font-face{font-family:omnes-regular;src:url(fonts/OmnesATT/Omnes_ATTW02.eot);src:url(fonts/OmnesATT/Omnes_ATTW02.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02.ttf)}@font-face{font-family:omnes-bold;src:url(fonts/OmnesATT/Omnes_ATTW02Bold.eot);src:url(fonts/OmnesATT/Omnes_ATTW02Bold.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/Omnes_ATTW02Bold.ttf)}@font-face{font-family:omnes-bold-italic;src:url(fonts/OmnesATT/OmnesATTW02BoldItalic.eot);src:url(fonts/OmnesATT/OmnesATTW02BoldItalic.eot?#iefix) format('embedded-opentype'),url(fonts/OmnesATT/OmnesATTW02BoldItalic.ttf)}@font-face{font-family:clearview-book;src:url(fonts/ClearviewATT/ClearviewATT-Bk.eot);src:url(fonts/ClearviewATT/ClearviewATT-Bk.eot?#iefix) format('embedded-opentype'),url(fonts/ClearviewATT/ClearviewATT-Bk.ttf)}label{font-weight:400}.ice-form-label{color:#191919;font-family:omnes-regular,sans-serif;font-size:14px}.ice-form-label.required:before{content:'* ';color:#cf2a2a;font-family:omnes-medium,sans-serif;font-size:14px}.ice-form-error,body{font-family:omnes-regular,sans-serif;font-size:14px}.ice-form-error{color:#cf2a2a}body{color:#5a5a5a}*{box-sizing:border-box;margin:0;outline:0;transition:none!important}@media (max-width:992px){.navbar-header{float:none}.navbar-left,.navbar-nav,.navbar-right{float:none!important}.navbar-toggle{display:block}.navbar-collapse{border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-collapse.collapse{display:none!important}.navbar-nav{margin-top:7.5px}.navbar-nav>li{float:none}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px}.collapse.in{display:block!important}}@media (min-width:998px){body,html{height:100%;overflow:hidden}}body.ice #header-title{height:130px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}body.ice #header-title h1{color:#fff;font-family:omnes-light,sans-serif;font-size:24px;margin:20px 0 10px}body.ice #header-title h2{color:#fff;font-family:omnes-medium,sans-serif;font-size:16px;margin:0}body.ice #content{padding:20px}body.ice #content .row{height:100%}body.ice a,body.ice a:active,body.ice a:focus,body.ice a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;text-decoration:none;cursor:pointer}body.ice ul{padding:0}.bold{font-weight:700}.line-through{-webkit-text-decoration-line:line-through;text-decoration-line:line-through}.account .content .right-panel .show-secret,.checkList .font-deco,.next-steps .font-deco,.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.f-color .a,.f-color .b,.f-color .c{color:#1370a3}.f-color .d{color:#4ca90c}.f-color .e{color:#007a3e}.f-color .f{color:#b5bd00}.f-color .g{color:#ea7499}.f-color .h{color:#ffb81c}.f-color .i{color:#702f8a}.f-color .j{color:#9063cd}.f-color .k{color:#caa2dd}.f-color .l{color:#000}.f-color .m{color:#5a5a5a}.f-color .n{color:#959595}.f-color .o{color:#d2d2d2}.f-color .p{color:#fff}.f-color .q{color:#cf2a2a}.f-color .r{color:#f2f2f2}.f-color .s{color:#191919}.f-color .x{color:#D74854}.f-color .t{color:#faf8f8}.f-color .u{color:#eaeaea}.f-color .v{color:#e6f6fb}.f-color .w{color:#EEF9FF}.f-type ._36{font-family:omnes-light,sans-serif;font-size:36px}.f-type ._36_m{font-family:omnes-medium,sans-serif;font-size:36px}.f-type ._26{font-family:omnes-light,sans-serif;font-size:26px}.f-type ._26_m{font-family:omnes-medium,sans-serif;font-size:26px}.f-type ._24{font-family:omnes-light,sans-serif;font-size:24px}.f-type ._24_m{font-family:omnes-medium,sans-serif;font-size:24px}.f-type ._24_r{font-family:omnes-regular,sans-serif;font-size:24px}.f-type ._22{font-family:omnes-light,sans-serif;font-size:22px}.f-type ._22_m{font-family:omnes-medium,sans-serif;font-size:22px}.f-type ._20{font-family:omnes-light,sans-serif;font-size:20px}.f-type ._20_m{font-family:omnes-medium,sans-serif;font-size:20px}.f-type ._18{font-family:omnes-light,sans-serif;font-size:18px}.f-type ._18_r{font-family:omnes-regular,sans-serif;font-size:18px}.f-type ._18_m{font-family:omnes-medium,sans-serif;font-size:18px}.f-type ._16_i{font-family:omnes-medium-italic,sans-serif;font-size:16px}.f-type ._16_r{font-family:omnes-regular,sans-serif;font-size:16px}.f-type ._16_m{font-family:omnes-medium,sans-serif;font-size:16px}.f-type ._14_r{font-family:omnes-regular,sans-serif;font-size:14px}.f-type ._14_m{font-family:omnes-medium,sans-serif;font-size:14px}.f-type ._14_i{font-family:omnes-medium-italic,sans-serif;font-size:14px}.f-type ._13_r{font-family:omnes-regular,sans-serif;font-size:13px}.f-type ._13_m{font-family:omnes-medium,sans-serif;font-size:13px}.f-type ._13_i{font-family:omnes-medium-italic,sans-serif;font-size:13px}.f-type ._12_r{font-family:omnes-regular,sans-serif;font-size:12px}.f-type ._12_m{font-family:omnes-medium,sans-serif;font-size:12px}.f-type ._12_i{font-family:omnes-medium-italic,sans-serif;font-size:12px}.f-type ._10_r{font-family:omnes-regular,sans-serif;font-size:10px}.f-type ._10_m{font-family:omnes-medium,sans-serif;font-size:10px}.a_36,.a_36_m{color:#1370a3;font-size:36px}.a_36{font-family:omnes-light,sans-serif}.a_36_m{font-family:omnes-medium,sans-serif}.a_26,.a_26_m{color:#1370a3;font-size:26px}.a_26{font-family:omnes-light,sans-serif}.a_26_m{font-family:omnes-medium,sans-serif}.a_24,.a_24_m,.a_24_r{color:#1370a3;font-size:24px}.a_24{font-family:omnes-light,sans-serif}.a_24_m{font-family:omnes-medium,sans-serif}.a_24_r{font-family:omnes-regular,sans-serif}.a_22,.a_22_m{color:#1370a3;font-size:22px}.a_22{font-family:omnes-light,sans-serif}.a_22_m{font-family:omnes-medium,sans-serif}.a_20,.a_20_m{color:#1370a3;font-size:20px}.a_20{font-family:omnes-light,sans-serif}.a_20_m{font-family:omnes-medium,sans-serif}.a_18,.a_18_m,.a_18_r{color:#1370a3;font-size:18px}.a_18{font-family:omnes-light,sans-serif}.a_18_r{font-family:omnes-regular,sans-serif}.a_18_m{font-family:omnes-medium,sans-serif}.a_16_i,.a_16_m,.a_16_r{color:#1370a3;font-size:16px}.a_16_i{font-family:omnes-medium-italic,sans-serif}.a_16_r{font-family:omnes-regular,sans-serif}.a_16_m{font-family:omnes-medium,sans-serif}.a_14_i,.a_14_m,.a_14_r{color:#1370a3;font-size:14px}.a_14_r{font-family:omnes-regular,sans-serif}.a_14_m{font-family:omnes-medium,sans-serif}.a_14_i{font-family:omnes-medium-italic,sans-serif}.a_13_i,.a_13_m,.a_13_r{color:#1370a3;font-size:13px}.a_13_r{font-family:omnes-regular,sans-serif}.a_13_m{font-family:omnes-medium,sans-serif}.a_13_i{font-family:omnes-medium-italic,sans-serif}.a_12_i,.a_12_m,.a_12_r{color:#1370a3;font-size:12px}.a_12_r{font-family:omnes-regular,sans-serif}.a_12_m{font-family:omnes-medium,sans-serif}.a_12_i{font-family:omnes-medium-italic,sans-serif}.a_10_m,.a_10_r{color:#1370a3;font-size:10px}.a_10_r{font-family:omnes-regular,sans-serif}.a_10_m{font-family:omnes-medium,sans-serif}.b_36,.b_36_m{color:#1370a3;font-size:36px}.b_36{font-family:omnes-light,sans-serif}.b_36_m{font-family:omnes-medium,sans-serif}.b_26,.b_26_m{color:#1370a3;font-size:26px}.b_26{font-family:omnes-light,sans-serif}.b_26_m{font-family:omnes-medium,sans-serif}.b_24,.b_24_m,.b_24_r{color:#1370a3;font-size:24px}.b_24{font-family:omnes-light,sans-serif}.b_24_m{font-family:omnes-medium,sans-serif}.b_24_r{font-family:omnes-regular,sans-serif}.b_22,.b_22_m{color:#1370a3;font-size:22px}.b_22{font-family:omnes-light,sans-serif}.b_22_m{font-family:omnes-medium,sans-serif}.b_20,.b_20_m{color:#1370a3;font-size:20px}.b_20{font-family:omnes-light,sans-serif}.b_20_m{font-family:omnes-medium,sans-serif}.b_18,.b_18_m,.b_18_r{color:#1370a3;font-size:18px}.b_18{font-family:omnes-light,sans-serif}.b_18_r{font-family:omnes-regular,sans-serif}.b_18_m{font-family:omnes-medium,sans-serif}.b_16_i,.b_16_m,.b_16_r{color:#1370a3;font-size:16px}.b_16_i{font-family:omnes-medium-italic,sans-serif}.b_16_r{font-family:omnes-regular,sans-serif}.b_16_m{font-family:omnes-medium,sans-serif}.b_14_i,.b_14_m,.b_14_r{color:#1370a3;font-size:14px}.b_14_r{font-family:omnes-regular,sans-serif}.b_14_m{font-family:omnes-medium,sans-serif}.b_14_i{font-family:omnes-medium-italic,sans-serif}.b_13_i,.b_13_m,.b_13_r{color:#1370a3;font-size:13px}.b_13_r{font-family:omnes-regular,sans-serif}.b_13_m{font-family:omnes-medium,sans-serif}.b_13_i{font-family:omnes-medium-italic,sans-serif}.b_12_i,.b_12_m,.b_12_r{color:#1370a3;font-size:12px}.b_12_r{font-family:omnes-regular,sans-serif}.b_12_m{font-family:omnes-medium,sans-serif}.b_12_i{font-family:omnes-medium-italic,sans-serif}.b_10_m,.b_10_r{color:#1370a3;font-size:10px}.b_10_r{font-family:omnes-regular,sans-serif}.b_10_m{font-family:omnes-medium,sans-serif}.c_36,.c_36_m{color:#1370a3;font-size:36px}.c_36{font-family:omnes-light,sans-serif}.c_36_m{font-family:omnes-medium,sans-serif}.c_26,.c_26_m{color:#1370a3;font-size:26px}.c_26{font-family:omnes-light,sans-serif}.c_26_m{font-family:omnes-medium,sans-serif}.c_24,.c_24_m,.c_24_r{color:#1370a3;font-size:24px}.c_24{font-family:omnes-light,sans-serif}.c_24_m{font-family:omnes-medium,sans-serif}.c_24_r{font-family:omnes-regular,sans-serif}.c_22,.c_22_m{color:#1370a3;font-size:22px}.c_22{font-family:omnes-light,sans-serif}.c_22_m{font-family:omnes-medium,sans-serif}.c_20,.c_20_m{color:#1370a3;font-size:20px}.c_20{font-family:omnes-light,sans-serif}.c_20_m{font-family:omnes-medium,sans-serif}.c_18,.c_18_m,.c_18_r{color:#1370a3;font-size:18px}.c_18{font-family:omnes-light,sans-serif}.c_18_r{font-family:omnes-regular,sans-serif}.c_18_m{font-family:omnes-medium,sans-serif}.c_16_i,.c_16_m,.c_16_r{color:#1370a3;font-size:16px}.c_16_i{font-family:omnes-medium-italic,sans-serif}.c_16_r{font-family:omnes-regular,sans-serif}.c_16_m{font-family:omnes-medium,sans-serif}.c_14_i,.c_14_m,.c_14_r{color:#1370a3;font-size:14px}.c_14_r{font-family:omnes-regular,sans-serif}.c_14_m{font-family:omnes-medium,sans-serif}.c_14_i{font-family:omnes-medium-italic,sans-serif}.c_13_i,.c_13_m,.c_13_r{color:#1370a3;font-size:13px}.c_13_r{font-family:omnes-regular,sans-serif}.c_13_m{font-family:omnes-medium,sans-serif}.c_13_i{font-family:omnes-medium-italic,sans-serif}.c_12_i,.c_12_m,.c_12_r{color:#1370a3;font-size:12px}.c_12_r{font-family:omnes-regular,sans-serif}.c_12_m{font-family:omnes-medium,sans-serif}.c_12_i{font-family:omnes-medium-italic,sans-serif}.c_10_m,.c_10_r{color:#1370a3;font-size:10px}.c_10_r{font-family:omnes-regular,sans-serif}.c_10_m{font-family:omnes-medium,sans-serif}.d_36,.d_36_m{color:#4ca90c;font-size:36px}.d_36{font-family:omnes-light,sans-serif}.d_36_m{font-family:omnes-medium,sans-serif}.d_26,.d_26_m{color:#4ca90c;font-size:26px}.d_26{font-family:omnes-light,sans-serif}.d_26_m{font-family:omnes-medium,sans-serif}.d_24,.d_24_m,.d_24_r{color:#4ca90c;font-size:24px}.d_24{font-family:omnes-light,sans-serif}.d_24_m{font-family:omnes-medium,sans-serif}.d_24_r{font-family:omnes-regular,sans-serif}.d_22,.d_22_m{color:#4ca90c;font-size:22px}.d_22{font-family:omnes-light,sans-serif}.d_22_m{font-family:omnes-medium,sans-serif}.d_20,.d_20_m{color:#4ca90c;font-size:20px}.d_20{font-family:omnes-light,sans-serif}.d_20_m{font-family:omnes-medium,sans-serif}.d_18,.d_18_m,.d_18_r{color:#4ca90c;font-size:18px}.d_18{font-family:omnes-light,sans-serif}.d_18_r{font-family:omnes-regular,sans-serif}.d_18_m{font-family:omnes-medium,sans-serif}.d_16_i,.d_16_m,.d_16_r{color:#4ca90c;font-size:16px}.d_16_i{font-family:omnes-medium-italic,sans-serif}.d_16_r{font-family:omnes-regular,sans-serif}.d_16_m{font-family:omnes-medium,sans-serif}.d_14_i,.d_14_m,.d_14_r{color:#4ca90c;font-size:14px}.d_14_r{font-family:omnes-regular,sans-serif}.d_14_m{font-family:omnes-medium,sans-serif}.d_14_i{font-family:omnes-medium-italic,sans-serif}.d_13_i,.d_13_m,.d_13_r{color:#4ca90c;font-size:13px}.d_13_r{font-family:omnes-regular,sans-serif}.d_13_m{font-family:omnes-medium,sans-serif}.d_13_i{font-family:omnes-medium-italic,sans-serif}.d_12_i,.d_12_m,.d_12_r{color:#4ca90c;font-size:12px}.d_12_r{font-family:omnes-regular,sans-serif}.d_12_m{font-family:omnes-medium,sans-serif}.d_12_i{font-family:omnes-medium-italic,sans-serif}.d_10_m,.d_10_r{color:#4ca90c;font-size:10px}.d_10_r{font-family:omnes-regular,sans-serif}.d_10_m{font-family:omnes-medium,sans-serif}.e_36,.e_36_m{color:#007a3e;font-size:36px}.e_36{font-family:omnes-light,sans-serif}.e_36_m{font-family:omnes-medium,sans-serif}.e_26,.e_26_m{color:#007a3e;font-size:26px}.e_26{font-family:omnes-light,sans-serif}.e_26_m{font-family:omnes-medium,sans-serif}.e_24,.e_24_m,.e_24_r{color:#007a3e;font-size:24px}.e_24{font-family:omnes-light,sans-serif}.e_24_m{font-family:omnes-medium,sans-serif}.e_24_r{font-family:omnes-regular,sans-serif}.e_22,.e_22_m{color:#007a3e;font-size:22px}.e_22{font-family:omnes-light,sans-serif}.e_22_m{font-family:omnes-medium,sans-serif}.e_20,.e_20_m{color:#007a3e;font-size:20px}.e_20{font-family:omnes-light,sans-serif}.e_20_m{font-family:omnes-medium,sans-serif}.e_18,.e_18_m,.e_18_r{color:#007a3e;font-size:18px}.e_18{font-family:omnes-light,sans-serif}.e_18_r{font-family:omnes-regular,sans-serif}.e_18_m{font-family:omnes-medium,sans-serif}.e_16_i,.e_16_m,.e_16_r{color:#007a3e;font-size:16px}.e_16_i{font-family:omnes-medium-italic,sans-serif}.e_16_r{font-family:omnes-regular,sans-serif}.e_16_m{font-family:omnes-medium,sans-serif}.e_14_i,.e_14_m,.e_14_r{color:#007a3e;font-size:14px}.e_14_r{font-family:omnes-regular,sans-serif}.e_14_m{font-family:omnes-medium,sans-serif}.e_14_i{font-family:omnes-medium-italic,sans-serif}.e_13_i,.e_13_m,.e_13_r{color:#007a3e;font-size:13px}.e_13_r{font-family:omnes-regular,sans-serif}.e_13_m{font-family:omnes-medium,sans-serif}.e_13_i{font-family:omnes-medium-italic,sans-serif}.e_12_i,.e_12_m,.e_12_r{color:#007a3e;font-size:12px}.e_12_r{font-family:omnes-regular,sans-serif}.e_12_m{font-family:omnes-medium,sans-serif}.e_12_i{font-family:omnes-medium-italic,sans-serif}.e_10_m,.e_10_r{color:#007a3e;font-size:10px}.e_10_r{font-family:omnes-regular,sans-serif}.e_10_m{font-family:omnes-medium,sans-serif}.f_36,.f_36_m{color:#b5bd00;font-size:36px}.f_36{font-family:omnes-light,sans-serif}.f_36_m{font-family:omnes-medium,sans-serif}.f_26,.f_26_m{color:#b5bd00;font-size:26px}.f_26{font-family:omnes-light,sans-serif}.f_26_m{font-family:omnes-medium,sans-serif}.f_24,.f_24_m,.f_24_r{color:#b5bd00;font-size:24px}.f_24{font-family:omnes-light,sans-serif}.f_24_m{font-family:omnes-medium,sans-serif}.f_24_r{font-family:omnes-regular,sans-serif}.f_22,.f_22_m{color:#b5bd00;font-size:22px}.f_22{font-family:omnes-light,sans-serif}.f_22_m{font-family:omnes-medium,sans-serif}.f_20,.f_20_m{color:#b5bd00;font-size:20px}.f_20{font-family:omnes-light,sans-serif}.f_20_m{font-family:omnes-medium,sans-serif}.f_18,.f_18_m,.f_18_r{color:#b5bd00;font-size:18px}.f_18{font-family:omnes-light,sans-serif}.f_18_r{font-family:omnes-regular,sans-serif}.f_18_m{font-family:omnes-medium,sans-serif}.f_16_i,.f_16_m,.f_16_r{color:#b5bd00;font-size:16px}.f_16_i{font-family:omnes-medium-italic,sans-serif}.f_16_r{font-family:omnes-regular,sans-serif}.f_16_m{font-family:omnes-medium,sans-serif}.f_14_i,.f_14_m,.f_14_r{color:#b5bd00;font-size:14px}.f_14_r{font-family:omnes-regular,sans-serif}.f_14_m{font-family:omnes-medium,sans-serif}.f_14_i{font-family:omnes-medium-italic,sans-serif}.f_13_i,.f_13_m,.f_13_r{color:#b5bd00;font-size:13px}.f_13_r{font-family:omnes-regular,sans-serif}.f_13_m{font-family:omnes-medium,sans-serif}.f_13_i{font-family:omnes-medium-italic,sans-serif}.f_12_i,.f_12_m,.f_12_r{color:#b5bd00;font-size:12px}.f_12_r{font-family:omnes-regular,sans-serif}.f_12_m{font-family:omnes-medium,sans-serif}.f_12_i{font-family:omnes-medium-italic,sans-serif}.f_10_m,.f_10_r{color:#b5bd00;font-size:10px}.f_10_r{font-family:omnes-regular,sans-serif}.f_10_m{font-family:omnes-medium,sans-serif}.g_36,.g_36_m{color:#ea7499;font-size:36px}.g_36{font-family:omnes-light,sans-serif}.g_36_m{font-family:omnes-medium,sans-serif}.g_26,.g_26_m{color:#ea7499;font-size:26px}.g_26{font-family:omnes-light,sans-serif}.g_26_m{font-family:omnes-medium,sans-serif}.g_24,.g_24_m,.g_24_r{color:#ea7499;font-size:24px}.g_24{font-family:omnes-light,sans-serif}.g_24_m{font-family:omnes-medium,sans-serif}.g_24_r{font-family:omnes-regular,sans-serif}.g_22,.g_22_m{color:#ea7499;font-size:22px}.g_22{font-family:omnes-light,sans-serif}.g_22_m{font-family:omnes-medium,sans-serif}.g_20,.g_20_m{color:#ea7499;font-size:20px}.g_20{font-family:omnes-light,sans-serif}.g_20_m{font-family:omnes-medium,sans-serif}.g_18,.g_18_m,.g_18_r{color:#ea7499;font-size:18px}.g_18{font-family:omnes-light,sans-serif}.g_18_r{font-family:omnes-regular,sans-serif}.g_18_m{font-family:omnes-medium,sans-serif}.g_16_i,.g_16_m,.g_16_r{color:#ea7499;font-size:16px}.g_16_i{font-family:omnes-medium-italic,sans-serif}.g_16_r{font-family:omnes-regular,sans-serif}.g_16_m{font-family:omnes-medium,sans-serif}.g_14_i,.g_14_m,.g_14_r{color:#ea7499;font-size:14px}.g_14_r{font-family:omnes-regular,sans-serif}.g_14_m{font-family:omnes-medium,sans-serif}.g_14_i{font-family:omnes-medium-italic,sans-serif}.g_13_i,.g_13_m,.g_13_r{color:#ea7499;font-size:13px}.g_13_r{font-family:omnes-regular,sans-serif}.g_13_m{font-family:omnes-medium,sans-serif}.g_13_i{font-family:omnes-medium-italic,sans-serif}.g_12_i,.g_12_m,.g_12_r{color:#ea7499;font-size:12px}.g_12_r{font-family:omnes-regular,sans-serif}.g_12_m{font-family:omnes-medium,sans-serif}.g_12_i{font-family:omnes-medium-italic,sans-serif}.g_10_m,.g_10_r{color:#ea7499;font-size:10px}.g_10_r{font-family:omnes-regular,sans-serif}.g_10_m{font-family:omnes-medium,sans-serif}.h_36,.h_36_m{color:#ffb81c;font-size:36px}.h_36{font-family:omnes-light,sans-serif}.h_36_m{font-family:omnes-medium,sans-serif}.h_26,.h_26_m{color:#ffb81c;font-size:26px}.h_26{font-family:omnes-light,sans-serif}.h_26_m{font-family:omnes-medium,sans-serif}.h_24,.h_24_m,.h_24_r{color:#ffb81c;font-size:24px}.h_24{font-family:omnes-light,sans-serif}.h_24_m{font-family:omnes-medium,sans-serif}.h_24_r{font-family:omnes-regular,sans-serif}.h_22,.h_22_m{color:#ffb81c;font-size:22px}.h_22{font-family:omnes-light,sans-serif}.h_22_m{font-family:omnes-medium,sans-serif}.h_20,.h_20_m{color:#ffb81c;font-size:20px}.h_20{font-family:omnes-light,sans-serif}.h_20_m{font-family:omnes-medium,sans-serif}.h_18,.h_18_m,.h_18_r{color:#ffb81c;font-size:18px}.h_18{font-family:omnes-light,sans-serif}.h_18_r{font-family:omnes-regular,sans-serif}.h_18_m{font-family:omnes-medium,sans-serif}.h_16_i,.h_16_m,.h_16_r{color:#ffb81c;font-size:16px}.h_16_i{font-family:omnes-medium-italic,sans-serif}.h_16_r{font-family:omnes-regular,sans-serif}.h_16_m{font-family:omnes-medium,sans-serif}.h_14_i,.h_14_m,.h_14_r{color:#ffb81c;font-size:14px}.h_14_r{font-family:omnes-regular,sans-serif}.h_14_m{font-family:omnes-medium,sans-serif}.h_14_i{font-family:omnes-medium-italic,sans-serif}.h_13_i,.h_13_m,.h_13_r{color:#ffb81c;font-size:13px}.h_13_r{font-family:omnes-regular,sans-serif}.h_13_m{font-family:omnes-medium,sans-serif}.h_13_i{font-family:omnes-medium-italic,sans-serif}.h_12_i,.h_12_m,.h_12_r{color:#ffb81c;font-size:12px}.h_12_r{font-family:omnes-regular,sans-serif}.h_12_m{font-family:omnes-medium,sans-serif}.h_12_i{font-family:omnes-medium-italic,sans-serif}.h_10_m,.h_10_r{color:#ffb81c;font-size:10px}.h_10_r{font-family:omnes-regular,sans-serif}.h_10_m{font-family:omnes-medium,sans-serif}.i_36,.i_36_m{color:#702f8a;font-size:36px}.i_36{font-family:omnes-light,sans-serif}.i_36_m{font-family:omnes-medium,sans-serif}.i_26,.i_26_m{color:#702f8a;font-size:26px}.i_26{font-family:omnes-light,sans-serif}.i_26_m{font-family:omnes-medium,sans-serif}.i_24,.i_24_m,.i_24_r{color:#702f8a;font-size:24px}.i_24{font-family:omnes-light,sans-serif}.i_24_m{font-family:omnes-medium,sans-serif}.i_24_r{font-family:omnes-regular,sans-serif}.i_22,.i_22_m{color:#702f8a;font-size:22px}.i_22{font-family:omnes-light,sans-serif}.i_22_m{font-family:omnes-medium,sans-serif}.i_20,.i_20_m{color:#702f8a;font-size:20px}.i_20{font-family:omnes-light,sans-serif}.i_20_m{font-family:omnes-medium,sans-serif}.i_18,.i_18_m,.i_18_r{color:#702f8a;font-size:18px}.i_18{font-family:omnes-light,sans-serif}.i_18_r{font-family:omnes-regular,sans-serif}.i_18_m{font-family:omnes-medium,sans-serif}.i_16_i,.i_16_m,.i_16_r{color:#702f8a;font-size:16px}.i_16_i{font-family:omnes-medium-italic,sans-serif}.i_16_r{font-family:omnes-regular,sans-serif}.i_16_m{font-family:omnes-medium,sans-serif}.i_14_i,.i_14_m,.i_14_r{color:#702f8a;font-size:14px}.i_14_r{font-family:omnes-regular,sans-serif}.i_14_m{font-family:omnes-medium,sans-serif}.i_14_i{font-family:omnes-medium-italic,sans-serif}.i_13_i,.i_13_m,.i_13_r{color:#702f8a;font-size:13px}.i_13_r{font-family:omnes-regular,sans-serif}.i_13_m{font-family:omnes-medium,sans-serif}.i_13_i{font-family:omnes-medium-italic,sans-serif}.i_12_i,.i_12_m,.i_12_r{color:#702f8a;font-size:12px}.i_12_r{font-family:omnes-regular,sans-serif}.i_12_m{font-family:omnes-medium,sans-serif}.i_12_i{font-family:omnes-medium-italic,sans-serif}.i_10_m,.i_10_r{color:#702f8a;font-size:10px}.i_10_r{font-family:omnes-regular,sans-serif}.i_10_m{font-family:omnes-medium,sans-serif}.j_36,.j_36_m{color:#9063cd;font-size:36px}.j_36{font-family:omnes-light,sans-serif}.j_36_m{font-family:omnes-medium,sans-serif}.j_26,.j_26_m{color:#9063cd;font-size:26px}.j_26{font-family:omnes-light,sans-serif}.j_26_m{font-family:omnes-medium,sans-serif}.j_24,.j_24_m,.j_24_r{color:#9063cd;font-size:24px}.j_24{font-family:omnes-light,sans-serif}.j_24_m{font-family:omnes-medium,sans-serif}.j_24_r{font-family:omnes-regular,sans-serif}.j_22,.j_22_m{color:#9063cd;font-size:22px}.j_22{font-family:omnes-light,sans-serif}.j_22_m{font-family:omnes-medium,sans-serif}.j_20,.j_20_m{color:#9063cd;font-size:20px}.j_20{font-family:omnes-light,sans-serif}.j_20_m{font-family:omnes-medium,sans-serif}.j_18,.j_18_m,.j_18_r{color:#9063cd;font-size:18px}.j_18{font-family:omnes-light,sans-serif}.j_18_r{font-family:omnes-regular,sans-serif}.j_18_m{font-family:omnes-medium,sans-serif}.j_16_i,.j_16_m,.j_16_r{color:#9063cd;font-size:16px}.j_16_i{font-family:omnes-medium-italic,sans-serif}.j_16_r{font-family:omnes-regular,sans-serif}.j_16_m{font-family:omnes-medium,sans-serif}.j_14_i,.j_14_m,.j_14_r{color:#9063cd;font-size:14px}.j_14_r{font-family:omnes-regular,sans-serif}.j_14_m{font-family:omnes-medium,sans-serif}.j_14_i{font-family:omnes-medium-italic,sans-serif}.j_13_i,.j_13_m,.j_13_r{color:#9063cd;font-size:13px}.j_13_r{font-family:omnes-regular,sans-serif}.j_13_m{font-family:omnes-medium,sans-serif}.j_13_i{font-family:omnes-medium-italic,sans-serif}.j_12_i,.j_12_m,.j_12_r{color:#9063cd;font-size:12px}.j_12_r{font-family:omnes-regular,sans-serif}.j_12_m{font-family:omnes-medium,sans-serif}.j_12_i{font-family:omnes-medium-italic,sans-serif}.j_10_m,.j_10_r{color:#9063cd;font-size:10px}.j_10_r{font-family:omnes-regular,sans-serif}.j_10_m{font-family:omnes-medium,sans-serif}.k_36,.k_36_m{color:#caa2dd;font-size:36px}.k_36{font-family:omnes-light,sans-serif}.k_36_m{font-family:omnes-medium,sans-serif}.k_26,.k_26_m{color:#caa2dd;font-size:26px}.k_26{font-family:omnes-light,sans-serif}.k_26_m{font-family:omnes-medium,sans-serif}.k_24,.k_24_m,.k_24_r{color:#caa2dd;font-size:24px}.k_24{font-family:omnes-light,sans-serif}.k_24_m{font-family:omnes-medium,sans-serif}.k_24_r{font-family:omnes-regular,sans-serif}.k_22,.k_22_m{color:#caa2dd;font-size:22px}.k_22{font-family:omnes-light,sans-serif}.k_22_m{font-family:omnes-medium,sans-serif}.k_20,.k_20_m{color:#caa2dd;font-size:20px}.k_20{font-family:omnes-light,sans-serif}.k_20_m{font-family:omnes-medium,sans-serif}.k_18,.k_18_m,.k_18_r{color:#caa2dd;font-size:18px}.k_18{font-family:omnes-light,sans-serif}.k_18_r{font-family:omnes-regular,sans-serif}.k_18_m{font-family:omnes-medium,sans-serif}.k_16_i,.k_16_m,.k_16_r{color:#caa2dd;font-size:16px}.k_16_i{font-family:omnes-medium-italic,sans-serif}.k_16_r{font-family:omnes-regular,sans-serif}.k_16_m{font-family:omnes-medium,sans-serif}.k_14_i,.k_14_m,.k_14_r{color:#caa2dd;font-size:14px}.k_14_r{font-family:omnes-regular,sans-serif}.k_14_m{font-family:omnes-medium,sans-serif}.k_14_i{font-family:omnes-medium-italic,sans-serif}.k_13_i,.k_13_m,.k_13_r{color:#caa2dd;font-size:13px}.k_13_r{font-family:omnes-regular,sans-serif}.k_13_m{font-family:omnes-medium,sans-serif}.k_13_i{font-family:omnes-medium-italic,sans-serif}.k_12_i,.k_12_m,.k_12_r{color:#caa2dd;font-size:12px}.k_12_r{font-family:omnes-regular,sans-serif}.k_12_m{font-family:omnes-medium,sans-serif}.k_12_i{font-family:omnes-medium-italic,sans-serif}.k_10_m,.k_10_r{color:#caa2dd;font-size:10px}.k_10_r{font-family:omnes-regular,sans-serif}.k_10_m{font-family:omnes-medium,sans-serif}.l_36,.l_36_m{color:#000;font-size:36px}.l_36{font-family:omnes-light,sans-serif}.l_36_m{font-family:omnes-medium,sans-serif}.l_26,.l_26_m{color:#000;font-size:26px}.l_26{font-family:omnes-light,sans-serif}.l_26_m{font-family:omnes-medium,sans-serif}.l_24,.l_24_m,.l_24_r{color:#000;font-size:24px}.l_24{font-family:omnes-light,sans-serif}.l_24_m{font-family:omnes-medium,sans-serif}.l_24_r{font-family:omnes-regular,sans-serif}.l_22,.l_22_m{color:#000;font-size:22px}.l_22{font-family:omnes-light,sans-serif}.l_22_m{font-family:omnes-medium,sans-serif}.l_20,.l_20_m{color:#000;font-size:20px}.l_20{font-family:omnes-light,sans-serif}.l_20_m{font-family:omnes-medium,sans-serif}.l_18,.l_18_m,.l_18_r{color:#000;font-size:18px}.l_18{font-family:omnes-light,sans-serif}.l_18_r{font-family:omnes-regular,sans-serif}.l_18_m{font-family:omnes-medium,sans-serif}.l_16_i,.l_16_m,.l_16_r{color:#000;font-size:16px}.l_16_i{font-family:omnes-medium-italic,sans-serif}.l_16_r{font-family:omnes-regular,sans-serif}.l_16_m{font-family:omnes-medium,sans-serif}.l_14_i,.l_14_m,.l_14_r{color:#000;font-size:14px}.l_14_r{font-family:omnes-regular,sans-serif}.l_14_m{font-family:omnes-medium,sans-serif}.l_14_i{font-family:omnes-medium-italic,sans-serif}.l_13_i,.l_13_m,.l_13_r{color:#000;font-size:13px}.l_13_r{font-family:omnes-regular,sans-serif}.l_13_m{font-family:omnes-medium,sans-serif}.l_13_i{font-family:omnes-medium-italic,sans-serif}.l_12_i,.l_12_m,.l_12_r{color:#000;font-size:12px}.l_12_r{font-family:omnes-regular,sans-serif}.l_12_m{font-family:omnes-medium,sans-serif}.l_12_i{font-family:omnes-medium-italic,sans-serif}.l_10_m,.l_10_r{color:#000;font-size:10px}.l_10_r{font-family:omnes-regular,sans-serif}.l_10_m{font-family:omnes-medium,sans-serif}.m_36,.m_36_m{color:#5a5a5a;font-size:36px}.m_36{font-family:omnes-light,sans-serif}.m_36_m{font-family:omnes-medium,sans-serif}.m_26,.m_26_m{color:#5a5a5a;font-size:26px}.m_26{font-family:omnes-light,sans-serif}.m_26_m{font-family:omnes-medium,sans-serif}.m_24,.m_24_m,.m_24_r{color:#5a5a5a;font-size:24px}.m_24{font-family:omnes-light,sans-serif}.m_24_m{font-family:omnes-medium,sans-serif}.m_24_r{font-family:omnes-regular,sans-serif}.m_22,.m_22_m{color:#5a5a5a;font-size:22px}.m_22{font-family:omnes-light,sans-serif}.m_22_m{font-family:omnes-medium,sans-serif}.m_20,.m_20_m{color:#5a5a5a;font-size:20px}.m_20{font-family:omnes-light,sans-serif}.m_20_m{font-family:omnes-medium,sans-serif}.m_18,.m_18_m,.m_18_r{color:#5a5a5a;font-size:18px}.m_18{font-family:omnes-light,sans-serif}.m_18_r{font-family:omnes-regular,sans-serif}.m_18_m{font-family:omnes-medium,sans-serif}.m_16_i,.m_16_m,.m_16_r{color:#5a5a5a;font-size:16px}.m_16_i{font-family:omnes-medium-italic,sans-serif}.m_16_r{font-family:omnes-regular,sans-serif}.m_16_m{font-family:omnes-medium,sans-serif}.m_14_i,.m_14_m,.m_14_r{color:#5a5a5a;font-size:14px}.m_14_r{font-family:omnes-regular,sans-serif}.m_14_m{font-family:omnes-medium,sans-serif}.m_14_i{font-family:omnes-medium-italic,sans-serif}.m_13_i,.m_13_m,.m_13_r{color:#5a5a5a;font-size:13px}.m_13_r{font-family:omnes-regular,sans-serif}.m_13_m{font-family:omnes-medium,sans-serif}.m_13_i{font-family:omnes-medium-italic,sans-serif}.m_12_i,.m_12_m,.m_12_r{color:#5a5a5a;font-size:12px}.m_12_r{font-family:omnes-regular,sans-serif}.m_12_m{font-family:omnes-medium,sans-serif}.m_12_i{font-family:omnes-medium-italic,sans-serif}.m_10_m,.m_10_r{color:#5a5a5a;font-size:10px}.m_10_r{font-family:omnes-regular,sans-serif}.m_10_m{font-family:omnes-medium,sans-serif}.n_36,.n_36_m{color:#959595;font-size:36px}.n_36{font-family:omnes-light,sans-serif}.n_36_m{font-family:omnes-medium,sans-serif}.n_26,.n_26_m{color:#959595;font-size:26px}.n_26{font-family:omnes-light,sans-serif}.n_26_m{font-family:omnes-medium,sans-serif}.n_24,.n_24_m,.n_24_r{color:#959595;font-size:24px}.n_24{font-family:omnes-light,sans-serif}.n_24_m{font-family:omnes-medium,sans-serif}.n_24_r{font-family:omnes-regular,sans-serif}.n_22,.n_22_m{color:#959595;font-size:22px}.n_22{font-family:omnes-light,sans-serif}.n_22_m{font-family:omnes-medium,sans-serif}.n_20,.n_20_m{color:#959595;font-size:20px}.n_20{font-family:omnes-light,sans-serif}.n_20_m{font-family:omnes-medium,sans-serif}.n_18,.n_18_m,.n_18_r{color:#959595;font-size:18px}.n_18{font-family:omnes-light,sans-serif}.n_18_r{font-family:omnes-regular,sans-serif}.n_18_m{font-family:omnes-medium,sans-serif}.n_16_i,.n_16_m,.n_16_r{color:#959595;font-size:16px}.n_16_i{font-family:omnes-medium-italic,sans-serif}.n_16_r{font-family:omnes-regular,sans-serif}.n_16_m{font-family:omnes-medium,sans-serif}.n_14_i,.n_14_m,.n_14_r{color:#959595;font-size:14px}.n_14_r{font-family:omnes-regular,sans-serif}.n_14_m{font-family:omnes-medium,sans-serif}.n_14_i{font-family:omnes-medium-italic,sans-serif}.n_13_i,.n_13_m,.n_13_r{color:#959595;font-size:13px}.n_13_r{font-family:omnes-regular,sans-serif}.n_13_m{font-family:omnes-medium,sans-serif}.n_13_i{font-family:omnes-medium-italic,sans-serif}.n_12_i,.n_12_m,.n_12_r{color:#959595;font-size:12px}.n_12_r{font-family:omnes-regular,sans-serif}.n_12_m{font-family:omnes-medium,sans-serif}.n_12_i{font-family:omnes-medium-italic,sans-serif}.n_10_m,.n_10_r{color:#959595;font-size:10px}.n_10_r{font-family:omnes-regular,sans-serif}.n_10_m{font-family:omnes-medium,sans-serif}.o_36,.o_36_m{color:#d2d2d2;font-size:36px}.o_36{font-family:omnes-light,sans-serif}.o_36_m{font-family:omnes-medium,sans-serif}.o_26,.o_26_m{color:#d2d2d2;font-size:26px}.o_26{font-family:omnes-light,sans-serif}.o_26_m{font-family:omnes-medium,sans-serif}.o_24,.o_24_m,.o_24_r{color:#d2d2d2;font-size:24px}.o_24{font-family:omnes-light,sans-serif}.o_24_m{font-family:omnes-medium,sans-serif}.o_24_r{font-family:omnes-regular,sans-serif}.o_22,.o_22_m{color:#d2d2d2;font-size:22px}.o_22{font-family:omnes-light,sans-serif}.o_22_m{font-family:omnes-medium,sans-serif}.o_20,.o_20_m{color:#d2d2d2;font-size:20px}.o_20{font-family:omnes-light,sans-serif}.o_20_m{font-family:omnes-medium,sans-serif}.o_18,.o_18_m,.o_18_r{color:#d2d2d2;font-size:18px}.o_18{font-family:omnes-light,sans-serif}.o_18_r{font-family:omnes-regular,sans-serif}.o_18_m{font-family:omnes-medium,sans-serif}.o_16_i,.o_16_m,.o_16_r{color:#d2d2d2;font-size:16px}.o_16_i{font-family:omnes-medium-italic,sans-serif}.o_16_r{font-family:omnes-regular,sans-serif}.o_16_m{font-family:omnes-medium,sans-serif}.o_14_i,.o_14_m,.o_14_r{color:#d2d2d2;font-size:14px}.o_14_r{font-family:omnes-regular,sans-serif}.o_14_m{font-family:omnes-medium,sans-serif}.o_14_i{font-family:omnes-medium-italic,sans-serif}.o_13_i,.o_13_m,.o_13_r{color:#d2d2d2;font-size:13px}.o_13_r{font-family:omnes-regular,sans-serif}.o_13_m{font-family:omnes-medium,sans-serif}.o_13_i{font-family:omnes-medium-italic,sans-serif}.o_12_i,.o_12_m,.o_12_r{color:#d2d2d2;font-size:12px}.o_12_r{font-family:omnes-regular,sans-serif}.o_12_m{font-family:omnes-medium,sans-serif}.o_12_i{font-family:omnes-medium-italic,sans-serif}.o_10_m,.o_10_r{color:#d2d2d2;font-size:10px}.o_10_r{font-family:omnes-regular,sans-serif}.o_10_m{font-family:omnes-medium,sans-serif}.p_36,.p_36_m{color:#fff;font-size:36px}.p_36{font-family:omnes-light,sans-serif}.p_36_m{font-family:omnes-medium,sans-serif}.p_26,.p_26_m{color:#fff;font-size:26px}.p_26{font-family:omnes-light,sans-serif}.p_26_m{font-family:omnes-medium,sans-serif}.p_24,.p_24_m,.p_24_r{color:#fff;font-size:24px}.p_24{font-family:omnes-light,sans-serif}.p_24_m{font-family:omnes-medium,sans-serif}.p_24_r{font-family:omnes-regular,sans-serif}.p_22,.p_22_m{color:#fff;font-size:22px}.p_22{font-family:omnes-light,sans-serif}.p_22_m{font-family:omnes-medium,sans-serif}.p_20,.p_20_m{color:#fff;font-size:20px}.p_20{font-family:omnes-light,sans-serif}.p_20_m{font-family:omnes-medium,sans-serif}.p_18,.p_18_m,.p_18_r{color:#fff;font-size:18px}.p_18{font-family:omnes-light,sans-serif}.p_18_r{font-family:omnes-regular,sans-serif}.p_18_m{font-family:omnes-medium,sans-serif}.p_16_i,.p_16_m,.p_16_r{color:#fff;font-size:16px}.p_16_i{font-family:omnes-medium-italic,sans-serif}.p_16_r{font-family:omnes-regular,sans-serif}.p_16_m{font-family:omnes-medium,sans-serif}.p_14_i,.p_14_m,.p_14_r{color:#fff;font-size:14px}.p_14_r{font-family:omnes-regular,sans-serif}.p_14_m{font-family:omnes-medium,sans-serif}.p_14_i{font-family:omnes-medium-italic,sans-serif}.p_13_i,.p_13_m,.p_13_r{color:#fff;font-size:13px}.p_13_r{font-family:omnes-regular,sans-serif}.p_13_m{font-family:omnes-medium,sans-serif}.p_13_i{font-family:omnes-medium-italic,sans-serif}.p_12_i,.p_12_m,.p_12_r{color:#fff;font-size:12px}.p_12_r{font-family:omnes-regular,sans-serif}.p_12_m{font-family:omnes-medium,sans-serif}.p_12_i{font-family:omnes-medium-italic,sans-serif}.p_10_m,.p_10_r{color:#fff;font-size:10px}.p_10_r{font-family:omnes-regular,sans-serif}.p_10_m{font-family:omnes-medium,sans-serif}.q_36,.q_36_m{color:#cf2a2a;font-size:36px}.q_36{font-family:omnes-light,sans-serif}.q_36_m{font-family:omnes-medium,sans-serif}.q_26,.q_26_m{color:#cf2a2a;font-size:26px}.q_26{font-family:omnes-light,sans-serif}.q_26_m{font-family:omnes-medium,sans-serif}.q_24,.q_24_m,.q_24_r{color:#cf2a2a;font-size:24px}.q_24{font-family:omnes-light,sans-serif}.q_24_m{font-family:omnes-medium,sans-serif}.q_24_r{font-family:omnes-regular,sans-serif}.q_22,.q_22_m{color:#cf2a2a;font-size:22px}.q_22{font-family:omnes-light,sans-serif}.q_22_m{font-family:omnes-medium,sans-serif}.q_20,.q_20_m{color:#cf2a2a;font-size:20px}.q_20{font-family:omnes-light,sans-serif}.q_20_m{font-family:omnes-medium,sans-serif}.q_18,.q_18_m,.q_18_r{color:#cf2a2a;font-size:18px}.q_18{font-family:omnes-light,sans-serif}.q_18_r{font-family:omnes-regular,sans-serif}.q_18_m{font-family:omnes-medium,sans-serif}.q_16_m,.q_16_r{color:#cf2a2a;font-size:16px}.q_16_r{font-family:omnes-regular,sans-serif}.q_16_m{font-family:omnes-medium,sans-serif}.q_14_i,.q_14_m,.q_14_r{color:#cf2a2a;font-size:14px}.q_14_r{font-family:omnes-regular,sans-serif}.q_14_m{font-family:omnes-medium,sans-serif}.q_14_i{font-family:omnes-medium-italic,sans-serif}.q_13_i,.q_13_m,.q_13_r{color:#cf2a2a;font-size:13px}.q_13_r{font-family:omnes-regular,sans-serif}.q_13_m{font-family:omnes-medium,sans-serif}.q_13_i{font-family:omnes-medium-italic,sans-serif}.q_12_i,.q_12_m,.q_12_r{color:#cf2a2a;font-size:12px}.q_12_r{font-family:omnes-regular,sans-serif}.q_12_m{font-family:omnes-medium,sans-serif}.q_12_i{font-family:omnes-medium-italic,sans-serif}.r_36,.r_36_m{color:#f2f2f2;font-size:36px}.r_36{font-family:omnes-light,sans-serif}.r_36_m{font-family:omnes-medium,sans-serif}.r_26,.r_26_m{color:#f2f2f2;font-size:26px}.r_26{font-family:omnes-light,sans-serif}.r_26_m{font-family:omnes-medium,sans-serif}.r_24,.r_24_m,.r_24_r{color:#f2f2f2;font-size:24px}.r_24{font-family:omnes-light,sans-serif}.r_24_m{font-family:omnes-medium,sans-serif}.r_24_r{font-family:omnes-regular,sans-serif}.r_22,.r_22_m{color:#f2f2f2;font-size:22px}.r_22{font-family:omnes-light,sans-serif}.r_22_m{font-family:omnes-medium,sans-serif}.r_20,.r_20_m{color:#f2f2f2;font-size:20px}.r_20{font-family:omnes-light,sans-serif}.r_20_m{font-family:omnes-medium,sans-serif}.r_18,.r_18_m,.r_18_r{color:#f2f2f2;font-size:18px}.r_18{font-family:omnes-light,sans-serif}.r_18_r{font-family:omnes-regular,sans-serif}.r_18_m{font-family:omnes-medium,sans-serif}.r_16_m,.r_16_r{color:#f2f2f2;font-size:16px}.r_16_r{font-family:omnes-regular,sans-serif}.r_16_m{font-family:omnes-medium,sans-serif}.r_14_i,.r_14_m,.r_14_r{color:#f2f2f2;font-size:14px}.r_14_r{font-family:omnes-regular,sans-serif}.r_14_m{font-family:omnes-medium,sans-serif}.r_14_i{font-family:omnes-medium-italic,sans-serif}.r_13_i,.r_13_m,.r_13_r{color:#f2f2f2;font-size:13px}.r_13_r{font-family:omnes-regular,sans-serif}.r_13_m{font-family:omnes-medium,sans-serif}.r_13_i{font-family:omnes-medium-italic,sans-serif}.r_12_i,.r_12_m,.r_12_r{color:#f2f2f2;font-size:12px}.r_12_r{font-family:omnes-regular,sans-serif}.r_12_m{font-family:omnes-medium,sans-serif}.r_12_i{font-family:omnes-medium-italic,sans-serif}.s_36,.s_36_m{color:#191919;font-size:36px}.s_36{font-family:omnes-light,sans-serif}.s_36_m{font-family:omnes-medium,sans-serif}.s_26,.s_26_m{color:#191919;font-size:26px}.s_26{font-family:omnes-light,sans-serif}.s_26_m{font-family:omnes-medium,sans-serif}.s_24,.s_24_m,.s_24_r{color:#191919;font-size:24px}.s_24{font-family:omnes-light,sans-serif}.s_24_m{font-family:omnes-medium,sans-serif}.s_24_r{font-family:omnes-regular,sans-serif}.s_22,.s_22_m{color:#191919;font-size:22px}.s_22{font-family:omnes-light,sans-serif}.s_22_m{font-family:omnes-medium,sans-serif}.s_20,.s_20_m{color:#191919;font-size:20px}.s_20{font-family:omnes-light,sans-serif}.s_20_m{font-family:omnes-medium,sans-serif}.s_18,.s_18_m,.s_18_r{color:#191919;font-size:18px}.s_18{font-family:omnes-light,sans-serif}.s_18_r{font-family:omnes-regular,sans-serif}.s_18_m{font-family:omnes-medium,sans-serif}.s_16_m,.s_16_r{color:#191919;font-size:16px}.s_16_r{font-family:omnes-regular,sans-serif}.s_16_m{font-family:omnes-medium,sans-serif}.s_14_i,.s_14_m,.s_14_r{color:#191919;font-size:14px}.s_14_r{font-family:omnes-regular,sans-serif}.s_14_m{font-family:omnes-medium,sans-serif}.s_14_i{font-family:omnes-medium-italic,sans-serif}.s_13_i,.s_13_m,.s_13_r{color:#191919;font-size:13px}.s_13_r{font-family:omnes-regular,sans-serif}.s_13_m{font-family:omnes-medium,sans-serif}.s_13_i{font-family:omnes-medium-italic,sans-serif}.s_12_i,.s_12_m,.s_12_r{color:#191919;font-size:12px}.s_12_r{font-family:omnes-regular,sans-serif}.s_12_m{font-family:omnes-medium,sans-serif}.s_12_i{font-family:omnes-medium-italic,sans-serif}.x_36,.x_36_m{color:#D74854;font-size:36px}.x_36{font-family:omnes-light,sans-serif}.x_36_m{font-family:omnes-medium,sans-serif}.x_26,.x_26_m{color:#D74854;font-size:26px}.x_26{font-family:omnes-light,sans-serif}.x_26_m{font-family:omnes-medium,sans-serif}.x_24,.x_24_m,.x_24_r{color:#D74854;font-size:24px}.x_24{font-family:omnes-light,sans-serif}.x_24_m{font-family:omnes-medium,sans-serif}.x_24_r{font-family:omnes-regular,sans-serif}.x_22,.x_22_m{color:#D74854;font-size:22px}.x_22{font-family:omnes-light,sans-serif}.x_22_m{font-family:omnes-medium,sans-serif}.x_20,.x_20_m{color:#D74854;font-size:20px}.x_20{font-family:omnes-light,sans-serif}.x_20_m{font-family:omnes-medium,sans-serif}.x_18,.x_18_m,.x_18_r{color:#D74854;font-size:18px}.x_18{font-family:omnes-light,sans-serif}.x_18_r{font-family:omnes-regular,sans-serif}.x_18_m{font-family:omnes-medium,sans-serif}.x_16_m,.x_16_r{color:#D74854;font-size:16px}.x_16_r{font-family:omnes-regular,sans-serif}.x_16_m{font-family:omnes-medium,sans-serif}.x_14_i,.x_14_m,.x_14_r{color:#D74854;font-size:14px}.x_14_r{font-family:omnes-regular,sans-serif}.x_14_m{font-family:omnes-medium,sans-serif}.x_14_i{font-family:omnes-medium-italic,sans-serif}.x_13_i,.x_13_m,.x_13_r{color:#D74854;font-size:13px}.x_13_r{font-family:omnes-regular,sans-serif}.x_13_m{font-family:omnes-medium,sans-serif}.x_13_i{font-family:omnes-medium-italic,sans-serif}.x_12_i,.x_12_m,.x_12_r{color:#D74854;font-size:12px}.x_12_r{font-family:omnes-regular,sans-serif}.x_12_m{font-family:omnes-medium,sans-serif}.x_12_i{font-family:omnes-medium-italic,sans-serif}.t_36,.t_36_m{color:#faf8f8;font-size:36px}.t_36{font-family:omnes-light,sans-serif}.t_36_m{font-family:omnes-medium,sans-serif}.t_26,.t_26_m{color:#faf8f8;font-size:26px}.t_26{font-family:omnes-light,sans-serif}.t_26_m{font-family:omnes-medium,sans-serif}.t_24,.t_24_m,.t_24_r{color:#faf8f8;font-size:24px}.t_24{font-family:omnes-light,sans-serif}.t_24_m{font-family:omnes-medium,sans-serif}.t_24_r{font-family:omnes-regular,sans-serif}.t_22,.t_22_m{color:#faf8f8;font-size:22px}.t_22{font-family:omnes-light,sans-serif}.t_22_m{font-family:omnes-medium,sans-serif}.t_20,.t_20_m{color:#faf8f8;font-size:20px}.t_20{font-family:omnes-light,sans-serif}.t_20_m{font-family:omnes-medium,sans-serif}.t_18,.t_18_m,.t_18_r{color:#faf8f8;font-size:18px}.t_18{font-family:omnes-light,sans-serif}.t_18_r{font-family:omnes-regular,sans-serif}.t_18_m{font-family:omnes-medium,sans-serif}.t_16_m,.t_16_r{color:#faf8f8;font-size:16px}.t_16_r{font-family:omnes-regular,sans-serif}.t_16_m{font-family:omnes-medium,sans-serif}.t_14_i,.t_14_m,.t_14_r{color:#faf8f8;font-size:14px}.t_14_r{font-family:omnes-regular,sans-serif}.t_14_m{font-family:omnes-medium,sans-serif}.t_14_i{font-family:omnes-medium-italic,sans-serif}.t_13_i,.t_13_m,.t_13_r{color:#faf8f8;font-size:13px}.t_13_r{font-family:omnes-regular,sans-serif}.t_13_m{font-family:omnes-medium,sans-serif}.t_13_i{font-family:omnes-medium-italic,sans-serif}.t_12_i,.t_12_m,.t_12_r{color:#faf8f8;font-size:12px}.t_12_r{font-family:omnes-regular,sans-serif}.t_12_m{font-family:omnes-medium,sans-serif}.t_12_i{font-family:omnes-medium-italic,sans-serif}.u_36,.u_36_m{color:#eaeaea;font-size:36px}.u_36{font-family:omnes-light,sans-serif}.u_36_m{font-family:omnes-medium,sans-serif}.u_26,.u_26_m{color:#eaeaea;font-size:26px}.u_26{font-family:omnes-light,sans-serif}.u_26_m{font-family:omnes-medium,sans-serif}.u_24,.u_24_m,.u_24_r{color:#eaeaea;font-size:24px}.u_24{font-family:omnes-light,sans-serif}.u_24_m{font-family:omnes-medium,sans-serif}.u_24_r{font-family:omnes-regular,sans-serif}.u_22,.u_22_m{color:#eaeaea;font-size:22px}.u_22{font-family:omnes-light,sans-serif}.u_22_m{font-family:omnes-medium,sans-serif}.u_20,.u_20_m{color:#eaeaea;font-size:20px}.u_20{font-family:omnes-light,sans-serif}.u_20_m{font-family:omnes-medium,sans-serif}.u_18,.u_18_m,.u_18_r{color:#eaeaea;font-size:18px}.u_18{font-family:omnes-light,sans-serif}.u_18_r{font-family:omnes-regular,sans-serif}.u_18_m{font-family:omnes-medium,sans-serif}.u_16_m,.u_16_r{color:#eaeaea;font-size:16px}.u_16_r{font-family:omnes-regular,sans-serif}.u_16_m{font-family:omnes-medium,sans-serif}.u_14_i,.u_14_m,.u_14_r{color:#eaeaea;font-size:14px}.u_14_r{font-family:omnes-regular,sans-serif}.u_14_m{font-family:omnes-medium,sans-serif}.u_14_i{font-family:omnes-medium-italic,sans-serif}.u_13_i,.u_13_m,.u_13_r{color:#eaeaea;font-size:13px}.u_13_r{font-family:omnes-regular,sans-serif}.u_13_m{font-family:omnes-medium,sans-serif}.u_13_i{font-family:omnes-medium-italic,sans-serif}.u_12_i,.u_12_m,.u_12_r{color:#eaeaea;font-size:12px}.u_12_r{font-family:omnes-regular,sans-serif}.u_12_m{font-family:omnes-medium,sans-serif}.u_12_i{font-family:omnes-medium-italic,sans-serif}.v_36,.v_36_m{color:#e6f6fb;font-size:36px}.v_36{font-family:omnes-light,sans-serif}.v_36_m{font-family:omnes-medium,sans-serif}.v_26,.v_26_m{color:#e6f6fb;font-size:26px}.v_26{font-family:omnes-light,sans-serif}.v_26_m{font-family:omnes-medium,sans-serif}.v_24,.v_24_m,.v_24_r{color:#e6f6fb;font-size:24px}.v_24{font-family:omnes-light,sans-serif}.v_24_m{font-family:omnes-medium,sans-serif}.v_24_r{font-family:omnes-regular,sans-serif}.v_22,.v_22_m{color:#e6f6fb;font-size:22px}.v_22{font-family:omnes-light,sans-serif}.v_22_m{font-family:omnes-medium,sans-serif}.v_20,.v_20_m{color:#e6f6fb;font-size:20px}.v_20{font-family:omnes-light,sans-serif}.v_20_m{font-family:omnes-medium,sans-serif}.v_18,.v_18_m,.v_18_r{color:#e6f6fb;font-size:18px}.v_18{font-family:omnes-light,sans-serif}.v_18_r{font-family:omnes-regular,sans-serif}.v_18_m{font-family:omnes-medium,sans-serif}.v_16_m,.v_16_r{color:#e6f6fb;font-size:16px}.v_16_r{font-family:omnes-regular,sans-serif}.v_16_m{font-family:omnes-medium,sans-serif}.v_14_i,.v_14_m,.v_14_r{color:#e6f6fb;font-size:14px}.v_14_r{font-family:omnes-regular,sans-serif}.v_14_m{font-family:omnes-medium,sans-serif}.v_14_i{font-family:omnes-medium-italic,sans-serif}.v_13_i,.v_13_m,.v_13_r{color:#e6f6fb;font-size:13px}.v_13_r{font-family:omnes-regular,sans-serif}.v_13_m{font-family:omnes-medium,sans-serif}.v_13_i{font-family:omnes-medium-italic,sans-serif}.v_12_i,.v_12_m,.v_12_r{color:#e6f6fb;font-size:12px}.v_12_r{font-family:omnes-regular,sans-serif}.v_12_m{font-family:omnes-medium,sans-serif}.v_12_i{font-family:omnes-medium-italic,sans-serif}.disabled{opacity:.4!important;cursor:auto;background-color:transparent;pointer-events:none}.modal-content{border:6px solid #1370A3;border-radius:0;padding:30px}.modal-content .modal-header{border-bottom:none;border-top:none;padding:0}.modal-content .modal-header h2,.modal-content .modal-header h3{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;margin-bottom:10px}.modal-content .modal-header .close{outline:0;background:url(images/icons-sprite-v5.png) -503px 0 no-repeat;width:15px;height:15px;display:block;opacity:1;position:absolute;top:10px;right:7px}.modal-content .modal-header .close span{display:none}.modal-content .modal-body{padding:0}.modal-content .modal-footer{border-top:none;padding:0}.modal-content .modal-footer .btn{width:100%}.modal-content .modal-footer .btn4Confirmation{width:20%}.modal-content .modal-footer .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.sprite{background:url(images/icons-sprite-v5.png) top left no-repeat;width:20px;height:20px}.profiles-sprite{background:url(images/profiles-sprite.png) top left no-repeat;width:40px;height:28px}.steps-sprite{background-image:url(images/steps-sprite.png);background-repeat:no-repeat;display:block}.actions-sprite{background:url(images/actions-sprite.png) top left no-repeat;width:15px;height:15px}.actions-sprite.delete_large{background-position:0 0}.actions-sprite.reject_large{background-position:-25px 0}.actions-sprite.approve_large{background-position:-50px 0}.sprite.added{background-position:0 0}.sprite.approve{background-position:-30px 0}.sprite.complete{background-position:-60px 0}.sprite.electricity{background-position:-90px 0}.sprite.invite{background-position:-120px 0}.sprite.upload{background-position:-150px 0}.sprite.add{background-position:-180px 0;width:18px;height:18px}.sprite.success{background-position:-208px 0;width:15px;height:15px}.sprite.delete{background-position:-233px 0;width:15px;height:15px}.sprite.edit-large{background-position:-258px 0;height:18px}.sprite.edit-medium{background-position:-288px 0;width:17px;height:16px}.sprite.edit-small{background-position:-315px 0;width:15px;height:14px}.sprite.amburger,.sprite.approved,.sprite.pending,.sprite.pendingnon-el,.sprite.todo{width:12px;height:12px}.sprite.approved{background-position:-340px 0}.sprite.pendingnon-el{background-position:-362px 0}.sprite.pending{background-position:-384px 0}.sprite.todo{background-position:-406px 0}.sprite.amburger{background-position:-428px 0}.sprite.question-mark{background-position:-450px 0;width:18px;height:18px}.sprite.delete-circle{background-position:-478px 0;width:15px;height:15px}.sprite.close{background-position:-503px 0;width:15px;height:15px}.sprite.automation-state{background-position:-529px 0;width:15px;height:15px}.sprite.review-state-active{background-position:-554px 0;width:15px;height:15px}.sprite.review-state{background-position:-579px 0;width:15px;height:15px}.sprite.peer_review-state-active{background-position:-604px 0;width:15px;height:15px}.sprite.peer_review-state{background-position:-629px 0;width:15px;height:15px}.sprite.approval-state-active{background-position:-654px 0;width:15px;height:15px}.sprite.approval-state{background-position:-679px 0;width:15px;height:15px}.sprite.handoff-state-active{background-position:-704px 0;width:15px;height:15px}.sprite.handoff-state{background-position:-729px 0;width:15px;height:15px}.sprite.closed-state-active{background-position:-754px 0;width:15px;height:15px}.sprite.closed-state{background-position:-779px 0;width:15px;height:15px}.sprite.active-cl{background-position:-804px 0;width:15px;height:15px}.sprite.delete-cl{background-position:-829px 0;width:15px;height:15px}.sprite.denied-cl{background-position:-854px 0;width:15px;height:15px}.sprite.approved-cl{background-position:-879px 0;width:15px;height:15px}.sprite.denied-cl-btn-active{background-position:-904px 0;width:25px;height:25px}.sprite.denied-cl-btn{background-position:-939px 0;width:25px;height:25px}.sprite.approved-cl-btn-active{background-position:-974px 0;width:25px;height:25px}.sprite.approved-cl-btn{background-position:-1009px 0;width:25px;height:25px}.sprite.not-relevant-btn-active{background-position:-1044px 0;width:25px;height:25px}.sprite.not-relevant-btn{background-position:-1079px 0;width:25px;height:25px}.sprite.items-todo{background-position:-1114px 0;width:8px;height:8px}.sprite.duedate{background-position:-1132px 0;width:12px;height:12px}.sprite.small-edit{background-position:-1154px 0;height:14px}.sprite.not-relevant-cl{background-position:-1179px 0;width:15px;height:15px}.sprite.pending-state{background-position:-1204px 0;width:15px;height:15px}.sprite.starred{background-position:-1230px 0;width:19px;height:19px}.sprite.starred-selected{background-position:-1260px 0;width:19px;height:19px}.sprite.small-grey-add{background-position:-1288px 0;width:17px;height:15px}.sprite.big-grey-add{background-position:-1313px 0;width:19px;height:18px}.sprite.red-delete{background-position:-1341px 0;width:17px;height:16px}.sprite.grey-check-mark{background-position:-1390px 0;width:17px;height:15px}.sprite.order{background-position:-1417px 0;width:14px;height:12px}.sprite.admin-dropdown{background-position:0 -63px;width:14px;height:14px}.profiles-sprite.avatar-blue{background-position:0 0;height:40px}.profiles-sprite.notification{background-position:0 -50px;width:25px}.profiles-sprite.profile-large{background-position:0 -88px;width:150px;height:140px}.profiles-sprite.profile-medium{background-position:0 -238px;height:40px}.profiles-sprite.profile-white{background-position:0 -288px;width:32px}.profiles-sprite.avatar-white{background-position:0 -326px;width:30px;height:30px}.steps-sprite.confirmed{width:12px;height:12px;background-position:-5px -5px}.steps-sprite.completed{width:12px;height:12px;background-position:-27px -5px}.steps-sprite.completed-non-el{width:12px;height:12px;background-position:-49px -5px}.steps-sprite.todo{width:12px;height:12px;background-position:-71px -5px}.logo-color,.logo-white{width:150px;height:30px}.logo-white{background:url(images/d2sandbox_logos-150x30.png) no-repeat}.logo-color{background:url(images/d2sandbox_logos_color-150x30.png) no-repeat}.dashboard,.dashboard .content-container #content{height:100%}.table-container-flex{clear:both}.table-container-flex .table{width:100%}.table-container-flex .table .head .head-row{text-align:center;padding:8px 15px;color:#000;font-family:omnes-medium,sans-serif;font-size:14px}.table-container-flex .table .head .head-row:last-child{border-right:none}.table-container-flex .flex-container{display:flex}.table-container-flex .flex-item{width:10px;line-height:25px;padding:5px 15px;flex-grow:1;text-align:left}.dashboard .content-container{height:100%;position:relative;padding-top:55px}.dashboard .content-container #content .row{height:auto}.dashboard #sidebar{padding:20px 5px;height:100%;overflow-y:auto}.dashboard #sidebar .line-separator{border-bottom:dashed 1px #1370a3;margin:20px 0}#full-page-with-header{margin-top:59px;background:url(images/top.jpg) no-repeat}#full-page-with-header #content{overflow:auto;position:absolute;top:201px;bottom:0;right:0;left:0;height:auto}#full-page-with-header #header-title{height:130px}#full-page-with-header .banner{box-shadow:0 1px 2px rgba(43,48,51,.08);z-index:20}#full-page-with-header .navbar{background-color:#fff;margin-bottom:0}#full-page-with-header #logo{float:left;display:block;margin:20px 0}#full-page-with-header #logo .logo-trans{display:none}#full-page-with-header .banner[data-transparent-header=true]{width:100%;z-index:9998;background-color:transparent;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;-o-box-shadow:none;border-bottom:1px solid rgba(255,255,255,.25)!important}#full-page-with-header .boxed-mode .banner[data-transparent-header=true]{left:0;right:0;margin:0 auto}#full-page-with-header .banner[data-transparent-header=true] #logo .logo-trans{display:inline}#full-page-with-header .banner[data-transparent-header=true] #logo .logo-main{display:none}#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li.active>a,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li.active>a:hover,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li>a,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li>a:hover{color:#fff}#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li.active>a:after,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li.active>a:focus:after,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li.active>a:hover:after,#full-page-with-header .banner[data-transparent-header=true] .navbar-nav>li>a:hover:after{background-color:#fff}.admin-navigation,.dashboard-navigation,.navigation .documentation{background-color:#DEF3FF;overflow-y:auto}#full-page-with-header .menu-seperator{color:#fff;font-family:omnes-regular,sans-serif;font-size:14px}.navigation h1.caption{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.navigation h1.caption.profile{float:none}.navigation li{text-decoration:none;list-style:none}.navigation ul.actions-list>li{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;margin:0 0 20px;cursor:pointer}.navigation ul.actions-list>li.selected{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;text-decoration:underline}.navigation ul.actions-list>li span.selected{float:right;text-decoration:none}.admin-navigation{border-right:1px solid #abb8c0;height:100%;padding:0 20px}.admin-navigation .menu-engagements-category{margin-bottom:20px}.admin-navigation .menu-engagements-category .menu-engagement-category-title{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;border-bottom:solid 2px;border-color:#abb8c0;margin:10px 0}.admin-navigation li{text-decoration:none;list-style:none}.admin-navigation ul.engagements-list>li{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;margin:0 0 10px}.admin-navigation ul.engagements-list>li.selected{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.admin-navigation ul.engagements-list li{position:relative}.admin-navigation ul.engagements-list .clickable{display:block;cursor:pointer}.admin-navigation ul.engagement-details{padding:0 0 0 8px;border-left:1px solid;border-color:#abb8c0;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px}.admin-navigation ul.engagement-details>li{margin:0;line-height:18px}.admin-navigation ul.engagement-details>li.selected>.engagement_detail_menu_name{text-decoration:underline}.admin-navigation ul.engagement-details>li.selected>.engagement_detail_menu_raquo{float:right;margin-right:20px}.admin-navigation ul.engagement-details>li.engagement-details-sub-catgeory{margin-top:5px}.admin-navigation ul.engagement-details>li.engagement-details-sub-catgeory>.sub-category-title{font-size:16px;font-weight:700}.admin-navigation .sub-category{display:inline-block;margin:0 0 10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;position:relative}.admin-navigation .admin-navbar{padding-right:0;padding-left:0}.admin-navigation .template-selected{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px;text-decoration:underline}.dashboard-navigation li,.navigation .documentation li{text-decoration:none;list-style:none}.admin-navigation .template-selected .checklist-icon{background-position:-804px 0;width:15px;height:15px}.navigation .documentation{border-right:1px solid #abb8c0;height:100%;padding:0 20px}.navigation .documentation #documentation-search{margin-bottom:20px}.navigation .documentation #mobile-collapse{display:none}@media (max-width:992px){.navigation .documentation #mobile-collapse{display:block;position:relative;top:24px;color:#1370a3;cursor:pointer}}.navigation .documentation h1.caption{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.navigation .documentation h1.caption.documentation{float:none;width:95%}.navigation .documentation ul.actions-list .pages-list .page{display:block;cursor:pointer;margin-bottom:5px;padding-top:5px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.dashboard-navigation #engagement-search,.dashboard-navigation .menu-engagements-category{margin-bottom:20px}.navigation .documentation ul.actions-list .pages-list .sub-page{display:block;cursor:pointer;line-height:22px}.navigation .documentation ul.actions-list .pages-list .selected{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.navigation .documentation ul.actions-list .pages-list .page-childs{font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer;padding:3px 0 0 8px;border-left:1px solid;border-color:#abb8c0;color:#5a5a5a}.navigation .documentation ul.actions-list .pages-list .page-childs .selected{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:14px}.navigation .documentation span.fa-caret-right{vertical-align:middle}.navigation{height:100%;padding:0}.dashboard-navigation{border-right:1px solid #abb8c0;height:100%;padding:0 20px}.dashboard-navigation #engagement-search .popover .popover-content{padding:5px 10px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:10px}.dashboard-navigation #engagement-search .popover.right>.arrow:after{bottom:10px;left:1px;content:" "}.dashboard-navigation #engagement-search .popover>.arrow{border-width:0}.dashboard-navigation .menu-engagements-category .menu-engagement-category-title{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;border-bottom:solid 2px;border-color:#abb8c0;margin:10px 0}.dashboard-navigation #mobile-collapse{display:none}.dashboard-navigation #search-no-results{margin-top:10px}.dashboard-navigation #nav-bar-wrapper{padding:0}@media (max-width:992px){.dashboard-navigation #mobile-collapse{display:block;position:relative;top:21px;color:#1370a3;cursor:pointer}.dashboard-navigation{height:auto}}.dashboard-navigation h1.caption{float:left;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.dashboard-navigation h1.caption .add-engagement{display:inline-block;margin-left:8px;cursor:pointer;position:relative;top:2px}.dashboard-navigation ul.engagements-list>li{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;margin:0 0 10px}.dashboard-navigation ul.engagements-list>li.selected{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.dashboard-navigation ul.engagements-list li{position:relative}.dashboard-navigation ul.engagements-list .red_dot{background-position:-1114px 0;width:8px;height:8px;display:block;position:absolute;left:-12px;top:4px}.dashboard-navigation ul.engagements-list .clickable{display:block;cursor:pointer}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory .selected{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory .selected .checklist-icon{background-position:-804px 0;width:15px;height:15px}.dashboard-navigation ul.engagement-details{padding:0 0 0 8px;border-left:1px solid;border-color:#abb8c0;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px}.dashboard-navigation ul.engagement-details>li{margin:0;line-height:18px}.dashboard-navigation ul.engagement-details>li.selected>.engagement_detail_menu_name{text-decoration:underline}.dashboard-navigation ul.engagement-details>li.selected>.engagement_detail_menu_raquo{float:right;margin-right:20px}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory{margin-top:5px}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory>.sub-category-title{font-size:16px;font-weight:700}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory>.sub-category-title>.add-checklist{width:18px;height:18px;display:inline-block;padding-left:2px;position:relative;top:2px}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory>.engagement-checklist{padding-left:6px}.dashboard-navigation ul.engagement-details>li.engagement-details-sub-catgeory>.engagement-checklist>li>.checklist-icon{display:inline-block;position:relative;top:2px;left:-5px}.dashboard-navigation .search-engagement-name{text-decoration:underline;display:block}.dashboard-navigation .search-engagement-fields{font-size:smaller;display:block}.dashboard .dropdown-menu .divider{margin:0}.dashboard .dropdown-menu li{margin:8px}.dashboard .dropdown-menu li a.logout{color:#cf2a2a}.dashboard .dropdown-menu li a.dashboard-admin-link{color:#1370a3;font-family:omnes-regular,sans-serif;font-size:16px}.dashboard .dropdown-menu li i{margin-right:10px}.dashboard #toolbar{background-color:#4990E2;height:55px;display:flex;flex-direction:row;align-items:center}.dashboard #toolbar .header-logo{background:url(images/d2sandbox_logos-150x30.png) no-repeat;width:150px;height:30px;margin:0 30px}.dashboard #toolbar ul.header-top-menu{display:flex;flex-direction:row;justify-content:center;margin:0}.dashboard #toolbar ul.header-top-menu li{list-style:none;margin:0 20px}.dashboard #toolbar ul.header-top-menu li a{color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;text-decoration:none}.add-vf #skip-add-vf-singup,.login .leftLink a,.login .rightLink a,.login a.register,.register .form-group a,.register a.login{text-decoration:underline}.dashboard #toolbar .header-right{margin:0 30px;display:flex;flex-direction:row;justify-content:flex-end}.dashboard #toolbar .header-right .dropdown-menu{left:-120px}.dashboard #toolbar .header-right .header-chat{background:url(images/profiles-sprite.png) 0 -50px no-repeat;height:28px;width:25px;margin-right:10px;position:relative}.dashboard #toolbar .header-right .header-avatar{background:url(images/profiles-sprite.png) 0 -326px no-repeat;width:30px;height:30px;cursor:pointer}.dashboard #toolbar .header-right .header-avatar .notifications{min-width:16px;height:16px;border:1px solid #fff;background-color:#F5A623;display:block;position:absolute;left:22px}.dashboard #toolbar .header-right .header-avatar .notifications .count{color:#fff;font-family:omnes-regular,sans-serif;font-size:10px;display:block;margin-left:4px;margin-right:4px;margin-top:1px}.ice-loader{background:url(images/wait.gif) top left no-repeat;width:16px;height:11px;display:block;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px}.ice-loader-overlay{opacity:.2}#news-and-announcements{border:1px solid #D74854;padding:0}#news-and-announcements #news-and-announcements-header{background-color:#D74854;color:#fff;font-family:omnes-medium,sans-serif;font-size:22px;padding:10px 10px 0}#news-and-announcements #news-and-announcements-list{list-style:none;padding:0 15px}#news-and-announcements #news-and-announcements-list .news-and-announcements-details{border-bottom:1px dashed #1370a3;padding-bottom:10px}#news-and-announcements #news-and-announcements-list .news-and-announcements-details .news-and-announcements-details-header .news-and-announcements-details-title{font-family:omnes-medium,sans-serif;font-size:20px;cursor:pointer;margin-top:15px;margin-bottom:0;margin-left:15px;word-wrap:break-word}#news-and-announcements #news-and-announcements-list .news-and-announcements-details .news-and-announcements-description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px;margin:3px 0;line-height:20px;word-wrap:break-word}#news-and-announcements #news-and-announcements-list .news-and-announcements-details .news-and-announcements-creation{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px}#news-and-announcements #news-and-announcements-list .news-and-announcements-details:last-child{padding:0;border:none}.steps-progress-wrapper,.tooltip-container{border:1px solid #d2d2d2;background-color:#fff}.ice-toast u{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px}@media (max-width:992px){.ice-toast{padding-top:10px;padding-left:0}}.tooltip-container{padding:0}.tooltip-container .tooltip-title{font-family:omnes-medium,sans-serif;font-size:22px;background-color:#fff;color:#444141;padding:10px 10px 0}.tooltip-container .tooltip-content{background-color:#fff;word-wrap:break-word}.tooltip-container .tooltip-content h4{padding:0 15px}#nav-bar-wrapper .tooltip-container{bottom:10px}#nav-bar-wrapper .tooltip-container .tooltip-title{font-family:omnes-medium,sans-serif;font-size:16px;background-color:#fff;color:#444141;padding:15px 15px 0}#nav-bar-wrapper .tooltip-container .tooltip-content{background-color:#fff;word-wrap:break-word}#nav-bar-wrapper .tooltip-container .tooltip-content h4{font-family:omnes-regular,sans-serif;font-size:16px;padding:0 15px}.steps-progress-wrapper{position:relative;padding:10px 15px}.steps-progress-wrapper .progress-side-info{padding:0 10px;margin-top:4px}.steps-progress-wrapper .progress-side-info .value{line-height:20px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px}.steps-progress-wrapper .progress-side-info .progress-side-info-row{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:12px;line-height:20px}.steps-progress-wrapper .progress-side-info .progress-side-info-row .progress-side-info-first-row{padding-top:1%}.steps-progress-wrapper .progress-side-info .progress-side-info-row .progress-side-info-last-row{padding-bottom:1%}.steps-progress-wrapper .progress-body-content .progress-left-content{border-right:solid 1px #d2d2d2}.steps-progress-wrapper .progress-body-content .progress-version-release{margin-top:5px;color:#5a5a5a}.steps-progress-wrapper .progress-body-content .description .progress-title{color:#1370a3;font-family:omnes-light,sans-serif;font-size:20px}.steps-progress-wrapper .progress-body-content .description .progress-title .manual-id{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:20px}.steps-progress-wrapper .progress-body-content .description .progress-title .progress-click{cursor:pointer}.steps-progress-wrapper .progress-body-content .description .progress-title .progress-question-mark{font-size:20px;color:#1370A3;display:inline-block;margin-left:1px;cursor:pointer;position:relative;top:1px}.steps-progress-wrapper .progress-body-content .description .progress-title .star-engagement-action{display:inline-block;cursor:pointer;position:relative;margin-right:5px}.steps-progress-wrapper .progress-body-content .description .progress-edit-days-left{float:right;position:relative;margin-right:1%}.steps-progress-wrapper .progress-body-content .description .progress-edit-days-left .steps-progress-days-left{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px;vertical-align:bottom}.steps-progress-wrapper .progress-body-content .description .progress-edit-days-left .edit{background:url(images/icons-sprite-v5.png) -288px 0 no-repeat;width:17px;height:16px;display:inline-block;cursor:pointer;position:relative;top:3px}.steps-progress-wrapper .progress-body-content .steps-progress-bar{display:flex;flex-direction:row;justify-content:space-between;overflow:hidden;border:1px solid #d2d2d2;height:30px}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-filled{background:#4990E2;background:linear-gradient(to right,#4990E2 0,#DCEEFC 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4990E2, endColorstr=#DCEEFC, GradientType=1);border-right:solid 1px #d2d2d2}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty{position:relative}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty.right .percents{left:10px}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty.right .edit{left:50px}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty .edit{font-size:21px;color:#1370A3;display:inline-block;position:absolute;top:5px;left:-25px;cursor:pointer}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty .percents{position:absolute;top:4px;left:-60px}.steps-progress-wrapper .progress-body-content .steps-progress-bar .progress-empty.full .percents{left:-70px}.steps-stages-wrapper{display:flex;flex-direction:row;justify-content:space-between;overflow:hidden;padding:10px 0 0}.steps-stages-wrapper .steps-stage{width:100%}.steps-stages-wrapper .steps-stage:not(.selected){position:relative}.steps-stages-wrapper .steps-stage:not(.selected) .circle{border-radius:50%;width:34px;height:34px;display:inline-block;background-color:#fff;border:1px dashed #4990E2}.steps-stages-wrapper .steps-stage:not(.selected) .line{border-bottom:dashed 1px #4990E2;position:absolute;top:16px;width:100%}.steps-stages-wrapper .steps-stage:not(.selected) .text{position:absolute;top:-5px;margin-left:10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.steps-stages-wrapper .steps-stage.selected{position:relative}.steps-stages-wrapper .steps-stage.selected .circle{border-radius:50%;width:34px;height:34px;display:inline-block;background-color:#4990E2}.steps-stages-wrapper .steps-stage.selected .line{border-bottom:solid 2px #4990E2;position:absolute;top:16px;width:100%}.steps-stages-wrapper .steps-stage.selected .text{position:absolute;top:-5px;margin-left:10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.steps-stages-wrapper .steps-stage.hover-selected{position:relative;cursor:pointer}.steps-stages-wrapper .steps-stage.hover-selected .circle{border-radius:50%;width:34px;height:34px;display:inline-block;background-color:#4990E2}.steps-stages-wrapper .steps-stage.hover-selected .line{border-bottom:solid 2px #4990E2;position:absolute;top:16px;width:100%}.steps-stages-wrapper .steps-stage.hover-selected .text{position:absolute;top:-5px;margin-left:10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.steps-stages-wrapper .steps-stage.previous-stage{position:relative}.steps-stages-wrapper .steps-stage.previous-stage .circle{border-radius:50%;width:34px;height:34px;display:inline-block;background-color:#fff;border:1px solid #4990E2}.steps-stages-wrapper .steps-stage.previous-stage .line{border-bottom:solid 1px #4990E2;position:absolute;top:16px;width:100%}.steps-stages-wrapper .steps-stage.previous-stage .text{position:absolute;top:-5px;margin-left:10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.steps-stages-wrapper .steps-stage.hover-previous-stage{position:relative;cursor:pointer}.steps-stages-wrapper .steps-stage.hover-previous-stage .circle{border-radius:50%;width:34px;height:34px;display:inline-block;background-color:#fff;border:1px solid #4990E2}.steps-stages-wrapper .steps-stage.hover-previous-stage .line{border-bottom:solid 1px #4990E2;position:absolute;top:16px;width:100%}.steps-stages-wrapper .steps-stage.hover-previous-stage .text{position:absolute;top:-5px;margin-left:10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.addVendorContact .add-button{float:left;background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px}.addVendorContact .remove-button{width:100px;height:40px;line-height:20px;vertical-align:middle;padding-left:10px;float:left}.addVendorContact .login-form{margin-top:20px}.addVendorContact .btn{width:100%}.addVendorContact .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.addVendorContact a.register{text-decoration:underline;float:right;margin:10px 0 0}.add-vf .reject_large{background:url(images/actions-sprite.png) -25px 0 no-repeat;width:15px;height:15px;cursor:pointer}.add-vf .table{margin-bottom:0}.add-vf .table-container-flex .action-row-wrapper,.add-vf .table-container-flex .data-row-wrapper{padding:5px 10px;margin-bottom:5px}.add-vf .table-container-flex .data-row-wrapper:nth-child(even){background:rgba(158,158,158,.28)}.add-vf .table-container-flex .data-row-wrapper:nth-child(odd){border-bottom:1px solid;border-top:1px solid;border-color:#abb8c0}.add-vf .table-container-flex .data-row-wrapper:first-child{border-top:none}.add-vf .table-container-flex .data-row-wrapper:last-child{border-bottom:none}.add-vf .table-container-flex .flex-item{padding-left:0}.add-vf .table-container-flex .flex-item:nth-child(1){padding:5px 15px 5px 0;flex-grow:25}.add-vf .table-container-flex .flex-item:nth-child(2),.add-vf .table-container-flex .flex-item:nth-child(3),.add-vf .table-container-flex .flex-item:nth-child(4),.add-vf .table-container-flex .flex-item:nth-child(5){flex-grow:25}.add-vf .add-vf-confirm-checkbox{display:block;clear:both}.add-vf .add-button{display:block}.add-vf .add-button .add-text{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;vertical-align:top;margin-left:6px}.add-vf .add-button .add-icon{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.add-vf .remove-button{width:100px;height:40px;line-height:20px;vertical-align:middle;padding-left:10px;float:left;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;margin-top:8px;cursor:pointer}.add-vf .remove-button .remove-icon{display:inline-block;vertical-align:text-top;margin-right:6px;background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;cursor:pointer}.add-vf .btn,.contact-us .btn{width:100%}.add-vf .lineColor{margin:2px}.add-vf .addVf-form{margin-top:20px}.add-vf .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.add-vf #skip-add-vf-singup{margin-top:10px;display:block;text-align:left;color:#1370a3;font-family:omnes-regular,sans-serif;font-size:16px}.contact-us .contact-us-form{margin-top:20px}.contact-us .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.inviteMembers .inviteMembers-title{height:130px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.inviteMembers .inviteMembers-title h1{color:#fff;font-family:omnes-light,sans-serif;font-size:24px;margin:20px 0 10px}.inviteMembers .inviteMembers-title h2{color:#fff;font-family:omnes-medium,sans-serif;font-size:16px;margin:0}.inviteMembers .inviteMembers-form,.login .login-form{margin-top:20px}.inviteMembers .add-button:after{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:block}.inviteMembers .remove-button{width:100px;height:40px;line-height:20px;vertical-align:middle;padding-left:10px;float:left}.inviteMembers .btn,.login .btn{width:100%}.inviteMembers .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.login .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.login a.register{float:right;margin:10px 0 0}.login .leftLink,.login .rightLink{width:50%;float:left;padding-top:5px}.login .leftLink{text-align:left}.login .leftLink a,.login .leftLink a:active,.login .leftLink a:focus,.login .leftLink a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer}.login .rightLink{font-size:14px;text-align:right}.register .btn,.resend-activation .btn{width:100%}.login .rightLink a,.login .rightLink a:active,.login .rightLink a:focus,.login .rightLink a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer}.register .phone-place-holder::-webkit-input-placeholder{opacity:.7}.register .phone-place-holder::-moz-placeholder{opacity:.7}.register .phone-place-holder:-moz-placeholder{opacity:.7}.register .phone-place-holder:-ms-input-placeholder{opacity:.7}.register .register-form{margin-top:20px}.register .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.register a,.register a:active,.register a:focus,.register a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer}.register a.login,.register a.login:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;float:right;margin:5px 0 0}.resend-activation .active-form,.resetPassword .resetPassword-form{margin-top:20px}.register .form-group a,.register .form-group a:hover{font-size:14px}.resend-activation .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.resend-activation .leftLink{padding-top:5px;width:50%;text-align:left;float:left}.resetPassword .btn,.terms .btn,.updatePassword .btn{width:100%}.resetPassword a.register,.terms a.register,.updatePassword a.register{float:right;text-decoration:underline}.resetPassword .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.resetPassword a.register{margin:10px 0 0}.resetPassword .leftLink{width:100%;padding-top:5px;text-align:left}.resetPassword .leftLink a,.resetPassword .leftLink a:active,.resetPassword .leftLink a:focus,.resetPassword .leftLink a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer}.resetPassword .leftLink a{text-decoration:underline}.terms .terms-form{margin-top:20px}.terms .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.terms a.register{margin:10px 0 0}.updatePassword .updatePassword-form{margin-top:20px}.updatePassword .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.updatePassword a.register{margin:10px 0 0}.updatePassword .leftLink{padding-top:5px;width:50%;text-align:left;float:left}.updatePassword .leftLink a,.updatePassword .leftLink a:active,.updatePassword .leftLink a:focus,.updatePassword .leftLink a:hover{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;cursor:pointer}.updatePassword .leftLink a{text-decoration:underline}.cl-add-item-line{width:80%}.cl-add-item-line .add-button{background:url(images/icons-sprite-v5.png) -1288px 0 no-repeat;width:17px;height:15px;display:inline-block;cursor:pointer;position:relative;top:3px}.checklist-template-edit-item{padding:5px}.checklist-template-edit-item.edit-template-name{color:#1370a3;font-family:omnes-regular,sans-serif;font-size:24px}.checklist-template-edit-item.edit-section-name{color:#5a5a5a;font-family:omnes-light,sans-serif;font-size:24px}.checklist-template-edit-item.edit-lineitem-name{color:#5a5a5a;font-family:omnes-light,sans-serif;font-size:18px;background-color:#fff;line-height:normal}.checklist-template-edit-item.edit-lineitem-description{color:#5a5a5a;font-family:omnes-light,sans-serif;font-size:18px;width:100%;line-height:normal}.glyphicon-cursor-approve-changes{display:inline-block;cursor:pointer;position:relative;top:3px;float:right}.lineitem-changed-icon{background:url(images/icons-sprite-v5.png) -1390px 0 no-repeat;width:17px;height:15px;display:inline-block;cursor:pointer;position:relative;top:3px;margin-left:-15px}.remove-item,.template-edit-item{width:17px;height:16px;float:right;display:inline-block;top:3px;position:relative;cursor:pointer}.remove-item{background:url(images/icons-sprite-v5.png) -1341px 0 no-repeat;margin-right:1%}.template-edit-item{background:url(images/icons-sprite-v5.png) -288px 0 no-repeat}.add-another-section{background:url(images/icons-sprite-v5.png) -1313px 0 no-repeat;width:19px;height:18px;display:inline-block;cursor:pointer;position:relative;top:3px}.another-section{border-top:1px dashed;padding-top:.5%}.checklist-template{height:100%}.checklist-template #checklist-main-section{padding-left:12px}.checklist-template .ice-form-error{text-transform:none}.checklist-template .section-topic{padding-left:4%;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:24px}.checklist-template .lineitem-index{padding-left:5%}.checklist-template #cl-header .checklist-template-topic #cl-title,.checklist-template .lineitem-icon-and-index{padding-left:0}.checklist-template #cl-header{height:12%;padding-top:1%;padding-bottom:2%}.checklist-template #cl-header .checklist-template-topic{border-right:1px solid}.checklist-template #cl-header .checklist-template-topic #cl-title .template-name{color:#1370a3;font-family:omnes-regular,sans-serif;font-size:24px}.checklist-template #cl-header .checklist-template-topic #cl-title .template-topic{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.checklist-template #cl-header .checklist-template-topic .edit-checklist{display:inline-block;margin-right:5px;cursor:pointer}.checklist-template #state-actions .btn{width:100%}.checklist-template .action-buttons{width:100%;margin-bottom:7px}.checklist-template .add-icon,.checklist-template h2 .add-people,.checklist-template h2 .add-step{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.checklist-template .add-button{margin-top:8px}.checklist-template .add-button .add-text{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;vertical-align:top;margin-left:6px}.checklist-template #cl-title h1{color:#1370a3;font-family:omnes-regular,sans-serif;font-size:24px;margin:0 0 30px}.checklist-template h3{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.checklist-template h2{margin:0 0 10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.checklist-template h2 .add-people,.checklist-template h2 .add-step{margin-left:8px;cursor:pointer}.checklist-template .main-section{margin-top:30px}#state-bar{float:none;height:5%}#cl-header>#cl-title>span.bold{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.cl-action-buttons-frame{list-style:none;display:inline;padding-top:20px}#line-item-list{list-style:none;padding-right:15px}#line-item-list>li{margin-bottom:25px}#line-item-list>li>h2{text-transform:capitalize;border-bottom:1px solid;border-color:#abb8c0;width:100%;margin-bottom:0;padding-left:5px;color:#5a5a5a;font-family:omnes-light,sans-serif;font-size:24px}#line-item-list>li>h2>span.bold{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:24px}#line-item-list>li>ul{list-style:none}#line-item-list>li>ul>li.line-item-row{border-bottom:1px solid;border-color:#abb8c0;line-height:30px;padding:0;vertical-align:middle;height:30px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;cursor:pointer}#line-item-list>li>ul>li.line-item-row .value-icon{padding:0}#line-item-list>li>ul>li.line-item-row .value-icon span{display:inline-block;position:relative;top:3px;margin-right:5px;margin-left:3px;width:15px;height:15px}#line-item-list>li>ul>li.line-item-row .auto-icon{text-align:right;padding:0}#line-item-list>li>ul>li.line-item-row .auto-icon span{display:inline-block;position:relative;top:3px;margin-right:3px}#line-item-list>li>ul>li.line-item-row.selected-line{background-color:#EEF9FF;border-left:2px solid;border-top:2px solid;border-bottom:2px solid;border-color:#1370a3;position:relative;z-index:1;top:-1px;left:-2px}#line-item-list>li>ul>li.line-item-row.selected-line>.selected-line-connector{position:absolute;right:-19px;width:20px;height:30px;top:-2px;background-color:#EEF9FF;border-top:2px solid;border-bottom:2px solid;border-color:#1370a3}#line-item-extended{background-color:#EEF9FF;border:2px solid #1370a3;padding:15px}#line-item-extended>header{padding:0 30px}#line-item-extended>header>h2{text-transform:capitalize;padding:0;margin:0;line-height:32px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}#line-item-extended>header>h2>span.bold{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}#line-item-extended>header>#decision-actions{list-style:none;text-align:right;margin:0}#line-item-extended>header>#decision-actions>li{display:inline-block;margin-left:2px;background:url(images/icons-sprite-v5.png) top left no-repeat;width:20px;height:20px}.btn-gradient-primary,.checkList .btn-gradient-primary{font-weight:700;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x}#line-item-extended>header>#decision-actions.active>li{cursor:pointer}#line-item-extended>header>#decision-actions>li.not-relevant-btn{background-position:-1079px 0;width:25px;height:25px}#line-item-extended>header>#decision-actions.active>li.not-relevant-btn:hover,#line-item-extended>header>#decision-actions>li.not-relevant-btn.active{background-position:-1044px 0;width:25px;height:25px}#line-item-extended>header>#decision-actions>li.denied-cl-btn{background-position:-939px 0;width:25px;height:25px}#line-item-extended>header>#decision-actions.active>li.denied-cl-btn:hover,#line-item-extended>header>#decision-actions>li.denied-cl-btn.active{background-position:-904px 0;width:25px;height:25px}#line-item-extended>header>#decision-actions>li.approved-cl-btn{background-position:-1009px 0;width:25px;height:25px}#line-item-extended>header>#decision-actions.active>li.approved-cl-btn:hover,#line-item-extended>header>#decision-actions>li.approved-cl-btn.active{background-position:-974px 0;width:25px;height:25px}#line-item-extended>#line-item-description{margin:0 15px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}#line-item-extended>#line-item-validation-instructions{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;background-color:#fff;border:1px solid #1370a3;padding:15px;margin-top:15px}#line-item-extended>#line-item-audit-logs>h3,#line-item-extended>#line-item-validation-instructions h3{text-transform:capitalize;font-size:18px;font-family:omnes-medium,sans-serif;color:#5a5a5a}#line-item-extended>#line-item-validation-instructions h3{margin:0}#line-item-extended>#line-item-validation-instructions p{margin-top:5px}#line-item-extended>#line-item-validation-instructions p ul{padding-left:15px}#line-item-extended>#line-item-audit-logs{padding:0 15px}#line-item-extended>#line-item-audit-logs>#audit-log-list{list-style:none}#line-item-extended>#line-item-audit-logs>#audit-log-list>li{margin:0 15px 10px;border-bottom:2px solid;border-color:#abb8c0}#line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-creator{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;margin:0;padding:0}#line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-date{text-align:right;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;padding:0}#line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-text{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;margin-bottom:0;padding:0}#line-item-extended>#line-item-audit-logs>#new-audit-log-from{margin:0 0 15px}#line-item-extended>#line-item-audit-logs>#new-audit-log-from #new-audit-log-text{border-color:#abb8c0;margin-bottom:15px}.btn-gradient-primary{color:#FFF;background-color:#37B2E5;background-image:linear-gradient(to bottom,#0079AB,#37B2E5);border-color:#37B2E5;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0079AB', endColorstr='#37B2E5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.account .btn{width:100%}.account .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.account .content .steps-progress-wrapper{margin-top:10px}.account .content h1{color:#1370a3;font-family:omnes-light,sans-serif;font-size:36px;margin:0 0 30px}.account .content h2,.account .content h3{color:#1370a3;font-family:omnes-medium,sans-serif}.account .content h2{margin:0 0 10px;font-size:24px;position:relative}.account .content h2 .add-people,.account .content h2 .add-step{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block;margin-left:8px;cursor:pointer}.account .content h3{font-size:20px}.account .content .main-section{margin-top:30px}.account .content .steps{border-right:dashed 1px #1370a3;height:100%;padding-right:20px}.account .content .steps ul li.step .description .step-state.completed,.account .content .steps ul li.step .description .step-state.completed-non-el,.account .content .steps ul li.step .description .step-state.confirmed,.account .content .steps ul li.step .description .step-state.todo{background-image:url(images/steps-sprite.png);background-repeat:no-repeat;width:12px;height:12px;display:inline-block}.account .content .steps ul li.step{list-style:none;position:relative;padding:10px 10px 10px 4px}.account .content .steps ul li.step.selected{background-color:#DEF3FF}.account .content .steps ul li.step .description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;border-bottom:dashed 1px #959595;padding:10px 0}.account .content .steps ul li.step .description input{position:absolute;top:10px;left:0;margin-right:20px}.account .content .steps ul li.step .description .step-text{margin-left:20px}.account .content .steps ul li.step .description .step-state{position:absolute;top:24px}.account .content .steps ul li.step .description .step-state.todo{background-position:-71px -5px}.account .content .steps ul li.step .description .step-state.confirmed{background-position:-5px -5px}.account .content .steps ul li.step .description .step-state.completed{background-position:-27px -5px}.account .content .steps ul li.step .description .step-state.completed-non-el{background-position:-49px -5px}.account .content .steps ul li.step .details{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px;margin-bottom:20px}.account .content .steps ul li.step .details .actions{float:right;margin-top:4px}.account .content .steps ul li.step .details .actions .moveto-confirmed{background:url(images/icons-sprite-v5.png) -208px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.account .content .steps ul li.step .details .actions .moveto-todo{background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.account .content .steps ul li.step .details .actions .moveto-delete{background:url(images/icons-sprite-v5.png) -233px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.account .content .right-panel{height:100%;padding-left:20px;padding-bottom:5px}.account .content .right-panel .personImage{background:url(images/profiles-sprite.png) 0 -88px no-repeat;width:150px;height:140px;display:block}.account .content .right-panel .line-separator{border-bottom:solid #d3d3d3;margin:20px 0}.account .content .right-panel .storage-credentials{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}.account .content .right-panel .access-key,.account .content .right-panel .access-secret{margin-bottom:10px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.account .content .right-panel .show-secret{cursor:pointer}.engagement_link{text-decoration:underline;cursor:pointer}.notifications .table{margin-bottom:0}.notifications .table-container-flex .data-row-wrapper{padding:10px 20px}.notifications .table-container-flex .flex-item:nth-child(1){padding-left:5px;padding-top:15px;flex-grow:2}.notifications .table-container-flex .flex-item:nth-child(2){padding-top:12px;flex-grow:93}.notifications .table-container-flex .flex-item:nth-child(3){padding-top:12px;flex-grow:5}.notifications .pagination>.active>a,.notifications .pagination>.active>a:focus,.notifications .pagination>.active>a:hover,.notifications .pagination>.active>span,.notifications .pagination>.active>span:focus,.notifications .pagination>.active>span:hover{background-color:#DEF3FF;border-color:#DDD;color:#000;cursor:pointer;z-index:2}.notifications .btn{width:100%}.notifications .lineColor{background-color:#F6F3F3}.notifications .electricity{background:url(images/icons-sprite-v5.png) -90px 0 no-repeat;width:20px;height:20px;display:block;margin-top:10px;margin-left:10px}.notifications .delete{background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;display:block;cursor:pointer;margin-top:11px}.notifications .fLeft{float:left;height:50px}.notifications .hoverCyan{line-height:40px}.notifications .hoverCyan:hover{background-color:#DEF3FF}.notifications .boldFont{font-weight:700}.notifications .marginLeft60{margin-left:-60px}.notifications .height510{height:510px;margin-top:-30px}.notifications .height50{height:50px;line-height:50px;width:1100px}.notifications .marginLeft5{margin-left:5px}.notifications .marginTop5{margin-top:5px;margin-left:40px}.notifications .personImage{background:url(images/profiles-sprite.png) 0 -88px no-repeat;width:150px;height:140px;display:block}.notifications .textAlignCenter{text-align:center;width:1100px}.notifications .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.notifications .pad17{padding-top:17px;display:block}.notifications .content .steps-progress-wrapper{margin-top:10px}.notifications .content h1{color:#1370a3;font-family:omnes-light,sans-serif;font-size:36px;margin:0 0 30px}.notifications .content h2{margin:0 0 10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.notifications .content h2 .add-people,.notifications .content h2 .add-step{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block;margin-left:8px;cursor:pointer}.notifications .content .main-section{margin-top:30px}.notifications .content .steps{height:100%;padding-right:20px}.notifications .content .steps ul li.step .description .step-state.completed,.notifications .content .steps ul li.step .description .step-state.completed-non-el,.notifications .content .steps ul li.step .description .step-state.confirmed,.notifications .content .steps ul li.step .description .step-state.todo{background-image:url(images/steps-sprite.png);background-repeat:no-repeat;width:12px;height:12px;display:inline-block}.notifications .content .steps ul li.step{list-style:none;position:relative;padding:10px 10px 10px 4px}.notifications .content .steps ul li.step.selected{background-color:#DEF3FF}.notifications .content .steps ul li.step .description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;padding:10px 0}.notifications .content .steps ul li.step .description input{position:absolute;top:10px;left:0;margin-right:20px}.notifications .content .steps ul li.step .description .step-text{margin-left:20px}.notifications .content .steps ul li.step .description .step-state{position:absolute;top:24px}.notifications .content .steps ul li.step .description .step-state.todo{background-position:-71px -5px}.notifications .content .steps ul li.step .description .step-state.confirmed{background-position:-5px -5px}.notifications .content .steps ul li.step .description .step-state.completed{background-position:-27px -5px}.notifications .content .steps ul li.step .description .step-state.completed-non-el{background-position:-49px -5px}.notifications .content .steps ul li.step .details{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px;margin-bottom:20px}.notifications .content .steps ul li.step .details .actions{float:right;margin-top:4px}.notifications .content .steps ul li.step .details .actions .moveto-confirmed{background:url(images/icons-sprite-v5.png) -208px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.notifications .content .steps ul li.step .details .actions .moveto-todo{background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.notifications .content .steps ul li.step .details .actions .moveto-delete{background:url(images/icons-sprite-v5.png) -233px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}.notifications .content .team-and-logs{height:100%;padding-left:20px}.notifications .content .team-and-logs .team ul.team-avatars li{list-style:none;display:inline-block;margin-right:10px;background:url(images/profiles-sprite.png) 0 -238px no-repeat;width:40px;height:40px}.notifications .content .team-and-logs .team ul.team-avatars li.me{background:url(images/profiles-sprite.png) no-repeat;width:40px;height:40px}.notifications .content .team-and-logs .activity-log ul.activity-log-details li{list-style:none;position:relative;margin-left:30px}.notifications .content .team-and-logs .activity-log ul.activity-log-details li:before{content:'';display:inline-block;background:url(images/icons-sprite-v5.png) -90px 0 no-repeat;width:20px;height:20px;position:absolute;top:0;left:-30px}.user-profile-settings-form .receive-email-options{padding-left:20px}.cl-action-button{width:30%;margin-bottom:2%;margin-right:3%}.cl-action-button:last-child{margin-right:0}#main .popover{max-width:330px}.popover{border:2px solid #15B3E8;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;z-index:100000}.popover .popover-title{background-color:#fff;margin-top:5px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 10px}.popover .popover-content,.popover .popover-content ul{font-family:omnes-regular,sans-serif;font-size:16px;color:#5a5a5a}.popover .popover-content{padding:5px 10px}.popover .popover-content ul{list-style-type:none;padding-left:0;margin-left:0;word-wrap:break-word}.cl-action-control{padding-left:8%}.checkList{height:100%;padding:0 20px}.checkList>#checklist-main-section{height:80%!important}.checkList .blocked-area{pointer-events:none;opacity:.5;filter:alpha(opacity=50);background-color:#fff}.checkList #modal_header_checklist{margin-top:0;padding:0 29px}.checkList #modal-header-checklist-15{margin-top:0;padding:0 15px}.checkList .lineColor{background-color:#F6F3F3}.checkList .font_header{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.checkList .font_header_chk_name{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}.checkList .font_user_name{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.checkList .font_date,.checkList .font_desc{font-family:omnes-regular,sans-serif;color:#5a5a5a}.checkList .font_date{font-size:14px}.checkList .font_line{border-bottom:1px solid grey}.checkList .font_desc{font-size:16px;text-align:left}.checkList .pad0{padding:0}.checkList .dash{border-bottom:dashed 1px;border-color:#abb8c0;padding:0}.checkList #modal-title{margin:0}.checkList .checkList-form{max-height:100%}.checkList .checkList-form #checklist-subject{padding:0 15px;margin-bottom:0}.checkList .checkList-form .checklist-modal-multi-select{margin-top:1%}.checkList .checkList-form .checklist-modal-multi-select .btn-group .btn{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px}.checkList .checkList-form .add-button .add-text,.checkList .checkList-form .font_title{font-family:omnes-medium,sans-serif;font-size:16px;color:#1370a3}.checkList .checkList-form .btn{width:100%}.checkList .checkList-form .action-buttons{width:100%;margin-bottom:7px}.checkList .checkList-form .col-no-pad{padding:0}.checkList .checkList-form .col-no-top{margin:0}.checkList .checkList-form .text-right{text-align:right}.checkList .checkList-form .modal-header{display:flex;flex-direction:row}.checkList .checkList-form .modal-header h2,.checkList .checkList-form .modal-header h3{display:inline-block;flex-grow:10}.checkList .checkList-form .add-icon{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.checkList .checkList-form .add-button{margin-top:8px;display:block}.checkList .checkList-form .add-button .add-text{vertical-align:top;margin-left:6px}.checkList .checkList-form .margin_btm{margin-bottom:12px}.checkList .checkList-form .margin_top{margin-top:12px}.checkList .checkList-form .margin_btm5{margin-bottom:5px}.checkList .checkList-form .personImage{background:url(images/profiles-sprite.png) 0 -88px no-repeat;width:150px;height:140px;display:block}.checkList .checkList-form .table{margin-bottom:0}.checkList .checkList-form .table-container-flex .data-row-wrapper{padding:10px 20px}.checkList .checkList-form .table-container-flex .flex-item:nth-child(1){padding-left:0;flex-grow:25}.checkList .checkList-form .table-container-flex .flex-item:nth-child(2),.checkList .checkList-form .table-container-flex .flex-item:nth-child(3),.checkList .checkList-form .table-container-flex .flex-item:nth-child(4){flex-grow:25}.checkList .checkList-form .table-container-flex-a .data-row-wrapper{padding:10px 20px}.checkList .checkList-form .table-container-flex-a .flex-item-a:nth-child(1){padding-left:0;flex-grow:40;width:90%;float:left}.checkList .checkList-form .table-container-flex-a .flex-item-a:nth-child(2){flex-grow:25;width:10%;float:left}.checkList .checkList-form .remove-icon{cursor:pointer;vertical-align:text-top;background:url(images/actions-sprite.png) no-repeat;width:15px;height:15px;display:block;position:relative;top:11px}.checkList .checkList-form .flex-item-a:nth-child(0){padding-left:0;flex-grow:40;width:80%}.checkList .checkList-form .flex-item-a:nth-child(1){flex-grow:25;width:20%}.checkList .checkList-form .steps-progress-wrapper{margin-top:10px}.checkList .checkList-form .fnt{font-size:20px}.checkList .checkList-form h1{color:#1370a3;font-family:omnes-light,sans-serif;font-size:36px;margin:0 0 30px}.checkList .checkList-form h3{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.checkList .checkList-form h2{margin:0 0 10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.checkList .checkList-form h2 .add-people,.checkList .checkList-form h2 .add-step{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block;margin-left:8px;cursor:pointer}.checkList .checkList-form .main-section{margin-top:30px}.checkList #state-bar{float:none;height:5%}.checkList #state-bar>ul{border-bottom:dashed 1px;border-color:#abb8c0;padding-bottom:2px}.checkList #state-bar>ul>li{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;text-transform:uppercase;text-align:left}.checkList #state-bar>ul>li.active{font-family:omnes-bold,sans-serif}.checkList #state-bar>ul>li>.state-icon{display:inline-block;position:relative;top:2px;margin-right:5px}.checkList #cl-header{height:12%;padding-top:1%}.checkList #cl-header>#cl-title{padding-left:0;color:#1370a3;font-family:omnes-light,sans-serif;font-size:24px}.checkList #cl-header>#cl-title>span.bold{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.checkList #cl-header>#cl-title>#edit-checklist{display:inline-block;margin-right:5px;cursor:pointer}.checkList #cl-side-actions{list-style:none;margin-top:5px}.checkList #cl-side-actions>li{display:inline-block;margin-left:5px;color:#959595;font-family:omnes-medium,sans-serif;font-size:12px}.checkList .cl-action-buttons-frame{list-style:none;text-align:right}.checkList .cl-btn-associated{border-bottom:1px solid;border-color:#000;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:26px}.checkList .cl-btn-cl-audit{margin-right:15%;border-bottom:1px solid;border-color:#000}.checkList #state-actions{display:inline-block;border-bottom:1px solid;border-color:#abb8c0;padding-bottom:5px}.checkList #state-actions button{margin-left:10px}.checkList #state-actions button:first-child{margin-left:0}.checkList #cl-side-actions span{cursor:pointer;border-bottom:2px solid #5a5a5a;border-bottom:1px solid;border-color:#abb8c0}.checkList #line-item-list{list-style:none;padding-right:15px}.checkList #line-item-list>li{margin-bottom:25px}.checkList #line-item-list>li>h2{text-transform:capitalize;border-bottom:1px solid;border-color:#abb8c0;width:100%;margin-bottom:0;padding-left:5px;color:#5a5a5a;font-family:omnes-light,sans-serif;font-size:24px}.checkList #line-item-list>li>h2>span.bold{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:24px}.checkList #line-item-list>li>ul{list-style:none}.checkList #line-item-list>li>ul>li.line-item-row{border-bottom:1px solid;border-color:#abb8c0;line-height:30px;padding:0;vertical-align:middle;height:30px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;cursor:pointer}.checkList #line-item-list>li>ul>li.line-item-row .value-icon{padding:0}.checkList #line-item-list>li>ul>li.line-item-row .value-icon span{display:inline-block;position:relative;top:3px;margin-right:5px;margin-left:3px;width:15px;height:15px}.checkList #line-item-list>li>ul>li.line-item-row .auto-icon{text-align:right;padding:0}.checkList #line-item-list>li>ul>li.line-item-row .auto-icon span{display:inline-block;position:relative;top:3px;margin-right:3px}.checkList #line-item-list>li>ul>li.line-item-row.selected-line{background-color:#EEF9FF;border-left:2px solid;border-top:2px solid;border-bottom:2px solid;border-color:#1370a3;position:relative;z-index:1;top:-1px;left:-2px}.checkList #line-item-list>li>ul>li.line-item-row.selected-line>.selected-line-connector{position:absolute;right:-19px;width:20px;height:30px;top:-2px;background-color:#EEF9FF;border-top:2px solid;border-bottom:2px solid;border-color:#1370a3}.checkList #line-item-extended{background-color:#EEF9FF;border:2px solid #1370a3;padding:15px}@media (min-width:992px){#line-item-extended,.checkList #line-item-extended{max-height:100%;overflow-y:auto}}.checkList #line-item-extended>header{padding:0 30px}.checkList #line-item-extended>header>h2{text-transform:capitalize;padding:0;margin:0;line-height:32px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}.checkList #line-item-extended>header>h2>span.bold{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.checkList #line-item-extended>header>#decision-actions{list-style:none;text-align:right;margin:0}.checkList #line-item-extended>header>#decision-actions>li{display:inline-block;margin-left:2px;background:url(images/icons-sprite-v5.png) top left no-repeat;width:20px;height:20px}.checkList #line-item-extended>header>#decision-actions.active>li{cursor:pointer}.checkList #line-item-extended>header>#decision-actions>li.not-relevant-btn{background-position:-1079px 0;width:25px;height:25px}.checkList #line-item-extended>header>#decision-actions.active>li.not-relevant-btn:hover,.checkList #line-item-extended>header>#decision-actions>li.not-relevant-btn.active{background-position:-1044px 0;width:25px;height:25px}.checkList #line-item-extended>header>#decision-actions>li.denied-cl-btn{background-position:-939px 0;width:25px;height:25px}.checkList #line-item-extended>header>#decision-actions.active>li.denied-cl-btn:hover,.checkList #line-item-extended>header>#decision-actions>li.denied-cl-btn.active{background-position:-904px 0;width:25px;height:25px}.checkList #line-item-extended>header>#decision-actions>li.approved-cl-btn{background-position:-1009px 0;width:25px;height:25px}.checkList #line-item-extended>header>#decision-actions.active>li.approved-cl-btn:hover,.checkList #line-item-extended>header>#decision-actions>li.approved-cl-btn.active{background-position:-974px 0;width:25px;height:25px}.checkList #line-item-extended>#line-item-description{margin:0 15px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.checkList #line-item-extended>#line-item-validation-instructions{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;background-color:#fff;border:1px solid #1370a3;padding:15px;margin-top:15px}.checkList #line-item-extended>#line-item-audit-logs>h3,.checkList #line-item-extended>#line-item-validation-instructions h3{text-transform:capitalize;font-size:18px;font-family:omnes-medium,sans-serif;color:#5a5a5a}.checkList #line-item-extended>#line-item-validation-instructions h3{margin:0}.checkList #line-item-extended>#line-item-validation-instructions p{margin-top:5px}.checkList #line-item-extended>#line-item-validation-instructions p ul{padding-left:15px}.checkList #line-item-extended>#line-item-audit-logs{padding:0 15px}.checkList #line-item-extended>#line-item-audit-logs>#audit-log-list{list-style:none}.checkList #line-item-extended>#line-item-audit-logs>#audit-log-list>li{margin:0 15px 10px;border-bottom:2px solid;border-color:#abb8c0}.checkList #line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-creator{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;margin:0;padding:0}.checkList #line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-date{text-align:right;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px;padding:0}.checkList #line-item-extended>#line-item-audit-logs>#audit-log-list>li>.audit-text{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;margin-bottom:0;padding:0}.checkList #line-item-extended>#line-item-audit-logs>#new-audit-log-from{margin:0 0 15px}.checkList #line-item-extended>#line-item-audit-logs>#new-audit-log-from #new-audit-log-text{border-color:#abb8c0;margin-bottom:15px}.checkList .btn-gradient-primary{color:#FFF;background-color:#37B2E5;background-image:linear-gradient(to bottom,#0079AB,#37B2E5);border-color:#37B2E5;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0079AB', endColorstr='#37B2E5', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.checkList .btn-gradient-danger,.checkList .btn-gradient-success{text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x;border-color:#888;font-weight:700}.checkList .btn-gradient-success{color:#FFF;background-color:#41A02C;background-image:linear-gradient(to bottom,#A2E652,#41A02C);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.checkList .btn-gradient-danger,.checkList .btn-sample.active,.checkList .btn-sample.disabled,.checkList .btn-sample:active,.checkList .btn-sample:focus,.checkList .btn-sample:hover,.checkList .btn-sample[disabled]{color:#FFF;background-color:#AE0020}.checkList .btn-gradient-danger{background-image:linear-gradient(to bottom,#F74658,#AE0020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.dashboard .content-container #content{overflow-y:auto}.dashboard-view{padding:10px}.dashboard-view .steps-progress-wrapper{border:none;background-color:#fff}.dashboard-view #dashboard-main-panel #dashboard-header #dashboard-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:26px;margin:0;line-height:40px}.dashboard-view #dashboard-main-panel #dashboard-header .search-filters{text-align:right;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;line-height:40px}.dashboard-view #dashboard-main-panel #dashboard-header .search-filters #search-filter-keyword,.dashboard-view #dashboard-main-panel #dashboard-header .search-filters .search-filter-stage{margin-left:10px;display:inline-block;width:40%}.dashboard-view #dashboard-main-panel #search-results .progress-bar-row{padding:0}.dashboard-view #dashboard-main-panel #search-results .progress-bar-row:nth-child(even) .steps-progress-wrapper{background-color:#f2f2f2}.dashboard-view #dashboard-main-panel #search-results #export-to-csv{text-align:right;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px;text-decoration:underline;cursor:pointer}.dashboard-view #dashboard-main-panel #search-results #engagements-pagination{text-align:center}.dashboard-view #dashboard-side-panel #statistics #statistics-header .search-filters,.dashboard-view #dashboard-side-panel #statistics #statistics-list .statistic-count{text-align:right}.dashboard-view #dashboard-main-panel #search-results #engagements-pagination .pagination{margin:0}.dashboard-view #dashboard-side-panel{border-left:solid 1px #9B9B9B}.dashboard-view #dashboard-side-panel #assgined-nextsteps{border:1px solid #4990E2;padding:0}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-header{background-color:#4990E2;color:#fff;font-family:omnes-medium,sans-serif;font-size:22px;padding:10px 10px 0}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list{list-style:none;padding:0 15px}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details{border-bottom:1px dashed #1370a3;padding-bottom:10px}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details .next-step-details-header .engagement-title{cursor:pointer;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px;margin-top:15px;margin-bottom:0}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details .next-step-details-header .engagement-title .engagement-name{text-decoration:underline}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details .next-step-details-header .due-date{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px;margin-top:10px;margin-bottom:0;text-align:right}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details .next-step-description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px;margin:3px 0;line-height:20px}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details .next-step-creation{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px}.dashboard-view #dashboard-side-panel #assgined-nextsteps #next-steps-list .next-step-details:last-child{padding:0;border:none}.dashboard-view #dashboard-side-panel .line-seperator{border-bottom:dashed 1px #9B9B9B;margin:20px 0}.dashboard-view #dashboard-side-panel #statistics{border:1px solid #9B9B9B;padding:15px}.dashboard-view #dashboard-side-panel #statistics #statistics-header{margin-bottom:10px}.dashboard-view #dashboard-side-panel #statistics #statistics-header h2{font-family:omnes-medium,sans-serif;font-size:24px;color:#9B9B9B;margin:0}.dashboard-view #dashboard-side-panel #statistics #statistics-header .search-filters .search-filter-stage{margin-left:10px;width:50%}#detailed-view{padding:0 30px}#detailed-view .glyphicon-cursor-detailed-view{cursor:pointer;margin-left:.5%}#detailed-view .detailed-view-edit-mode{cursor:pointer;margin-left:.5%;display:inline-block;position:relative;top:3px;background:url(images/icons-sprite-v5.png) -288px 0 no-repeat;width:17px;height:16px}#detailed-view .hide-element{display:none}#detailed-view .show-select{display:block;margin-bottom:3%}#detailed-view .row>h1{padding:0;margin-bottom:0;color:#1370a3;font-family:omnes-light,sans-serif;font-size:36px}#detailed-view .remove-button,#detailed-view .row>h1 .bold,#detailed-view .steps-header .steps-filter,#detailed-view h2{color:#1370a3;font-family:omnes-medium,sans-serif}#detailed-view .row>h1 .bold{font-size:36px}#detailed-view .remove-button{height:10px;font-size:16px;cursor:pointer}#detailed-view .remove-button .remove-icon{background:url(images/icons-sprite-v5.png) -233px 0 no-repeat;width:15px;height:15px;cursor:pointer;display:block;position:relative}#detailed-view .steps-progress-wrapper{margin-top:10px}#detailed-view h2{display:inline-block;margin:0 0 10px;font-size:24px;font-size:20px;position:relative}#detailed-view h2 .add-vfc{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block;margin-left:8px;cursor:pointer;position:relative;top:3px}#detailed-view .main-section{margin-top:30px}#detailed-view .steps-header .steps-filter{display:inline-block;float:right;font-size:16px}#detailed-view .steps-header .steps-filter .todo{background:url(images/icons-sprite-v5.png) -406px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}#detailed-view .steps-header .steps-filter .completed{background:url(images/icons-sprite-v5.png) -384px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}#detailed-view .steps-header .steps-filter .confirmed{background:url(images/icons-sprite-v5.png) -340px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}#detailed-view .vfc-column{height:100%;padding-right:20px;padding-left:20px;padding-top:20px}#detailed-view .vfc-column ul li.step{list-style:none;position:relative;padding:5px 10px 0 4px;font-size:16px}#detailed-view .vfc-steps{border-right:dashed 1px #1370a3;height:100%;padding-right:20px;padding-left:0;padding-top:20px}#detailed-view .vfc-steps ul li.step .description .step-state.completed,#detailed-view .vfc-steps ul li.step .description .step-state.completed-non-el,#detailed-view .vfc-steps ul li.step .description .step-state.confirmed,#detailed-view .vfc-steps ul li.step .description .step-state.todo{background-image:url(images/steps-sprite.png);background-repeat:no-repeat;width:12px;height:12px;display:inline-block}#detailed-view .vfc-steps ul li.step{list-style:none;position:relative;padding:5px 10px 0 4px;font-size:16px}#detailed-view .vfc-steps ul li.step:hover{background-color:#DEF3FF}#detailed-view .vfc-steps ul li.step:hover .details .actions span{visibility:visible}#detailed-view .vfc-steps ul li.step.completed{background-color:#ddd;opacity:.7}#detailed-view .vfc-steps ul li.step .description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;border-bottom:dashed 1px #959595;padding:10px 0}#detailed-view .vfc-steps ul li.step .description input{position:absolute;top:10px;left:0;margin-right:20px}#detailed-view .vfc-steps ul li.step .description .step-text{margin-left:20px}#detailed-view .vfc-steps ul li.step .description .step-state{position:absolute;top:24px}#detailed-view .vfc-steps ul li.step .description .step-state.todo{background-position:-71px -5px}#detailed-view .vfc-steps ul li.step .description .step-state.confirmed{background-position:-5px -5px}#detailed-view .vfc-steps ul li.step .description .step-state.completed{background-position:-27px -5px}#detailed-view .vfc-steps ul li.step .description .step-state.completed-non-el{background-position:-49px -5px}#detailed-view .vfc-steps ul li.step .details{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px;margin:6px 0 10px}#detailed-view .vfc-steps ul li.step .details .actions{float:right;margin-top:2px}#detailed-view .vfc-steps ul li.step .details .actions span{visibility:hidden}#detailed-view .vfc-steps ul li.step .details .actions .moveto-confirmed{background:url(images/actions-sprite.png) -50px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}#detailed-view .vfc-steps ul li.step .details .actions .moveto-todo{background:url(images/actions-sprite.png) -25px 0 no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}#detailed-view .vfc-steps ul li.step .details .actions .moveto-delete{background:url(images/actions-sprite.png) no-repeat;width:15px;height:15px;display:inline-block;cursor:pointer}#detailed-view #deployment-targets{border:1px solid #9B9B9B;padding:0;margin-bottom:20px}#detailed-view #deployment-targets #deployment-targets-header{background-color:#9B9B9B;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}#detailed-view #deployment-targets #deployment-targets-header .edit-target-completion{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}#detailed-view #deployment-targets #deployment-targets-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}#detailed-view #virtual-function-components{border:1px solid #98C678;padding:0;margin-bottom:20px}#detailed-view #virtual-function-components #virtual-function-header{background-color:#98C678;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}#detailed-view #virtual-function-components #virtual-function-header .edit-target-completion{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}#detailed-view #virtual-function-components #virtual-function-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}#detailed-view #target-lab-entry{border:1px solid #FAC05F;padding:0;margin-bottom:20px}#detailed-view #target-lab-entry #target-lab-entry-header{background-color:#FAC05F;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}#detailed-view #target-lab-entry #target-lab-entry-header .edit-target-completion{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}#detailed-view #target-lab-entry #target-lab-entry-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}#detailed-view #validation-details{border:1px solid #4990E2;padding:0;margin-bottom:20px}#detailed-view #validation-details #validation-details-header{background-color:#4990E2;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}#detailed-view #validation-details #validation-details-header .edit-target-completion{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}#detailed-view #validation-details #validation-details-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}#detailed-view .team-and-logs .line,.getting-started-wizard .inviteMembers-form .input-wrapper{margin-bottom:10px}#detailed-view .team-and-logs{height:100%;padding-left:20px;padding-top:20px;margin-left:-1px;border-left:dashed 1px #1370a3}#detailed-view .add-next-step-form .ice-wysiwyg{height:200px}#detailed-view .add-next-step-form .ice-wysiwyg .wysiwyg-menu>div{background-color:#f1f1f1;padding:2px}#detailed-view .vfc-main-section{margin-top:0}.dev-button{position:absolute;top:0;left:0}.reject_large{background:url(images/actions-sprite.png) -25px 0 no-repeat;width:15px;height:15px;cursor:pointer}.modal-content .getting-started-wizard .modal-header{display:flex;flex-direction:row}.modal-content .getting-started-wizard .modal-header h2,.modal-content .getting-started-wizard .modal-header h3{display:inline-block;flex-grow:10}.modal-content .getting-started-wizard .modal-body .btn{width:100%}.modal-content .getting-started-wizard .modal-body .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.getting-started-wizard md-datepicker.btn.datepicker_btn .md-datepicker-input{width:100%;text-align:center;line-height:32px}.getting-started-wizard #vf-name-title{font-size:16px}.getting-started-wizard #title-key-metadata{font-size:16px;position:relative;top:20px;left:30px;background:#fff;padding:0 20px;margin-top:-15px}.getting-started-wizard .addVendorContact-form button,.getting-started-wizard .inviteMembers-form button{margin-top:10px}.getting-started-wizard .fields_key_metadata{border:1px solid #ccc;padding:26px 10px}.getting-started-wizard .container{width:auto}.getting-started-wizard .container .col-md-2{width:0}.getting-started-wizard .container .col-md-8{width:100%}.getting-started-wizard .container .table-container-flex .flex-item{padding:5px}.getting-started-wizard .container .remove-button{display:none}.getting-started-wizard .table-container-flex .flex-item:nth-child(1){padding-left:0;flex-grow:33}.getting-started-wizard .table-container-flex .flex-item:nth-child(2),.getting-started-wizard .table-container-flex .flex-item:nth-child(3){flex-grow:33}.getting-started-wizard ul.step-indication{list-style:none;display:inline-block}.getting-started-wizard ul.step-indication li{display:inline-block;background-color:#DDD;width:30px;height:30px;margin-right:10px;padding:6px 11px;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:14px}.getting-started-wizard .addVendorContact-form,.getting-started-wizard .inviteMembers-form{padding:20px 0 0}.getting-started-wizard ul.step-indication li.selected{color:#fff;font-family:omnes-medium,sans-serif;font-size:14px;background-color:#1370A3}.getting-started-wizard ul.step-indication li:last-child{margin-right:0}.getting-started-wizard .inviteMembers-form .add-button{margin-top:8px;display:block}.getting-started-wizard .inviteMembers-form .add-button .add-text{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;vertical-align:top;margin-left:6px}.getting-started-wizard .inviteMembers-form .add-button .add-icon{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.getting-started-wizard .inviteMembers-form .remove-button .remove-icon{display:inline-block;vertical-align:text-top;margin-right:6px;background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;cursor:pointer}.getting-started-wizard .inviteMembers-form .remove-button{vertical-align:middle;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;cursor:pointer}.getting-started-wizard .inviteMembers-form .remove-button .reject-large{display:inline-block;vertical-align:text-top;margin-right:6px;background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;cursor:pointer}.getting-started-wizard .addSsh-form,.getting-started-wizard .addVf-form{padding:0}.getting-started-wizard .addSsh-form .form-group{margin-top:20px}.dashboard .overview .steps-progress-wrapper,.getting-started-wizard .addSsh-form button{margin-top:10px}.getting-started-wizard .addSsh-form textarea{min-height:80px}.dashboard .remove-user-from-eng{color:#D74854;font-family:omnes-regular,sans-serif;font-size:16px;float:right;cursor:pointer}.dashboard .remove-user-from-eng .remove-icon{background:url(images/icons-sprite-v5.png) -1341px 0 no-repeat;width:17px;height:16px;display:inline-block;margin-left:8px;position:relative;top:3px}.dashboard .popover-title-name{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:18px}.dashboard .popover-title-company{color:#1370a3;font-family:omnes-regular,sans-serif;font-size:18px}.dashboard .popover-role-title{color:#959595;font-family:omnes-medium-italic,sans-serif;font-size:16px}.dashboard .popover-details .popover-details-topic{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px}.dashboard .popover-details .popover-details-detail{word-wrap:break-word;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.dashboard .content-container #content .main-wrapper{height:100%;overflow-y:auto;overflow-x:hidden;padding:10px}.dashboard .no-display-text{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:36px}.dashboard .no-display{display:none}.dashboard .overview #engagement-title{color:#4990E2}.dashboard .overview .manual-id{font-family:omnes-medium,sans-serif;font-size:36px;color:#4990E2}.dashboard .overview .filter-wrapper{text-align:right;padding:0}.dashboard .overview .filter-wrapper span{padding:0;margin-left:5px}.dashboard .overview .filter-wrapper .form-control-main-view{margin-left:5px;display:inline;padding:6px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.dashboard .overview .state-filter button{padding:0 5px 0 8px;margin-bottom:1px}.dashboard .overview .state-filter span{right:6px!important;top:9px!important}.dashboard .overview .state-filter a{font-size:14px}.dashboard .overview h1{display:inline-block;color:#1370a3;font-family:omnes-light,sans-serif;font-size:36px;margin:0 0 30px}.dashboard .overview h2{display:inline-block;margin:0 0 10px;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px;position:relative}.dashboard .overview h2 .add-people,.dashboard .overview h2 .add-step{display:inline-block;margin-left:8px;cursor:pointer;position:relative;top:2px}.dashboard .overview .main-section{margin-top:30px}.dashboard .overview .steps-header{background-color:#4990E2;color:#fff;padding:10px 0 0;margin:0 0 0 -5px}.dashboard .overview .steps-header h2{font-size:20px;color:#fff}.dashboard .overview .steps-header .steps-filter{display:inline-block;float:right;color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.dashboard .overview .steps-header .steps-filter .todo{background:url(images/icons-sprite-v5.png) -406px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}.dashboard .overview .steps-header .steps-filter .completed{background:url(images/icons-sprite-v5.png) -384px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}.dashboard .overview .steps-header .steps-filter .confirmed{background:url(images/icons-sprite-v5.png) -340px 0 no-repeat;width:12px;height:12px;display:inline-block;cursor:pointer}.dashboard .overview #engagement-target-completion{border:1px solid #FAC05F;padding:0;margin-bottom:20px}.dashboard .overview #engagement-target-completion #target-completion-header{background-color:#FAC05F;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}.dashboard .overview #engagement-target-completion #target-completion-header .edit-target-completion{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}.dashboard .overview #engagement-target-completion .target-completion-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}.dashboard .overview #engagement-status{border:1px solid #98C678;padding:0;margin-bottom:20px}.dashboard .overview #engagement-status #engagement-status-header{background-color:#98C678;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}.dashboard .overview #engagement-status #engagement-status-header .add-engagement-status{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}.dashboard .overview #engagement-status .engagement-status-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}.dashboard .overview #engagement-status .engagement-status-content #status-update-details{display:block;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px}.dashboard .overview #engagement-status .engagement-status-content #status-description{margin:3px 0 0;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.dashboard .overview #engagement-status .engagement-status-content .edit-engagement-status{font-size:21px;padding-left:6px;cursor:pointer;color:#5a5a5a}.dashboard .overview #engagement-team{border:1px solid #9B9B9B;padding:0;margin-bottom:20px}.dashboard .overview #engagement-team #engagement-team-header{background-color:#9B9B9B;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}.dashboard .overview #engagement-team #engagement-team-header .add-team-member{font-size:21px;vertical-align:middle;padding-left:6px;cursor:pointer}.dashboard .overview #engagement-team .engagement-team-content{font-family:omnes-regular,sans-serif;font-size:16px;margin:15px}.dashboard .overview #engagement-team .engagement-team-content ul.team-avatars li.team-member-avatar{font-size:40px;cursor:pointer;color:#9B9B9B}.dashboard .overview #engagement-team .engagement-team-content ul.team-avatars li{list-style:none;display:inline-block;margin-right:10px}.dashboard .overview #star-engagement-action{display:inline-block;cursor:pointer;position:relative;bottom:3px;margin-right:5px}.dashboard .overview #star-engagement-action.not_starred{background-position:-1230px 0;width:19px;height:19px}.dashboard .overview #star-engagement-action.is_starred,.dashboard .overview #star-engagement-action.not_starred:hover{background-position:-1260px 0;width:19px;height:19px}.dashboard .overview #star-engagement-action.is_starred:hover{background-position:-1230px 0;width:19px;height:19px}.dashboard .overview .steps{padding-bottom:140px;padding-right:20px;padding-left:20px}.dashboard .overview .steps ul li.step{border-bottom:dashed 1px #959595;list-style:none;position:relative}.dashboard .overview .steps ul li.step .step-wrapper{border-left:2px solid transparent;margin:7px 0 7px 1px}.dashboard .overview .steps ul li.step .step-wrapper:hover{border-left:2px solid #1370a3;background-color:#DEF3FF}.dashboard .overview .steps ul li.step .step-wrapper:hover .description .step-state.incomplete{color:#4ca90c;opacity:.7}.dashboard .overview .steps ul li.step .next-step-actions .edit-next-step,.dashboard .overview .steps ul li.step .next-step-actions .moveto-delete,.dashboard .overview .steps ul li.step .next-step-actions .order-nextstep{color:#d2d2d2;cursor:pointer}.dashboard .overview .steps ul li.step .next-step-actions{display:none;height:100%;width:20px;position:relative;padding-top:10px;float:left;left:-18px;margin-right:-20px}.dashboard .overview .steps ul li.step .next-step-actions>span{margin-bottom:3px;cursor:pointer;display:block}.dashboard .overview .steps ul li.step .next-step-actions .moveto-confirmed{background:url(images/actions-sprite.png) -50px 0 no-repeat;width:15px;height:15px}.dashboard .overview .steps ul li.step .next-step-actions .moveto-todo{background:url(images/actions-sprite.png) -25px 0 no-repeat;width:15px;height:15px}.dashboard .overview .steps ul li.step:hover .next-step-actions{display:block}.dashboard .overview .steps ul li.step:hover .details .actions span{visibility:visible}.dashboard .overview .steps ul li.step div.completed,.dashboard .overview .steps ul li.step div.confirmed{opacity:.7}.dashboard .overview .steps ul li.step .details{text-align:right}.dashboard .overview .steps ul li.step .details .next-step-due-date{color:#5a5a5a;font-weight:700}.dashboard .overview .steps ul li.step .details .next-step-due-date .icon{display:inline-block;margin-right:5px;position:relative}.dashboard .overview .steps ul li.step .details .associated-files{color:#5a5a5a;font-weight:700;cursor:pointer}.dashboard .overview .steps ul li.step .details ul.next-step-team-mates li{list-style:none;display:inline-block;font-size:27px;padding-left:5px;color:#9B9B9B}.dashboard .overview .steps ul li.step .details ul.next-step-team-mates li.me{color:#1370a3}.dashboard .overview .steps ul li.step .description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px;padding:5px}.dashboard .overview .steps ul li.step .description input{position:absolute;top:10px;left:0;margin-right:20px}.dashboard .overview .steps ul li.step .description .step-text{margin-left:35px}.dashboard .overview .steps ul li.step .description .last-action-details{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:12px}.dashboard .overview .steps ul li.step .description .last-action-details .name{font-weight:700;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:12px}.dashboard .overview .steps ul li.step .description .step-state{position:absolute;top:25px;font-size:25px}.dashboard .overview .steps ul li.step .description .step-state.incomplete{color:#d2d2d2;display:inline-block}.dashboard .overview .steps ul li.step .description .step-state.completed{color:#4ca90c;display:inline-block}.dashboard .overview .team-and-logs{border-left:dashed 1px #1370a3;padding-left:20px;padding-right:20px}.dashboard .overview .team-and-logs .activity-log{border:1px solid #9B9B9B;padding:0;margin-bottom:20px}.dashboard .overview .team-and-logs .activity-log #activity-log-header{background-color:#9B9B9B;color:#fff;font-family:omnes-medium,sans-serif;font-size:18px;padding:5px 5px 0;line-height:35px}.dashboard .overview .team-and-logs .activity-log ul.activity-log-details{margin:15px}.dashboard .overview .team-and-logs .activity-log ul.activity-log-details li{list-style:none;position:relative;margin:0 0 10px}.dashboard .overview .admin-actions-dropdown{background-position:0 -63px;width:14px;height:14px;color:#1370a3;font-size:20px;vertical-align:4px;margin-left:5px;cursor:pointer;display:inline-block}.dashboard .add-next-step-form .ice-wysiwyg{height:200px}.dashboard .add-next-step-form .ice-wysiwyg .wysiwyg-menu>div{background-color:#f1f1f1;padding:2px}.dashboard .git-repo-url,.dashboard .storage-bucket-url{text-align:left;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px}.dashboard .line-separator{border-bottom:solid thin;margin-top:5px;margin-bottom:7px;align-items:left}.intl-tel-input{width:100%}.iti-flag{background-image:url(images/flags.png)}.documentation-container .page-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:26px;margin:0}.documentation-container .page-publish{font-family:omnes-medium,sans-serif;font-size:14px;bottom:10px}.documentation-container .page-content{font-family:omnes-regular,sans-serif;font-size:16px;margin-top:10px}.documentation-container .page-content ul{padding-left:30px}.documentation-container .page-content h1,.documentation-container .page-content h2,.documentation-container .page-content h3{font-weight:700}.documentation-container .page-content table{border-right:1px solid #1370a3;border-left:1px solid #1370a3}.documentation-container .page-content table tr{border-bottom:1px solid #1370a3;border-top:1px solid #1370a3;border-collapse:collapse}.documentation-container .page-content table tr td{padding:0 0 0 7px}.documentation-container .page-content table thead{background-color:#1370a3;color:#fff;font-weight:700}#documentation-side-panel{border-left:dashed 1px #1370a3}#documentation-side-panel .tooltip-title{font-size:18px}#documentation-side-panel #news-and-announcements-list .news-and-announcements-details .news-and-announcements-details-header .news-and-announcements-details-title,#documentation-side-panel #tooltip-description{font-size:16px}#documentation-side-panel #news-and-announcements-header{font-size:18px}.archive-engagement-modal{padding:0 15px}.archive-engagement-modal .archive-engagement-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.archive-engagement-modal .archive-engagement-reason{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.archive-engagement-modal .modal-body{top:10px}.auditlog .audit-log-items{border-bottom:1px solid;margin-bottom:5px}.auditlog .textarea-checklist-audit{resize:none}.modal-open .modal{z-index:30000!important}#approve-or-reject-state .modal-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:22px}#approve-or-reject-state .decision-modal-body{margin-bottom:8px;margin-top:10px}#approve-or-reject-state .decision-comment{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:14px}#approve-or-reject-state .modal_buttons .custom-button{position:relative;width:30%;float:left;display:inline-block}#approve-or-reject-state .modal_buttons .custom-space{position:relative;width:5%;float:left;min-height:1px}#approve-or-reject-state .state-title .bold{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}#approve-or-reject-state .state-title{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}#approve-or-reject-state .state-title-border{border-bottom:dashed 1px;border-color:#abb8c0;margin-left:0}#approve-or-reject-state .btn-gradient-danger,#approve-or-reject-state .btn-gradient-default,#approve-or-reject-state .btn-gradient-success{font-weight:700;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x;border-color:#888}#approve-or-reject-state .comment-textarea{resize:vertical}#approve-or-reject-state .btn-gradient-success{color:#FFF;background-color:#41A02C;background-image:linear-gradient(to bottom,#A2E652,#41A02C);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}#approve-or-reject-state .btn-gradient-danger{color:#FFF;background-color:#AE0020;background-image:linear-gradient(to bottom,#F74658,#AE0020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}#approve-or-reject-state .btn-gradient-default{color:#B3B3B3;background-color:#D0D0D0;background-image:linear-gradient(to bottom,#FCFCFC,#D0D0D0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}#approve-or-reject-state .btn-sample.active,#approve-or-reject-state .btn-sample.disabled,#approve-or-reject-state .btn-sample:active,#approve-or-reject-state .btn-sample:focus,#approve-or-reject-state .btn-sample:hover,#approve-or-reject-state .btn-sample[disabled]{color:#FFF;background-color:#D0D0D0}.toast-read-more-container{padding:0 20px;word-wrap:break-word}.toast-read-more-container .recent-cms-posts-container .line-separator{border-bottom:solid 1px #5a5a5a;margin:20px 0}.toast-read-more-container .recent-cms-posts-container .recent-cms-posts-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.toast-read-more-container .recent-cms-posts-container ul.recent-cms-posts{margin-top:3px}.toast-read-more-container .recent-cms-posts-container ul.recent-cms-posts li{font-family:omnes-medium,sans-serif;font-size:16px;list-style:none;position:relative;line-height:28px;cursor:pointer}.toast-read-more-container .recent-cms-posts-container ul.recent-cms-posts li .post-creation{font-family:omnes-regular,sans-serif;font-size:12px}.toast-read-more-container .recent-cms-posts-container ul.recent-cms-posts li:before{content:'';display:inline-block;position:absolute;top:0}.toast-read-more-container .recent-cms-posts-container ul.recent-cms-posts li.selected{background-color:#f2f2f2}.toast-read-more-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:26px;line-height:26px}.toast-read-more-creation{display:block}.toast-read-more-content{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px;line-height:20px;padding:10px 20px 0}.modal-add-vfc .add-text,.vfc-remove-button{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.modal-cms-post-read-more{width:70%;margin:0 auto;height:100%}.modal-cms-post-read-more .modal-content{height:100%}.vfc-remove-button{width:20px;height:40px;float:right;cursor:pointer;margin:14px 0 0}.vfc-remove-button .remove-icon{background:url(images/icons-sprite-v5.png) -478px 0 no-repeat;width:15px;height:15px;cursor:pointer;display:block}.modal-add-vfc{margin-top:8px;display:block}.modal-add-vfc .add-text{vertical-align:top;margin-left:6px}.modal-add-vfc .add-icon{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.feedback-modal-body .feedback-modal-description{border-color:#abb8c0;margin-bottom:15px}.general-log-containter{height:inherit;padding:0 20px 30px;word-wrap:break-word}.general-log-containter .general-log-subtitle{padding-bottom:10px}.general-log-containter .general-log-body{height:inherit;overflow:scroll;padding:0 20px;color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px;line-height:20px}.general-log-modal-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:26px;line-height:26px}.modal-general-log-modal{width:70%;margin:0 auto;height:100%}.modal-general-log-modal .modal-content{height:100%}.general-prompt-text-details{color:#000;font-family:omnes-regular,sans-serif;font-size:14px;padding:3% 0}.general-prompt-upper-headline{color:#000;font-family:omnes-medium,sans-serif;font-size:14px}.general-prompt-upper-dash{border-bottom:dashed 1px #5a5a5a;margin-bottom:15px}.upper-headline-value{color:#000;font-family:omnes-medium-italic,sans-serif;font-size:14px}.general-prompt-body{margin:0}.general-prompt-title{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}.general-prompt-title .bold{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:18px}.md-datepicker-calendar-pane{z-index:30001}md-datepicker.btn{width:100%;padding:0;position:relative}md-datepicker.btn .md-button.md-icon-button.md-datepicker-button{float:left;min-height:0;height:32px;z-index:2;width:100%;padding:0;margin:0}md-datepicker.btn .md-button.md-icon-button.md-datepicker-button md-icon{display:none}md-datepicker.btn .md-datepicker-input-container{line-height:28px;border-bottom:none;margin-left:0;position:absolute;left:0;padding-left:0;width:100%}md-datepicker.btn .md-datepicker-input{width:100%;text-align:left;line-height:32px;padding-left:10px;margin:0}md-datepicker.btn .md-datepicker-input::-webkit-input-placeholder{color:#555}md-datepicker.btn .md-datepicker-triangle-button{top:7px}md-datepicker.btn .md-datepicker-triangle-button .md-datepicker-expand-triangle{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid transparent;border-bottom:4px solid transparent}md-datepicker.btn .md-datepicker-triangle-button .md-datepicker-expand-triangle:before{position:absolute;top:-13px;left:-3px;display:inline-block;border-left:3.8px solid transparent;border-right:3.8px solid transparent;border-top:7px solid transparent;border-bottom:5.9px solid #555;content:''}md-datepicker.btn .md-datepicker-triangle-button .md-datepicker-expand-triangle:after{position:absolute;top:1px;left:-3px;display:inline-block;border-left:3.8px solid transparent;border-right:3.8px solid transparent;border-top:5.9px solid #555;border-bottom:7px solid transparent;content:''}.dropdown-menu li[data-ng-if="modelValue().length > 0"]{display:none}.next-steps md-datepicker .md-datepicker-input{text-align:center}.next-steps .checklist-name{padding-left:0;border-bottom:1px dashed}.next-steps .addNextSteps{margin-bottom:10px;margin-top:10px}.next-steps .repeaterNextStep{margin-bottom:10px;border:1px solid #CCC;padding:10px}.next-steps .padTop4{padding-top:4px}.next-steps .padTop10{padding-top:10px}.next-steps .padLeft0{padding-left:0}.next-steps .add-header{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px}.next-steps .ice-wysiwyg{height:200px}.next-steps .ice-wysiwyg .wysiwyg-menu>div{background-color:#f1f1f1;padding:2px}.next-steps .text-right{text-align:right}.next-steps .font_header{margin_top:0;color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:18px}.next-steps .font_header_add_next{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.next-steps .font_header_chk_name{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:18px}.next-steps .margin_btm{margin-bottom:12px}.next-steps .ms{background-color:#ff0}.next-steps multiselect>.btn-group,.next-steps multiselect>.btn-group>.btn,.next-steps multiselect>.btn-group>.dropdown-menu{width:100%}.next-steps form>.lineColor{background-color:#F6F3F3}.next-steps .add-icon{background:url(images/icons-sprite-v5.png) -180px 0 no-repeat;width:18px;height:18px;display:inline-block}.next-steps .add-button{margin-top:8px;display:block}.next-steps .add-button .add-text{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:16px;vertical-align:top;margin-left:6px}.next-steps .remove-icon{cursor:pointer;vertical-align:text-top;background:url(images/actions-sprite.png) no-repeat;width:15px;height:15px;display:block;position:relative;top:11px}.select-engagement-lead-modal .modal-body,.update-engagement-status-modal .modal-body{top:10px}.next-steps .posRelative{position:relative}.next-steps .posAbsDelBtn{position:absolute;top:10px;right:20px;z-index:40000}.next-steps #btn-submit{width:100%}.next-steps .btn-primary{border:1px solid #8799A3;border-radius:6px;background:#1E79B0;background:linear-gradient(#1E79B0,#62ADD5)}.next-steps .datepickerdemoBasicUsage md-content{padding-bottom:200px}.next-steps .datepickerdemoBasicUsage .validation-messages{font-size:12px;color:#dd2c00;margin-left:15px}.select-engagement-lead-modal{padding:0 15px}.select-engagement-lead-modal .select-engagement-lead-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.set-stage-modal-text-details,.set-stage-title{color:#5a5a5a;font-family:omnes-regular,sans-serif}.select-engagement-lead-modal .select-engagement-lead-description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.set-stage-modal-text-details{font-size:18px;padding:3% 0}.set-stage-title{font-size:18px}.set-stage-title .bold{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:18px}.btn-gradient-danger,.btn-gradient-success{color:#FFF;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-repeat:repeat-x;border-color:#888;font-weight:700}.btn-gradient-success{background-color:#41A02C;background-image:linear-gradient(to bottom,#A2E652,#41A02C);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#A2E652', endColorstr='#41A02C', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-gradient-danger{background-color:#AE0020;background-image:linear-gradient(to bottom,#F74658,#AE0020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F74658', endColorstr='#AE0020', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-gradient-default{font-weight:700;color:#B3B3B3;text-shadow:0 -1px 0 rgba(0,0,0,.25);background-color:#D0D0D0;background-image:linear-gradient(to bottom,#FCFCFC,#D0D0D0);background-repeat:repeat-x;border-color:#888;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FCFCFC', endColorstr='#D0D0D0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-sample.active,.btn-sample.disabled,.btn-sample:active,.btn-sample:focus,.btn-sample:hover,.btn-sample[disabled]{color:#FFF;background-color:#D0D0D0}.status-modal-body .status-modal-description{border-color:#abb8c0;margin-bottom:15px}.edit-target-lab-date-modal .md-datepicker-input-container .md-datepicker-input{width:100%;text-align:left;line-height:32px;padding-left:95px;margin:0}.update-engagement-status-modal,.welcome-box p{padding:0 15px}.update-engagement-status-modal .update-engagement-status-title{color:#1370a3;font-family:omnes-medium,sans-serif;font-size:24px}.update-engagement-status-modal .form-field-title,.update-engagement-status-modal .update-engagement-status-description{color:#5a5a5a;font-family:omnes-regular,sans-serif;font-size:16px}.update-engagement-status-modal .md-datepicker-input{max-width:none}#validation-details-form #edit-validation-setails-save-button{margin-top:15px}#validation-details-form .field-title{color:#5a5a5a;font-family:omnes-medium,sans-serif;font-size:16px;margin-bottom:2px;margin-top:5px}.welcome-boxes{margin-top:60px}.welcome-box h3{font-weight:700}.welcome-box p{font-size:16px;color:#5c5c5c;margin-bottom:0}.get-started-button{width:190px;margin-top:20px;text-align:center;margin-left:auto;margin-right:auto;color:#fff!important;height:48px;font-size:18px!important;font-weight:700;line-height:38px;vertical-align:middle;background:linear-gradient(#1E79B0,#62ADD5);border:1px solid #8799A3;border-radius:6px}.welcome-body{overflow:auto}.welcome-navbar{background-color:#000;padding-left:10%;padding-right:10%;border-color:#585858;border-left:#000;z-index:1030;left:0;right:0;position:absolute;border-radius:0;top:0}.welcome,.welcome .header-content{position:relative;width:100%;text-align:center}.welcome-nav-link{color:#fff!important;font-weight:600;line-height:20px;margin-top:7px}.welcome{-o-background-size:cover;background:url(../styles/images/home_bg1-1920x1138.jpg) center;color:#fff}.welcome .header-content{padding:100px 15px}.welcome .header-content .header-content-inner h1{font-weight:700;margin-top:0;margin-bottom:0;font-size:30px;color:#fff}.welcome .header-content .header-content-inner p{font-weight:300;font-size:16px;margin-bottom:50px;color:#fff}@media (min-width:768px){.welcome{min-height:73%}.welcome .header-content{position:absolute;top:50%;transform:translateY(-50%);padding:0 50px}.welcome .header-content .header-content-inner{max-width:100%;margin-left:auto;margin-right:auto}.welcome .header-content .header-content-inner h1{font-size:50px}.welcome .header-content .header-content-inner p{font-size:18px;max-width:90%;margin-left:auto;margin-right:auto}}.welcome-footer{background:#2e2e2e;color:#cbcbcb;padding:60px 0 0;margin-top:60px}.welcome-footer-copyright{color:#cbcbcb;font-size:17px;line-height:25px;padding-bottom:5px;text-align:center}.welcome-logo{margin-top:-8px}.navbar-collapse .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{background:0 0}.navbar-collapse .navbar-nav>li.active>a:after,.navbar-collapse .navbar-nav>li.active>a:focus:after,.navbar-collapse .navbar-nav>li.active>a:hover:after,.navbar-collapse .navbar-nav>li>a:hover:after{position:absolute;bottom:9px;left:50%;content:'';width:20px;height:2px;margin-left:-10px;background-color:#fff}.navbar-nav>li+li{margin-left:2px}.navbar-collapse .navbar-nav>li.active>a,.navbar-collapse .navbar-nav>li.active>a:focus,.navbar-collapse .navbar-nav>li.active>a:hover{color:#828282;background-color:transparent} \ No newline at end of file diff --git a/d2ice.att.io/dist/styles/vendor.120f37b4.css b/d2ice.att.io/dist/styles/vendor.120f37b4.css new file mode 100755 index 00000000..144838b7 --- /dev/null +++ b/d2ice.att.io/dist/styles/vendor.120f37b4.css @@ -0,0 +1,21 @@ +@charset "UTF-8";/*! + * Bootstrap v3.2.0 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */.btn,.btn-group,.btn-group-vertical,.caret,.checkbox-inline,.input-group-addon,.input-group-btn,.md-button.md-fab,.md-calendar tbody,.md-calendar td,.md-calendar tr,.md-calendar-month-label span,.md-chips,.md-datepicker-button,.radio-inline,img,md-checkbox .md-label,md-datepicker{vertical-align:middle}hr,img{border:0}.md-calendar,.md-calendar-day-header,table{border-spacing:0;border-collapse:collapse}.glyphicon,body,html{-moz-osx-font-smoothing:grayscale}.img-thumbnail,.thumbnail{-webkit-transition:all .2s ease-in-out}.btn-group>.btn-group,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.modal.in .modal-dialog,.navbar-fixed-bottom,.navbar-fixed-top{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0)}bdo[dir=ltr],bdo[dir=rtl]{unicode-bidi:bidi-override}.md-button .md-ripple-container,.md-button.md-fab .md-ripple-container,.md-button.md-icon-button .md-ripple-container{-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC);background-clip:padding-box}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.glyphicon,address,cite{font-style:normal}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}td,th{padding:0}@media print{blockquote,img,pre,tr{page-break-inside:avoid}*{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{line-height:inherit}a{color:#428bca;text-decoration:none}a:focus,a:hover{color:#2a6496;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}figure{margin:0}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;width:100%\9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100%\9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}legend,pre{display:block}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}blockquote:after,blockquote:before{content:""}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline{color:#3c763d}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px;line-height:1.42857143\9}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.btn-block+.btn-block,.help-block{margin-top:5px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-horizontal .form-group-sm .form-control,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-horizontal .form-group-lg .form-control,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.collapsing,.dropdown{position:relative}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-group{display:inline-block}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active:focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group-vertical>.btn:focus,.btn-group>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group,.input-group-btn>.btn+.btn{margin-left:-1px}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn>input[type=checkbox],[data-toggle=buttons]>.btn>input[type=radio]{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030;transform:translate3d(0,0,0)}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-group{display:inline-block}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.breadcrumb>li,.pagination{display:inline-block}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center;vertical-align:baseline}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;background-color:#777;border-radius:10px}.badge:empty{display:none}.list-group-item,.media-object,.thumbnail{display:block}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.nav-pills>.active>a>.badge,a.list-group-item.active>.badge{color:#428bca;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.close,.list-group-item>.badge{float:right}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar[aria-valuenow="1"],.progress-bar[aria-valuenow="2"]{min-width:30px}.progress-bar[aria-valuenow="0"]{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>a{color:inherit}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-title,.panel>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.list-group:last-child .list-group-item:last-child,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.list-group:last-child .list-group-item:last-child,.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.carousel-caption,.carousel-control{text-shadow:0 1px 2px rgba(0,0,0,.6)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.top .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.top-left .tooltip-arrow{left:5px}.tooltip.top-right .tooltip-arrow{right:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{left:5px}.tooltip.bottom-right .tooltip-arrow{right:5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.colorpicker,body>.select2-container.open{z-index:9999}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.hidden{visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.colorpicker-visible,.colorpicker-visible .dropdown-menu{display:block!important}colorpicker-saturation{display:block;width:100px;height:100px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAFJhJREFUeAGMU+/q4kAMzFYf4LgP96a+q4c+gSIqxf/r5maWDoTgz15gmM0kW5uMLa21v2b2G6jAG2iEzqUU6q5c/OlMuHtL/ULNd5TP6EJ1RP7NuXvKE397jmbg7MrzHI748T1UA3eopyGQV2qK1+vVHo/Hm1itVm0J7Q+afwGMmgeRphf7Noh6lCeuHJAvm/X8rAQNlw2VScoj6863OQjl2ZB3qkeu5Lh0RJ3qynuNjJA21FppQAHa8/l83263No5jOxwOttlsbL1e2xIXXpMZzzRsXoTw34bQgLiQbKh6M9SXDBSypn4XGOSkGUO1cJdn1Yh4/qYVgctmGSwXyARNcOSFRuBMHvA1GMzwy+Vix+PRdrvdYrvd2vl87oZYDCxBL9B/jEyopghzlNjL0DlB+gAoPNXyOfa3oA9puXonyVHzdH+g9MEISa5z0qUNkwkm6MJkxALg8mlMAxvNwBfhYLvf7w50vl6vBV9H2e/3BjYateQDY8gM5bmWovygdyEb87k/G5Zz9c/2zfEQFysO5nDJ6mMel91Z//pwFpygIWIaMXE3AoYssPBCI/B12DiONMT5VZxOJ0f+j/MyWo5chYGowfn/j03lNXBpl85Up8d46u6DChBMvKv2UePrrAsChtdLTi73oEBjFDYpmIp/KSgRhRw357sXuHLknRgI8d90F8QL761oI8iQeJqvUOGnAoEkgNblF13iiJASZCwhLkG+v7/Halvt5+enr7x+02lZOwKymJ7jMAXK32RxaXnNxfXzCOkCxTO2I3NiR0i9gAjQLLoVHkKG8pCi0UT4Q0h5xUFIlBJEYmg+1yg6TrUq+YfEWKK0lWsSS8+DkNvCWtvJXu0UbDyH/NYjoDHFybPd/cPeficiW5LvkVdBNY4UoIqOQMwPBXm9vUYIVCj3GkXCCo1tRS//uMhYoVG3q46HaBQtamESTs/+0o92hOTaBbqjBwpu8reCuzAP4rkXpQBzQwbhZxD7jNYEAS4CI2Rg4hLitPUor2hGh6j4hQ5FfWt8LQF+SwyJIpGUV05nu56VHqJhR8ybb+Q+/dnPYZYSigIICvY3xfYxCckz/qazprjDiFJ+5DWVwscaMpSDgkleI2uutaKk5kPFNTqO8pBDlBQZEqKvoJXp7+lxzx7Cuoqp2M7zlrm5JbH/9oZ/GLdzBGf9FNmmvPi+h2FXnm8L5WhdCMJNyr1D6yvKP1rFQYgSjWpteE0JMraEME8ykpzo/0/+wcg5yGHMooegQYIRyXU1i52tCSfn9oSQFH+Fe4jypxs3RHA+xNCcNUZ+BXRg7iu0lhgDAesisSfE6UA0iudz9sNHKChek5eBX9a+FwKkKQ+Nd6JljkLX6B4x2L8hhHOsVdhR4iHEEe1LeWJCSI2tCo9AU3OIKHGgbupv6NvyRciGgMzPPLP5LmhPdKTx8qgSWIXxVkZx8QJihmCvPP8nE6IRXniKT9GThhKF0QkZal3KQYcLgn+s8YwWJiNnLVL4mOz1b+4piM8/+YYb8xNlLoASXqC7c9DCOokhl4RAKgSkCNM9wklBOPL4BIJoblQggsb8Km9W/IlIJkKrPN4xEETPwtS3hczrp8//pxmzpoUIBfeSO8r8/OE59wgTIsnIb4yBj7Cft6pYI8Sbh5TBD749IANSlKPgJQQmrr0uUfjbCnlV/V9OCfLpDc9b0nw4x3bznAbWFAyfUeBLEIhA3uaCKifFyUBg8pg+Ro8nOCVOintKoy0xj5bFvhNCQMAfoUqgc8UwMRot8dWy/qPcDHQk5XkgOPD97//Gl/xC2kKlkhl2V4pMQmAON+22E+4XgIzMKYMSmp7S0ymTcpYEYM6eVjKlJV25HgYguZ6lD1hR4S4byoxRwMUQjm87MYVxrW19nCqbgTD4kSEde7FlxcF4tKDCPu41lBUKa7tjgGuHJuPCwpBPdcONuVTiMEMgbPpugJE0+GIRusL+yD9qGhrP05ClFHfOuppZeV4ZkgyJdJc3dkxh0+8YDBpbsyuxrXYzV4VfmJLFwxdAEq7azIj9Yw9AuUCjEL3I7pD1xgo0BPv5Y2U9MCBvegpGxq9/vK7BftOQssP3ueL+HfJwLkAqVLlgPH9CF7phgMoKj/X8EjiNCtGQHzFU9mM7gsR8W/5wkuZ9ZUKBcYuWdE3qU2YYqLIllfo5aog2m2haKnlsvP30YUHO+3f9Yu2GrNpW2rYV8id2bM/9KxBPc/QgZQT9AlotQRtgSls1pIDADvo+3hL0bXBU0yxqG4Fx2ZshdXSBaEjZYtIdh/uxQDOrpMV/Biatjj8nzRgq8p0Ud6w9fAwwe+9mSJPWUMWzPG+A21ZWG45nhoQp1RdaBZ1WYDteUQ4gffvH1jomTHlkxk9GTDi5AS0YAODxMoRjMiqsjq/MyqvFFJX9buv6+18Y8mwDyFRH7Dj+T1rBtYivRV1v9mHtiKhfD10QrRFdsxor9Z4bgChAtF22fLsv1sfsGL4B0grazi9DygpagZ0A2s2WBMBmLn0de15D11KG5WSAvh20rB92fEIVwk0jdV2qPdyWr4mYuw75NMua7FFtmZxbkN7qi4DSFgaqQjc75GwDwbgBMkMMAPfD6cR1wpl1o7GftDhMMSPaFmm05+Tv/HWW9aQXbMfiBAZ4cNLdnz6hyAyj7ki9oQYYqdYd4h405JRwXs4DhLKozKhzG65449eQ4i5nX2LKXYjCVDcWF58Y0uJvj2EpY2VN79NzjHlVF8E1M2JZxOzW62rIEhhlywoAMMhrS8dFBJhgMJx5aRxg/fv9rSW9WN7LeQxZPn4bo6ExYgppsWNkQIt2pOAU8DAK8Oh/yK7ECM8pCAboJDTRFNsJQ3ZkBdtFXgV+A5qAEasl4sk2WxjOzn9PY6sZ1ZxJD/p9FMwoc1pjLNhEbLd2eX2Kpv6Y+aSCn8OUxhqyGBOwS9fxUiwDPIXfZw2JeNs+hS2/2R6r2Lfv+S/ivt3PG7eHh3S/52EDDD0j5h9rStliJiQLc5/fW9wP0PNcfB77nmVpX6Js2WaOQwb9OrXLJ9UMz7UmuJaAQj7fjxi6V97wIGftsqVMwcGZN2ZTL30fr7IYkL4xpG/9Y9bV677pUYXfrHk5tzuvoS1aRPX9ScV+3+Mn1FU7YMR6GT8LEP38xs2OyzVZRjIz9mWrIV2lTYo6LLk3BKXGKCM47jycKCb4zb4GzBi0g3Ec0a9OsBVQQsp+YwTjo+Mr9C/MQluIJmIkYYvvzpL2RhuiKT1uttTrK+q74p8siUsR64/nlS3XedcfZgY6kfUsv/FOUZfOlwGTfjyPCxjrRDbCvMLr4vCc9kN26pBR7H8KuW0wHZrkYCzj2+z5WbPCoZM2rISeEwop48KRZdhiPtmYLXNSyZs91YAeH06dow/Vpg3o+W9a/hbgPI5jTnvdx5YxZUbrCY1V7De22qProHXrDL/9B8dlHIuM3QQqUxL7d/pLyyqrzKlV6/2O/F/GBXP6ochjYdiKvQ4saA1ddlTvY/bEkY9Wa1iLkEN2JVavOhxHRlvqMF/XAnEVOJgXy3fAhCgY0N8bC0Nnpl8Lw/bt2LnCnsENO6o5r7bMcn2hONzQswSK2WVbphBy2kcjGqqWNRJQfU6ALwFgHTlo41pWWaE+O4V2zuhYZ1jYinTnvVmcC0Oclck+MgTH1jZU9Ty/VWaUIS42JwFPpkiWyDiZafZDygiJTseTIrc/g5v1qYQ6kgVnT48A+bztNN774MD2U8kDphjxaP18nyGzZBGUh7Y9L1uGvIp6Mq3EePVl7Xxf2/pE9gWI2KTFX2J3xx8Z0jWvnv+VhaG6tr8vkccerdTfdvhaXzTlLUM8t6HNIa9a4DfuDYgCWEaUCQ5jBcz2YI43lgqsrRi21F+pRThPhW5NvqLDK0Nw5E7RV7DKjDreX69/ZVY14wGQ8+HN733OxHGci9MKTBlkMNCSMqJA/udFzgg5IWqXKW9pbwvDu9VxFIjREGtHAS1w7rs4bcXtpIEV1t7H9QdgfmPIGrTmKDAW+gmIFHxNaRl3iCKEvYcsjuPAgTEzQ5zO2SHY3q+FX98oqti8casANPRxL19nx34JWZ9XQJ4r+uOLpmwxZxGyZF8Bcb9lf+dUR0zZgjwCigMKmGltbXG/SzZmUzQlxzMzGCdcmVUDEH3OijXp7k5StNVSh7xnV6Nju98+MaTMaMjK+b7xCy2gD1vk+G54eVxM6PEzM2TLqjJk3IdR/4iG7RSF+y1klQk4jqGvb/h4n6TBQwHZ77GYE0alLzZOTOl1+ShiFvUyBYRJIvSC1PFPfYemMoW+EpWXtaznArCLitWSnX6BKnPOLkTWIT/3vB3SEFemqF+m0Bh7ZIoY13m7IfmhfyxNzsu90j/f65Bn5hSoMSHIvPE+nptWAKesbWRY6xJax/NG30AnvS4AAPkVEOuDmHBk3KJ+dsewIt41+3t8+kqRB85Sy82QAmZmpGrfGnfqejZrKlP8Rv+GIZ0nnWi/Ys74kWzs6Ly7INTfYvA4CshcGL6wpSJ8I1/GtLCs9ji0lQG+vgzBOkmInRh2a0Y1If0DYPmr5vTPwIv9hCWPXyBcjUGL+n+PhWEdL9Rhi390Wv2lxeHRjGZbYR0Os7DWgb0f15VVzPd5XVcgClAZ41se8uE/3efT7Eq7oQXk7xpSB3NcrfAYzGmFLUAL1MwYtabPjBeYXhcAAGolA3vSjJkZ88Zdx6+/pzrEaf35x9XeODgANYTlPox167cOfmJMAbnv4+1QGNA6pAwpg8qInhdAPa4GFTjrKQi5XSAsjrsf0qWSb3sjm+M4vQz5fNEaA1TGTMxo9vVu2wIATgWozlfavegXZJ7h/+3dYY7cOA7F8VQnu/e/5u4dtnqRwThD/KA/ywU0Jl9GQGCZkl0yHx9JSW4nGPRxKXuA8RzG/BygfJchBtujW5Ipzso9R5HGA998fC7MCMX2kYyrC+mrwd9z7+n5ZIMM9bODV8kYUjuEoeTPAyPemVxq0feB+cJ/xJYuKj3qFoL3r0khi4uHLEvLJwitTGlA4pz734whA7A+ElO05MEer2vLt9hPRgoQcVQmBUM6oNf7VxPlOXudyl7AYEI3Yk0z4TOYxXyEVDliCvOZp+NH8cmAEXNmevVk1p7fpr89MZyKP1l9xZIXzPmIdPmkkLlrqEL8bpbu8XUBJOTT+psdPAvPMV1LAnOlvgkIfyPoPsjxMxquUV2ncX/do65KmSvOriY70XSF2OecL0A7Yf08eYKMJeiHuFq7hE+A2V3WUGgE7sEKGHFjTuNKwAfp8HPGLRUA4N+GAv8QaOkqr91Yl9E+ActMDb059ktX92PIolQB+Hx9Ta9voeB8y/4A9mmCqjyzMvY5PhjHMchf7REHZNH15xSTIfafLss/R2hABEKmtPK5VwPszNms7xOwLB8VM5RrqZbprier+Ei/cncBZYzxQkCaIdv+uUvr9Mm3ViKmPIwBk0GAL7N0mRFjWh6z/+d0oRrAVGTMMSZwMwP9dOvW6077IcWUufB3cjnXUspxM2l+YvZwf2PHtFI+vEm/YMbhvGIJ/SI7Q4kyJGJVsk9mjIniD7Os27GEPjLiaLE323Nyimu85GXtMhM3kvs3F8BPsr+NISPNpR0WhKuaxvkSkIeu5PpW1rWqSrvnMqn+nvE4TxkymeA5zOnzcZnn34whtD281rb511sX+5mTPGVmrWWZP1vPd31Xix+gvMGcEwO9RycRvdFm7DH1TMB1VbqnQ1enDMYUWfNwtRelN1Nc32KVuIBA3qlxj6GMpZlhPYB4VIzyt4JhFyN+nXs/FH8vy5p7HlMZIjwyiGNGtCluDOrElNXKG+gEeAcw5j4HVygTbBf4qfTt/V7rP+YX5a7B+S1FFxFBvSeMs06/zfVk3f0Zf98gbJJge9WV6bKW9hP7vG8EeHcMUYxKOLkvY4D+WoDGMQO9TAt31oC2mysDAqhwaWBmf5iTACADEPZDZMJunYJG8NU9IburyOhztPgyjOt4igUE+3xW2SCYm7IFPQJ6z9SvclKKD6tchS0uyz4F/gocYDcjPLaRnTBIVzaex+Mp/pxiyXMAknvq5bZOR/vLBhX0oH8r/v6xx6d27x8FAgU3a2RixRCSooshjxUQPyV+zGooKD+PBUSwLmVfAWa09bOgZ9zQAwZMr/AcR1n10mWlHzaoNrv6WAogdazY9iXHUalOt+8FsJ8nt49rHYAMlxWAzBRYBWbATdkAVIujr22vLNd4Z+Z253pdh8quMQuMCp4NHUcA5PjWieDAjqByANJ1gRV0AcQ0yfioe6Rpldm2M6d/WuVHW7isUJ5lUV4yQ5mgC2y4SYGq/t5vjU8b4xmDynxo/TIi6iX7fgRk/ueQbrSMPY+rbrawAlfgFLA1nylSAHRbbjDj/n36ehk8ZBPome5eRZfV8w/lo+hK7Huso1TqgDkskvoat+L/X3QsGoDM2tHouKDcJmPWeT9kobMvXc+dwrkOhtJeK/Nm/XEXaCx01ssAWtc99rUOAJ6Uu/srhrQyWgn2g4K6GOvZL5TBwwSA742/x7ijZF3F7tfNUi7Lh5grvwbisoxwYReZamaf9VC8cWhVsAuV4Y5oYyaNcdAuoPa1TcPQZX3v/y16+N55kyFTGQIxNLcDpwIvFKe7cU7keHd2VMxrhR+Y+WXnx+xsrPbm4Mf+eTMn1mYGaFrjptDj/ZmkmjaXVWv19slxkTXJynCvnIdL8zdZOnn83A9ZFSTAB4VsSpGmyipunCjuGN9liwzZs8ddwQVEyzeyuGPYD7APuOS6o7aO9xWo/P3fbrnF8e5y2+7Lnamvyg8GKNeKog2m2NaW+SjwLCQhlr5/M6DamjnNlAbJLKtBaQZU226Ru2KbCe+Ph6Tk3THb/v5zaRQ7yz4M6usa1HywJU50n+7bgb4Z0sC2XIa8P56+JvvuWHTaa6kgbLn7ELvV9bU76A0+hpTKuh3PoryDwKvrflwx5F/1IMaK9wrK+h3ltf/+bb8d5d8/XdZ//txS/N9hxfdvGNg/ZQT1//4fih7V/hdi/qwAAAAASUVORK5CYII=);background-size:contain;cursor:crosshair;float:left}colorpicker-saturation i{display:block;height:7px;width:7px;border:1px solid #000;border-radius:5px;position:absolute;top:0;left:0;margin:-4px 0 0 -4px}colorpicker-saturation i::after{content:'';display:block;height:7px;width:7px;border:1px solid #fff;border-radius:5px}colorpicker-alpha,colorpicker-hue{width:15px;height:100px;float:left;cursor:row-resize;margin-left:4px;margin-bottom:4px}colorpicker-alpha i,colorpicker-hue i{display:block;height:2px;background:#000;border-top:1px solid #fff;position:absolute;top:0;left:0;width:100%;margin-top:-1px}.colorpicker,colorpicker-alpha{display:none}colorpicker-hue{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAMAAABw8qpSAAABLFBMVEUA/z8AuP//JAAA/33/3AAA/1ABAv8A/7r/AH7/jgD2AP8A//j/AEHmAP/XAP/HAP+4AP//ALyoAP+aAP+JAP97AP9rAP9cAP9MAP8+AP8tAP8fAP8PAP8ATv//AG7/cAD/vgD/APoAmv//ADH/AKwB/wMA5//4Eg4AL///AOr/UQD/nwAA/27/7AAA/+kAe/8Ayf8A/5sA/zEA/6z/ABEAEP8A/17/MgAA/9n/ACL/gAD/AJ0AXP8Aqv//AMoA/yHqFBb/zAD/AGD/ANsA9//1/wDk/wDV/wDF/wC3/wD/AI2m/wD/FACY/wCI/wB5/wBp/wD/YgBb/wBK/wA8/wAs/wAd/wAN/wAAPv8A/xH/AFAAi///rQAA/8r/+gAA1///QwAAH/8Abf8A/43c/JNGAAAAiUlEQVR4AQXBg2EDAAAAsMy2bds2ttp2+/8PTby79mDLsKJPq/oFPdk24dWXAxsGjRg1ZtykKdNmzJozb8GiJct63WjYl7fiWdOZkk0vOpyr2fVtyKl7FX2uXGjpcuxWDy69KdiRk5WRlpIUFxMVERLw78+vH1Unun1YV3ZkwKM1CYfq7nQK22sD03ITV2Aqp0IAAAAASUVORK5CYII=);background-size:contain}.colorpicker-color,colorpicker-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABkCAMAAACIElGlAAADAFBMVEUAAADT09PT09P////T09P////e3t7q6urT09Px8fHT09P////////T09PT09P////////T09PT09P////////////T09PT09P////////////T09P////T09PT09PT09P////T09PT09P////////////////T09P////T09PT09P////T09PT09PT09PT09PT09PT09P////T09P////T09PT09P////////////T09P////T09P////////////T09PT09P////T09P////////////////////T09P////////T09PT09P////////////////////////T09PT09P////////////////////////T09PT09P////T09PT09P////////T09P////////////T09P////////T09P////T09P////T09P////T09PT09PT09PT09P////T09PT09PT09PT09PT09PT09P////T09P////T09PT09P////////////T09PT09PT09P////T09PT09PT09PT09PT09PT09PT09P////////////////T09PT09P////////////T09P////////T09P////T09PT09PT09P////////T09P////////T09P////T09PT09P////////////////T09PT09PT09PT09P////T09PT09PT09PT09PT09PT09PT09P////T09P////T09PT09PT09PT09PT09P////////////////////////////////////T09P////T09P////T09P////T09PT09P////////////T09P////T09P////T09P////////////T09PT09P////////////////T09PT09P////T09P////T09PT09P////T09P////T09PT09P////T09PT09PT09PT09P////T09PT09P////////////T09PT09P////T09P////////T09MQsm1FAAABAHRSTlMAgJN8/vcDAfcCnJyGaZmZlomGk4yJOmM/eTxs8wY0YDFC7HNdLx18n5/7aUvzCcW9+qKiK8P0ZiltRwfdw/n8Px3WduJjItj78ss5PDHUNELbwP5wplA2FglEVwvkqNarCs4Z7b2sDLgQ0xNdyLrr0eLLUeW1Vs5TWQLwjPI3ZvQGdvxFyFrAeevaLCLvGd0kpRskGyf4qK605xKvFrGyDRHnBYMEkJaDkIBvB/gpH99O6CrbIC4nH3Lg2SXp4A7Qul/GDEgPSlMQ6LjqFU0SjyCCj5V/gnBN7xglL3O70WBU7gjFFEfft0sPTo1ndRipwXr2yRemWRVENq+ytbGuxGaWGQAAAnpJREFUeNpNxmdcDHAAxvEHOWXvmXX23ntv2XvvMg/Z44x0KaRBSnfcKSqlnYZKp1QqGpT20KZh783/eePj+3vzw3/q/AM9iURPTy6XS+RwcXNzcZMQTE1dTE3bE7y9S0u9xxD600rCGtpI2ErOsbGxzoiMrIqscnaOi4vDdnp4XYSrguwxQSb7KpMllycnl2MFaTSaTxrY5NrY5BoKb2BnZ2doZ29vb2OPSdSd4Bcc7OcXGhqamgqrYCsrq+mEiEtC3gUBDg55Dg53IkQYSYG+gb6+GEqB5wV0o5D8/JAQdKK5hA40n3BS+L6c0JJmE+ZQW8JEak1YQJ0Jq+jbaQEPnotGE+IrK+Pj+xKqU6pTUrIDAgKysZ+WEY5QQkJxcQIO0WrCUbL4YmFhgZ3UlVAUHR1d1JEwjVoRRpDJKxMTE/ShBoRR1I6whLyyvLyyUFAQFhbWhTCFFArFawXOCu/bEHpQLYKnZ0aGZw2CR1qah0dmpqurK+pTU0ILakJoTi+PC7j5RHTrqQg1qRkh3T3d3b0xoSE1ItSleoSe1IswmIYQPl8UlhLWkaOj41tHbKENBLX6j1qt/KFUKnFN+Onk9NvJCQdJpfqlUqGiIjExcRthN91/JsJmGkhYRO/OCBhHwwgxMWUxZQMIu8j8o7m5OfbRLMJh2kTYQ1FRhYVR2EHzCOtpMmEG3SUsJEvLoKAg2Prb2tqOJYSH+/uH33shwlTaS1hLBwhX6AYX2tuiRwStVntOa5yUZJwEqbREKjUi5Bjl5BhZW1uXWOMYGRBOnNDX1zfoxz1FwwkfSJfgo6vr41P7soBBNJ7Qm2YSzHTMzMwmEHRoMf0Fm5mYOUrzNBYAAAAASUVORK5CYII=);background-size:10px 100%}.colorpicker{top:0;left:0}.colorpicker colorpicker-alpha,.colorpicker colorpicker-hue,.colorpicker colorpicker-saturation{position:relative}.colorpicker input{width:100px;font-size:11px;color:#000;background-color:#fff}.colorpicker.alpha{min-width:140px}.colorpicker.alpha colorpicker-alpha{display:block}.colorpicker.dropdown{position:absolute}.colorpicker.colorpicker-fixed-position{position:fixed}.colorpicker .dropdown-menu::after,.colorpicker .dropdown-menu::before{content:'';display:inline-block;position:absolute}.colorpicker .dropdown-menu::after{clear:both;border:6px solid transparent;top:-5px;left:7px}.colorpicker .dropdown-menu::before{border:7px solid transparent;top:-6px;left:6px}.colorpicker .dropdown-menu{position:static;top:0;left:0;min-width:129px;padding:4px;margin-top:0}.colorpicker-position-top .dropdown-menu::after{border-top:6px solid #fff;border-bottom:0;top:auto;bottom:-5px}.colorpicker-position-top .dropdown-menu::before{border-top:7px solid rgba(0,0,0,.2);border-bottom:0;top:auto;bottom:-6px}.colorpicker-position-right .dropdown-menu::after{border-right:6px solid #fff;border-left:0;top:11px;left:-5px}.colorpicker-position-right .dropdown-menu::before{border-right:7px solid rgba(0,0,0,.2);border-left:0;top:10px;left:-6px}.colorpicker-position-bottom .dropdown-menu::after{border-bottom:6px solid #fff;border-top:0}.colorpicker-position-bottom .dropdown-menu::before{border-bottom:7px solid rgba(0,0,0,.2);border-top:0}.colorpicker-position-left .dropdown-menu::after{border-left:6px solid #fff;border-right:0;top:11px;left:auto;right:-5px}.colorpicker-position-left .dropdown-menu::before{border-left:7px solid rgba(0,0,0,.2);border-right:0;top:10px;left:auto;right:-6px}colorpicker-preview{display:block;height:10px;margin:5px 0 3px;clear:both;background-position:0 100%}/*! + * ui-select + * http://github.com/angular-ui/ui-select + * Version: 0.19.5 - 2016-10-24T23:13:59.551Z + * License: MIT + */.ui-select-highlight{font-weight:700}.ui-select-offscreen{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.selectize-control.single>.selectize-input>input,.selectize-control>.selectize-dropdown{width:100%}.ui-select-choices-row:hover{background-color:#f5f5f5}.ng-dirty.ng-invalid>a.select2-choice{border-color:#D44950}.select2-result-single{padding-left:0}.select-locked>.ui-select-match-close,.select2-locked>.select2-search-choice-close{display:none}.ui-select-container.select2.direction-up .ui-select-match,.ui-select-container[theme=select2].direction-up .ui-select-match{border-radius:0 0 4px 4px}.ui-select-container.select2.direction-up .ui-select-dropdown,.ui-select-container[theme=select2].direction-up .ui-select-dropdown{border-radius:4px 4px 0 0;border-top-width:1px;border-top-style:solid;box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-4px}.ui-select-container.select2.direction-up .ui-select-dropdown .select2-search,.ui-select-container[theme=select2].direction-up .ui-select-dropdown .select2-search{margin-top:4px}.ui-select-container.select2.direction-up.select2-dropdown-open .ui-select-match,.ui-select-container[theme=select2].direction-up.select2-dropdown-open .ui-select-match{border-bottom-color:#5897fb}.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden,.ui-select-container[theme=select2] .ui-select-dropdown .ui-select-search-hidden input{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.selectize-input.selectize-focus{border-color:#007FBB!important}.selectize-control.multi>.selectize-input>input{margin:0!important}.ng-dirty.ng-invalid>div.selectize-input{border-color:#D44950}.ui-select-container[theme=selectize].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-2px}.ui-select-container[theme=selectize] input.ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0;width:0}.btn-default-focus{color:#333;background-color:#EBEBEB;border-color:#ADADAD;text-decoration:none;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-select-bootstrap .ui-select-toggle{position:relative}.ui-select-bootstrap .ui-select-toggle>.caret{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.input-group>.ui-select-bootstrap.dropdown{position:static}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control{border-radius:4px 0 0 4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up{border-radius:4px 0 0 4px!important}.ui-select-bootstrap .ui-select-search-hidden{opacity:0;height:0;min-height:0;padding:0;margin:0;border:0}.ui-select-bootstrap>.ui-select-match>.btn{text-align:left!important}.ui-select-bootstrap>.ui-select-match>.caret{position:absolute;top:45%;right:15px}.ui-select-bootstrap>.ui-select-choices,.ui-select-bootstrap>.ui-select-no-choice{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:-1px}body>.ui-select-bootstrap.open{z-index:1000}.ui-select-multiple.ui-select-bootstrap{height:auto;padding:3px 3px 0}.ui-select-multiple.ui-select-bootstrap input.ui-select-search{background-color:transparent!important;border:none;outline:0;height:1.666666em;margin-bottom:3px}.ui-select-multiple.ui-select-bootstrap .ui-select-match .close{font-size:1.6em;line-height:.75}.ui-select-multiple.ui-select-bootstrap .ui-select-match-item{outline:0;margin:0 3px 3px 0}.ui-select-multiple .ui-select-match-item{position:relative}.ui-select-multiple .ui-select-match-item.dropping .ui-select-match-close{pointer-events:none}.ui-select-multiple:hover .ui-select-match-item.dropping-before:before{content:"";position:absolute;top:0;right:100%;height:100%;margin-right:2px;border-left:1px solid #428bca}.ui-select-multiple:hover .ui-select-match-item.dropping-after:after{content:"";position:absolute;top:0;left:100%;height:100%;margin-left:2px;border-right:1px solid #428bca}.md-chips:after,md-autocomplete button:after,md-checkbox .md-container:after,md-checkbox .md-container:before{content:''}.ui-select-bootstrap .ui-select-choices-row>span{cursor:pointer;display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.ui-select-bootstrap .ui-select-choices-row>span:focus,.ui-select-bootstrap .ui-select-choices-row>span:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.ui-select-bootstrap .ui-select-choices-row.active>span{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.ui-select-bootstrap .ui-select-choices-row.active.disabled>span,.ui-select-bootstrap .ui-select-choices-row.disabled>span{color:#777;cursor:not-allowed;background-color:#fff}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled],md-autocomplete[disabled] input{cursor:default}.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add{display:none!important}.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match{border-color:#D44950}.ui-select-container[theme=bootstrap].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25)}.md-button.md-fab,.md-button.md-raised:not([disabled]),.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused,.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.ui-select-bootstrap .ui-select-match-text{width:100%;padding-right:1em}.ui-select-bootstrap .ui-select-match-text span{display:inline-block;width:100%;overflow:hidden}.ui-select-bootstrap .ui-select-toggle>a.btn{position:absolute;height:10px;right:10px;margin-top:-2px}.ui-select-refreshing{position:absolute;right:0;padding:8px 27px;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased}.md-ripple-container,.md-scroll-mask,.md-scroll-mask>.md-scroll-mask-bar,.md-shadow,md-backdrop{position:absolute;top:0}button,html,input,md-bottom-sheet .md-subheader,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}@-webkit-keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes ui-select-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.ui-select-spin{-webkit-animation:ui-select-spin 2s infinite linear;animation:ui-select-spin 2s infinite linear}.ui-select-refreshing.ng-animate{-webkit-animation:none 0s}/*! + * Angular Material Design + * https://github.com/angular/material + * @license MIT + * v1.1.1 + */body,html{height:100%;position:relative;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button}textarea{vertical-align:top;overflow:auto}input[type=search]{-moz-box-sizing:border-box;-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-padding,md-card md-card-header md-card-avatar md-icon{padding:8px}.md-shadow{left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{-webkit-transition:box-shadow .28s cubic-bezier(.4,0,.2,1);transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;overflow:hidden;left:0;width:100%;height:100%;-webkit-transition:all .55s cubic-bezier(.25,.8,.25,1);transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{-webkit-transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1);transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1),-webkit-transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{-webkit-animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1);animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@-webkit-keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-margin{margin:8px}.md-scroll-mask{background-color:transparent;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;background-color:#fafafa;right:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl}bdo[dir=ltr]{direction:ltr}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1,.md-body-2{font-size:14px;letter-spacing:.010em}.md-body-1{font-weight:400;line-height:20px}.md-body-2{font-weight:500;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}button,input,select,textarea{font-size:100%}@-webkit-keyframes md-autocomplete-list-out{0%{-webkit-animation-timing-function:linear;animation-timing-function:linear}50%{opacity:0;height:40px;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-out{0%{-webkit-animation-timing-function:linear;animation-timing-function:linear}50%{opacity:0;height:40px;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{height:0;opacity:0}}@-webkit-keyframes md-autocomplete-list-in{0%{opacity:0;height:0;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}.md-autocomplete-suggestions li:not(.md-not-found-wrapper),.md-button,md-bottom-sheet md-list-item:hover{cursor:pointer}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;-webkit-transition:none;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{-webkit-transition:none;transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{-webkit-transition:opacity .15s linear;transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{-webkit-transform:scale(1);transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{-webkit-transform:scale(1);transform:scale(1)}md-autocomplete button.ng-leave{-webkit-transition:-webkit-transform .15s ease-out;transition:-webkit-transform .15s ease-out;transition:transform .15s ease-out;transition:transform .15s ease-out,-webkit-transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{-webkit-transform:scale(0);transform:scale(0)}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;-webkit-transition:background .15s linear;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete,md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}md-backdrop{-webkit-transition:opacity 450ms;transition:opacity 450ms;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-click-catcher,md-bottom-sheet{position:absolute}md-backdrop.md-select-backdrop{z-index:81;-webkit-transition-duration:0;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;-webkit-transition:opacity .4s;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{left:0;right:0;bottom:0;padding:8px 16px 88px;z-index:70;border-top-width:1px;border-top-style:solid;-webkit-transform:translate3d(0,80px,0);transform:translate3d(0,80px,0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;-webkit-transform:translate3d(0,80px,0)!important;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{-webkit-transform:translate3d(0,100%,0)!important;transform:translate3d(0,100%,0)!important;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:-webkit-box;display:-webkit-flex;display:flex;outline:0}md-bottom-sheet.md-list md-list-item{padding:0;-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-transition:all .5s;transition:all .5s;-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-bottom-sheet.md-grid md-list-item{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-transition:all .5s;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 33.33333%;flex:1 1 33.33333%;max-width:33.33333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 16.66667%;flex:1 1 16.66667%;max-width:16.66667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 14.28571%;flex:1 1 14.28571%;max-width:14.28571%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}.md-button,md-card md-card-header md-card-avatar+md-card-header-text .md-title,md-card md-card-header md-card-header-text .md-subhead{font-size:14px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{letter-spacing:.010em;display:inline-block;position:relative;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;-webkit-transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1);transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-chips md-chip._md-chip-content-edit-is-enabled,md-checkbox{-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{-webkit-transition:none;transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;overflow:hidden}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-property:background-color,box-shadow,-webkit-transform;transition-property:background-color,box-shadow,-webkit-transform;transition-property:background-color,box-shadow,transform;transition-property:background-color,box-shadow,transform,-webkit-transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;overflow:hidden}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{-webkit-transition:none;transition:none}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;overflow:hidden}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate3d(0,42px,0);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{-webkit-transform:translate3d(0,41px,0);transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate3d(0,-42px,0);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{-webkit-transform:translate3d(0,-43px,0);transform:translate3d(0,-43px,0)}.md-button-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;width:100%}.md-button-group>.md-button{-webkit-box-flex:1;-webkit-flex:1;flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}md-card,md-card md-card-header,md-card md-card-header md-card-header-text{display:-webkit-box;display:-webkit-flex}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}md-card md-card-header{padding:16px;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-header-text{display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;width:100%;height:auto}md-card md-card-title,md-card md-card-title md-card-title-text{display:-webkit-box;display:-webkit-flex;-webkit-box-direction:normal}md-card md-card-title{padding:24px 16px 16px;display:flex;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px}.md-chips:after{display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px;float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-khtml-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container md-autocomplete input,md-checkbox{position:relative}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px;float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=url],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=number]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=url]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=number]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0;background:0 0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips md-autocomplete button{display:none}md-checkbox,md-checkbox .md-container{display:inline-block;box-sizing:border-box}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}.md-calendar-date.md-calendar-date-disabled,md-checkbox[disabled]{cursor:default}[dir=rtl] md-checkbox{margin-left:16px;margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto;right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox.md-checked .md-icon:after,md-checkbox.md-indeterminate .md-icon:after{position:absolute;display:table;box-sizing:border-box;content:''}md-checkbox .md-icon{box-sizing:border-box;-webkit-transition:240ms;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:4.67px;top:.22px;width:6.67px;height:13.33px;border-width:2px;border-style:solid;border-top:0;border-left:0}md-checkbox.md-indeterminate .md-icon:after{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;white-space:normal;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;margin-left:30px;margin-right:0}md-calendar,md-option .md-text{-webkit-user-select:none;-ms-user-select:none}[dir=rtl] md-checkbox .md-label{margin-left:0;margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;-moz-user-select:none;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator,md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-date-selection-indicator{-webkit-transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}.md-calendar-month-label md-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{-webkit-transform:none;transform:none}.md-calendar-day-header{table-layout:fixed}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px;margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input,md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto;left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label,.md-datepicker-pos-adjusted .md-datepicker-input-mask,md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transition:-webkit-transform .2s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .2s cubic-bezier(.25,.8,.25,1);transition:transform .2s cubic-bezier(.25,.8,.25,1);transition:transform .2s cubic-bezier(.25,.8,.25,1),-webkit-transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{-webkit-transform:scale(1);transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;-webkit-transition:opacity .2s cubic-bezier(.5,0,.25,1);transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;-webkit-transform:translateY(-25%) translateX(45%);transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0;-webkit-transform:translateY(-25%) translateX(-45%);transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}.md-datepicker-open{overflow:hidden}.md-dialog-container,md-dialog{display:-webkit-box;display:-webkit-flex}.md-datepicker-calendar-pane .md-calendar{-webkit-transform:translateY(-85px);transform:translateY(-85px);-webkit-transition:-webkit-transform .65s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .65s cubic-bezier(.25,.8,.25,1);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition:transform .65s cubic-bezier(.25,.8,.25,1),-webkit-transform .65s cubic-bezier(.25,.8,.25,1);-webkit-transition-delay:125ms;transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{-webkit-transform:translateY(0);transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog,md-dialog>form{-webkit-flex-direction:column}md-dialog,md-dialog md-dialog-content,md-dialog>form{-webkit-box-orient:vertical;-webkit-box-direction:normal;overflow:auto}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transform:translate(0,100%) scale(.2);transform:translate(0,100%) scale(.2)}md-dialog>form{display:-webkit-box;display:-webkit-flex;display:flex;flex-direction:column}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{-webkit-box-ordinal-group:2;-webkit-order:1;order:1;-webkit-flex-direction:column;flex-direction:column;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-ordinal-group:3;-webkit-order:2;order:2;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px;padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin:8px 0 8px 8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0;margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger,md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center}md-fab-speed-dial.md-down,md-fab-speed-dial.md-down md-fab-actions{-webkit-flex-direction:column;-webkit-box-direction:normal;-webkit-box-orient:vertical}md-fab-speed-dial md-fab-actions{display:-webkit-box;display:-webkit-flex;display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up md-fab-actions{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left,md-fab-speed-dial.md-right{-webkit-flex-direction:row;-webkit-box-orient:horizontal}md-fab-speed-dial.md-left{-webkit-box-direction:normal;flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-left md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{-webkit-box-direction:normal;flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-right md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;-webkit-transition-duration:0s;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.14286s;transition-duration:.14286s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-icon,md-input-container{display:inline-block;vertical-align:middle}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem;margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.15s;transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;-webkit-transform:scale(1);transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{position:relative;padding:2px;margin:18px 0}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto;right:2px}md-input-container input[type=date],md-input-container input[type=time],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=email],md-input-container input[type=tel],md-input-container input[type=url],md-input-container input[type=text],md-input-container input[type=password],md-input-container input[type=datetime],md-input-container input[type=week],md-input-container input[type=color],md-input-container input[type=number],md-input-container input[type=search],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=time],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto;right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;-webkit-box-ordinal-group:2;-webkit-order:1;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;-webkit-transform:translate3d(0,28px,0) scale(1);transform:translate3d(0,28px,0) scale(1);-webkit-transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;-webkit-transform-origin:left top;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0;padding-right:3px;-webkit-transform-origin:right top;transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;-webkit-transform:translate3d(0,30px,0);transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;-webkit-transform:translate3d(0,24px,0);transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{-webkit-transition:none;transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{-webkit-box-ordinal-group:3;-webkit-order:2;order:2;display:block;margin-top:0;background:0 0;border-width:0 0 1px;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left;padding:2px 2px 1px;padding:2px 2px 1px}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{-webkit-box-flex:0!important;-webkit-flex:none!important;flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left;padding-right:0;padding-left:2px}md-input-container .md-input-messages-animation{position:relative;-webkit-box-ordinal-group:5;-webkit-order:4;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0;padding-left:5px}md-input-container .md-input-message-animation.ng-enter,md-input-container .md-input-message-animation:not(.ng-animate),md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){-webkit-transform:translate3d(0,6px,0) scale(.75);transform:translate3d(0,6px,0) scale(.75);-webkit-transition:width cubic-bezier(.25,.8,.25,1) .4s,-webkit-transform cubic-bezier(.25,.8,.25,1) .4s;transition:width cubic-bezier(.25,.8,.25,1) .4s,-webkit-transform cubic-bezier(.25,.8,.25,1) .4s;transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s;transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s,-webkit-transform cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{-webkit-transition:none;transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{-webkit-transition:margin-top .4s cubic-bezier(.25,.8,.25,1);transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto;right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left,md-input-container.md-icon-right{padding-left:0;padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto;right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px;padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto;left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}md-list-item,md-list-item._md-button-wrap{position:relative}md-list{display:block;padding:8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{-webkit-box-flex:0;-webkit-flex:none;flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item.md-proxy-focus.md-focused .md-no-style{-webkit-transition:background-color .15s linear;transition:background-color .15s linear}md-list-item._md-button-wrap>div.md-button:first-child{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:inherit;flex-direction:inherit;-webkit-box-align:inherit;-webkit-align-items:inherit;-ms-grid-row-align:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{-webkit-align-self:center;align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{-webkit-box-flex:0;-webkit-flex:none;flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px;margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-shrink:0;flex-shrink:0;margin:auto 0 auto auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{-webkit-align-self:flex-start;align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-menu-content,md-menu-item{display:-webkit-box;display:-webkit-flex}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}md-menu-bar,md-menu-bar .md-menu,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.2s;transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-delay:.1s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:250ms;transition-duration:250ms}md-menu-content{display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}._md-nav-bar-list,md-menu-item{-webkit-box-orient:horizontal;-webkit-box-direction:normal}md-menu-item>*,md-menu-item>.md-button{margin:auto 0;padding-left:16px;padding-right:16px;width:100%}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;-webkit-flex-direction:row;flex-direction:row;min-height:48px;height:48px;-webkit-align-content:center;align-content:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;font-size:15px;text-transform:none;font-weight:400;height:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px 28px 12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:-webkit-box;display:-webkit-flex;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-align-self:flex-end;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}.md-tab,md-optgroup label,md-toast .md-action{text-transform:uppercase}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;-webkit-transform:rotate(270deg) scaleY(.45) scaleX(.9);transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}._md-nav-bar-list,md-select{display:-webkit-box;display:-webkit-flex}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{-webkit-transform:rotate(90deg) scaleY(.45) scaleX(.9);transform:rotate(90deg) scaleY(.45) scaleX(.9);right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;-webkit-flex-direction:row;flex-direction:row}md-select-menu,md-select-menu.md-reverse,md-sidenav,md-slider[md-vertical]{-webkit-box-orient:vertical}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;-webkit-transition:background-color .35s cubic-bezier(.35,0,.25,1);transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{-webkit-transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1);transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{-webkit-transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1);transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;-webkit-transition:none;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;-webkit-transition:none;transition:none}.md-panel._md-panel-animate-enter{opacity:1;-webkit-transition:all .3s cubic-bezier(0,0,.2,1);transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;-webkit-transition:all .3s cubic-bezier(.4,0,1,1);transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;-webkit-transition:opacity .3s cubic-bezier(0,0,.2,1);transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{-webkit-transition:opacity .3s cubic-bezier(.4,0,1,1);transition:opacity .3s cubic-bezier(.4,0,1,1)}@-webkit-keyframes indeterminate-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes indeterminate-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{-webkit-animation:indeterminate-rotate 2.9s linear infinite;animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear,md-progress-linear .md-container{display:block;position:relative;height:5px;width:100%}md-progress-linear{padding-top:0!important;margin-bottom:0!important}md-radio-button,md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{overflow:hidden;-webkit-transform:translate(0,0) scale(1,1);transform:translate(0,0) scale(1,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1,md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{-webkit-transition:-webkit-transform .2s linear;transition:-webkit-transform .2s linear;transition:transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar2{-webkit-transition:all .2s linear;transition:all .2s linear;-webkit-animation:query .8s infinite cubic-bezier(.39,.575,.565,1);animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{-webkit-animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite;animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{-webkit-animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite;animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{-webkit-animation:none;animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1,md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{-webkit-animation-name:none;animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;-webkit-transition:all .2s linear;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;-webkit-animation:buffer 3s infinite linear;animation:buffer 3s infinite linear}@-webkit-keyframes query{0%{opacity:1;-webkit-transform:translateX(35%) scale(.3,1);transform:translateX(35%) scale(.3,1)}100%{opacity:0;-webkit-transform:translateX(-50%) scale(0,1);transform:translateX(-50%) scale(0,1)}}@keyframes query{0%{opacity:1;-webkit-transform:translateX(35%) scale(.3,1);transform:translateX(35%) scale(.3,1)}100%{opacity:0;-webkit-transform:translateX(-50%) scale(0,1);transform:translateX(-50%) scale(0,1)}}@-webkit-keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@-webkit-keyframes md-progress-linear-indeterminate-scale-1{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:linear;animation-timing-function:linear}36.6%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.33473,.12482,.78584,1);animation-timing-function:cubic-bezier(.33473,.12482,.78584,1)}69.15%{-webkit-transform:scaleX(.83);transform:scaleX(.83);-webkit-animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098);animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098)}100%{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-scale-1{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:linear;animation-timing-function:linear}36.6%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.33473,.12482,.78584,1);animation-timing-function:cubic-bezier(.33473,.12482,.78584,1)}69.15%{-webkit-transform:scaleX(.83);transform:scaleX(.83);-webkit-animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098);animation-timing-function:cubic-bezier(.22573,0,.23365,1.37098)}100%{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@-webkit-keyframes md-progress-linear-indeterminate-1{0%{left:-105.16667%;-webkit-animation-timing-function:linear;animation-timing-function:linear}20%{left:-105.16667%;-webkit-animation-timing-function:cubic-bezier(.5,0,.70173,.49582);animation-timing-function:cubic-bezier(.5,0,.70173,.49582)}69.15%{left:21.5%;-webkit-animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635);animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635)}100%{left:95.44444%}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.16667%;-webkit-animation-timing-function:linear;animation-timing-function:linear}20%{left:-105.16667%;-webkit-animation-timing-function:cubic-bezier(.5,0,.70173,.49582);animation-timing-function:cubic-bezier(.5,0,.70173,.49582)}69.15%{left:21.5%;-webkit-animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635);animation-timing-function:cubic-bezier(.30244,.38135,.55,.95635)}100%{left:95.44444%}}@-webkit-keyframes md-progress-linear-indeterminate-scale-2{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397);animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397)}19.15%{-webkit-transform:scaleX(.57);transform:scaleX(.57);-webkit-animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432);animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432)}44.15%{-webkit-transform:scaleX(.91);transform:scaleX(.91);-webkit-animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179);animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179)}100%{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-scale-2{0%{-webkit-transform:scaleX(.1);transform:scaleX(.1);-webkit-animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397);animation-timing-function:cubic-bezier(.20503,.05705,.57661,.45397)}19.15%{-webkit-transform:scaleX(.57);transform:scaleX(.57);-webkit-animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432);animation-timing-function:cubic-bezier(.15231,.19643,.64837,1.00432)}44.15%{-webkit-transform:scaleX(.91);transform:scaleX(.91);-webkit-animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179);animation-timing-function:cubic-bezier(.25776,-.00316,.21176,1.38179)}100%{-webkit-transform:scaleX(.1);transform:scaleX(.1)}}@-webkit-keyframes md-progress-linear-indeterminate-2{0%{left:-54.88889%;-webkit-animation-timing-function:cubic-bezier(.15,0,.51506,.40968);animation-timing-function:cubic-bezier(.15,0,.51506,.40968)}25%{left:-17.25%;-webkit-animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372);animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372)}48.35%{left:29.5%;-webkit-animation-timing-function:cubic-bezier(.4,.62703,.6,.90203);animation-timing-function:cubic-bezier(.4,.62703,.6,.90203)}100%{left:117.38889%}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.88889%;-webkit-animation-timing-function:cubic-bezier(.15,0,.51506,.40968);animation-timing-function:cubic-bezier(.15,0,.51506,.40968)}25%{left:-17.25%;-webkit-animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372);animation-timing-function:cubic-bezier(.31033,.28406,.8,.73372)}48.35%{left:29.5%;-webkit-animation-timing-function:cubic-bezier(.4,.62703,.6,.90203);animation-timing-function:cubic-bezier(.4,.62703,.6,.90203)}100%{left:117.38889%}}md-radio-button{box-sizing:border-box;display:block;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled],md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}md-radio-group[disabled] md-radio-button,md-radio-group[disabled] md-radio-button .md-container,md-select[disabled]:hover{cursor:default}[dir=rtl] md-radio-button .md-container{left:auto;right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off,md-radio-button .md-on{position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;box-sizing:border-box}md-radio-button .md-off{border-style:solid;border-width:2px;-webkit-transition:border-color ease .28s;transition:border-color ease .28s}md-radio-button .md-on{-webkit-transition:-webkit-transform ease .28s;transition:-webkit-transform ease .28s;transition:transform ease .28s;transition:transform ease .28s,-webkit-transform ease .28s;-webkit-transform:scale(0);transform:scale(0)}md-radio-button.md-checked .md-on{-webkit-transform:scale(.5);transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}[dir=rtl] md-radio-button .md-label{margin-left:0;margin-right:30px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin:0 16px 0 0}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px;margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-option,md-select:not([disabled]):hover{cursor:pointer}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}md-input-container.md-input-invalid md-select .md-select-value,md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{padding-bottom:1px;border-bottom-style:solid}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1);transition:transform .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);-webkit-transform-origin:left top;transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transform-origin:right top;transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{-webkit-transform:translateY(-22px) translateX(-2px) scale(.75);transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:150ms;transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:150ms;transition-duration:150ms;-webkit-transition-delay:.1s;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:250ms;transition-duration:250ms}md-input-container>md-select{margin:0;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-select{display:flex;margin:20px 0 26px}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){-webkit-transform:translate3d(0,1px,0);transform:translate3d(0,1px,0)}.md-select-value{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;text-align:end;width:24px;margin:0 4px;-webkit-transform:translate3d(0,-2px,0);transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;-webkit-transform:scaleY(.5) scaleX(1);transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-ordinal-group:2;-webkit-order:1;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-option,md-select-menu{display:-webkit-box;display:-webkit-flex}md-select-menu{display:flex;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(1);transform:scale(1)}md-select-menu.md-reverse{-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}md-slider,md-slider-container{-webkit-box-orient:horizontal}md-sidenav,md-slider,md-slider-container,md-slider-container[md-vertical],md-slider[md-vertical],md-tabs-canvas.md-center-tabs{-webkit-box-direction:normal}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{-webkit-transform-origin:right top;transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{position:relative;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:auto;-webkit-transition:background .15s linear;transition:background .15s linear;padding:0 16px;height:48px}md-option[disabled],md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-moz-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-switch,md-switch .md-container{-webkit-user-select:none;-ms-user-select:none}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;padding:16px;font-weight:500}md-slider .md-sign .md-thumb-text,md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{font-size:12px;font-weight:700;z-index:1}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px;padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto;margin-left:10.67px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto;right:0;margin-left:auto;margin-right:10.67px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-slider .md-track,md-slider .md-track-ticks{right:0;left:0;position:absolute;height:100%}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;-webkit-transition:240ms;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;left:4.67px;top:.22px;display:table;width:6.67px;height:13.33px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-sidenav{box-sizing:border-box;position:absolute;-webkit-flex-direction:column;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transition:.2s ease-in all;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-slider,md-slider .md-slider-content{position:relative}md-sidenav.md-locked-open-remove-active{-webkit-transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{-webkit-transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.md-sidenav-right.md-closed{-webkit-transform:translate(0,0);transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@-webkit-keyframes sliderFocusThumb{0%,100%{-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes sliderFocusThumb{0%,100%{-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes sliderDiscreteFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes sliderDiscreteFocusThumb{0%{-webkit-transform:scale(.7);transform:scale(.7)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(0);transform:scale(0)}}@-webkit-keyframes sliderDiscreteFocusRing{0%{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(0);transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{-webkit-transform:scale(.7);transform:scale(.7);opacity:0}50%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(0);transform:scale(0)}}md-slider{height:48px;min-width:128px;margin-left:4px;margin-right:4px;padding:0;display:block;-webkit-flex-direction:row;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track-fill{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:width,height;transition-property:width,height}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb,md-slider .md-thumb:after{width:20px;height:20px;border-radius:20px;position:absolute}md-slider .md-thumb-container{position:absolute;left:0;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:left,right,bottom;transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;left:-10px;top:14px;-webkit-transform:scale(.7);transform:scale(.7);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';border-width:3px;border-style:solid;-webkit-transition:inherit;transition:inherit}md-slider .md-sign{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;-webkit-transform:scale(.4) translate3d(0,67.5px,0);transform:scale(.4) translate3d(0,67.5px,0);-webkit-transition:all .3s cubic-bezier(.35,0,.25,1);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks,md-slider[disabled] .md-track-fill{display:none}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;-webkit-transform:translate3d(0,-8px,0);transform:translate3d(0,-8px,0);-webkit-transition:all .2s cubic-bezier(.35,0,.25,1);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;-webkit-transform:scale(.7);transform:scale(.7);opacity:0;-webkit-transition:all .35s cubic-bezier(.35,0,.25,1);transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;-webkit-transform:scale(.5);transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{-webkit-transition:none;transition:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{-webkit-transform:scale(.8);transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{-webkit-transform:scale(1);transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{-webkit-animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1);animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{-webkit-transform:scale(1);transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{-webkit-transform:scale(0);transform:scale(0);-webkit-animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{-webkit-animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1);animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-ticks,md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{-webkit-transform:scale(.5);transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{-webkit-flex-direction:column;flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-top:12px;padding-bottom:12px;width:48px;-webkit-align-self:center;align-self:center;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;-webkit-transform:scale(.4) translate3d(67.5px,0,0);transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;-webkit-transform:translate3d(0,-8px,0);transform:translate3d(0,-8px,0);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{-webkit-transform:scale(0);transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;-webkit-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0;right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-direction:row;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:color,max-width;transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;-webkit-transform:translate3d(-9999px,-9999px,0);transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{-webkit-animation:subheaderStickyHoverIn .3s ease-out both;animation:subheaderStickyHoverIn .3s ease-out both}@-webkit-keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@-webkit-keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){-webkit-transition:.2s ease-out margin;transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{-webkit-animation:subheaderStickyHoverOut .3s ease-out both;animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 16px 16px 0;white-space:nowrap;cursor:pointer;outline:0;-moz-user-select:none;user-select:none;height:30px;line-height:28px;-webkit-box-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;margin-left:inherit}[dir=rtl] md-switch{margin-left:16px;margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0;margin-right:inherit}md-switch[disabled],md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:-webkit-grab;cursor:grab;width:36px;height:24px;position:relative;-moz-user-select:none;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:-webkit-grabbing;cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:1}md-switch .md-thumb,md-switch .md-thumb:before{border-radius:50%;left:0;top:0;position:absolute}md-switch.md-checked .md-thumb-container{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}md-switch .md-thumb{margin:0;outline:0;height:20px;width:20px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;content:'';display:block;height:auto;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-tabs,md-tabs-canvas,md-tabs-wrapper,md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{-webkit-transition:all 80ms linear;transition:all 80ms linear;-webkit-transition-property:background-color,-webkit-transform;transition-property:background-color,-webkit-transform;transition-property:transform,background-color;transition-property:transform,background-color,-webkit-transform}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{-webkit-transition-delay:50ms;transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9E9E9E}md-switch.md-default-theme .md-thumb{background-color:#fff}}@-webkit-keyframes md-tab-content-hide{0%,50%{opacity:1}100%{opacity:0}}@keyframes md-tab-content-hide{0%,50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;-webkit-flex-shrink:0;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:center center no-repeat;-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{-webkit-transition:none;transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{-webkit-transform:translate3d(-50%,-50%,0) rotate(180deg);transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1}md-tabs-canvas{overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;-webkit-transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1),-webkit-transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-ink-bar,md-tab,md-tab-content{position:absolute}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;top:0;left:0;right:0;bottom:0;-webkit-transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:-webkit-transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1);transition:transform .5s cubic-bezier(.35,0,.25,1),-webkit-transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{-webkit-transition:none;transition:none}md-tab-content.md-left:not(.md-active){-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){-webkit-transform:translateX(100%);transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{-webkit-transition:visibility 0s linear;transition:visibility 0s linear;-webkit-transition-delay:.5s;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){-webkit-transform:translateX(-100%);transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{-webkit-transition:visibility 0s linear;transition:visibility 0s linear;-webkit-transition-delay:.5s;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{-webkit-animation:1s md-tab-content-hide;animation:1s md-tab-content-hide}md-ink-bar{left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{-webkit-transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1);transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{-webkit-transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1);transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;-webkit-transition:background-color .35s cubic-bezier(.35,0,.25,1);transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.md-tab.md-active,md-toast{cursor:default}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{-webkit-transition:none;transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;overflow:hidden;padding:8px;opacity:1;-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:-webkit-box;display:-webkit-flex;display:flex;direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;-webkit-transform:translate3d(0,0,0) rotateZ(0);transform:translate3d(0,0,0) rotateZ(0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}.md-toolbar-tools,md-toolbar{font-size:20px;display:-webkit-box;display:-webkit-flex;box-sizing:border-box;-webkit-box-direction:normal}[dir=rtl] md-toast .md-toast-content{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}md-toast .md-toast-content span{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule,md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px;margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{-webkit-transform:translate3d(0,50%,0);transform:translate3d(0,50%,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}.md-toast-animating{overflow:hidden!important}md-toolbar{display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;position:relative;z-index:2;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.35,0,.25,1);transition-timing-function:cubic-bezier(.35,0,.25,1);-webkit-transition-property:background-color,fill,color;transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{-webkit-transition:box-shadow .5s linear;transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{-webkit-transition:none;transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{letter-spacing:.005em;font-weight:400;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.35,0,.25,1);transition-timing-function:cubic-bezier(.35,0,.25,1);-webkit-transition-property:background-color,fill,color;transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{-webkit-transition:none;transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-toast._md-start,md-toast.md-left{left:0}md-toast._md-end,md-toast.md-right{right:0}md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-top{top:0}[dir=rtl] md-toast._md-start{left:auto;right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{-webkit-transform:translate3d(50%,0,0);transform:translate3d(50%,0,0)}md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transform-origin:center top;transform-origin:center top;-webkit-transform:scale(0);transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transform:scale(0);transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{-webkit-transform:scale(1);transform:scale(1);opacity:.9;-webkit-transform-origin:center top;transform-origin:center top}md-tooltip .md-content.md-show-remove{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-duration:.2s;transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{-webkit-transform:scale(0);transform:scale(0);opacity:0}md-tooltip.md-hide{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-offsetter,.md-virtual-repeat-container .md-virtual-repeat-scroller{left:0;margin:0;padding:0;position:absolute;right:0;box-sizing:border-box;top:0}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;overflow-x:hidden;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.flex-0,.layout-row>.flex-0{max-width:0%;max-height:100%}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex{-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box}.flex-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.flex-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-0,.flex-noshrink{-webkit-box-flex:1;box-sizing:border-box}.flex-noshrink{-webkit-flex:1 0 auto;flex:1 0 auto}.flex-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5,.layout-row>.flex-5{-webkit-box-flex:1;max-width:5%;max-height:100%;box-sizing:border-box}.flex-5{-webkit-flex:1 1 5%;flex:1 1 5%}.layout-row>.flex-5{-webkit-flex:1 1 5%;flex:1 1 5%}.layout-column>.flex-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10,.layout-row>.flex-10{max-width:10%;max-height:100%;box-sizing:border-box}.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%}.layout-row>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%}.layout-column>.flex-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15,.layout-row>.flex-15{-webkit-box-flex:1;max-width:15%;max-height:100%;box-sizing:border-box}.flex-15{-webkit-flex:1 1 15%;flex:1 1 15%}.layout-row>.flex-15{-webkit-flex:1 1 15%;flex:1 1 15%}.layout-column>.flex-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20,.layout-row>.flex-20{max-width:20%;max-height:100%;box-sizing:border-box}.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%}.layout-row>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%}.layout-column>.flex-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25,.layout-row>.flex-25{-webkit-box-flex:1;max-width:25%;max-height:100%;box-sizing:border-box}.flex-25{-webkit-flex:1 1 25%;flex:1 1 25%}.layout-row>.flex-25{-webkit-flex:1 1 25%;flex:1 1 25%}.layout-column>.flex-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30,.layout-row>.flex-30{max-width:30%;max-height:100%;box-sizing:border-box}.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%}.layout-row>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%}.layout-column>.flex-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35,.layout-row>.flex-35{-webkit-box-flex:1;max-width:35%;max-height:100%;box-sizing:border-box}.flex-35{-webkit-flex:1 1 35%;flex:1 1 35%}.layout-row>.flex-35{-webkit-flex:1 1 35%;flex:1 1 35%}.layout-column>.flex-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40,.layout-row>.flex-40{max-width:40%;max-height:100%;box-sizing:border-box}.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%}.layout-row>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%}.layout-column>.flex-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45,.layout-row>.flex-45{-webkit-box-flex:1;max-width:45%;max-height:100%;box-sizing:border-box}.flex-45{-webkit-flex:1 1 45%;flex:1 1 45%}.layout-row>.flex-45{-webkit-flex:1 1 45%;flex:1 1 45%}.layout-column>.flex-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50,.layout-row>.flex-50{max-width:50%;max-height:100%;box-sizing:border-box}.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%}.layout-row>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%}.layout-column>.flex-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55,.layout-row>.flex-55{-webkit-box-flex:1;max-width:55%;max-height:100%;box-sizing:border-box}.flex-55{-webkit-flex:1 1 55%;flex:1 1 55%}.layout-row>.flex-55{-webkit-flex:1 1 55%;flex:1 1 55%}.layout-column>.flex-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60,.layout-row>.flex-60{max-width:60%;max-height:100%;box-sizing:border-box}.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%}.layout-row>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%}.layout-column>.flex-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65,.layout-row>.flex-65{-webkit-box-flex:1;max-width:65%;max-height:100%;box-sizing:border-box}.flex-65{-webkit-flex:1 1 65%;flex:1 1 65%}.layout-row>.flex-65{-webkit-flex:1 1 65%;flex:1 1 65%}.layout-column>.flex-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70,.layout-row>.flex-70{max-width:70%;max-height:100%;box-sizing:border-box}.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%}.layout-row>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%}.layout-column>.flex-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75,.layout-row>.flex-75{-webkit-box-flex:1;max-width:75%;max-height:100%;box-sizing:border-box}.flex-75{-webkit-flex:1 1 75%;flex:1 1 75%}.layout-row>.flex-75{-webkit-flex:1 1 75%;flex:1 1 75%}.layout-column>.flex-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80,.layout-row>.flex-80{max-width:80%;max-height:100%;box-sizing:border-box}.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%}.layout-row>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%}.layout-column>.flex-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85,.layout-row>.flex-85{-webkit-box-flex:1;max-width:85%;max-height:100%;box-sizing:border-box}.flex-85{-webkit-flex:1 1 85%;flex:1 1 85%}.layout-row>.flex-85{-webkit-flex:1 1 85%;flex:1 1 85%}.layout-column>.flex-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90,.layout-row>.flex-90{max-width:90%;max-height:100%;box-sizing:border-box}.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%}.layout-row>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%}.layout-column>.flex-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95,.layout-row>.flex-95{-webkit-box-flex:1;max-width:95%;max-height:100%;box-sizing:border-box}.flex-95{-webkit-flex:1 1 95%;flex:1 1 95%}.layout-row>.flex-95{-webkit-flex:1 1 95%;flex:1 1 95%}.flex-100,.layout-column>.flex-95{-webkit-box-flex:1;max-width:100%}.layout-column>.flex-95{-webkit-flex:1 1 95%;flex:1 1 95%;max-height:95%;box-sizing:border-box}.flex-100,.layout-row>.flex-33,.layout-row>.flex-66{max-height:100%;box-sizing:border-box}.flex-100{-webkit-flex:1 1 100%;flex:1 1 100%}.layout-column>.flex-100,.layout-row>.flex-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-row>.flex{min-width:0}.layout-column>.flex-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{-webkit-flex-wrap:wrap;flex-wrap:wrap}.layout-nowrap{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.flex-xs,.flex-xs-auto,.flex-xs-grow,.flex-xs-initial,.flex-xs-none,.flex-xs-noshrink{box-sizing:border-box}.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-xs--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-xs--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-xs--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-xs--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-xs--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-xs--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-xs--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-xs--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-xs--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-xs--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-xs--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-xs--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-xs--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-xs--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-xs--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-xs--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-xs--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-xs--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-xs--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-xs-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-xs-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-xs-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-xs-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-xs-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-xs-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-xs-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-xs-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-xs-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-xs-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-xs-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-xs-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-xs-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-xs-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-xs-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-xs-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-xs-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-xs-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-xs-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-xs-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-xs-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-xs{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-xs-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-xs-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-xs-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-xs-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-xs-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-xs-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xs-0,.layout-row>.flex-xs-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-xs-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-xs-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5,.layout-row>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10,.layout-row>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15,.layout-row>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20,.layout-row>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25,.layout-row>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30,.layout-row>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35,.layout-row>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40,.layout-row>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45,.layout-row>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50,.layout-row>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55,.layout-row>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60,.layout-row>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65,.layout-row>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70,.layout-row>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75,.layout-row>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80,.layout-row>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85,.layout-row>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90,.layout-row>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95,.layout-row>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100,.layout-column>.flex-xs-100,.layout-row>.flex-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33,.layout-row>.flex-xs-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-xs-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex-xs-100,.layout-xs-row>.flex-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-xs-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-xs-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:600px){.flex-gt-xs,.flex-gt-xs-auto,.flex-gt-xs-grow,.flex-gt-xs-initial,.flex-gt-xs-none,.flex-gt-xs-noshrink{box-sizing:border-box}.flex-order-gt-xs--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-xs--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-xs--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-xs--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-xs--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-xs--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-xs--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-xs--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-xs--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-xs--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-xs--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-xs--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-xs--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-xs--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-xs--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-xs--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-xs--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-xs--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-xs--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-xs--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-xs-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-xs-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-xs-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-xs-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-xs-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-xs-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-xs-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-xs-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-xs-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-xs-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-xs-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-xs-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-xs-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-xs-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-xs-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-xs-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-xs-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-xs-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-xs-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-xs-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-xs-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-xs{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-gt-xs-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-xs-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-gt-xs-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-gt-xs-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-gt-xs-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-gt-xs-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0,.layout-row>.flex-gt-xs-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-gt-xs-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-gt-xs-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-gt-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5,.layout-row>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10,.layout-row>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15,.layout-row>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20,.layout-row>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25,.layout-row>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30,.layout-row>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35,.layout-row>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40,.layout-row>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45,.layout-row>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50,.layout-row>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55,.layout-row>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60,.layout-row>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65,.layout-row>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70,.layout-row>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75,.layout-row>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80,.layout-row>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85,.layout-row>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90,.layout-row>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95,.layout-row>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100,.layout-column>.flex-gt-xs-100,.layout-row>.flex-gt-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33,.layout-row>.flex-gt-xs-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-xs-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100,.layout-gt-xs-row>.flex-gt-xs-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-xs-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-xs-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:600px) and (max-width:959px){.flex-sm,.flex-sm-auto,.flex-sm-grow,.flex-sm-initial,.flex-sm-none,.flex-sm-noshrink{box-sizing:border-box}.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-sm--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-sm--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-sm--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-sm--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-sm--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-sm--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-sm--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-sm--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-sm--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-sm--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-sm--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-sm--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-sm--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-sm--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-sm--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-sm--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-sm--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-sm--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-sm--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-sm-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-sm-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-sm-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-sm-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-sm-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-sm-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-sm-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-sm-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-sm-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-sm-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-sm-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-sm-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-sm-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-sm-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-sm-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-sm-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-sm-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-sm-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-sm-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-sm-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-sm-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-sm{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-sm-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-sm-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-sm-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-sm-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-sm-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-sm-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-sm-0,.layout-row>.flex-sm-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-sm-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-sm-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5,.layout-row>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10,.layout-row>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15,.layout-row>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20,.layout-row>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25,.layout-row>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30,.layout-row>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35,.layout-row>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40,.layout-row>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45,.layout-row>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50,.layout-row>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55,.layout-row>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60,.layout-row>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65,.layout-row>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70,.layout-row>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75,.layout-row>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80,.layout-row>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85,.layout-row>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90,.layout-row>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95,.layout-row>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100,.layout-column>.flex-sm-100,.layout-row>.flex-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33,.layout-row>.flex-sm-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-sm-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex-sm-100,.layout-sm-row>.flex-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-sm-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-sm-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:960px){.flex-gt-sm,.flex-gt-sm-auto,.flex-gt-sm-grow,.flex-gt-sm-initial,.flex-gt-sm-none,.flex-gt-sm-noshrink{box-sizing:border-box}.flex-order-gt-sm--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-sm--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-sm--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-sm--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-sm--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-sm--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-sm--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-sm--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-sm--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-sm--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-sm--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-sm--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-sm--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-sm--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-sm--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-sm--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-sm--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-sm--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-sm--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-sm--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-sm-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-sm-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-sm-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-sm-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-sm-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-sm-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-sm-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-sm-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-sm-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-sm-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-sm-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-sm-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-sm-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-sm-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-sm-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-sm-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-sm-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-sm-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-sm-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-sm-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-sm-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-sm{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-gt-sm-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-sm-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-gt-sm-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-gt-sm-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-gt-sm-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-gt-sm-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0,.layout-row>.flex-gt-sm-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-gt-sm-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-gt-sm-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-gt-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5,.layout-row>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10,.layout-row>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15,.layout-row>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20,.layout-row>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25,.layout-row>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30,.layout-row>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35,.layout-row>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40,.layout-row>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45,.layout-row>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50,.layout-row>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55,.layout-row>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60,.layout-row>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65,.layout-row>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70,.layout-row>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75,.layout-row>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80,.layout-row>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85,.layout-row>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90,.layout-row>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95,.layout-row>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100,.layout-column>.flex-gt-sm-100,.layout-row>.flex-gt-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33,.layout-row>.flex-gt-sm-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-sm-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100,.layout-gt-sm-row>.flex-gt-sm-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-sm-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-sm-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.flex-md,.flex-md-auto,.flex-md-grow,.flex-md-initial,.flex-md-none,.flex-md-noshrink{box-sizing:border-box}.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.flex-order-md--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-md--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-md--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-md--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-md--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-md--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-md--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-md--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-md--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-md--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-md--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-md--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-md--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-md--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-md--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-md--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-md--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-md--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-md--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-md--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-md-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-md-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-md-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-md-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-md-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-md-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-md-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-md-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-md-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-md-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-md-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-md-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-md-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-md-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-md-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-md-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-md-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-md-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-md-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-md-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-md-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-md{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-md-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-md-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-md-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-md-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-md-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-md-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-md-0,.layout-row>.flex-md-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-md-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-md-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-md-row>.flex-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5,.layout-row>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-md-row>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10,.layout-row>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-md-row>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15,.layout-row>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-md-row>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20,.layout-row>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-md-row>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25,.layout-row>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-md-row>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30,.layout-row>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-md-row>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35,.layout-row>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-md-row>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40,.layout-row>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-md-row>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45,.layout-row>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-md-row>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50,.layout-row>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-md-row>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55,.layout-row>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-md-row>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60,.layout-row>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-md-row>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65,.layout-row>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-md-row>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70,.layout-row>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-md-row>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75,.layout-row>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-md-row>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80,.layout-row>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-md-row>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85,.layout-row>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-md-row>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90,.layout-row>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-md-row>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95,.layout-row>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-md-row>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100,.layout-column>.flex-md-100,.layout-row>.flex-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33,.layout-row>.flex-md-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-md-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex-md-100,.layout-md-row>.flex-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-md-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-md-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1280px){.flex-gt-md,.flex-gt-md-auto,.flex-gt-md-grow,.flex-gt-md-initial,.flex-gt-md-none,.flex-gt-md-noshrink{box-sizing:border-box}.flex-order-gt-md--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-md--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-md--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-md--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-md--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-md--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-md--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-md--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-md--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-md--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-md--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-md--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-md--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-md--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-md--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-md--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-md--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-md--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-md--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-md--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-md-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-md-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-md-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-md-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-md-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-md-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-md-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-md-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-md-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-md-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-md-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-md-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-md-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-md-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-md-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-md-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-md-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-md-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-md-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-md-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-md-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-md{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-gt-md-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-md-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-gt-md-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-gt-md-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-gt-md-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-gt-md-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0,.layout-row>.flex-gt-md-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-gt-md-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-gt-md-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-gt-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5,.layout-row>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10,.layout-row>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15,.layout-row>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20,.layout-row>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25,.layout-row>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30,.layout-row>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35,.layout-row>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40,.layout-row>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45,.layout-row>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50,.layout-row>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55,.layout-row>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60,.layout-row>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65,.layout-row>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70,.layout-row>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75,.layout-row>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80,.layout-row>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85,.layout-row>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90,.layout-row>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95,.layout-row>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100,.layout-column>.flex-gt-md-100,.layout-row>.flex-gt-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33,.layout-row>.flex-gt-md-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-md-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100,.layout-gt-md-row>.flex-gt-md-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-md-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-gt-md-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.flex-lg,.flex-lg-auto,.flex-lg-grow,.flex-lg-initial,.flex-lg-none,.flex-lg-noshrink{box-sizing:border-box}.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.flex-order-lg--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-lg--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-lg--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-lg--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-lg--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-lg--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-lg--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-lg--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-lg--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-lg--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-lg--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-lg--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-lg--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-lg--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-lg--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-lg--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-lg--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-lg--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-lg--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-lg--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-lg-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-lg-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-lg-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-lg-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-lg-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-lg-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-lg-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-lg-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-lg-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-lg-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-lg-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-lg-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-lg-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-lg-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-lg-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-lg-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-lg-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-lg-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-lg-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-lg-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-lg-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-lg{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-lg-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-lg-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-lg-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-lg-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-lg-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-lg-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-lg-0,.layout-row>.flex-lg-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-lg-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-lg-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5,.layout-row>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10,.layout-row>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15,.layout-row>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20,.layout-row>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25,.layout-row>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30,.layout-row>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35,.layout-row>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40,.layout-row>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45,.layout-row>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50,.layout-row>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55,.layout-row>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60,.layout-row>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65,.layout-row>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70,.layout-row>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75,.layout-row>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80,.layout-row>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85,.layout-row>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90,.layout-row>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95,.layout-row>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100,.layout-column>.flex-lg-100,.layout-row>.flex-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33,.layout-row>.flex-lg-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-lg-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex-lg-100,.layout-lg-row>.flex-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-lg-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.layout-lg-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}}@media (min-width:1920px){.flex-gt-lg,.flex-gt-lg-auto,.flex-gt-lg-grow,.flex-gt-lg-initial,.flex-gt-lg-none,.flex-gt-lg-noshrink{box-sizing:border-box}.layout-gt-lg-column,.layout-gt-lg-row,.layout-xl-column,.layout-xl-row{-webkit-box-direction:normal}.flex-order-gt-lg--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-gt-lg--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-gt-lg--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-gt-lg--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-gt-lg--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-gt-lg--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-gt-lg--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-gt-lg--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-gt-lg--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-gt-lg--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-gt-lg--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-gt-lg--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-gt-lg--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-gt-lg--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-gt-lg--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-gt-lg--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-gt-lg--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-gt-lg--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-gt-lg--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-gt-lg--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-gt-lg-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-gt-lg-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-gt-lg-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-gt-lg-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-gt-lg-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-gt-lg-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-gt-lg-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-gt-lg-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-gt-lg-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-gt-lg-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-gt-lg-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-gt-lg-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-gt-lg-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-gt-lg-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-gt-lg-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-gt-lg-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-gt-lg-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-gt-lg-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-gt-lg-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-gt-lg-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-gt-lg-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-gt-lg{-webkit-box-flex:1;-webkit-flex:1;flex:1}.flex-gt-lg-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%}.flex-gt-lg-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto}.flex-gt-lg-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-gt-lg-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto}.flex-gt-lg-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.flex-gt-lg-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0,.layout-row>.flex-gt-lg-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-gt-lg-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-gt-lg-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-gt-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5,.layout-row>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10,.layout-row>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15,.layout-row>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20,.layout-row>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25,.layout-row>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30,.layout-row>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35,.layout-row>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40,.layout-row>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45,.layout-row>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50,.layout-row>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55,.layout-row>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60,.layout-row>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65,.layout-row>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70,.layout-row>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75,.layout-row>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80,.layout-row>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85,.layout-row>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90,.layout-row>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95,.layout-row>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100,.layout-column>.flex-gt-lg-100,.layout-row>.flex-gt-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33,.layout-row>.flex-gt-lg-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-gt-lg-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-gt-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100,.layout-gt-lg-row>.flex-gt-lg-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-gt-lg-column{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.layout-gt-lg-row{-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.flex-order-xl--20{-webkit-box-ordinal-group:-19;-webkit-order:-20;order:-20}.flex-order-xl--19{-webkit-box-ordinal-group:-18;-webkit-order:-19;order:-19}.flex-order-xl--18{-webkit-box-ordinal-group:-17;-webkit-order:-18;order:-18}.flex-order-xl--17{-webkit-box-ordinal-group:-16;-webkit-order:-17;order:-17}.flex-order-xl--16{-webkit-box-ordinal-group:-15;-webkit-order:-16;order:-16}.flex-order-xl--15{-webkit-box-ordinal-group:-14;-webkit-order:-15;order:-15}.flex-order-xl--14{-webkit-box-ordinal-group:-13;-webkit-order:-14;order:-14}.flex-order-xl--13{-webkit-box-ordinal-group:-12;-webkit-order:-13;order:-13}.flex-order-xl--12{-webkit-box-ordinal-group:-11;-webkit-order:-12;order:-12}.flex-order-xl--11{-webkit-box-ordinal-group:-10;-webkit-order:-11;order:-11}.flex-order-xl--10{-webkit-box-ordinal-group:-9;-webkit-order:-10;order:-10}.flex-order-xl--9{-webkit-box-ordinal-group:-8;-webkit-order:-9;order:-9}.flex-order-xl--8{-webkit-box-ordinal-group:-7;-webkit-order:-8;order:-8}.flex-order-xl--7{-webkit-box-ordinal-group:-6;-webkit-order:-7;order:-7}.flex-order-xl--6{-webkit-box-ordinal-group:-5;-webkit-order:-6;order:-6}.flex-order-xl--5{-webkit-box-ordinal-group:-4;-webkit-order:-5;order:-5}.flex-order-xl--4{-webkit-box-ordinal-group:-3;-webkit-order:-4;order:-4}.flex-order-xl--3{-webkit-box-ordinal-group:-2;-webkit-order:-3;order:-3}.flex-order-xl--2{-webkit-box-ordinal-group:-1;-webkit-order:-2;order:-2}.flex-order-xl--1{-webkit-box-ordinal-group:0;-webkit-order:-1;order:-1}.flex-order-xl-0{-webkit-box-ordinal-group:1;-webkit-order:0;order:0}.flex-order-xl-1{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}.flex-order-xl-2{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}.flex-order-xl-3{-webkit-box-ordinal-group:4;-webkit-order:3;order:3}.flex-order-xl-4{-webkit-box-ordinal-group:5;-webkit-order:4;order:4}.flex-order-xl-5{-webkit-box-ordinal-group:6;-webkit-order:5;order:5}.flex-order-xl-6{-webkit-box-ordinal-group:7;-webkit-order:6;order:6}.flex-order-xl-7{-webkit-box-ordinal-group:8;-webkit-order:7;order:7}.flex-order-xl-8{-webkit-box-ordinal-group:9;-webkit-order:8;order:8}.flex-order-xl-9{-webkit-box-ordinal-group:10;-webkit-order:9;order:9}.flex-order-xl-10{-webkit-box-ordinal-group:11;-webkit-order:10;order:10}.flex-order-xl-11{-webkit-box-ordinal-group:12;-webkit-order:11;order:11}.flex-order-xl-12{-webkit-box-ordinal-group:13;-webkit-order:12;order:12}.flex-order-xl-13{-webkit-box-ordinal-group:14;-webkit-order:13;order:13}.flex-order-xl-14{-webkit-box-ordinal-group:15;-webkit-order:14;order:14}.flex-order-xl-15{-webkit-box-ordinal-group:16;-webkit-order:15;order:15}.flex-order-xl-16{-webkit-box-ordinal-group:17;-webkit-order:16;order:16}.flex-order-xl-17{-webkit-box-ordinal-group:18;-webkit-order:17;order:17}.flex-order-xl-18{-webkit-box-ordinal-group:19;-webkit-order:18;order:18}.flex-order-xl-19{-webkit-box-ordinal-group:20;-webkit-order:19;order:19}.flex-order-xl-20{-webkit-box-ordinal-group:21;-webkit-order:20;order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:stretch;align-content:stretch;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{-webkit-justify-content:space-around;justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start;-webkit-align-content:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;-webkit-align-content:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end;-webkit-align-content:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-grid-row-align:stretch;align-items:stretch;-webkit-align-content:stretch;align-content:stretch}.flex-xl{-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box}.flex-xl-grow{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;box-sizing:border-box}.flex-xl-none{-webkit-box-flex:0;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{-webkit-box-flex:0;-webkit-flex:0 1 auto;flex:0 1 auto;box-sizing:border-box}.flex-xl-0,.layout-row>.flex-xl-0{-webkit-box-flex:1;max-width:0%;max-height:100%;box-sizing:border-box}.flex-xl-0{-webkit-flex:1 1 0%;flex:1 1 0%}.layout-row>.flex-xl-0{-webkit-flex:1 1 0%;flex:1 1 0%;min-width:0}.layout-column>.flex-xl-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{-webkit-box-flex:1;-webkit-flex:1 1 0%;flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5,.layout-row>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{-webkit-box-flex:1;-webkit-flex:1 1 5%;flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10,.layout-row>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{-webkit-box-flex:1;-webkit-flex:1 1 10%;flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15,.layout-row>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{-webkit-box-flex:1;-webkit-flex:1 1 15%;flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20,.layout-row>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{-webkit-box-flex:1;-webkit-flex:1 1 20%;flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25,.layout-row>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30,.layout-row>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{-webkit-box-flex:1;-webkit-flex:1 1 30%;flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35,.layout-row>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{-webkit-box-flex:1;-webkit-flex:1 1 35%;flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40,.layout-row>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{-webkit-box-flex:1;-webkit-flex:1 1 40%;flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45,.layout-row>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{-webkit-box-flex:1;-webkit-flex:1 1 45%;flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50,.layout-row>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{-webkit-box-flex:1;-webkit-flex:1 1 50%;flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55,.layout-row>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{-webkit-box-flex:1;-webkit-flex:1 1 55%;flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60,.layout-row>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{-webkit-box-flex:1;-webkit-flex:1 1 60%;flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65,.layout-row>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{-webkit-box-flex:1;-webkit-flex:1 1 65%;flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70,.layout-row>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{-webkit-box-flex:1;-webkit-flex:1 1 70%;flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75,.layout-row>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{-webkit-box-flex:1;-webkit-flex:1 1 75%;flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80,.layout-row>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{-webkit-box-flex:1;-webkit-flex:1 1 80%;flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85,.layout-row>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{-webkit-box-flex:1;-webkit-flex:1 1 85%;flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90,.layout-row>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{-webkit-box-flex:1;-webkit-flex:1 1 90%;flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95,.layout-row>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{-webkit-box-flex:1;-webkit-flex:1 1 95%;flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100,.layout-column>.flex-xl-100,.layout-row>.flex-xl-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33,.layout-row>.flex-xl-66{-webkit-box-flex:1;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%}.layout-row>.flex-xl-66{-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%}.layout-column>.flex-xl-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex-xl-100,.layout-xl-row>.flex-xl-100{-webkit-box-flex:1;-webkit-flex:1 1 100%;flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{-webkit-box-flex:1;-webkit-flex:1 1 33.33%;flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{-webkit-box-flex:1;-webkit-flex:1 1 66.66%;flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex}.layout-xl-column{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.layout-xl-row{-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}.hide-print:not(.show-print):not(.show){display:none!important}}.intl-tel-input{position:relative;display:inline-block}.intl-tel-input *{box-sizing:border-box;-moz-box-sizing:border-box}.intl-tel-input .hide{display:none}.intl-tel-input .v-hide{visibility:hidden}.intl-tel-input input,.intl-tel-input input[type=tel],.intl-tel-input input[type=text]{position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;padding-right:36px;margin-right:0}.intl-tel-input .flag-container{position:absolute;top:0;bottom:0;right:0;padding:1px}.intl-tel-input .selected-flag{z-index:1;position:relative;width:36px;height:100%;padding:0 0 0 8px}.intl-tel-input .selected-flag .iti-flag{position:absolute;top:0;bottom:0;margin:auto}.intl-tel-input .selected-flag .iti-arrow{position:absolute;top:50%;margin-top:-2px;right:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}.intl-tel-input .selected-flag .iti-arrow.up{border-top:none;border-bottom:4px solid #555}.intl-tel-input .country-list{position:absolute;z-index:2;list-style:none;text-align:left;padding:0;margin:0 0 0 -1px;box-shadow:1px 1px 4px rgba(0,0,0,.2);background-color:#fff;border:1px solid #CCC;white-space:nowrap;max-height:200px;overflow-y:scroll}.intl-tel-input .country-list .country.highlight,.intl-tel-input.allow-dropdown .flag-container:hover .selected-flag{background-color:rgba(0,0,0,.05)}.intl-tel-input .country-list.dropup{bottom:100%;margin-bottom:-1px}.intl-tel-input .country-list .flag-box{display:inline-block;width:20px}@media (max-width:500px){.intl-tel-input .country-list{white-space:normal}}.intl-tel-input .country-list .divider{padding-bottom:5px;margin-bottom:5px;border-bottom:1px solid #CCC}.intl-tel-input .country-list .country{padding:5px 10px}.intl-tel-input .country-list .country .dial-code{color:#999}.intl-tel-input .country-list .country-name,.intl-tel-input .country-list .dial-code,.intl-tel-input .country-list .flag-box{vertical-align:middle}.intl-tel-input .country-list .country-name,.intl-tel-input .country-list .flag-box{margin-right:6px}.intl-tel-input.allow-dropdown input,.intl-tel-input.allow-dropdown input[type=tel],.intl-tel-input.allow-dropdown input[type=text]{padding-right:6px;padding-left:52px;margin-left:0}.intl-tel-input.allow-dropdown .flag-container{right:auto;left:0}.intl-tel-input.allow-dropdown .selected-flag{width:46px}.intl-tel-input.allow-dropdown .flag-container:hover{cursor:pointer}.intl-tel-input.allow-dropdown input[disabled]+.flag-container:hover,.intl-tel-input.allow-dropdown input[readonly]+.flag-container:hover{cursor:default}.intl-tel-input.allow-dropdown input[disabled]+.flag-container:hover .selected-flag,.intl-tel-input.allow-dropdown input[readonly]+.flag-container:hover .selected-flag{background-color:transparent}.intl-tel-input.allow-dropdown.separate-dial-code .selected-flag{background-color:rgba(0,0,0,.05);display:table}.intl-tel-input.allow-dropdown.separate-dial-code .selected-dial-code{display:table-cell;vertical-align:middle;padding-left:28px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-2 input,.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-2 input[type=tel],.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-2 input[type=text]{padding-left:76px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-2 .selected-flag{width:70px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-3 input,.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-3 input[type=tel],.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-3 input[type=text]{padding-left:84px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-3 .selected-flag{width:78px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-4 input,.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-4 input[type=tel],.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-4 input[type=text]{padding-left:92px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-4 .selected-flag{width:86px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-5 input,.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-5 input[type=tel],.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-5 input[type=text]{padding-left:100px}.intl-tel-input.allow-dropdown.separate-dial-code.iti-sdc-5 .selected-flag{width:94px}.intl-tel-input.iti-container{position:absolute;top:-1000px;left:-1000px;z-index:1060;padding:1px}.intl-tel-input.iti-container:hover{cursor:pointer}.iti-mobile .intl-tel-input.iti-container{top:30px;bottom:30px;left:30px;right:30px;position:fixed}.iti-mobile .intl-tel-input .country-list{max-height:100%;width:100%}.iti-mobile .intl-tel-input .country-list .country{padding:10px;line-height:1.5em}.iti-flag{width:20px}.iti-flag.be{width:18px}.iti-flag.ch{width:15px}.iti-flag.mc{width:19px}.iti-flag.ne{width:18px}.iti-flag.ac{height:10px;background-position:0 0}.iti-flag.ad{height:14px;background-position:-22px 0}.iti-flag.ae{height:10px;background-position:-44px 0}.iti-flag.af{height:14px;background-position:-66px 0}.iti-flag.ag{height:14px;background-position:-88px 0}.iti-flag.ai{height:10px;background-position:-110px 0}.iti-flag.al{height:15px;background-position:-132px 0}.iti-flag.am{height:10px;background-position:-154px 0}.iti-flag.ao{height:14px;background-position:-176px 0}.iti-flag.aq{height:14px;background-position:-198px 0}.iti-flag.ar{height:13px;background-position:-220px 0}.iti-flag.as{height:10px;background-position:-242px 0}.iti-flag.at{height:14px;background-position:-264px 0}.iti-flag.au{height:10px;background-position:-286px 0}.iti-flag.aw{height:14px;background-position:-308px 0}.iti-flag.ax{height:13px;background-position:-330px 0}.iti-flag.az{height:10px;background-position:-352px 0}.iti-flag.ba{height:10px;background-position:-374px 0}.iti-flag.bb{height:14px;background-position:-396px 0}.iti-flag.bd{height:12px;background-position:-418px 0}.iti-flag.be{height:15px;background-position:-440px 0}.iti-flag.bf{height:14px;background-position:-460px 0}.iti-flag.bg{height:12px;background-position:-482px 0}.iti-flag.bh{height:12px;background-position:-504px 0}.iti-flag.bi{height:12px;background-position:-526px 0}.iti-flag.bj{height:14px;background-position:-548px 0}.iti-flag.bl{height:14px;background-position:-570px 0}.iti-flag.bm{height:10px;background-position:-592px 0}.iti-flag.bn{height:10px;background-position:-614px 0}.iti-flag.bo{height:14px;background-position:-636px 0}.iti-flag.bq{height:14px;background-position:-658px 0}.iti-flag.br{height:14px;background-position:-680px 0}.iti-flag.bs{height:10px;background-position:-702px 0}.iti-flag.bt{height:14px;background-position:-724px 0}.iti-flag.bv{height:15px;background-position:-746px 0}.iti-flag.bw{height:14px;background-position:-768px 0}.iti-flag.by{height:10px;background-position:-790px 0}.iti-flag.bz{height:14px;background-position:-812px 0}.iti-flag.ca{height:10px;background-position:-834px 0}.iti-flag.cc{height:10px;background-position:-856px 0}.iti-flag.cd{height:15px;background-position:-878px 0}.iti-flag.cf{height:14px;background-position:-900px 0}.iti-flag.cg{height:14px;background-position:-922px 0}.iti-flag.ch{height:15px;background-position:-944px 0}.iti-flag.ci{height:14px;background-position:-961px 0}.iti-flag.ck{height:10px;background-position:-983px 0}.iti-flag.cl{height:14px;background-position:-1005px 0}.iti-flag.cm{height:14px;background-position:-1027px 0}.iti-flag.cn{height:14px;background-position:-1049px 0}.iti-flag.co{height:14px;background-position:-1071px 0}.iti-flag.cp{height:14px;background-position:-1093px 0}.iti-flag.cr{height:12px;background-position:-1115px 0}.iti-flag.cu{height:10px;background-position:-1137px 0}.iti-flag.cv{height:12px;background-position:-1159px 0}.iti-flag.cw{height:14px;background-position:-1181px 0}.iti-flag.cx{height:10px;background-position:-1203px 0}.iti-flag.cy{height:13px;background-position:-1225px 0}.iti-flag.cz{height:14px;background-position:-1247px 0}.iti-flag.de{height:12px;background-position:-1269px 0}.iti-flag.dg{height:10px;background-position:-1291px 0}.iti-flag.dj{height:14px;background-position:-1313px 0}.iti-flag.dk{height:15px;background-position:-1335px 0}.iti-flag.dm{height:10px;background-position:-1357px 0}.iti-flag.do{height:13px;background-position:-1379px 0}.iti-flag.dz{height:14px;background-position:-1401px 0}.iti-flag.ea{height:14px;background-position:-1423px 0}.iti-flag.ec{height:14px;background-position:-1445px 0}.iti-flag.ee{height:13px;background-position:-1467px 0}.iti-flag.eg{height:14px;background-position:-1489px 0}.iti-flag.eh{height:10px;background-position:-1511px 0}.iti-flag.er{height:10px;background-position:-1533px 0}.iti-flag.es{height:14px;background-position:-1555px 0}.iti-flag.et{height:10px;background-position:-1577px 0}.iti-flag.eu{height:14px;background-position:-1599px 0}.iti-flag.fi{height:12px;background-position:-1621px 0}.iti-flag.fj{height:10px;background-position:-1643px 0}.iti-flag.fk{height:10px;background-position:-1665px 0}.iti-flag.fm{height:11px;background-position:-1687px 0}.iti-flag.fo{height:15px;background-position:-1709px 0}.iti-flag.fr{height:14px;background-position:-1731px 0}.iti-flag.ga{height:15px;background-position:-1753px 0}.iti-flag.gb{height:10px;background-position:-1775px 0}.iti-flag.gd{height:12px;background-position:-1797px 0}.iti-flag.ge{height:14px;background-position:-1819px 0}.iti-flag.gf{height:14px;background-position:-1841px 0}.iti-flag.gg{height:14px;background-position:-1863px 0}.iti-flag.gh{height:14px;background-position:-1885px 0}.iti-flag.gi{height:10px;background-position:-1907px 0}.iti-flag.gl{height:14px;background-position:-1929px 0}.iti-flag.gm{height:14px;background-position:-1951px 0}.iti-flag.gn{height:14px;background-position:-1973px 0}.iti-flag.gp{height:14px;background-position:-1995px 0}.iti-flag.gq{height:14px;background-position:-2017px 0}.iti-flag.gr{height:14px;background-position:-2039px 0}.iti-flag.gs{height:10px;background-position:-2061px 0}.iti-flag.gt{height:13px;background-position:-2083px 0}.iti-flag.gu{height:11px;background-position:-2105px 0}.iti-flag.gw{height:10px;background-position:-2127px 0}.iti-flag.gy{height:12px;background-position:-2149px 0}.iti-flag.hk{height:14px;background-position:-2171px 0}.iti-flag.hm{height:10px;background-position:-2193px 0}.iti-flag.hn{height:10px;background-position:-2215px 0}.iti-flag.hr{height:10px;background-position:-2237px 0}.iti-flag.ht{height:12px;background-position:-2259px 0}.iti-flag.hu{height:10px;background-position:-2281px 0}.iti-flag.ic{height:14px;background-position:-2303px 0}.iti-flag.id{height:14px;background-position:-2325px 0}.iti-flag.ie{height:10px;background-position:-2347px 0}.iti-flag.il{height:15px;background-position:-2369px 0}.iti-flag.im{height:10px;background-position:-2391px 0}.iti-flag.in{height:14px;background-position:-2413px 0}.iti-flag.io{height:10px;background-position:-2435px 0}.iti-flag.iq{height:14px;background-position:-2457px 0}.iti-flag.ir{height:12px;background-position:-2479px 0}.iti-flag.is{height:15px;background-position:-2501px 0}.iti-flag.it{height:14px;background-position:-2523px 0}.iti-flag.je{height:12px;background-position:-2545px 0}.iti-flag.jm{height:10px;background-position:-2567px 0}.iti-flag.jo{height:10px;background-position:-2589px 0}.iti-flag.jp{height:14px;background-position:-2611px 0}.iti-flag.ke{height:14px;background-position:-2633px 0}.iti-flag.kg{height:12px;background-position:-2655px 0}.iti-flag.kh{height:13px;background-position:-2677px 0}.iti-flag.ki{height:10px;background-position:-2699px 0}.iti-flag.km{height:12px;background-position:-2721px 0}.iti-flag.kn{height:14px;background-position:-2743px 0}.iti-flag.kp{height:10px;background-position:-2765px 0}.iti-flag.kr{height:14px;background-position:-2787px 0}.iti-flag.kw{height:10px;background-position:-2809px 0}.iti-flag.ky{height:10px;background-position:-2831px 0}.iti-flag.kz{height:10px;background-position:-2853px 0}.iti-flag.la{height:14px;background-position:-2875px 0}.iti-flag.lb{height:14px;background-position:-2897px 0}.iti-flag.lc{height:10px;background-position:-2919px 0}.iti-flag.li{height:12px;background-position:-2941px 0}.iti-flag.lk{height:10px;background-position:-2963px 0}.iti-flag.lr{height:11px;background-position:-2985px 0}.iti-flag.ls{height:14px;background-position:-3007px 0}.iti-flag.lt{height:12px;background-position:-3029px 0}.iti-flag.lu{height:12px;background-position:-3051px 0}.iti-flag.lv{height:10px;background-position:-3073px 0}.iti-flag.ly{height:10px;background-position:-3095px 0}.iti-flag.ma{height:14px;background-position:-3117px 0}.iti-flag.mc{height:15px;background-position:-3139px 0}.iti-flag.md{height:10px;background-position:-3160px 0}.iti-flag.me{height:10px;background-position:-3182px 0}.iti-flag.mf{height:14px;background-position:-3204px 0}.iti-flag.mg{height:14px;background-position:-3226px 0}.iti-flag.mh{height:11px;background-position:-3248px 0}.iti-flag.mk{height:10px;background-position:-3270px 0}.iti-flag.ml{height:14px;background-position:-3292px 0}.iti-flag.mm{height:14px;background-position:-3314px 0}.iti-flag.mn{height:10px;background-position:-3336px 0}.iti-flag.mo{height:14px;background-position:-3358px 0}.iti-flag.mp{height:10px;background-position:-3380px 0}.iti-flag.mq{height:14px;background-position:-3402px 0}.iti-flag.mr{height:14px;background-position:-3424px 0}.iti-flag.ms{height:10px;background-position:-3446px 0}.iti-flag.mt{height:14px;background-position:-3468px 0}.iti-flag.mu{height:14px;background-position:-3490px 0}.iti-flag.mv{height:14px;background-position:-3512px 0}.iti-flag.mw{height:14px;background-position:-3534px 0}.iti-flag.mx{height:12px;background-position:-3556px 0}.iti-flag.my{height:10px;background-position:-3578px 0}.iti-flag.mz{height:14px;background-position:-3600px 0}.iti-flag.na{height:14px;background-position:-3622px 0}.iti-flag.nc{height:10px;background-position:-3644px 0}.iti-flag.ne{height:15px;background-position:-3666px 0}.iti-flag.nf{height:10px;background-position:-3686px 0}.iti-flag.ng{height:10px;background-position:-3708px 0}.iti-flag.ni{height:12px;background-position:-3730px 0}.iti-flag.nl{height:14px;background-position:-3752px 0}.iti-flag.no{height:15px;background-position:-3774px 0}.iti-flag.np{width:13px;height:15px;background-position:-3796px 0}.iti-flag.nr{height:10px;background-position:-3811px 0}.iti-flag.nu{height:10px;background-position:-3833px 0}.iti-flag.nz{height:10px;background-position:-3855px 0}.iti-flag.om{height:10px;background-position:-3877px 0}.iti-flag.pa{height:14px;background-position:-3899px 0}.iti-flag.pe{height:14px;background-position:-3921px 0}.iti-flag.pf{height:14px;background-position:-3943px 0}.iti-flag.pg{height:15px;background-position:-3965px 0}.iti-flag.ph{height:10px;background-position:-3987px 0}.iti-flag.pk{height:14px;background-position:-4009px 0}.iti-flag.pl{height:13px;background-position:-4031px 0}.iti-flag.pm{height:14px;background-position:-4053px 0}.iti-flag.pn{height:10px;background-position:-4075px 0}.iti-flag.pr{height:14px;background-position:-4097px 0}.iti-flag.ps{height:10px;background-position:-4119px 0}.iti-flag.pt{height:14px;background-position:-4141px 0}.iti-flag.pw{height:13px;background-position:-4163px 0}.iti-flag.py{height:11px;background-position:-4185px 0}.iti-flag.qa{height:8px;background-position:-4207px 0}.iti-flag.re{height:14px;background-position:-4229px 0}.iti-flag.ro{height:14px;background-position:-4251px 0}.iti-flag.rs{height:14px;background-position:-4273px 0}.iti-flag.ru{height:14px;background-position:-4295px 0}.iti-flag.rw{height:14px;background-position:-4317px 0}.iti-flag.sa{height:14px;background-position:-4339px 0}.iti-flag.sb{height:10px;background-position:-4361px 0}.iti-flag.sc{height:10px;background-position:-4383px 0}.iti-flag.sd{height:10px;background-position:-4405px 0}.iti-flag.se{height:13px;background-position:-4427px 0}.iti-flag.sg{height:14px;background-position:-4449px 0}.iti-flag.sh{height:10px;background-position:-4471px 0}.iti-flag.si{height:10px;background-position:-4493px 0}.iti-flag.sj{height:15px;background-position:-4515px 0}.iti-flag.sk{height:14px;background-position:-4537px 0}.iti-flag.sl{height:14px;background-position:-4559px 0}.iti-flag.sm{height:15px;background-position:-4581px 0}.iti-flag.sn{height:14px;background-position:-4603px 0}.iti-flag.so{height:14px;background-position:-4625px 0}.iti-flag.sr{height:14px;background-position:-4647px 0}.iti-flag.ss{height:10px;background-position:-4669px 0}.iti-flag.st{height:10px;background-position:-4691px 0}.iti-flag.sv{height:12px;background-position:-4713px 0}.iti-flag.sx{height:14px;background-position:-4735px 0}.iti-flag.sy{height:14px;background-position:-4757px 0}.iti-flag.sz{height:14px;background-position:-4779px 0}.iti-flag.ta{height:10px;background-position:-4801px 0}.iti-flag.tc{height:10px;background-position:-4823px 0}.iti-flag.td{height:14px;background-position:-4845px 0}.iti-flag.tf{height:14px;background-position:-4867px 0}.iti-flag.tg{height:13px;background-position:-4889px 0}.iti-flag.th{height:14px;background-position:-4911px 0}.iti-flag.tj{height:10px;background-position:-4933px 0}.iti-flag.tk{height:10px;background-position:-4955px 0}.iti-flag.tl{height:10px;background-position:-4977px 0}.iti-flag.tm{height:14px;background-position:-4999px 0}.iti-flag.tn{height:14px;background-position:-5021px 0}.iti-flag.to{height:10px;background-position:-5043px 0}.iti-flag.tr{height:14px;background-position:-5065px 0}.iti-flag.tt{height:12px;background-position:-5087px 0}.iti-flag.tv{height:10px;background-position:-5109px 0}.iti-flag.tw{height:14px;background-position:-5131px 0}.iti-flag.tz{height:14px;background-position:-5153px 0}.iti-flag.ua{height:14px;background-position:-5175px 0}.iti-flag.ug{height:14px;background-position:-5197px 0}.iti-flag.um{height:11px;background-position:-5219px 0}.iti-flag.us{height:11px;background-position:-5241px 0}.iti-flag.uy{height:14px;background-position:-5263px 0}.iti-flag.uz{height:10px;background-position:-5285px 0}.iti-flag.va{width:15px;height:15px;background-position:-5307px 0}.iti-flag.vc{height:14px;background-position:-5324px 0}.iti-flag.ve{height:14px;background-position:-5346px 0}.iti-flag.vg{height:10px;background-position:-5368px 0}.iti-flag.vi{height:14px;background-position:-5390px 0}.iti-flag.vn{height:14px;background-position:-5412px 0}.iti-flag.vu{height:12px;background-position:-5434px 0}.iti-flag.wf{height:14px;background-position:-5456px 0}.iti-flag.ws{height:10px;background-position:-5478px 0}.iti-flag.xk{height:15px;background-position:-5500px 0}.iti-flag.ye{height:14px;background-position:-5522px 0}.iti-flag.yt{height:14px;background-position:-5544px 0}.iti-flag.za{height:14px;background-position:-5566px 0}.iti-flag.zm{height:14px;background-position:-5588px 0}.iti-flag.zw{height:10px;background-position:-5610px 0}.iti-flag{height:15px;box-shadow:0 0 1px 0 #888;background-image:url(../img/flags.png);background-repeat:no-repeat;background-color:#DBDBDB;background-position:20px 0}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2 / 1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.iti-flag{background-size:5630px 15px;background-image:url(../img/flags@2x.png)}}.iti-flag.np{background-color:transparent}/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{20%,53%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.050,.855,.060);animation-timing-function:cubic-bezier(.755,.050,.855,.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{50%,from,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}}@keyframes pulse{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}}@keyframes rubberBand{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}}@keyframes tada{from,to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{from,to{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}}@keyframes wobble{from,to{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{11.1%,from,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{11.1%,from,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{60%,75%,90%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}.flipInY,.flipOutX{-webkit-backface-visibility:visible!important}@-webkit-keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;backface-visibility:visible!important}@-webkit-keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/d2ice.att.io/dist/welcome/index.html b/d2ice.att.io/dist/welcome/index.html new file mode 100755 index 00000000..63a921b1 --- /dev/null +++ b/d2ice.att.io/dist/welcome/index.html @@ -0,0 +1,50 @@ + + + + + + + AT&T | {{'program.name' | i18next}} + + + + diff --git a/d2ice.att.io/dist/welcome/welcome.controller.js b/d2ice.att.io/dist/welcome/welcome.controller.js new file mode 100755 index 00000000..8f5aa1a8 --- /dev/null +++ b/d2ice.att.io/dist/welcome/welcome.controller.js @@ -0,0 +1,58 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 26/12/2016. + */ +(function() { + 'use strict'; + + angular + .module('ice.welcome') + .controller('WelcomeController', ["$state", "$location", "localStorageService", WelcomeController]); + + function WelcomeController($state, $location, localStorageService) { + var vm = this; + + var init = function() { + + } + + init(); + } +})(); diff --git a/d2ice.att.io/dist/welcome/welcome.html b/d2ice.att.io/dist/welcome/welcome.html new file mode 100755 index 00000000..14292a6a --- /dev/null +++ b/d2ice.att.io/dist/welcome/welcome.html @@ -0,0 +1,114 @@ + + + +
+
+
+

Welcome to {{'program.name' | i18next}}

+

{{'program.name' | i18next}} is a process allowing VFs to be incubated & validated against the {{'serviceProvider.name' | i18next}} Domain 2.0 architecture.

+ Get Started +
+
+
+ +
+
+
+
+ +

Incubate

+

{{'program.name' | i18next}} encourages you to engage early to make sure the process is as iterative and collaborative as possible.

+
+
+
+
+ +

Validate

+

{{'program.name' | i18next}} is focused to help validate your VF according the {{'serviceProvider.name' | i18next}} guidelines and requirements to allow for seamless onboarding.

+
+
+
+
+ +

Collaborate

+

{{'program.name' | i18next}} allows and encourages you to collaborate with your VF team to validate your VF both internally and externally.

+
+
+
+
+ + diff --git a/d2ice.att.io/dist/welcome/welcome.less b/d2ice.att.io/dist/welcome/welcome.less new file mode 100755 index 00000000..426e1dfd --- /dev/null +++ b/d2ice.att.io/dist/welcome/welcome.less @@ -0,0 +1,208 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +.welcome-boxes { + margin-top: 60px; +} + +.welcome-box { + h3 { + font-weight: bold; + } + + p { + font-size: 16px; + padding: 0 15px; + color: @welcome_box_text_color; + margin-bottom: 0; + } +} + +.get-started-button { + width:190px; + margin-top:20px; + text-align:center; + margin-left:auto; + margin-right:auto; + color:white !important; + height:48px; + font-size:18px !important; + font-weight: bold; + line-height:38px; + vertical-align: middle; + background: linear-gradient(@welcome_button_gradient1, @welcome_button_gradient2); + border: 1px solid @welcome_button_border; + border-radius: 6px; +} + +.welcome-body { + overflow: auto; +} + +.welcome-navbar { + background-color: black; + padding-left: 10%; + padding-right: 10%; + border-color: @welcome_navbar_hr; + border-left: black; + z-index: 1030; + left: 0; + right: 0; + position: absolute; + border-radius: 0; + top: 0; +} + +.welcome-nav-link { + color: @main_color_p !important; + font-weight: 600; + line-height: 20px; + margin-top: 7px; +} + +.welcome { + position: relative; + width: 100%; + //min-height: auto; + -webkit-background-size: cover; + -moz-background-size: cover; + background-size: cover; + -o-background-size: cover; + background: url('../styles/images/home_bg1-1920x1138.jpg') center; + text-align: center; + color: white; +} + +.welcome .header-content { + position: relative; + text-align: center; + padding: 100px 15px 100px; + width: 100%; +} +.welcome .header-content .header-content-inner h1 { + font-weight: 700; + margin-top: 0; + margin-bottom: 0; + font-size: 30px; + color: @main_color_p; +} + +.welcome .header-content .header-content-inner p { + font-weight: 300; + font-size: 16px; + margin-bottom: 50px; + color: @main_color_p; +} + +@media (min-width: 768px) { + .welcome { + min-height: 73%; + } + + .welcome .header-content { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + padding: 0 50px; + } + + .welcome .header-content .header-content-inner { + max-width: 100%; + margin-left: auto; + margin-right: auto; + } + + .welcome .header-content .header-content-inner h1 { + font-size: 50px; + } + + .welcome .header-content .header-content-inner p { + font-size: 18px; + max-width: 90%; + margin-left: auto; + margin-right: auto; + } +} + +.welcome-footer { + background: @welcome_footer_bg; + color: @welcome_footer_text; + padding: 60px 0 0; + margin-top: 60px; +} + +.welcome-footer-copyright { + color: @welcome_footer_text; + font-size: 17px; + line-height: 25px; + padding-bottom: 5px; + text-align: center; +} + +.welcome-logo { + margin-top: -8px; +} + +.navbar-collapse .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { + background: none; +} + +.navbar-collapse .navbar-nav > li > a:hover:after, +.navbar-collapse .navbar-nav > li.active > a:after, +.navbar-collapse .navbar-nav > li.active > a:hover:after, +.navbar-collapse .navbar-nav > li.active > a:focus:after { + position:absolute; + bottom:9px; + left:50%; + content:''; + width:20px; + height:2px; + margin-left:-10px; + background-color:#fff; +} + + +.navbar-nav > li + li {margin-left:2px} +.navbar-collapse .navbar-nav > li.active > a, +.navbar-collapse .navbar-nav > li.active > a:hover, +.navbar-collapse .navbar-nav > li.active > a:focus { + color:#828282; + background-color:transparent; +} diff --git a/d2ice.att.io/dist/welcome/welcome.module.js b/d2ice.att.io/dist/welcome/welcome.module.js new file mode 100755 index 00000000..a17e3680 --- /dev/null +++ b/d2ice.att.io/dist/welcome/welcome.module.js @@ -0,0 +1,63 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +/** + * Created by almog on 26/12/2016. + */ +(function () { + 'use strict'; + + angular + .module('ice.welcome', []) + .config(config); + + function config($stateProvider) { + $stateProvider + .state('app.welcome', { + url: '/', + views: { + 'main@': { + templateUrl: 'welcome/welcome.html', + controller: 'WelcomeController as vm' + } + }, + params: {}, + bodyClass: 'welcome-body' + }); + } +})(); diff --git a/d2ice.att.io/package.json b/d2ice.att.io/package.json new file mode 100755 index 00000000..9c36643b --- /dev/null +++ b/d2ice.att.io/package.json @@ -0,0 +1,46 @@ +{ + "name": "ice", + "private": true, + "devDependencies": { + "autoprefixer-core": "^5.2.1", + "grunt": "^0.4.5", + "grunt-angular-templates": "^0.5.7", + "grunt-concurrent": "^1.0.0", + "grunt-contrib-clean": "^0.6.0", + "grunt-contrib-concat": "^0.5.0", + "grunt-contrib-connect": "^0.9.0", + "grunt-contrib-copy": "^0.7.0", + "grunt-contrib-cssmin": "^0.12.0", + "grunt-contrib-htmlmin": "^0.4.0", + "grunt-contrib-imagemin": "^1.0.0", + "grunt-contrib-jshint": "^0.11.0", + "grunt-contrib-less": "^1.3.0", + "grunt-contrib-uglify": "^0.7.0", + "grunt-contrib-watch": "^0.6.1", + "grunt-filerev": "^2.1.2", + "grunt-google-cdn": "^0.4.3", + "grunt-injector": "^1.0.1", + "grunt-jscs": "^1.8.0", + "grunt-newer": "^1.1.0", + "grunt-ng-annotate": "^0.9.2", + "grunt-ng-constant": "^2.0.1", + "grunt-postcss": "^0.5.5", + "grunt-svgmin": "^2.0.0", + "grunt-usemin": "^3.0.0", + "grunt-wiredep": "^2.0.0", + "jasmine-core": "^2.4.1", + "jit-grunt": "^0.9.1", + "jshint-stylish": "^1.0.0", + "karma": "^0.13.22", + "karma-jasmine": "^1.0.2", + "karma-phantomjs-launcher": "^1.0.0", + "phantomjs-prebuilt": "^2.1.7", + "time-grunt": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "karma start test\\karma.conf.js" + } +} diff --git a/d2ice.att.io/test/.jshintrc b/d2ice.att.io/test/.jshintrc new file mode 100755 index 00000000..b2ce4eff --- /dev/null +++ b/d2ice.att.io/test/.jshintrc @@ -0,0 +1,18 @@ +{ + "bitwise": true, + "browser": true, + "curly": true, + "eqeqeq": true, + "esnext": true, + "jasmine": true, + "latedef": true, + "noarg": true, + "node": true, + "strict": true, + "undef": true, + "unused": true, + "globals": { + "angular": false, + "inject": false + } +} diff --git a/d2ice.att.io/test/spec/controllers/main.js b/d2ice.att.io/test/spec/controllers/main.js new file mode 100755 index 00000000..34a3e89d --- /dev/null +++ b/d2ice.att.io/test/spec/controllers/main.js @@ -0,0 +1,61 @@ +// +// ============LICENSE_START========================================== +// org.onap.vvp/portal +// =================================================================== +// Copyright © 2017 AT&T Intellectual Property. All rights reserved. +// =================================================================== +// +// Unless otherwise specified, all software contained herein is licensed +// under the Apache License, Version 2.0 (the “License”); +// you may not use this software except in compliance with the License. +// You may obtain a copy of the License at +// +// http:www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// +// +// Unless otherwise specified, all documentation contained herein is licensed +// under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +// you may not use this documentation except in compliance with the License. +// You may obtain a copy of the License at +// +// https:creativecommons.org/licenses/by/4.0/ +// +// Unless required by applicable law or agreed to in writing, documentation +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ============LICENSE_END============================================ +// +// ECOMP is a trademark and service mark of AT&T Intellectual Property. +'use strict'; + +describe('Controller: MainCtrl', function () { + + // load the controller's module + beforeEach(module('iceApp')); + + var MainCtrl, + scope; + + // Initialize the controller and a mock scope + beforeEach(inject(function ($controller, $rootScope) { + scope = $rootScope.$new(); + MainCtrl = $controller('MainCtrl', { + $scope: scope + // place here mocked dependencies + }); + })); + + it('should attach a list of awesomeThings to the scope', function () { + expect(MainCtrl.awesomeThings.length).toBe(3); + }); +}); -- cgit 1.2.3-korg