You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sup_File/other/main.js.map

1 line
1.0 MiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/book/book.component.css","webpack:///./src/app/book/book.component.html","webpack:///./src/app/book/book.component.ts","webpack:///./src/app/login/login.component.css","webpack:///./src/app/login/login.component.html","webpack:///./src/app/login/login.component.ts","webpack:///./src/app/main/main.component.html","webpack:///./src/app/main/main.component.scss","webpack:///./src/app/main/main.component.ts","webpack:///./src/app/signup/signup.component.css","webpack:///./src/app/signup/signup.component.html","webpack:///./src/app/signup/signup.component.ts","webpack:///./src/app/typescripts/free/buttons/buttons.module.ts","webpack:///./src/app/typescripts/free/buttons/checkbox.directive.ts","webpack:///./src/app/typescripts/free/buttons/index.ts","webpack:///./src/app/typescripts/free/buttons/radio.directive.ts","webpack:///./src/app/typescripts/free/carousel/carousel.component.html","webpack:///./src/app/typescripts/free/carousel/carousel.component.ts","webpack:///./src/app/typescripts/free/carousel/carousel.config.ts","webpack:///./src/app/typescripts/free/carousel/carousel.module.ts","webpack:///./src/app/typescripts/free/carousel/index.ts","webpack:///./src/app/typescripts/free/carousel/slide.component.ts","webpack:///./src/app/typescripts/free/charts/chart.directive.ts","webpack:///./src/app/typescripts/free/charts/chart.module.ts","webpack:///./src/app/typescripts/free/charts/index.ts","webpack:///./src/app/typescripts/free/collapse/collapse.directive.ts","webpack:///./src/app/typescripts/free/collapse/collapse.module.ts","webpack:///./src/app/typescripts/free/collapse/index.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown-container.component.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown-menu.directive.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown-toggle.directive.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown.config.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown.directive.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown.module.ts","webpack:///./src/app/typescripts/free/dropdown/dropdown.state.ts","webpack:///./src/app/typescripts/free/dropdown/index.ts","webpack:///./src/app/typescripts/free/index.ts","webpack:///./src/app/typescripts/free/inputs/active.class.ts","webpack:///./src/app/typescripts/free/inputs/active.module.ts","webpack:///./src/app/typescripts/free/inputs/deep.directive.ts","webpack:///./src/app/typescripts/free/inputs/deep.module.ts","webpack:///./src/app/typescripts/free/inputs/equal-validator.directive.ts","webpack:///./src/app/typescripts/free/inputs/index.ts","webpack:///./src/app/typescripts/free/inputs/input-validate.directive.ts","webpack:///./src/app/typescripts/free/inputs/inputs.module.ts","webpack:///./src/app/typescripts/free/inputs/mdb-input.directive.ts","webpack:///./src/app/typescripts/free/modals/index.ts","webpack:///./src/app/typescripts/free/modals/modal.directive.ts","webpack:///./src/app/typescripts/free/modals/modal.module.ts","webpack:///./src/app/typescripts/free/modals/modal.options.ts","webpack:///./src/app/typescripts/free/modals/modal.service.ts","webpack:///./src/app/typescripts/free/modals/modalBackdrop.component.ts","webpack:///./src/app/typescripts/free/modals/modalContainer.component.ts","webpack:///./src/app/typescripts/free/modals/modalService.config.ts","webpack:///./src/app/typescripts/free/navbars/index.ts","webpack:///./src/app/typescripts/free/navbars/links.component.ts","webpack:///./src/app/typescripts/free/navbars/logo.component.ts","webpack:///./src/app/typescripts/free/navbars/navbar.component.html","webpack:///./src/app/typescripts/free/navbars/navbar.component.ts","webpack:///./src/app/typescripts/free/navbars/navbar.module.ts","webpack:///./src/app/typescripts/free/navbars/navbar.service.ts","webpack:///./src/app/typescripts/free/navbars/navlinks.component.ts","webpack:///./src/app/typescripts/free/popover/index.ts","webpack:///./src/app/typescripts/free/popover/popover-container.component.ts","webpack:///./src/app/typescripts/free/popover/popover.config.ts","webpack:///./src/app/typescripts/free/popover/popover.directive.ts","webpack:///./src/app/typescripts/free/popover/popover.module.ts","webpack:///./src/app/typescripts/free/ripple/index.ts","webpack:///./src/app/typescripts/free/ripple/ripple-effect.directive.ts","webpack:///./src/app/typescripts/free/ripple/ripple.module.ts","webpack:///./src/app/typescripts/free/tooltip/index.ts","webpack:///./src/app/typescripts/free/tooltip/tooltip.component.ts","webpack:///./src/app/typescripts/free/tooltip/tooltip.directive.ts","webpack:///./src/app/typescripts/free/tooltip/tooltip.module.ts","webpack:///./src/app/typescripts/free/tooltip/tooltip.service.ts","webpack:///./src/app/typescripts/free/utils/component-loader/component-loader.class.ts","webpack:///./src/app/typescripts/free/utils/component-loader/component-loader.factory.ts","webpack:///./src/app/typescripts/free/utils/component-loader/content-ref.class.ts","webpack:///./src/app/typescripts/free/utils/component-loader/index.ts","webpack:///./src/app/typescripts/free/utils/decorators.ts","webpack:///./src/app/typescripts/free/utils/facade/browser.ts","webpack:///./src/app/typescripts/free/utils/index.ts","webpack:///./src/app/typescripts/free/utils/linked-list.class.ts","webpack:///./src/app/typescripts/free/utils/ng2-bootstrap-config.ts","webpack:///./src/app/typescripts/free/utils/positioning/index.ts","webpack:///./src/app/typescripts/free/utils/positioning/ng-positioning.ts","webpack:///./src/app/typescripts/free/utils/positioning/positioning.service.ts","webpack:///./src/app/typescripts/free/utils/trigger.class.ts","webpack:///./src/app/typescripts/free/utils/triggers.ts","webpack:///./src/app/typescripts/free/utils/utils.class.ts","webpack:///./src/app/typescripts/free/waves/index.ts","webpack:///./src/app/typescripts/free/waves/waves-effect.directive.ts","webpack:///./src/app/typescripts/free/waves/waves.module.ts","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.body.html","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.body.ts","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.head.html","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.head.ts","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.html","webpack:///./src/app/typescripts/pro/accordion/components/sb-item.ts","webpack:///./src/app/typescripts/pro/accordion/components/sb.config.ts","webpack:///./src/app/typescripts/pro/accordion/components/squeezebox.html","webpack:///./src/app/typescripts/pro/accordion/components/squeezebox.ts","webpack:///./src/app/typescripts/pro/accordion/index.ts","webpack:///./src/app/typescripts/pro/alerts/overlay/overlay-container.ts","webpack:///./src/app/typescripts/pro/alerts/overlay/overlay-ref.ts","webpack:///./src/app/typescripts/pro/alerts/overlay/overlay.ts","webpack:///./src/app/typescripts/pro/alerts/portal/dom-portal-host.ts","webpack:///./src/app/typescripts/pro/alerts/portal/portal.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.component.html","webpack:///./src/app/typescripts/pro/alerts/toast/toast.component.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.config.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.injector.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.module.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.service.ts","webpack:///./src/app/typescripts/pro/alerts/toast/toast.token.ts","webpack:///./src/app/typescripts/pro/animations/animations.component.ts","webpack:///./src/app/typescripts/pro/autocomplete/completerModule.ts","webpack:///./src/app/typescripts/pro/autocomplete/components/completer-list-item.component.html","webpack:///./src/app/typescripts/pro/autocomplete/components/completer-list-item.component.ts","webpack:///./src/app/typescripts/pro/autocomplete/components/completer.component.html","webpack:///./src/app/typescripts/pro/autocomplete/components/completer.component.ts","webpack:///./src/app/typescripts/pro/autocomplete/directives/completer.directive.ts","webpack:///./src/app/typescripts/pro/autocomplete/directives/dropdown.directive.ts","webpack:///./src/app/typescripts/pro/autocomplete/directives/input.directive.ts","webpack:///./src/app/typescripts/pro/autocomplete/directives/list-context.directive.ts","webpack:///./src/app/typescripts/pro/autocomplete/directives/row.directive.ts","webpack:///./src/app/typescripts/pro/autocomplete/globals.ts","webpack:///./src/app/typescripts/pro/autocomplete/index.ts","webpack:///./src/app/typescripts/pro/autocomplete/services/base-data.service.ts","webpack:///./src/app/typescripts/pro/autocomplete/services/completer.service.ts","webpack:///./src/app/typescripts/pro/autocomplete/services/data-factory.service.ts","webpack:///./src/app/typescripts/pro/autocomplete/services/local-data.service.ts","webpack:///./src/app/typescripts/pro/autocomplete/services/remote-data.service.ts","webpack:///./src/app/typescripts/pro/cards/card-reveal.component.html","webpack:///./src/app/typescripts/pro/cards/card-reveal.component.ts","webpack:///./src/app/typescripts/pro/cards/card-rotating.component.html","webpack:///./src/app/typescripts/pro/cards/card-rotating.component.ts","webpack:///./src/app/typescripts/pro/cards/cards.module.ts","webpack:///./src/app/typescripts/pro/cards/index.ts","webpack:///./src/app/typescripts/pro/date-picker/datapicker.component.html","webpack:///./src/app/typescripts/pro/date-picker/datepicker.component.ts","webpack:///./src/app/typescripts/pro/date-picker/datepicker.module.ts","webpack:///./src/app/typescripts/pro/date-picker/directives/datepickerAutofill.directive.ts","webpack:///./src/app/typescripts/pro/date-picker/directives/datepickerFocus.directive.ts","webpack:///./src/app/typescripts/pro/date-picker/index.ts","webpack:///./src/app/typescripts/pro/date-picker/services/datepickerLocale.service.ts","webpack:///./src/app/typescripts/pro/date-picker/services/datepickerUtil.service.ts","webpack:///./src/app/typescripts/pro/easy-charts/chart-simple.component.html","webpack:///./src/app/typescripts/pro/easy-charts/chart-simple.component.ts","webpack:///./src/app/typescripts/pro/easy-charts/chart-simple.module.ts","webpack:///./src/app/typescripts/pro/easy-charts/chart-smallpie.component.ts","webpack:///./src/app/typescripts/pro/easy-charts/index.ts","webpack:///./src/app/typescripts/pro/file-input/classes/mdb-uploader.class.ts","webpack:///./src/app/typescripts/pro/file-input/directives/mdb-file-drop.directive.ts","webpack:///./src/app/typescripts/pro/file-input/directives/mdb-file-select.directive.ts","webpack:///./src/app/typescripts/pro/file-input/index.ts","webpack:///./src/app/typescripts/pro/file-input/module/mdb-uploader.module.ts","webpack:///./src/app/typescripts/pro/index.ts","webpack:///./src/app/typescripts/pro/inputs/char-counter.directive.ts","webpack:///./src/app/typescripts/pro/inputs/char-counter.module.ts","webpack:///./src/app/typescripts/pro/inputs/index.ts","webpack:///./src/app/typescripts/pro/lightbox/image-popup.html","webpack:///./src/app/typescripts/pro/lightbox/image-popup.ts","webpack:///./src/app/typescripts/pro/lightbox/index.ts","webpack:///./src/app/typescripts/pro/lightbox/light-box.module.ts","webpack:///./src/app/typescripts/pro/material-select/diacritics.ts","webpack:///./src/app/typescripts/pro/material-select/index.ts","webpack:///./src/app/typescripts/pro/material-select/option-list.ts","webpack:///./src/app/typescripts/pro/material-select/option.ts","webpack:///./src/app/typescripts/pro/material-select/select-dropdown.component.html","webpack:///./src/app/typescripts/pro/material-select/select-dropdown.component.ts","webpack:///./src/app/typescripts/pro/material-select/select.component.html","webpack:///./src/app/typescripts/pro/material-select/select.component.ts","webpack:///./src/app/typescripts/pro/material-select/select.module.ts","webpack:///./src/app/typescripts/pro/preloader/preloader.constants.ts","webpack:///./src/app/typescripts/pro/preloader/preloader.service.ts","webpack:///./src/app/typescripts/pro/progressbars/bar.component.html","webpack:///./src/app/typescripts/pro/progressbars/bar.component.ts","webpack:///./src/app/typescripts/pro/progressbars/index.ts","webpack:///./src/app/typescripts/pro/progressbars/progress-bars-module/index.ts","webpack:///./src/app/typescripts/pro/progressbars/progress-bars-module/progressbar.component.html","webpack:///./src/app/typescripts/pro/progressbars/progress-bars-module/progressbar.component.scss","webpack:///./src/app/typescripts/pro/progressbars/progress-bars-module/progressbar.component.ts","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner-module/index.ts","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner-module/progress-spinner.component.html","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner-module/progress-spinner.component.scss","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner-module/progress-spinner.component.ts","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner.component.html","webpack:///./src/app/typescripts/pro/progressbars/progress-spinner.component.ts","webpack:///./src/app/typescripts/pro/progressbars/progress.directive.ts","webpack:///./src/app/typescripts/pro/progressbars/progressbar.component.html","webpack:///./src/app/typescripts/pro/progressbars/progressbar.component.ts","webpack:///./src/app/typescripts/pro/progressbars/progressbar.config.component.ts","webpack:///./src/app/typescripts/pro/progressbars/progressbar.module.ts","webpack:///./src/app/typescripts/pro/sidenav/index.ts","webpack:///./src/app/typescripts/pro/sidenav/sidenav.component.html","webpack:///./src/app/typescripts/pro/sidenav/sidenav.component.ts","webpack:///./src/app/typescripts/pro/sidenav/sidenav.module.ts","webpack:///./src/app/typescripts/pro/smoothscroll/index.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll-util.service.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll.config.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll.directive.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll.instance.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll.module.ts","webpack:///./src/app/typescripts/pro/smoothscroll/mdb-page-scroll.service.ts","webpack:///./src/app/typescripts/pro/sticky-content/computed.style.ts","webpack:///./src/app/typescripts/pro/sticky-content/index.ts","webpack:///./src/app/typescripts/pro/sticky-content/sticky-content.directive.ts","webpack:///./src/app/typescripts/pro/sticky-content/sticky-content.module.ts","webpack:///./src/app/typescripts/pro/tabs-pills/index.ts","webpack:///./src/app/typescripts/pro/tabs-pills/tab-heading.directive.ts","webpack:///./src/app/typescripts/pro/tabs-pills/tab.directive.ts","webpack:///./src/app/typescripts/pro/tabs-pills/tabset.component.html","webpack:///./src/app/typescripts/pro/tabs-pills/tabset.component.ts","webpack:///./src/app/typescripts/pro/tabs-pills/tabset.config.ts","webpack:///./src/app/typescripts/pro/tabs-pills/tabset.module.ts","webpack:///./src/app/typescripts/pro/tabs-pills/transclude.directive.ts","webpack:///./src/app/typescripts/pro/tags/chips.component.html","webpack:///./src/app/typescripts/pro/tags/chips.component.ts","webpack:///./src/app/typescripts/pro/tags/chips.module.ts","webpack:///./src/app/typescripts/pro/tags/index.ts","webpack:///./src/app/typescripts/pro/time-picker/index.ts","webpack:///./src/app/typescripts/pro/time-picker/timepicker.component.html","webpack:///./src/app/typescripts/pro/time-picker/timepicker.component.ts","webpack:///./src/app/typescripts/pro/time-picker/timepicker.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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AAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,GAAG;QACb,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\"","module.exports = \"<!-- Start your project here-->\\r\\n<router-outlet></router-outlet>\\r\\n <!-- /Start your project here-->\\r\\n \"","import { Component } from '@angular/core';\r\n// import { ToastService } from './typescripts/pro/alerts';\r\n\r\n@Component({\r\n selector: 'mdb-root',\r\n templateUrl: 'app.component.html',\r\n styleUrls: ['app.component.css']\r\n\r\n})\r\n\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","import { ToastModule } from './typescripts/pro/alerts/toast/toast.module';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MDBBootstrapModule } from './typescripts/free';\r\nimport { MDBBootstrapModulePro } from './typescripts/pro/index';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { AppComponent } from './app.component';\r\nimport { MDBSpinningPreloader } from './typescripts/pro/index';\r\n\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SignupComponent } from './signup/signup.component';\r\nimport { BookComponent } from './book/book.component';\r\n\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MainComponent } from './main/main.component';\r\n\r\n\r\nimport {VgCoreModule} from 'videogular2/core';\r\nimport {VgControlsModule} from 'videogular2/controls';\r\nimport {VgOverlayPlayModule} from 'videogular2/overlay-play';\r\nimport {VgBufferingModule} from 'videogular2/buffering';\r\n\r\n// import { DropzoneModule } from 'dropzone';\r\n// import {SingleMediaPlayer} from './single-media-player';\r\n\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { DROPZONE_CONFIG } from 'ngx-dropzone-wrapper';\r\nimport { DropzoneConfigInterface } from 'ngx-dropzone-wrapper';\r\n\r\n\r\nconst DEFAULT_DROPZONE_CONFIG: DropzoneConfigInterface = {\r\n // Change this to your upload POST address:\r\n url: 'https://httpbin.org/post',\r\n //acceptedFiles: 'image/*',\r\n createImageThumbnails: true\r\n};\r\n\r\nconst appRoutes: Routes = [\r\n {\r\n path: 'main',\r\n component: MainComponent,\r\n data: { title: 'Home Main' }\r\n },\r\n {\r\n path: 'books',\r\n component: BookComponent,\r\n data: { title: 'Book List' }\r\n },\r\n {\r\n path: 'login',\r\n component: LoginComponent,\r\n data: { title: 'Login' }\r\n },\r\n {\r\n path: 'signup',\r\n component: SignupComponent,\r\n data: { title: 'Sign Up' }\r\n },\r\n { path: '',\r\n redirectTo: '/login',\r\n pathMatch: 'full'\r\n }\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n SignupComponent,\r\n MainComponent,\r\n BookComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n DropzoneModule,\r\n VgCoreModule,\r\n VgControlsModule,\r\n VgOverlayPlayModule,\r\n VgBufferingModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n HttpModule,\r\n HttpClientModule,\r\n RouterModule.forRoot(\r\n appRoutes,\r\n { enableTracing: true } // <-- debugging purposes only\r\n ),\r\n ToastModule.forRoot(),\r\n MDBBootstrapModule.forRoot(),\r\n MDBBootstrapModulePro.forRoot(),\r\n AgmCoreModule.forRoot({\r\n // https://developers.google.com/maps/documentation/javascript/get-api-key?hl=en#key\r\n apiKey: 'Your_api_key'\r\n })\r\n ],\r\n providers: [\r\n MDBSpinningPreloader,\r\n {\r\n provide: DROPZONE_CONFIG,\r\n useValue: DEFAULT_DROPZONE_CONFIG\r\n }],\r\n bootstrap: [AppComponent],\r\n schemas: [ NO_ERRORS_SCHEMA ]\r\n})\r\nexport class AppModule { }\r\n","module.exports = \".app-title {\\r\\n font-size: 24px;\\r\\n}\\r\\n\\r\\n.box-title {\\r\\n font-size: 20px;\\r\\n}\\r\\n\\r\\n.box-container {\\r\\n box-sizing: border-box;\\r\\n height: 300px;\\r\\n max-width: 90%;\\r\\n max-height: 90%;\\r\\n padding: 24px;\\r\\n margin: 24px auto;\\r\\n border-radius: 4px;\\r\\n\\r\\n color: #555;\\r\\n background-color: #eee;\\r\\n box-shadow:\\r\\n 0 6px 20px rgba(0, 0, 0, 0.18),\\r\\n 0 6px 6px rgba(0, 0, 0, 0.25);\\r\\n}\\r\\n\\r\\n.info-container {\\r\\n padding: 12px 16px;\\r\\n\\r\\n line-height: 24px;\\r\\n}\\r\\n\\r\\n.action-container,\\r\\n.content-container {\\r\\n position: relative;\\r\\n\\r\\n overflow: auto;\\r\\n height: 200px;\\r\\n min-height: 0;\\r\\n padding: 16px;\\r\\n margin: 8px 16px;\\r\\n border-radius: 4px;\\r\\n\\r\\n background-color: #fff;\\r\\n}\\r\\n\\r\\n.vertical-container,\\r\\n.horizontal-container {\\r\\n min-height: 0 !important;\\r\\n}\\r\\n\\r\\n.action-button {\\r\\n box-sizing: border-box;\\r\\n width: calc(100% - 16px);\\r\\n min-height: 35px;\\r\\n padding: 4px 16px;\\r\\n margin: 8px;\\r\\n border: 1px solid #555;\\r\\n border-radius: 4px;\\r\\n\\r\\n cursor: pointer;\\r\\n font-size: 14px;\\r\\n font-weight: bold;\\r\\n line-height: 14px;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.action-button:hover {\\r\\n color: #fff;\\r\\n background-color: #555;\\r\\n}\\r\\n\\r\\n.dropzone-container {\\r\\n height: 100%;\\r\\n}\\r\\n\"","module.exports = \"<div class=\\\"container-fluid\\\">\\r\\n <div *ngIf=\\\"mainFolder\\\">\\r\\n <p> Path : {{mainFolder.path}}</p>\\r\\n <p> Vous êtes dans le dossier : {{mainFolder.name}}</p>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Retour à : {{mainFolder.parent}}\\\" placement=\\\"top\\\" (click)=\\\"backToParentFolder()\\\" *ngIf=\\\"mainFolder.path !== 'Home'\\\"><i class=\\\"fa fa-chevron-left\\\" aria-hidden=\\\"true\\\"></i> {{mainFolder.parent}}</button>\\r\\n </div>\\r\\n\\r\\n\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Nouveau dossier\\\" placement=\\\"top\\\" (click)=\\\"createBool()\\\" *ngIf=\\\"isClickCreateFolder === false\\\">\\r\\n <i class=\\\"fa fa-plus-circle\\\" aria-hidden=\\\"true\\\"><i class=\\\"fa fa-folder-o\\\" aria-hidden=\\\"true\\\"></i></i>\\r\\n </button>\\r\\n\\r\\n\\r\\n\\r\\n <div class=\\\"md-form input-group\\\" *ngIf=\\\"isClickCreateFolder === true\\\">\\r\\n <div class=\\\"input-group-btn\\\">\\r\\n <button class=\\\"btn btn-primary btn-sm waves-light\\\" mdbTooltip=\\\"Créer : {{inputCreateFolder}}\\\" placement=\\\"top\\\" type=\\\"button\\\" mdbWavesEffect (click)=\\\"createFolder()\\\">Créer</button>\\r\\n </div>\\r\\n <input type=\\\"search\\\" class=\\\"form-control\\\" placeholder=\\\"Nom du nouveau dossier...\\\" [(ngModel)]=\\\"inputCreateFolder\\\">\\r\\n </div>\\r\\n\\r\\n<!--\\r\\n <label class=\\\"btn btn-danger btn-sm\\\" mdbTooltip=\\\"Choisir fichier\\\" placement=\\\"top\\\" >\\r\\n <i class=\\\"fa fa-plus-circle\\\" aria-hidden=\\\"true\\\"><i class=\\\"fa fa-file-o\\\" aria-hidden=\\\"true\\\"></i></i>\\r\\n <input type=\\\"file\\\" style=\\\"display: none;\\\" #myPicture name=\\\"myPicture\\\" (change)=\\\"fileChangeEvent($event)\\\">\\r\\n </label>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Ajouter le fichier : {{fileChooseName}}\\\" placement=\\\"top\\\" (click)=\\\"upload()\\\" >Ajouter le fichier {{fileChooseName}}</button>\\r\\n <label *ngIf=\\\"fileChooseName !== ''\\\"> Vous avez choisi : {{fileChooseName}}</label>-->\\r\\n\\r\\n <div class=\\\"box-container\\\" fxLayout=\\\"column\\\" [ngStyle.lt-sm]=\\\"'min-height: 400;'\\\">\\r\\n <div class=\\\"horizontal-container\\\" fxLayout=\\\"row\\\" fxLayout.lt-sm=\\\"column\\\" fxLayoutAlign=\\\"stretch\\\" fxFlex=\\\"auto\\\">\\r\\n <div class=\\\"vertical-container\\\" fxLayout=\\\"column\\\" fxLayoutAlign=\\\"stretch\\\" fxFlex=\\\"50%\\\">\\r\\n <div class=\\\"box-title\\\">Dropzone</div>\\r\\n\\r\\n <div class=\\\"content-container\\\" fxLayout=\\\"column\\\" fxLayoutAlign=\\\"stretch\\\" fxFlex=\\\"auto\\\" style=\\\"background-color: green;\\\">\\r\\n <dropzone *ngIf=\\\"type === 'component'\\\" class=\\\"dropzone-container\\\" [config]=\\\"config\\\" [disabled]=\\\"disabled\\\" fxLayout=\\\"row\\\" fxLayoutAlign=\\\"start strech\\\" fxFlex=\\\"auto\\\" [message]=\\\"'Click or drag file here to upload'\\\" (error)=\\\"onUploadError($event)\\\" (success)=\\\"onUploadSuccess($event)\\\"></dropzone>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n</div>\\r\\n<table class=\\\"table table-striped\\\">\\r\\n <thead>\\r\\n <tr>\\r\\n <th>#</th>\\r\\n <th>Nom</th>\\r\\n <th>Taille</th>\\r\\n <th>Type</th>\\r\\n <th>Date d'ajout</th>\\r\\n </tr>\\r\\n </thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let folder of allUserFolder; let i = index;\\\">\\r\\n <td>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Supprimer : {{folder.name}}\\\" placement=\\\"top\\\" (click)=\\\"deleteFolder(folder)\\\"><i class=\\\"fa fa-close\\\" aria-hidden=\\\"true\\\"></i></button>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Ouvrir : {{folder.name}}\\\" placement=\\\"top\\\" (click)=\\\"openFolder(folder.path)\\\"><i class=\\\"fa fa-folder-open-o\\\" aria-hidden=\\\"true\\\"></i></button>\\r\\n <!--<button type=\\\"button\\\" class=\\\"btn btn-warning\\\" (click)=\\\"renameFolder(folder)\\\">Rename</button>-->\\r\\n <div class=\\\"btn-group\\\" dropdown>\\r\\n <button type=\\\"button\\\" dropdownToggle class=\\\"btn btn-success btn-sm dropdown-toggle-split px-3 waves-light\\\" mdbTooltip=\\\"Déplacer : {{folder.name}}\\\" placement=\\\"top\\\" mdbWavesEffect>\\r\\n <i class=\\\"fa fa-arrows\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </button>\\r\\n <div class=\\\"dropdown-menu\\\">\\r\\n <a class=\\\"dropdown-item\\\" *ngFor=\\\"let folderDest of allUserAppFolder; let i = index;\\\" (click)=\\\"moveFolder(folder, folderDest)\\\">{{folderDest.name}}</a>\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n\\r\\n <td>\\r\\n <button class=\\\"btn btn-primary btn-sm waves-light\\\" mdbTooltip=\\\"Renommer : {{folder.name}}\\\" placement=\\\"top\\\" type=\\\"button\\\" mdbWavesEffect (click)=\\\"renameFolder(folder)\\\">\\r\\n <i class=\\\"fa fa-pencil prefix\\\"></i>\\r\\n </button>\\r\\n <input type=\\\"search\\\" class=\\\"form-control col-xs-2\\\" placeholder= \\\"{{folder.name}}\\\" [(ngModel)]=\\\"folder.name\\\">\\r\\n </td>\\r\\n <!--<td>{{ folder.name }}</td>-->\\r\\n <td>{{ folder.taille}} Mo</td>\\r\\n <td>Folder</td>\\r\\n <td>{{ folder.owner }}</td>\\r\\n <i class=\\\"fa fa-folder-open-o\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </tr>\\r\\n <tr *ngFor=\\\"let file of allUserFile; let i = index;\\\">\\r\\n <td>\\r\\n <button type=\\\"button\\\" class=\\\"btn btn-sm btn-warning\\\" mdbTooltip=\\\"Supprimer : {{file.name}}\\\" placement=\\\"top\\\" (click)=\\\"deleteFile(file)\\\"><i class=\\\"fa fa-close\\\" aria-hidden=\\\"true\\\"></i></button>\\r\\n\\r\\n <a href=\\\"{{file.data}}\\\" download=\\\"{{ file.name.toString()}}\\\" type=\\\"\\\">\\r\\n <button class=\\\"btn btn-sm btn-warning\\\" tooltip=\\\"Télécharger : {{ file.name.toString()}} : \\\" placement=\\\"top\\\">\\r\\n <i class=\\\"fa fa-download\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </button>\\r\\n </a>\\r\\n\\r\\n <div class=\\\"btn-group\\\" dropdown>\\r\\n <button type=\\\"button\\\" dropdownToggle class=\\\"btn btn-success btn-sm dropdown-toggle-split px-3 waves-light\\\" mdbTooltip=\\\"Déplacer : {{file.name}}\\\" placement=\\\"top\\\" mdbWavesEffect>\\r\\n <i class=\\\"fa fa-arrows\\\" aria-hidden=\\\"true\\\"></i>\\r\\n </button>\\r\\n <div class=\\\"dropdown-menu\\\">\\r\\n <a class=\\\"dropdown-item\\\" *ngFor=\\\"let folder of allUserAppFolder; let i = index;\\\" (click)=\\\"moveFile(file, folder)\\\">{{folder.name}}</a>\\r\\n </div>\\r\\n </div>\\r\\n </td>\\r\\n <td>\\r\\n <button class=\\\"btn btn-primary btn-sm waves-light\\\" mdbTooltip=\\\"Renommer : {{file.name}}\\\" placement=\\\"top\\\" type=\\\"button\\\" mdbWavesEffect (click)=\\\"renameFile(file)\\\">\\r\\n <i class=\\\"fa fa-pencil prefix\\\"></i>\\r\\n </button>\\r\\n <input type=\\\"search\\\" class=\\\"form-control col-xs-2\\\" placeholder= \\\"{{file.name}}\\\" [(ngModel)]=\\\"file.name\\\">\\r\\n </td>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n <!--<td>{{ file.name }}</td>-->\\r\\n <td>{{ file.taille / ( 1024 * 1024 ) | number : '1.2-2'}} Mo</td>\\r\\n <td>{{ file.type }}</td>\\r\\n <td>{{ file.lastDate }}</td>\\r\\n <div *ngIf=\\\"file.type === ('image/jpeg')\\\">\\r\\n <img [src]=file.urlSafe class=\\\"img-fluid flex-center\\\" width=\\\"350\\\" height=\\\"200\\\">\\r\\n </div>\\r\\n <div *ngIf=\\\"file.type === ('image/png')\\\">\\r\\n <img [src]=file.urlSafe class=\\\"img-fluid flex-center\\\" width=\\\"350\\\" height=\\\"200\\\">\\r\\n </div>\\r\\n <div *ngIf=\\\"file.type === ('application/pdf')\\\">\\r\\n <!--<i class=\\\"fa fa-file-pdf-o\\\" aria-hidden=\\\"true\\\"></i>-->\\r\\n <object [data]=file.urlSafe type=\\\"application/pdf\\\"\\r\\n width=\\\"350\\\" height=\\\"200\\\" typemustmatch>\\r\\n </object>\\r\\n\\r\\n </div>\\r\\n <div *ngIf=\\\"file.type === ('video/mp4')\\\">\\r\\n <!--<i class=\\\"fa fa-file-movie-o\\\" aria-hidden=\\\"true\\\"></i>-->\\r\\n <vg-player style=\\\"height: 200px; width: 350px\\\">\\r\\n <video [vgMedia]=\\\"media\\\" #media id=\\\"singleVideo\\\" preload=\\\"auto\\\" controls>\\r\\n <source [src]=file.urlSafe type=\\\"video/mp4\\\">\\r\\n </video>\\r\\n </vg-player>\\r\\n </div>\\r\\n <div *ngIf=\\\"file.type === ('text/plain')\\\">\\r\\n <!--<div>{{ reader !== 'undifined' ? reader.result : ''}}</div>\\r\\n <div>{{test}}</div>\\r\\n <a href = \\\"../../../public/{{file._id + getStringExtention(file)}}\\\">show me</a>-->\\r\\n <object [data]=file.urlSafe type=\\\"text/plain\\\"\\r\\n width=\\\"350\\\" height=\\\"200\\\" typemustmatch>\\r\\n </object>\\r\\n </div>\\r\\n <div *ngIf=\\\"file.type === ''\\\">\\r\\n <i class=\\\"fa fa-file-o fa-5x\\\" aria-hidden=\\\"true\\\" width=\\\"350\\\" height=\\\"200\\\"></i>\\r\\n <!--<object [data]=file.url type=\\\"text/plain\\\"\\r\\n width=\\\"350\\\" height=\\\"200\\\" typemustmatch>\\r\\n </object>-->\\r\\n <!--<div>{{ reader !== 'undifined' ? reader.result : ''}}</div>\\r\\n <div>{{test}}</div>\\r\\n <a href = \\\"../../../public/{{file._id + getStringExtention(file)}}\\\">show me</a>-->\\r\\n </div>\\r\\n <div *ngIf=\\\"(file.type === ('audio/mp3')) || (file.type === ('audio/mpeg'))\\\">\\r\\n <!--<i class=\\\"fa fa-file-audio-o\\\" aria-hidden=\\\"true\\\"></i>-->\\r\\n <vg-player style=\\\"height: 50px; width: 350px\\\">\\r\\n <vg-controls>\\r\\n <vg-play-pause></vg-play-pause>\\r\\n <vg-time-display vgProperty=\\\"current\\\" vgFormat=\\\"mm:ss\\\"></vg-time-display>\\r\\n\\r\\n <vg-scrub-bar>\\r\\n <vg-scrub-bar-current-time></vg-scrub-bar-current-time>\\r\\n <vg-scrub-bar-buffering-time></vg-scrub-bar-buffering-time>\\r\\n </vg-scrub-bar>\\r\\n\\r\\n <vg-time-display vgProperty=\\\"left\\\" vgFormat=\\\"mm:ss\\\"></vg-time-display>\\r\\n <vg-time-display vgProperty=\\\"total\\\" vgFormat=\\\"mm:ss\\\"></vg-time-display>\\r\\n\\r\\n <vg-mute></vg-mute>\\r\\n\\r\\n <vg-fullscreen></vg-fullscreen>\\r\\n </vg-controls>\\r\\n\\r\\n <audio #media [vgMedia]=\\\"media\\\" id=\\\"myAudio\\\" preload=\\\"auto\\\">\\r\\n <source [src]=file.urlSafe type=\\\"audio/mp3\\\">\\r\\n </audio>\\r\\n </vg-player>\\r\\n </div>\\r\\n </tr>\\r\\n\\r\\n </tbody>\\r\\n</table>\\r\\n\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { of } from 'rxjs/observable/of';\r\nimport {Http} from \"@angular/http\";\r\nimport {Form} from \"@angular/forms\";\r\nimport * as formData from 'form-data';\r\nimport {forEach} from '@angular/router/src/utils/collection';\r\nimport {type} from 'os';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n//import { Dropzone } from 'dropzone';\r\nimport { DropzoneComponent , DropzoneDirective,\r\n DropzoneConfigInterface } from 'ngx-dropzone-wrapper';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-book',\r\n templateUrl: './book.component.html',\r\n styleUrls: ['./book.component.css']\r\n})\r\nexport class BookComponent implements OnInit, OnDestroy {\r\n currentUser: any;\r\n allUserFile: any;\r\n allUserFolder: any;\r\n allUserAppFolder: any;\r\n mainFolder: any;\r\n books: any;\r\n filesToUpload: Array<File>;\r\n fileChooseName: string;\r\n httpOptions: any;\r\n isClickCreateFolder: boolean;\r\n inputCreateFolder: String;\r\n reader: FileReader;\r\n test: String;\r\n previewNode:any;\r\n previewTemplate:any;\r\n // config: DropzoneConfigInterface;\r\n //myDropzone: Dropzone;\r\n droptestt:any;\r\n\r\n public type: string = 'component';\r\n\r\n public disabled: boolean = false;\r\n\r\n public config: DropzoneConfigInterface = {\r\n clickable: true,\r\n maxFiles: 1,\r\n autoReset: null,\r\n errorReset: null,\r\n cancelReset: null\r\n };\r\n\r\n @ViewChild(DropzoneComponent) componentRef?: DropzoneComponent;\r\n @ViewChild(DropzoneDirective) directiveRef?: DropzoneDirective;\r\n\r\n\r\n constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute, public sanitizer: DomSanitizer) {\r\n this.isClickCreateFolder = false;\r\n this.fileChooseName = 'None';\r\n this.filesToUpload = [];\r\n this.test = '';\r\n }\r\n\r\n public toggleType(): void {\r\n this.type = (this.type === 'component') ? 'directive' : 'component';\r\n }\r\n\r\n public toggleDisabled(): void {\r\n this.disabled = !this.disabled;\r\n }\r\n\r\n public toggleAutoReset(): void {\r\n this.config.autoReset = this.config.autoReset ? null : 5000;\r\n this.config.errorReset = this.config.errorReset ? null : 5000;\r\n this.config.cancelReset = this.config.cancelReset ? null : 5000;\r\n }\r\n\r\n public toggleMultiUpload(): void {\r\n this.config.maxFiles = this.config.maxFiles ? 0 : 1;\r\n }\r\n\r\n public toggleClickAction(): void {\r\n this.config.clickable = !this.config.clickable;\r\n }\r\n\r\n public resetDropzoneUploads(): void {\r\n if (this.type === 'directive' && this.directiveRef) {\r\n this.directiveRef.reset();\r\n } else if (this.type === 'component' && this.componentRef && this.componentRef.directiveRef) {\r\n this.componentRef.directiveRef.reset();\r\n }\r\n }\r\n\r\n public onUploadError(args: any): void {\r\n console.log('onUploadError:', args);\r\n }\r\n\r\n public onUploadSuccess(args: any): void {\r\n this.filesToUpload = args;\r\n this.fileChooseName = args[0].name;\r\n\r\n var reader = new FileReader();\r\n reader.onload = function() {\r\n alert(reader.result);\r\n };\r\n reader.readAsText(args[0]);\r\n\r\n console.log('ggguu :' + JSON.stringify(args));\r\n this.upload();\r\n this.resetDropzoneUploads();\r\n this.openFolder(this.mainFolder.path);\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.httpOptions = {\r\n headers: new HttpHeaders({ 'Authorization': localStorage.getItem('jwtToken'), 'Access-Control-Allow-Origin' : '*'}),\r\n pathFolder: ''\r\n };\r\n\r\n this.http.get('/api/getCurrentUser', this.httpOptions).subscribe(user => {\r\n this.currentUser = user;\r\n this.openFolder('Home');\r\n }, err => {\r\n if (err.status === 401) {\r\n this.router.navigate(['login']);\r\n }\r\n });\r\n }\r\n\r\n deleteFile(fileToDelete) {\r\n this.http.post('/api/deleteFileMongo', fileToDelete).subscribe(file => {\r\n this.openFolder(this.mainFolder.path);\r\n });\r\n }\r\n\r\n deleteFolder(folderToDelete) {\r\n this.http.post('/api/deleteFolderMongo', folderToDelete).subscribe(folder => {\r\n this.openFolder(this.mainFolder.path);\r\n });\r\n }\r\n\r\n\r\n renameFolder(folderToRename){\r\n folderToRename.path = this.mainFolder.path + '/' + folderToRename.name;\r\n\r\n this.http.post('/api/renameFolderMongo', folderToRename).subscribe(data => {\r\n console.log('data : ' + data);\r\n });\r\n }\r\n\r\n renameFile(fileToRename){\r\n this.http.post('/api/renameFileMongo', fileToRename).subscribe(data => {\r\n console.log('data : ' + data);\r\n });\r\n }\r\n saveURLFileMongo(fileToCreateURL){\r\n fileToCreateURL.url = '../../../public/' + fileToCreateURL._id.toString() + this.getStringExtention(fileToCreateURL);\r\n // fileToCreateURL.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(fileToCreateURL.url).toString();\r\n\r\n this.http.post('/api/saveURLFileMongo', fileToCreateURL).subscribe(data => {\r\n console.log('data : ' + data);\r\n });\r\n }\r\n\r\n\r\n getfiles() {\r\n //var preview = document.querySelector('img');\r\n\r\n\r\n var meee = this;\r\n\r\n this.http.post('/api/getFileList', {mainPath : this.mainFolder.path, owner: this.currentUser.username.toString()}).subscribe(files => {\r\n if (files) {\r\n\r\n\r\n this.allUserFile = files;\r\n for (let f of this.allUserFile) {\r\n if(f.type === ('image/jpeg') || f.type === ('image/png')){\r\n f.data = f.url;\r\n f.urlSafe = this.sanitizer.bypassSecurityTrustUrl(f.url);\r\n }else{\r\n f.data = f.url;\r\n f.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(f.url);\r\n }\r\n\r\n }\r\n } else {\r\n this.allUserFile = [];\r\n }\r\n });\r\n }\r\n\r\n getfolders() {\r\n this.http.post('/api/getFolderList', {mainPath : this.mainFolder.path, owner: this.currentUser.username.toString()}).subscribe(folders => {\r\n if (folders) {\r\n this.allUserFolder = folders;\r\n } else {\r\n this.allUserFolder = [];\r\n }\r\n });\r\n }\r\n getAllUserAppFolder(){\r\n this.http.post('/api/getFolderAppList', {owner: this.currentUser.username.toString()}).subscribe(folders => {\r\n if (folders) {\r\n this.allUserAppFolder = folders;\r\n } else {\r\n this.allUserAppFolder = [];\r\n }\r\n });\r\n }\r\n\r\n moveFile(fileToMove, folderDest){\r\n fileToMove.path = folderDest.path;\r\n\r\n this.http.post('/api/moveFile', fileToMove).subscribe(data => {\r\n console.log('data : ' + data);\r\n this.getfiles();\r\n //this.openFolder(this.mainFolder.path)\r\n // this.getAllUserAppFolder();\r\n // this.getfiles();\r\n });\r\n }\r\n\r\n moveFolder(folderToMove, folderDest){\r\n var newPath = folderDest.path + '/' + folderToMove.parent.name;\r\n folderToMove.path = newPath;\r\n folderToMove.parent = folderDest.path;\r\n\r\n this.http.post('/api/moveFolder', folderToMove).subscribe(data => {\r\n console.log('data : ' + data);\r\n this.getfolders();\r\n //this.openFolder(this.mainFolder.path)\r\n // this.getAllUserAppFolder();\r\n // this.getfiles();\r\n });\r\n }\r\n\r\n backToParentFolder(){\r\n this.openFolder(this.mainFolder.parent);\r\n }\r\n\r\n\r\n openFolder(path: String) {\r\n this.httpOptions.pathFolder = path;\r\n\r\n this.isClickCreateFolder = false;\r\n\r\n this.http.post('/api/getMainFolder', {path: path, owner: this.currentUser.username.toString()}).subscribe(folder => {\r\n if (folder) {\r\n this.mainFolder = folder;\r\n this.getfolders();\r\n this.getAllUserAppFolder();\r\n this.getfiles();\r\n\r\n } else {\r\n if (path === 'Home'){\r\n this.http.post('api/createFolder', { name: 'Home', parent: '', path: 'Home', taille: 'taiile', idUser: this.currentUser._id.toString(), fileList: [], folderList: [], owner: this.currentUser.username.toString() }).subscribe(resp => {\r\n this.mainFolder = resp;\r\n }, err => {\r\n console.log('errrrr folllder : ' + err);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n createBool() {\r\n this.isClickCreateFolder = true;\r\n }\r\n\r\n createFolder() {\r\n var newPath = this.mainFolder.path + '/' + this.inputCreateFolder;\r\n this.isClickCreateFolder = false;\r\n\r\n this.http.post('api/createFolder', { name: this.inputCreateFolder.toString(), parent: this.mainFolder.path, path: newPath.toString(), taille: 'taiile', idUser: this.currentUser._id.toString(), fileList: [], folderList: [], owner: this.currentUser.username.toString() }).subscribe(resp => {\r\n this.getfolders();\r\n this.getAllUserAppFolder();\r\n }, err => {\r\n console.log('errrrr folllder : ' + err);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n localStorage.removeItem('jwtToken');\r\n this.httpOptions = null;\r\n this.currentUser = null;\r\n }\r\n\r\n upload() {\r\n var me = this;\r\n if(this.mainFolder !== undefined){\r\n console.log('this.filesToUpload[0] : ' + JSON.stringify(this.filesToUpload[0]));\r\n this.http.post('api/uploadFileMongo', { name: this.fileChooseName.toString(), path: this.mainFolder.path.toString(), type: this.filesToUpload[0].type.toString(), taille: this.filesToUpload[0].size.toString(), idUser: this.currentUser._id.toString(), owner: this.currentUser.username.toString(), lastDate: Date.now().toString(), url: '', urlSafe: ''}).subscribe(resp => {\r\n me.saveURLFileMongo(resp);\r\n var mee = this;\r\n me.makeFileRequest('http://localhost:3000/api/upload', [], this.filesToUpload, resp).then((result) => {\r\n mee.getfiles();\r\n mee.filesToUpload = null;\r\n mee.fileChooseName = 'None';\r\n }, (error) => {\r\n console.error(error);\r\n });\r\n }, err => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n\r\n fileChangeEvent(fileInput: any){\r\n this.filesToUpload = <Array<File>> fileInput.target.files;\r\n this.fileChooseName = this.filesToUpload[0].name;\r\n }\r\n\r\n\r\n makeFileRequest(url: string, params: Array<string>, files: Array<File>, monFile: any) {\r\n return new Promise((resolve, reject) => {\r\n var formData: any = new FormData();\r\n var xhr = new XMLHttpRequest();\r\n\r\n formData.append(\"public[]\", files[0], monFile._id + this.getStringExtention(monFile));\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState == 4) {\r\n if (xhr.status == 200) {\r\n resolve(JSON.parse(xhr.response));\r\n } else {\r\n reject(xhr.response);\r\n }\r\n }\r\n };\r\n\r\n xhr.open(\"POST\", url, true);\r\n xhr.send(formData);\r\n });\r\n }\r\n\r\n\r\n getStringExtention(monFile: any){\r\n return ( monFile.name.indexOf('.') > 0 ) ? '.' + monFile.name.split('.').pop().toLowerCase() : '';\r\n }\r\n}\r\n\r\n\r\n","module.exports = \"body {\\r\\n padding-top: 40px;\\r\\n padding-bottom: 40px;\\r\\n background-color: #eee;\\r\\n}\\r\\n\\r\\n.form-signin {\\r\\n max-width: 330px;\\r\\n padding: 15px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.form-signin .form-signin-heading,\\r\\n.form-signin .checkbox {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.form-signin .checkbox {\\r\\n font-weight: normal;\\r\\n}\\r\\n\\r\\n.form-signin .form-control {\\r\\n position: relative;\\r\\n height: auto;\\r\\n box-sizing: border-box;\\r\\n padding: 10px;\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.form-signin .form-control:focus {\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.form-signin input[type=\\\"email\\\"] {\\r\\n margin-bottom: -1px;\\r\\n border-bottom-right-radius: 0;\\r\\n border-bottom-left-radius: 0;\\r\\n}\\r\\n\\r\\n.form-signin input[type=\\\"password\\\"] {\\r\\n margin-bottom: 10px;\\r\\n border-top-left-radius: 0;\\r\\n border-top-right-radius: 0;\\r\\n}\\r\\n\\r\\n.form-signin p {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\"","module.exports = \"<div class=\\\"container\\\">\\r\\n <form class=\\\"form-signin\\\" (ngSubmit)=\\\"login()\\\" #loginForm=\\\"ngForm\\\">\\r\\n <div class=\\\"alert alert-warning alert-dismissible\\\" role=\\\"alert\\\" *ngIf=\\\"message !== ''\\\">\\r\\n <button type=\\\"button\\\" class=\\\"close\\\" data-dismiss=\\\"alert\\\" aria-label=\\\"Close\\\"><span aria-hidden=\\\"true\\\">&times;</span></button>\\r\\n {{message}}\\r\\n </div>\\r\\n <h2 class=\\\"form-signin-heading\\\">Please sign in</h2>\\r\\n <label for=\\\"inputEmail\\\" class=\\\"sr-only\\\">Email address</label>\\r\\n <input type=\\\"email\\\" class=\\\"form-control\\\" placeholder=\\\"Email address\\\" [(ngModel)]=\\\"loginData.username\\\" name=\\\"username\\\" required/>\\r\\n <label for=\\\"inputPassword\\\" class=\\\"sr-only\\\">Password</label>\\r\\n <input type=\\\"password\\\" class=\\\"form-control\\\" placeholder=\\\"Password\\\" [(ngModel)]=\\\"loginData.password\\\" name=\\\"password\\\" required/>\\r\\n <button class=\\\"btn btn-lg btn-primary btn-block\\\" type=\\\"submit\\\" [disabled]=\\\"!loginForm.form.valid\\\">Sign in</button>\\r\\n <p>\\r\\n Not a member? <a [routerLink]=\\\"['/signup']\\\">Signup here</a>\\r\\n </p>\\r\\n\\r\\n <button onclick=\\\"location.href='/api/facebook'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-fb\\\"><i class=\\\"fa fa-facebook\\\"></i></button>\\r\\n <button onclick=\\\"location.href='/api/github'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-git\\\"><i class=\\\"fa fa-github\\\"></i></button>\\r\\n <button onclick=\\\"location.href='/api/google'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-gplus\\\"><i class=\\\"fa fa-google\\\"></i></button>\\r\\n </form>\\r\\n</div>\\r\\n<<<<<<< HEAD\\r\\n\\r\\n\\r\\n\\r\\n<button onclick=\\\"location.href='/api/facebook'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-fb\\\"><i class=\\\"fa fa-facebook\\\"></i></button>\\r\\n<button onclick=\\\"location.href='/api/github'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-git\\\"><i class=\\\"fa fa-github\\\"></i></button>\\r\\n<button onclick=\\\"location.href='/api/google'\\\" type=\\\"button\\\" class=\\\"btn-floating btn-gplus\\\"><i class=\\\"fa fa-google\\\"></i></button>\\r\\n<button type=\\\"button\\\" class=\\\"btn-floating btn-fb\\\" (click)=\\\"facebook()\\\"><i class=\\\"fa fa-facebook\\\"></i></button>\\r\\n=======\\r\\n>>>>>>> 98b837065bd51764d8da85c7972979c9fcf214dc\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginData = { username: '', password: '' };\r\n message = '';\r\n data: any;\r\n constructor(private http: HttpClient, private router: Router) { }\r\n\r\n login() {\r\n this.http.post('/api/signin', this.loginData).subscribe(resp => {\r\n this.data = resp;\r\n localStorage.setItem('jwtToken', this.data.token);\r\n this.router.navigate(['main']);\r\n }, err => {\r\n this.message = err.error.msg;\r\n });\r\n }\r\n\r\n facebook() {\r\n this.http.get('/api/facebook').subscribe(resp => {\r\n this.router.navigate(['main']);\r\n }, err => {\r\n this.message = err.error.msg;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"<body class=\\\"grey-skin\\\">\\r\\n\\r\\n\\r\\n<!--Double navigation-->\\r\\n<header>\\r\\n\\r\\n <!-- Sidebar navigation -->\\r\\n <mdb-sidenav #sidenav class=\\\"sn-bg-1 fixed\\\" [fixed]=\\\"true\\\">\\r\\n\\r\\n <logo>\\r\\n <!-- Logo -->\\r\\n <li>\\r\\n <div class=\\\"logo-wrapper waves-light\\\">\\r\\n <a href=\\\"#\\\"><img style=\\\"height: 90px; margin-left: 13%;\\\"src=\\\"https://openclipart.org/image/2400px/svg_to_png/190248/slogonormal.png\\\" class=\\\"img-fluid flex-center\\\"></a>\\r\\n </div>\\r\\n </li>\\r\\n <!--/. Logo -->\\r\\n </logo>\\r\\n\\r\\n <links>\\r\\n <!--Social-->\\r\\n <li>\\r\\n <ul class=\\\"social\\\">\\r\\n <li><a class=\\\"icons-sm fb-ic\\\"><i class=\\\"fa fa-facebook\\\"> </i></a></li>\\r\\n <li><a class=\\\"icons-sm pin-ic\\\"><i class=\\\"fa fa-pinterest\\\"> </i></a></li>\\r\\n <li><a class=\\\"icons-sm gplus-ic\\\"><i class=\\\"fa fa-google-plus\\\"> </i></a></li>\\r\\n <li><a class=\\\"icons-sm tw-ic\\\"><i class=\\\"fa fa-twitter\\\"> </i></a></li>\\r\\n </ul>\\r\\n </li>\\r\\n <!--/Social-->\\r\\n <!--Search Form-->\\r\\n <li>\\r\\n <form class=\\\"search-form\\\" role=\\\"search\\\">\\r\\n <div class=\\\"form-group md-form mt-0 pt-1 waves-light\\\" mdbWavesEffect>\\r\\n <input type=\\\"text\\\" class=\\\"form-control\\\" placeholder=\\\"Search\\\">\\r\\n </div>\\r\\n </form>\\r\\n </li>\\r\\n <!--/.Search Form-->\\r\\n <!-- Side navigation links -->\\r\\n <li>\\r\\n <ul class=\\\"collapsible collapsible-accordion\\\">\\r\\n <mdb-squeezebox [multiple]=\\\"false\\\" aria-multiselectable=\\\"false\\\">\\r\\n\\r\\n <!-- Collapsible link -->\\r\\n <mdb-item>\\r\\n <mdb-item-head mdbWavesEffect><i class=\\\"fa fa-chevron-right\\\"></i> Collapsible menu</mdb-item-head>\\r\\n <mdb-item-body>\\r\\n <ul>\\r\\n <li><a href=\\\"#\\\" class=\\\"waves-effect\\\" mdbWavesEffect>Link 1</a></li>\\r\\n <li><a href=\\\"#\\\" class=\\\"waves-effect\\\" mdbWavesEffect>Link 2</a></li>\\r\\n </ul>\\r\\n </mdb-item-body>\\r\\n </mdb-item>\\r\\n\\r\\n <!-- Simple link -->\\r\\n <mdb-item class=\\\"no-collase\\\">\\r\\n <mdb-item-head mdbWavesEffect><i class=\\\"fa fa-hand-pointer-o\\\"></i> Simple link</mdb-item-head>\\r\\n <mdb-item-body></mdb-item-body>\\r\\n </mdb-item>\\r\\n\\r\\n <!-- Collapsible link -->\\r\\n <mdb-item>\\r\\n <mdb-item-head mdbWavesEffect><i class=\\\"fa fa-eye\\\"></i> Collapsible menu 2</mdb-item-head>\\r\\n <mdb-item-body>\\r\\n <ul>\\r\\n <li><a href=\\\"#\\\" class=\\\"waves-effect\\\" mdbWavesEffect>Link 1</a></li>\\r\\n <li><a href=\\\"#\\\" class=\\\"waves-effect\\\" mdbWavesEffect>Link 2</a></li>\\r\\n </ul>\\r\\n </mdb-item-body>\\r\\n </mdb-item>\\r\\n\\r\\n <!-- Simple link -->\\r\\n <mdb-item class=\\\"no-collase\\\">\\r\\n <mdb-item-head mdbWavesEffect><i class=\\\"fa fa-diamond\\\"></i> Simple link 2</mdb-item-head>\\r\\n <mdb-item-body></mdb-item-body>\\r\\n </mdb-item>\\r\\n\\r\\n </mdb-squeezebox>\\r\\n </ul>\\r\\n </li>\\r\\n <!--/. Side navigation links -->\\r\\n </links>\\r\\n <div class=\\\"sidenav-bg mask-strong\\\"></div>\\r\\n </mdb-sidenav>\\r\\n <!--/. Sidebar navigation -->\\r\\n\\r\\n <!-- Navbar -->\\r\\n <mdb-navbar SideClass=\\\"navbar fixed-top navbar-toggleable-md navbar-expand-lg scrolling-navbar double-nav\\\" [containerInside]=\\\"false\\\">\\r\\n\\r\\n <navlinks class=\\\"navbar-container\\\">\\r\\n <!-- SideNav slide-out button -->\\r\\n <div class=\\\"float-left\\\">\\r\\n <a (click)=\\\"sidenav.show()\\\" class=\\\"button-collapse\\\"><i class=\\\"fa fa-bars\\\"></i></a>\\r\\n </div>\\r\\n <!--/. SideNav slide-out button -->\\r\\n </navlinks>\\r\\n\\r\\n <logo>\\r\\n <!-- Breadcrumb-->\\r\\n <div class=\\\"breadcrumbs breadcrumb-dn mr-auto\\\">\\r\\n <p>Welcome</p>\\r\\n </div>\\r\\n <!--/. Breadcrumb-->\\r\\n </logo>\\r\\n\\r\\n <navlinks>\\r\\n <ul class=\\\"nav navbar-nav nav-flex-icons ml-auto ie-double-nav\\\">\\r\\n <li class=\\\"nav-item\\\">\\r\\n <a class=\\\"nav-link waves-light\\\" mdbWavesEffect><i class=\\\"fa fa-envelope\\\"></i> <span class=\\\"clearfix d-none d-sm-inline-block\\\">Contact</span></a>\\r\\n </li>\\r\\n <li class=\\\"nav-item\\\">\\r\\n <a class=\\\"nav-link waves-light\\\" mdbWavesEffect><i class=\\\"fa fa-user\\\"></i> <span class=\\\"clearfix d-none d-sm-inline-block\\\">Account</span></a>\\r\\n </li>\\r\\n <li class=\\\"nav-item\\\" (click)=\\\"logout()\\\">\\r\\n <a class=\\\"nav-link waves-light\\\" mdbWavesEffect><i class=\\\"fa fa-sign-out mr-1\\\"></i> <span class=\\\"clearfix d-none d-sm-inline-block\\\">Log out</span></a>\\r\\n </li>\\r\\n <!--<li class=\\\"nav-item dropdown btn-group\\\" dropdown>-->\\r\\n <!--<a dropdownToggle type=\\\"button\\\" class=\\\"nav-link dropdown-toggle waves-light\\\" mdbWavesEffect>-->\\r\\n <!--Dropdown-->\\r\\n <!--</a>-->\\r\\n <!--<div class=\\\"dropdown-menu dropdown-primary dropdown-menu-right\\\" role=\\\"menu\\\">-->\\r\\n <!--<a class=\\\"dropdown-item\\\" href=\\\"#\\\">Action</a>-->\\r\\n <!--<a class=\\\"dropdown-item\\\" href=\\\"#\\\">Another action</a>-->\\r\\n <!--<a class=\\\"dropdown-item\\\" href=\\\"#\\\">Something else here</a>-->\\r\\n <!--</div>-->\\r\\n <!--</li>-->\\r\\n </ul>\\r\\n </navlinks>\\r\\n </mdb-navbar>\\r\\n <!--/. Navbar -->\\r\\n\\r\\n</header>\\r\\n<!--/.Double navigation-->\\r\\n\\r\\n<!--Main Layout-->\\r\\n<main style=\\\"margin-left: 0%; margin-right: 0%;\\\">\\r\\n <div class=\\\"container-fluid\\\" style=\\\"margin:0%; padding: 0%\\\">\\r\\n <app-book></app-book>\\r\\n </div>\\r\\n\\r\\n\\r\\n</main>\\r\\n<!--/Main layout-->\\r\\n\"","module.exports = \"\"","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-main',\r\n templateUrl: './main.component.html',\r\n styleUrls: ['./main.component.scss']\r\n})\r\nexport class MainComponent implements OnInit {\r\n\r\n constructor(private router: Router, private route: ActivatedRoute) { }\r\n\r\n logout() {\r\n localStorage.removeItem('jwtToken');\r\n this.router.navigate(['login']);\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"body {\\r\\n padding-top: 40px;\\r\\n padding-bottom: 40px;\\r\\n background-color: #eee;\\r\\n}\\r\\n\\r\\n.form-signin {\\r\\n max-width: 330px;\\r\\n padding: 15px;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\\r\\n.form-signin .form-signin-heading,\\r\\n.form-signin .checkbox {\\r\\n margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.form-signin .checkbox {\\r\\n font-weight: normal;\\r\\n}\\r\\n\\r\\n.form-signin .form-control {\\r\\n position: relative;\\r\\n height: auto;\\r\\n box-sizing: border-box;\\r\\n padding: 10px;\\r\\n font-size: 16px;\\r\\n}\\r\\n\\r\\n.form-signin .form-control:focus {\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\n.form-signin input[type=\\\"email\\\"] {\\r\\n margin-bottom: -1px;\\r\\n border-bottom-right-radius: 0;\\r\\n border-bottom-left-radius: 0;\\r\\n}\\r\\n\\r\\n.form-signin input[type=\\\"password\\\"] {\\r\\n margin-bottom: 10px;\\r\\n border-top-left-radius: 0;\\r\\n border-top-right-radius: 0;\\r\\n}\\r\\n\\r\\n.form-signin p {\\r\\n margin-top: 10px;\\r\\n}\\r\\n\"","module.exports = \"<div class=\\\"container\\\">\\r\\n <form class=\\\"form-signin\\\" (ngSubmit)=\\\"signup()\\\" #signupForm=\\\"ngForm\\\">\\r\\n <div class=\\\"alert alert-warning alert-dismissible\\\" role=\\\"alert\\\" *ngIf=\\\"message !== ''\\\">\\r\\n <button type=\\\"button\\\" class=\\\"close\\\" data-dismiss=\\\"alert\\\" aria-label=\\\"Close\\\"><span aria-hidden=\\\"true\\\">&times;</span></button>\\r\\n {{message}}\\r\\n </div>\\r\\n <h2 class=\\\"form-signin-heading\\\">Sign Up Now</h2>\\r\\n <label for=\\\"inputEmail\\\" class=\\\"sr-only\\\">Email address</label>\\r\\n <input type=\\\"email\\\" class=\\\"form-control\\\" placeholder=\\\"Email address\\\" [(ngModel)]=\\\"signupData.username\\\" name=\\\"username\\\" required/>\\r\\n <label for=\\\"inputPassword\\\" class=\\\"sr-only\\\">Password</label>\\r\\n <input type=\\\"password\\\" class=\\\"form-control\\\" placeholder=\\\"Password\\\" [(ngModel)]=\\\"signupData.password\\\" name=\\\"password\\\" required/>\\r\\n <button class=\\\"btn btn-lg btn-primary btn-block\\\" type=\\\"submit\\\" [disabled]=\\\"!signupForm.form.valid\\\">Sign Up</button>\\r\\n </form>\\r\\n</div>\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { of } from 'rxjs/observable/of';\r\n\r\n@Component({\r\n selector: 'app-signup',\r\n templateUrl: './signup.component.html',\r\n styleUrls: ['./signup.component.css']\r\n})\r\nexport class SignupComponent implements OnInit {\r\n signupData = { username:'', password:'' };\r\n message = '';\r\n constructor(private http: HttpClient, private router: Router) { }\r\n signup() {\r\n this.http.post('/api/signup',this.signupData).subscribe(resp => {\r\n // console.log(resp);\r\n this.router.navigate(['login']);\r\n }, err => {\r\n this.message = err.error.msg;\r\n });\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { ButtonCheckboxDirective } from './checkbox.directive';\r\nimport { ButtonRadioDirective } from './radio.directive';\r\n\r\n@NgModule({\r\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective],\r\n exports: [ButtonCheckboxDirective, ButtonRadioDirective]\r\n})\r\nexport class ButtonsModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: ButtonsModule, providers: []};\r\n }\r\n}\r\n","import { Directive, HostBinding, HostListener, Input, OnInit, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// TODO: config: activeClass - Class to apply to the checked buttons\r\n\r\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ButtonCheckboxDirective),\r\n multi: true\r\n};\r\n\r\n/**\r\n* Add checkbox functionality to any element\r\n*/\r\n@Directive({selector: '[mdbCheckbox]', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]})\r\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\r\n /** Truthy value, will be set to ngModel */\r\n @Input() public btnCheckboxTrue: any = true;\r\n /** Falsy value, will be set to ngModel */\r\n @Input() public btnCheckboxFalse: any = false;\r\n\r\n @HostBinding('class.active') public state = false;\r\n\r\n protected value: any;\r\n protected isDisabled: boolean;\r\n\r\n protected onChange: any = Function.prototype;\r\n protected onTouched: any = Function.prototype;\r\n\r\n // view -> model\r\n @HostListener('click')\r\n public onClick(): void {\r\n if (this.isDisabled) {\r\n return;\r\n }\r\n\r\n this.toggle(!this.state);\r\n this.onChange(this.value);\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.toggle(this.trueValue === this.value);\r\n }\r\n\r\n protected get trueValue(): boolean {\r\n return typeof this.btnCheckboxTrue !== 'undefined'\r\n ? this.btnCheckboxTrue\r\n : true;\r\n }\r\n\r\n protected get falseValue(): boolean {\r\n return typeof this.btnCheckboxFalse !== 'undefined'\r\n ? this.btnCheckboxFalse\r\n : false;\r\n }\r\n\r\n public toggle(state: boolean): void {\r\n this.state = state;\r\n this.value = this.state ? this.trueValue : this.falseValue;\r\n }\r\n\r\n // ControlValueAccessor\r\n // model -> view\r\n public writeValue(value: any): void {\r\n this.state = this.trueValue === value;\r\n this.value = value ? this.trueValue : this.falseValue;\r\n }\r\n\r\n public setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n public registerOnChange(fn: (_: any) => {}): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: () => {}): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","export { ButtonsModule } from './buttons.module';\r\nexport { ButtonRadioDirective } from './radio.directive';\r\nexport { ButtonCheckboxDirective } from './checkbox.directive';\r\n","import { Directive, ElementRef, HostBinding, forwardRef, HostListener, Input, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport const RADIO_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ButtonRadioDirective),\r\n multi: true\r\n};\r\n\r\n/**\r\n* Create radio buttons or groups of buttons.\r\n* A value of a selected button is bound to a variable specified via ngModel.\r\n*/\r\n@Directive({ selector: '[mdbRadio]', providers: [RADIO_CONTROL_VALUE_ACCESSOR] })\r\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\r\n\r\n public onChange: any = Function.prototype;\r\n public onTouched: any = Function.prototype;\r\n\r\n /** Radio button value, will be set to `ngModel` */\r\n @Input() public mdbRadio: any;\r\n /** If `true` — radio button can be unchecked */\r\n @Input() public uncheckable: boolean;\r\n /** Current value of radio component or group */\r\n @Input() public value: any;\r\n\r\n protected el: ElementRef;\r\n\r\n @HostBinding('class.active')\r\n public get isActive(): boolean {\r\n return this.mdbRadio === this.value;\r\n }\r\n\r\n // @HostBinding('class.active')\r\n @HostListener('click')\r\n public onClick(): void {\r\n if (this.el.nativeElement.attributes.disabled) {\r\n return;\r\n }\r\n\r\n if (this.uncheckable && this.mdbRadio === this.value) {\r\n this.value = undefined;\r\n } else {\r\n this.value = this.mdbRadio;\r\n }\r\n\r\n this.onTouched();\r\n this.onChange(this.value);\r\n }\r\n\r\n public constructor(el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.uncheckable = typeof this.uncheckable !== 'undefined';\r\n }\r\n\r\n public onBlur(): void {\r\n this.onTouched();\r\n }\r\n\r\n // ControlValueAccessor\r\n // model -> view\r\n public writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n public registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","module.exports = \"<div tabindex=\\\"0\\\" (swipeleft)=\\\"swipe($event.type)\\\" (swiperight)=\\\"swipe($event.type)\\\" (mouseenter)=\\\"pause()\\\" (mouseleave)=\\\"play()\\\" (mouseup)=\\\"play()\\\" class=\\\"carousel {{ class }} {{ type }}\\\">\\r\\n <div class=\\\"controls-top\\\" *ngIf=\\\"slides.length > 1 && !checkNavigation() && isControls\\\">\\r\\n <a class=\\\"btn-floating\\\" [class.disabled]=\\\"activeSlide===0&&noWrap\\\" (click)=\\\"previousSlide()\\\"><i class=\\\"fa fa-chevron-left\\\"></i></a>\\r\\n <a class=\\\"btn-floating\\\" (click)=\\\"nextSlide()\\\" [class.disabled]=\\\"isLast(activeSlide) && noWrap\\\"><i class=\\\"fa fa-chevron-right\\\"></i></a>\\r\\n </div>\\r\\n <ol class=\\\"carousel-indicators\\\" *ngIf=\\\"slides.length > 1 && checkDots() && isControls\\\">\\r\\n <li *ngFor=\\\"let slidez of slides; let i = index;\\\" [class.active]=\\\"slidez.active === true\\\" (click)=\\\"selectSlide(i)\\\"></li>\\r\\n </ol>\\r\\n <ol class=\\\"carousel-indicators\\\" *ngIf=\\\"slides.length > 1 && !checkDots() && isControls\\\">\\r\\n <li *ngFor=\\\"let slidez of slides; let i = index;\\\" [class.active]=\\\"slidez.active === true\\\" (click)=\\\"selectSlide(i)\\\">\\r\\n <img class=\\\"img-fluid\\\" src=\\\"{{ getImg(slidez) }}\\\">\\r\\n </li>\\r\\n </ol>\\r\\n <div class=\\\"carousel-inner\\\"><ng-content></ng-content></div>\\r\\n <a class=\\\"carousel-control-prev\\\" [class.disabled]=\\\"activeSlide === 0 && noWrap\\\" (click)=\\\"previousSlide()\\\" *ngIf=\\\"slides.length > 1 && checkNavigation() && isControls\\\">\\r\\n <span class=\\\"carousel-control-prev-icon\\\" aria-hidden=\\\"true\\\"></span>\\r\\n <span class=\\\"sr-only\\\">Previous</span>\\r\\n </a>\\r\\n <a class=\\\"carousel-control-next\\\" (click)=\\\"nextSlide()\\\" [class.disabled]=\\\"isLast(activeSlide) && noWrap\\\" *ngIf=\\\"slides.length > 1 && checkNavigation() && isControls\\\">\\r\\n <span class=\\\"carousel-control-next-icon\\\" aria-hidden=\\\"true\\\"></span>\\r\\n <span class=\\\"sr-only\\\">Next</span>\\r\\n </a>\\r\\n</div>\"","import { Component, Input, OnDestroy, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n\r\n import { isBs3, LinkedList } from '../utils';\r\n import { SlideComponent } from './slide.component';\r\n import { CarouselConfig } from './carousel.config';\r\n\r\n export enum Direction {UNKNOWN, NEXT, PREV}\r\n\r\n/**\r\n* Base element to create carousel\r\n*/\r\n@Component({\r\n selector: 'mdb-carousel',\r\n templateUrl: './carousel.component.html',\r\n})\r\n\r\nexport class CarouselComponent implements OnDestroy {\r\n SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };\r\n\r\n protected _slides: LinkedList<SlideComponent> = new LinkedList<SlideComponent>();\r\n public get slides(): SlideComponent[] {\r\n return this._slides.toArray();\r\n }\r\n\r\n protected currentInterval: any;\r\n protected isPlaying: boolean;\r\n protected destroyed = false;\r\n // protected el: ElementRef = null;\r\n protected el: ElementRef | any = null;\r\n protected animationEnd = true;\r\n\r\n /** If `true` — carousel will not cycle continuously and will have hard stops (prevent looping) */\r\n @Input() public noWrap: boolean;\r\n /** If `true` — will disable pausing on carousel mouse hover */\r\n @Input() public noPause: boolean;\r\n\r\n @Input('isControls') public isControls: boolean = true;\r\n @Input() public keyboard: boolean;\r\n\r\n @Input('class') public class: String = '';\r\n @Input('type') public type: String = '';\r\n @Input('animation') public animation: String = '';\r\n\r\n // protected _currentActiveSlide: number;\r\n protected _currentActiveSlide: number | any ;\r\n\r\n /** Will be emitted when active slide has been changed. Part of two-way-bindable [(activeSlide)] property */\r\n @Output() public activeSlideChange: EventEmitter <any> = new EventEmitter<any>(false);\r\n\r\n /** Index of currently displayed slide(started for 0) */\r\n @Input()\r\n public set activeSlide(index: number) {\r\n if (this._slides.length && index !== this._currentActiveSlide) {\r\n this._select(index);\r\n }\r\n }\r\n public get activeSlide(): number {\r\n return this._currentActiveSlide;\r\n }\r\n\r\n protected _interval: number;\r\n\r\n public checkNavigation() {\r\n if (this.type === 'carousel-multi-item') {\r\n return false;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n public checkDots() {\r\n if (this.type === 'carousel-thumbnails') {\r\n return false;\r\n }\r\n\r\n\r\n return true;\r\n }\r\n\r\n getImg(slide: any) {\r\n return slide.el.nativeElement.querySelector('img').src;\r\n }\r\n\r\n /**\r\n * Delay of item cycling in milliseconds. If false, carousel won't cycle automatically.\r\n */\r\n @Input()\r\n public get interval(): number {\r\n return this._interval;\r\n }\r\n public set interval(value: number) {\r\n this._interval = value;\r\n this.restartTimer();\r\n }\r\n\r\n public get isBs4(): boolean {\r\n return !isBs3();\r\n }\r\n\r\n public constructor(config: CarouselConfig, el: ElementRef) {\r\n Object.assign(this, config);\r\n this.el = el;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.destroyed = true;\r\n }\r\n\r\n /**\r\n * Adds new slide. If this slide is first in collection - set it as active and starts auto changing\r\n * @param slide\r\n */\r\n public addSlide(slide: SlideComponent): void {\r\n this._slides.add(slide);\r\n if (this._slides.length === 1) {\r\n this._currentActiveSlide = void 0;\r\n this.activeSlide = 0;\r\n this.play();\r\n }\r\n }\r\n\r\n /**\r\n * Removes specified slide. If this slide is active - will roll to another slide\r\n * @param slide\r\n */\r\n public removeSlide(slide: SlideComponent): void {\r\n const remIndex = this._slides.indexOf(slide);\r\n\r\n if (this._currentActiveSlide === remIndex) {\r\n\r\n // removing of active slide\r\n // let nextSlideIndex: number = void 0;\r\n let nextSlideIndex: number | any = void 0;\r\n if (this._slides.length > 1) {\r\n // if this slide last - will roll to first slide, if noWrap flag is FALSE or to previous, if noWrap is TRUE\r\n // in case, if this slide in middle of collection, index of next slide is same to removed\r\n nextSlideIndex = !this.isLast(remIndex) ? remIndex :\r\n this.noWrap ? remIndex - 1 : 0;\r\n }\r\n this._slides.remove(remIndex);\r\n\r\n // prevents exception with changing some value after checking\r\n setTimeout(() => {\r\n this._select(nextSlideIndex);\r\n }, 0);\r\n } else {\r\n this._slides.remove(remIndex);\r\n const currentSlideIndex = this.getCurrentSlideIndex();\r\n setTimeout(() => {\r\n // after removing, need to actualize index of current active slide\r\n this._currentActiveSlide = currentSlideIndex;\r\n this.activeSlideChange.emit(this._currentActiveSlide);\r\n }, 0);\r\n\r\n }\r\n }\r\n // Fixed problem while cannot swipe next / previous image while using HammerJS.\r\n swipe(action = this.SWIPE_ACTION.RIGHT) {\r\n if (action === this.SWIPE_ACTION.RIGHT) {\r\n this.previousSlide();\r\n }\r\n\r\n if (action === this.SWIPE_ACTION.LEFT) {\r\n this.nextSlide();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Rolling to next slide\r\n * @param force: {boolean} if true - will ignore noWrap flag\r\n */\r\n public nextSlide(force: boolean = false) {\r\n if (this.animation === 'slide') {\r\n this.pause();\r\n const direction = Direction.NEXT;\r\n this.slideAnimation(this.findNextSlideIndex(direction, force), direction);\r\n } else if (this.animation === 'fade') {\r\n this.pause();\r\n this.fadeAnimation(this.findNextSlideIndex(Direction.NEXT, force));\r\n } else {\r\n this.activeSlide = this.findNextSlideIndex(Direction.NEXT, force);\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Rolling to previous slide\r\n * @param force: {boolean} if true - will ignore noWrap flag\r\n */\r\n public previousSlide(force: boolean = false): void {\r\n if (this.animation === 'slide') {\r\n this.pause();\r\n const direction = Direction.PREV;\r\n this.slideAnimation(this.findNextSlideIndex(direction, force), direction);\r\n } else if (this.animation === 'fade') {\r\n this.pause();\r\n this.fadeAnimation(this.findNextSlideIndex(Direction.PREV, force));\r\n } else {\r\n this.activeSlide = this.findNextSlideIndex(Direction.PREV, force);\r\n }\r\n }\r\n\r\n protected fadeAnimation(goToIndex: number) {\r\n //const currentSlide = this._slides.get(this._currentActiveSlide);\r\n const goToSlide = this._slides.get(goToIndex);\r\n\r\n if (this.animationEnd) {\r\n this.animationEnd = false;\r\n\r\n goToSlide.directionNext = true;\r\n\r\n setTimeout(() => {\r\n goToSlide.directionNext = false;\r\n this.animationEnd = true;\r\n\r\n this.activeSlide = goToIndex;\r\n\r\n this.play();\r\n }, 100);\r\n }\r\n }\r\n\r\n protected slideAnimation(goToIndex: number, direction: any) {\r\n\r\n const currentSlide = this._slides.get(this._currentActiveSlide);\r\n const goToSlide = this._slides.get(goToIndex);\r\n\r\n if (this.animationEnd) {\r\n if (direction === Direction.NEXT) {\r\n this.animationEnd = false;\r\n goToSlide.directionNext = true;\r\n setTimeout(() => {\r\n goToSlide.directionLeft = true;\r\n currentSlide.directionLeft = true;\r\n }, 100);\r\n }\r\n\r\n if (direction === Direction.PREV) {\r\n this.animationEnd = false;\r\n\r\n goToSlide.directionPrev = true;\r\n setTimeout(() => {\r\n goToSlide.directionRight = true;\r\n currentSlide.directionRight = true;\r\n }, 100);\r\n }\r\n\r\n setTimeout(() => {\r\n goToSlide.directionLeft = false;\r\n goToSlide.directionNext = false;\r\n currentSlide.directionLeft = false;\r\n currentSlide.directionNext = false;\r\n goToSlide.directionRight = false;\r\n goToSlide.directionPrev = false;\r\n currentSlide.directionRight = false;\r\n currentSlide.directionPrev = false;\r\n\r\n this.animationEnd = true;\r\n\r\n this.activeSlide = goToIndex;\r\n\r\n let directionName;\r\n if (direction === Direction.NEXT) {\r\n directionName = 'Next';\r\n } else if (direction === Direction.PREV) {\r\n directionName = 'Prev';\r\n }\r\n\r\n this.activeSlideChange.emit({'direction': directionName, 'relatedTarget': this.activeSlide});\r\n this.play();\r\n }, 700);\r\n }\r\n }\r\n\r\n\r\n\r\n /**\r\n * Rolling to specified slide\r\n * @param index: {number} index of slide, which must be shown\r\n */\r\n public selectSlide(index: number): void {\r\n this.pause();\r\n if (this.animation === 'slide') {\r\n\r\n if (this.activeSlide < index) {\r\n this.slideAnimation(index, Direction.NEXT);\r\n } else if (this.activeSlide > index) {\r\n this.slideAnimation(index, Direction.PREV);\r\n }\r\n } else if (this.animation === 'fade') {\r\n if (index !== this.activeSlide) {\r\n this.fadeAnimation(index);\r\n }\r\n }\r\n this.play();\r\n }\r\n\r\n /**\r\n * Starts a auto changing of slides\r\n */\r\n @HostListener('mouseleave') play() {\r\n if (!this.isPlaying) {\r\n this.isPlaying = true;\r\n this.restartTimer();\r\n }\r\n }\r\n\r\n /**\r\n * Stops a auto changing of slides\r\n */\r\n @HostListener('mouseenter') pause() {\r\n if (!this.noPause) {\r\n this.isPlaying = false;\r\n this.resetTimer();\r\n }\r\n }\r\n\r\n /**\r\n * Finds and returns index of currently displayed slide\r\n * @returns {number}\r\n */\r\n public getCurrentSlideIndex(): number {\r\n return this._slides.findIndex((slide: SlideComponent) => slide.active);\r\n }\r\n\r\n /**\r\n * Defines, whether the specified index is last in collection\r\n * @param index\r\n * @returns {boolean}\r\n */\r\n public isLast(index: number): boolean {\r\n return index + 1 >= this._slides.length;\r\n }\r\n\r\n /**\r\n * Defines next slide index, depending of direction\r\n * @param direction: Direction(UNKNOWN|PREV|NEXT)\r\n * @param force: {boolean} if TRUE - will ignore noWrap flag, else will return undefined if next slide require wrapping\r\n * @returns {any}\r\n */\r\n private findNextSlideIndex(direction: Direction, force: boolean): any {\r\n let nextSlideIndex = 0;\r\n\r\n if (!force && (this.isLast(this.activeSlide) && direction !== Direction.PREV && this.noWrap)) {\r\n return void 0;\r\n }\r\n\r\n switch (direction) {\r\n case Direction.NEXT:\r\n // if this is last slide, not force, looping is disabled and need to going forward - select current slide, as a next\r\n nextSlideIndex = (!this.isLast(this._currentActiveSlide)) ? this._currentActiveSlide + 1 :\r\n (!force && this.noWrap ) ? this._currentActiveSlide : 0;\r\n break;\r\n case Direction.PREV:\r\n // if this is first slide, not force, looping is disabled and need to going backward - select current slide, as a next\r\n nextSlideIndex = (this._currentActiveSlide > 0) ? this._currentActiveSlide - 1 :\r\n (!force && this.noWrap ) ? this._currentActiveSlide : this._slides.length - 1;\r\n break;\r\n default:\r\n throw new Error('Unknown direction');\r\n }\r\n return nextSlideIndex;\r\n }\r\n\r\n /**\r\n * Sets a slide, which specified through index, as active\r\n * @param index\r\n * @private\r\n */\r\n private _select(index: number): void {\r\n if (isNaN(index)) {\r\n this.pause();\r\n return;\r\n }\r\n const currentSlide = this._slides.get(this._currentActiveSlide);\r\n if (currentSlide) {\r\n currentSlide.active = false;\r\n }\r\n const nextSlide = this._slides.get(index);\r\n if (nextSlide) {\r\n this._currentActiveSlide = index;\r\n nextSlide.active = true;\r\n this.activeSlide = index;\r\n // this.activeSlideChange.emit(index);\r\n }\r\n }\r\n\r\n /**\r\n * Starts loop of auto changing of slides\r\n */\r\n private restartTimer(): any {\r\n this.resetTimer();\r\n const interval = +this.interval;\r\n if (!isNaN(interval) && interval > 0) {\r\n this.currentInterval = setInterval(\r\n () => {\r\n const nInterval = +this.interval;\r\n if (this.isPlaying && !isNaN(this.interval) && nInterval > 0 && this.slides.length) {\r\n this.nextSlide();\r\n } else {\r\n this.pause();\r\n }\r\n },\r\n interval);\r\n }\r\n }\r\n\r\n /**\r\n * Stops loop of auto changing of slides\r\n */\r\n private resetTimer(): void {\r\n if (this.currentInterval) {\r\n clearInterval(this.currentInterval);\r\n this.currentInterval = void 0;\r\n }\r\n }\r\n\r\n protected hasClass(el: any, className: any) {\r\n if (el.classList) {\r\n return el.classList.contains(className);\r\n } else {\r\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'));\r\n }\r\n }\r\n\r\n protected classAdd(el: any, className: any) {\r\n if (el.classList) {\r\n el.classList.add(className);\r\n } else if (!this.hasClass(el, className)) {\r\n el.className += ' ' + className;\r\n }\r\n }\r\n\r\n protected removeClass(el: any, className: any) {\r\n if (el.classList) {\r\n el.classList.remove(className);\r\n } else if (this.hasClass(el, className)) {\r\n const reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n el.className = el.className.replace(reg, ' ');\r\n }\r\n }\r\n\r\n @HostListener('keyup', ['$event']) keyboardControl(event: KeyboardEvent) {\r\n if (this.keyboard) {\r\n if (event.keyCode === 39) {\r\n this.nextSlide();\r\n }\r\n\r\n if (event.keyCode === 37) {\r\n this.previousSlide();\r\n }\r\n }\r\n\r\n }\r\n @HostListener('click', ['$event']) focus() {\r\n this.el.nativeElement.focus();\r\n }\r\n\r\n }\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CarouselConfig {\r\n /** Default interval of auto changing of slides */\r\n public interval = 5000;\r\n\r\n /** Is loop of auto changing of slides can be paused */\r\n public noPause = false;\r\n\r\n /** Is slides can wrap from the last to the first slide */\r\n public noWrap = false;\r\n\r\n public keyboard = false;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { CarouselComponent } from './carousel.component';\r\nimport { SlideComponent } from './slide.component';\r\nimport { CarouselConfig } from './carousel.config';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [SlideComponent, CarouselComponent],\r\n exports: [SlideComponent, CarouselComponent],\r\n providers: [CarouselConfig]\r\n})\r\nexport class CarouselModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: CarouselModule, providers: []};\r\n }\r\n}\r\n","export { CarouselComponent } from './carousel.component';\r\nexport { CarouselModule } from './carousel.module';\r\nexport { SlideComponent } from './slide.component';\r\nexport { CarouselConfig } from './carousel.config';\r\n","import { Component, HostBinding, OnDestroy, Input, OnInit, ElementRef } from '@angular/core';\r\n\r\nimport { CarouselComponent } from './carousel.component';\r\n\r\n@Component({\r\n selector: 'mdb-slide',\r\n template: `\r\n <ng-content></ng-content>\r\n `\r\n})\r\nexport class SlideComponent implements OnInit, OnDestroy {\r\n\r\n /** Is current slide active */\r\n @HostBinding('class.active')\r\n @Input() public active: boolean;\r\n @HostBinding('class.animated') animated = false;\r\n @HostBinding('class.carousel-item-next') directionNext = false;\r\n @HostBinding('class.carousel-item-left') directionLeft = false;\r\n @HostBinding('class.carousel-item-prev') directionPrev = false;\r\n @HostBinding('class.carousel-item-right') directionRight = false;\r\n /** Wraps element by appropriate CSS classes */\r\n @HostBinding('class.carousel-item')\r\n\r\n\r\n /** Link to Parent(container-collection) component */\r\n protected carousel: CarouselComponent;\r\n // public el: ElementRef = null;\r\n public el: ElementRef | any = null;\r\n\r\n public constructor(carousel: CarouselComponent, el: ElementRef) {\r\n this.carousel = carousel;\r\n this.el = el;\r\n }\r\n\r\n /** Fires changes in container collection after adding a new slide instance */\r\n public ngOnInit(): void {\r\n this.carousel.addSlide(this);\r\n }\r\n\r\n /** Fires changes in container collection after removing of this slide instance */\r\n public ngOnDestroy(): void {\r\n this.carousel.removeSlide(this);\r\n }\r\n}\r\n","import {\r\n OnDestroy,\r\n OnInit,\r\n OnChanges,\r\n EventEmitter,\r\n ElementRef,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n Directive\r\n} from '@angular/core';\r\n\r\nimport { Color } from './color.service';\r\nimport { Colors } from './colors.service';\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { PLATFORM_ID, Inject } from '@angular/core';\r\ndeclare var Chart: any;\r\n\r\n@Directive({ selector: 'canvas[mdbChart]', exportAs: 'mdb-base-chart' })\r\nexport class BaseChartDirective implements OnDestroy, OnChanges, OnInit, Colors {\r\n public static defaultColors: Array<number[]> = [\r\n [255, 99, 132],\r\n [54, 162, 235],\r\n [255, 206, 86],\r\n [231, 233, 237],\r\n [75, 192, 192],\r\n [151, 187, 205],\r\n [220, 220, 220],\r\n [247, 70, 74],\r\n [70, 191, 189],\r\n [253, 180, 92],\r\n [148, 159, 177],\r\n [77, 83, 96]\r\n ];\r\n\r\n @Input() public data: number[] | any[];\r\n @Input() public datasets: any[];\r\n @Input() public labels: Array<any> = [];\r\n @Input() public options: any = {\r\n legend: { display: false }\r\n };\r\n @Input() public chartType: string;\r\n @Input() public colors: Array<any>;\r\n @Input() public legend = false;\r\n\r\n @Output() public chartClick: EventEmitter<any> = new EventEmitter();\r\n @Output() public chartHover: EventEmitter<any> = new EventEmitter();\r\n\r\n public ctx: any;\r\n public chart: any;\r\n cvs: any;\r\n initFlag = false;\r\n\r\n element: ElementRef;\r\n isBrowser: any = false;\r\n public constructor(element: ElementRef, @Inject(PLATFORM_ID) platformId: string) {\r\n this.element = element;\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n\r\n public ngOnInit(): any {\r\n if (this.isBrowser) {\r\n this.ctx = this.element.nativeElement.getContext('2d');\r\n this.cvs = this.element.nativeElement;\r\n this.initFlag = true;\r\n if (this.data || this.datasets) {\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (this.initFlag) {\r\n // Check if the changes are in the data or datasets\r\n if (changes.hasOwnProperty('data') || changes.hasOwnProperty('datasets')) {\r\n if (changes['data']) {\r\n this.updateChartData(changes['data'].currentValue);\r\n } else {\r\n this.updateChartData(changes['datasets'].currentValue);\r\n }\r\n\r\n this.chart.update();\r\n } else {\r\n // otherwise rebuild the chart\r\n this.refresh();\r\n }\r\n }\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = void 0;\r\n }\r\n }\r\n\r\n public getChartBuilder(ctx: any/*, data:Array<any>, options:any*/): any {\r\n const datasets: any = this.getDatasets();\r\n\r\n const options: any = Object.assign({}, this.options);\r\n if (this.legend === false) {\r\n options.legend = { display: false };\r\n }\r\n // hock for onHover and onClick events\r\n options.hover = options.hover || {};\r\n if (!options.hover.onHover) {\r\n options.hover.onHover = (event: any, active: Array<any>) => {\r\n if (active && active.length) {\r\n this.chartHover.emit({ event, active });\r\n }\r\n };\r\n }\r\n\r\n if (!options.onClick) {\r\n options.onClick = (event: any, active: Array<any>) => {\r\n this.chartClick.emit({ event, active });\r\n };\r\n }\r\n\r\n const opts = {\r\n type: this.chartType,\r\n data: {\r\n labels: this.labels,\r\n datasets: datasets\r\n },\r\n options: options\r\n };\r\n\r\n return new Chart(ctx, opts);\r\n }\r\n\r\n private updateChartData(newDataValues: number[] | any[]): void {\r\n if (Array.isArray(newDataValues[0].data)) {\r\n this.chart.data.datasets.forEach((dataset: any, i: number) => {\r\n dataset.data = newDataValues[i].data;\r\n\r\n if (newDataValues[i].label) {\r\n dataset.label = newDataValues[i].label;\r\n }\r\n });\r\n } else {\r\n this.chart.data.datasets[0].data = newDataValues;\r\n }\r\n }\r\n\r\n private getDatasets(): any {\r\n let datasets: any = void 0;\r\n // in case if datasets is not provided, but data is present\r\n if (!this.datasets || !this.datasets.length && (this.data && this.data.length)) {\r\n if (Array.isArray(this.data[0])) {\r\n datasets = (this.data as Array<number[]>).map((data: number[], index: number) => {\r\n return { data, label: this.labels[index] || `Label ${index}` };\r\n });\r\n } else {\r\n datasets = [{ data: this.data, label: `Label 0` }];\r\n }\r\n }\r\n\r\n if (this.datasets && this.datasets.length ||\r\n (datasets && datasets.length)) {\r\n datasets = (this.datasets || datasets)\r\n .map((elm: number, index: number) => {\r\n const newElm: any = Object.assign({}, elm);\r\n if (this.colors && this.colors.length) {\r\n Object.assign(newElm, this.colors[index]);\r\n } else {\r\n Object.assign(newElm, getColors(this.chartType, index, newElm.data.length));\r\n }\r\n return newElm;\r\n });\r\n }\r\n\r\n if (!datasets) {\r\n throw new Error(`ng-charts configuration error,\r\n data or datasets field are required to render char ${this.chartType}`);\r\n }\r\n\r\n return datasets;\r\n }\r\n\r\n private refresh(): any {\r\n this.ngOnDestroy();\r\n this.chart = this.getChartBuilder(this.ctx/*, data, this.options*/);\r\n }\r\n}\r\n\r\nfunction rgba(colour: Array<number>, alpha: number): string {\r\n return 'rgba(' + colour.concat(alpha).join(',') + ')';\r\n}\r\n\r\nfunction getRandomInt(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n}\r\n\r\nfunction formatLineColor(colors: Array<number>): Color {\r\n return {\r\n backgroundColor: rgba(colors, 0.4),\r\n borderColor: rgba(colors, 1),\r\n pointBackgroundColor: rgba(colors, 1),\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: rgba(colors, 0.8)\r\n };\r\n}\r\n\r\nfunction formatBarColor(colors: Array<number>): Color {\r\n return {\r\n backgroundColor: rgba(colors, 0.6),\r\n borderColor: rgba(colors, 1),\r\n hoverBackgroundColor: rgba(colors, 0.8),\r\n hoverBorderColor: rgba(colors, 1)\r\n };\r\n}\r\n\r\nfunction formatPieColors(colors: Array<number[]>): any {\r\n return {\r\n backgroundColor: colors.map((color: number[]) => rgba(color, 0.6)),\r\n borderColor: colors.map(() => '#fff'),\r\n pointBackgroundColor: colors.map((color: number[]) => rgba(color, 1)),\r\n pointBorderColor: colors.map(() => '#fff'),\r\n pointHoverBackgroundColor: colors.map((color: number[]) => rgba(color, 1)),\r\n pointHoverBorderColor: colors.map((color: number[]) => rgba(color, 1))\r\n };\r\n}\r\n\r\nfunction formatPolarAreaColors(colors: Array<number[]>): Color {\r\n return {\r\n backgroundColor: colors.map((color: number[]) => rgba(color, 0.6)),\r\n borderColor: colors.map((color: number[]) => rgba(color, 1)),\r\n hoverBackgroundColor: colors.map((color: number[]) => rgba(color, 0.8)),\r\n hoverBorderColor: colors.map((color: number[]) => rgba(color, 1))\r\n };\r\n}\r\n\r\nfunction getRandomColor(): number[] {\r\n return [getRandomInt(0, 255), getRandomInt(0, 255), getRandomInt(0, 255)];\r\n}\r\n\r\n/**\r\n * Generate colors for line|bar charts\r\n * @param index\r\n * @returns {number[]|Color}\r\n */\r\nfunction generateColor(index: number): number[] {\r\n return BaseChartDirective.defaultColors[index] || getRandomColor();\r\n}\r\n\r\n/**\r\n * Generate colors for pie|doughnut charts\r\n * @param count\r\n * @returns {Colors}\r\n */\r\nfunction generateColors(count: number): Array<number[]> {\r\n const colorsArr: Array<number[]> = new Array(count);\r\n for (let i = 0; i < count; i++) {\r\n colorsArr[i] = BaseChartDirective.defaultColors[i] || getRandomColor();\r\n }\r\n return colorsArr;\r\n}\r\n\r\n/**\r\n * Generate colors by chart type\r\n * @param chartType\r\n * @param index\r\n * @param count\r\n * @returns {Color}\r\n */\r\nfunction getColors(chartType: string, index: number, count: number): any {\r\n if (chartType === 'pie' || chartType === 'doughnut') {\r\n return formatPieColors(generateColors(count));\r\n }\r\n\r\n if (chartType === 'polarArea') {\r\n return formatPolarAreaColors(generateColors(count));\r\n }\r\n\r\n if (chartType === 'line' || chartType === 'radar') {\r\n return formatLineColor(generateColor(index));\r\n }\r\n\r\n if (chartType === 'bar' || chartType === 'horizontalBar') {\r\n return formatBarColor(generateColor(index));\r\n }\r\n return generateColor(index);\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { BaseChartDirective } from './chart.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n BaseChartDirective\r\n ],\r\n exports: [\r\n BaseChartDirective\r\n ],\r\n imports: []\r\n})\r\nexport class MDBChartsModule {\r\n}\r\n","export * from './chart.directive';\r\nexport * from './color.service';\r\nexport * from './colors.service';\r\nexport * from './chart.module';\r\n","// todo: add animations when https://github.com/angular/angular/issues/9947 solved\r\nimport {\r\n Directive, ElementRef, EventEmitter, Input, OnInit, Output,\r\n Renderer, AfterViewInit\r\n} from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mdbCollapse]',\r\n exportAs: 'bs-collapse',\r\n /* tslint:disable-next-line */\r\n})\r\nexport class CollapseDirective implements OnInit, AfterViewInit {\r\n\r\n @Output('showBsCollapse') public showBsCollapse: EventEmitter<any> = new EventEmitter();\r\n @Output('shownBsCollapse') public shownBsCollapse: EventEmitter<any> = new EventEmitter();\r\n @Output('hideBsCollapse') public hideBsCollapse: EventEmitter<any> = new EventEmitter();\r\n @Output('hiddenBsCollapse') public hiddenBsCollapse: EventEmitter<any> = new EventEmitter();\r\n\r\n\r\n /** This event fires as soon as content collapses */\r\n @Output() public collapsed: EventEmitter<any> = new EventEmitter();\r\n /** This event fires as soon as content becomes visible */\r\n @Output() public expanded: EventEmitter<any> = new EventEmitter();\r\n // shown\r\n // @HostBinding('class.in')\r\n // @HostBinding('class.show')\r\n // @HostBinding('attr.aria-expanded')\r\n public isExpanded = true;\r\n // hidden\r\n // @HostBinding('attr.aria-hidden')\r\n public isCollapsed = false;\r\n // stale state\r\n // @HostBinding('class.collapse')\r\n public isCollapse = true;\r\n // animation state\r\n // @HostBinding('class.collapsing')\r\n public isCollapsing = false;\r\n public collapsing = false;\r\n\r\n\r\n @Input() public collapse: boolean;\r\n @Input() public animationTime = 500;\r\n\r\n public maxHeight: number;\r\n\r\n\r\n protected _el: ElementRef;\r\n protected _renderer: Renderer;\r\n\r\n public constructor(_el: ElementRef, _renderer: Renderer) {\r\n this._el = _el;\r\n this._renderer = _renderer;\r\n }\r\n ngOnInit() {\r\n\r\n this._el.nativeElement.classList.add('show');\r\n\r\n this._el.nativeElement.style.transition = this.animationTime + 'ms ease';\r\n\r\n if (!this.collapse) {\r\n this._el.nativeElement.classList.remove('show');\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n\r\n this.isExpanded = this.collapse;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.maxHeight = this._el.nativeElement.scrollHeight;\r\n }\r\n\r\n public resize(): void {\r\n const container = this._el.nativeElement;\r\n this.maxHeight = this._el.nativeElement.scrollHeight;\r\n this._renderer.setElementStyle(container, 'height', this.maxHeight + 'px');\r\n }\r\n\r\n /** allows to manually toggle content visibility */\r\n public toggle(event?: any): void {\r\n\r\n if (!this.collapsing) {\r\n if (this.isExpanded) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n this.maxHeight = event.target.parentElement.nextElementSibling.scrollHeight;\r\n }\r\n\r\n /** allows to manually hide content */\r\n public hide(): void {\r\n this.collapsing = true;\r\n this.hideBsCollapse.emit();\r\n this.isCollapse = false;\r\n this.isCollapsing = true;\r\n\r\n this.isExpanded = false;\r\n this.isCollapsed = true;\r\n\r\n const container = this._el.nativeElement;\r\n\r\n container.classList.remove('collapse');\r\n container.classList.remove('show');\r\n container.classList.add('collapsing');\r\n\r\n this._renderer.setElementStyle(container, 'height', '0px');\r\n\r\n setTimeout(() => {\r\n container.classList.remove('collapsing');\r\n container.classList.add('collapse');\r\n this.hiddenBsCollapse.emit();\r\n this.collapsing = false;\r\n }, this.animationTime);\r\n this.collapsed.emit(this);\r\n }\r\n\r\n /** allows to manually show collapsed content */\r\n public show(): void {\r\n if (!this.isExpanded) {\r\n this.collapsing = true;\r\n this.showBsCollapse.emit();\r\n this.isCollapse = false;\r\n this.isCollapsing = true;\r\n\r\n this.isExpanded = true;\r\n this.isCollapsed = false;\r\n\r\n const container = this._el.nativeElement;\r\n\r\n container.classList.remove('collapse');\r\n container.classList.add('collapsing');\r\n\r\n setTimeout(() => {\r\n this._renderer.setElementStyle(container, 'height', this.maxHeight + 'px');\r\n }, 10);\r\n\r\n setTimeout(() => {\r\n container.classList.remove('collapsing');\r\n container.classList.add('collapse');\r\n container.classList.add('show');\r\n this.shownBsCollapse.emit();\r\n this.collapsing = false;\r\n }, this.animationTime - (this.animationTime * 0.5));\r\n this.expanded.emit(this);\r\n }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CollapseDirective } from './collapse.directive';\r\n\r\n@NgModule({\r\n declarations: [CollapseDirective],\r\n exports: [CollapseDirective]\r\n})\r\nexport class CollapseModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: CollapseModule, providers: []};\r\n }\r\n}\r\n","export { CollapseDirective } from './collapse.directive';\r\nexport { CollapseModule } from './collapse.module';\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, HostBinding } from '@angular/core';\r\nimport { BsDropdownState } from './dropdown.state';\r\n\r\n@Component({\r\n selector: 'mdb-dropdown-container',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n <div [class.dropup]=\"direction === 'up'\"\r\n [class.dropdown]=\"direction === 'down'\"\r\n [class.show]=\"isOpen\"\r\n [class.open]=\"isOpen\">\r\n <ng-content></ng-content>\r\n </div>\r\n `\r\n})\r\nexport class BsDropdownContainerComponent implements OnDestroy {\r\n isOpen = false;\r\n\r\n @HostBinding('style.display') display = 'block';\r\n @HostBinding('style.position') position = 'absolute';\r\n\r\n get direction(): 'down' | 'up' {\r\n return this._state.direction;\r\n }\r\n\r\n private _subscription: any;\r\n\r\n constructor(private _state: BsDropdownState) {\r\n this._subscription = _state.isOpenChange.subscribe((value: boolean) => {\r\n this.isOpen = value;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._subscription.unsubscribe();\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { BsDropdownState } from './dropdown.state';\r\n\r\n@Directive({\r\n selector: '[mdbDropdownMenu],[dropdownMenu]',\r\n exportAs: 'bs-dropdown-menu'\r\n})\r\nexport class BsDropdownMenuDirective {\r\n constructor(_state: BsDropdownState,\r\n _viewContainer: ViewContainerRef,\r\n _templateRef: TemplateRef<any>) {\r\n _state.resolveDropdownMenu({\r\n templateRef: _templateRef,\r\n viewContainer: _viewContainer\r\n });\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { BsDropdownState } from './dropdown.state';\r\n\r\n@Directive({\r\n selector: '[mdbDropdownToggle],[dropdownToggle]',\r\n exportAs: 'bs-dropdown-toggle'\r\n})\r\nexport class BsDropdownToggleDirective implements OnDestroy {\r\n private _subscriptions: Subscription[] = [];\r\n\r\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n // @HostBinding('attr.disabled') isDisabled: boolean = null;\r\n @HostBinding('attr.disabled') isDisabled: boolean | any = null;\r\n\r\n // @HostBinding('class.active')\r\n @HostBinding('attr.aria-expanded') isOpen: boolean;\r\n\r\n @HostListener('click')\r\n onClick(): void {\r\n if (this.isDisabled) {\r\n return;\r\n }\r\n this._state.toggleClick.emit();\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: any): void {\r\n if (this._state.autoClose && event.button !== 2 &&\r\n !this._element.nativeElement.contains(event.target)) {\r\n this._state.toggleClick.emit(false);\r\n }\r\n}\r\n\r\n@HostListener('keyup.esc')\r\nonEsc(): void {\r\n if (this._state.autoClose) {\r\n this._state.toggleClick.emit(false);\r\n }\r\n}\r\n\r\nconstructor(private _state: BsDropdownState,\r\n private _element: ElementRef) {\r\n // sync is open value with state\r\n this._subscriptions.push(this._state\r\n .isOpenChange.subscribe((value: boolean) => this.isOpen = value));\r\n // populate disabled state\r\n this._subscriptions.push(this._state\r\n .isDisabledChange\r\n // .subscribe((value: boolean) => this.isDisabled = value || null));\r\n .subscribe((value: boolean | any) => this.isDisabled = value || null));\r\n}\r\n\r\nngOnDestroy(): void {\r\n for (const sub of this._subscriptions) {\r\n sub.unsubscribe();\r\n }\r\n}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n/** Default dropdown configuration */\r\n@Injectable()\r\nexport class BsDropdownConfig {\r\n /** default dropdown auto closing behavior */\r\n autoClose = true;\r\n}\r\n","import { Directive, ElementRef, EmbeddedViewRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, Renderer,\r\n ViewContainerRef } from '@angular/core';\r\n import { Subscription } from 'rxjs/Subscription';\r\n import 'rxjs/add/operator/filter';\r\n import { ComponentLoader, ComponentLoaderFactory } from '../utils/component-loader/index';\r\n\r\n import { BsDropdownConfig } from './dropdown.config';\r\n import { BsDropdownContainerComponent } from './dropdown-container.component';\r\n import { BsDropdownState } from './dropdown.state';\r\n import { BsComponentRef } from '../utils/component-loader/bs-component-ref.class';\r\n import { BsDropdownMenuDirective } from './';\r\n import { isBs3 } from '../utils/ng2-bootstrap-config';\r\n\r\n @Directive({\r\n selector: '[mdbDropdown],[dropdown]',\r\n exportAs: 'bs-dropdown',\r\n providers: [BsDropdownState]\r\n })\r\n export class BsDropdownDirective implements OnInit, OnDestroy {\r\n\r\n /**\r\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\r\n */\r\n @Input() placement: string;\r\n /**\r\n * Specifies events that should trigger. Supports a space separated list of\r\n * event names.\r\n */\r\n @Input() triggers: string;\r\n /**\r\n * A selector specifying the element the popover should be appended to.\r\n * Currently only supports \"body\".\r\n */\r\n @Input() container: string;\r\n\r\n /**\r\n * This attribute indicates that the dropdown should be opened upwards\r\n */\r\n @HostBinding('class.dropup')\r\n @Input() dropup: boolean;\r\n\r\n /**\r\n * Indicates that dropdown will be closed on item or document click,\r\n * and after pressing ESC\r\n */\r\n @Input() set autoClose(value: boolean) {\r\n if (typeof value === 'boolean') {\r\n this._state.autoClose = value;\r\n }\r\n };\r\n\r\n get autoClose(): boolean {\r\n return this._state.autoClose;\r\n }\r\n\r\n /**\r\n * Disables dropdown toggle and hides dropdown menu if opened\r\n */\r\n @Input() set isDisabled(value: boolean) {\r\n this._isDisabled = value;\r\n this._state.isDisabledChange.emit(value);\r\n if (value) {\r\n this.hide();\r\n }\r\n }\r\n\r\n get isDisabled(): boolean { return this._isDisabled; }\r\n\r\n /**\r\n * Returns whether or not the popover is currently being shown\r\n */\r\n @HostBinding('class.open')\r\n @HostBinding('class.show')\r\n @Input() get isOpen(): boolean {\r\n if (this._showInline) {\r\n return this._isInlineOpen;\r\n }\r\n return this._dropdown.isShown;\r\n }\r\n\r\n set isOpen(value: boolean) {\r\n if (value) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n }\r\n\r\n /**\r\n * Emits an event when isOpen change\r\n */\r\n @Output() isOpenChange: EventEmitter<any>;\r\n\r\n /**\r\n * Emits an event when the popover is shown\r\n */\r\n @Output() onShown: EventEmitter<any>;\r\n\r\n /**\r\n * Emits an event when the popover is hidden\r\n */\r\n @Output() onHidden: EventEmitter<any>;\r\n\r\n get isBs4(): boolean {\r\n return !isBs3();\r\n }\r\n // todo: move to component loader\r\n _isInlineOpen = false;\r\n _showInline: boolean;\r\n _inlinedMenu: EmbeddedViewRef<BsDropdownMenuDirective>;\r\n\r\n _isDisabled: boolean;\r\n _dropdown: ComponentLoader<BsDropdownContainerComponent>;\r\n _subscriptions: Subscription[] = [];\r\n _isInited = false;\r\n\r\n constructor(private _elementRef: ElementRef,\r\n private _renderer: Renderer,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _cis: ComponentLoaderFactory,\r\n private _config: BsDropdownConfig,\r\n private _state: BsDropdownState) {\r\n // create dropdown component loader\r\n this._dropdown = this._cis\r\n .createLoader<BsDropdownContainerComponent>(this._elementRef, this._viewContainerRef, this._renderer)\r\n .provide({ provide: BsDropdownState, useValue: this._state });\r\n\r\n this.onShown = this._dropdown.onShown;\r\n this.onHidden = this._dropdown.onHidden;\r\n this.isOpenChange = this._state.isOpenChange;\r\n\r\n // set initial dropdown state from config\r\n this._state.autoClose = this._config.autoClose;\r\n }\r\n\r\n ngOnInit(): void {\r\n // fix: seems there are an issue with `routerLinkActive`\r\n // which result in duplicated call ngOnInit without call to ngOnDestroy\r\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\r\n if (this._isInited) { return; }\r\n this._isInited = true;\r\n\r\n this._showInline = !this.container;\r\n\r\n // attach DOM listeners\r\n this._dropdown.listen({\r\n triggers: this.triggers,\r\n show: () => this.show()\r\n });\r\n\r\n // toggle visibility on toggle element click\r\n this._subscriptions.push(this._state\r\n .toggleClick.subscribe((value: boolean) => this.toggle(value)));\r\n\r\n // hide dropdown if set disabled while opened\r\n this._subscriptions.push(this._state\r\n .isDisabledChange\r\n .filter((value: boolean) => value === true)\r\n .subscribe(() => this.hide()));\r\n\r\n // attach dropdown menu inside of dropdown\r\n if (this._showInline) {\r\n this._state.dropdownMenu\r\n .then((dropdownMenu: BsComponentRef<BsDropdownMenuDirective>) => {\r\n this._inlinedMenu = dropdownMenu.viewContainer.createEmbeddedView(dropdownMenu.templateRef);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Opens an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n show(): void {\r\n if (this.isOpen || this.isDisabled) {\r\n return;\r\n }\r\n\r\n // material and dropup dropdown animation\r\n //const parent = this._elementRef.nativeElement.classList;\r\n const container = this._elementRef.nativeElement.lastElementChild;\r\n\r\n setTimeout( () => { container.classList.add('fadeInDropdown'); } , 200 );\r\n\r\n if (this._showInline) {\r\n this._isInlineOpen = true;\r\n this.onShown.emit(true);\r\n this._state.isOpenChange.emit(true);\r\n return;\r\n }\r\n this._state.dropdownMenu\r\n .then((dropdownMenu) => {\r\n // check direction in which dropdown should be opened\r\n const _dropup = this.dropup === true ||\r\n (typeof this.dropup !== 'undefined' && this.dropup !== false);\r\n this._state.direction = _dropup ? 'up' : 'down';\r\n const _placement = this.placement ||\r\n (_dropup ? 'top left' : 'bottom left');\r\n\r\n // show dropdown\r\n this._dropdown\r\n .attach(BsDropdownContainerComponent)\r\n .to(this.container)\r\n .position({ attachment: _placement })\r\n .show({\r\n content: dropdownMenu.templateRef,\r\n placement: _placement\r\n });\r\n\r\n this._state.isOpenChange.emit(true);\r\n\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Closes an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n hide(): void {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n const parent = this._elementRef.nativeElement.classList;\r\n const container = this._elementRef.nativeElement.lastElementChild;\r\n\r\n\r\n if ( (parent.value === 'dropdown open show') || (parent.value === 'btn-group dropup open show') ) {\r\n container.classList.remove('fadeInDropdown');\r\n\r\n setTimeout( () => {\r\n\r\n if (this._showInline) {\r\n this._isInlineOpen = false;\r\n this.onHidden.emit(true);\r\n } else {\r\n this._dropdown.hide();\r\n }\r\n\r\n this._state.isOpenChange.emit(false);\r\n\r\n }, 560);\r\n\r\n } else {\r\n\r\n if (this._showInline) {\r\n this._isInlineOpen = false;\r\n this.onHidden.emit(true);\r\n } else {\r\n this._dropdown.hide();\r\n }\r\n\r\n this._state.isOpenChange.emit(false);\r\n\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Toggles an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n toggle(value?: boolean): void {\r\n if (this.isOpen || value === false) {\r\n return this.hide();\r\n }\r\n\r\n return this.show();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n // clean up subscriptions and destroy dropdown\r\n for (const sub of this._subscriptions) {\r\n sub.unsubscribe();\r\n }\r\n this._dropdown.dispose();\r\n }\r\n }\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ComponentLoaderFactory } from '../utils/component-loader/index';\r\n\r\nimport { PositioningService } from '../utils/positioning/index';\r\nimport { BsDropdownContainerComponent } from './dropdown-container.component';\r\nimport { BsDropdownMenuDirective } from './dropdown-menu.directive';\r\nimport { BsDropdownToggleDirective } from './dropdown-toggle.directive';\r\nimport { BsDropdownConfig } from './dropdown.config';\r\n\r\nimport { BsDropdownDirective } from './dropdown.directive';\r\nimport { BsDropdownState } from './dropdown.state';\r\n\r\n@NgModule({\r\n declarations: [\r\n BsDropdownMenuDirective,\r\n BsDropdownToggleDirective,\r\n BsDropdownContainerComponent,\r\n BsDropdownDirective\r\n ],\r\n exports: [\r\n BsDropdownMenuDirective,\r\n BsDropdownToggleDirective,\r\n BsDropdownDirective\r\n ],\r\n entryComponents: [BsDropdownContainerComponent]\r\n})\r\nexport class BsDropdownModule {\r\n public static forRoot(config?: any): ModuleWithProviders {\r\n return {\r\n ngModule: BsDropdownModule, providers: [\r\n ComponentLoaderFactory,\r\n PositioningService,\r\n BsDropdownState,\r\n {provide: BsDropdownConfig, useValue: config ? config : {autoClose: true}}\r\n ]\r\n };\r\n };\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\nimport { BsComponentRef } from '../utils/component-loader/bs-component-ref.class';\r\n\r\n@Injectable()\r\nexport class BsDropdownState {\r\n direction: 'down' | 'up' = 'down';\r\n autoClose: boolean;\r\n isOpenChange = new EventEmitter<boolean>();\r\n isDisabledChange = new EventEmitter<boolean>();\r\n toggleClick = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Content to be displayed as popover.\r\n */\r\n dropdownMenu: Promise<BsComponentRef<any>>;\r\n resolveDropdownMenu: (componentRef: BsComponentRef<any>) => void;\r\n\r\n constructor() {\r\n this.dropdownMenu = new Promise((resolve) => {\r\n this.resolveDropdownMenu = resolve;\r\n });\r\n }\r\n }\r\n","export { BsDropdownDirective } from './dropdown.directive';\r\nexport { BsDropdownMenuDirective } from './dropdown-menu.directive';\r\nexport { BsDropdownToggleDirective } from './dropdown-toggle.directive';\r\nexport { BsDropdownContainerComponent } from './dropdown-container.component';\r\nexport { BsDropdownState } from './dropdown.state';\r\nexport { BsDropdownConfig } from './dropdown.config';\r\nexport { BsDropdownModule } from './dropdown.module';\r\n","\r\n\r\n// free\r\nimport { ModuleWithProviders, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { DeepModule } from './inputs/';\r\nimport { ButtonsModule } from './buttons';\r\nimport { RippleModule } from './ripple';\r\nimport { ActiveModule, InputsModule } from './inputs';\r\nimport { NavbarModule } from './navbars';\r\nimport { BsDropdownModule } from './dropdown';\r\nimport { CarouselModule } from './carousel/';\r\nimport { MDBChartsModule } from './charts/';\r\nimport { CollapseModule } from './collapse';\r\nimport { ModalModule } from './modals';\r\nimport { MDBTooltipModule } from './tooltip';\r\nimport { PopoverModule } from './popover';\r\nimport { WavesModule } from './waves/waves.module';\r\n\r\nexport {\r\n ButtonsModule, ButtonRadioDirective, ButtonCheckboxDirective\r\n} from './buttons/';\r\n\r\nexport {\r\n RippleModule, RippleDirective\r\n} from './ripple/';\r\n\r\nexport {\r\n WavesModule, WavesDirective\r\n} from './waves/';\r\n\r\nexport {\r\n DeepModule, DeepDirective\r\n} from './inputs/';\r\n\r\nexport {\r\n InputsModule, MdbInputDirective\r\n} from './inputs';\r\n\r\nexport {\r\n ActiveModule, ActiveDirective, InputValidateDirective\r\n} from './inputs/';\r\n\r\nexport {\r\n NavbarModule\r\n} from './navbars/';\r\n\r\nexport {\r\n BsDropdownConfig, BsDropdownContainerComponent, BsDropdownDirective, BsDropdownMenuDirective,\r\n BsDropdownModule, BsDropdownState, BsDropdownToggleDirective\r\n} from './dropdown/';\r\n\r\nexport {\r\n CarouselComponent, CarouselConfig, CarouselModule\r\n} from './carousel/';\r\n\r\nexport {\r\n MDBChartsModule, BaseChartDirective\r\n} from './charts/';\r\n\r\nexport {\r\n CollapseDirective, CollapseModule\r\n} from './collapse/';\r\n\r\nexport {\r\n ModalBackdropComponent, ModalBackdropOptions, ModalDirective, ModalModule, ModalOptions, MDBModalService,\r\n ModalContainerComponent, MDBModalRef\r\n} from './modals/';\r\n\r\nexport {\r\n TooltipConfig, TooltipContainerComponent, TooltipDirective, MDBTooltipModule\r\n} from './tooltip/';\r\n\r\nexport {\r\n PopoverConfig, PopoverContainerComponent, PopoverModule, PopoverDirective\r\n} from './popover/';\r\n\r\n\r\n\r\nconst MODULES = [\r\n DeepModule,\r\n ButtonsModule,\r\n RippleModule,\r\n WavesModule,\r\n InputsModule,\r\n ActiveModule,\r\n NavbarModule,\r\n BsDropdownModule,\r\n CarouselModule,\r\n MDBChartsModule,\r\n CollapseModule,\r\n ModalModule,\r\n MDBTooltipModule,\r\n PopoverModule,\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n ButtonsModule,\r\n DeepModule,\r\n RippleModule.forRoot(),\r\n WavesModule.forRoot(),\r\n InputsModule.forRoot(),\r\n ActiveModule.forRoot(),\r\n NavbarModule,\r\n BsDropdownModule.forRoot(),\r\n CarouselModule.forRoot(),\r\n MDBChartsModule,\r\n CollapseModule.forRoot(),\r\n ModalModule.forRoot(),\r\n MDBTooltipModule.forRoot(),\r\n PopoverModule.forRoot(),\r\n ],\r\n exports: MODULES,\r\n schemas: [NO_ERRORS_SCHEMA]\r\n})\r\nexport class MDBRootModule {\r\n}\r\n\r\n@NgModule({ exports: MODULES })\r\nexport class MDBBootstrapModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return { ngModule: MDBRootModule };\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, HostListener, Renderer2, AfterViewInit, AfterViewChecked } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { PLATFORM_ID, Inject } from '@angular/core';\r\n@Directive({\r\n selector: '[mdbActive]'\r\n})\r\n\r\nexport class ActiveDirective implements AfterViewInit, AfterViewChecked {\r\n isBrowser: any = false;\r\n\r\n @Input() public mdbActive: ActiveDirective;\r\n isClicked: boolean = false;\r\n // public el: ElementRef = null;\r\n public el: ElementRef | any = null;\r\n // public elLabel: ElementRef = null;\r\n public elLabel: ElementRef | any = null;\r\n // public elIcon: Element = null;\r\n public elIcon: Element | any = null;\r\n\r\n\r\n constructor(el: ElementRef, public renderer: Renderer2, @Inject(PLATFORM_ID) platformId: string) {\r\n this.el = el;\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n @HostListener('focus', ['$event']) onClick() {\r\n this.initComponent();\r\n this.isClicked = true;\r\n }\r\n\r\n @HostListener('click', ['$event']) Click() {\r\n this.isClicked = true;\r\n }\r\n\r\n @HostListener('blur', ['$event']) onBlur() {\r\n this.checkValue();\r\n this.isClicked = false;\r\n }\r\n\r\n\r\n // ngAfterViewInit with checkValue after setTimeout is needed in situation when we have prefilled\r\n // forms, and label has to be lifted up.\r\n ngAfterViewInit() {\r\n this.initComponent();\r\n setTimeout(() => {\r\n this.checkValue();\r\n }, 0);\r\n }\r\n ngAfterViewChecked() {\r\n this.initComponent();\r\n this.checkValue();\r\n }\r\n\r\n\r\n private initComponent(): void {\r\n let inputId;\r\n let inputP;\r\n if (this.isBrowser) {\r\n try {\r\n inputId = this.el.nativeElement.id;\r\n } catch (err) { }\r\n\r\n try {\r\n inputP = this.el.nativeElement.parentNode;\r\n } catch (err) { }\r\n\r\n this.elLabel = inputP.querySelector('label[for=\"' + inputId + '\"]') || inputP.querySelector('label');\r\n if (this.elLabel != null) {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n }\r\n\r\n this.elIcon = inputP.querySelector('i') || false;\r\n\r\n if (this.elIcon) {\r\n this.renderer.addClass(this.elIcon, 'active');\r\n }\r\n }\r\n }\r\n private checkValue(): void {\r\n let value = '';\r\n if (this.elLabel != null) {\r\n value = this.el.nativeElement.value || '';\r\n if (value === '') {\r\n this.renderer.removeClass(this.elLabel, 'active');\r\n if (this.elIcon) {\r\n this.renderer.removeClass(this.elIcon, 'active');\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n } if (value === '' && this.isClicked || value === '' && this.el.nativeElement.placeholder || value === '' && this.el.nativeElement.attributes.placeholder) {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { ActiveDirective } from './active.class';\r\nimport { InputValidateDirective } from './input-validate.directive';\r\n\r\n@NgModule({\r\n declarations: [ActiveDirective, InputValidateDirective],\r\n exports: [ActiveDirective, InputValidateDirective]\r\n})\r\n\r\nexport class ActiveModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: ActiveModule, providers: []};\r\n }\r\n}\r\n","import { Directive, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';\r\n\r\n\r\n@Directive({\r\n selector: '[mdbDeepDirective]',\r\n})\r\n\r\nexport class DeepDirective implements AfterViewInit {\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit() {\r\n this.renderer.addClass(this.el.nativeElement, 'onFocusSelect');\r\n }\r\n}\r\n","import { DeepDirective } from './deep.directive';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\n@NgModule({\r\n declarations: [DeepDirective],\r\n exports: [DeepDirective]\r\n})\r\n\r\nexport class DeepModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: DeepModule, providers: []};\r\n }\r\n}\r\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[mdb-validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidatorDirective), multi: true }\r\n ]\r\n})\r\n\r\nexport class EqualValidatorDirective implements Validator {\r\n constructor( @Attribute('validateEqual') public validateEqual: string,\r\n @Attribute('reverse') public reverse: string) {\r\n\r\n }\r\n\r\n private get isReverse() {\r\n if (!this.reverse) {\r\n return false;\r\n }\r\n return this.reverse === 'true' ? true : false;\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n const setToNullValue: any = null;\r\n // self value (e.g. retype password)\r\n const v = c.value;\r\n\r\n // control value (e.g. password)\r\n // const e: any = c.root.get(this.validateEqual);\r\n const e: any = c.root.get(this.validateEqual);\r\n\r\n // value not equal\r\n if (e && v !== e.value) {\r\n return { validateEqual: false };\r\n }\r\n\r\n // value equal and reverse\r\n if (e && v === e.value && this.isReverse) {\r\n delete e.errors['validateEqual'];\r\n if (!Object.keys(e.errors).length) {\r\n e.setErrors(null);\r\n }\r\n }\r\n\r\n // value not equal and reverse\r\n if (e && v !== e.value && this.isReverse) {\r\n e.setErrors({\r\n validateEqual: false\r\n });\r\n }\r\n\r\n // return null;\r\n return setToNullValue;\r\n }\r\n}\r\n\r\n","export * from './active.module';\r\nexport * from './active.class';\r\nexport * from './equal-validator.directive';\r\nexport * from './input-validate.directive';\r\nexport * from './mdb-input.directive';\r\nexport * from './deep.module';\r\nexport * from './deep.directive';\r\nexport * from './inputs.module';\r\n","\r\nimport { Directive, Input, ElementRef, Renderer, HostListener, OnInit } from '@angular/core';\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[mdbInputValidate]',\r\n})\r\n\r\nexport class InputValidateDirective implements OnInit {\r\n\r\n @Input() public value = '';\r\n @Input('minLength') public minLength: string = '0';\r\n @Input('maxLength') public maxLength: string = '524288';\r\n @Input('customRegex') customRegex: any;\r\n public wrongTextContainer: any;\r\n public rightTextContainer: any;\r\n\r\n\r\n constructor(private _elRef: ElementRef, private _renderer: Renderer) {\r\n\r\n }\r\n ngOnInit() {\r\n // Inititalise a new <span> wrong/right elements and render it below the host component.\r\n this.wrongTextContainer = this._renderer.createElement(this._elRef.nativeElement.parentElement, 'span');\r\n this._renderer.setElementClass(this.wrongTextContainer, 'inputVal', true);\r\n this._renderer.setElementClass(this.wrongTextContainer, 'text-danger', true);\r\n const textWrong = this._elRef.nativeElement.getAttribute('data-error');\r\n this.wrongTextContainer.innerHTML = (textWrong ? textWrong : 'wrong');\r\n this._renderer.setElementStyle(this.wrongTextContainer, 'visibility', 'hidden');\r\n\r\n this.rightTextContainer = this._renderer.createElement(this._elRef.nativeElement.parentElement, 'span');\r\n this._renderer.setElementClass(this.rightTextContainer, 'inputVal', true);\r\n this._renderer.setElementClass(this.rightTextContainer, 'text-success', true);\r\n const textSuccess = this._elRef.nativeElement.getAttribute('data-success');\r\n this.rightTextContainer.innerHTML = (textSuccess ? textSuccess : 'success');\r\n this._renderer.setElementStyle(this.rightTextContainer, 'visibility', 'hidden');\r\n\r\n }\r\n\r\n\r\n @HostListener('blur', ['$event']) onBlur() {\r\n\r\n\r\n const inputType = this._elRef.nativeElement.type;\r\n\r\n if (inputType === 'email') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this._elRef.nativeElement.getAttribute('customRegex'));\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n /*tslint:disable:max-line-length*/\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n }\r\n\r\n } else if (!this.customRegex) {\r\n /*tslint:disable:max-line-length*/\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n }\r\n }\r\n\r\n\r\n } else if (inputType === 'password') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this._elRef.nativeElement.getAttribute('customRegex'));\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this._elRef.nativeElement.value.match(re) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this._elRef.nativeElement.value.match(re) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n } else if (!this.customRegex) {\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this._elRef.nativeElement.value.match(/^(?=(.*\\d){1})(.*\\S)(?=.*[a-zA-Z\\S])[0-9a-zA-Z\\S]/g) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this._elRef.nativeElement.value.match(/^(?=(.*\\d){1})(.*\\S)(?=.*[a-zA-Z\\S])[0-9a-zA-Z\\S]/g) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n }\r\n\r\n } else if (inputType === 'text') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this._elRef.nativeElement.getAttribute('customRegex'));\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this._elRef.nativeElement.value.match(re) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this._elRef.nativeElement.value.match(re) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n } else if (!this.customRegex) {\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this._elRef.nativeElement.value.match(/^[a-zA-Z0-9]+$/g) && this._elRef.nativeElement.value.length >= this.minLength && this._elRef.nativeElement.value.length <= this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this._elRef.nativeElement.value.match(/^[a-zA-Z0-9]+$/g) || this._elRef.nativeElement.value.length < this.minLength || this._elRef.nativeElement.value.length > this.maxLength) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n }\r\n\r\n } else if (inputType === 'submit') {\r\n for (let i = 0; i < this._elRef.nativeElement.parentElement.length; i++) {\r\n if (this._elRef.nativeElement.parentElement[i].value == null || this._elRef.nativeElement.parentElement[i].value === '') {\r\n this._renderer.setElementClass(this._elRef.nativeElement.parentElement[i], 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement.parentElement[i], 'counter-success', false);\r\n\r\n } else if (!this._elRef.nativeElement.parentElement[i].value == null) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n }\r\n\r\n } else if (inputType === 'tel') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this._elRef.nativeElement.getAttribute('customRegex'));\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length >= 8 && this._elRef.nativeElement.value.length <= 20) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length > 20) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n } else if (!this.customRegex) {\r\n const re = /^(1[ \\-\\+]{0,3}|\\+1[ -\\+]{0,3}|\\+1|\\+)?((\\(\\+?1-[2-9][0-9]{1,2}\\))|(\\(\\+?[2-8][0-9][0-9]\\))|(\\(\\+?[1-9][0-9]\\))|(\\(\\+?[17]\\))|(\\([2-9][2-9]\\))|([ \\-\\.]{0,3}[0-9]{2,4}))?([ \\-\\.][0-9])?([ \\-\\.]{0,3}[0-9]{2,4}){2,3}$/;\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length >= 8 && this._elRef.nativeElement.value.length <= 20) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length > 20) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n }\r\n\r\n\r\n } else if (inputType === 'number') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this._elRef.nativeElement.getAttribute('customRegex'));\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length > 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length < 1) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n } else if (!this.customRegex) {\r\n const re = /^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:(\\.|,)\\d+)?$/;\r\n if (this._elRef.nativeElement.length === 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n } else if (re.test(this._elRef.nativeElement.value) && this._elRef.nativeElement.value.length > 0) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', false);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', true);\r\n } else if (!re.test(this._elRef.nativeElement.value) || this._elRef.nativeElement.value.length < 1) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-danger', true);\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'counter-success', false);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import { MdbInputDirective } from './mdb-input.directive';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { EqualValidatorDirective } from './equal-validator.directive';\r\n\r\n@NgModule({\r\n declarations: [MdbInputDirective, EqualValidatorDirective],\r\n exports: [MdbInputDirective, EqualValidatorDirective]\r\n})\r\n\r\nexport class InputsModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: InputsModule, providers: []};\r\n }\r\n}\r\n","\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n Directive,\r\n ElementRef,\r\n Renderer2,\r\n Input,\r\n AfterViewInit,\r\n HostListener,\r\n PLATFORM_ID,\r\n Inject,\r\n AfterViewChecked,\r\n OnInit\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[mdbInputDirective]'\r\n})\r\nexport class MdbInputDirective implements AfterViewChecked, OnInit, AfterViewInit {\r\n\r\n @Input('mdbInputDirective') mdbInputDirective: MdbInputDirective;\r\n @Input('placeholder') public placeholder: string;\r\n @Input('minLength') public minLength: string = '0';\r\n @Input('maxLength') public maxLength: string = '524288';\r\n @Input('customRegex') customRegex: any;\r\n @Input('mdbValidate') mdbValidate: boolean = true;\r\n @Input('focusCheckbox') focusCheckbox: boolean = true;\r\n @Input('focusRadio') focusRadio: boolean = true;\r\n\r\n isBrowser: any = false;\r\n isClicked: boolean = false;\r\n\r\n public wrongTextContainer: any;\r\n public rightTextContainer: any;\r\n public el: ElementRef | any = null;\r\n public elLabel: ElementRef | any = null;\r\n public elIcon: Element | any = null;\r\n\r\n\r\n @HostListener('click') onclick() {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n this.isClicked = true;\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.el.nativeElement.value === '') {\r\n this.renderer.removeClass(this.elLabel, 'active');\r\n }\r\n this.isClicked = false;\r\n\r\n // Validation:\r\n if (this.mdbValidate) {\r\n const inputType = this.el.nativeElement.type;\r\n\r\n if (inputType === 'email') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this.el.nativeElement.getAttribute('customRegex'));\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n /*tslint:disable:max-line-length*/\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n }\r\n\r\n } else if (!this.customRegex) {\r\n /*tslint:disable:max-line-length*/\r\n const re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n }\r\n }\r\n\r\n\r\n } else if (inputType === 'password') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this.el.nativeElement.getAttribute('customRegex'));\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this.el.nativeElement.value.match(re) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this.el.nativeElement.value.match(re) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n } else if (!this.customRegex) {\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this.el.nativeElement.value.match(/^(?=(.*\\d){1})(.*\\S)(?=.*[a-zA-Z\\S])[0-9a-zA-Z\\S]/g) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this.el.nativeElement.value.match(/^(?=(.*\\d){1})(.*\\S)(?=.*[a-zA-Z\\S])[0-9a-zA-Z\\S]/g) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n }\r\n\r\n } else if (inputType === 'text') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this.el.nativeElement.getAttribute('customRegex'));\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this.el.nativeElement.value.match(re) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this.el.nativeElement.value.match(re) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n } else if (!this.customRegex) {\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (this.el.nativeElement.value.match(/^[a-zA-Z0-9]+$/g) && this.el.nativeElement.value.length >= this.minLength && this.el.nativeElement.value.length <= this.maxLength) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n // tslint:disable-next-line:max-line-length\r\n } else if (!this.el.nativeElement.value.match(/^[a-zA-Z0-9]+$/g) || this.el.nativeElement.value.length < this.minLength || this.el.nativeElement.value.length > this.maxLength) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n }\r\n\r\n } else if (inputType === 'submit') {\r\n for (let i = 0; i < this.el.nativeElement.parentElement.length; i++) {\r\n if (this.el.nativeElement.parentElement[i].value == null || this.el.nativeElement.parentElement[i].value === '') {\r\n this.renderer.addClass(this.el.nativeElement.parentElement[i], 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement.parentElement[i], 'counter-success');\r\n\r\n } else if (!this.el.nativeElement.parentElement[i].value == null) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n }\r\n\r\n } else if (inputType === 'tel') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this.el.nativeElement.getAttribute('customRegex'));\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length >= 8 && this.el.nativeElement.value.length <= 20) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length > 20) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n } else if (!this.customRegex) {\r\n const re = /^(1[ \\-\\+]{0,3}|\\+1[ -\\+]{0,3}|\\+1|\\+)?((\\(\\+?1-[2-9][0-9]{1,2}\\))|(\\(\\+?[2-8][0-9][0-9]\\))|(\\(\\+?[1-9][0-9]\\))|(\\(\\+?[17]\\))|(\\([2-9][2-9]\\))|([ \\-\\.]{0,3}[0-9]{2,4}))?([ \\-\\.][0-9])?([ \\-\\.]{0,3}[0-9]{2,4}){2,3}$/;\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length >= 8 && this.el.nativeElement.value.length <= 20) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length > 20) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n }\r\n\r\n\r\n } else if (inputType === 'number') {\r\n if (this.customRegex) {\r\n const re = new RegExp(this.el.nativeElement.getAttribute('customRegex'));\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length > 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length < 1) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n } else if (!this.customRegex) {\r\n const re = /^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)(?:(\\.|,)\\d+)?$/;\r\n if (this.el.nativeElement.length === 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n } else if (re.test(this.el.nativeElement.value) && this.el.nativeElement.value.length > 0) {\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.addClass(this.el.nativeElement, 'counter-success');\r\n } else if (!re.test(this.el.nativeElement.value) || this.el.nativeElement.value.length < 1) {\r\n this.renderer.addClass(this.el.nativeElement, 'counter-danger');\r\n this.renderer.removeClass(this.el.nativeElement, 'counter-success');\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n @HostListener('change') onchange() {\r\n this.checkValue();\r\n }\r\n\r\n\r\n constructor(el: ElementRef, private renderer: Renderer2, @Inject(PLATFORM_ID) platformId: string) {\r\n this.el = el;\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.mdbValidate) {\r\n // Inititalise a new <span> wrong/right elements and render it below the host component.\r\n // this.wrongTextContainer = this.renderer.createElement(this.el.nativeElement.parentElement, 'span');\r\n this.wrongTextContainer = this.renderer.createElement('span');\r\n this.renderer.addClass(this.wrongTextContainer, 'inputVal');\r\n this.renderer.addClass(this.wrongTextContainer, 'text-danger');\r\n this.renderer.appendChild(this.el.nativeElement.parentElement, this.wrongTextContainer);\r\n const textWrong = this.el.nativeElement.getAttribute('data-error');\r\n this.wrongTextContainer.innerHTML = (textWrong ? textWrong : 'wrong');\r\n this.renderer.setStyle(this.wrongTextContainer, 'visibility', 'hidden');\r\n\r\n // this.rightTextContainer = this.renderer.createElement(this.el.nativeElement.parentElement, 'span');\r\n this.rightTextContainer = this.renderer.createElement('span');\r\n this.renderer.addClass(this.rightTextContainer, 'inputVal');\r\n this.renderer.addClass(this.rightTextContainer, 'text-success');\r\n this.renderer.appendChild(this.el.nativeElement.parentElement, this.rightTextContainer);\r\n const textSuccess = this.el.nativeElement.getAttribute('data-success');\r\n this.rightTextContainer.innerHTML = (textSuccess ? textSuccess : 'success');\r\n this.renderer.setStyle(this.rightTextContainer, 'visibility', 'hidden');\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n const type = this.el.nativeElement.type;\r\n if (this.focusCheckbox && type === 'checkbox') {\r\n this.renderer.addClass(this.el.nativeElement, 'onFocusSelect');\r\n }\r\n\r\n if (this.focusRadio && type === 'radio') {\r\n this.renderer.addClass(this.el.nativeElement, 'onFocusSelect');\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.initComponent();\r\n this.checkValue();\r\n // tslint:disable-next-line:max-line-length\r\n if (this.el.nativeElement.tagName === 'MDB-COMPLETER' && this.el.nativeElement.getAttribute('ng-reflect-model') == null && !this.isClicked) {\r\n this.renderer.removeClass(this.elLabel, 'active');\r\n }\r\n }\r\n\r\n public initComponent(): void {\r\n let inputId;\r\n let inputP;\r\n if (this.isBrowser) {\r\n try {\r\n inputId = this.el.nativeElement.id;\r\n } catch (err) { }\r\n\r\n try {\r\n inputP = this.el.nativeElement.parentNode;\r\n } catch (err) { }\r\n\r\n this.elLabel = inputP.querySelector('label[for=\"' + inputId + '\"]') || inputP.querySelector('label');\r\n if (this.elLabel && this.el.nativeElement.value !== '') {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n }\r\n\r\n this.elIcon = inputP.querySelector('i') || false;\r\n\r\n if (this.elIcon) {\r\n this.renderer.addClass(this.elIcon, 'active');\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n private checkValue(): void {\r\n let value = '';\r\n if (this.elLabel != null) {\r\n value = this.el.nativeElement.value || '';\r\n if (value === '') {\r\n this.renderer.removeClass(this.elLabel, 'active');\r\n if (this.elIcon) {\r\n this.renderer.removeClass(this.elIcon, 'active');\r\n }\r\n // tslint:disable-next-line:max-line-length\r\n } if (value === '' && this.isClicked ||\r\n value === '' && this.el.nativeElement.placeholder ||\r\n value === '' && this.el.nativeElement.attributes.placeholder\r\n ) {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n }\r\n if (this.el.nativeElement.getAttribute('ng-reflect-model') != null) {\r\n if (this.el.nativeElement.tagName === 'MDB-COMPLETER' && this.el.nativeElement.getAttribute('ng-reflect-model').length !== 0) {\r\n this.renderer.addClass(this.elLabel, 'active');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","export { ModalBackdropComponent, ModalBackdropOptions } from './modalBackdrop.component';\r\nexport { ModalOptions, MDBModalRef } from './modal.options';\r\nexport { ModalDirective } from './modal.directive';\r\nexport { ModalModule } from './modal.module';\r\nexport { MDBModalService } from './modal.service';\r\nexport { ModalContainerComponent } from './modalContainer.component';\r\n","import {\r\n AfterViewInit,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n Renderer, ViewContainerRef\r\n} from '@angular/core';\r\n\r\nimport { document } from '../utils/facade/browser';\r\n\r\nimport { isBs3 } from '../utils/ng2-bootstrap-config';\r\nimport { Utils } from '../utils/utils.class';\r\nimport { ModalBackdropComponent } from './modalBackdrop.component';\r\nimport { ClassName, modalConfigDefaults, ModalOptions, DISMISS_REASONS } from './modal.options';\r\n\r\nimport { window } from '../utils/facade/browser';\r\nimport { ComponentLoader } from '../utils/component-loader/component-loader.class';\r\nimport { ComponentLoaderFactory } from '../utils/component-loader/component-loader.factory';\r\n\r\nconst TRANSITION_DURATION = 300;\r\nconst BACKDROP_TRANSITION_DURATION = 150;\r\n\r\n/** Mark any code with directive to show it's content in modal */\r\n@Directive({\r\n selector: '[mdbModal]',\r\n exportAs: 'mdb-modal'\r\n})\r\nexport class ModalDirective implements AfterViewInit, OnDestroy {\r\n /** allows to set modal configuration via element property */\r\n @Input()\r\n // public set config(conf: ModalOptions) {\r\n public set config(conf: ModalOptions | any) {\r\n this._config = this.getConfig(conf);\r\n }\r\n\r\n // public get config(): ModalOptions {\r\n public get config(): ModalOptions | any {\r\n return this._config;\r\n }\r\n\r\n /** This event fires immediately when the `show` instance method is called. */\r\n @Output() public onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete) */\r\n @Output() public onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired immediately when the hide instance method has been called. */\r\n @Output() public onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n /** This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). */\r\n @Output() public onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\r\n\r\n // seems like an Options\r\n public isAnimated = true;\r\n /** This field contains last dismiss reason.\r\n Possible values: `backdrop-click`, `esc` and `null` (if modal was closed by direct call of `.hide()`). */\r\n public dismissReason: string | any;\r\n\r\n public get isShown(): boolean {\r\n return this._isShown;\r\n }\r\n\r\n protected _config: ModalOptions | any;\r\n protected _isShown = false;\r\n\r\n protected isBodyOverflowing = false;\r\n protected originalBodyPadding = 0;\r\n protected scrollbarWidth = 0;\r\n\r\n protected timerHideModal: any = 0;\r\n protected timerRmBackDrop: any = 0;\r\n\r\n // constructor props\r\n protected _element: ElementRef;\r\n protected _renderer: Renderer;\r\n\r\n // reference to backdrop component\r\n protected backdrop: ComponentRef<ModalBackdropComponent>;\r\n private _backdrop: ComponentLoader<ModalBackdropComponent>;\r\n // todo: implement _dialog\r\n _dialog: any;\r\n\r\n isNested = false;\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event: any): void {\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || event.target !== this._element.nativeElement) {\r\n return;\r\n }\r\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\r\n this.hide(event);\r\n }\r\n\r\n // todo: consider preventing default and stopping propagation\r\n @HostListener('keydown.esc')\r\n public onEsc(): void {\r\n if (this.config.keyboard) {\r\n this.dismissReason = DISMISS_REASONS.ESC;\r\n this.hide();\r\n }\r\n }\r\n\r\n public constructor(_element: ElementRef, _viewContainerRef: ViewContainerRef, _renderer: Renderer, clf: ComponentLoaderFactory) {\r\n this._element = _element;\r\n this._renderer = _renderer;\r\n this._backdrop = clf.createLoader<ModalBackdropComponent>(_element, _viewContainerRef, _renderer);\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n this.config = void 0;\r\n if (this._isShown) {\r\n this._isShown = false;\r\n this.hideModal();\r\n this._backdrop.dispose();\r\n }\r\n }\r\n\r\n public ngAfterViewInit(): any {\r\n this._config = this._config || this.getConfig();\r\n setTimeout(() => {\r\n if (this._config.show) {\r\n this.show();\r\n }\r\n }, 0);\r\n }\r\n\r\n /* Public methods */\r\n\r\n /** Allows to manually toggle modal visibility */\r\n public toggle(): void {\r\n return this._isShown ? this.hide() : this.show();\r\n }\r\n\r\n /** Allows to manually open modal */\r\n public show(): void {\r\n this.dismissReason = null;\r\n this.onShow.emit(this);\r\n if (this._isShown) {\r\n return;\r\n }\r\n clearTimeout(this.timerHideModal);\r\n clearTimeout(this.timerRmBackDrop);\r\n\r\n this._isShown = true;\r\n\r\n this.checkScrollbar();\r\n this.setScrollbar();\r\n\r\n if (document && document.body) {\r\n if (document.body.classList.contains(ClassName.OPEN)) {\r\n this.isNested = true;\r\n } else {\r\n this._renderer.setElementClass(document.body, ClassName.OPEN, true);\r\n }\r\n }\r\n\r\n this.showBackdrop(() => {\r\n this.showElement();\r\n });\r\n }\r\n\r\n /** Allows to manually close modal */\r\n public hide(event?: Event): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n this.onHide.emit(this);\r\n\r\n // todo: add an option to prevent hiding\r\n if (!this._isShown) {\r\n return;\r\n }\r\n\r\n clearTimeout(this.timerHideModal);\r\n clearTimeout(this.timerRmBackDrop);\r\n\r\n this._isShown = false;\r\n this._renderer.setElementClass(this._element.nativeElement, ClassName.IN, false);\r\n if (!isBs3()) {\r\n this._renderer.setElementClass(this._element.nativeElement, ClassName.SHOW, false);\r\n }\r\n\r\n if (this.isAnimated) {\r\n this.timerHideModal = setTimeout(() => this.hideModal(), TRANSITION_DURATION);\r\n } else {\r\n this.hideModal();\r\n }\r\n }\r\n\r\n /** Private methods @internal */\r\n protected getConfig(config?: ModalOptions): ModalOptions {\r\n return Object.assign({}, modalConfigDefaults, config);\r\n }\r\n\r\n /**\r\n * Show dialog\r\n * @internal\r\n */\r\n protected showElement(): void {\r\n // todo: replace this with component loader usage\r\n if (!this._element.nativeElement.parentNode ||\r\n (this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE)) {\r\n // don't move modals dom position\r\n if (document && document.body) {\r\n document.body.appendChild(this._element.nativeElement);\r\n }\r\n }\r\n\r\n this._renderer.setElementAttribute(this._element.nativeElement, 'aria-hidden', 'false');\r\n this._renderer.setElementStyle(this._element.nativeElement, 'display', 'block');\r\n this._renderer.setElementProperty(this._element.nativeElement, 'scrollTop', 0);\r\n\r\n if (this.isAnimated) {\r\n Utils.reflow(this._element.nativeElement);\r\n }\r\n\r\n this._renderer.setElementClass(this._element.nativeElement, ClassName.IN, true);\r\n if (!isBs3()) {\r\n this._renderer.setElementClass(this._element.nativeElement, ClassName.SHOW, true);\r\n }\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._element.nativeElement.focus();\r\n }\r\n this.onShown.emit(this);\r\n };\r\n\r\n if (this.isAnimated) {\r\n setTimeout(transitionComplete, TRANSITION_DURATION);\r\n } else {\r\n transitionComplete();\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected hideModal(): void {\r\n this._renderer.setElementAttribute(this._element.nativeElement, 'aria-hidden', 'true');\r\n this._renderer.setElementStyle(this._element.nativeElement, 'display', 'none');\r\n this.showBackdrop(() => {\r\n if (!this.isNested) {\r\n if (document && document.body) {\r\n this._renderer.setElementClass(document.body, ClassName.OPEN, false);\r\n }\r\n this.resetScrollbar();\r\n }\r\n this.resetAdjustments();\r\n this.focusOtherModal();\r\n this.onHidden.emit(this);\r\n });\r\n }\r\n\r\n // todo: original show was calling a callback when done, but we can use promise\r\n /** @internal */\r\n protected showBackdrop(callback?: Function): void {\r\n if (this._isShown && this.config.backdrop && (!this.backdrop || !this.backdrop.instance.isShown)) {\r\n this.removeBackdrop();\r\n this._backdrop\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({isAnimated: this.isAnimated});\r\n this.backdrop = this._backdrop._componentRef;\r\n\r\n if (!callback) {\r\n return;\r\n }\r\n\r\n if (!this.isAnimated) {\r\n callback();\r\n return;\r\n }\r\n\r\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\r\n } else if (!this._isShown && this.backdrop) {\r\n this.backdrop.instance.isShown = false;\r\n\r\n const callbackRemove = () => {\r\n this.removeBackdrop();\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n if (this.backdrop.instance.isAnimated) {\r\n this.timerRmBackDrop = setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);\r\n } else {\r\n callbackRemove();\r\n }\r\n } else if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected removeBackdrop(): void {\r\n this._backdrop.hide();\r\n }\r\n\r\n\r\n protected focusOtherModal() {\r\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[mdbModal]');\r\n if (!otherOpenedModals.length) {\r\n return;\r\n }\r\n this._renderer.invokeElementMethod(otherOpenedModals[otherOpenedModals.length - 1], 'focus');\r\n }\r\n\r\n /** @internal */\r\n protected resetAdjustments(): void {\r\n this._renderer.setElementStyle(this._element.nativeElement, 'paddingLeft', '');\r\n this._renderer.setElementStyle(this._element.nativeElement, 'paddingRight', '');\r\n }\r\n\r\n /** Scroll bar tricks */\r\n /** @internal */\r\n protected checkScrollbar(): void {\r\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\r\n this.scrollbarWidth = this.getScrollbarWidth();\r\n }\r\n\r\n protected setScrollbar(): void {\r\n if (!document) {\r\n return;\r\n }\r\n\r\n this.originalBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right') || 0, 10);\r\n\r\n if (this.isBodyOverflowing) {\r\n document.body.style.paddingRight = `${this.originalBodyPadding + this.scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n protected resetScrollbar(): void {\r\n document.body.style.paddingRight = this.originalBodyPadding;\r\n }\r\n\r\n // thx d.walsh\r\n protected getScrollbarWidth(): number {\r\n const scrollDiv = this._renderer.createElement(document.body, 'div', void 0);\r\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\r\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n return scrollbarWidth;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders, NO_ERRORS_SCHEMA } from '@angular/core';\r\n\r\nimport { ModalBackdropComponent } from './modalBackdrop.component';\r\nimport { ModalDirective } from './modal.directive';\r\nimport { PositioningService } from '../utils/positioning';\r\nimport { ComponentLoaderFactory } from '../utils/component-loader';\r\nimport { ModalContainerComponent } from './modalContainer.component';\r\nimport { MDBModalService } from './modal.service';\r\n\r\n@NgModule({\r\n declarations: [ModalBackdropComponent, ModalDirective, ModalContainerComponent],\r\n exports: [ModalBackdropComponent, ModalDirective],\r\n entryComponents: [ModalBackdropComponent, ModalContainerComponent],\r\n schemas: [NO_ERRORS_SCHEMA]\r\n})\r\nexport class ModalModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: ModalModule, providers: [MDBModalService, ComponentLoaderFactory, PositioningService]};\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ModalOptions {\r\n /**\r\n * Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click.\r\n */\r\n // backdrop?: boolean | 'static';\r\n backdrop?: boolean | 'static' | any;\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n\r\n focus?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation\r\n */\r\n animated?: boolean;\r\n }\r\n\r\n @Injectable()\r\n export class MDBModalRef {\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef\r\n */\r\n content?: any | null;\r\n /**\r\n * Hides the modal\r\n */\r\n hide(): void {}\r\n }\r\n\r\n export const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n focus: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true\r\n };\r\n\r\n export const ClassName: any = {\r\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\r\n BACKDROP: 'modal-backdrop',\r\n OPEN: 'modal-open',\r\n FADE: 'fade',\r\n IN: 'in', // bs3\r\n SHOW: 'show' // bs4\r\n };\r\n\r\n export const Selector: any = {\r\n DIALOG: '.modal-dialog',\r\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\r\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\r\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\r\n };\r\n\r\n export const TransitionDurations: any = {\r\n MODAL: 300,\r\n BACKDROP: 150\r\n };\r\n\r\n export const DISMISS_REASONS = {\r\n BACKRDOP: 'backdrop-click',\r\n ESC: 'esc'\r\n };\r\n","import { ComponentRef, Injectable, TemplateRef, EventEmitter, Renderer, ViewContainerRef, ElementRef } from '@angular/core';\r\n\r\nimport { ComponentLoader } from '../utils/component-loader';\r\nimport { ComponentLoaderFactory } from '../utils/component-loader';\r\nimport { ModalBackdropComponent } from './modalBackdrop.component';\r\nimport { ModalContainerComponent } from './modalContainer.component';\r\nimport { MDBModalRef, ClassName, modalConfigDefaults, ModalOptions, TransitionDurations } from './modal.options';\r\nimport { msConfig } from './modalService.config';\r\n\r\n\r\n@Injectable()\r\nexport class MDBModalService {\r\n // constructor props\r\n public config: ModalOptions = modalConfigDefaults;\r\n\r\n public onShow: EventEmitter<any> = new EventEmitter();\r\n public onShown: EventEmitter<any> = new EventEmitter();\r\n public onHide: EventEmitter<any> = new EventEmitter();\r\n public onHidden: EventEmitter<any> = new EventEmitter();\r\n\r\n protected isBodyOverflowing = false;\r\n protected originalBodyPadding = 0;\r\n\r\n protected scrollbarWidth = 0;\r\n\r\n // protected backdropRef: ComponentRef<ModalBackdropComponent>;\r\n protected backdropRef: ComponentRef<ModalBackdropComponent> | any;\r\n private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private modalsCount = 0;\r\n // private lastDismissReason = '';\r\n private lastDismissReason: any = '';\r\n\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n // public constructor(private clf: ComponentLoaderFactory) {\r\n public constructor(private clf: ComponentLoaderFactory, private el: ElementRef, private v: ViewContainerRef, private r: Renderer) {\r\n // this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>(null, null, null);\r\n this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>(this.el, this.v, this.r);\r\n msConfig.serviceInstance = this;\r\n }\r\n\r\n /** Shows a modal */\r\n show(content: string | TemplateRef<any> | any, config?: any): MDBModalRef {\r\n this.modalsCount++;\r\n this._createLoaders();\r\n this.config = Object.assign({}, modalConfigDefaults, config);\r\n this._showBackdrop();\r\n this.lastDismissReason = null;\r\n return this._showModal(content);\r\n }\r\n\r\n hide(level: number) {\r\n if (this.modalsCount === 1) {\r\n this._hideBackdrop();\r\n this.resetScrollbar();\r\n }\r\n this.modalsCount = this.modalsCount >= 1 ? this.modalsCount - 1 : 0;\r\n setTimeout(() => {\r\n this._hideModal(level);\r\n this.removeLoaders(level);\r\n }, this.config.animated ? TransitionDurations.BACKDROP : 0);\r\n }\r\n\r\n _showBackdrop(): void {\r\n const isBackdropEnabled = this.config.backdrop || this.config.backdrop === 'static';\r\n const isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;\r\n\r\n if (this.modalsCount === 1) {\r\n this.removeBackdrop();\r\n\r\n if (isBackdropEnabled && isBackdropInDOM) {\r\n this._backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({isAnimated: this.config.animated});\r\n this.backdropRef = this._backdropLoader._componentRef;\r\n }\r\n }\r\n }\r\n\r\n _hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.isShown = false;\r\n const duration = this.config.animated ? TransitionDurations.BACKDROP : 0;\r\n setTimeout(() => this.removeBackdrop(), duration);\r\n }\r\n\r\n _showModal(content: any): MDBModalRef {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n const mdbModalRef = new MDBModalRef();\r\n const modalContainerRef = modalLoader\r\n .provide({provide: ModalOptions, useValue: this.config})\r\n .provide({provide: MDBModalRef, useValue: mdbModalRef})\r\n .attach(ModalContainerComponent)\r\n .to('body')\r\n .show({content, isAnimated: this.config.animated});\r\n modalContainerRef.instance.level = this.getModalsCount();\r\n mdbModalRef.hide = () => {\r\n modalContainerRef.instance.hide();\r\n };\r\n mdbModalRef.content = modalLoader.getInnerComponent() || null;\r\n return mdbModalRef;\r\n }\r\n\r\n _hideModal(level: number): void {\r\n const modalLoader = this.loaders[level - 1];\r\n if (modalLoader) {\r\n modalLoader.hide();\r\n }\r\n }\r\n\r\n getModalsCount(): number {\r\n return this.modalsCount;\r\n }\r\n\r\n setDismissReason(reason: string) {\r\n this.lastDismissReason = reason;\r\n }\r\n\r\n protected removeBackdrop(): void {\r\n this._backdropLoader.hide();\r\n this.backdropRef = null;\r\n }\r\n\r\n /** AFTER PR MERGE MODAL.COMPONENT WILL BE USING THIS CODE*/\r\n /** Scroll bar tricks */\r\n /** @internal */\r\n public checkScrollbar(): void {\r\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\r\n this.scrollbarWidth = this.getScrollbarWidth();\r\n }\r\n\r\n public setScrollbar(): void {\r\n if (!document) {\r\n return;\r\n }\r\n\r\n this.originalBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right') || '0', 10);\r\n\r\n if (this.isBodyOverflowing) {\r\n document.body.style.paddingRight = `${this.originalBodyPadding + this.scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n private resetScrollbar(): void {\r\n document.body.style.paddingRight = this.originalBodyPadding + 'px';\r\n }\r\n\r\n // thx d.walsh\r\n private getScrollbarWidth(): number {\r\n const scrollDiv = document.createElement('div');\r\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\r\n document.body.appendChild(scrollDiv);\r\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\r\n document.body.removeChild(scrollDiv);\r\n return scrollbarWidth;\r\n\r\n }\r\n\r\n private _createLoaders(): void {\r\n // const loader = this.clf.createLoader<ModalContainerComponent>(null, null, null);\r\n const loader = this.clf.createLoader<ModalContainerComponent>(this.el, this.v, this.r);\r\n this.copyEvent(loader.onBeforeShow, this.onShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private removeLoaders(level: number): void {\r\n this.loaders.splice(level - 1, 1);\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n loader.instance.level = i + 1;\r\n });\r\n }\r\n\r\n private copyEvent(from: EventEmitter<any>, to: EventEmitter<any>) {\r\n from.subscribe(() => {\r\n to.emit(this.lastDismissReason);\r\n });\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, Renderer, HostBinding } from '@angular/core';\r\n\r\nimport { ClassName } from './modal.options';\r\nimport { isBs3 } from '../utils/ng2-bootstrap-config';\r\nimport { Utils } from '../utils/utils.class';\r\n\r\nexport class ModalBackdropOptions {\r\n public animate = true;\r\n\r\n public constructor(options: ModalBackdropOptions) {\r\n Object.assign(this, options);\r\n }\r\n}\r\n\r\n/** This component will be added as background layout for modals if enabled */\r\n@Component({\r\n selector: 'mdb-modal-backdrop',\r\n template: ``,\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n @HostBinding('class.modal-backdrop') public classNameBackDrop = true;\r\n\r\n public get isAnimated(): boolean {\r\n return this._isAnimated;\r\n }\r\n\r\n public set isAnimated(value: boolean) {\r\n this._isAnimated = value;\r\n }\r\n\r\n public get isShown(): boolean {\r\n return this._isShown;\r\n }\r\n\r\n public set isShown(value: boolean) {\r\n this._isShown = value;\r\n this.renderer.setElementClass(this.element.nativeElement, `${ClassName.IN}`, value);\r\n if (!isBs3()) {\r\n this.renderer.setElementClass(this.element.nativeElement, `${ClassName.SHOW}`, value);\r\n }\r\n }\r\n\r\n public element: ElementRef;\r\n public renderer: Renderer;\r\n\r\n protected _isAnimated: boolean;\r\n protected _isShown = false;\r\n\r\n public constructor(element: ElementRef, renderer: Renderer) {\r\n this.element = element;\r\n this.renderer = renderer;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isAnimated) {\r\n this.renderer.setElementClass(this.element.nativeElement, `${ClassName.FADE}`, this.isAnimated);\r\n Utils.reflow(this.element.nativeElement);\r\n }\r\n this.isShown = true;\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer, HostBinding } from '@angular/core';\r\nimport { ClassName, DISMISS_REASONS, ModalOptions, TransitionDurations } from './modal.options';\r\nimport { isBs3 } from '../utils/ng2-bootstrap-config';\r\nimport { msConfig } from './modalService.config';\r\n\r\n@Component({\r\n selector: 'mdb-modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\">\r\n <div class=\"modal-content\"><ng-content></ng-content></div>\r\n</div>`\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n @HostBinding('tabindex') tabindex = -1;\r\n @HostBinding('role') role = 'dialog';\r\n @HostBinding('class.modal') modla = true;\r\n\r\n private mdbModalService: any;\r\n\r\n public config: ModalOptions;\r\n public isShown = false;\r\n public level: number;\r\n public isAnimated: boolean;\r\n protected _element: ElementRef;\r\n private isModalHiding = false;\r\n @HostListener('click', ['$event'])\r\n public onClick(event: any): void {\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || event.target !== this._element.nativeElement) {\r\n return;\r\n }\r\n this.mdbModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);\r\n this.hide();\r\n }\r\n @HostListener('window:keydown.esc')\r\n public onEsc(): void {\r\n if (this.config.keyboard && this.level === this.mdbModalService.getModalsCount()) {\r\n this.mdbModalService.setDismissReason(DISMISS_REASONS.ESC);\r\n this.hide();\r\n }\r\n }\r\n\r\n public constructor(options: ModalOptions, _element: ElementRef, private _renderer: Renderer) {\r\n this.mdbModalService = msConfig.serviceInstance;\r\n\r\n this._element = _element;\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.isAnimated) {\r\n this._renderer.setElementClass(this._element.nativeElement, ClassName.FADE, true);\r\n }\r\n this._renderer.setElementStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(() => {\r\n this.isShown = true;\r\n this._renderer.setElementClass(this._element.nativeElement, isBs3() ? ClassName.IN : ClassName.SHOW, true);\r\n }, this.isAnimated ? TransitionDurations.BACKDROP : 0);\r\n if (document && document.body) {\r\n if (this.mdbModalService.getModalsCount() === 1) {\r\n this.mdbModalService.checkScrollbar();\r\n this.mdbModalService.setScrollbar();\r\n }\r\n this._renderer.setElementClass(document.body, ClassName.OPEN, true);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this.hide();\r\n }\r\n }\r\n\r\n hide(): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n this.isModalHiding = true;\r\n this._renderer.setElementClass(this._element.nativeElement, isBs3() ? ClassName.IN : ClassName.SHOW, false);\r\n\r\n setTimeout(() => {\r\n this.isShown = false;\r\n if (document && document.body && this.mdbModalService.getModalsCount() === 1) {\r\n this._renderer.setElementClass(document.body, ClassName.OPEN, false);\r\n }\r\n this.mdbModalService.hide(this.level);\r\n this.isModalHiding = false;\r\n }, this.isAnimated ? TransitionDurations.MODAL : 0);\r\n }\r\n}\r\n","export const msConfig = {\r\n serviceInstance: new Object()\r\n}","export * from './navbar.module';\r\nexport * from './navbar.component';\r\n","import { NavbarService } from './navbar.service';\r\nimport { AfterContentInit, Component, ContentChildren, ElementRef, QueryList, EventEmitter, Output } from '@angular/core';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { AfterViewInit } from '@angular/core/src/metadata/lifecycle_hooks';\r\n@Component({\r\n selector: 'links',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n})\r\nexport class LinksComponent implements AfterViewInit, AfterContentInit {\r\n @ContentChildren(RouterLinkWithHref, { read: ElementRef, descendants: true })\r\n links: QueryList<ElementRef>;\r\n\r\n @Output() linkClick = new EventEmitter<any>();\r\n constructor( private _navbarService: NavbarService) { }\r\n\r\n ngAfterContentInit() {\r\n const that = this;\r\n\r\n\r\n\r\n setTimeout(function () {\r\n that.links.forEach(function (element) {\r\n element.nativeElement.onclick = function () {\r\n that._navbarService.setNavbarLinkClicks();\r\n };\r\n });\r\n\r\n }, 0);\r\n }\r\n ngAfterViewInit() {\r\n\r\n }\r\n}\r\n","import {Component} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'logo',\r\n template: `\r\n <ng-content></ng-content>\r\n `\r\n})\r\nexport class LogoComponent {\r\n\r\n}\r\n","module.exports = \"<nav class=\\\"{{SideClass}}\\\" #nav>\\r\\n <div [ngClass]=\\\"{'container': containerInside}\\\" [ngStyle]=\\\"{'display': displayStyle}\\\" #container>\\r\\n <ng-content select=\\\"logo\\\"></ng-content>\\r\\n <ng-content *ngIf=\\\"this.doubleNav == true\\\" select=\\\"navlinks\\\"></ng-content>\\r\\n <div *ngIf=\\\"this.doubleNav == false\\\">\\r\\n <button class=\\\"navbar-toggler\\\" type=\\\"button\\\" (click)=\\\"toggle($event)\\\" mdbWavesEffect *ngIf=\\\"this.el.nativeElement.children.length !== 0\\\">\\r\\n <span class=\\\"navbar-toggler-icon\\\">\\r\\n </span>\\r\\n </button>\\r\\n </div>\\r\\n <div #navbar [style.height]=\\\"height\\\" class=\\\"navbar-collapse collapse\\\" [ngClass]=\\\"{'collapse': collapse, 'show': showClass, 'collapsing': collapsing}\\\">\\r\\n <ng-content select=\\\"links\\\"></ng-content>\\r\\n </div>\\r\\n </div>\\r\\n</nav>\\r\\n\"","import { NavbarService } from './navbar.service';\r\nimport { Component, ElementRef, ViewChild, Input, Renderer2, AfterViewInit, HostListener, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\n@Component({\r\n selector: 'mdb-navbar',\r\n templateUrl: 'navbar.component.html',\r\n})\r\n\r\nexport class NavbarComponent implements AfterViewInit, OnInit {\r\n @Input() SideClass: string;\r\n @Input() containerInside = true;\r\n subscription: Subscription;\r\n navbarLinkClicks: any;\r\n shown = false;\r\n\r\n public doubleNav: boolean;\r\n public height: number;\r\n public duration = 350; // ms\r\n\r\n public collapse = false;\r\n public showClass = false;\r\n public collapsing = false;\r\n @ViewChild('navbar') el: ElementRef;\r\n @ViewChild('mobile') mobile: ElementRef;\r\n @ViewChild('nav') navbar: ElementRef;\r\n @ViewChild('container') container: ElementRef;\r\n\r\n constructor(public renderer: Renderer2, private _navbarService: NavbarService) {\r\n // tslint:disable-next-line:max-line-length\r\n this.subscription = this._navbarService.getNavbarLinkClicks().subscribe(navbarLinkClicks => { this.closeNavbarOnClick(navbarLinkClicks); });\r\n }\r\n\r\n closeNavbarOnClick(navbarLinkClicks: any) {\r\n this.navbarLinkClicks = navbarLinkClicks;\r\n if (this.showClass) {\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n const isDoubleNav = this.SideClass.split(' ');\r\n if (isDoubleNav.indexOf('double-nav') !== -1) {\r\n this.doubleNav = true;\r\n }else {\r\n this.doubleNav = false;\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n /* bugfix - bez tego sypie ExpressionChangedAfterItHasBeenCheckedError -\r\n https://github.com/angular/angular/issues/6005#issuecomment-165951692 */\r\n setTimeout(() => {\r\n this.height = this.el.nativeElement.scrollHeight;\r\n this.collapse = true;\r\n\r\n if (!this.containerInside) {\r\n const childrens = Array.from(this.container.nativeElement.children);\r\n childrens.forEach(child => {\r\n // this.navbar.nativeElement.append(child);\r\n this.renderer.appendChild(this.navbar.nativeElement, child);\r\n\r\n this.container.nativeElement.remove();\r\n });\r\n\r\n }\r\n if (this.el.nativeElement.children.length === 0) {\r\n this.el.nativeElement.remove();\r\n }\r\n });\r\n }\r\n\r\n toggle(event: any) {\r\n event.preventDefault();\r\n if (!this.collapsing) {\r\n if (this.shown) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n }\r\n\r\n show() {\r\n this.shown = true;\r\n this.collapse = false;\r\n this.collapsing = true;\r\n setTimeout(() => {\r\n this.renderer.setStyle(this.el.nativeElement, 'height', this.height + 'px');\r\n }, 10);\r\n\r\n\r\n setTimeout(() => {\r\n this.collapsing = false;\r\n this.collapse = true;\r\n this.showClass = true;\r\n }, this.duration);\r\n }\r\n\r\n hide() {\r\n this.shown = false;\r\n this.collapse = false;\r\n this.showClass = false;\r\n this.collapsing = true;\r\n setTimeout(() => {\r\n this.renderer.setStyle(this.el.nativeElement, 'height', '0px');\r\n }, 10);\r\n\r\n\r\n setTimeout(() => {\r\n this.collapsing = false;\r\n this.collapse = true;\r\n }, this.duration);\r\n }\r\n\r\n get displayStyle() {\r\n // if(!this.containerInside) {\r\n // return 'flex';\r\n // } else {\r\n return '';\r\n // }\r\n }\r\n\r\n @HostListener('window:resize', ['$event']) onResize(event: any) {\r\n let breakpoit = 0;\r\n\r\n if (this.SideClass.includes('navbar-expand-xl')) {\r\n breakpoit = 1200;\r\n } else if (this.SideClass.includes('navbar-expand-lg')) {\r\n breakpoit = 992;\r\n } else if (this.SideClass.includes('navbar-expand-md')) {\r\n breakpoit = 768;\r\n } else if (this.SideClass.includes('navbar-expand-sm')) {\r\n breakpoit = 576;\r\n } else {\r\n breakpoit = event.target.innerWidth + 1;\r\n }\r\n\r\n if (event.target.innerWidth < breakpoit) {\r\n if (!this.shown) {\r\n this.collapse = false;\r\n this.renderer.setStyle(this.el.nativeElement, 'height', '0px');\r\n this.renderer.setStyle(this.el.nativeElement, 'opacity', '0');\r\n setTimeout(() => {\r\n this.height = this.el.nativeElement.scrollHeight;\r\n this.collapse = true;\r\n this.renderer.setStyle(this.el.nativeElement, 'opacity', '');\r\n }, 4);\r\n }\r\n } else {\r\n this.collapsing = false;\r\n this.shown = false;\r\n this.showClass = false;\r\n this.collapse = true;\r\n this.renderer.setStyle(this.el.nativeElement, 'height', '');\r\n }\r\n }\r\n\r\n @HostListener('document:scroll', ['$event']) onScroll() {\r\n if (this.navbar.nativeElement.classList.contains('scrolling-navbar')) {\r\n if (window.pageYOffset > 120) {\r\n this.renderer.addClass(this.navbar.nativeElement, 'top-nav-collapse');\r\n } else {\r\n this.renderer.removeClass(this.navbar.nativeElement, 'top-nav-collapse');\r\n }\r\n }\r\n }\r\n}\r\n","import { LinksComponent } from './links.component';\r\nimport { LogoComponent } from './logo.component';\r\nimport { NavbarService } from './navbar.service';\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\nimport {NavbarComponent} from './navbar.component';\r\nimport { NavlinksComponent } from './navlinks.component';\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NavbarComponent, LinksComponent, LogoComponent, NavlinksComponent],\r\n exports: [NavbarComponent, LinksComponent , LogoComponent, NavlinksComponent],\r\n providers: [NavbarService]\r\n})\r\nexport class NavbarModule {}\r\n","import {Injectable} from '@angular/core';\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\n@Injectable()\r\nexport class NavbarService {\r\n\r\n private navbarLinkClicks = new Subject<any>();\r\n\r\n\r\n getNavbarLinkClicks(): Observable<any> {\r\n return this.navbarLinkClicks.asObservable();\r\n }\r\n\r\n setNavbarLinkClicks() {\r\n this.navbarLinkClicks.next();\r\n }\r\n}\r\n","import { NavbarService } from './navbar.service';\r\nimport { AfterContentInit, Component, ContentChildren, ElementRef, QueryList, EventEmitter, Output } from '@angular/core';\r\nimport { RouterLinkWithHref } from '@angular/router';\r\nimport { AfterViewInit } from '@angular/core/src/metadata/lifecycle_hooks';\r\n@Component({\r\n selector: 'navlinks',\r\n template: `\r\n <ng-content></ng-content>\r\n `,\r\n})\r\nexport class NavlinksComponent implements AfterViewInit, AfterContentInit {\r\n @ContentChildren(RouterLinkWithHref, { read: ElementRef, descendants: true })\r\n links: QueryList<ElementRef>;\r\n\r\n @Output() linkClick = new EventEmitter<any>();\r\n constructor( private _navbarService: NavbarService) { }\r\n\r\n ngAfterContentInit() {\r\n const that = this;\r\n\r\n\r\n\r\n setTimeout(function () {\r\n that.links.forEach(function (element) {\r\n element.nativeElement.onclick = function () {\r\n that._navbarService.setNavbarLinkClicks();\r\n };\r\n });\r\n\r\n }, 0);\r\n }\r\n ngAfterViewInit() {\r\n\r\n }\r\n}\r\n","export { PopoverDirective } from './popover.directive';\r\nexport { PopoverModule } from './popover.module';\r\nexport { PopoverConfig } from './popover.config';\r\nexport { PopoverContainerComponent } from './popover-container.component';\r\n","import { ChangeDetectionStrategy, Input, Component, HostBinding, OnInit } from '@angular/core';\r\nimport { PopoverConfig } from './popover.config';\r\nimport { isBs3 } from '../utils/ng2-bootstrap-config';\r\n\r\n@Component({\r\n selector: 'mdb-popover-container',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n template: `\r\n <h3 class=\"popover-header\" *ngIf=\"title\">{{title}}</h3>\r\n <div class=\"popover-body\">\r\n <ng-content></ng-content>\r\n </div>`\r\n})\r\nexport class PopoverContainerComponent implements OnInit {\r\n\r\n@Input() public placement: string;\r\n @Input() public title: string;\r\n\r\n@HostBinding('class.show') show = '!isBs3';\r\n @HostBinding('attr.role') role = 'tooltip';\r\n// @HostBinding('class') class;\r\n@HostBinding('class') class: any;\r\n\r\n\r\n\r\npublic get isBs3(): boolean {\r\n return isBs3();\r\n }\r\n\r\npublic constructor(config: PopoverConfig) {\r\n Object.assign(this, config);\r\n }\r\n\r\nngOnInit() {\r\n this.class = 'popover-fadeIn popover in popover-' + this.placement + ' ' + this.placement + ' bs-popover-' + this.placement;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n/**\r\n * Configuration service for the Popover directive.\r\n * You can inject this service, typically in your root component, and customize\r\n * the values of its properties in order to provide default values for all the\r\n * popovers used in the application.\r\n */\r\n @Injectable()\r\n export class PopoverConfig {\r\n /**\r\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\r\n */\r\n public placement = 'top';\r\n /**\r\n * Specifies events that should trigger. Supports a space separated list of\r\n * event names.\r\n */\r\n public triggers = 'click';\r\n /**\r\n * A selector specifying the element the popover should be appended to.\r\n * Currently only supports \"body\".\r\n */\r\n public container: string;\r\n }\r\n","import { Directive, Input, Output, EventEmitter, OnInit, OnDestroy, Renderer, ElementRef, TemplateRef,\r\n ViewContainerRef } from '@angular/core';\r\n import { PopoverConfig } from './popover.config';\r\n import { ComponentLoaderFactory, ComponentLoader } from '../utils/component-loader';\r\n import { PopoverContainerComponent } from './popover-container.component';\r\n\r\n/**\r\n * A lightweight, extensible directive for fancy popover creation.\r\n */\r\n @Directive({selector: '[mdbPopover]', exportAs: 'bs-mdbPopover'})\r\n export class PopoverDirective implements OnInit, OnDestroy {\r\n /**\r\n * Content to be displayed as popover.\r\n */\r\n @Input() public mdbPopover: string | TemplateRef<any>;\r\n /**\r\n * Title of a popover.\r\n */\r\n @Input() public popoverTitle: string;\r\n /**\r\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\r\n */\r\n @Input() public placement: 'top' | 'bottom' | 'left' | 'right';\r\n /**\r\n * Specifies events that should trigger. Supports a space separated list of\r\n * event names.\r\n */\r\n @Input() public triggers: string;\r\n /**\r\n * A selector specifying the element the popover should be appended to.\r\n * Currently only supports \"body\".\r\n */\r\n @Input() public container: string;\r\n\r\n /**\r\n * Returns whether or not the popover is currently being shown\r\n */\r\n @Input()\r\n public get isOpen(): boolean { return this._popover.isShown; }\r\n\r\n public set isOpen(value: boolean) {\r\n if (value) {this.show(); } else {this.hide(); }\r\n }\r\n\r\n /**\r\n * Emits an event when the popover is shown\r\n */\r\n @Output() public onShown: EventEmitter<any>;\r\n /**\r\n * Emits an event when the popover is hidden\r\n */\r\n @Output() public onHidden: EventEmitter<any>;\r\n\r\n private _popover: ComponentLoader<PopoverContainerComponent>;\r\n\r\n public constructor(_elementRef: ElementRef,\r\n _renderer: Renderer,\r\n _viewContainerRef: ViewContainerRef,\r\n _config: PopoverConfig,\r\n cis: ComponentLoaderFactory) {\r\n this._popover = cis\r\n .createLoader<PopoverContainerComponent>(_elementRef, _viewContainerRef, _renderer)\r\n .provide({provide: PopoverConfig, useValue: _config});\r\n Object.assign(this, _config);\r\n this.onShown = this._popover.onShown;\r\n this.onHidden = this._popover.onHidden;\r\n }\r\n\r\n /**\r\n * Opens an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n public show(): void | any {\r\n if (this._popover.isShown) {\r\n return;\r\n }\r\n\r\n this._popover\r\n .attach(PopoverContainerComponent)\r\n .to(this.container)\r\n .position({attachment: this.placement})\r\n .show({\r\n content: this.mdbPopover,\r\n placement: this.placement,\r\n title: this.popoverTitle\r\n });\r\n this.isOpen = true;\r\n }\r\n\r\n /**\r\n * Closes an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n public hide(): void {\r\n if (this.isOpen) {\r\n this._popover.hide();\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n /**\r\n * Toggles an elements popover. This is considered a “manual” triggering of\r\n * the popover.\r\n */\r\n public toggle(): void {\r\n if (this.isOpen) {\r\n return this.hide();\r\n }\r\n\r\n this.show();\r\n }\r\n\r\n public ngOnInit(): any {\r\n this._popover.listen({\r\n triggers: this.triggers,\r\n show: () => this.show()\r\n });\r\n }\r\n\r\n public dispose() {\r\n this._popover.dispose();\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n this._popover.dispose();\r\n }\r\n }\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ComponentLoaderFactory } from '../utils/component-loader';\r\nimport { PositioningService } from '../utils/positioning';\r\nimport { PopoverConfig } from './popover.config';\r\nimport { PopoverDirective } from './popover.directive';\r\nimport { PopoverContainerComponent } from './popover-container.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [PopoverDirective, PopoverContainerComponent],\r\n exports: [PopoverDirective],\r\n entryComponents: [PopoverContainerComponent]\r\n})\r\nexport class PopoverModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: PopoverModule,\r\n providers: [PopoverConfig, ComponentLoaderFactory, PositioningService]\r\n };\r\n }\r\n}\r\n","export { RippleDirective } from './ripple-effect.directive';\r\nexport { RippleModule } from './ripple.module';\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[mdbRippleRadius]'\r\n})\r\nexport class RippleDirective {\r\n el: ElementRef;\r\n\r\n constructor(el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public click(event: any) {\r\n // event.stopPropagation();\r\n\r\n if (!this.el.nativeElement.classList.contains('disabled')) {\r\n\r\n const button = this.el.nativeElement;\r\n if (!button.classList.contains('waves-effect')) {\r\n button.className += ' waves-effect';\r\n }\r\n\r\n const xPos = event.clientX - button.getBoundingClientRect().left;\r\n const yPos = event.clientY - button.getBoundingClientRect().top;\r\n\r\n\r\n const tmp = document.createElement('div');\r\n tmp.className += 'waves-ripple waves-rippling';\r\n const ripple = button.appendChild(tmp);\r\n\r\n const top = yPos + 'px';\r\n const left = xPos + 'px';\r\n\r\n tmp.style.top = top;\r\n tmp.style.left = left;\r\n\r\n const scale = 'scale(' + ((button.clientWidth / 100) * 3) + ') translate(0,0)';\r\n\r\n tmp.style.webkitTransform = scale;\r\n tmp.style.transform = scale;\r\n tmp.style.opacity = '1';\r\n\r\n const duration = 750;\r\n\r\n tmp.style.webkitTransitionDuration = duration + 'ms';\r\n tmp.style.transitionDuration = duration + 'ms';\r\n\r\n\r\n this.removeRipple(button, ripple);\r\n }\r\n }\r\n\r\n removeRipple(button: any, ripple: any) {\r\n ripple.classList.remove('waves-rippling');\r\n\r\n setTimeout(() => {\r\n ripple.style.opacity = '0';\r\n\r\n setTimeout(() => {\r\n button.removeChild(ripple);\r\n }, 750);\r\n }, 200);\r\n\r\n\r\n\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { RippleDirective } from './ripple-effect.directive';\r\n\r\n@NgModule({\r\n declarations: [RippleDirective],\r\n exports: [RippleDirective]\r\n})\r\n\r\nexport class RippleModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: RippleModule, providers: []};\r\n }\r\n}\r\n","export { TooltipContainerComponent } from './tooltip.component';\r\nexport { TooltipDirective } from './tooltip.directive';\r\nexport { MDBTooltipModule } from './tooltip.module';\r\nexport { TooltipConfig } from './tooltip.service';\r\n","import { AfterViewInit, Component, ChangeDetectionStrategy, HostBinding } from '@angular/core';\r\nimport { TooltipConfig } from './tooltip.service';\r\nimport { isBs3 } from '../utils/ng2-bootstrap-config';\r\n\r\n@Component({\r\n selector: 'mdb-tooltip-container',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n // tslint:disable-next-line\r\n host: {\r\n '[class]': '\"tooltip-fadeIn tooltip in tooltip-\" + placement'\r\n },\r\n template: `\r\n <div class=\"tooltip-arrow\"></div>\r\n <div class=\"tooltip-inner\"><ng-content></ng-content></div>\r\n `\r\n})\r\nexport class TooltipContainerComponent implements AfterViewInit {\r\n public classMap: any;\r\n public placement: string;\r\n public popupClass: string;\r\n public animation: boolean;\r\n\r\n @HostBinding('class.show') show = !this.isBs3;\r\n\r\n public get isBs3(): boolean {\r\n return isBs3();\r\n }\r\n\r\n public constructor(config: TooltipConfig) {\r\n Object.assign(this, config);\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.classMap = {in: false, fade: false};\r\n this.classMap[this.placement] = true;\r\n this.classMap['tooltip-' + this.placement] = true;\r\n\r\n this.classMap.in = true;\r\n if (this.animation) {\r\n this.classMap.fade = true;\r\n }\r\n\r\n if (this.popupClass) {\r\n this.classMap[this.popupClass] = true;\r\n }\r\n }\r\n}\r\n","import {\r\n Directive, Input, TemplateRef, ViewContainerRef, Output, EventEmitter,\r\n Renderer, ElementRef, OnInit, OnDestroy\r\n} from '@angular/core';\r\nimport { TooltipContainerComponent } from './tooltip.component';\r\nimport { TooltipConfig } from './tooltip.service';\r\nimport { ComponentLoaderFactory, ComponentLoader } from '../utils/component-loader';\r\nimport { OnChange } from '../utils/decorators';\r\n\r\n@Directive({\r\n selector: '[mdbTooltip]',\r\n exportAs: 'mdb-tooltip'\r\n})\r\nexport class TooltipDirective implements OnInit, OnDestroy {\r\n /**\r\n * Content to be displayed as tooltip.\r\n */\r\n @OnChange()\r\n @Input() public mdbTooltip: string | TemplateRef<any>;\r\n /** Fired when tooltip content changes */\r\n @Output() public tooltipChange: EventEmitter<string | TemplateRef<any>> = new EventEmitter();\r\n\r\n /**\r\n * Placement of a tooltip. Accepts: \"top\", \"bottom\", \"left\", \"right\"\r\n */\r\n @Input() public placement: string;\r\n /**\r\n * Specifies events that should trigger. Supports a space separated list of\r\n * event names.\r\n */\r\n @Input() public triggers: string;\r\n /**\r\n * A selector specifying the element the tooltip should be appended to.\r\n * Currently only supports \"body\".\r\n */\r\n @Input() public container: string;\r\n\r\n /**\r\n * Returns whether or not the tooltip is currently being shown\r\n */\r\n @Input()\r\n public get isOpen(): boolean { return this._tooltip.isShown; }\r\n\r\n public set isOpen(value: boolean) {\r\n if (value) {this.show(); } else {this.hide(); }\r\n }\r\n\r\n /**\r\n * Allows to disable tooltip\r\n */\r\n @Input() public isDisabled: boolean;\r\n\r\n /**\r\n * Emits an event when the tooltip is shown\r\n */\r\n @Output() public onShown: EventEmitter<any>;\r\n /**\r\n * Emits an event when the tooltip is hidden\r\n */\r\n @Output() public onHidden: EventEmitter<any>;\r\n\r\n @Input() public delay = 0;\r\n\r\n @Input() public fadeDuration = 150;\r\n\r\n protected _delayTimeoutId: any;\r\n\r\n private _tooltip: ComponentLoader<TooltipContainerComponent>;\r\n\r\n public constructor(_viewContainerRef: ViewContainerRef,\r\n _renderer: Renderer,\r\n _elementRef: ElementRef,\r\n cis: ComponentLoaderFactory,\r\n config: TooltipConfig) {\r\n this._tooltip = cis\r\n .createLoader<TooltipContainerComponent>(_elementRef, _viewContainerRef, _renderer)\r\n .provide({provide: TooltipConfig, useValue: config});\r\n\r\n Object.assign(this, config);\r\n this.onShown = this._tooltip.onShown;\r\n this.onHidden = this._tooltip.onHidden;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._tooltip.listen({\r\n triggers: this.triggers,\r\n show: () => this.show()\r\n });\r\n this.tooltipChange.subscribe((value: any) => {\r\n if (!value) {\r\n this._tooltip.hide();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toggles an elements tooltip. This is considered a “manual” triggering of\r\n * the tooltip.\r\n */\r\n public toggle(): void {\r\n if (this.isOpen) {\r\n return this.hide();\r\n }\r\n\r\n this.show();\r\n }\r\n\r\n /**\r\n * Opens an elements tooltip. This is considered a “manual” triggering of\r\n * the tooltip.\r\n */\r\n public show(): void {\r\n if (this.isOpen || this.isDisabled || this._delayTimeoutId || !this.mdbTooltip) {\r\n return;\r\n }\r\n\r\n const showTooltip = () => this._tooltip\r\n .attach(TooltipContainerComponent)\r\n .to(this.container)\r\n .position({attachment: this.placement})\r\n .show({\r\n content: this.mdbTooltip,\r\n placement: this.placement\r\n });\r\n\r\n if (this.delay) {\r\n this._delayTimeoutId = setTimeout(() => { showTooltip(); }, this.delay);\r\n } else {\r\n showTooltip();\r\n }\r\n }\r\n\r\n /**\r\n * Closes an elements tooltip. This is considered a “manual” triggering of\r\n * the tooltip.\r\n */\r\n public hide(): void {\r\n if (this._delayTimeoutId) {\r\n clearTimeout(this._delayTimeoutId);\r\n this._delayTimeoutId = undefined;\r\n }\r\n\r\n if (!this._tooltip.isShown) {\r\n return;\r\n }\r\n\r\n this._tooltip.instance.classMap.in = false;\r\n setTimeout(() => {\r\n this._tooltip.hide();\r\n }, this.fadeDuration);\r\n }\r\n\r\n public dispose() {\r\n this._tooltip.dispose();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._tooltip.dispose();\r\n }\r\n }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { TooltipContainerComponent } from './tooltip.component';\r\nimport { TooltipDirective } from './tooltip.directive';\r\nimport { TooltipConfig } from './tooltip.service';\r\nimport { ComponentLoaderFactory } from '../utils/component-loader';\r\nimport { PositioningService } from '../utils/positioning';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [TooltipDirective, TooltipContainerComponent],\r\n exports: [TooltipDirective],\r\n entryComponents: [TooltipContainerComponent]\r\n})\r\nexport class MDBTooltipModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: MDBTooltipModule,\r\n providers: [TooltipConfig, ComponentLoaderFactory, PositioningService]\r\n };\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n/** Default values provider for tooltip */\r\n@Injectable()\r\nexport class TooltipConfig {\r\n /** tooltip placement, supported positions: 'top', 'bottom', 'left', 'right' */\r\n public placement = 'top';\r\n /** array of event names which triggers tooltip opening */\r\n public triggers = 'hover focus';\r\n /** a selector specifying the element the tooltip should be appended to. Currently only supports \"body\" */\r\n public container: string;\r\n}\r\n","// todo: add delay support\r\n// todo: merge events onShow, onShown, etc...\r\n// todo: add global positioning configuration?\r\nimport {\r\n ApplicationRef,\r\n ComponentFactory,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n NgZone,\r\n Provider,\r\n ReflectiveInjector,\r\n Renderer,\r\n TemplateRef,\r\n Type,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport { PositioningOptions, PositioningService } from '../positioning';\r\nimport { listenToTriggers } from '../triggers';\r\nimport { ContentRef } from './content-ref.class';\r\n\r\nexport interface ListenOptions {\r\n target?: ElementRef;\r\n triggers?: string;\r\n // show?: Function;\r\n show?: Function | any;\r\n // hide?: Function;\r\n hide?: Function | any;\r\n toggle?: Function;\r\n}\r\n\r\nexport class ComponentLoader<T> {\r\n public onBeforeShow: EventEmitter<any> = new EventEmitter();\r\n public onShown: EventEmitter<any> = new EventEmitter();\r\n public onBeforeHide: EventEmitter<any> = new EventEmitter();\r\n public onHidden: EventEmitter<any> = new EventEmitter();\r\n\r\n public instance: T;\r\n // public _componentRef: ComponentRef<T>;\r\n public _componentRef: ComponentRef<T> | any;\r\n\r\n private _providers: Provider[] = [];\r\n private _componentFactory: ComponentFactory<T>;\r\n private _zoneSubscription: any;\r\n // private _contentRef: ContentRef;\r\n private _contentRef: ContentRef | any;\r\n // private _innerComponent: ComponentRef<T>;\r\n private _innerComponent: ComponentRef<T> | any ;\r\n\r\n private _unregisterListenersFn: Function;\r\n\r\n public get isShown(): boolean {\r\n return !!this._componentRef;\r\n }\r\n\r\n /**\r\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\r\n */\r\n private attachment: string;\r\n\r\n /**\r\n * A selector specifying the element the popover should be appended to.\r\n * Currently only supports \"body\".\r\n */\r\n private container: string | ElementRef | any;\r\n\r\n /**\r\n * Specifies events that should trigger. Supports a space separated list of\r\n * event names.\r\n */\r\n private triggers: string;\r\n\r\n /**\r\n * Do not use this directly, it should be instanced via\r\n * `ComponentLoadFactory.attach`\r\n * @internal\r\n */\r\n // tslint:disable-next-line\r\n public constructor(private _viewContainerRef: ViewContainerRef,\r\n private _renderer: Renderer,\r\n private _elementRef: ElementRef,\r\n private _injector: Injector,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _ngZone: NgZone,\r\n private _applicationRef: ApplicationRef,\r\n private _posService: PositioningService) {\r\n }\r\n\r\n public attach(compType: Type<T>): ComponentLoader<T> {\r\n this._componentFactory = this._componentFactoryResolver\r\n .resolveComponentFactory<T>(compType);\r\n return this;\r\n }\r\n\r\n // todo: add behaviour: to target element, `body`, custom element\r\n public to(container?: string): ComponentLoader<T> {\r\n this.container = container || this.container;\r\n return this;\r\n }\r\n\r\n public position(opts?: PositioningOptions | any): ComponentLoader<T> {\r\n this.attachment = opts.attachment || this.attachment;\r\n this._elementRef = opts.target as ElementRef || this._elementRef;\r\n return this;\r\n }\r\n\r\n public provide(provider: Provider): ComponentLoader<T> {\r\n this._providers.push(provider);\r\n return this;\r\n }\r\n\r\n // todo: appendChild to element or document.querySelector(this.container)\r\n public show(opts: { content?: string | TemplateRef<any>, [key: string]: any } = {}): ComponentRef<T> {\r\n this._subscribePositioning();\r\n this._innerComponent = null;\r\n\r\n if (!this._componentRef) {\r\n this.onBeforeShow.emit();\r\n this._contentRef = this._getContentRef(opts.content);\r\n const injector = ReflectiveInjector.resolveAndCreate(this._providers, this._injector);\r\n\r\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\r\n this._applicationRef.attachView(this._componentRef.hostView);\r\n // this._componentRef = this._viewContainerRef\r\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\r\n this.instance = this._componentRef.instance;\r\n\r\n Object.assign(this._componentRef.instance, opts);\r\n\r\n if (this.container instanceof ElementRef) {\r\n this.container.nativeElement\r\n .appendChild(this._componentRef.location.nativeElement);\r\n }\r\n\r\n if (this.container === 'body' && typeof document !== 'undefined') {\r\n // document.querySelector(this.container as string)\r\n document.querySelector(this.container as string | any)\r\n .appendChild(this._componentRef.location.nativeElement);\r\n }\r\n\r\n if (!this.container && this._elementRef && this._elementRef.nativeElement.parentElement) {\r\n this._elementRef.nativeElement.parentElement\r\n .appendChild(this._componentRef.location.nativeElement);\r\n }\r\n\r\n // we need to manually invoke change detection since events registered\r\n // via\r\n // Renderer::listen() are not picked up by change detection with the\r\n // OnPush strategy\r\n if (this._contentRef.componentRef) {\r\n this._innerComponent = this._contentRef.componentRef.instance;\r\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\r\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\r\n }\r\n this._componentRef.changeDetectorRef.markForCheck();\r\n this._componentRef.changeDetectorRef.detectChanges();\r\n this.onShown.emit(this._componentRef.instance);\r\n }\r\n return this._componentRef;\r\n }\r\n\r\n public hide(): ComponentLoader<T> {\r\n if (!this._componentRef) {\r\n return this;\r\n }\r\n\r\n this.onBeforeHide.emit(this._componentRef.instance);\r\n\r\n const componentEl = this._componentRef.location.nativeElement;\r\n componentEl.parentNode.removeChild(componentEl);\r\n if (this._contentRef.componentRef) {\r\n this._contentRef.componentRef.destroy();\r\n }\r\n this._componentRef.destroy();\r\n if (this._viewContainerRef && this._contentRef.viewRef) {\r\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\r\n }\r\n // this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._componentRef.hostView));\r\n //\r\n // if (this._contentRef.viewRef && this._viewContainerRef.indexOf(this._contentRef.viewRef) !== -1) {\r\n // this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\r\n // }\r\n\r\n this._contentRef = null;\r\n this._componentRef = null;\r\n\r\n this.onHidden.emit();\r\n return this;\r\n }\r\n\r\n public toggle(): void | any {\r\n if (this.isShown) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n this.show();\r\n }\r\n\r\n public dispose(): void {\r\n if (this.isShown) {\r\n this.hide();\r\n }\r\n\r\n this._unsubscribePositioning();\r\n\r\n if (this._unregisterListenersFn) {\r\n this._unregisterListenersFn();\r\n }\r\n }\r\n\r\n public listen(listenOpts: ListenOptions): ComponentLoader<T> {\r\n this.triggers = listenOpts.triggers || this.triggers;\r\n\r\n listenOpts.target = listenOpts.target || this._elementRef;\r\n listenOpts.show = listenOpts.show || (() => this.show());\r\n listenOpts.hide = listenOpts.hide || (() => this.hide());\r\n listenOpts.toggle = listenOpts.toggle || (() => this.isShown\r\n ? listenOpts.hide()\r\n : listenOpts.show());\r\n\r\n this._unregisterListenersFn = listenToTriggers(\r\n this._renderer,\r\n listenOpts.target.nativeElement,\r\n this.triggers,\r\n listenOpts.show,\r\n listenOpts.hide,\r\n listenOpts.toggle);\r\n\r\n return this;\r\n }\r\n\r\n public getInnerComponent(): ComponentRef<T> {\r\n return this._innerComponent;\r\n }\r\n\r\n private _subscribePositioning(): void | any {\r\n if (this._zoneSubscription || !this.attachment) {\r\n return;\r\n }\r\n\r\n this._zoneSubscription = this._ngZone\r\n .onStable.subscribe(() => {\r\n if (!this._componentRef) {\r\n return;\r\n }\r\n this._posService.position({\r\n element: this._componentRef.location,\r\n target: this._elementRef,\r\n attachment: this.attachment,\r\n appendToBody: this.container === 'body'\r\n });\r\n });\r\n }\r\n\r\n private _unsubscribePositioning(): void | any {\r\n if (!this._zoneSubscription) {\r\n return;\r\n }\r\n this._zoneSubscription.unsubscribe();\r\n this._zoneSubscription = null;\r\n }\r\n\r\n private _getContentRef(content: string | TemplateRef<any> | any): ContentRef {\r\n if (!content) {\r\n return new ContentRef([]);\r\n }\r\n\r\n if (content instanceof TemplateRef) {\r\n if (this._viewContainerRef) {\r\n const viewRef = this._viewContainerRef.createEmbeddedView<TemplateRef<T>>(content);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n const viewRef = content.createEmbeddedView({});\r\n this._applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n\r\n if (typeof content === 'function') {\r\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);\r\n const modalContentInjector = ReflectiveInjector.resolveAndCreate([...this._providers, content], this._injector);\r\n const componentRef = contentCmptFactory.create(modalContentInjector);\r\n this._applicationRef.attachView(componentRef.hostView);\r\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\r\n }\r\n return new ContentRef([[this._renderer.createText(null, `${content}`)]]);\r\n }\r\n }\r\n","import {\r\n Injectable, NgZone, ViewContainerRef, ComponentFactoryResolver, Injector,\r\n Renderer, ElementRef, ApplicationRef\r\n} from '@angular/core';\r\nimport { ComponentLoader } from './component-loader.class';\r\nimport { PositioningService } from '../positioning';\r\n\r\n@Injectable()\r\nexport class ComponentLoaderFactory {\r\n\r\n public constructor(private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _ngZone: NgZone,\r\n private _injector: Injector,\r\n private _posService: PositioningService,\r\n private _applicationRef: ApplicationRef) {\r\n }\r\n\r\n /**\r\n *\r\n * @param _elementRef\r\n * @param _viewContainerRef\r\n * @param _renderer\r\n * @returns {ComponentLoader}\r\n */\r\n public createLoader<T>(_elementRef: ElementRef, _viewContainerRef: ViewContainerRef, _renderer: Renderer): ComponentLoader<T> {\r\n return new ComponentLoader<T>(_viewContainerRef, _renderer, _elementRef,\r\n this._injector, this._componentFactoryResolver, this._ngZone, this._applicationRef,\r\n this._posService);\r\n }\r\n }\r\n","/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\n\r\n import { ComponentRef, ViewRef } from '@angular/core';\r\n\r\n export class ContentRef {\r\n public nodes: any[];\r\n public viewRef?: ViewRef;\r\n public componentRef?: ComponentRef<any>;\r\n\r\n public constructor( nodes: any[], viewRef?: ViewRef, componentRef?: ComponentRef<any>) {\r\n this.nodes = nodes;\r\n this.viewRef = viewRef;\r\n this.componentRef = componentRef;\r\n }\r\n }\r\n","export { ComponentLoader } from './component-loader.class';\r\nexport { ComponentLoaderFactory } from './component-loader.factory';\r\nexport { ContentRef } from './content-ref.class';\r\n","/*tslint:disable:no-invalid-this */\r\nexport function OnChange(): any {\r\n const sufix = 'Change';\r\n return function OnChangeHandler(target: any, propertyKey: string): void {\r\n const _key = ` __${propertyKey}Value`;\r\n Object.defineProperty(target, propertyKey, {\r\n get(): any { return this[_key]; },\r\n set(value: any): void {\r\n const prevValue = this[_key];\r\n this[_key] = value;\r\n if (prevValue !== value && this[propertyKey + sufix]) {\r\n this[propertyKey + sufix].emit(value);\r\n }\r\n }\r\n });\r\n };\r\n}\r\n/* tslint:enable */\r\n","/*tslint:disable */\r\n/**\r\n * @license\r\n * Copyright Google Inc. All Rights Reserved.\r\n *\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://angular.io/license\r\n */\r\n\r\n/**\r\n * JS version of browser APIs. This library can only run in the browser.\r\n */\r\n var win = typeof window !== 'undefined' && window || <any>{};\r\n\r\n export {win as window};\r\n export var document = win.document;\r\n export var location = win.location;\r\n export var gc = win['gc'] ? () => win['gc']() : (): any => null;\r\n export var performance = win['performance'] ? win['performance'] : null;\r\n export const Event = win['Event'];\r\n export const MouseEvent = win['MouseEvent'];\r\n export const KeyboardEvent = win['KeyboardEvent'];\r\n export const EventTarget = win['EventTarget'];\r\n export const History = win['History'];\r\n export const Location = win['Location'];\r\n export const EventListener = win['EventListener'];\r\n","export { OnChange } from './decorators';\r\nexport { LinkedList } from './linked-list.class';\r\nexport { isBs3 } from './ng2-bootstrap-config';\r\nexport { Trigger } from './trigger.class';\r\nexport { Utils } from './utils.class';\r\n","export class LinkedList <T> {\r\n\r\n // public length: = 0;\r\n public length: any = 0;\r\n protected head: any;\r\n protected tail: any;\r\n protected current: any;\r\n protected asArray: T[] = [];\r\n\r\n protected getNode(position: number): any {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n let current = this.head;\r\n\r\n for (let index = 0; index < position; index++) {\r\n current = current.next;\r\n }\r\n return current;\r\n }\r\n\r\n protected createInternalArrayRepresentation(): void {\r\n const outArray: any[] = [];\r\n let current = this.head;\r\n\r\n while (current) {\r\n outArray.push(current.value);\r\n current = current.next;\r\n }\r\n this.asArray = outArray;\r\n }\r\n\r\n // public get(position: number): T {\r\n public get(position: number): T | any {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n return void 0;\r\n }\r\n\r\n let current = this.head;\r\n\r\n for (let index = 0; index < position; index++) {\r\n current = current.next;\r\n }\r\n return current.value;\r\n }\r\n\r\n public add(value: T, position: number = this.length): void {\r\n if (position < 0 || position > this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n const node = {\r\n value: value as any,\r\n next: undefined as any,\r\n previous: undefined as any\r\n };\r\n\r\n if (this.length === 0) {\r\n this.head = node;\r\n this.tail = node;\r\n this.current = node;\r\n } else {\r\n if (position === 0) {\r\n // first node\r\n node.next = this.head;\r\n this.head.previous = node;\r\n this.head = node;\r\n } else if (position === this.length) {\r\n // last node\r\n this.tail.next = node;\r\n node.previous = this.tail;\r\n this.tail = node;\r\n } else {\r\n // node in middle\r\n const currentPreviousNode = this.getNode(position - 1);\r\n const currentNextNode = currentPreviousNode.next;\r\n\r\n currentPreviousNode.next = node;\r\n currentNextNode.previous = node;\r\n\r\n node.previous = currentPreviousNode;\r\n node.next = currentNextNode;\r\n }\r\n\r\n }\r\n this.length++;\r\n this.createInternalArrayRepresentation();\r\n }\r\n\r\n public remove(position: number = 0): void {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n if (position === 0) {\r\n // first node\r\n this.head = this.head.next;\r\n\r\n if (this.head) {\r\n // there is no second node\r\n this.head.previous = undefined;\r\n } else {\r\n // there is no second node\r\n this.tail = undefined;\r\n }\r\n } else if (position === this.length - 1) {\r\n // last node\r\n this.tail = this.tail.previous;\r\n this.tail.next = undefined;\r\n } else {\r\n // middle node\r\n const removedNode = this.getNode(position);\r\n removedNode.next.previous = removedNode.previous;\r\n removedNode.previous.next = removedNode.next;\r\n }\r\n\r\n this.length--;\r\n this.createInternalArrayRepresentation();\r\n }\r\n\r\n public set(position: number, value: T): void {\r\n if (this.length === 0 || position < 0 || position >= this.length) {\r\n throw new Error('Position is out of the list');\r\n }\r\n\r\n const node = this.getNode(position);\r\n node.value = value;\r\n this.createInternalArrayRepresentation();\r\n }\r\n\r\n public toArray(): T[] {\r\n return this.asArray;\r\n }\r\n\r\n public findAll(fn: any): any[] {\r\n let current = this.head;\r\n const result: any[] = [];\r\n for (let index = 0; index < this.length; index++) {\r\n if (fn(current.value, index)) {\r\n result.push({index, value: current.value});\r\n }\r\n current = current.next;\r\n }\r\n return result;\r\n }\r\n // Array methods overriding start\r\n public push(...args: T[]): number {\r\n args.forEach((arg: any) => {\r\n this.add(arg);\r\n });\r\n return this.length;\r\n }\r\n\r\n // public pop(): T {\r\n public pop(): T | any {\r\n if (this.length === 0) {\r\n return undefined;\r\n }\r\n const last = this.tail;\r\n this.remove(this.length - 1);\r\n return last.value;\r\n }\r\n\r\n public unshift(...args: T[]): number {\r\n args.reverse();\r\n args.forEach((arg: any) => {\r\n this.add(arg, 0);\r\n });\r\n return this.length;\r\n }\r\n\r\n // public shift(): T {\r\n public shift(): T | any {\r\n if (this.length === 0) {\r\n return undefined;\r\n }\r\n const lastItem = this.head.value;\r\n this.remove();\r\n return lastItem;\r\n }\r\n\r\n public forEach(fn: any): void {\r\n let current = this.head;\r\n for (let index = 0; index < this.length; index++) {\r\n fn(current.value, index);\r\n current = current.next;\r\n }\r\n }\r\n\r\n public indexOf(value: T): number {\r\n let current = this.head;\r\n let position = 0;\r\n\r\n for (let index = 0; index < this.length; index++) {\r\n if (current.value === value) {\r\n\r\n position = index;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n return position;\r\n }\r\n\r\n public some(fn: any): boolean {\r\n let current = this.head;\r\n let result = false;\r\n while (current && !result) {\r\n if (fn(current.value)) {\r\n result = true;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n return result;\r\n }\r\n\r\n public every(fn: any): boolean {\r\n let current = this.head;\r\n let result = true;\r\n while (current && result) {\r\n if (!fn(current.value)) {\r\n result = false;\r\n }\r\n current = current.next;\r\n }\r\n return result;\r\n }\r\n\r\n public toString(): string {\r\n return '[Linked List]';\r\n }\r\n\r\n // public find(fn: any): T {\r\n public find(fn: any): T | any {\r\n let current = this.head;\r\n // let result: T;\r\n let result: T | any;\r\n for (let index = 0; index < this.length; index++) {\r\n if (fn(current.value, index)) {\r\n result = current.value;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n return result;\r\n }\r\n\r\n public findIndex(fn: any): number {\r\n let current = this.head;\r\n // let result: number;\r\n let result: number | any;\r\n for (let index = 0; index < this.length; index++) {\r\n if (fn(current.value, index)) {\r\n result = index;\r\n break;\r\n }\r\n current = current.next;\r\n }\r\n return result;\r\n }\r\n\r\n // Array methods overriding END\r\n}\r\n","import { window } from './facade/browser';\r\n\r\nexport function isBs3(): boolean {\r\n return window.__theme === 'bs4';\r\n}\r\n","export { positionElements, Positioning } from './ng-positioning'\r\nexport { PositioningService, PositioningOptions } from './positioning.service';\r\n","/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\n\r\n // previous version:\r\n // https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\r\n // tslint:disable\r\n export class Positioning {\r\n public position(element: HTMLElement, round = true): ClientRect {\r\n let elPosition: ClientRect;\r\n let parentOffset: ClientRect = {width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0};\r\n\r\n if (this.getStyle(element, 'position') === 'fixed') {\r\n const bcRect = element.getBoundingClientRect();\r\n elPosition = {\r\n width: bcRect.width,\r\n height: bcRect.height,\r\n top: bcRect.top,\r\n bottom: bcRect.bottom,\r\n left: bcRect.left,\r\n right: bcRect.right\r\n };\r\n } else {\r\n const offsetParentEl = this.offsetParent(element);\r\n\r\n elPosition = this.offset(element, false);\r\n\r\n if (offsetParentEl !== document.documentElement) {\r\n parentOffset = this.offset(offsetParentEl, false);\r\n }\r\n\r\n parentOffset.top += offsetParentEl.clientTop;\r\n parentOffset.left += offsetParentEl.clientLeft;\r\n }\r\n\r\n elPosition.top -= parentOffset.top;\r\n elPosition.bottom -= parentOffset.top;\r\n elPosition.left -= parentOffset.left;\r\n elPosition.right -= parentOffset.left;\r\n\r\n if (round) {\r\n elPosition.top = Math.round(elPosition.top);\r\n elPosition.bottom = Math.round(elPosition.bottom);\r\n elPosition.left = Math.round(elPosition.left);\r\n elPosition.right = Math.round(elPosition.right);\r\n }\r\n\r\n return elPosition;\r\n }\r\n\r\n public offset(element: HTMLElement, round = true): ClientRect {\r\n const elBcr = element.getBoundingClientRect();\r\n const viewportOffset = {\r\n top: window.pageYOffset - document.documentElement.clientTop,\r\n left: window.pageXOffset - document.documentElement.clientLeft\r\n };\r\n\r\n let elOffset = {\r\n height: elBcr.height || element.offsetHeight,\r\n width: elBcr.width || element.offsetWidth,\r\n top: elBcr.top + viewportOffset.top,\r\n bottom: elBcr.bottom + viewportOffset.top,\r\n left: elBcr.left + viewportOffset.left,\r\n right: elBcr.right + viewportOffset.left\r\n };\r\n\r\n if (round) {\r\n elOffset.height = Math.round(elOffset.height);\r\n elOffset.width = Math.round(elOffset.width);\r\n elOffset.top = Math.round(elOffset.top);\r\n elOffset.bottom = Math.round(elOffset.bottom);\r\n elOffset.left = Math.round(elOffset.left);\r\n elOffset.right = Math.round(elOffset.right);\r\n }\r\n\r\n return elOffset;\r\n }\r\n\r\n public positionElements(hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean):\r\n ClientRect {\r\n const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\r\n const shiftWidth: any = {\r\n left: hostElPosition.left,\r\n center: hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2,\r\n right: hostElPosition.left + hostElPosition.width\r\n };\r\n const shiftHeight: any = {\r\n top: hostElPosition.top,\r\n center: hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2,\r\n bottom: hostElPosition.top + hostElPosition.height\r\n };\r\n const targetElBCR = targetElement.getBoundingClientRect();\r\n const placementPrimary = placement.split(' ')[0] || 'top';\r\n const placementSecondary = placement.split(' ')[1] || 'center';\r\n\r\n let targetElPosition: ClientRect = {\r\n height: targetElBCR.height || targetElement.offsetHeight,\r\n width: targetElBCR.width || targetElement.offsetWidth,\r\n top: 0,\r\n bottom: targetElBCR.height || targetElement.offsetHeight,\r\n left: 0,\r\n right: targetElBCR.width || targetElement.offsetWidth\r\n };\r\n\r\n switch (placementPrimary) {\r\n case 'top':\r\n targetElPosition.top = hostElPosition.top - targetElement.offsetHeight;\r\n targetElPosition.bottom += hostElPosition.top - targetElement.offsetHeight;\r\n targetElPosition.left = shiftWidth[placementSecondary];\r\n targetElPosition.right += shiftWidth[placementSecondary];\r\n break;\r\n case 'bottom':\r\n targetElPosition.top = shiftHeight[placementPrimary];\r\n targetElPosition.bottom += shiftHeight[placementPrimary];\r\n targetElPosition.left = shiftWidth[placementSecondary];\r\n targetElPosition.right += shiftWidth[placementSecondary];\r\n break;\r\n case 'left':\r\n targetElPosition.top = shiftHeight[placementSecondary];\r\n targetElPosition.bottom += shiftHeight[placementSecondary];\r\n targetElPosition.left = hostElPosition.left - targetElement.offsetWidth;\r\n targetElPosition.right += hostElPosition.left - targetElement.offsetWidth;\r\n break;\r\n case 'right':\r\n targetElPosition.top = shiftHeight[placementSecondary];\r\n targetElPosition.bottom += shiftHeight[placementSecondary];\r\n targetElPosition.left = shiftWidth[placementPrimary];\r\n targetElPosition.right += shiftWidth[placementPrimary];\r\n break;\r\n }\r\n\r\n targetElPosition.top = Math.round(targetElPosition.top);\r\n targetElPosition.bottom = Math.round(targetElPosition.bottom);\r\n targetElPosition.left = Math.round(targetElPosition.left);\r\n targetElPosition.right = Math.round(targetElPosition.right);\r\n\r\n return targetElPosition;\r\n }\r\n\r\n private getStyle(element: HTMLElement, prop: string): string { return (window.getComputedStyle(element) as any)[prop]; }\r\n\r\n private isStaticPositioned(element: HTMLElement): boolean {\r\n return (this.getStyle(element, 'position') || 'static') === 'static';\r\n }\r\n\r\n private offsetParent(element: HTMLElement): HTMLElement {\r\n let offsetParentEl = <HTMLElement>element.offsetParent || document.documentElement;\r\n\r\n while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\r\n offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;\r\n }\r\n\r\n return offsetParentEl || document.documentElement;\r\n }\r\n }\r\n\r\n const positionService = new Positioning();\r\n\r\n export function positionElements(\r\n hostElement: HTMLElement, targetElement: HTMLElement, placement: string, appendToBody?: boolean): void {\r\n const pos = positionService.positionElements(hostElement, targetElement, placement, appendToBody);\r\n\r\n targetElement.style.top = `${pos.top}px`;\r\n targetElement.style.left = `${pos.left}px`;\r\n }\r\n","import { Injectable, ElementRef } from '@angular/core';\r\nimport { positionElements } from './ng-positioning';\r\n\r\nexport interface PositioningOptions {\r\n /** The DOM element, ElementRef, or a selector string of an element which will be moved */\r\n element?: HTMLElement | ElementRef | string;\r\n\r\n /** The DOM element, ElementRef, or a selector string of an element which the element will be attached to */\r\n target?: HTMLElement | ElementRef | string;\r\n\r\n /**\r\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\r\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\r\n * not yet supported:\r\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\r\n * - horiz-attachment can be any of 'left', 'center', 'right'\r\n */\r\n // attachment?: string;\r\n attachment?: string | any;\r\n\r\n /** A string similar to `attachment`. The one difference is that, if it's not provided,\r\n `targetAttachment` will assume the mirror image of `attachment`. */\r\n targetAttachment?: string;\r\n\r\n /** A string of the form 'vert-offset horiz-offset'\r\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\r\n */\r\n offset?: string;\r\n\r\n /** A string similar to `offset`, but referring to the offset of the target */\r\n targetOffset?: string;\r\n\r\n /** If true component will be attached to body */\r\n appendToBody?: boolean;\r\n }\r\n\r\n @Injectable()\r\n export class PositioningService {\r\n // public position(options: PositioningOptions): void {\r\n public position(options: PositioningOptions | any): void {\r\n const {element, target, attachment, appendToBody} = options;\r\n positionElements(\r\n this._getHtmlElement(target),\r\n this._getHtmlElement(element),\r\n attachment,\r\n appendToBody);\r\n }\r\n\r\n private _getHtmlElement(element: HTMLElement | ElementRef | string): HTMLElement {\r\n // it means that we got a selector\r\n if (typeof element === 'string') {\r\n return document.querySelector(element) as HTMLElement;\r\n }\r\n\r\n if (element instanceof ElementRef) {\r\n return element.nativeElement;\r\n }\r\n\r\n return element as HTMLElement;\r\n }\r\n }\r\n","/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\n\r\n export class Trigger {\r\n public open: string;\r\n public close?: string;\r\n\r\n public constructor(open: string, close?: string) {\r\n this.open = open;\r\n this.close = close || open;\r\n }\r\n\r\n public isManual(): boolean { return this.open === 'manual' || this.close === 'manual'; }\r\n }\r\n","/**\r\n * @copyright Valor Software\r\n * @copyright Angular ng-bootstrap team\r\n */\r\n import { Renderer } from '@angular/core';\r\n import { Trigger } from './trigger.class';\r\n\r\n const DEFAULT_ALIASES = {\r\n hover: ['mouseover', 'mouseout'],\r\n focus: ['focusin', 'focusout']\r\n };\r\n\r\n export function parseTriggers(triggers: string, aliases: any = DEFAULT_ALIASES): Trigger[] {\r\n const trimmedTriggers = (triggers || '').trim();\r\n\r\n if (trimmedTriggers.length === 0) {\r\n return [];\r\n }\r\n\r\n const parsedTriggers = trimmedTriggers.split(/\\s+/)\r\n .map((trigger: string) => trigger.split(':'))\r\n .map((triggerPair: string[]) => {\r\n const alias = aliases[triggerPair[0]] || triggerPair;\r\n return new Trigger(alias[0], alias[1]);\r\n });\r\n\r\n const manualTriggers = parsedTriggers\r\n .filter((triggerPair: Trigger) => triggerPair.isManual());\r\n\r\n if (manualTriggers.length > 1) {\r\n throw new Error('Triggers parse error: only one manual trigger is allowed');\r\n }\r\n\r\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\r\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\r\n }\r\n\r\n return parsedTriggers;\r\n }\r\n\r\n export function listenToTriggers(renderer: Renderer, target: any, triggers: string,\r\n showFn: Function, hideFn: Function, toggleFn: Function): Function {\r\n const parsedTriggers = parseTriggers(triggers);\r\n const listeners: any[] = [];\r\n\r\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\r\n return Function.prototype;\r\n }\r\n\r\n // parsedTriggers.forEach((trigger: Trigger) => {\r\n parsedTriggers.forEach((trigger: Trigger | any) => {\r\n if (trigger.open === trigger.close) {\r\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\r\n return;\r\n }\r\n\r\n listeners.push(\r\n renderer.listen(target, trigger.open, showFn),\r\n renderer.listen(target, trigger.close, hideFn));\r\n });\r\n\r\n return () => { listeners.forEach((unsubscribeFn: Function) => unsubscribeFn()); };\r\n }\r\n","import { window } from './facade/browser';\r\n\r\nexport class Utils {\r\n public static reflow(element: any): void {\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n\r\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\r\n public static getStyles(elem: any): any {\r\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n // IE throws on elements created in popups\r\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n let view = elem.ownerDocument.defaultView;\r\n\r\n if (!view || !view.opener) {\r\n view = window;\r\n }\r\n\r\n return view.getComputedStyle(elem);\r\n }\r\n}\r\n","export { WavesDirective } from './waves-effect.directive';\r\nexport { WavesModule } from './waves.module';\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n@Directive({\r\n selector: '[mdbWavesEffect]'\r\n})\r\nexport class WavesDirective {\r\n el: ElementRef;\r\n\r\n constructor(el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public click(event: any) {\r\n // event.stopPropagation();\r\n\r\n if (!this.el.nativeElement.classList.contains('disabled')) {\r\n\r\n const button = this.el.nativeElement;\r\n if (!button.classList.contains('waves-effect')) {\r\n button.className += ' waves-effect';\r\n }\r\n\r\n const xPos = event.clientX - button.getBoundingClientRect().left;\r\n const yPos = event.clientY - button.getBoundingClientRect().top;\r\n\r\n\r\n const tmp = document.createElement('div');\r\n tmp.className += 'waves-ripple waves-rippling';\r\n const ripple = button.appendChild(tmp);\r\n\r\n const top = yPos + 'px';\r\n const left = xPos + 'px';\r\n\r\n tmp.style.top = top;\r\n tmp.style.left = left;\r\n\r\n const scale = 'scale(' + ((button.clientWidth / 100) * 3) + ') translate(0,0)';\r\n\r\n tmp.style.webkitTransform = scale;\r\n tmp.style.transform = scale;\r\n tmp.style.opacity = '1';\r\n\r\n const duration = 750;\r\n\r\n tmp.style.webkitTransitionDuration = duration + 'ms';\r\n tmp.style.transitionDuration = duration + 'ms';\r\n\r\n\r\n this.removeRipple(button, ripple);\r\n }\r\n }\r\n\r\n removeRipple(button: any, ripple: any) {\r\n ripple.classList.remove('waves-rippling');\r\n\r\n setTimeout(() => {\r\n ripple.style.opacity = '0';\r\n\r\n setTimeout(() => {\r\n button.removeChild(ripple);\r\n }, 750);\r\n }, 200);\r\n\r\n\r\n\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { WavesDirective } from './waves-effect.directive';\r\n\r\n@NgModule({\r\n declarations: [WavesDirective],\r\n exports: [WavesDirective]\r\n})\r\n\r\nexport class WavesModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: WavesModule, providers: []};\r\n }\r\n}\r\n","module.exports = \"<div #body class=\\\"sb-item-body\\\" [style.height]=\\\"height\\\">\\r\\n <div class=\\\"card-body\\\">\\r\\n \\t<ng-content></ng-content>\\r\\n </div>\\r\\n</div>\"","import {Component, ElementRef, Renderer, ViewChild} from '@angular/core';\r\n\r\n@Component({\r\n exportAs: 'sbItemBody',\r\n selector: 'mdb-item-body',\r\n templateUrl: 'sb-item.body.html'\r\n})\r\nexport class SBItemBodyComponent {\r\n\r\n public height = '0';\r\n\r\n @ViewChild('body') bodyEl: ElementRef;\r\n\r\n constructor(private renderer: Renderer) {}\r\n\r\n toggle(collapsed: boolean) {\r\n let height = '0';\r\n if (!collapsed) {\r\n this.renderer.setElementStyle(this.bodyEl.nativeElement, 'height', 'auto');\r\n height = this.bodyEl.nativeElement.offsetHeight + 'px';\r\n this.renderer.setElementStyle(this.bodyEl.nativeElement, 'height', '0');\r\n }\r\n setTimeout(() => this.renderer.setElementStyle(this.bodyEl.nativeElement, 'height', height), 50);\r\n }\r\n}\r\n","module.exports = \"<div class=\\\"card-header\\\">\\r\\n <a role=\\\"button\\\" (click)=\\\"toggleClick($event)\\\">\\r\\n <h5 class=\\\"mb-0\\\">\\r\\n <ng-content></ng-content>\\r\\n <i class=\\\"fa fa-angle-down rotate-icon\\\"></i>\\r\\n </h5>\\r\\n </a>\\r\\n</div>\"","import {Component} from '@angular/core';\r\nimport {SBItemComponent} from './sb-item';\r\n\r\n@Component({\r\n exportAs: 'sbItemHead',\r\n selector: 'mdb-item-head',\r\n templateUrl: 'sb-item.head.html'\r\n})\r\nexport class SBItemHeadComponent {\r\n\r\n constructor(private sbItem: SBItemComponent) {}\r\n\r\n toggleClick(event: any) {\r\n event.preventDefault();\r\n this.sbItem.collapsed = !this.sbItem.collapsed;\r\n this.sbItem.toggle(this.sbItem.collapsed);\r\n }\r\n}\r\n","module.exports = \"<div class=\\\"card\\\" [ngClass]=\\\"{'is-collapsed': collapsed, 'active': !collapsed}\\\">\\r\\n <ng-content></ng-content>\\r\\n</div>\"","import {Component, ContentChild, Input, AfterViewInit} from '@angular/core';\r\nimport {SBItemBodyComponent} from './sb-item.body';\r\nimport {sbConfig} from './sb.config';\r\n\r\n@Component({\r\n exportAs: 'sbItem',\r\n selector: 'mdb-item',\r\n templateUrl: 'sb-item.html'\r\n})\r\nexport class SBItemComponent implements AfterViewInit {\r\n\r\n private squeezebox: any;\r\n\r\n @Input() public collapsed = true;\r\n\r\n @ContentChild(SBItemBodyComponent) body: SBItemBodyComponent;\r\n\r\n constructor() {\r\n this.squeezebox = sbConfig.serviceInstance;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.body.toggle(this.collapsed);\r\n }\r\n toggle(collapsed: boolean) {\r\n this.squeezebox.didItemToggled(this);\r\n this.applyToggle(collapsed);\r\n }\r\n\r\n applyToggle(collapsed: boolean) {\r\n this.collapsed = collapsed;\r\n this.body.toggle(collapsed);\r\n }\r\n\r\n}\r\n","export const sbConfig = {\r\n serviceInstance: new Object()\r\n}","module.exports = \"<div class=\\\"accordion\\\">\\r\\n <ng-content></ng-content>\\r\\n</div>\"","import {Component, Input, ContentChildren, QueryList, forwardRef} from '@angular/core';\r\nimport {SBItemComponent} from './sb-item';\r\nimport {sbConfig} from './sb.config';\r\n\r\n@Component({\r\n exportAs: 'squeezebox',\r\n selector: 'mdb-squeezebox',\r\n templateUrl: 'squeezebox.html'\r\n})\r\nexport class SqueezeBoxComponent {\r\n\r\n @Input() multiple = true;\r\n\r\n @ContentChildren(forwardRef(() => SBItemComponent)) items: QueryList<SBItemComponent>;\r\n\r\n constructor() {\r\n sbConfig.serviceInstance = this;\r\n }\r\n\r\n didItemToggled(item: SBItemComponent) {\r\n // on not multiple, it will collpase the rest of items\r\n if (!this.multiple) {\r\n this.items.toArray().forEach(function(i) {\r\n if (i !== item) {\r\n i.applyToggle(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {SqueezeBoxComponent} from './components/squeezebox';\r\nimport {SBItemComponent} from './components/sb-item';\r\nimport {SBItemHeadComponent} from './components/sb-item.head';\r\nimport {SBItemBodyComponent} from './components/sb-item.body';\r\n\r\nexport const SQUEEZEBOX_COMPONENTS = [SqueezeBoxComponent, SBItemComponent, SBItemHeadComponent, SBItemBodyComponent];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [SQUEEZEBOX_COMPONENTS],\r\n exports: [SQUEEZEBOX_COMPONENTS]\r\n})\r\nexport class SqueezeBoxModule {}\r\n\r\nexport * from './components/sb-item';\r\nexport * from './components/sb-item.head';\r\nexport * from './components/sb-item.body';\r\nexport * from './components/squeezebox';\r\n","/**\r\n * The OverlayContainer is the container in which all overlays will load.\r\n * It should be provided in the root component to ensure it is properly shared.\r\n */\r\nexport class OverlayContainer {\r\n private _containerElement: HTMLElement;\r\n\r\n /**\r\n * This method returns the overlay container element. It will lazily\r\n * create the element the first time it is called to facilitate using\r\n * the container in non-browser environments.\r\n * @returns the container element\r\n */\r\n getContainerElement(): HTMLElement {\r\n if (!this._containerElement) { this._createContainer(); }\r\n return this._containerElement;\r\n }\r\n\r\n /**\r\n * Create the overlay container element, which is simply a div\r\n * with the 'cdk-overlay-container' class on the document body.\r\n */\r\n private _createContainer(): void {\r\n const container = document.createElement('div');\r\n container.classList.add('overlay-container');\r\n document.body.appendChild(container);\r\n this._containerElement = container;\r\n }\r\n}\r\n","import {ComponentRef} from '@angular/core';\r\nimport {BasePortalHost, ComponentPortal} from '../portal/portal';\r\n\r\n/**\r\n * Reference to an overlay that has been created with the Overlay service.\r\n * Used to manipulate or dispose of said overlay.\r\n */\r\nexport class OverlayRef {\r\n constructor(\r\n private _portalHost: BasePortalHost) { }\r\n\r\n attach(portal: ComponentPortal<any>, newestOnTop: boolean): ComponentRef<any> {\r\n return this._portalHost.attach(portal, newestOnTop);\r\n }\r\n\r\n /**\r\n * Detaches an overlay from a portal.\r\n * @returns Resolves when the overlay has been detached.\r\n */\r\n detach() {\r\n return this._portalHost.detach();\r\n }\r\n}\r\n","import { ComponentFactoryResolver, Injectable, ApplicationRef } from '@angular/core';\r\nimport { DomPortalHost } from '../portal/dom-portal-host';\r\nimport { OverlayRef } from './overlay-ref';\r\n\r\nimport { OverlayContainer } from './overlay-container';\r\nimport { ToastContainerDirective } from '../toast/toast.directive';\r\n\r\n\r\n/**\r\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\r\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\r\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\r\n * of re-usable components rather than developers building end-user applications.\r\n *\r\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\r\n */\r\n @Injectable()\r\n export class Overlay {\r\n private _paneElements: any = {};\r\n constructor(private _overlayContainer: OverlayContainer,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef) {}\r\n /**\r\n * Creates an overlay.\r\n * @returns A reference to the created overlay.\r\n */\r\n create(positionClass: string, overlayContainer?: ToastContainerDirective): OverlayRef {\r\n // get existing pane if possible\r\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\r\n }\r\n\r\n getPaneElement(positionClass: string, overlayContainer?: ToastContainerDirective): HTMLElement {\r\n if (!this._paneElements[positionClass]) {\r\n this._paneElements[positionClass] = this._createPaneElement(positionClass, overlayContainer);\r\n }\r\n return this._paneElements[positionClass];\r\n }\r\n\r\n /**\r\n * Creates the DOM element for an overlay and appends it to the overlay container.\r\n * @returns Newly-created pane element\r\n */\r\n private _createPaneElement(positionClass: string, overlayContainer?: ToastContainerDirective): HTMLElement {\r\n const pane = document.createElement('div');\r\n pane.id = 'toast-container';\r\n pane.classList.add(positionClass);\r\n\r\n if (!overlayContainer) {\r\n this._overlayContainer.getContainerElement().appendChild(pane);\r\n } else {\r\n overlayContainer.getContainerElement().appendChild(pane);\r\n }\r\n return pane;\r\n }\r\n\r\n /**\r\n * Create a DomPortalHost into which the overlay content can be loaded.\r\n * @param pane The DOM element to turn into a portal host.\r\n * @returns A portal host for the given DOM element.\r\n */\r\n private _createPortalHost(pane: HTMLElement): DomPortalHost {\r\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\r\n }\r\n\r\n /**\r\n * Creates an OverlayRef for an overlay in the given DOM element.\r\n * @param pane DOM element for the overlay\r\n */\r\n private _createOverlayRef(pane: HTMLElement): OverlayRef {\r\n return new OverlayRef(this._createPortalHost(pane));\r\n }\r\n}\r\n\r\n\r\n/** Providers for Overlay and its related injectables. */\r\nexport const OVERLAY_PROVIDERS = [\r\n Overlay,\r\n OverlayContainer,\r\n];\r\n","import {\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n ApplicationRef,\r\n} from '@angular/core';\r\nimport { BasePortalHost, ComponentPortal } from './portal';\r\n\r\n\r\n/**\r\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\r\n * application context.\r\n *\r\n * This is the only part of the portal core that directly touches the DOM.\r\n */\r\nexport class DomPortalHost extends BasePortalHost {\r\n constructor(\r\n private _hostDomElement: Element,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef) {\r\n super();\r\n }\r\n\r\n /**\r\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\r\n * @param portal Portal to be attached\r\n */\r\n attachComponentPortal<T>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T> {\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\r\n let componentRef: ComponentRef<T>;\r\n\r\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\r\n // for the component (in terms of Angular's component tree, not rendering).\r\n // When the ViewContainerRef is missing, we use the factory to create the component directly\r\n // and then manually attach the ChangeDetector for that component to the application (which\r\n // happens automatically when using a ViewContainer).\r\n componentRef = componentFactory.create(portal.injector);\r\n\r\n // When creating a component outside of a ViewContainer, we need to manually register\r\n // its ChangeDetector with the application. This API is unfortunately not yet published\r\n // in Angular core. The change detector must also be deregistered when the component\r\n // is destroyed to prevent memory leaks.\r\n this._appRef.attachView(componentRef.hostView);\r\n\r\n this.setDisposeFn(() => {\r\n this._appRef.detachView(componentRef.hostView);\r\n componentRef.destroy();\r\n });\r\n\r\n // At this point the component has been instantiated, so we move it to the location in the DOM\r\n // where we want it to be rendered.\r\n if (newestOnTop) {\r\n this._hostDomElement.insertBefore(this._getComponentRootNode(componentRef), this._hostDomElement.firstChild);\r\n } else {\r\n this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\r\n }\r\n\r\n return componentRef;\r\n }\r\n\r\n /** Gets the root HTMLElement for an instantiated component. */\r\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\r\n }\r\n}\r\n","import {\r\n ViewContainerRef,\r\n ComponentRef,\r\n Injector\r\n} from '@angular/core';\r\n\r\nexport interface ComponentType<T> {\r\n new (...args: any[]): T;\r\n}\r\n\r\n\r\n/**\r\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\r\n */\r\nexport class ComponentPortal<T> {\r\n // private _attachedHost: BasePortalHost;\r\n private _attachedHost: BasePortalHost | any;\r\n /** The type of the component that will be instantiated for attachment. */\r\n component: ComponentType<T>;\r\n\r\n /**\r\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\r\n * This is different from where the component *renders*, which is determined by the PortalHost.\r\n * The origin necessary when the host is outside of the Angular application context.\r\n */\r\n viewContainerRef: ViewContainerRef;\r\n\r\n /** Injector used for the instantiation of the component. */\r\n injector: Injector;\r\n\r\n constructor(component: ComponentType<T>, injector: Injector) {\r\n this.component = component;\r\n this.injector = injector;\r\n }\r\n\r\n /** Attach this portal to a host. */\r\n attach(host: BasePortalHost, newestOnTop: boolean) {\r\n this._attachedHost = host;\r\n return host.attach(this, newestOnTop);\r\n }\r\n\r\n /** Detach this portal from its host */\r\n detach(): void {\r\n const host = this._attachedHost;\r\n this._attachedHost = null;\r\n return host.detach();\r\n }\r\n\r\n /** Whether this portal is attached to a host. */\r\n get isAttached(): boolean {\r\n return this._attachedHost != null;\r\n }\r\n\r\n /**\r\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\r\n * the PortalHost when it is performing an `attach()` or `detach()`.\r\n */\r\n // setAttachedHost(host: BasePortalHost) {\r\n setAttachedHost(host: BasePortalHost): any {\r\n this._attachedHost = host;\r\n }\r\n}\r\n\r\n/**\r\n * Partial implementation of PortalHost that only deals with attaching a\r\n * ComponentPortal\r\n */\r\nexport abstract class BasePortalHost {\r\n public setToNullValue: any = null;\r\n /** The portal currently attached to the host. */\r\n // private _attachedPortal: ComponentPortal<any>;\r\n private _attachedPortal: ComponentPortal<any> | any;\r\n\r\n /** A function that will permanently dispose this host. */\r\n // private _disposeFn: () => void;\r\n private _disposeFn: () => void | any;\r\n\r\n attach(portal: ComponentPortal<any>, newestOnTop: boolean) {\r\n this._attachedPortal = portal;\r\n return this.attachComponentPortal(portal, newestOnTop);\r\n }\r\n\r\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>, newestOnTop: boolean): ComponentRef<T>;\r\n\r\n detach() {\r\n if (this._attachedPortal) { this._attachedPortal.setAttachedHost(null); }\r\n\r\n this._attachedPortal = null;\r\n if (this._disposeFn != null) {\r\n this._disposeFn();\r\n // this._disposeFn = null;\r\n this._disposeFn = this.setToNullValue;\r\n }\r\n }\r\n\r\n setDisposeFn(fn: () => void) {\r\n this._disposeFn = fn;\r\n }\r\n}\r\n","module.exports = \"<button *ngIf=\\\"options.closeButton\\\" (click)=\\\"remove()\\\" class=\\\"toast-close-button\\\">\\r\\n &times;\\r\\n</button>\\r\\n<div *ngIf=\\\"title\\\" class=\\\"{{options.titleClass}}\\\" [attr.aria-label]=\\\"title\\\">\\r\\n {{title}}\\r\\n</div>\\r\\n<div *ngIf=\\\"message && options.enableHtml\\\" class=\\\"{{options.messageClass}}\\\" [innerHTML]=\\\"message\\\">\\r\\n</div>\\r\\n<div *ngIf=\\\"message && !options.enableHtml\\\" class=\\\"{{options.messageClass}}\\\" [attr.aria-label]=\\\"message\\\">\\r\\n {{message}}\\r\\n</div>\\r\\n<div *ngIf=\\\"options.progressBar\\\">\\r\\n <div class=\\\"toast-progress\\\" [style.width.%]=\\\"width\\\"></div>\\r\\n</div>\"","import {\r\n Component,\r\n OnDestroy,\r\n HostBinding,\r\n HostListener,\r\n ApplicationRef,\r\n} from '@angular/core';\r\n\r\nimport { \r\n trigger,\r\n state,\r\n transition,\r\n animate,\r\n style\r\n} from '@angular/animations';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { GlobalConfig, ToastPackage, tsConfig } from './toast.config';\r\n\r\n@Component({\r\n selector: 'mdb-toast-component',\r\n templateUrl: './toast.component.html',\r\n animations: [\r\n trigger('flyInOut', [\r\n state('inactive', style({\r\n display: 'none',\r\n opacity: 0\r\n })),\r\n state('active', style({ opacity: .5 })),\r\n state('removed', style({ opacity: 0 })),\r\n transition('inactive => active', animate('300ms ease-in')),\r\n transition('active => removed', animate('300ms ease-in')),\r\n ]),\r\n ],\r\n})\r\nexport class ToastComponent implements OnDestroy {\r\n message: string | SafeHtml;\r\n title: string;\r\n options: GlobalConfig;\r\n /** width of progress bar */\r\n width = -1;\r\n /** a combination of toast type and options.toastClass */\r\n @HostBinding('class') toastClasses = '';\r\n /** controls animation */\r\n @HostBinding('@flyInOut') state = 'inactive';\r\n timeout: any;\r\n intervalId: any;\r\n hideTime: number;\r\n sub: Subscription;\r\n sub1: Subscription;\r\n\r\n protected toastService: any;\r\n\r\n constructor(\r\n public toastPackage: ToastPackage,\r\n protected appRef: ApplicationRef,\r\n ) {\r\n this.toastService = tsConfig.serviceInstance;\r\n\r\n this.message = toastPackage.message;\r\n this.title = toastPackage.title;\r\n this.options = toastPackage.config;\r\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\r\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\r\n this.activateToast();\r\n });\r\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\r\n this.remove();\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n this.sub1.unsubscribe();\r\n clearInterval(this.intervalId);\r\n clearTimeout(this.timeout);\r\n }\r\n /**\r\n * activates toast and sets timeout\r\n */\r\n activateToast() {\r\n this.state = 'active';\r\n if (this.options.timeOut !== 0) {\r\n this.timeout = setTimeout(() => {\r\n this.remove();\r\n }, this.options.timeOut);\r\n this.hideTime = new Date().getTime() + this.options.timeOut;\r\n if (this.options.progressBar) {\r\n this.intervalId = setInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n if (this.options.onActivateTick) {\r\n this.appRef.tick();\r\n }\r\n }\r\n /**\r\n * updates progress bar width\r\n */\r\n updateProgress() {\r\n if (this.width === 0) {\r\n return;\r\n }\r\n const now = new Date().getTime();\r\n const remaining = this.hideTime - now;\r\n this.width = (remaining / this.options.timeOut) * 100;\r\n if (this.width <= 0) {\r\n this.width = 0;\r\n }\r\n }\r\n\r\n /**\r\n * tells toastrService to remove this toast after animation time\r\n */\r\n remove() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n clearTimeout(this.timeout);\r\n this.state = 'removed';\r\n this.timeout = setTimeout(() =>\r\n this.toastService.remove(this.toastPackage.toastId),\r\n 300\r\n );\r\n }\r\n @HostListener('click')\r\n tapToast() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n this.toastPackage.triggerTap();\r\n if (this.options.tapToDismiss) {\r\n this.remove();\r\n }\r\n }\r\n @HostListener('mouseenter')\r\n stickAround() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n clearTimeout(this.timeout);\r\n this.options.timeOut = 0;\r\n this.hideTime = 0;\r\n\r\n // disable progressBar\r\n clearInterval(this.intervalId);\r\n this.width = 0;\r\n }\r\n @HostListener('mouseleave')\r\n delayedHideToast() {\r\n if (+this.options.extendedTimeOut === 0 || this.state === 'removed') {\r\n return;\r\n }\r\n this.timeout = setTimeout(() => this.remove(), this.options.extendedTimeOut);\r\n this.options.timeOut = +this.options.extendedTimeOut;\r\n this.hideTime = new Date().getTime() + this.options.timeOut;\r\n this.width = 100;\r\n if (this.options.progressBar) {\r\n this.intervalId = setInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n}\r\n","/* tslint:disable:no-inferrable-types */\r\nimport { SafeHtml } from '@angular/platform-browser';\r\n\r\nimport { Subject } from 'rxjs/Subject';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { ComponentType } from '../portal/portal';\r\nimport { ToastRef } from './toast.injector';\r\n\r\n/**\r\n * Configuration for an individual toast.\r\n */\r\n export interface IndividualConfig {\r\n /**\r\n * toast time to live in milliseconds\r\n * default: 5000\r\n */\r\n // timeOut?: number;\r\n timeOut?: number | any;\r\n /**\r\n * toast show close button\r\n * default: false\r\n */\r\n closeButton?: boolean;\r\n /** time to close after a user hovers over toast */\r\n /**\r\n * show toast progress bar\r\n * default: false\r\n */\r\n // extendedTimeOut?: number;\r\n extendedTimeOut?: number | any;\r\n /**\r\n * show toast progress bar\r\n * default: false\r\n */\r\n progressBar?: boolean;\r\n /**\r\n * render html in toast message (possibly unsafe)\r\n * default: false\r\n */\r\n enableHtml?: boolean;\r\n /**\r\n * css class on toast component\r\n * default: toast\r\n */\r\n toastClass?: string;\r\n /**\r\n * css class on toast container\r\n * default: toast-top-right\r\n */\r\n positionClass?: string | any;\r\n /**\r\n * css class on to toast title\r\n * default: toast-title\r\n */\r\n titleClass?: string;\r\n /**\r\n * css class on to toast title\r\n * default: toast-title\r\n */\r\n messageClass?: string;\r\n /**\r\n * clicking on toast dismisses it\r\n * default: true\r\n */\r\n tapToDismiss?: boolean;\r\n /**\r\n * Angular toast component to be shown\r\n * default: Toast\r\n */\r\n toastComponent?: ComponentType<any> | any;\r\n /**\r\n * Helps show toast from a websocket or from event outside Angular\r\n * default: false\r\n */\r\n onActivateTick?: boolean;\r\n}\r\n\r\nexport interface ToastIconClasses {\r\n error?: string;\r\n info?: string;\r\n success?: string;\r\n warning?: string;\r\n}\r\n\r\n/**\r\n * Global Toast configuration\r\n * Includes all IndividualConfig\r\n */\r\nexport interface GlobalConfig extends IndividualConfig {\r\n /**\r\n * max toasts opened. Toasts will be queued\r\n * Zero is unlimited\r\n * default: 0\r\n */\r\n maxOpened?: number;\r\n /**\r\n * dismiss current toast when max is reached\r\n * default: false\r\n */\r\n autoDismiss?: boolean;\r\n iconClasses?: ToastIconClasses;\r\n /**\r\n * New toast placement\r\n * default: true\r\n */\r\n newestOnTop?: boolean;\r\n /**\r\n * block duplicate messages\r\n * default: false\r\n */\r\n preventDuplicates?: boolean;\r\n}\r\n/**\r\n * Remove warning message from angular-cli\r\n */\r\nexport class GlobalConfig {}\r\n/**\r\n * Everything a toast needs to launch\r\n */\r\nexport class ToastPackage {\r\n private _onTap: Subject<any> = new Subject();\r\n private _onAction: Subject<any> = new Subject();\r\n\r\n constructor(\r\n public toastId: number,\r\n public config: IndividualConfig,\r\n public message: string | SafeHtml,\r\n public title: string,\r\n public toastType: string,\r\n public toastRef: ToastRef<any>,\r\n ) { }\r\n\r\n /** Fired on click */\r\n triggerTap() {\r\n this._onTap.next();\r\n this._onTap.complete();\r\n }\r\n\r\n onTap(): Observable<any> {\r\n return this._onTap.asObservable();\r\n }\r\n\r\n /** available for use in custom toast */\r\n triggerAction(action?: any) {\r\n this._onAction.next(action);\r\n this._onAction.complete();\r\n }\r\n\r\n onAction(): Observable<any> {\r\n return this._onAction.asObservable();\r\n }\r\n\r\n}\r\n\r\n\r\nexport const tsConfig = {\r\n serviceInstance: new Object()\r\n}","import { Injector } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subject } from 'rxjs/Subject';\r\n\r\nimport { OverlayRef } from '../overlay/overlay-ref';\r\nimport { ToastPackage } from './toast.config';\r\n\r\n/**\r\n * Reference to a toast opened via the Toast service.\r\n */\r\nexport class ToastRef<T> {\r\n /** The instance of component opened into the toast. */\r\n componentInstance: T;\r\n\r\n /** Subject for notifying the user that the toast has finished closing. */\r\n private _afterClosed: Subject<any> = new Subject();\r\n private _activate: Subject<any> = new Subject();\r\n private _manualClose: Subject<any> = new Subject();\r\n\r\n constructor(private _overlayRef: OverlayRef) { }\r\n\r\n manualClose() {\r\n this._manualClose.next();\r\n this._manualClose.complete();\r\n }\r\n\r\n manualClosed(): Observable<any> {\r\n return this._manualClose.asObservable();\r\n }\r\n\r\n /**\r\n * Close the toast.\r\n */\r\n close(): void {\r\n this._overlayRef.detach();\r\n this._afterClosed.next();\r\n this._afterClosed.complete();\r\n }\r\n\r\n /** Gets an observable that is notified when the toast is finished closing. */\r\n afterClosed(): Observable<any> {\r\n return this._afterClosed.asObservable();\r\n }\r\n\r\n isInactive() {\r\n return this._activate.isStopped;\r\n }\r\n\r\n activate() {\r\n this._activate.next();\r\n this._activate.complete();\r\n }\r\n\r\n /** Gets an observable that is notified when the toast has started opening. */\r\n afterActivate(): Observable<any> {\r\n return this._activate.asObservable();\r\n }\r\n}\r\n\r\n\r\n/** Custom injector type specifically for instantiating components with a toast. */\r\nexport class ToastInjector implements Injector {\r\n constructor(\r\n private _toastPackage: ToastPackage,\r\n private _parentInjector: Injector) { }\r\n\r\n get(token: any, notFoundValue?: any): any {\r\n if (token === ToastPackage && this._toastPackage) {\r\n return this._toastPackage;\r\n }\r\n return this._parentInjector.get(token, notFoundValue);\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n SkipSelf,\r\n Optional,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ToastComponent } from './toast.component';\r\nimport { TOAST_CONFIG } from './toast.token';\r\nimport { ToastService } from './toast.service';\r\nimport { GlobalConfig } from './toast.config';\r\nimport { OverlayContainer } from '../overlay/overlay-container';\r\nimport { Overlay } from '../overlay/overlay';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [ToastComponent],\r\n declarations: [ToastComponent],\r\n entryComponents: [ToastComponent],\r\n})\r\nexport class ToastModule {\r\n static forRoot(config?: GlobalConfig): ModuleWithProviders {\r\n return {\r\n ngModule: ToastModule,\r\n providers: [\r\n { provide: TOAST_CONFIG, useValue: config },\r\n OverlayContainer,\r\n Overlay,\r\n ToastService,\r\n ]\r\n };\r\n }\r\n constructor(@Optional() @SkipSelf() parentModule: ToastModule) {\r\n if (parentModule) {\r\n throw new Error('ToastModule is already loaded. It should only be imported in your application\\'s main module.');\r\n }\r\n }\r\n}\r\n","import { Injectable, Injector, ComponentRef, Inject, SecurityContext } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { Overlay } from '../overlay/overlay';\r\nimport { ComponentPortal } from '../portal/portal';\r\nimport { GlobalConfig, IndividualConfig, ToastPackage, tsConfig } from './toast.config';\r\nimport { ToastInjector, ToastRef } from './toast.injector';\r\nimport { ToastContainerDirective } from './toast.directive';\r\nimport { TOAST_CONFIG } from './toast.token';\r\nimport { ToastComponent } from './toast.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nexport interface ActiveToast {\r\n toastId?: number;\r\n message?: string;\r\n portal?: ComponentRef<any>;\r\n toastRef?: ToastRef<any>;\r\n onShown?: Observable<any>;\r\n onHidden?: Observable<any>;\r\n onTap?: Observable<any>;\r\n onAction?: Observable<any>;\r\n}\r\n\r\n@Injectable()\r\nexport class ToastService {\r\n index = 0;\r\n previousToastMessage = '';\r\n currentlyActive = 0;\r\n toasts: ActiveToast[] = [];\r\n overlayContainer: ToastContainerDirective;\r\n\r\n constructor(\r\n // @Inject(TOAST_CONFIG) public toastConfig: GlobalConfig,\r\n @Inject(TOAST_CONFIG) public toastConfig: GlobalConfig | any,\r\n private overlay: Overlay,\r\n private _injector: Injector,\r\n private sanitizer: DomSanitizer,\r\n ) {\r\n tsConfig.serviceInstance = this;\r\n\r\n\r\n function use<T>(source: T, defaultValue: T): T {\r\n return toastConfig && source !== undefined ? source : defaultValue;\r\n }\r\n this.toastConfig = this.applyConfig(toastConfig);\r\n // Global\r\n this.toastConfig.maxOpened = use(this.toastConfig.maxOpened, 0);\r\n this.toastConfig.autoDismiss = use(this.toastConfig.autoDismiss, false);\r\n this.toastConfig.newestOnTop = use(this.toastConfig.newestOnTop, true);\r\n this.toastConfig.preventDuplicates = use(this.toastConfig.preventDuplicates, false);\r\n if (!this.toastConfig.iconClasses) {\r\n this.toastConfig.iconClasses = {};\r\n }\r\n this.toastConfig.iconClasses.error = this.toastConfig.iconClasses.error || 'toast-error';\r\n this.toastConfig.iconClasses.info = this.toastConfig.iconClasses.info || 'toast-info';\r\n this.toastConfig.iconClasses.success = this.toastConfig.iconClasses.success || 'toast-success';\r\n this.toastConfig.iconClasses.warning = this.toastConfig.iconClasses.warning || 'toast-warning';\r\n\r\n // Individual\r\n this.toastConfig.timeOut = use(this.toastConfig.timeOut, 5000);\r\n this.toastConfig.closeButton = use(this.toastConfig.closeButton, false);\r\n this.toastConfig.extendedTimeOut = use(this.toastConfig.extendedTimeOut, 1000);\r\n this.toastConfig.progressBar = use(this.toastConfig.progressBar, false);\r\n this.toastConfig.enableHtml = use(this.toastConfig.enableHtml, false);\r\n this.toastConfig.toastClass = use(this.toastConfig.toastClass, 'toast');\r\n this.toastConfig.positionClass = use(this.toastConfig.positionClass, 'toast-top-right');\r\n this.toastConfig.titleClass = use(this.toastConfig.titleClass, 'toast-title');\r\n this.toastConfig.messageClass = use(this.toastConfig.messageClass, 'toast-message');\r\n this.toastConfig.tapToDismiss = use(this.toastConfig.tapToDismiss, true);\r\n this.toastConfig.toastComponent = use(this.toastConfig.toastComponent, ToastComponent);\r\n this.toastConfig.onActivateTick = use(this.toastConfig.onActivateTick, false);\r\n }\r\n /** show successful toast */\r\n // show(message: string, title?: string, override?: IndividualConfig, type = '') {\r\n show(message: string, title?: string | any, override?: IndividualConfig, type = '') {\r\n return this._buildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show successful toast */\r\n // success(message: string, title?: string, override?: IndividualConfig) {\r\n success(message: string, title?: string | any, override?: IndividualConfig) {\r\n // const type = this.toastConfig.iconClasses.success;\r\n const type: any = this.toastConfig.iconClasses.success;\r\n return this._buildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show error toast */\r\n // error(message: string, title?: string, override?: IndividualConfig) {\r\n error(message: string, title?: string | any, override?: IndividualConfig) {\r\n // const type = this.toastConfig.iconClasses.error;\r\n const type: any = this.toastConfig.iconClasses.error;\r\n return this._buildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show info toast */\r\n // info(message: string, title?: string, override?: IndividualConfig) {\r\n info(message: string, title?: string | any, override?: IndividualConfig) {\r\n // const type = this.toastConfig.iconClasses.info;\r\n const type: any = this.toastConfig.iconClasses.info;\r\n return this._buildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show warning toast */\r\n // warning(message: string, title?: string, override?: IndividualConfig) {\r\n warning(message: string, title?: string | any, override?: IndividualConfig) {\r\n // const type = this.toastConfig.iconClasses.warning;\r\n const type: any = this.toastConfig.iconClasses.warning;\r\n return this._buildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /**\r\n * Remove all or a single toast by id\r\n */\r\n clear(toastId?: number) {\r\n // Call every toastRef manualClose function\r\n let toast: any;\r\n for (toast of this.toasts) {\r\n if (toastId !== undefined) {\r\n if (toast.toastId === toastId) {\r\n toast.toastRef.manualClose();\r\n return;\r\n }\r\n } else {\r\n toast.toastRef.manualClose();\r\n }\r\n }\r\n }\r\n /**\r\n * Remove and destroy a single toast by id\r\n */\r\n remove(toastId: number) {\r\n // const found = this._findToast(toastId);\r\n const found: any = this._findToast(toastId);\r\n if (!found) {\r\n return false;\r\n }\r\n found.activeToast.toastRef.close();\r\n this.toasts.splice(found.index, 1);\r\n this.currentlyActive = this.currentlyActive - 1;\r\n if (!this.toastConfig.maxOpened || !this.toasts.length) {\r\n return false;\r\n }\r\n if (this.currentlyActive <= +this.toastConfig.maxOpened && this.toasts[this.currentlyActive]) {\r\n // const p = this.toasts[this.currentlyActive].toastRef;\r\n const p: any = this.toasts[this.currentlyActive].toastRef;\r\n if (!p.isInactive()) {\r\n this.currentlyActive = this.currentlyActive + 1;\r\n p.activate();\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Determines if toast message is already shown\r\n */\r\n isDuplicate(message: string) {\r\n for (let i = 0; i < this.toasts.length; i++) {\r\n if (this.toasts[i].message === message) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** create a clone of global config and apply individual settings */\r\n private applyConfig(override: IndividualConfig = {}): GlobalConfig {\r\n function use<T>(source: T, defaultValue: T): T {\r\n return override && source !== undefined ? source : defaultValue;\r\n }\r\n const current: GlobalConfig = { ...this.toastConfig };\r\n current.closeButton = use(override.closeButton, current.closeButton);\r\n current.extendedTimeOut = use(override.extendedTimeOut, current.extendedTimeOut);\r\n current.progressBar = use(override.progressBar, current.progressBar);\r\n current.timeOut = use(override.timeOut, current.timeOut);\r\n current.enableHtml = use(override.enableHtml, current.enableHtml);\r\n current.toastClass = use(override.toastClass, current.toastClass);\r\n current.positionClass = use(override.positionClass, current.positionClass);\r\n current.titleClass = use(override.titleClass, current.titleClass);\r\n current.messageClass = use(override.messageClass, current.messageClass);\r\n current.tapToDismiss = use(override.tapToDismiss, current.tapToDismiss);\r\n current.toastComponent = use(override.toastComponent, current.toastComponent);\r\n current.onActivateTick = use(override.onActivateTick, current.onActivateTick);\r\n return current;\r\n }\r\n\r\n /**\r\n * Find toast object by id\r\n */\r\n private _findToast(toastId: number): { index: number, activeToast: ActiveToast } | null {\r\n for (let i = 0; i < this.toasts.length; i++) {\r\n if (this.toasts[i].toastId === toastId) {\r\n return { index: i, activeToast: this.toasts[i] };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Creates and attaches toast data to component\r\n * returns null if toast is duplicate and preventDuplicates == True\r\n */\r\n private _buildNotification(\r\n toastType: string,\r\n message: string,\r\n title: string,\r\n config: GlobalConfig,\r\n ): ActiveToast | null | any {\r\n // max opened and auto dismiss = true\r\n if (this.toastConfig.preventDuplicates && this.isDuplicate(message)) {\r\n return null;\r\n }\r\n this.previousToastMessage = message;\r\n let keepInactive = false;\r\n if (this.toastConfig.maxOpened && this.currentlyActive >= this.toastConfig.maxOpened) {\r\n keepInactive = true;\r\n if (this.toastConfig.autoDismiss) {\r\n this.clear(this.toasts[this.toasts.length - 1].toastId);\r\n }\r\n }\r\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\r\n this.index = this.index + 1;\r\n // let sanitizedMessage = message;\r\n let sanitizedMessage: any = message;\r\n if (message && config.enableHtml) {\r\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\r\n }\r\n const toastRef = new ToastRef(overlayRef);\r\n const toastPackage = new ToastPackage(\r\n this.index,\r\n config,\r\n sanitizedMessage,\r\n title,\r\n toastType,\r\n toastRef,\r\n );\r\n // const ins: ActiveToast = {\r\n const ins: ActiveToast | any = {\r\n toastId: this.index,\r\n message,\r\n toastRef,\r\n onShown: toastRef.afterActivate(),\r\n onHidden: toastRef.afterActivate(),\r\n onTap: toastPackage.onTap(),\r\n onAction: toastPackage.onAction(),\r\n };\r\n const toastInjector = new ToastInjector(toastPackage, this._injector);\r\n const component = new ComponentPortal(config.toastComponent, toastInjector);\r\n ins.portal = overlayRef.attach(component, this.toastConfig.newestOnTop);\r\n if (!keepInactive) {\r\n setTimeout(() => {\r\n ins.toastRef.activate();\r\n this.currentlyActive = this.currentlyActive + 1;\r\n });\r\n }\r\n this.toasts.push(ins);\r\n return ins;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { GlobalConfig } from './toast.config';\r\n\r\nexport const TOAST_CONFIG = new InjectionToken<GlobalConfig>('ToastConfig');\r\n","\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\n\r\n// SideNav\r\nexport const slideIn: any = trigger('slideIn', [\r\n state('inactive', style({ opacity: 0, transform: 'translateX(-300%)' })),\r\n state('active', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('inactive => active', animate('500ms ease')),\r\n transition('active => inactive', animate('500ms ease')),\r\n]);\r\n\r\nexport const fadeIn: any = trigger('fadeIn', [\r\n state('inactive', style({ opacity: 0 })),\r\n state('active', style({ opacity: 1 })),\r\n transition('inactive => active', animate('500ms ease')),\r\n transition('active => inactive', animate('500ms ease')),\r\n]);\r\n\r\nexport const slideOut: any = trigger('slideOut', [\r\n state('inactive', style({ opacity: 0, transform: 'translateX(-300%)' })),\r\n state('active', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('inactive => active', animate('500ms ease')),\r\n transition('active => inactive', animate('500ms ease')),\r\n]);\r\n\r\nexport const flipState: any = trigger('flipState', [\r\n\r\n state('active', style({ transform: 'rotateY(179.9deg)' })),\r\n state('inactive', style({ transform: 'rotateY(0)' })),\r\n]);\r\n\r\n// Rotating animation animation\r\nexport const turnState: any = trigger('turnState', [\r\n state('active', style({ transform: 'rotateY(179.9deg)' })),\r\n state('inactive', style({ transform: 'rotateY(0)' })),\r\n]);\r\n\r\n// Social reveal animation\r\nexport const iconsState: any = trigger('iconsState', [\r\n state('isactive', style({ visibility: 'visible', transform: 'translate(-6%)' })),\r\n state('isnotactive', style({ visibility: 'hidden', transform: 'translate(27%)' })),\r\n transition('isactive => isnotactive', animate('100ms ease-in')),\r\n transition('isnotactive => isactive', animate('200ms ease-out')),\r\n]);\r\n\r\n// Reveal animation animation\r\nexport const socialsState: any = trigger('socialsState', [\r\n state('active', style({ visibility: 'visible', transform: 'translateY(-100%)' })),\r\n state('inactive', style({ visibility: 'hidden', transform: 'translateY(0)' })),\r\n transition('* => void', animate('200ms ease-in')),\r\n transition('void => *', animate('200ms ease-out')),\r\n]);\r\n\r\n// image popup\r\n// export const zoomState: any = trigger('zoomState', [\r\n// state('active', style({ transform: 'scale(1, 1)', cursor: 'zoom-out' })),\r\n// state('inactive', style({ transform: 'scale(0.9, 0.9)', cursor: 'zoom-in' })),\r\n// transition('active => inactive', animate('300ms ease-in')),\r\n// transition('inactive => active', animate('300ms ease-out')),\r\n// ]);\r\n\r\n// export const restartState: any = trigger('restartState', [\r\n// state('inactive', style({ transform: 'scale(0.9, 0.9)' })),\r\n// ]);\r\n\r\n// alerts\r\nexport const flyInOut: any = trigger('flyInOut', [\r\n state('inactive', style({ display: 'none', opacity: 0.7 })),\r\n state('active', style({ opacity: 0.7 })),\r\n state('removed', style({ opacity: 0 })),\r\n transition('inactive => active', animate('300ms ease-in')),\r\n transition('active => removed', animate('300ms ease-in')),\r\n]);\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { HttpModule } from '@angular/http';\r\nimport { CompleterComponent } from './components/completer.component';\r\nimport { CompleterListItemComponent } from './components/completer-list-item.component';\r\nimport { CompleterService } from './services/completer.service';\r\nimport { LocalDataFactoryProvider, RemoteDataFactoryProvider } from './services/data-factory.service';\r\nimport { MdbCompleterDirective } from './directives/completer.directive';\r\nimport { MdbDropdownDirective } from './directives/dropdown.directive';\r\nimport { MdbInputDirective } from './directives/input.directive';\r\nimport { MdbListDirective } from './directives/list-context.directive';\r\nimport { MdbRowDirective } from './directives/row.directive';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n HttpModule\r\n ],\r\n declarations: [\r\n CompleterListItemComponent,\r\n MdbCompleterDirective,\r\n MdbDropdownDirective,\r\n MdbInputDirective,\r\n MdbListDirective,\r\n MdbRowDirective,\r\n CompleterComponent\r\n ],\r\n exports: [\r\n CompleterComponent,\r\n CompleterListItemComponent,\r\n MdbCompleterDirective,\r\n MdbDropdownDirective,\r\n MdbInputDirective,\r\n MdbListDirective,\r\n MdbRowDirective\r\n ],\r\n providers: [\r\n CompleterService,\r\n LocalDataFactoryProvider,\r\n RemoteDataFactoryProvider\r\n ]\r\n})\r\nexport class Ng2CompleterModule { }\r\n","module.exports = \"<span class=\\\"completer-list-item-holder\\\" [ngClass]=\\\"{'completer-title': type === 'title', 'completer-description': type === 'description'}\\\" >\\r\\n <span class=\\\"completer-list-item\\\" *ngFor=\\\"let part of parts\\\" [ngClass]=\\\"part.isMatch ? matchClass : null\\\">{{part.text}}</span>\\r\\n</span>\\r\\n\"","'use strict';\r\nimport {Component, Input, OnInit} from '@angular/core';\r\n\r\nexport interface MatchPart {\r\n isMatch: boolean;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'mdb-completer-list-item',\r\n templateUrl: 'completer-list-item.component.html'\r\n})\r\nexport class CompleterListItemComponent implements OnInit {\r\n @Input() public text: string;\r\n @Input() public searchStr: string;\r\n @Input() public matchClass: string;\r\n @Input() public type: string;\r\n\r\n public parts: MatchPart[] = [];\r\n public ngOnInit(): any {\r\n if (!this.searchStr) {\r\n this.parts.push({ isMatch: false, text: this.text });\r\n return;\r\n }\r\n const matchStr = this.text.toLowerCase();\r\n let matchPos = matchStr.indexOf(this.searchStr.toLowerCase());\r\n let startIndex = 0;\r\n while (matchPos >= 0) {\r\n const matchText = this.text.slice(matchPos, matchPos + this.searchStr.length);\r\n if (matchPos === 0) {\r\n this.parts.push({ isMatch: true, text: matchText });\r\n startIndex += this.searchStr.length;\r\n } else if (matchPos > 0) {\r\n const matchPart = this.text.slice(startIndex, matchPos);\r\n this.parts.push({ isMatch: false, text: matchPart });\r\n this.parts.push({ isMatch: true, text: matchText });\r\n startIndex += this.searchStr.length + matchPart.length;\r\n }\r\n matchPos = matchStr.indexOf(this.searchStr.toLowerCase(), startIndex);\r\n }\r\n if (startIndex < this.text.length) {\r\n this.parts.push({ isMatch: false, text: this.text.slice(startIndex, this.text.length) });\r\n }\r\n }\r\n}\r\n","module.exports = \"<div class=\\\"completer-holder md-form\\\" mdbCompleter>\\r\\n \\r\\n <input #mdbInput [attr.id]=\\\"inputId.length > 0 ? inputId : null\\\" type=\\\"search\\\" class=\\\"completer-input form-control mdb-autocomplete\\\" mdbInput [ngClass]=\\\"inputClass\\\" \\r\\n [(ngModel)]=\\\"searchStr\\\" (ngModelChange)=\\\"onChange($event)\\\" [attr.name]=\\\"inputName\\\" [placeholder]=\\\"placeholder\\\"\\r\\n [attr.maxlength]=\\\"maxChars\\\" [tabindex]=\\\"fieldTabindex\\\" [disabled]=\\\"disableInput\\\" \\r\\n [clearSelected]=\\\"clearSelected\\\" [clearUnselected]=\\\"clearUnselected\\\"\\r\\n [overrideSuggested]=\\\"overrideSuggested\\\" [openOnFocus]=\\\"openOnFocus\\\" [fillHighlighted]=\\\"fillHighlighted\\\" \\r\\n (blur)=\\\"onBlur()\\\" (focus)=\\\"onFocus()\\\" (keyup)=\\\"onKeyup($event)\\\" (keydown)=\\\"onKeydown($event)\\\"\\r\\n autocomplete=\\\"off\\\" autocorrect=\\\"off\\\" autocapitalize=\\\"off\\\" />\\r\\n <label [ngClass]=\\\"{'active': focused}\\\">{{ label }}</label>\\r\\n <div class=\\\"completer-dropdown-holder\\\"\\r\\n *mdbList=\\\"dataService;\\r\\n minSearchLength: minSearchLength;\\r\\n pause: pause;\\r\\n autoMatch: autoMatch;\\r\\n initialValue: initialValue;\\r\\n autoHighlight: autoHighlight;\\r\\n let items = results;\\r\\n let searchActive = searching;\\r\\n let isInitialized = searchInitialized;\\r\\n let isOpen = isOpen;\\\">\\r\\n <div class=\\\"completer-dropdown\\\" mdbDropdown *ngIf=\\\"isInitialized && isOpen && ((items.length > 0 || displayNoResults) || (searchActive && displaySearching))\\\">\\r\\n <div *ngIf=\\\"searchActive && displaySearching\\\" class=\\\"completer-searching\\\">{{_textSearching}}</div>\\r\\n <div *ngIf=\\\"!searchActive && (!items || items.length === 0)\\\" class=\\\"completer-no-results\\\">{{_textNoResults}}</div>\\r\\n <div class=\\\"completer-row-wrapper\\\" *ngFor=\\\"let item of items; let rowIndex=index\\\">\\r\\n <div class=\\\"completer-row\\\" [mdbRow]=\\\"rowIndex\\\" [dataItem]=\\\"item\\\">\\r\\n <div *ngIf=\\\"item.image || item.image === ''\\\" class=\\\"completer-image-holder\\\">\\r\\n <img *ngIf=\\\"item.image != ''\\\" src=\\\"{{item.image}}\\\" class=\\\"completer-image\\\" />\\r\\n <div *ngIf=\\\"item.image === ''\\\" class=\\\"completer-image-default\\\"></div>\\r\\n </div>\\r\\n <div class=\\\"completer-item-text\\\" [ngClass]=\\\"{'completer-item-text-image': item.image || item.image === '' }\\\">\\r\\n <mdb-completer-list-item class=\\\"completer-title\\\" [text]=\\\"item.title\\\" [matchClass]=\\\"matchClass\\\" [searchStr]=\\\"searchStr\\\" [type]=\\\"'title'\\\"></mdb-completer-list-item>\\r\\n <mdb-completer-list-item *ngIf=\\\"item.description && item.description != ''\\\" class=\\\"completer-description\\\" [text]=\\\"item.description\\\"\\r\\n [matchClass]=\\\"matchClass\\\" [searchStr]=\\\"searchStr\\\" [type]=\\\"'description'\\\">\\r\\n </mdb-completer-list-item>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n\"","'use strict';\r\nimport { AfterViewChecked, Component, Input, Output, EventEmitter, OnInit, ViewChild,\r\n forwardRef, AfterViewInit, ElementRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { MdbCompleterDirective } from '../directives/completer.directive';\r\nimport { CompleterData } from '../services/completer-data.service';\r\nimport { CompleterService } from '../services/completer.service';\r\nimport { CompleterItem } from './completer-item.component';\r\nimport { MAX_CHARS, MIN_SEARCH_LENGTH, PAUSE, TEXT_SEARCHING, TEXT_NO_RESULTS } from '../globals';\r\n\r\n\r\nimport 'rxjs/add/operator/catch';\r\n\r\nconst noop = () => { };\r\n\r\nconst COMPLETER_CONTROL_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CompleterComponent),\r\n multi: true\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'mdb-completer',\r\n templateUrl: './completer.component.html',\r\n providers: [COMPLETER_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class CompleterComponent implements OnInit, ControlValueAccessor, AfterViewChecked, AfterViewInit {\r\n @Input() public dataService: CompleterData;\r\n @Input() public inputName = '';\r\n @Input() public inputId = '';\r\n @Input() public pause = PAUSE;\r\n @Input() public minSearchLength = MIN_SEARCH_LENGTH;\r\n @Input() public maxChars = MAX_CHARS;\r\n @Input() public overrideSuggested = false;\r\n @Input() public clearSelected = false;\r\n @Input() public clearUnselected = false;\r\n @Input() public fillHighlighted = true;\r\n @Input() public placeholder = '';\r\n @Input() public matchClass: string;\r\n @Input() public fieldTabindex: number;\r\n @Input() public autoMatch = false;\r\n @Input() public disableInput = false;\r\n @Input() public inputClass: string;\r\n @Input() public autofocus = false;\r\n @Input() public openOnFocus = false;\r\n @Input() public initialValue: any;\r\n @Input() public autoHighlight = false;\r\n @Input() public label: string;\r\n\r\n public focused = false;\r\n\r\n\r\n @Output() public selected = new EventEmitter<CompleterItem>();\r\n @Output() public highlighted = new EventEmitter<CompleterItem>();\r\n @Output() public blur = new EventEmitter<void>();\r\n @Output() public focusEvent = new EventEmitter<void>();\r\n @Output() public opened = new EventEmitter<boolean>();\r\n @Output() public keyup: EventEmitter<any> = new EventEmitter();\r\n @Output() public keydown: EventEmitter<any> = new EventEmitter();\r\n\r\n @ViewChild(MdbCompleterDirective) public completer: MdbCompleterDirective;\r\n @ViewChild('mdbInput') public mdbInput: ElementRef;\r\n\r\n public searchStr = '';\r\n public control = new FormControl('');\r\n\r\n // displaySearching = true;\r\n displaySearching: any = true;\r\n // displayNoResults = true;\r\n displayNoResults: any = true;\r\n _onTouchedCallback: () => void = noop;\r\n _onChangeCallback: (_: any) => void = noop;\r\n _focus = false;\r\n _open = false;\r\n _textNoResults = TEXT_NO_RESULTS;\r\n _textSearching = TEXT_SEARCHING;\r\n\r\n constructor(private completerService: CompleterService) { }\r\n\r\n get value(): any { return this.searchStr; };\r\n\r\n set value(v: any) {\r\n if (v !== this.searchStr) {\r\n this.searchStr = v;\r\n }\r\n // Propagate the change in any case\r\n this._onChangeCallback(v);\r\n }\r\n\r\n public ngAfterViewInit() {\r\n if (this.autofocus) {\r\n this._focus = true;\r\n }\r\n }\r\n\r\n public ngAfterViewChecked(): void {\r\n if (this._focus) {\r\n this.mdbInput.nativeElement.focus();\r\n this._focus = false;\r\n }\r\n }\r\n\r\n public onTouched() {\r\n this._onTouchedCallback();\r\n }\r\n\r\n public writeValue(value: any) {\r\n this.searchStr = value;\r\n }\r\n\r\n public registerOnChange(fn: any) {\r\n this._onChangeCallback = fn;\r\n }\r\n\r\n public registerOnTouched(fn: any) {\r\n this._onTouchedCallback = fn;\r\n }\r\n\r\n @Input()\r\n public set datasource(source: CompleterData | string | Array<any>) {\r\n if (source) {\r\n if (source instanceof Array) {\r\n this.dataService = this.completerService.local(source);\r\n } else if (typeof (source) === 'string') {\r\n this.dataService = this.completerService.remote(source);\r\n } else {\r\n this.dataService = source;\r\n }\r\n }\r\n }\r\n\r\n @Input()\r\n public set textNoResults(text: string) {\r\n if (this._textNoResults !== text) {\r\n this._textNoResults = text;\r\n this.displayNoResults = this._textNoResults && this._textNoResults !== 'false';\r\n }\r\n }\r\n\r\n @Input()\r\n public set textSearching(text: string) {\r\n if (this._textSearching !== text) {\r\n this._textSearching = text;\r\n this.displaySearching = this._textSearching && this._textSearching !== 'false';\r\n }\r\n }\r\n\r\n public ngOnInit() {\r\n this.completer.selected.subscribe((item: CompleterItem) => {\r\n this.selected.emit(item);\r\n });\r\n this.completer.highlighted.subscribe((item: CompleterItem) => {\r\n this.highlighted.emit(item);\r\n });\r\n this.completer.opened.subscribe((isOpen: boolean) => {\r\n this._open = isOpen;\r\n this.opened.emit(isOpen);\r\n });\r\n if (this.initialValue) { // <- start workaround\r\n this.searchStr = this.initialValue; //\r\n this.onFocus(); // fix label\r\n }// <- end workaround\r\n }\r\n\r\n public onBlur() {\r\n this.blur.emit();\r\n this.onTouched();\r\n if (this.searchStr === undefined || this.searchStr === '') {\r\n this.focused = false;\r\n }\r\n }\r\n\r\n public onFocus() {\r\n this.focusEvent.emit();\r\n this.onTouched();\r\n this.focused = true;\r\n }\r\n\r\n public onKeyup(event: any) {\r\n this.keyup.emit(event);\r\n }\r\n\r\n public onKeydown(event: any) {\r\n this.keydown.emit(event);\r\n }\r\n\r\n public onChange(value: string) {\r\n this.value = value;\r\n }\r\n\r\n public open() {\r\n this.completer.open();\r\n }\r\n\r\n public close() {\r\n this.completer.clear();\r\n }\r\n\r\n public focus(): void {\r\n if (this.mdbInput) {\r\n this.mdbInput.nativeElement.focus();\r\n } else {\r\n this._focus = true;\r\n }\r\n }\r\n\r\n public isOpen() {\r\n return this._open;\r\n }\r\n}\r\n","import { Directive, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { CompleterItem } from '../components/completer-item.component';\r\n\r\nexport interface CompleterList {\r\n search(term: string): void;\r\n open(): void;\r\n isOpen(open: boolean): void;\r\n clear(): void;\r\n}\r\n\r\nexport interface CompleterDropdown {\r\n clear(): void;\r\n selectCurrent(): void;\r\n nextRow(): void;\r\n prevRow(): void;\r\n}\r\n\r\n@Directive({\r\n selector: '[mdbCompleter]',\r\n})\r\nexport class MdbCompleterDirective {\r\n @Output() public selected = new EventEmitter<CompleterItem>();\r\n @Output() public highlighted = new EventEmitter<CompleterItem>();\r\n @Output() public opened = new EventEmitter<boolean>();\r\n\r\n private list: CompleterList;\r\n private dropdown: CompleterDropdown;\r\n private _hasHighlighted = false;\r\n private _hasSelected = false;\r\n private _cancelBlur = false;\r\n private _isOpen = false;\r\n private _autoHighlightIndex: number;\r\n\r\n public setToNullValue: any = null;\r\n public registerList(list: CompleterList) {\r\n this.list = list;\r\n }\r\n\r\n public registerDropdown(dropdown: CompleterDropdown) {\r\n this.dropdown = dropdown;\r\n }\r\n\r\n public onHighlighted(item: CompleterItem) {\r\n this.highlighted.emit(item);\r\n this._hasHighlighted = !!item;\r\n }\r\n\r\n public onSelected(item: CompleterItem, clearList = true) {\r\n this.selected.emit(item);\r\n if (item) {\r\n this._hasSelected = true;\r\n }\r\n if (clearList) {\r\n this.clear();\r\n }\r\n }\r\n\r\n public search(term: string) {\r\n if (this._hasSelected) {\r\n // this.selected.emit(null);\r\n this.selected.emit(this.setToNullValue);\r\n this._hasSelected = false;\r\n }\r\n if (this.list) {\r\n this.list.search(term);\r\n }\r\n }\r\n\r\n public clear() {\r\n if (this.dropdown) {\r\n this.dropdown.clear();\r\n }\r\n if (this.list) {\r\n this.list.clear();\r\n }\r\n this._hasHighlighted = false;\r\n this.isOpen = false;\r\n }\r\n\r\n public selectCurrent() {\r\n if (this.dropdown) {\r\n this.dropdown.selectCurrent();\r\n }\r\n }\r\n\r\n public nextRow() {\r\n if (this.dropdown) {\r\n this.dropdown.nextRow();\r\n }\r\n }\r\n\r\n public prevRow() {\r\n if (this.dropdown) {\r\n this.dropdown.prevRow();\r\n }\r\n }\r\n\r\n public hasHighlighted() {\r\n return this._hasHighlighted;\r\n }\r\n\r\n public cancelBlur(cancel: boolean) {\r\n this._cancelBlur = cancel;\r\n }\r\n\r\n public isCancelBlur() {\r\n return this._cancelBlur;\r\n }\r\n\r\n public open() {\r\n if (!this._isOpen) {\r\n this.isOpen = true;\r\n this.list.open();\r\n }\r\n }\r\n\r\n public get isOpen() {\r\n return this._isOpen;\r\n }\r\n\r\n public set isOpen(open: boolean) {\r\n this._isOpen = open;\r\n this.opened.emit(this._isOpen);\r\n if (this.list) {\r\n this.list.isOpen(open);\r\n }\r\n }\r\n\r\n public get autoHighlightIndex() {\r\n return this._autoHighlightIndex;\r\n }\r\n\r\n public set autoHighlightIndex(index: number) {\r\n this._autoHighlightIndex = index;\r\n }\r\n\r\n public get hasSelected() {\r\n return this._hasSelected;\r\n }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Host, HostListener, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { CompleterItem } from '../components/completer-item.component';\r\nimport { MdbCompleterDirective, CompleterDropdown } from './completer.directive';\r\n\r\n\r\nexport interface CtrRowElement {\r\n setHighlighted(selected: boolean): void;\r\n getNativeElement(): any;\r\n getDataItem(): CompleterItem;\r\n}\r\n\r\nexport class CtrRowItem {\r\n constructor(public row: CtrRowElement, public index: number) { }\r\n}\r\n\r\n@Directive({\r\n selector: '[mdbDropdown]',\r\n})\r\nexport class MdbDropdownDirective implements CompleterDropdown, OnDestroy, OnInit, AfterViewInit {\r\n\r\n public setToNullValue: any = null;\r\n private rows: CtrRowItem[] = [];\r\n // private currHighlighted: CtrRowItem;\r\n private currHighlighted: CtrRowItem | any;\r\n // private isScrollOn: boolean;\r\n private isScrollOn: boolean | any;\r\n\r\n constructor( @Host() private completer: MdbCompleterDirective, private el: ElementRef) {\r\n this.completer.registerDropdown(this);\r\n }\r\n\r\n public ngOnInit() {\r\n const css = getComputedStyle(this.el.nativeElement);\r\n this.isScrollOn = css.maxHeight && css.overflowY === 'auto';\r\n }\r\n\r\n public ngOnDestroy() {\r\n // this.completer.registerDropdown(null);\r\n this.completer.registerDropdown(this.setToNullValue);\r\n }\r\n\r\n public ngAfterViewInit() {\r\n const autoHighlightIndex = this.completer.autoHighlightIndex;\r\n if (autoHighlightIndex) {\r\n setTimeout(\r\n () => {\r\n this.highlightRow(autoHighlightIndex);\r\n },\r\n 0\r\n );\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event']) public onMouseDown() {\r\n // Support for canceling blur on IE (issue #158)\r\n this.completer.cancelBlur(true);\r\n setTimeout(\r\n () => {\r\n this.completer.cancelBlur(false);\r\n },\r\n 0\r\n );\r\n }\r\n\r\n public registerRow(row: CtrRowItem) {\r\n this.rows.push(row);\r\n }\r\n\r\n public highlightRow(index: number): any {\r\n\r\n const highlighted = this.rows.find(row => row.index === index);\r\n\r\n if (index < 0) {\r\n if (this.currHighlighted) {\r\n this.currHighlighted.row.setHighlighted(false);\r\n }\r\n this.currHighlighted = undefined;\r\n this.completer.onHighlighted(this.setToNullValue);\r\n return;\r\n }\r\n\r\n if (!highlighted) {\r\n return;\r\n }\r\n\r\n if (this.currHighlighted) {\r\n this.currHighlighted.row.setHighlighted(false);\r\n }\r\n\r\n this.currHighlighted = highlighted;\r\n this.currHighlighted.row.setHighlighted(true);\r\n this.completer.onHighlighted(this.currHighlighted.row.getDataItem());\r\n\r\n if (this.isScrollOn && this.currHighlighted) {\r\n const rowTop = this.dropdownRowTop();\r\n if (rowTop < 0) {\r\n this.dropdownScrollTopTo(rowTop - 1);\r\n } else {\r\n const row = this.currHighlighted.row.getNativeElement();\r\n if (this.dropdownHeight() < row.getBoundingClientRect().bottom) {\r\n this.dropdownScrollTopTo(this.dropdownRowOffsetHeight(row));\r\n if (this.el.nativeElement.getBoundingClientRect().bottom - this.dropdownRowOffsetHeight(row)\r\n < row.getBoundingClientRect().top) {\r\n this.dropdownScrollTopTo(row.getBoundingClientRect().top - (this.el.nativeElement.getBoundingClientRect().top\r\n // + parseInt(getComputedStyle(this.el.nativeElement).paddingTop, 10)));\r\n + parseInt(getComputedStyle(this.el.nativeElement).paddingTop as any, 10)));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public clear() {\r\n this.rows = [];\r\n }\r\n\r\n public onSelected(item: CompleterItem) {\r\n this.completer.onSelected(item);\r\n }\r\n\r\n public selectCurrent() {\r\n if (this.currHighlighted) {\r\n this.onSelected(this.currHighlighted.row.getDataItem());\r\n } else if (this.rows.length > 0) {\r\n this.onSelected(this.rows[0].row.getDataItem());\r\n }\r\n\r\n }\r\n\r\n public nextRow() {\r\n let nextRowIndex = 0;\r\n if (this.currHighlighted) {\r\n nextRowIndex = this.currHighlighted.index + 1;\r\n }\r\n this.highlightRow(nextRowIndex);\r\n }\r\n\r\n public prevRow() {\r\n let nextRowIndex = -1;\r\n if (this.currHighlighted) {\r\n nextRowIndex = this.currHighlighted.index - 1;\r\n }\r\n this.highlightRow(nextRowIndex);\r\n }\r\n\r\n private dropdownScrollTopTo(offset: any) {\r\n this.el.nativeElement.scrollTop = this.el.nativeElement.scrollTop + offset;\r\n }\r\n\r\n private dropdownRowTop() {\r\n return this.currHighlighted.row.getNativeElement().getBoundingClientRect().top -\r\n (this.el.nativeElement.getBoundingClientRect().top +\r\n // parseInt(getComputedStyle(this.el.nativeElement).paddingTop, 10));\r\n parseInt(getComputedStyle(this.el.nativeElement).paddingTop as any, 10));\r\n }\r\n\r\n private dropdownHeight() {\r\n return this.el.nativeElement.getBoundingClientRect().top +\r\n // parseInt(getComputedStyle(this.el.nativeElement).maxHeight, 10);\r\n parseInt(getComputedStyle(this.el.nativeElement).maxHeight as any, 10);\r\n }\r\n\r\n private dropdownRowOffsetHeight(row: any) {\r\n const css = getComputedStyle(row);\r\n return row.offsetHeight +\r\n // parseInt(css.marginTop, 10) + parseInt(css.marginBottom, 10);\r\n parseInt(css.marginTop as any, 10) + parseInt(css.marginBottom as any, 10);\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Host, HostListener, Input, Output } from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\nimport { CompleterItem } from '../components/completer-item.component';\r\nimport { MdbCompleterDirective } from './completer.directive';\r\nimport { isNil } from '../globals';\r\n\r\n\r\n\r\n// keyboard events\r\nconst KEY_DW = 40;\r\nconst KEY_RT = 39;\r\nconst KEY_UP = 38;\r\nconst KEY_LF = 37;\r\nconst KEY_ES = 27;\r\nconst KEY_EN = 13;\r\nconst KEY_TAB = 9;\r\n\r\n@Directive({\r\n selector: '[mdbInput]',\r\n})\r\nexport class MdbInputDirective {\r\n @Input('clearSelected') public clearSelected = false;\r\n @Input('clearUnselected') public clearUnselected = false;\r\n @Input('overrideSuggested') public overrideSuggested = false;\r\n @Input('fillHighlighted') public fillHighlighted = true;\r\n @Input('openOnFocus') public openOnFocus = false;\r\n\r\n @Output() public ngModelChange: EventEmitter<any> = new EventEmitter();\r\n private _searchStr = '';\r\n private _displayStr = '';\r\n private ngModel: NgModel | any;\r\n // private blurTimer: Subscription = null;\r\n private blurTimer: Subscription | any = null;\r\n // constructor( @Host() private completer: MdbCompleterDirective, private ngModel: NgModel, private el: ElementRef) {\r\n constructor( @Host() private completer: MdbCompleterDirective, private tempngModel: NgModel, private el: ElementRef) {\r\n this.ngModel = this.tempngModel;\r\n\r\n this.completer.selected.subscribe((item: CompleterItem) => {\r\n if (!item) {\r\n return;\r\n }\r\n if (this.clearSelected) {\r\n this.searchStr = '';\r\n } else {\r\n this.searchStr = item.title;\r\n }\r\n this.ngModelChange.emit(this.searchStr);\r\n });\r\n this.completer.highlighted.subscribe((item: CompleterItem) => {\r\n if (this.fillHighlighted) {\r\n if (item) {\r\n this._displayStr = item.title;\r\n this.ngModelChange.emit(item.title);\r\n } else {\r\n this._displayStr = this.searchStr;\r\n this.ngModelChange.emit(this.searchStr);\r\n }\r\n }\r\n });\r\n // this.ngModel.valueChanges.subscribe(value => {\r\n this.ngModel.valueChanges.subscribe((value: any) => {\r\n if (!isNil(value) && this._displayStr !== value) {\r\n if (this.searchStr !== value) {\r\n this.completer.search(value);\r\n }\r\n this.searchStr = value;\r\n }\r\n });\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public keyupHandler(event: any): any {\r\n if (event.keyCode === KEY_LF || event.keyCode === KEY_RT || event.keyCode === KEY_TAB) {\r\n // do nothing\r\n return;\r\n }\r\n\r\n if (event.keyCode === KEY_UP || event.keyCode === KEY_EN) {\r\n event.preventDefault();\r\n } else if (event.keyCode === KEY_DW) {\r\n event.preventDefault();\r\n\r\n this.completer.search(this.searchStr);\r\n } else if (event.keyCode === KEY_ES) {\r\n this.restoreSearchValue();\r\n this.completer.clear();\r\n } else {\r\n if (this.searchStr) {\r\n this.completer.open();\r\n }\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n public keydownHandler(event: any) {\r\n if (event.keyCode === KEY_EN) {\r\n if (this.completer.hasHighlighted()) {\r\n event.preventDefault();\r\n }\r\n this.handleSelection();\r\n } else if (event.keyCode === KEY_DW) {\r\n event.preventDefault();\r\n this.completer.open();\r\n this.completer.nextRow();\r\n } else if (event.keyCode === KEY_UP) {\r\n event.preventDefault();\r\n this.completer.prevRow();\r\n } else if (event.keyCode === KEY_TAB) {\r\n this.handleSelection();\r\n } else if (event.keyCode === KEY_ES) {\r\n // This is very specific to IE10/11 #272\r\n // without this, IE clears the input text\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n public onBlur(): any {\r\n // Check if we need to cancel Blur for IE\r\n if (this.completer.isCancelBlur()) {\r\n setTimeout(\r\n () => {\r\n // get the focus back\r\n this.el.nativeElement.focus();\r\n },\r\n 0\r\n );\r\n return;\r\n }\r\n this.blurTimer = Observable.timer(200).subscribe(\r\n () => {\r\n this.blurTimer.unsubscribe();\r\n this.blurTimer = null;\r\n if (this.overrideSuggested) {\r\n this.completer.onSelected({ title: this.searchStr, originalObject: null });\r\n } else {\r\n if (this.clearUnselected && !this.completer.hasSelected) {\r\n this.searchStr = '';\r\n this.el.nativeElement.value = '';\r\n } else {\r\n this.restoreSearchValue();\r\n }\r\n }\r\n this.completer.clear();\r\n }\r\n );\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n public onfocus() {\r\n if (this.blurTimer) {\r\n this.blurTimer.unsubscribe();\r\n this.blurTimer = null;\r\n }\r\n if (this.openOnFocus) {\r\n this.completer.open();\r\n }\r\n }\r\n\r\n public get searchStr() {\r\n return this._searchStr;\r\n }\r\n\r\n public set searchStr(term: string) {\r\n this._searchStr = term;\r\n this._displayStr = term;\r\n }\r\n\r\n private handleSelection() {\r\n if (this.completer.hasHighlighted()) {\r\n this._searchStr = '';\r\n this.completer.selectCurrent();\r\n } else if (this.overrideSuggested) {\r\n this.completer.onSelected({ title: this.searchStr, originalObject: null });\r\n } else {\r\n this.completer.clear();\r\n }\r\n }\r\n\r\n private restoreSearchValue() {\r\n if (this.fillHighlighted) {\r\n if (this._displayStr !== this.searchStr) {\r\n this._displayStr = this.searchStr;\r\n this.ngModelChange.emit(this.searchStr);\r\n }\r\n }\r\n }\r\n}\r\n","import 'rxjs/add/observable/timer';\r\nimport { ChangeDetectorRef, Directive, Host, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n\r\n\r\nimport { MdbCompleterDirective, CompleterList } from './completer.directive';\r\nimport { CompleterData } from '../services/completer-data.service';\r\nimport { CompleterItem } from '../components/completer-item.component';\r\nimport { MIN_SEARCH_LENGTH, PAUSE, CLEAR_TIMEOUT, isNil } from '../globals';\r\n\r\n\r\nexport class CtrListContext {\r\n constructor(\r\n public results: CompleterItem[],\r\n public searching: boolean,\r\n public searchInitialized: boolean,\r\n public isOpen: boolean\r\n ) { }\r\n}\r\n\r\n@Directive({\r\n selector: '[mdbList]',\r\n})\r\nexport class MdbListDirective implements OnInit, CompleterList {\r\n @Input() public mdbListMinSearchLength = MIN_SEARCH_LENGTH;\r\n @Input() public mdbListPause = PAUSE;\r\n @Input() public mdbListAutoMatch = false;\r\n @Input() public mdbListAutoHighlight: any = false;\r\n\r\n // private _dataService: CompleterData ;\r\n private _dataService: CompleterData | any;\r\n // private results: CompleterItem[] = [];\r\n public setToNullValue: any = null;\r\n // private term: string = null;\r\n private term: string | any = null;\r\n // private searching = false;\r\n // private searchTimer: Subscription = null;\r\n private searchTimer: Subscription | any = null;\r\n // private clearTimer: Subscription = null;\r\n private clearTimer: Subscription | any = null;\r\n private ctx = new CtrListContext([], false, false, false);\r\n private _initialValue: any = null;\r\n private completer: MdbCompleterDirective | any;\r\n constructor(\r\n // @Host() private completer: MdbCompleterDirective,\r\n @Host() private tmpCompleter: MdbCompleterDirective,\r\n private templateRef: TemplateRef<CtrListContext>,\r\n private viewContainer: ViewContainerRef,\r\n private cd: ChangeDetectorRef) {\r\n this.completer = this.tmpCompleter;\r\n }\r\n\r\n public ngOnInit() {\r\n this.completer.registerList(this);\r\n this.viewContainer.createEmbeddedView(\r\n this.templateRef,\r\n new CtrListContext([], false, false, false)\r\n );\r\n }\r\n\r\n @Input('mdbList')\r\n public set dataService(newService: CompleterData) {\r\n this._dataService = newService;\r\n if (this._dataService) {\r\n this._dataService\r\n // .catch(err => this.handleError(err))\r\n .catch((err: any) => this.handleError(err))\r\n // .subscribe(results => {\r\n .subscribe((results: any) => {\r\n this.ctx.searchInitialized = true;\r\n this.ctx.searching = false;\r\n this.ctx.results = results;\r\n if (this.mdbListAutoMatch && results.length === 1 && results[0].title && !isNil(this.term) &&\r\n results[0].title.toLocaleLowerCase() === this.term.toLocaleLowerCase()) {\r\n // Do automatch\r\n this.completer.onSelected(results[0]);\r\n }\r\n if (this._initialValue) {\r\n this.initialValue = this._initialValue;\r\n // this._initialValue = null;\r\n this._initialValue = this.setToNullValue;\r\n }\r\n if (this.mdbListAutoHighlight) {\r\n this.completer.autoHighlightIndex = this.getBestMatchIndex();\r\n }\r\n this.refreshTemplate();\r\n });\r\n }\r\n }\r\n\r\n @Input('mdbListInitialValue')\r\n public set initialValue(value: any) {\r\n if (this._dataService && typeof this._dataService.convertToItem === 'function') {\r\n setTimeout(() => {\r\n const initialItem = this._dataService.convertToItem(value);\r\n if (initialItem) {\r\n this.completer.onSelected(initialItem, false);\r\n }\r\n });\r\n } else if (!this._dataService) {\r\n this._initialValue = value;\r\n }\r\n }\r\n\r\n public search(term: string) {\r\n if (!isNil(term) && term.length >= this.mdbListMinSearchLength && this.term !== term) {\r\n if (this.searchTimer) {\r\n this.searchTimer.unsubscribe();\r\n this.searchTimer = null;\r\n }\r\n if (!this.ctx.searching) {\r\n this.ctx.results = [];\r\n this.ctx.searching = true;\r\n this.ctx.searchInitialized = true;\r\n this.refreshTemplate();\r\n }\r\n if (this.clearTimer) {\r\n this.clearTimer.unsubscribe();\r\n }\r\n this.searchTimer = Observable.timer(this.mdbListPause).subscribe(() => {\r\n this.searchTimerComplete(term);\r\n });\r\n } else if (!isNil(term) && term.length < this.mdbListMinSearchLength) {\r\n this.clear();\r\n }\r\n }\r\n\r\n public clear() {\r\n if (this.searchTimer) {\r\n this.searchTimer.unsubscribe();\r\n }\r\n this.clearTimer = Observable.timer(CLEAR_TIMEOUT).subscribe(() => {\r\n this._clear();\r\n });\r\n }\r\n\r\n public open() {\r\n if (!this.ctx.searchInitialized) {\r\n this.search('');\r\n }\r\n this.refreshTemplate();\r\n }\r\n\r\n public isOpen(open: boolean) {\r\n this.ctx.isOpen = open;\r\n }\r\n\r\n private _clear() {\r\n if (this.searchTimer) {\r\n this.searchTimer.unsubscribe();\r\n this.searchTimer = null;\r\n }\r\n if (this.dataService) {\r\n this.dataService.cancel();\r\n }\r\n\r\n this.viewContainer.clear();\r\n }\r\n\r\n private searchTimerComplete(term: string): any {\r\n // Begin the search\r\n if (isNil(term) || term.length < this.mdbListMinSearchLength) {\r\n this.ctx.searching = false;\r\n return;\r\n }\r\n this.term = term;\r\n this._dataService.search(term);\r\n }\r\n\r\n private handleError(error: any) {\r\n this.ctx.searching = false;\r\n let errMsg = 'search error';\r\n if (error) {\r\n errMsg = (error.message) ? error.message :\r\n error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n }\r\n\r\n if (console && console.error) {\r\n console.error(errMsg); // log to console\r\n }\r\n this.refreshTemplate();\r\n\r\n return Observable.throw(errMsg);\r\n }\r\n\r\n private refreshTemplate() {\r\n // Recreate the template\r\n this.viewContainer.clear();\r\n if (this.ctx.results && this.ctx.isOpen) {\r\n this.viewContainer.createEmbeddedView(\r\n this.templateRef,\r\n this.ctx\r\n );\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n private getBestMatchIndex() {\r\n if (!this.ctx.results) {\r\n return null;\r\n }\r\n\r\n // First try to find the exact term\r\n let bestMatch = this.ctx.results.findIndex(item => item.title.toLowerCase() === this.term.toLocaleLowerCase());\r\n // If not try to find the first item that starts with the term\r\n if (bestMatch < 0) {\r\n bestMatch = this.ctx.results.findIndex(item => item.title.toLowerCase().startsWith(this.term.toLocaleLowerCase()));\r\n }\r\n // If not try to find the first item that includes the term\r\n if (bestMatch < 0) {\r\n bestMatch = this.ctx.results.findIndex(item => item.title.toLowerCase().includes(this.term.toLocaleLowerCase()));\r\n }\r\n\r\n return bestMatch < 0 ? null : bestMatch;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, Host, HostListener, Input, Renderer, OnInit } from '@angular/core';\r\n\r\nimport { CompleterItem } from '../components/completer-item.component';\r\nimport { MdbDropdownDirective, CtrRowElement, CtrRowItem } from './dropdown.directive';\r\n\r\n@Directive({\r\n selector: '[mdbRow]',\r\n})\r\nexport class MdbRowDirective implements CtrRowElement, OnInit {\r\n\r\n private selected = false;\r\n private _rowIndex: number;\r\n private _item: CompleterItem;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer, @Host() private dropdown: MdbDropdownDirective) { }\r\n\r\n public ngOnInit() {\r\n this.dropdown.registerRow(new CtrRowItem(this, this._rowIndex));\r\n }\r\n\r\n @Input()\r\n set mdbRow(index: number) {\r\n this._rowIndex = index;\r\n }\r\n\r\n @Input()\r\n set dataItem(item: CompleterItem) {\r\n this._item = item;\r\n }\r\n\r\n @HostListener('click', ['$event']) public onClick() {\r\n this.dropdown.onSelected(this._item);\r\n }\r\n\r\n @HostListener('mouseenter', ['$event']) public onMouseEnter() {\r\n this.dropdown.highlightRow(this._rowIndex);\r\n }\r\n\r\n public setHighlighted(selected: boolean) {\r\n this.selected = selected;\r\n this.renderer.setElementClass(this.el.nativeElement, 'completer-selected-row', this.selected);\r\n }\r\n\r\n public getNativeElement() {\r\n return this.el.nativeElement;\r\n }\r\n\r\n public getDataItem() {\r\n return this._item;\r\n }\r\n}\r\n","export const MAX_CHARS = 524288; // the default max length per the html maxlength attribute\r\nexport const MIN_SEARCH_LENGTH = 3;\r\nexport const PAUSE = 100;\r\nexport const TEXT_SEARCHING = 'Searching...';\r\nexport const TEXT_NO_RESULTS = 'No results found';\r\nexport const CLEAR_TIMEOUT = 50;\r\n\r\nexport function isNil(value: string) {\r\n return typeof value === 'undefined' || value === null;\r\n};\r\n","export {Ng2CompleterModule} from './completerModule';\r\n\r\nexport {CompleterComponent} from './components/completer.component';\r\nexport {CompleterListItemComponent} from './components/completer-list-item.component';\r\nexport {CompleterService} from './services/completer.service';\r\nexport {CompleterData} from './services/completer-data.service';\r\nexport {localDataFactory, LocalDataFactoryProvider, remoteDataFactory, RemoteDataFactoryProvider} from './services/data-factory.service';\r\nexport {CompleterItem} from './components/completer-item.component';\r\nexport {LocalData} from './services/local-data.service';\r\nexport {RemoteData} from './services/remote-data.service';\r\nexport {CompleterBaseData} from './services/base-data.service';\r\nexport {MdbCompleterDirective} from './directives/completer.directive';\r\nexport {MdbDropdownDirective} from './directives/dropdown.directive';\r\nexport {MdbInputDirective} from './directives/input.directive';\r\nexport {MdbListDirective} from './directives/list-context.directive';\r\nexport {MdbRowDirective} from './directives/row.directive';\r\n","import { Subject } from 'rxjs/Subject';\r\n\r\nimport { CompleterItem } from '../components/completer-item.component';\r\nimport { CompleterData } from './completer-data.service';\r\nimport { isNil } from '../globals';\r\n\r\nexport abstract class CompleterBaseData extends Subject<CompleterItem[]> implements CompleterData {\r\n\r\n\r\n protected _searchFields: string;\r\n protected _titleField: string;\r\n protected _descriptionField: string;\r\n protected _imageField: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public abstract search(term: string): void;\r\n\r\n public cancel() { }\r\n\r\n public searchFields(searchFields: string) {\r\n this._searchFields = searchFields;\r\n return this;\r\n }\r\n\r\n public titleField(titleField: string) {\r\n this._titleField = titleField;\r\n return this;\r\n }\r\n\r\n public descriptionField(descriptionField: string) {\r\n this._descriptionField = descriptionField;\r\n return this;\r\n }\r\n\r\n public imageField(imageField: string) {\r\n this._imageField = imageField;\r\n return this;\r\n }\r\n\r\n public convertToItem(data: any) {\r\n // let image: string = null;\r\n let image: string | any = null;\r\n let formattedText: string;\r\n // let formattedDesc: string;\r\n let formattedDesc: string | any;\r\n\r\n if (this._titleField) {\r\n formattedText = this.extractTitle(data);\r\n } else {\r\n formattedText = data;\r\n }\r\n\r\n if (this._descriptionField) {\r\n formattedDesc = this.extractValue(data, this._descriptionField);\r\n }\r\n\r\n if (this._imageField) {\r\n image = this.extractValue(data, this._imageField);\r\n }\r\n\r\n if (isNil(formattedText)) {\r\n return null;\r\n }\r\n\r\n return {\r\n title: formattedText,\r\n description: formattedDesc,\r\n image: image,\r\n originalObject: data\r\n } as CompleterItem;\r\n\r\n }\r\n\r\n protected extractMatches(data: any[], term: string) {\r\n let matches: any[] = [];\r\n const searchFields = this._searchFields ? this._searchFields.split(',') : null;\r\n if (this._searchFields !== null && this._searchFields !== undefined && term !== '') {\r\n matches = data.filter(item => {\r\n const values: any[] = searchFields ?\r\n searchFields.map(searchField => this.extractValue(item, searchField)).filter(value => !!value) : [item];\r\n return values.some(value => value.toString().toLowerCase().indexOf(term.toString().toLowerCase()) >= 0);\r\n });\r\n } else {\r\n matches = data;\r\n }\r\n\r\n\r\n return matches;\r\n }\r\n\r\n protected extractTitle(item: any) {\r\n // split title fields and run extractValue for each and join with ' '\r\n return this._titleField.split(',')\r\n .map((field) => {\r\n return this.extractValue(item, field);\r\n })\r\n .reduce((acc, titlePart) => acc ? `${acc} ${titlePart}` : titlePart);\r\n }\r\n\r\n protected extractValue(obj: any, key: string) {\r\n let keys: string[];\r\n let result: any;\r\n if (key) {\r\n keys = key.split('.');\r\n result = obj;\r\n for (let i = 0; i < keys.length; i++) {\r\n if (result) {\r\n result = result[keys[i]];\r\n }\r\n }\r\n } else {\r\n result = obj;\r\n }\r\n return result;\r\n }\r\n\r\n protected processResults(matches: string[]): CompleterItem[] {\r\n let i: number;\r\n const results: CompleterItem[] = [];\r\n\r\n if (matches && matches.length > 0) {\r\n for (i = 0; i < matches.length; i++) {\r\n const item = this.convertToItem(matches[i]);\r\n if (item) {\r\n results.push(item);\r\n }\r\n }\r\n }\r\n return results;\r\n }\r\n}\r\n","import {Injectable, Inject} from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport {LocalData} from './local-data.service';\r\nimport {RemoteData} from './remote-data.service';\r\n\r\n\r\n@Injectable()\r\nexport class CompleterService {\r\n constructor(\r\n @Inject(LocalData) private localDataFactory: any, // Using any instead of () => LocalData because on AoT errors\r\n @Inject(RemoteData) private remoteDataFactory: any // Using any instead of () => LocalData because on AoT errors\r\n ) { }\r\n\r\n public local(data: any[] | Observable<any>, searchFields = '', titleField = ''): LocalData {\r\n\r\n const localData = this.localDataFactory();\r\n return localData\r\n .data(data)\r\n .searchFields(searchFields)\r\n .titleField(titleField);\r\n }\r\n\r\n public remote(url: string, searchFields = '', titleField = ''): RemoteData {\r\n\r\n const remoteData = this.remoteDataFactory();\r\n return remoteData\r\n .remoteUrl(url)\r\n .searchFields(searchFields)\r\n .titleField(titleField);\r\n }\r\n}\r\n","import {Http} from '@angular/http';\r\n\r\nimport {LocalData} from './local-data.service';\r\nimport {RemoteData} from './remote-data.service';\r\n\r\n\r\nexport function localDataFactory () {\r\n return () => {\r\n return new LocalData();\r\n };\r\n}\r\n\r\nexport function remoteDataFactory (http: Http) {\r\n return () => {\r\n return new RemoteData(http);\r\n };\r\n}\r\n\r\nexport let LocalDataFactoryProvider = {provide: LocalData, useFactory: localDataFactory};\r\nexport let RemoteDataFactoryProvider = {provide: RemoteData, useFactory: remoteDataFactory, deps: [Http]};\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\n\r\nimport { CompleterBaseData } from './base-data.service';\r\nimport { CompleterItem } from '../components/completer-item.component';\r\n\r\n@Injectable()\r\nexport class LocalData extends CompleterBaseData {\r\n\r\n private _data: any[];\r\n // private savedTerm: string;\r\n private savedTerm: string | any;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n public data(data: any[] | Observable<any[]>) {\r\n if (data instanceof Observable) {\r\n (<Observable<any[]>>data).subscribe((res) => {\r\n this._data = res;\r\n if (this.savedTerm) {\r\n this.search(this.savedTerm);\r\n }\r\n });\r\n } else {\r\n this._data = <any[]>data;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public search(term: string): void {\r\n if (!this._data) {\r\n this.savedTerm = term;\r\n } else {\r\n this.savedTerm = null;\r\n const matches: any[] = this.extractMatches(this._data, term);\r\n this.next(this.processResults(matches));\r\n }\r\n }\r\n\r\n // public convertToItem(data: any): CompleterItem {\r\n public convertToItem(data: any): CompleterItem | any {\r\n return super.convertToItem(data);\r\n }\r\n}\r\n","import { Http, Response, Headers, RequestOptions } from '@angular/http';\r\nimport { Subscription } from 'rxjs/Subscription';\r\nimport 'rxjs/add/operator/map';\r\nimport 'rxjs/add/operator/catch';\r\n\r\nimport { CompleterBaseData } from './base-data.service';\r\nimport { CompleterItem } from '../components/completer-item.component';\r\n\r\nexport class RemoteData extends CompleterBaseData {\r\n public setToNullValue: any = null;\r\n private _remoteUrl: string;\r\n private remoteSearch: Subscription;\r\n // private _urlFormater: (term: string) => string | any = null;\r\n private _urlFormater: (term: string) => string | any = this.setToNullValue;\r\n // private _dataField: string = null;\r\n private _dataField: string | any = null;\r\n private _headers: Headers;\r\n private _requestOptions: RequestOptions;\r\n\r\n\r\n constructor(private http: Http) {\r\n super();\r\n }\r\n\r\n public remoteUrl(remoteUrl: string) {\r\n this._remoteUrl = remoteUrl;\r\n return this;\r\n }\r\n\r\n public urlFormater(urlFormater: (term: string) => string) {\r\n this._urlFormater = urlFormater;\r\n }\r\n\r\n public dataField(dataField: string) {\r\n this._dataField = dataField;\r\n }\r\n\r\n /**\r\n * @deprecated Please use the requestOptions to pass headers with the search request\r\n */\r\n public headers(headers: Headers) {\r\n this._headers = headers;\r\n }\r\n\r\n public requestOptions(requestOptions: RequestOptions) {\r\n this._requestOptions = requestOptions;\r\n }\r\n\r\n public search(term: string): void {\r\n this.cancel();\r\n // let params = {};\r\n let url = '';\r\n if (this._urlFormater) {\r\n url = this._urlFormater(term);\r\n } else {\r\n url = this._remoteUrl + encodeURIComponent(term);\r\n }\r\n\r\n /*\r\n * If requestOptions are provided, they will override anything set in headers.\r\n *\r\n * If no requestOptions are provided, a new RequestOptions object will be instantiated,\r\n * and either the provided headers or a new Headers() object will be sent.\r\n */\r\n if (!this._requestOptions) {\r\n this._requestOptions = new RequestOptions();\r\n this._requestOptions.headers = this._headers || new Headers();\r\n }\r\n\r\n this.remoteSearch = this.http.get(url, this._requestOptions)\r\n .map((res: Response) => res.json())\r\n .map((data: any) => {\r\n const matches = this.extractValue(data, this._dataField);\r\n return this.extractMatches(matches, term);\r\n })\r\n .map(\r\n (matches: any[]) => {\r\n const results = this.processResults(matches);\r\n this.next(results);\r\n return results;\r\n })\r\n .catch((err) => {\r\n this.error(err);\r\n // return null;\r\n return this.setToNullValue;\r\n })\r\n .subscribe();\r\n }\r\n\r\n public cancel() {\r\n if (this.remoteSearch) {\r\n this.remoteSearch.unsubscribe();\r\n }\r\n }\r\n\r\n // public convertToItem(data: any): CompleterItem {\r\n public convertToItem(data: any): CompleterItem | any {\r\n return super.convertToItem(data);\r\n }\r\n}\r\n","module.exports = \"<div class=\\\"card-overflow col-12\\\">\\r\\n <div class=\\\"card-front\\\">\\r\\n <ng-content select=\\\"card-front\\\" ></ng-content>\\r\\n </div>\\r\\n <div class=\\\"card-revealed\\\" *ngIf=\\\"show\\\" [@socialsState]=\\\"socials\\\" >\\r\\n <ng-content select=\\\"card-revealed\\\" ></ng-content>\\r\\n </div>\\r\\n</div>\\r\\n\"","import { Component } from '@angular/core';\r\nimport { socialsState } from '../animations/animations.component';\r\n\r\n@Component({\r\n selector: 'mdb-card-reveal',\r\n templateUrl: 'card-reveal.component.html',\r\n animations: [socialsState]\r\n})\r\n\r\nexport class CardRevealComponent {\r\n public socials: any;\r\n public show: boolean;\r\n\r\n toggle() {\r\n this.show = !this.show;\r\n this.socials = (this.socials === 'active') ? 'inactive' : 'active';\r\n }\r\n}\r\n","module.exports = \"<div class=\\\"flip-container card-wrapper\\\" [ngClass]=\\\"{'rotate': rotate}\\\">\\r\\n <div class=\\\"flipper card-rotating effect__click tp-box\\\">\\r\\n <ng-content></ng-content>\\r\\n </div>\\r\\n</div>\\r\\n\"","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mdb-card-rotating',\r\n templateUrl: 'card-rotating.component.html'\r\n})\r\n\r\nexport class CardRotatingComponent {\r\n public rotate = false;\r\n\r\n toggle() {\r\n this.rotate = !this.rotate;\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CardRevealComponent } from './card-reveal.component';\r\nimport { CardRotatingComponent } from './card-rotating.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ CardRevealComponent, CardRotatingComponent],\r\n exports: [CardRevealComponent, CardRotatingComponent]\r\n})\r\nexport class CardsModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: CardsModule, providers: []};\r\n }\r\n}\r\n","export { CardsModule } from './cards.module';\r\nexport { CardRevealComponent } from './card-reveal.component';\r\nexport { CardRotatingComponent } from './card-rotating.component';\r\n","module.exports = \"<!-- Line 27: Deleted (focus)=\\\"onFocusInput($event)\\\" for better use in Firefox. If other strange problems will occur, please paste it in line 27. -->\\r\\n<div class=\\\"mydp picker\\\" [ngClass]=\\\"{'picker--opened': showSelector}\\\" [ngStyle]=\\\"{'width': opts.width}\\\">\\r\\n <div class=\\\"md-form\\\">\\r\\n <label *ngIf=\\\"label.length > 0\\\" \\r\\n [ngClass]=\\\"{\\r\\n 'active': checkActive(),\\r\\n 'disabled': opts.componentDisabled\\r\\n }\\\">{{ label }}</label>\\r\\n <input \\r\\n type=\\\"text\\\" \\r\\n class=\\\"form-control mydp-date\\\" \\r\\n [attr.aria-label]=\\\"opts.ariaLabelInputField\\\" \\r\\n (click)=\\\"openBtnClicked()\\\" \\r\\n [attr.maxlength]=\\\"opts.dateFormat.length\\\" \\r\\n [ngClass]=\\\"{\\r\\n 'selectiondisabled': opts.componentDisabled,\\r\\n 'disabled': opts.componentDisabled\\r\\n }\\\"\\r\\n placeholder=\\\"{{ placeholder }}\\\" \\r\\n [ngModel]=\\\"selectionDayTxt\\\" \\r\\n (ngModelChange)=\\\"onUserDateInput($event)\\\" \\r\\n [value]=\\\"selectionDayTxt\\\" \\r\\n [ngStyle]=\\\"{\\r\\n 'height': opts.height, \\r\\n 'font-size': opts.selectionTxtFontSize\\r\\n }\\\"\\r\\n \\r\\n (blur)=\\\"onBlurInput($event)\\\" \\r\\n [disabled]=\\\"opts.componentDisabled\\\" \\r\\n autocomplete=\\\"off\\\">\\r\\n </div>\\r\\n<div class=\\\"selector picker__holder selectorarrow selectorarrowleft selectorarrowright\\\" #divFocus [ngClass]=\\\"{'alignselectorright': opts.alignSelectorRight}\\\" tabindex=\\\"0\\\">\\r\\n <div class=\\\"picker__frame picker__box\\\">\\r\\n <div class=\\\"picker__header\\\">\\r\\n <div class=\\\"picker__date-display\\\">\\r\\n <div class=\\\"picker__weekday-display\\\">\\r\\n {{ weekText(getWeekday(tmp)) }}\\r\\n </div>\\r\\n <div class=\\\"picker__month-display\\\">\\r\\n <div>{{ monthText(tmp.month) }}</div>\\r\\n </div>\\r\\n <div class=\\\"picker__day-display\\\">\\r\\n <div>{{ tmp.day }}</div>\\r\\n </div>\\r\\n <div class=\\\"picker__year-display\\\">\\r\\n <div>{{ tmp.year }}</div>\\r\\n </div>\\r\\n </div>\\r\\n <select class=\\\"picker__select--year\\\" [(ngModel)]=\\\"visibleMonth.year\\\" (ngModelChange)=\\\"onUserYearInput($event)\\\" role=\\\"menu\\\" aria-label=\\\"Year selector\\\">\\r\\n <option *ngFor=\\\"let year of years\\\" [value]=\\\"year\\\">{{ year }}</option>\\r\\n </select>\\r\\n <select class=\\\"picker__select--month\\\" [(ngModel)]=\\\"visibleMonth.monthTxt\\\" (ngModelChange)=\\\"onUserMonthInput($event)\\\" role=\\\"menu\\\" aria-label=\\\"Month selector\\\">\\r\\n <option *ngFor=\\\"let month of months\\\" [value]=\\\"month.short\\\">{{ month.label }}</option>\\r\\n </select>\\r\\n <button class=\\\"picker__nav--prev\\\" data-nav=\\\"-1\\\" type=\\\"button\\\" aria-controls=\\\"date-picker-example_table\\\" title=\\\"Previous month\\\" (click)=\\\"prevMonth()\\\" [disabled]=\\\"prevMonthDisabled\\\" [ngClass]=\\\"{'headerbtnenabled': !prevMonthDisabled, 'headerbtndisabled': prevMonthDisabled}\\\"></button>\\r\\n <button class=\\\"picker__nav--next\\\" data-nav=\\\"1\\\" type=\\\"button\\\" aria-controls=\\\"date-picker-example_table\\\" title=\\\"Next month\\\" (click)=\\\"nextMonth()\\\" [disabled]=\\\"nextMonthDisabled\\\" [ngClass]=\\\"{'headerbtnenabled': !nextMonthDisabled, 'headerbtndisabled': nextMonthDisabled}\\\"></button>\\r\\n </div>\\r\\n <table class=\\\"picker__table\\\">\\r\\n <thead><tr><th class=\\\"picker__weekday weekdaytitleweeknbr\\\" *ngIf=\\\"opts.showWeekNumbers&&opts.firstDayOfWeek==='mo'\\\">#</th><th class=\\\"picker__weekday\\\" scope=\\\"col\\\" *ngFor=\\\"let d of weekDays\\\">{{d}}</th></tr></thead>\\r\\n <tbody>\\r\\n <tr *ngFor=\\\"let w of dates\\\">\\r\\n <td class=\\\"picker__day daycellweeknbr\\\" *ngIf=\\\"opts.showWeekNumbers&&opts.firstDayOfWeek==='mo'\\\">{{w.weekNbr}}</td>\\r\\n <td class=\\\"picker__day\\\" *ngFor=\\\"let d of w.week\\\" [ngClass]=\\\"{'picker__day--infocus':d.cmo===currMonthId&&!d.disabled, 'disabled': d.disabled, 'tablesingleday': d.cmo===currMonthId&&!d.disabled}\\\">\\r\\n <div *ngIf=\\\"d.markedDate.marked\\\" class=\\\"markdate\\\" [ngStyle]=\\\"{'background-color': d.markedDate.color}\\\"></div>\\r\\n <div class=\\\"picker__day\\\" [ngClass]=\\\"{'picker__day--infocus':d.cmo===currMonthId,'picker__day--outfocus': (d.cmo===nextMonthId || d.cmo===prevMonthId), 'picker__day--today':d.currDay&&opts.markCurrentDay, 'picker__day--selected picker__day--highlighted':selectedDate.day===d.dateObj.day && selectedDate.month===d.dateObj.month && selectedDate.year===d.dateObj.year && d.cmo===currMonthId}\\\" (click)=\\\"!d.disabled&&cellClicked(d);$event.stopPropagation()\\\" (keydown)=\\\"cellKeyDown($event, d)\\\" tabindex=\\\"0\\\">\\r\\n {{d.dateObj.day}}\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </tbody>\\r\\n </table>\\r\\n <div class=\\\"picker__footer\\\">\\r\\n <button type=\\\"button\\\" *ngIf=\\\"opts.showTodayBtn\\\" class=\\\"picker__button--today\\\" (click)=\\\"todayClicked()\\\" role=\\\"button\\\" [attr.aria-label]=\\\"opts.todayBtnTxt\\\">\\r\\n {{opts.todayBtnTxt}}\\r\\n </button>\\r\\n <button type=\\\"button\\\" *ngIf=\\\"opts.showClearDateBtn\\\" class=\\\"picker__button--clear\\\" (click)=\\\"removeBtnClicked()\\\" role=\\\"button\\\" [attr.aria-label]=\\\"opts.clearBtnTxt\\\">\\r\\n {{opts.clearBtnTxt}}\\r\\n </button>\\r\\n <button type=\\\"button\\\" [ngClass]=\\\"{'ml-auto': !opts.showTodayBtn}\\\" class=\\\"picker__button--close\\\" (click)=\\\"showSelector = false; removeInlineStyle();\\\" role=\\\"button\\\" [attr.aria-label]=\\\"opts.closeBtnTxt\\\">\\r\\n {{opts.closeBtnTxt}}\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n</div>\\r\\n\"","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnChanges,\r\n SimpleChanges,\r\n ElementRef,\r\n ViewEncapsulation,\r\n // ChangeDetectorRef,\r\n Renderer,\r\n forwardRef,\r\n ViewChild,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport {\r\n IMyDate,\r\n IMyDateRange,\r\n IMyMonth,\r\n IMyCalendarDay,\r\n IMyWeek,\r\n IMyDayLabels,\r\n IMyMonthLabels,\r\n IMyInputFieldChanged,\r\n IMyCalendarViewChanged,\r\n IMyInputFocusBlur,\r\n IMyMarkedDates,\r\n IMyMarkedDate,\r\n} from './interfaces/index';\r\nimport { LocaleService } from './services/datepickerLocale.service';\r\nimport { UtilService } from './services/datepickerUtil.service';\r\nexport const MYDP_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MDBDatePickerComponent),\r\n multi: true\r\n};\r\n\r\nenum CalToggle { Open = 1, CloseByDateSel = 2, CloseByCalBtn = 3, CloseByOutClick = 4 }\r\nenum Year { min = 1000, max = 9999 }\r\nenum InputFocusBlur { focus = 1, blur = 2 }\r\nenum KeyCode { enter = 13, space = 32 }\r\nenum MonthId { prev = 1, curr = 2, next = 3 }\r\n\r\n@Component({\r\n selector: 'mdb-date-picker',\r\n exportAs: 'mdbdatepicker',\r\n templateUrl: './datapicker.component.html',\r\n providers: [LocaleService, UtilService, MYDP_VALUE_ACCESSOR],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class MDBDatePickerComponent implements OnChanges, ControlValueAccessor, AfterViewInit {\r\n @Input() options: any;\r\n @Input() locale: string;\r\n @Input() defaultMonth: string;\r\n @Input() selDate: string;\r\n @Input() label = '';\r\n @Input() placeholder = '';\r\n @Input() selector: number;\r\n @Input() disabled: boolean;\r\n @Output() dateChanged: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() inputFieldChanged: EventEmitter<IMyInputFieldChanged> = new EventEmitter<IMyInputFieldChanged>();\r\n @Output() calendarViewChanged: EventEmitter<IMyCalendarViewChanged> = new EventEmitter<IMyCalendarViewChanged>();\r\n @Output() calendarToggle: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() inputFocusBlur: EventEmitter<IMyInputFocusBlur> = new EventEmitter<IMyInputFocusBlur>();\r\n\r\n @ViewChild('divFocus') public divFocus: any;\r\n public showSelector = false;\r\n public visibleMonth: IMyMonth = { monthTxt: '', monthNbr: 0, year: 1 };\r\n public selectedMonth: IMyMonth = { monthTxt: '', monthNbr: 0, year: 0 };\r\n public selectedDate: IMyDate = { year: 0, month: 0, day: 0 };\r\n public weekDays: Array<string> = [];\r\n public dates: Array<IMyWeek> = [];\r\n public selectionDayTxt = '';\r\n public invalidDate = false;\r\n public disableTodayBtn = false;\r\n public dayIdx = 0;\r\n public weekDayOpts: Array<string> = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'];\r\n\r\n public editMonth = false;\r\n public invalidMonth = false;\r\n public editYear = false;\r\n public invalidYear = false;\r\n\r\n public prevMonthDisabled = false;\r\n public nextMonthDisabled = false;\r\n public prevYearDisabled = false;\r\n public nextYearDisabled = false;\r\n\r\n public prevMonthId: number = MonthId.prev;\r\n public currMonthId: number = MonthId.curr;\r\n public nextMonthId: number = MonthId.next;\r\n\r\n public tmp: IMyDate = { year: this.getToday().year, month: this.getToday().month, day: this.getToday().day };\r\n\r\n // Default options\r\n public opts: any = {\r\n closeAfterSelect: <boolean>false,\r\n dayLabelsFull: <IMyDayLabels>{},\r\n dayLabels: <IMyDayLabels>{},\r\n monthLabelsFull: <IMyMonthLabels>{},\r\n monthLabels: <IMyMonthLabels>{},\r\n dateFormat: <string>'',\r\n showTodayBtn: <boolean>true,\r\n todayBtnTxt: <string>'',\r\n firstDayOfWeek: <string>'',\r\n sunHighlight: <boolean>true,\r\n markCurrentDay: <boolean>true,\r\n disableUntil: <IMyDate>{ year: 0, month: 0, day: 0 },\r\n disableSince: <IMyDate>{ year: 0, month: 0, day: 0 },\r\n disableDays: <Array<IMyDate>>[],\r\n enableDays: <Array<IMyDate>>[],\r\n markDates: <Array<IMyMarkedDates>>[],\r\n markWeekends: <IMyMarkedDate>{},\r\n disableDateRanges: <Array<IMyDateRange>>[],\r\n disableWeekends: <boolean>false,\r\n showWeekNumbers: <boolean>false,\r\n height: <string>'32px',\r\n width: <string>'100%',\r\n selectionTxtFontSize: <string>'1rem',\r\n showClearDateBtn: <boolean>true,\r\n alignSelectorRight: <boolean>false,\r\n disableHeaderButtons: <boolean>true,\r\n minYear: <number>Year.min,\r\n maxYear: <number>Year.max,\r\n componentDisabled: <boolean>false,\r\n showSelectorArrow: <boolean>true,\r\n ariaLabelInputField: <string>'Date input field',\r\n ariaLabelClearDate: <string>'Clear Date',\r\n ariaLabelOpenCalendar: <string>'Open Calendar',\r\n ariaLabelPrevMonth: <string>'Previous Month',\r\n ariaLabelNextMonth: <string>'Next Month',\r\n ariaLabelPrevYear: <string>'Previous Year',\r\n ariaLabelNextYear: <string>'Next Year'\r\n };\r\n\r\n public months: any = [];\r\n public years: any = [];\r\n public elements = document.getElementsByClassName('mydp picker');\r\n public elementNumber: any;\r\n\r\n constructor(public elem: ElementRef,\r\n private renderer: Renderer,\r\n // private cdr: ChangeDetectorRef,\r\n private localeService: LocaleService,\r\n private utilService: UtilService\r\n ) {\r\n this.setLocaleOptions();\r\n renderer.listenGlobal(this.elem.nativeElement, 'click', (event: any) => {\r\n if (this.showSelector &&\r\n event.target &&\r\n this.elem.nativeElement !== event.target &&\r\n !this.elem.nativeElement.contains(event.target)\r\n ) {\r\n this.removeInlineStyle();\r\n this.showSelector = false;\r\n this.removeZIndex();\r\n this.calendarToggle.emit(CalToggle.CloseByOutClick);\r\n\r\n }\r\n if (event.target.classList.contains('picker__holder')) {\r\n this.removeInlineStyle();\r\n this.removeZIndex();\r\n this.showSelector = false;\r\n }\r\n if (true && event.target && this.elem.nativeElement.contains(event.target)) {\r\n this.resetMonthYearEdit();\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.opts.startDate) {\r\n setTimeout(() => {\r\n this.onUserDateInput(this.opts.startDate);\r\n }, 0);\r\n }\r\n }\r\n\r\n onChangeCb: (_: any) => void = () => { };\r\n onTouchedCb: () => void = () => { };\r\n\r\n removeInlineStyle() {\r\n this.removeZIndex();\r\n setTimeout(() => {\r\n document.documentElement.style.removeProperty('overflow');\r\n }, 155);\r\n }\r\n\r\n setLocaleOptions(): void {\r\n const opts: any = this.localeService.getLocaleOptions(this.locale);\r\n Object.keys(opts).forEach((k) => {\r\n this.opts[k] = opts[k];\r\n });\r\n }\r\n\r\n setOptions(): void {\r\n const thisYear = new Date();\r\n const currentYear = thisYear.getFullYear();\r\n if (this.options !== undefined) {\r\n Object.keys(this.options).forEach((k) => {\r\n this.opts[k] = this.options[k];\r\n });\r\n }\r\n if (this.disabled !== undefined) {\r\n this.opts.componentDisabled = this.disabled;\r\n }\r\n\r\n if (this.opts.minYear === 1000) {\r\n this.opts.minYear = currentYear - 7;\r\n }\r\n\r\n if (this.opts.maxYear === 9999) {\r\n this.opts.maxYear = currentYear + 7;\r\n }\r\n }\r\n\r\n resetMonthYearEdit(): void {\r\n this.editMonth = false;\r\n this.editYear = false;\r\n this.invalidMonth = false;\r\n this.invalidYear = false;\r\n }\r\n\r\n onUserDateInput(value: string): void {\r\n\r\n this.invalidDate = false;\r\n if (value.length === 0) {\r\n this.clearDate();\r\n } else {\r\n const date: IMyDate = this.utilService.isDateValid(value,\r\n this.opts.dateFormat,\r\n this.opts.minYear,\r\n this.opts.maxYear,\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.monthLabels,\r\n this.opts.enableDays);\r\n\r\n if (date.day !== 0 && date.month !== 0 && date.year !== 0) {\r\n this.selectDate(date);\r\n } else {\r\n this.invalidDate = true;\r\n }\r\n }\r\n if (this.invalidDate) {\r\n this.inputFieldChanged.emit({ value: value, dateFormat: this.opts.dateFormat, valid: !(value.length === 0 || this.invalidDate) });\r\n this.onChangeCb('');\r\n this.onTouchedCb();\r\n }\r\n }\r\n\r\n onFocusInput(event: any): void {\r\n\r\n this.openBtnClicked();\r\n this.inputFocusBlur.emit({ reason: InputFocusBlur.focus, value: event.target.value });\r\n document.documentElement.style.overflow = 'hidden';\r\n this.divFocus.nativeElement.focus();\r\n }\r\n\r\n onBlurInput(event: any): void {\r\n this.selectionDayTxt = event.target.value;\r\n this.onTouchedCb();\r\n this.inputFocusBlur.emit({ reason: InputFocusBlur.blur, value: event.target.value });\r\n }\r\n\r\n onUserMonthInput(value: string): void {\r\n this.invalidMonth = false;\r\n const m: number = this.utilService.isMonthLabelValid(value, this.opts.monthLabels);\r\n if (m !== -1) {\r\n this.editMonth = false;\r\n if (m !== this.visibleMonth.monthNbr) {\r\n this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: this.visibleMonth.year };\r\n this.generateCalendar(m, this.visibleMonth.year, true);\r\n }\r\n } else {\r\n this.invalidMonth = true;\r\n }\r\n }\r\n\r\n onUserYearInput(value: string): void {\r\n this.invalidYear = false;\r\n const y: number = this.utilService.isYearLabelValid(Number(value), this.opts.minYear, this.opts.maxYear);\r\n if (y !== -1) {\r\n this.editYear = false;\r\n if (y !== this.visibleMonth.year) {\r\n this.visibleMonth = { monthTxt: this.visibleMonth.monthTxt, monthNbr: this.visibleMonth.monthNbr, year: y };\r\n this.generateCalendar(this.visibleMonth.monthNbr, y, true);\r\n }\r\n } else {\r\n this.invalidYear = true;\r\n }\r\n }\r\n\r\n isTodayDisabled(): void {\r\n this.disableTodayBtn = this.utilService.isDisabledDay(this.getToday(),\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.enableDays);\r\n }\r\n\r\n parseOptions(): void {\r\n if (this.locale) {\r\n this.setLocaleOptions();\r\n }\r\n this.setOptions();\r\n this.isTodayDisabled();\r\n this.dayIdx = this.weekDayOpts.indexOf(this.opts.firstDayOfWeek);\r\n if (this.dayIdx !== -1) {\r\n let idx: number = this.dayIdx;\r\n for (let i = 0; i < this.weekDayOpts.length; i++) {\r\n this.weekDays.push(this.opts.dayLabels[this.weekDayOpts[idx]]);\r\n idx = this.weekDayOpts[idx] === 'sa' ? 0 : idx + 1;\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value && typeof value === 'string') {\r\n this.updateDateValue(this.parseSelectedDate(value), false);\r\n } else if (value && value['date']) {\r\n this.updateDateValue(this.parseSelectedDate(value['date']), false);\r\n } else if (value === '') {\r\n this.updateDateValue({ year: 0, month: 0, day: 0 }, true);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCb = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCb = fn;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.hasOwnProperty('selector') && changes['selector'].currentValue > 0) {\r\n this.openBtnClicked();\r\n }\r\n\r\n if (changes.hasOwnProperty('placeholder')) {\r\n this.placeholder = changes['placeholder'].currentValue;\r\n }\r\n\r\n if (changes.hasOwnProperty('locale')) {\r\n this.locale = changes['locale'].currentValue;\r\n }\r\n\r\n if (changes.hasOwnProperty('disabled')) {\r\n this.disabled = changes['disabled'].currentValue;\r\n }\r\n\r\n if (changes.hasOwnProperty('options')) {\r\n this.options = changes['options'].currentValue;\r\n }\r\n\r\n this.weekDays.length = 0;\r\n this.parseOptions();\r\n\r\n if (changes.hasOwnProperty('defaultMonth')) {\r\n const dm: string = changes['defaultMonth'].currentValue;\r\n if (dm !== null && dm !== undefined && dm !== '') {\r\n this.selectedMonth = this.parseSelectedMonth(dm);\r\n } else {\r\n this.selectedMonth = { monthTxt: '', monthNbr: 0, year: 0 };\r\n }\r\n }\r\n\r\n if (changes.hasOwnProperty('selDate')) {\r\n const sd: any = changes['selDate'];\r\n if (sd.currentValue !== null &&\r\n sd.currentValue !== undefined &&\r\n sd.currentValue !== '' &&\r\n Object.keys(sd.currentValue).length !== 0\r\n ) {\r\n this.selectedDate = this.parseSelectedDate(sd.currentValue);\r\n setTimeout(() => {\r\n this.onChangeCb(this.getDateModel(this.selectedDate));\r\n });\r\n } else {\r\n // Do not clear on init\r\n if (!sd.isFirstChange()) {\r\n this.clearDate();\r\n }\r\n }\r\n }\r\n\r\n if (this.showSelector) {\r\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, false);\r\n }\r\n }\r\n\r\n // Fix for situation, when on mobile devices keyboard was released when datepicker modal was active\r\n hideKeyboard() {\r\n // this set timeout needed for case when hideKeyborad\r\n // is called inside of 'onfocus' event handler\r\n setTimeout(function () {\r\n\r\n // creating temp field\r\n const field = document.createElement('input');\r\n field.setAttribute('type', 'text');\r\n // hiding temp field from peoples eyes\r\n // -webkit-user-modify is nessesary for Android 4.x\r\n /*tslint:disable:max-line-length*/\r\n field.setAttribute('style', 'position:absolute; top: 0px; opacity: 0; -webkit-user-modify: read-write-plaintext-only; left:0px;');\r\n document.body.appendChild(field);\r\n\r\n // adding onfocus event handler for out temp field\r\n field.onfocus = function () {\r\n // this timeout of 200ms is nessasary for Android 2.3.x\r\n setTimeout(function () {\r\n\r\n field.setAttribute('style', 'display:none;');\r\n setTimeout(function () {\r\n document.body.removeChild(field);\r\n document.body.focus();\r\n }, 14);\r\n\r\n }, 20);\r\n };\r\n // focusing it\r\n field.focus();\r\n\r\n }, 50);\r\n }\r\n\r\n removeBtnClicked(): void {\r\n // Remove date button clicked\r\n this.clearDate();\r\n if (this.showSelector) {\r\n this.calendarToggle.emit(CalToggle.CloseByCalBtn);\r\n this.setZIndex();\r\n }\r\n // this.showSelector = false;\r\n }\r\n\r\n // Adding z-index: -2 for every div.mydp picker\r\n // Fix for situation, when datepicker was behind an input or something else (Case from support forum)\r\n setZIndex() {\r\n for (let i = 0; i <= this.elements.length; i++) {\r\n if (i === this.elements.length) {\r\n break;\r\n }\r\n this.renderer.setElementStyle(this.elements[i], 'z-index', '1');\r\n if (this.elements[i] === this.elem.nativeElement.childNodes[0] || this.elements[i] === this.elem.nativeElement.childNodes[1]) {\r\n this.elementNumber = i;\r\n this.renderer.setElementStyle(this.elements[i], 'z-index', '50');\r\n }\r\n }\r\n }\r\n\r\n // Removing z-index: -2 from div.mydp picker\r\n removeZIndex() {\r\n for (let i = 0; i <= this.elements.length; i++) {\r\n if (i === this.elements.length) {\r\n break;\r\n }\r\n this.renderer.setElementStyle(this.elements[i], 'z-index', '50');\r\n }\r\n }\r\n\r\n\r\n openBtnClicked(): void {\r\n // Open selector button clicked\r\n this.showSelector = !this.showSelector;\r\n if (this.showSelector) {\r\n this.setVisibleMonth();\r\n this.calendarToggle.emit(CalToggle.Open);\r\n this.setZIndex();\r\n\r\n } else {\r\n this.calendarToggle.emit(CalToggle.CloseByCalBtn);\r\n }\r\n this.hideKeyboard();\r\n }\r\n\r\n setVisibleMonth(): void {\r\n // Sets visible month of calendar\r\n let y = 0, m = 0;\r\n if (!this.utilService.isInitializedDate(this.selectedDate)) {\r\n if (this.selectedMonth.year === 0 && this.selectedMonth.monthNbr === 0) {\r\n const today: IMyDate = this.getToday();\r\n y = today.year;\r\n m = today.month;\r\n } else {\r\n y = this.selectedMonth.year;\r\n m = this.selectedMonth.monthNbr;\r\n }\r\n } else {\r\n y = this.selectedDate.year;\r\n m = this.selectedDate.month;\r\n }\r\n this.visibleMonth = { monthTxt: this.opts.monthLabels[m], monthNbr: m, year: y };\r\n\r\n // Create current month\r\n this.generateCalendar(m, y, true);\r\n }\r\n\r\n monthList(): void {\r\n this.months = [];\r\n for (let i = 1; i <= 12; i++) {\r\n this.months.push({ index: i, short: this.opts.monthLabels[i], label: this.opts.monthLabelsFull[i] });\r\n }\r\n }\r\n\r\n yearsList(): void {\r\n this.years = [];\r\n\r\n const firstYear = this.opts.minYear;\r\n const lastYear = this.opts.maxYear;\r\n\r\n for (let i = firstYear; i <= lastYear; i++) {\r\n this.years.push(i);\r\n }\r\n }\r\n\r\n prevMonth(): void {\r\n // Previous month from calendar\r\n const d: Date = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\r\n d.setMonth(d.getMonth() - 1);\r\n\r\n const y: number = d.getFullYear();\r\n const m: number = d.getMonth() + 1;\r\n\r\n this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\r\n this.generateCalendar(m, y, true);\r\n }\r\n\r\n nextMonth(): void {\r\n // Next month from calendar\r\n const d: Date = this.getDate(this.visibleMonth.year, this.visibleMonth.monthNbr, 1);\r\n d.setMonth(d.getMonth() + 1);\r\n\r\n const y: number = d.getFullYear();\r\n const m: number = d.getMonth() + 1;\r\n\r\n this.visibleMonth = { monthTxt: this.monthText(m), monthNbr: m, year: y };\r\n this.generateCalendar(m, y, true);\r\n }\r\n\r\n prevYear(): void {\r\n // Previous year from calendar\r\n this.visibleMonth.year--;\r\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\r\n }\r\n\r\n nextYear(): void {\r\n // Next year from calendar\r\n this.visibleMonth.year++;\r\n this.generateCalendar(this.visibleMonth.monthNbr, this.visibleMonth.year, true);\r\n }\r\n\r\n todayClicked(): void {\r\n // Today button clicked\r\n const today: IMyDate = this.getToday();\r\n if (!this.utilService.isDisabledDay(today,\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.enableDays)\r\n ) {\r\n this.selectDate(today);\r\n }\r\n if (today.year !== this.visibleMonth.year || today.month !== this.visibleMonth.monthNbr) {\r\n this.visibleMonth = { monthTxt: this.opts.monthLabels[today.month], monthNbr: today.month, year: today.year };\r\n this.generateCalendar(today.month, today.year, true);\r\n }\r\n }\r\n\r\n cellClicked(cell: any): void {\r\n // Cell clicked on the calendar\r\n if (cell.cmo === this.prevMonthId) {\r\n // Previous month day\r\n this.prevMonth();\r\n } else if (cell.cmo === this.currMonthId) {\r\n // Current month day - if date is already selected clear it\r\n if (cell.dateObj.year === this.selectedDate.year &&\r\n cell.dateObj.month === this.selectedDate.month &&\r\n cell.dateObj.day === this.selectedDate.day\r\n ) {\r\n this.clearDate();\r\n } else {\r\n this.selectDate(cell.dateObj);\r\n }\r\n } else if (cell.cmo === this.nextMonthId) {\r\n // Next month day\r\n this.nextMonth();\r\n }\r\n this.resetMonthYearEdit();\r\n }\r\n\r\n cellKeyDown(event: any, cell: any) {\r\n // Cell keyboard handling\r\n if ((event.keyCode === KeyCode.enter || event.keyCode === KeyCode.space) && !cell.disabled) {\r\n event.preventDefault();\r\n this.cellClicked(cell);\r\n }\r\n }\r\n\r\n clearDate(): void {\r\n // Clears the date and notifies parent using callbacks and value accessor\r\n const date: IMyDate = { year: 0, month: 0, day: 0 };\r\n this.dateChanged.emit({ date: date, jsdate: null, formatted: '', epoc: 0 });\r\n this.onChangeCb('');\r\n this.onTouchedCb();\r\n this.updateDateValue(date, true);\r\n this.setZIndex();\r\n }\r\n\r\n selectDate(date: IMyDate): void {\r\n // Date selected, notifies parent using callbacks and value accessor\r\n this.tmp = date;\r\n const dateModel: any = this.getDateModel(date);\r\n this.dateChanged.emit(dateModel);\r\n this.onChangeCb(dateModel);\r\n this.onTouchedCb();\r\n this.updateDateValue(date, false);\r\n if (this.showSelector) {\r\n this.calendarToggle.emit(CalToggle.CloseByDateSel);\r\n\r\n }\r\n if (this.opts.closeAfterSelect) {\r\n this.showSelector = false;\r\n this.removeInlineStyle();\r\n }\r\n\r\n // hide calendar when date was clicked\r\n // this.showSelector = false;\r\n }\r\n\r\n updateDateValue(date: IMyDate, clear: boolean): void {\r\n // Updates date values\r\n this.selectedDate = date;\r\n this.selectionDayTxt = clear ? '' : this.formatDate(date);\r\n this.inputFieldChanged.emit({ value: this.selectionDayTxt, dateFormat: this.opts.dateFormat, valid: !clear });\r\n this.invalidDate = false;\r\n }\r\n\r\n getDateModel(date: IMyDate): any {\r\n // Creates a date model object from the given parameter\r\n return this.formatDate(date);\r\n }\r\n\r\n preZero(val: string): string {\r\n // Prepend zero if smaller than 10\r\n return parseInt(val, 0) < 10 ? '0' + val : val;\r\n }\r\n\r\n formatDate(val: any): string {\r\n // Returns formatted date string, if mmm is part of dateFormat returns month as a string\r\n // days\r\n const d = val.day; // 1 - 31\r\n const dd = this.preZero(val.day); // 01 - 31\r\n const ddd = this.opts.dayLabels[this.getWeekday(val)]; // Sun-Sat\r\n const dddd = this.opts.dayLabelsFull[this.getWeekday(val)]; // Sunday Saturday\r\n const m = val.month; // 1 - 12\r\n const mm = this.preZero(val.month); // 01 - 12\r\n const mmm = this.getMonthShort(val.month); // Jan - Dec\r\n const mmmm = this.getMonthFull(val.month); // January December\r\n const yy = val.year.toString().slice(2, 4); // 00 - 99\r\n const yyyy = val.year; // 2000 - 2999\r\n\r\n const toReplace = this.opts.dateFormat.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g);\r\n let formatted = '';\r\n toReplace.forEach((el: any) => {\r\n switch (el) {\r\n case 'dddd':\r\n el = el.replace(el, dddd);\r\n break;\r\n case 'ddd':\r\n el = el.replace(el, ddd);\r\n break;\r\n case 'dd':\r\n el = el.replace(el, dd);\r\n break;\r\n case 'd':\r\n el = el.replace(el, d);\r\n break;\r\n case 'mmmm':\r\n el = el.replace(el, mmmm);\r\n break;\r\n case 'mmm':\r\n el = el.replace(el, mmm);\r\n break;\r\n case 'mm':\r\n el = el.replace(el, mm);\r\n break;\r\n case 'm':\r\n el = el.replace(el, m);\r\n break;\r\n case 'yyyy':\r\n el = el.replace(el, yyyy);\r\n break;\r\n case 'yy':\r\n el = el.replace(el, yy);\r\n break;\r\n }\r\n formatted += el;\r\n });\r\n\r\n return formatted;\r\n }\r\n\r\n monthText(m: number): string {\r\n // Returns month as a text\r\n return this.opts.monthLabels[m];\r\n }\r\n\r\n weekText(m: string): string {\r\n // Returns month as a text\r\n return this.opts.dayLabelsFull[m];\r\n }\r\n\r\n getMonthShort(m: number): string {\r\n return this.opts.monthLabels[m];\r\n }\r\n\r\n getMonthFull(m: number): string {\r\n return this.opts.monthLabelsFull[m];\r\n }\r\n\r\n monthStartIdx(y: number, m: number): number {\r\n // Month start index\r\n const d = new Date();\r\n d.setDate(1);\r\n d.setMonth(m - 1);\r\n d.setFullYear(y);\r\n const idx = d.getDay() + this.sundayIdx();\r\n return idx >= 7 ? idx - 7 : idx;\r\n }\r\n\r\n daysInMonth(m: number, y: number): number {\r\n // Return number of days of current month\r\n return new Date(y, m, 0).getDate();\r\n }\r\n\r\n daysInPrevMonth(m: number, y: number): number {\r\n // Return number of days of the previous month\r\n const d: Date = this.getDate(y, m, 1);\r\n d.setMonth(d.getMonth() - 1);\r\n return this.daysInMonth(d.getMonth() + 1, d.getFullYear());\r\n }\r\n\r\n isCurrDay(d: number, m: number, y: number, cmo: number, today: IMyDate): boolean {\r\n // Check is a given date the today\r\n return d === today.day && m === today.month && y === today.year && cmo === this.currMonthId;\r\n }\r\n\r\n getToday(): IMyDate {\r\n const date: Date = new Date();\r\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\r\n }\r\n\r\n getTimeInMilliseconds(date: IMyDate): number {\r\n return this.getDate(date.year, date.month, date.day).getTime();\r\n }\r\n\r\n getWeekday(date: IMyDate): string {\r\n // Get weekday: su, mo, tu, we ...\r\n return this.weekDayOpts[this.utilService.getDayNumber(date)];\r\n }\r\n\r\n getDate(year: number, month: number, day: number): Date {\r\n // Creates a date object from given year, month and day\r\n return new Date(year, month - 1, day, 0, 0, 0, 0);\r\n }\r\n\r\n sundayIdx(): number {\r\n // Index of Sunday day\r\n return this.dayIdx > 0 ? 7 - this.dayIdx : 0;\r\n }\r\n\r\n generateCalendar(m: number, y: number, notifyChange: boolean): void {\r\n this.dates.length = 0;\r\n const today: IMyDate = this.getToday();\r\n const monthStart: number = this.monthStartIdx(y, m);\r\n const dInThisM: number = this.daysInMonth(m, y);\r\n const dInPrevM: number = this.daysInPrevMonth(m, y);\r\n\r\n let dayNbr = 1;\r\n let cmo: number = this.prevMonthId;\r\n for (let i = 1; i < 7; i++) {\r\n const week: Array<IMyCalendarDay> = [];\r\n if (i === 1) {\r\n // First week\r\n const pm = dInPrevM - monthStart + 1;\r\n // Previous month\r\n for (let j = pm; j <= dInPrevM; j++) {\r\n const date: IMyDate = { year: y, month: m - 1, day: j };\r\n week.push({\r\n dateObj: date, cmo: cmo, currDay: this.isCurrDay(j, m, y, cmo, today),\r\n dayNbr: this.utilService.getDayNumber(date),\r\n disabled: this.utilService.isDisabledDay(date,\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.enableDays\r\n ),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends)\r\n });\r\n }\r\n\r\n cmo = this.currMonthId;\r\n // Current month\r\n const daysLeft: number = 7 - week.length;\r\n for (let j = 0; j < daysLeft; j++) {\r\n const date: IMyDate = { year: y, month: m, day: dayNbr };\r\n week.push({\r\n dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\r\n dayNbr: this.utilService.getDayNumber(date),\r\n disabled: this.utilService.isDisabledDay(date,\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.enableDays\r\n ),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends)\r\n });\r\n dayNbr++;\r\n }\r\n } else {\r\n // Rest of the weeks\r\n for (let j = 1; j < 8; j++) {\r\n if (dayNbr > dInThisM) {\r\n // Next month\r\n dayNbr = 1;\r\n cmo = this.nextMonthId;\r\n }\r\n const date: IMyDate = { year: y, month: cmo === this.currMonthId ? m : m + 1, day: dayNbr };\r\n week.push({\r\n dateObj: date, cmo: cmo, currDay: this.isCurrDay(dayNbr, m, y, cmo, today),\r\n dayNbr: this.utilService.getDayNumber(date),\r\n disabled: this.utilService.isDisabledDay(date,\r\n this.opts.disableUntil,\r\n this.opts.disableSince,\r\n this.opts.disableWeekends,\r\n this.opts.disableDays,\r\n this.opts.disableDateRanges,\r\n this.opts.enableDays\r\n ),\r\n markedDate: this.utilService.isMarkedDate(date, this.opts.markDates, this.opts.markWeekends)\r\n });\r\n dayNbr++;\r\n }\r\n }\r\n const weekNbr: number = this.opts.showWeekNumbers &&\r\n this.opts.firstDayOfWeek === 'mo' ?\r\n this.utilService.getWeekNumber(week[0].dateObj) : 0;\r\n this.dates.push({ week: week, weekNbr: weekNbr });\r\n }\r\n\r\n this.setHeaderBtnDisabledState(m, y);\r\n\r\n if (notifyChange) {\r\n // Notify parent\r\n this.calendarViewChanged.emit({\r\n year: y,\r\n month: m,\r\n first: {\r\n number: 1,\r\n weekday: this.getWeekday({\r\n year: y,\r\n month: m,\r\n day: 1\r\n })\r\n },\r\n last: {\r\n number: dInThisM,\r\n weekday: this.getWeekday({\r\n year: y,\r\n month: m,\r\n day: dInThisM\r\n })\r\n }\r\n });\r\n }\r\n\r\n this.monthList();\r\n this.yearsList();\r\n }\r\n\r\n parseSelectedDate(selDate: any): IMyDate {\r\n // Parse selDate value - it can be string or IMyDate object\r\n let date: IMyDate = { day: 0, month: 0, year: 0 };\r\n if (typeof selDate === 'string') {\r\n const sd: string = <string>selDate;\r\n date.day = this.utilService.parseDatePartNumber(this.opts.dateFormat, sd, 'dd');\r\n\r\n date.month = this.opts.dateFormat.indexOf('mmm') !== -1\r\n ? this.utilService.parseDatePartMonthName(this.opts.dateFormat, sd, 'mmm', this.opts.monthLabels)\r\n : this.utilService.parseDatePartNumber(this.opts.dateFormat, sd, 'mm');\r\n\r\n date.year = this.utilService.parseDatePartNumber(this.opts.dateFormat, sd, 'yyyy');\r\n } else if (typeof selDate === 'object') {\r\n date = selDate;\r\n }\r\n this.selectionDayTxt = this.formatDate(date);\r\n return date;\r\n }\r\n\r\n parseSelectedMonth(ms: string): IMyMonth {\r\n return this.utilService.parseDefaultMonth(ms);\r\n }\r\n\r\n setHeaderBtnDisabledState(m: number, y: number): void {\r\n let dpm = false;\r\n let dpy = false;\r\n let dnm = false;\r\n let dny = false;\r\n if (this.opts.disableHeaderButtons) {\r\n dpm = this.utilService.isMonthDisabledByDisableUntil({\r\n year: m === 1 ? y - 1 : y,\r\n month: m === 1 ? 12 : m - 1,\r\n day: this.daysInMonth(m === 1 ? 12 : m - 1, m === 1 ? y - 1 : y)\r\n },\r\n this.opts.disableUntil);\r\n dpy = this.utilService.isMonthDisabledByDisableUntil({\r\n year: y - 1,\r\n month: m,\r\n day: this.daysInMonth(m, y - 1)\r\n },\r\n this.opts.disableUntil);\r\n dnm = this.utilService.isMonthDisabledByDisableSince({\r\n year: m === 12 ? y + 1 : y,\r\n month: m === 12 ? 1 : m + 1,\r\n day: 1\r\n },\r\n this.opts.disableSince);\r\n dny = this.utilService.isMonthDisabledByDisableSince({ year: y + 1, month: m, day: 1 }, this.opts.disableSince);\r\n }\r\n this.prevMonthDisabled = m === 1 && y === this.opts.minYear || dpm;\r\n this.prevYearDisabled = y - 1 < this.opts.minYear || dpy;\r\n this.nextMonthDisabled = m === 12 && y === this.opts.maxYear || dnm;\r\n this.nextYearDisabled = y + 1 > this.opts.maxYear || dny;\r\n }\r\n\r\n checkActive() {\r\n if (this.placeholder.length > 0) {\r\n return true;\r\n } else {\r\n if (this.showSelector) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { MDBDatePickerComponent } from './datepicker.component';\r\nimport { FocusDirective } from './directives/datepickerFocus.directive';\r\nimport { InputAutoFillDirective } from './directives/datepickerAutofill.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [MDBDatePickerComponent, FocusDirective, InputAutoFillDirective],\r\n exports: [MDBDatePickerComponent, FocusDirective, InputAutoFillDirective]\r\n})\r\nexport class MDBDatePickerModule {\r\n}\r\n","import { Directive, ElementRef, Renderer, Input, HostListener } from '@angular/core';\r\nimport { IMyInputAutoFill } from '../interfaces/inputAutofill.interface';\r\n\r\nenum KeyCode {backspace = 8, delete = 46}\r\n\r\n@Directive({\r\n selector: '[mdbInputAutoFill]'\r\n})\r\n\r\nexport class InputAutoFillDirective {\r\n @Input() opts: IMyInputAutoFill;\r\n\r\n constructor(private el: ElementRef, private rndr: Renderer) {}\r\n\r\n @HostListener('keyup', ['$event']) onKeyUp(evt: KeyboardEvent) {\r\n if (!this.opts.enabled || evt.keyCode === KeyCode.backspace || evt.keyCode === KeyCode.delete) {\r\n return;\r\n }\r\n\r\n const val: string = this.getInputValue();\r\n const ews: boolean = this.endsWith(val, this.opts.separator);\r\n const parts: Array<string> = val.split(this.opts.separator);\r\n const idx: number = parts.length - 1;\r\n\r\n if (val.indexOf(this.opts.separator + this.opts.separator) !== -1 || idx > 2) {\r\n return;\r\n }\r\n\r\n if (!ews &&\r\n (val.length === this.getPartLength(0) ||\r\n val.length === this.getPartLength(0) + this.getPartLength(1) + this.opts.separator.length)) {\r\n this.setInputValue(val + this.opts.separator);\r\n } else if (ews &&\r\n parts[idx - 1].length < this.getPartLength(idx - 1) &&\r\n this.isNumber(parts[idx - 1]) && (this.isDay(idx - 1) || this.isMonth(idx - 1))) {\r\n this.setInputValue(this.insertPos(val, val.length - 2, '0'));\r\n } else if (parts[idx].length < this.getPartLength(idx) &&\r\n this.isNumber(parts[idx]) &&\r\n (Number(parts[idx]) > 3 &&\r\n this.isDay(idx) ||\r\n Number(parts[idx]) > 1 &&\r\n this.isMonth(idx))) {\r\n this.setInputValue(this.insertPos(val, val.length - 1, '0') + (idx < 2 ? this.opts.separator : ''));\r\n }\r\n}\r\n\r\n private endsWith(val: string, suffix: string): boolean {\r\n return val.indexOf(suffix, val.length - suffix.length) !== -1;\r\n }\r\n\r\n private insertPos(str: string, idx: number, val: string): string {\r\n return str.substr(0, idx) + val + str.substr(idx);\r\n }\r\n\r\n private getPartLength(idx: number): number {\r\n return this.opts.formatParts[idx].length;\r\n }\r\n\r\n private isNumber(val: string): boolean {\r\n return val.match(/[1-9]/) !== null;\r\n }\r\n\r\n private isDay(idx: number): boolean {\r\n return this.opts.formatParts[idx].indexOf('d') !== -1;\r\n }\r\n\r\n private isMonth(idx: number): boolean {\r\n return this.opts.formatParts[idx].indexOf('m') !== -1 && this.opts.formatParts[idx].length === 2;\r\n }\r\n\r\n private getInputValue(): string {\r\n return this.el.nativeElement.value;\r\n }\r\n\r\n private setInputValue(val: string): void {\r\n this.rndr.setElementProperty(this.el.nativeElement, 'value', val);\r\n }\r\n}\r\n","import { Directive, ElementRef, Renderer, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[mdbDpFocus]'\r\n})\r\n\r\nexport class FocusDirective implements AfterViewInit {\r\n @Input() value: string;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer) {}\r\n\r\n // Focus to element: if value 0 = don't set focus, 1 = set only focus, 2 = set focus and set cursor position\r\n ngAfterViewInit() {\r\n // if (this.value === \"0\") {\r\n // return;\r\n // }\r\n\r\n this.renderer.invokeElementMethod(this.el.nativeElement, 'focus', []);\r\n\r\n // // Set cursor position at the end of text if input element\r\n // if (this.value === \"2\") {\r\n // let len = this.el.nativeElement.value.length;\r\n // this.el.nativeElement.setSelectionRange(len, len);\r\n // }\r\n }\r\n}\r\n","export * from './services/datepickerLocale.service';\r\nexport * from './services/datepickerUtil.service';\r\nexport * from './directives/datepickerFocus.directive';\r\nexport * from './directives/datepickerAutofill.directive';\r\nexport * from './datepicker.component';\r\nexport * from './datepicker.module';\r\nexport * from './interfaces/index';\r\n","import { Injectable } from '@angular/core';\r\nimport { IMyLocales, IMyOptions } from '../interfaces/index';\r\n\r\n@Injectable()\r\nexport class LocaleService {\r\n private locales: IMyLocales = {\r\n 'en': {\r\n dayLabelsFull: {\r\n su: 'Sunday',\r\n mo: 'Monday',\r\n tu: 'Tuesday',\r\n we: 'Wednesday',\r\n th: 'Thursday',\r\n fr: 'Friday',\r\n sa: 'Saturday'\r\n },\r\n dayLabels: {\r\n su: 'Sun',\r\n mo: 'Mon',\r\n tu: 'Tue',\r\n we: 'Wed',\r\n th: 'Thu',\r\n fr: 'Fri',\r\n sa: 'Sat'\r\n },\r\n monthLabelsFull: {\r\n 1: 'January',\r\n 2: 'February',\r\n 3: 'March',\r\n 4: 'April',\r\n 5: 'May',\r\n 6: 'June',\r\n 7: 'July',\r\n 8: 'August',\r\n 9: 'September',\r\n 10: 'October',\r\n 11: 'November',\r\n 12: 'December'\r\n },\r\n monthLabels: {\r\n 1: 'Jan',\r\n 2: 'Feb',\r\n 3: 'Mar',\r\n 4: 'Apr',\r\n 5: 'May',\r\n 6: 'Jun',\r\n 7: 'Jul',\r\n 8: 'Aug',\r\n 9: 'Sep',\r\n 10: 'Oct',\r\n 11: 'Nov',\r\n 12: 'Dec'\r\n },\r\n dateFormat: 'yyyy-mm-dd',\r\n todayBtnTxt: 'Today',\r\n clearBtnTxt: 'Clear',\r\n closeBtnTxt: 'Close',\r\n firstDayOfWeek: 'mo',\r\n sunHighlight: true,\r\n }\r\n };\r\n\r\n getLocaleOptions(locale: string): IMyOptions {\r\n if (locale && this.locales.hasOwnProperty(locale)) {\r\n // User given locale\r\n return this.locales[locale];\r\n }\r\n // Default: en\r\n return this.locales['en'];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IMyDate } from '../interfaces/date.interface';\r\nimport { IMyDateRange } from '../interfaces/dateRange.interface';\r\nimport { IMyMonth } from '../interfaces/month.interface';\r\nimport { IMyMonthLabels } from '../interfaces/monthLabels.interface';\r\nimport { IMyMarkedDates } from '../interfaces/markedDates.interface';\r\nimport { IMyMarkedDate } from '../interfaces/markedDate.interface';\r\n\r\n@Injectable()\r\nexport class UtilService {\r\n isDateValid(dateStr: string,\r\n dateFormat: string,\r\n minYear: number,\r\n maxYear: number,\r\n disableUntil: IMyDate,\r\n disableSince: IMyDate,\r\n disableWeekends: boolean,\r\n disableDays: Array<IMyDate>,\r\n disableDateRanges: Array<IMyDateRange>,\r\n monthLabels: IMyMonthLabels,\r\n enableDays: Array<IMyDate>\r\n ): IMyDate {\r\n const returnDate: IMyDate = {day: 0, month: 0, year: 0};\r\n const daysInMonth: Array<number> = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n const isMonthStr: boolean = this.getDatePartIndex(dateFormat, 'mmm') !== -1;\r\n\r\n if (dateStr.length !== dateFormat.length) {\r\n return returnDate;\r\n }\r\n\r\n const separator: string = this.getDateFormatSeparator(dateFormat);\r\n\r\n const parts: Array<string> = dateStr.split(separator);\r\n if (parts.length !== 3) {\r\n return returnDate;\r\n }\r\n\r\n const day: number = this.parseDatePartNumber(dateFormat, dateStr, 'dd');\r\n const month: number = isMonthStr ?\r\n this.parseDatePartMonthName(dateFormat, dateStr, 'mmm', monthLabels) :\r\n this.parseDatePartNumber(dateFormat, dateStr, 'mm');\r\n const year: number = this.parseDatePartNumber(dateFormat, dateStr, 'yyyy');\r\n\r\n if (day !== -1 && month !== -1 && year !== -1) {\r\n if (year < minYear || year > maxYear || month < 1 || month > 12) {\r\n return returnDate;\r\n }\r\n\r\n const date: IMyDate = {year: year, month: month, day: day};\r\n\r\n if (this.isDisabledDay(date, disableUntil, disableSince, disableWeekends, disableDays, disableDateRanges, enableDays)) {\r\n return returnDate;\r\n }\r\n\r\n if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) {\r\n daysInMonth[1] = 29;\r\n }\r\n\r\n if (day < 1 || day > daysInMonth[month - 1]) {\r\n return returnDate;\r\n }\r\n\r\n // Valid date\r\n return date;\r\n }\r\n return returnDate;\r\n }\r\n\r\n getDateFormatSeparator(dateFormat: string): string {\r\n return dateFormat.replace(/[dmy]/g, '')[0];\r\n }\r\n\r\n isMonthLabelValid(monthLabel: string, monthLabels: IMyMonthLabels): number {\r\n for (let key = 1; key <= 12; key++) {\r\n if (monthLabel.toLowerCase() === monthLabels[key].toLowerCase()) {\r\n return key;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n isYearLabelValid(yearLabel: number, minYear: number, maxYear: number): number {\r\n if (yearLabel >= minYear && yearLabel <= maxYear) {\r\n return yearLabel;\r\n }\r\n return -1;\r\n }\r\n\r\n parseDatePartNumber(dateFormat: string, dateString: string, datePart: string): number {\r\n const pos: number = this.getDatePartIndex(dateFormat, datePart);\r\n if (pos !== -1) {\r\n const value: string = dateString.substring(pos, pos + datePart.length);\r\n if (!/^\\d+$/.test(value)) {\r\n return -1;\r\n }\r\n return parseInt(value, 0);\r\n }\r\n return -1;\r\n }\r\n\r\n parseDatePartMonthName(dateFormat: string, dateString: string, datePart: string, monthLabels: IMyMonthLabels): number {\r\n const pos: number = this.getDatePartIndex(dateFormat, datePart);\r\n if (pos !== -1) {\r\n return this.isMonthLabelValid(dateString.substring(pos, pos + datePart.length), monthLabels);\r\n }\r\n return -1;\r\n }\r\n\r\n getDatePartIndex(dateFormat: string, datePart: string): number {\r\n return dateFormat.indexOf(datePart);\r\n }\r\n\r\n // parseDefaultMonth(monthString: string): IMyMonth {\r\n parseDefaultMonth(monthString: string | any): IMyMonth {\r\n const month: IMyMonth = {monthTxt: '', monthNbr: 0, year: 0};\r\n if (monthString !== '') {\r\n const split = monthString.split(monthString.match(/[^0-9]/)[0]);\r\n month.monthNbr = split[0].length === 2 ? parseInt(split[0], 0) : parseInt(split[1], 0);\r\n month.year = split[0].length === 2 ? parseInt(split[1], 0) : parseInt(split[0], 0);\r\n }\r\n return month;\r\n }\r\n\r\n isDisabledDay( date: IMyDate,\r\n disableUntil: IMyDate,\r\n disableSince: IMyDate,\r\n disableWeekends: boolean,\r\n disableDays: Array<IMyDate>,\r\n disableDateRanges: Array<IMyDateRange>,\r\n enableDays: Array<IMyDate>\r\n ): boolean {\r\n for (const e of enableDays) {\r\n if (e.year === date.year && e.month === date.month && e.day === date.day) {\r\n return false;\r\n }\r\n }\r\n\r\n const dateMs: number = this.getTimeInMilliseconds(date);\r\n if (this.isInitializedDate(disableUntil) && dateMs <= this.getTimeInMilliseconds(disableUntil)) {\r\n return true;\r\n }\r\n\r\n if (this.isInitializedDate(disableSince) && dateMs >= this.getTimeInMilliseconds(disableSince)) {\r\n return true;\r\n }\r\n\r\n if (disableWeekends) {\r\n const dn = this.getDayNumber(date);\r\n if (dn === 0 || dn === 6) {\r\n return true;\r\n }\r\n }\r\n\r\n for (const d of disableDays) {\r\n if (d.year === date.year && d.month === date.month && d.day === date.day) {\r\n return true;\r\n }\r\n }\r\n\r\n for (const d of disableDateRanges) {\r\n if (this.isInitializedDate(d.begin) &&\r\n this.isInitializedDate(d.end) &&\r\n dateMs >= this.getTimeInMilliseconds(d.begin) &&\r\n dateMs <= this.getTimeInMilliseconds(d.end)\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n isMarkedDate(date: IMyDate, markedDates: Array<IMyMarkedDates>, markWeekends: IMyMarkedDate): IMyMarkedDate {\r\n for (const md of markedDates) {\r\n for (const d of md.dates) {\r\n if (d.year === date.year && d.month === date.month && d.day === date.day) {\r\n return {marked: true, color: md.color};\r\n }\r\n }\r\n }\r\n if (markWeekends && markWeekends.marked) {\r\n const dayNbr = this.getDayNumber(date);\r\n if (dayNbr === 0 || dayNbr === 6) {\r\n return {marked: true, color: markWeekends.color};\r\n }\r\n }\r\n return {marked: false, color: ''};\r\n }\r\n\r\n getWeekNumber(date: IMyDate): number {\r\n const d: Date = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\r\n d.setDate(d.getDate() + (d.getDay() === 0 ? -3 : 4 - d.getDay()));\r\n return Math.round(((d.getTime() - new Date(d.getFullYear(), 0, 4).getTime()) / 86400000) / 7) + 1;\r\n }\r\n\r\n isMonthDisabledByDisableUntil(date: IMyDate, disableUntil: IMyDate): boolean {\r\n return this.isInitializedDate(disableUntil) && this.getTimeInMilliseconds(date) <= this.getTimeInMilliseconds(disableUntil);\r\n }\r\n\r\n isMonthDisabledByDisableSince(date: IMyDate, disableSince: IMyDate): boolean {\r\n return this.isInitializedDate(disableSince) && this.getTimeInMilliseconds(date) >= this.getTimeInMilliseconds(disableSince);\r\n }\r\n\r\n isInitializedDate(date: IMyDate): boolean {\r\n return date.year !== 0 && date.month !== 0 && date.day !== 0;\r\n }\r\n\r\n getTimeInMilliseconds(date: IMyDate): number {\r\n return new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0).getTime();\r\n }\r\n\r\n getDayNumber(date: IMyDate): number {\r\n const d: Date = new Date(date.year, date.month - 1, date.day, 0, 0, 0, 0);\r\n return d.getDay();\r\n }\r\n}\r\n","module.exports = \"<span class=\\\"min-chart\\\">\\r\\n <span class=\\\"percent\\\">{{ percent }}</span>\\r\\n <mdb-easy-pie-chart [percent]=\\\"percent\\\" [options]=\\\"options\\\"></mdb-easy-pie-chart>\\r\\n</span>\"","\r\nimport { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mdb-simple-chart',\r\n templateUrl: './chart-simple.component.html',\r\n styles: []\r\n})\r\nexport class SimpleChartComponent implements OnInit {\r\n @Input('percent') percent: any;\r\n @Input('barColor') barColor: string;\r\n @Input('trackColor') trackColor: string;\r\n @Input('scaleColor') scaleColor: string;\r\n @Input('scaleLength') scaleLength: number;\r\n @Input('lineCap') lineCap: string;\r\n @Input('lineWidth') lineWidth: number;\r\n @Input('trackWidth') trackWidth: number;\r\n @Input('size') size: number;\r\n @Input('rotate') rotate: number;\r\n @Input('animate') animate: { duration: string, enabled: boolean};\r\n public options: any = {\r\n barColor: null,\r\n trackColor: null,\r\n scaleColor: null,\r\n scaleLength: '',\r\n lineCap: null,\r\n lineWidth: null,\r\n trackWidth: null,\r\n size: null,\r\n rotate: null,\r\n duration: null,\r\n enableAnimation: null,\r\n animate: {\r\n duration: 1000,\r\n enabled: true\r\n }\r\n };\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n this.options.barColor = '#' + this.barColor;\r\n this.options.trackColor = '#' + this.trackColor;\r\n this.options.scaleColor = '#' + this.scaleColor;\r\n this.options.scaleLength = this.scaleLength;\r\n this.options.lineCap = this.lineCap;\r\n this.options.lineWidth = this.lineWidth;\r\n this.options.trackWidth = this.trackWidth;\r\n this.options.size = this.size;\r\n this.options.rotate = this.rotate;\r\n this.options.animate.duration = this.animate.duration;\r\n this.options.animate.enabled = this.animate.enabled;\r\n }\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { SimpleChartComponent } from './chart-simple.component';\r\nimport { EasyPieChartComponent } from './chart-smallpie.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SimpleChartComponent, EasyPieChartComponent\r\n ],\r\n exports: [\r\n SimpleChartComponent, EasyPieChartComponent\r\n ],\r\n imports: []\r\n})\r\nexport class ChartSimpleModule {\r\n}\r\n","import { Component, ElementRef, OnInit, OnChanges, SimpleChanges, Input } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { PLATFORM_ID, Inject } from '@angular/core';\r\ndeclare var EasyPieChart: any;\r\n\r\n@Component({\r\n selector: 'mdb-easy-pie-chart',\r\n template: '<div>Loading</div>'\r\n})\r\nexport class EasyPieChartComponent implements OnInit, OnChanges {\r\n @Input('percent') percent: any;\r\n @Input('options') options: any;\r\n element: any;\r\n pieChart: any;\r\n isBrowser: any = false;\r\n\r\n constructor(el: ElementRef, @Inject(PLATFORM_ID) platformId: string) {\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n this.element = el;\r\n const options = {\r\n barColor: '#ef1e25',\r\n trackColor: '#f9f9f9',\r\n scaleColor: '#dfe0e0',\r\n scaleLength: 5,\r\n lineCap: 'round',\r\n lineWidth: 3,\r\n size: 110,\r\n rotate: 0,\r\n animate: {\r\n duration: 1000,\r\n enabled: true\r\n }\r\n };\r\n this.options = Object.assign(options, this.options);\r\n }\r\n\r\n ngOnInit() {\r\n if (this.isBrowser) {\r\n this.element.nativeElement.innerHTML = '';\r\n this.pieChart = new EasyPieChart(this.element.nativeElement, this.options);\r\n this.pieChart.update(this.percent);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes['percent'].isFirstChange()) {\r\n this.pieChart.update(this.percent);\r\n }\r\n }\r\n}\r\n","export * from './chart-simple.component';\r\nexport * from './chart-smallpie.component';\r\nexport * from './chart-simple.module';\r\n","import { EventEmitter } from '@angular/core';\r\nimport { Observable } from 'rxjs/Observable';\r\nimport { Subscription } from 'rxjs/Subscription';\r\n// import { Subscriber } from 'rxjs/Subscriber';\r\nimport 'rxjs/add/observable/merge';\r\nimport 'rxjs/add/observable/from';\r\nimport 'rxjs/add/operator/mergeAll';\r\nimport 'rxjs/add/operator/combineLatest';\r\n\r\nexport enum UploadStatus {\r\n Queue,\r\n Uploading,\r\n Done,\r\n Canceled\r\n}\r\n\r\nexport interface UploadProgress {\r\n status: UploadStatus;\r\n data?: {\r\n percentage: number;\r\n speed: number;\r\n speedHuman: string;\r\n };\r\n}\r\n\r\nexport interface UploadFile {\r\n id: string;\r\n fileIndex: number;\r\n lastModifiedDate: Date;\r\n name: string;\r\n size: number;\r\n type: string;\r\n progress: UploadProgress | any;\r\n response?: any;\r\n}\r\n\r\nexport interface UploadOutput {\r\n type: 'addedToQueue' | 'allAddedToQueue' | 'uploading' | 'done' | 'removed' | 'start' | 'cancelled' | 'dragOver' | 'dragOut' | 'drop';\r\n file?: UploadFile;\r\n}\r\n\r\nexport interface UploadInput {\r\n type: 'uploadAll' | 'uploadFile' | 'cancel' | 'cancelAll';\r\n url?: string;\r\n method?: string;\r\n id?: string;\r\n fileIndex?: number;\r\n file?: UploadFile;\r\n data?: { [key: string]: string | Blob };\r\n headers?: { [key: string]: string };\r\n concurrency?: number;\r\n}\r\n\r\nexport function humanizeBytes(bytes: number): string {\r\n if (bytes === 0) {\r\n return '0 Byte';\r\n }\r\n\r\n const k = 1024;\r\n const sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\r\n const i: number = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];\r\n}\r\n\r\nexport class MDBUploaderService {\r\n public setToNullValue: any = null;\r\n fileList: FileList;\r\n // files: UploadFile[];\r\n files: UploadFile[] | any;\r\n // uploads: { file?: UploadFile, files?: UploadFile[], sub: Subscription }[];\r\n uploads: { file?: UploadFile, files?: UploadFile[], sub: Subscription }[] | any;\r\n serviceEvents: EventEmitter<UploadOutput>;\r\n\r\n constructor() {\r\n this.files = [];\r\n this.serviceEvents = new EventEmitter<any>();\r\n this.uploads = [];\r\n }\r\n\r\n handleFiles(files: FileList): void {\r\n this.fileList = files;\r\n\r\n this.files = [].map.call(files, (file: File, i: number) => {\r\n // const uploadFile: UploadFile = {\r\n const uploadFile: UploadFile | any = {\r\n fileIndex: i,\r\n id: this.generateId(),\r\n name: file.name,\r\n size: file.size,\r\n type: file.type,\r\n progress: {\r\n status: UploadStatus.Queue,\r\n data: {\r\n percentage: 0,\r\n speed: null,\r\n speedHuman: null\r\n }\r\n },\r\n lastModifiedDate: file.lastModifiedDate\r\n };\r\n\r\n this.serviceEvents.emit({ type: 'addedToQueue', file: uploadFile });\r\n return uploadFile;\r\n });\r\n\r\n this.serviceEvents.emit({ type: 'allAddedToQueue' });\r\n }\r\n\r\n initInputEvents(input: EventEmitter<UploadInput>): void {\r\n // input.subscribe((event: UploadInput) => {\r\n // input.subscribe((event: UploadInput) => {\r\n input.subscribe((event: UploadInput | any) => {\r\n switch (event.type) {\r\n case 'uploadFile':\r\n this.serviceEvents.emit({ type: 'start', file: event.file });\r\n const sub = this.uploadFile(event.file, event).subscribe((data: any) => {\r\n this.serviceEvents.emit(data);\r\n });\r\n\r\n this.uploads.push({ file: event.file, sub: sub });\r\n break;\r\n case 'uploadAll':\r\n // Lines 118, 121 and 129 commented due to ts comipilator check “noUnusedLocals”: true, “noUnusedParameters”: true,\r\n // const concurrency = event.concurrency > 0 ? event.concurrency : Number.POSITIVE_INFINITY;\r\n\r\n // const subscriber = Subscriber.create((data: UploadOutput) => {\r\n // this.serviceEvents.emit(data);\r\n // });\r\n\r\n this.uploads = this.uploads.concat(this.files.map((file: any) => {\r\n return { file: file, sub: this.setToNullValue };\r\n }));\r\n\r\n // const subscription = Observable.from(this.files.map(file => this.uploadFile(file, event)))\r\n // .mergeAll(concurrency)\r\n // .combineLatest(data => data)\r\n // .subscribe(subscriber);\r\n break;\r\n case 'cancel':\r\n const id = event.id || null;\r\n if (!id) {\r\n return;\r\n }\r\n\r\n // const index = this.uploads.findIndex(upload => upload.file.id === id);\r\n const index: any = this.uploads.findIndex((upload: any) => upload.file.id === id);\r\n if (index !== -1) {\r\n if (this.uploads[index].sub) {\r\n this.uploads[index].sub.unsubscribe();\r\n }\r\n\r\n this.serviceEvents.emit({ type: 'cancelled', file: this.uploads[index].file });\r\n this.uploads[index].file.progress.status = UploadStatus.Canceled;\r\n }\r\n break;\r\n case 'cancelAll':\r\n // this.uploads.forEach(upload => {\r\n this.uploads.forEach((upload: any) => {\r\n upload.file.progress.status = UploadStatus.Canceled;\r\n this.serviceEvents.emit({ type: 'cancelled', file: upload.file });\r\n });\r\n break;\r\n }\r\n });\r\n }\r\n\r\n // uploadFile(file: UploadFile, event: UploadInput): Observable<UploadOutput> {\r\n uploadFile(file: UploadFile, event: UploadInput): Observable<UploadOutput> | any {\r\n return new Observable(observer => {\r\n const url: any = event.url;\r\n const method = event.method || 'POST';\r\n const data = event.data || {};\r\n const headers = event.headers || {};\r\n\r\n const reader = new FileReader();\r\n const xhr = new XMLHttpRequest();\r\n let time: number = new Date().getTime();\r\n let load = 0;\r\n\r\n xhr.upload.addEventListener('progress', (e: ProgressEvent) => {\r\n if (e.lengthComputable) {\r\n const percentage = Math.round((e.loaded * 100) / e.total);\r\n const diff = new Date().getTime() - time;\r\n time += diff;\r\n load = e.loaded - load;\r\n const speed = parseInt((load / diff * 1000) as any, 10);\r\n\r\n file.progress = {\r\n status: UploadStatus.Uploading,\r\n data: {\r\n percentage: percentage,\r\n speed: speed,\r\n speedHuman: `${humanizeBytes(speed)}/s`\r\n }\r\n };\r\n\r\n observer.next({ type: 'uploading', file: file });\r\n }\r\n }, false);\r\n\r\n xhr.upload.addEventListener('error', (e: Event) => {\r\n observer.error(e);\r\n observer.complete();\r\n });\r\n\r\n xhr.onreadystatechange = () => {\r\n if (xhr.readyState === XMLHttpRequest.DONE) {\r\n file.progress = {\r\n status: UploadStatus.Done,\r\n data: {\r\n percentage: 100,\r\n speed: null,\r\n speedHuman: null\r\n }\r\n };\r\n\r\n try {\r\n file.response = JSON.parse(xhr.response);\r\n } catch (e) {\r\n file.response = xhr.response;\r\n }\r\n\r\n observer.next({ type: 'done', file: file });\r\n observer.complete();\r\n }\r\n };\r\n\r\n xhr.open(method, url, true);\r\n\r\n const form = new FormData();\r\n try {\r\n const uploadFile: any = this.fileList.item(file.fileIndex);\r\n const uploadIndex: any = this.uploads.findIndex((upload: any) => upload.file.size === uploadFile.size);\r\n if (this.uploads[uploadIndex].file.progress.status === UploadStatus.Canceled) {\r\n observer.complete();\r\n }\r\n\r\n form.append('file', uploadFile, uploadFile.name);\r\n\r\n Object.keys(data).forEach(key => form.append(key, data[key]));\r\n Object.keys(headers).forEach(key => xhr.setRequestHeader(key, headers[key]));\r\n\r\n this.serviceEvents.emit({ type: 'start', file: file });\r\n xhr.send(form);\r\n } catch (e) {\r\n observer.complete();\r\n }\r\n\r\n return () => {\r\n xhr.abort();\r\n reader.abort();\r\n };\r\n });\r\n }\r\n\r\n generateId(): string {\r\n return Math.random().toString(36).substring(7);\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, Output, OnInit, OnDestroy, PLATFORM_ID, Inject, HostListener } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { MDBUploaderService, UploadOutput, UploadInput } from '../classes/mdb-uploader.class';\r\n\r\n@Directive({\r\n selector: '[mdbFileDrop]'\r\n})\r\nexport class MDBFileDropDirective implements OnInit, OnDestroy {\r\n @Input() uploadInput: EventEmitter<UploadInput>;\r\n @Output() uploadOutput: EventEmitter<UploadOutput>;\r\n\r\n upload: MDBUploaderService;\r\n isServer: boolean = isPlatformServer(this.platform_id);\r\n el: HTMLInputElement;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platform_id: any, private elementRef: ElementRef) {\r\n this.upload = new MDBUploaderService();\r\n this.uploadOutput = new EventEmitter<UploadOutput>();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.isServer) {\r\n return;\r\n }\r\n\r\n this.el = this.elementRef.nativeElement;\r\n\r\n this.upload.serviceEvents.subscribe((event: UploadOutput) => {\r\n this.uploadOutput.emit(event);\r\n });\r\n\r\n if (this.uploadInput instanceof EventEmitter) {\r\n this.upload.initInputEvents(this.uploadInput);\r\n }\r\n\r\n this.el.addEventListener('drop', this.stopEvent, false);\r\n this.el.addEventListener('dragenter', this.stopEvent, false);\r\n this.el.addEventListener('dragover', this.stopEvent, false);\r\n this.el.addEventListener('dragover', this.stopEvent, false);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.isServer) {\r\n return;\r\n }\r\n\r\n this.uploadInput.unsubscribe();\r\n }\r\n\r\n stopEvent = (e: Event) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n @HostListener('drop', ['$event'])\r\n public onDrop(e: any) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n const event: UploadOutput = { type: 'drop' };\r\n this.uploadOutput.emit(event);\r\n this.upload.handleFiles(e.dataTransfer.files);\r\n }\r\n\r\n @HostListener('dragover', ['$event'])\r\n public onDragOver(e: Event) {\r\n if (!e) {\r\n return;\r\n }\r\n\r\n const event: UploadOutput = { type: 'dragOver' };\r\n this.uploadOutput.emit(event);\r\n }\r\n\r\n @HostListener('dragleave', ['$event'])\r\n public onDragLeave(e: Event) {\r\n if (!e) {\r\n return;\r\n }\r\n\r\n const event: UploadOutput = { type: 'dragOut' };\r\n this.uploadOutput.emit(event);\r\n }\r\n}\r\n","import { Directive, ElementRef, EventEmitter, Input, Output, OnInit, OnDestroy, PLATFORM_ID, Inject } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\nimport { MDBUploaderService, UploadOutput } from '../classes/mdb-uploader.class';\r\n\r\n@Directive({\r\n selector: '[mdbFileSelect]'\r\n})\r\nexport class MDBFileSelectDirective implements OnInit, OnDestroy {\r\n @Input() uploadInput: EventEmitter<any>;\r\n @Output() uploadOutput: EventEmitter<UploadOutput>;\r\n\r\n upload: MDBUploaderService;\r\n isServer: boolean = isPlatformServer(this.platform_id);\r\n // el: HTMLInputElement;\r\n el: HTMLInputElement | any;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platform_id: any, private elementRef: ElementRef) {\r\n this.upload = new MDBUploaderService();\r\n this.uploadOutput = new EventEmitter<UploadOutput>();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.isServer) {\r\n return;\r\n }\r\n\r\n this.el = this.elementRef.nativeElement;\r\n this.el.addEventListener('change', this.fileListener, false);\r\n\r\n this.upload.serviceEvents.subscribe((event: UploadOutput) => {\r\n this.uploadOutput.emit(event);\r\n });\r\n\r\n if (this.uploadInput instanceof EventEmitter) {\r\n this.upload.initInputEvents(this.uploadInput);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.isServer) {\r\n return;\r\n }\r\n\r\n this.el.removeEventListener('change', this.fileListener, false);\r\n this.uploadInput.unsubscribe();\r\n }\r\n\r\n fileListener = () => {\r\n this.upload.handleFiles(this.el.files);\r\n }\r\n}\r\n","export * from './module/mdb-uploader.module'\r\nexport * from './classes/mdb-uploader.class';\r\nexport * from './directives/mdb-file-select.directive';\r\nexport * from './directives/mdb-file-drop.directive';\r\n","import { NgModule } from '@angular/core';\r\nimport { MDBFileDropDirective } from '../directives/mdb-file-drop.directive';\r\nimport { MDBFileSelectDirective } from '../directives/mdb-file-select.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n MDBFileSelectDirective,\r\n MDBFileDropDirective\r\n ],\r\n exports: [\r\n MDBFileSelectDirective,\r\n MDBFileDropDirective\r\n ]\r\n})\r\nexport class MDBUploaderModule {}\r\n","import { ModuleWithProviders, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\n\r\nimport { Ng2CompleterModule } from './autocomplete';\r\nimport { CardsModule } from './cards/';\r\nimport { MDBUploaderModule } from './file-input/';\r\nimport { MaterialChipsModule } from './tags/';\r\nimport { ProgressBars } from './progressbars/';\r\nimport { TabsModule } from './tabs-pills/';\r\nimport { SelectModule } from './material-select/';\r\nimport { MDBDatePickerModule } from './date-picker/';\r\nimport { TimePickerModule } from './time-picker/';\r\nimport { LightBoxModule } from './lightbox/light-box.module';\r\nimport { SidenavModule } from './sidenav/';\r\nimport { ChartSimpleModule } from './easy-charts/';\r\nimport { SqueezeBoxModule } from './accordion/';\r\nimport { MdbStickyModule } from './sticky-content/';\r\nimport { MDBPageScrollModule } from './smoothscroll/index';\r\nimport { CharCounterModule } from './inputs/';\r\n\r\nexport {\r\n Ng2CompleterModule, CompleterComponent, CompleterListItemComponent, CompleterService, LocalDataFactoryProvider,\r\n RemoteDataFactoryProvider, MdbCompleterDirective, MdbDropdownDirective, MdbInputDirective, MdbListDirective, MdbRowDirective\r\n} from './autocomplete/';\r\n\r\nexport {\r\n CardsModule, CardRotatingComponent, CardRevealComponent\r\n} from './cards/';\r\n\r\nexport {\r\n\r\n ProgressbarComponent, ProgressbarConfigComponent, ProgressbarModule, ProgressBars, ProgressDirective,\r\n ProgressSpinnerComponent, BarComponent\r\n} from './progressbars/';\r\n\r\nexport {\r\n MaterialChipsComponent, MaterialChipsModule\r\n} from './tags/';\r\n\r\nexport {\r\n TabDirective, TabHeadingDirective, TabsetComponent, TabsetConfig, TabsModule, NgTranscludeDirective\r\n} from './tabs-pills/';\r\n\r\nexport {\r\n MDBSpinningPreloader\r\n} from './preloader/preloader.service';\r\n\r\n// export {\r\n// ToastComponent, ToastContainerDirective, ToastContainerModule, ToastInjector, ToastPackage, ToastRef, ToastIconClasses,\r\n// ToastModule, ToastService, GlobalConfig, IndividualConfig, Overlay, OVERLAY_PROVIDERS, OverlayContainer, OverlayRef\r\n// } from './alerts/';\r\n\r\nexport {\r\n SelectModule, Diacritics, Option, OptionList, IOption, SELECT_VALUE_ACCESSOR, SelectComponent, SelectDropdownComponent\r\n} from './material-select/';\r\n\r\nexport {\r\n MDBDatePickerComponent, MDBDatePickerModule, IMyCalendarDay, IMyCalendarViewChanged, IMyDate, IMyDateModel, IMyDateRange,\r\n IMyDayLabels, IMyInputAutoFill, IMyInputFieldChanged, IMyInputFocusBlur, IMyLocales, IMyMarkedDate, IMyMarkedDates,\r\n IMyMonth, IMyMonthLabels, IMyOptions, IMyWeek, IMyWeekday, InputAutoFillDirective, MYDP_VALUE_ACCESSOR, UtilService,\r\n LocaleService, FocusDirective\r\n} from './date-picker/';\r\n\r\nexport {\r\n TimePickerModule, ClockPickerComponent\r\n} from './time-picker/';\r\n\r\nexport {\r\n LightBoxModule, ImageModalComponent\r\n} from './lightbox/';\r\n\r\nexport {\r\n SidenavComponent, SidenavModule\r\n} from './sidenav/';\r\n\r\nexport {\r\n ChartSimpleModule, EasyPieChartComponent, SimpleChartComponent\r\n} from './easy-charts/';\r\n\r\nexport {\r\n SBItemComponent, SBItemBodyComponent, SBItemHeadComponent, SqueezeBoxComponent , SqueezeBoxModule\r\n} from './accordion/';\r\n\r\nexport {\r\n MdbStickyDirective, MdbStickyModule\r\n} from './sticky-content/';\r\n\r\nexport {\r\n MDBPageScrollModule, PageScrollDirective, PageScrollConfig, PageScrollingViews, PageScrollInstance, PageScrollService,\r\n PageScrollTarget, PageScrollUtilService, EasingLogic\r\n} from './smoothscroll/';\r\n\r\nexport {\r\n CharCounterDirective, CharCounterModule\r\n} from './inputs';\r\n\r\nexport {\r\n MDBFileDropDirective, MDBFileSelectDirective, MDBUploaderModule, MDBUploaderService, UploadFile, UploadOutput,\r\n UploadInput, humanizeBytes\r\n} from './file-input';\r\n\r\nconst MODULES = [\r\n Ng2CompleterModule,\r\n CardsModule,\r\n MDBUploaderModule,\r\n MaterialChipsModule,\r\n ProgressBars,\r\n TabsModule,\r\n SelectModule,\r\n MDBDatePickerModule,\r\n TimePickerModule,\r\n LightBoxModule,\r\n SidenavModule,\r\n ChartSimpleModule,\r\n SqueezeBoxModule,\r\n MdbStickyModule,\r\n MDBPageScrollModule,\r\n CharCounterModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n Ng2CompleterModule,\r\n CardsModule.forRoot(),\r\n MaterialChipsModule,\r\n ProgressBars.forRoot(),\r\n TabsModule.forRoot(),\r\n SelectModule,\r\n MDBDatePickerModule,\r\n TimePickerModule,\r\n LightBoxModule,\r\n SidenavModule,\r\n ChartSimpleModule,\r\n SqueezeBoxModule,\r\n MdbStickyModule,\r\n MDBPageScrollModule.forRoot(),\r\n CharCounterModule.forRoot()\r\n ],\r\n exports: MODULES,\r\n providers: [\r\n ],\r\n schemas: [ NO_ERRORS_SCHEMA ]\r\n})\r\nexport class MDBRootModulePro {\r\n}\r\n\r\n@NgModule({exports: MODULES})\r\nexport class MDBBootstrapModulePro {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: MDBRootModulePro};\r\n }\r\n}\r\n","import { OnInit, Directive, ElementRef, Renderer, Input, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[mdbCharCounter]'\r\n})\r\n\r\n\r\nexport class CharCounterDirective implements OnInit {\r\n\r\n @Input() public length = 20;\r\n public textContainer: any;\r\n\r\n constructor(private _elRef: ElementRef, private _renderer: Renderer) {}\r\n\r\n ngOnInit() {\r\n // Inititalise a new <span> element for the count display and render it below the host component.\r\n this.textContainer = this._renderer.createElement(this._elRef.nativeElement.parentElement, 'p');\r\n this._renderer.setElementClass(this.textContainer, 'chars', true);\r\n this.textContainer.innerHTML = '0/' + this.length;\r\n this._renderer.setElementStyle(this.textContainer, 'display', 'none');\r\n }\r\n\r\n\r\n @HostListener('keyup', ['$event']) onKeyUp() {\r\n this.textContainer.innerHTML = this._elRef.nativeElement.value.length + '/' + this.length;\r\n\r\n if (this._elRef.nativeElement.value.length > this.length) {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'invalid', true);\r\n } else {\r\n this._renderer.setElementClass(this._elRef.nativeElement, 'invalid', false);\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event']) hide() {\r\n this._renderer.setElementStyle(this.textContainer, 'display', 'none');\r\n }\r\n\r\n @HostListener('focus', ['$event']) show() {\r\n this._renderer.setElementStyle(this.textContainer, 'display', 'block');\r\n }\r\n\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CharCounterDirective } from './char-counter.directive';\r\n\r\n@NgModule({\r\n declarations: [CharCounterDirective],\r\n exports: [CharCounterDirective]\r\n})\r\n\r\nexport class CharCounterModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: CharCounterModule, providers: []};\r\n }\r\n}\r\n","export * from './char-counter.directive';\r\nexport * from './char-counter.module';\r\n","module.exports = \"<div class=\\\"ng-gallery mdb-lightbox {{ type }}\\\" *ngIf=\\\"showRepeat\\\"> \\r\\n <figure class=\\\"col-md-4\\\" *ngFor =\\\"let i of modalImages; let index = index\\\">\\r\\n <img src=\\\"{{ !i.thumb ? i.img : i.thumb }}\\\" class=\\\"ng-thumb\\\" (click)=\\\"openGallery(index)\\\" alt=\\\"Image {{ index + 1 }}\\\" />\\r\\n </figure>\\r\\n</div>\\r\\n<div tabindex=\\\"0\\\" class=\\\"ng-overlay\\\" [class.hide_lightbox]=\\\"opened == false\\\">\\r\\n <div class=\\\"top-bar\\\" style='z-index: 100000'>\\r\\n <span class=\\\"info-text\\\">{{ currentImageIndex + 1 }}/{{ modalImages.length }}</span> \\r\\n <a class=\\\"close-popup\\\" (click)=\\\"closeGallery()\\\" (click)=\\\"toggleRestart()\\\"></a>\\r\\n <a *ngIf=\\\"!is_iPhone_or_iPod\\\" class=\\\"fullscreen-toogle\\\" [class.toggled]='fullscreen' (click)=\\\"fullScreen()\\\"></a>\\r\\n <a class=\\\"zoom-toogle\\\" [class.zoom]='zoom' (click)=\\\"toggleZoomed()\\\" *ngIf=\\\"!isMobile\\\"></a>\\r\\n </div>\\r\\n <div class=\\\"ng-gallery-content\\\">\\r\\n <!--<img *ngIf=\\\"!loading\\\" src=\\\"{{imgSrc}}\\\" (mousedown)=\\\"checkEvent($event)\\\" (mouseup)=\\\"setZoom($event)\\\" [class.zoom]='zoom' [class.smooth]='smooth' class=\\\"effect\\\" (swipeleft)=\\\"swipe($event, $event.type)\\\" (swiperight)=\\\"swipe($event, $event.type)\\\"/>-->\\r\\n <img *ngIf=\\\"!loading\\\" src=\\\"{{imgSrc}}\\\" [class.smooth]='smooth' class=\\\"effect\\\" (swipeleft)=\\\"swipe($event, $event.type)\\\" (swiperight)=\\\"swipe($event, $event.type)\\\" (click)=\\\"toggleZoomed()\\\" style=\\\"transform: scale(0.9, 0.9)\\\"/>\\r\\n\\r\\n <div class=\\\"uil-ring-css\\\" *ngIf=\\\"loading\\\">\\r\\n <div></div>\\r\\n </div> \\r\\n <a class=\\\"nav-left\\\" *ngIf=\\\"modalImages.length >1 && !isMobile\\\" (click)=\\\"prevImage()\\\" >\\r\\n <span></span>\\r\\n </a>\\r\\n <a class=\\\"nav-right\\\" *ngIf=\\\"modalImages.length >1 && !isMobile\\\" (click)=\\\"nextImage()\\\">\\r\\n <span></span>\\r\\n </a>\\r\\n </div>\\r\\n</div>\\r\\n<div *ngIf=\\\"openModalWindow\\\">\\r\\n <mdb-image-modal [modalImages]=\\\"images\\\" [imagePointer]=\\\"imagePointer\\\" (cancelEvent)=\\\"cancelImageModel()\\\"></mdb-image-modal>\\r\\n</div>\"","import { Component, Input, Output, ElementRef, EventEmitter, OnInit, HostListener, PLATFORM_ID, Inject, Renderer2 } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\ndeclare var screenfull: any;\r\n\r\nimport 'hammerjs';\r\n\r\n\r\n@Component({\r\n selector: 'mdb-image-modal',\r\n templateUrl: 'image-popup.html',\r\n // host: {\r\n // '(document:keyup)': 'keyboardControl($event)'\r\n // },\r\n})\r\n\r\nexport class ImageModalComponent implements OnInit {\r\n public _element: any;\r\n public opened = false;\r\n public imgSrc: string;\r\n public currentImageIndex: number;\r\n public loading = false;\r\n public showRepeat = false;\r\n public isMobile = false;\r\n\r\n public openModalWindow: any;\r\n\r\n clicked: any = false;\r\n isBrowser: any = false;\r\n zoomed = 'inactive';\r\n\r\n SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };\r\n\r\n @Input('modalImages') public modalImages: any;\r\n @Input('imagePointer') public imagePointer: number;\r\n\r\n @Input('fullscreen') public fullscreen: boolean;\r\n @Input('zoom') public zoom: boolean;\r\n @Input('smooth') public smooth = true;\r\n @Input('type') public type: String;\r\n\r\n @Output('cancelEvent') cancelEvent = new EventEmitter<any>();\r\n\r\n constructor( @Inject(PLATFORM_ID) platformId: string, public element: ElementRef, public renderer: Renderer2) {\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n this._element = this.element.nativeElement;\r\n try {\r\n document.createEvent('TouchEvent');\r\n this.isMobile = true;\r\n } catch (err) {\r\n this.isMobile = false;\r\n return;\r\n }\r\n }\r\n\r\n toggleZoomed() {\r\n // this.zoomed = (this.zoomed === 'inactive') ? 'active' : 'inactive';\r\n // this.zoom = !this.zoom;\r\n const imgRef = this.element.nativeElement.lastElementChild.lastElementChild.firstElementChild;\r\n\r\n if (!this.clicked) {\r\n this.renderer.setStyle(imgRef, 'transform', 'scale(1.0, 1.0');\r\n this.renderer.setStyle(imgRef, 'animate', '300ms ease-out');\r\n this.renderer.setStyle(imgRef, 'cursor', 'zoom-out');\r\n this.clicked = true;\r\n } else if (this.clicked) {\r\n this.renderer.setStyle(imgRef, 'transform', 'scale(0.9, 0.9');\r\n this.renderer.setStyle(imgRef, 'animate', '300ms ease-in');\r\n this.renderer.setStyle(imgRef, 'cursor', 'zoom-in');\r\n this.clicked = false;\r\n }\r\n }\r\n\r\n\r\n toggleRestart() {\r\n this.zoomed = (this.zoomed === 'inactive') ? 'active' : 'inactive';\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.loading = true;\r\n if (this.imagePointer >= 0) {\r\n this.showRepeat = false;\r\n this.openGallery(this.imagePointer);\r\n } else {\r\n this.showRepeat = true;\r\n }\r\n }\r\n\r\n closeGallery() {\r\n // this.smooth = false;\r\n this.zoom = false;\r\n if (screenfull.enabled) {\r\n screenfull.exit();\r\n }\r\n this.opened = false;\r\n this.cancelEvent.emit(null);\r\n }\r\n\r\n prevImage() {\r\n // this.smooth = false;\r\n // this.zoom = false;\r\n this.loading = true;\r\n this.currentImageIndex--;\r\n if (this.currentImageIndex < 0) {\r\n this.currentImageIndex = this.modalImages.length - 1;\r\n }\r\n this.openGallery(this.currentImageIndex);\r\n }\r\n\r\n nextImage() {\r\n // this.smooth = false;\r\n // this.zoom = false;\r\n this.loading = true;\r\n this.currentImageIndex++;\r\n if (this.modalImages.length === this.currentImageIndex) {\r\n this.currentImageIndex = 0;\r\n }\r\n this.openGallery(this.currentImageIndex);\r\n }\r\n\r\n openGallery(index: any) {\r\n if (!index) {\r\n this.currentImageIndex = 1;\r\n }\r\n this.currentImageIndex = index;\r\n this.opened = true;\r\n for (let i = 0; i < this.modalImages.length; i++) {\r\n if (i === this.currentImageIndex) {\r\n this.imgSrc = this.modalImages[i].img;\r\n this.loading = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n fullScreen(): any {\r\n if (screenfull.enabled) {\r\n screenfull.toggle();\r\n }\r\n }\r\n\r\n get is_iPhone_or_iPod() {\r\n if (this.isBrowser) {\r\n if (navigator && navigator.userAgent && navigator.userAgent != null) {\r\n const strUserAgent = navigator.userAgent.toLowerCase();\r\n const arrMatches = strUserAgent.match(/ipad/);\r\n if (arrMatches != null) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n @HostListener('document:keyup', ['$event'])\r\n keyboardControl(event: KeyboardEvent) {\r\n if (event.keyCode === 39) {\r\n this.nextImage();\r\n }\r\n if (event.keyCode === 37) {\r\n this.prevImage();\r\n }\r\n if (event.keyCode === 27) {\r\n this.closeGallery();\r\n }\r\n }\r\n\r\n swipe(action: String = this.SWIPE_ACTION.RIGHT) {\r\n // let thisImg = this._element.querySelector('.ng-gallery-content').querySelector('img[src=\"' + this.imgSrc + '\"]');\r\n\r\n if (action === this.SWIPE_ACTION.RIGHT) {\r\n this.nextImage();\r\n // console.log(event.distance, this.modalImages);\r\n }\r\n\r\n // previous\r\n if (action === this.SWIPE_ACTION.LEFT) {\r\n this.prevImage();\r\n }\r\n\r\n }\r\n\r\n}\r\n","export * from './image-popup';\r\nexport * from './light-box.module';\r\n","import { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { ImageModalComponent } from './image-popup';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [ImageModalComponent],\r\n exports: [ImageModalComponent]\r\n})\r\nexport class LightBoxModule {\r\n}\r\n","export class Diacritics {\r\n\r\n static DIACRITICS: any = {\r\n '\\u24B6': 'A',\r\n '\\uFF21': 'A',\r\n '\\u00C0': 'A',\r\n '\\u00C1': 'A',\r\n '\\u00C2': 'A',\r\n '\\u1EA6': 'A',\r\n '\\u1EA4': 'A',\r\n '\\u1EAA': 'A',\r\n '\\u1EA8': 'A',\r\n '\\u00C3': 'A',\r\n '\\u0100': 'A',\r\n '\\u0102': 'A',\r\n '\\u1EB0': 'A',\r\n '\\u1EAE': 'A',\r\n '\\u1EB4': 'A',\r\n '\\u1EB2': 'A',\r\n '\\u0226': 'A',\r\n '\\u01E0': 'A',\r\n '\\u00C4': 'A',\r\n '\\u01DE': 'A',\r\n '\\u1EA2': 'A',\r\n '\\u00C5': 'A',\r\n '\\u01FA': 'A',\r\n '\\u01CD': 'A',\r\n '\\u0200': 'A',\r\n '\\u0202': 'A',\r\n '\\u1EA0': 'A',\r\n '\\u1EAC': 'A',\r\n '\\u1EB6': 'A',\r\n '\\u1E00': 'A',\r\n '\\u0104': 'A',\r\n '\\u023A': 'A',\r\n '\\u2C6F': 'A',\r\n '\\uA732': 'AA',\r\n '\\u00C6': 'AE',\r\n '\\u01FC': 'AE',\r\n '\\u01E2': 'AE',\r\n '\\uA734': 'AO',\r\n '\\uA736': 'AU',\r\n '\\uA738': 'AV',\r\n '\\uA73A': 'AV',\r\n '\\uA73C': 'AY',\r\n '\\u24B7': 'B',\r\n '\\uFF22': 'B',\r\n '\\u1E02': 'B',\r\n '\\u1E04': 'B',\r\n '\\u1E06': 'B',\r\n '\\u0243': 'B',\r\n '\\u0182': 'B',\r\n '\\u0181': 'B',\r\n '\\u24B8': 'C',\r\n '\\uFF23': 'C',\r\n '\\u0106': 'C',\r\n '\\u0108': 'C',\r\n '\\u010A': 'C',\r\n '\\u010C': 'C',\r\n '\\u00C7': 'C',\r\n '\\u1E08': 'C',\r\n '\\u0187': 'C',\r\n '\\u023B': 'C',\r\n '\\uA73E': 'C',\r\n '\\u24B9': 'D',\r\n '\\uFF24': 'D',\r\n '\\u1E0A': 'D',\r\n '\\u010E': 'D',\r\n '\\u1E0C': 'D',\r\n '\\u1E10': 'D',\r\n '\\u1E12': 'D',\r\n '\\u1E0E': 'D',\r\n '\\u0110': 'D',\r\n '\\u018B': 'D',\r\n '\\u018A': 'D',\r\n '\\u0189': 'D',\r\n '\\uA779': 'D',\r\n '\\u01F1': 'DZ',\r\n '\\u01C4': 'DZ',\r\n '\\u01F2': 'Dz',\r\n '\\u01C5': 'Dz',\r\n '\\u24BA': 'E',\r\n '\\uFF25': 'E',\r\n '\\u00C8': 'E',\r\n '\\u00C9': 'E',\r\n '\\u00CA': 'E',\r\n '\\u1EC0': 'E',\r\n '\\u1EBE': 'E',\r\n '\\u1EC4': 'E',\r\n '\\u1EC2': 'E',\r\n '\\u1EBC': 'E',\r\n '\\u0112': 'E',\r\n '\\u1E14': 'E',\r\n '\\u1E16': 'E',\r\n '\\u0114': 'E',\r\n '\\u0116': 'E',\r\n '\\u00CB': 'E',\r\n '\\u1EBA': 'E',\r\n '\\u011A': 'E',\r\n '\\u0204': 'E',\r\n '\\u0206': 'E',\r\n '\\u1EB8': 'E',\r\n '\\u1EC6': 'E',\r\n '\\u0228': 'E',\r\n '\\u1E1C': 'E',\r\n '\\u0118': 'E',\r\n '\\u1E18': 'E',\r\n '\\u1E1A': 'E',\r\n '\\u0190': 'E',\r\n '\\u018E': 'E',\r\n '\\u24BB': 'F',\r\n '\\uFF26': 'F',\r\n '\\u1E1E': 'F',\r\n '\\u0191': 'F',\r\n '\\uA77B': 'F',\r\n '\\u24BC': 'G',\r\n '\\uFF27': 'G',\r\n '\\u01F4': 'G',\r\n '\\u011C': 'G',\r\n '\\u1E20': 'G',\r\n '\\u011E': 'G',\r\n '\\u0120': 'G',\r\n '\\u01E6': 'G',\r\n '\\u0122': 'G',\r\n '\\u01E4': 'G',\r\n '\\u0193': 'G',\r\n '\\uA7A0': 'G',\r\n '\\uA77D': 'G',\r\n '\\uA77E': 'G',\r\n '\\u24BD': 'H',\r\n '\\uFF28': 'H',\r\n '\\u0124': 'H',\r\n '\\u1E22': 'H',\r\n '\\u1E26': 'H',\r\n '\\u021E': 'H',\r\n '\\u1E24': 'H',\r\n '\\u1E28': 'H',\r\n '\\u1E2A': 'H',\r\n '\\u0126': 'H',\r\n '\\u2C67': 'H',\r\n '\\u2C75': 'H',\r\n '\\uA78D': 'H',\r\n '\\u24BE': 'I',\r\n '\\uFF29': 'I',\r\n '\\u00CC': 'I',\r\n '\\u00CD': 'I',\r\n '\\u00CE': 'I',\r\n '\\u0128': 'I',\r\n '\\u012A': 'I',\r\n '\\u012C': 'I',\r\n '\\u0130': 'I',\r\n '\\u00CF': 'I',\r\n '\\u1E2E': 'I',\r\n '\\u1EC8': 'I',\r\n '\\u01CF': 'I',\r\n '\\u0208': 'I',\r\n '\\u020A': 'I',\r\n '\\u1ECA': 'I',\r\n '\\u012E': 'I',\r\n '\\u1E2C': 'I',\r\n '\\u0197': 'I',\r\n '\\u24BF': 'J',\r\n '\\uFF2A': 'J',\r\n '\\u0134': 'J',\r\n '\\u0248': 'J',\r\n '\\u24C0': 'K',\r\n '\\uFF2B': 'K',\r\n '\\u1E30': 'K',\r\n '\\u01E8': 'K',\r\n '\\u1E32': 'K',\r\n '\\u0136': 'K',\r\n '\\u1E34': 'K',\r\n '\\u0198': 'K',\r\n '\\u2C69': 'K',\r\n '\\uA740': 'K',\r\n '\\uA742': 'K',\r\n '\\uA744': 'K',\r\n '\\uA7A2': 'K',\r\n '\\u24C1': 'L',\r\n '\\uFF2C': 'L',\r\n '\\u013F': 'L',\r\n '\\u0139': 'L',\r\n '\\u013D': 'L',\r\n '\\u1E36': 'L',\r\n '\\u1E38': 'L',\r\n '\\u013B': 'L',\r\n '\\u1E3C': 'L',\r\n '\\u1E3A': 'L',\r\n '\\u0141': 'L',\r\n '\\u023D': 'L',\r\n '\\u2C62': 'L',\r\n '\\u2C60': 'L',\r\n '\\uA748': 'L',\r\n '\\uA746': 'L',\r\n '\\uA780': 'L',\r\n '\\u01C7': 'LJ',\r\n '\\u01C8': 'Lj',\r\n '\\u24C2': 'M',\r\n '\\uFF2D': 'M',\r\n '\\u1E3E': 'M',\r\n '\\u1E40': 'M',\r\n '\\u1E42': 'M',\r\n '\\u2C6E': 'M',\r\n '\\u019C': 'M',\r\n '\\u24C3': 'N',\r\n '\\uFF2E': 'N',\r\n '\\u01F8': 'N',\r\n '\\u0143': 'N',\r\n '\\u00D1': 'N',\r\n '\\u1E44': 'N',\r\n '\\u0147': 'N',\r\n '\\u1E46': 'N',\r\n '\\u0145': 'N',\r\n '\\u1E4A': 'N',\r\n '\\u1E48': 'N',\r\n '\\u0220': 'N',\r\n '\\u019D': 'N',\r\n '\\uA790': 'N',\r\n '\\uA7A4': 'N',\r\n '\\u01CA': 'NJ',\r\n '\\u01CB': 'Nj',\r\n '\\u24C4': 'O',\r\n '\\uFF2F': 'O',\r\n '\\u00D2': 'O',\r\n '\\u00D3': 'O',\r\n '\\u00D4': 'O',\r\n '\\u1ED2': 'O',\r\n '\\u1ED0': 'O',\r\n '\\u1ED6': 'O',\r\n '\\u1ED4': 'O',\r\n '\\u00D5': 'O',\r\n '\\u1E4C': 'O',\r\n '\\u022C': 'O',\r\n '\\u1E4E': 'O',\r\n '\\u014C': 'O',\r\n '\\u1E50': 'O',\r\n '\\u1E52': 'O',\r\n '\\u014E': 'O',\r\n '\\u022E': 'O',\r\n '\\u0230': 'O',\r\n '\\u00D6': 'O',\r\n '\\u022A': 'O',\r\n '\\u1ECE': 'O',\r\n '\\u0150': 'O',\r\n '\\u01D1': 'O',\r\n '\\u020C': 'O',\r\n '\\u020E': 'O',\r\n '\\u01A0': 'O',\r\n '\\u1EDC': 'O',\r\n '\\u1EDA': 'O',\r\n '\\u1EE0': 'O',\r\n '\\u1EDE': 'O',\r\n '\\u1EE2': 'O',\r\n '\\u1ECC': 'O',\r\n '\\u1ED8': 'O',\r\n '\\u01EA': 'O',\r\n '\\u01EC': 'O',\r\n '\\u00D8': 'O',\r\n '\\u01FE': 'O',\r\n '\\u0186': 'O',\r\n '\\u019F': 'O',\r\n '\\uA74A': 'O',\r\n '\\uA74C': 'O',\r\n '\\u01A2': 'OI',\r\n '\\uA74E': 'OO',\r\n '\\u0222': 'OU',\r\n '\\u24C5': 'P',\r\n '\\uFF30': 'P',\r\n '\\u1E54': 'P',\r\n '\\u1E56': 'P',\r\n '\\u01A4': 'P',\r\n '\\u2C63': 'P',\r\n '\\uA750': 'P',\r\n '\\uA752': 'P',\r\n '\\uA754': 'P',\r\n '\\u24C6': 'Q',\r\n '\\uFF31': 'Q',\r\n '\\uA756': 'Q',\r\n '\\uA758': 'Q',\r\n '\\u024A': 'Q',\r\n '\\u24C7': 'R',\r\n '\\uFF32': 'R',\r\n '\\u0154': 'R',\r\n '\\u1E58': 'R',\r\n '\\u0158': 'R',\r\n '\\u0210': 'R',\r\n '\\u0212': 'R',\r\n '\\u1E5A': 'R',\r\n '\\u1E5C': 'R',\r\n '\\u0156': 'R',\r\n '\\u1E5E': 'R',\r\n '\\u024C': 'R',\r\n '\\u2C64': 'R',\r\n '\\uA75A': 'R',\r\n '\\uA7A6': 'R',\r\n '\\uA782': 'R',\r\n '\\u24C8': 'S',\r\n '\\uFF33': 'S',\r\n '\\u1E9E': 'S',\r\n '\\u015A': 'S',\r\n '\\u1E64': 'S',\r\n '\\u015C': 'S',\r\n '\\u1E60': 'S',\r\n '\\u0160': 'S',\r\n '\\u1E66': 'S',\r\n '\\u1E62': 'S',\r\n '\\u1E68': 'S',\r\n '\\u0218': 'S',\r\n '\\u015E': 'S',\r\n '\\u2C7E': 'S',\r\n '\\uA7A8': 'S',\r\n '\\uA784': 'S',\r\n '\\u24C9': 'T',\r\n '\\uFF34': 'T',\r\n '\\u1E6A': 'T',\r\n '\\u0164': 'T',\r\n '\\u1E6C': 'T',\r\n '\\u021A': 'T',\r\n '\\u0162': 'T',\r\n '\\u1E70': 'T',\r\n '\\u1E6E': 'T',\r\n '\\u0166': 'T',\r\n '\\u01AC': 'T',\r\n '\\u01AE': 'T',\r\n '\\u023E': 'T',\r\n '\\uA786': 'T',\r\n '\\uA728': 'TZ',\r\n '\\u24CA': 'U',\r\n '\\uFF35': 'U',\r\n '\\u00D9': 'U',\r\n '\\u00DA': 'U',\r\n '\\u00DB': 'U',\r\n '\\u0168': 'U',\r\n '\\u1E78': 'U',\r\n '\\u016A': 'U',\r\n '\\u1E7A': 'U',\r\n '\\u016C': 'U',\r\n '\\u00DC': 'U',\r\n '\\u01DB': 'U',\r\n '\\u01D7': 'U',\r\n '\\u01D5': 'U',\r\n '\\u01D9': 'U',\r\n '\\u1EE6': 'U',\r\n '\\u016E': 'U',\r\n '\\u0170': 'U',\r\n '\\u01D3': 'U',\r\n '\\u0214': 'U',\r\n '\\u0216': 'U',\r\n '\\u01AF': 'U',\r\n '\\u1EEA': 'U',\r\n '\\u1EE8': 'U',\r\n '\\u1EEE': 'U',\r\n '\\u1EEC': 'U',\r\n '\\u1EF0': 'U',\r\n '\\u1EE4': 'U',\r\n '\\u1E72': 'U',\r\n '\\u0172': 'U',\r\n '\\u1E76': 'U',\r\n '\\u1E74': 'U',\r\n '\\u0244': 'U',\r\n '\\u24CB': 'V',\r\n '\\uFF36': 'V',\r\n '\\u1E7C': 'V',\r\n '\\u1E7E': 'V',\r\n '\\u01B2': 'V',\r\n '\\uA75E': 'V',\r\n '\\u0245': 'V',\r\n '\\uA760': 'VY',\r\n '\\u24CC': 'W',\r\n '\\uFF37': 'W',\r\n '\\u1E80': 'W',\r\n '\\u1E82': 'W',\r\n '\\u0174': 'W',\r\n '\\u1E86': 'W',\r\n '\\u1E84': 'W',\r\n '\\u1E88': 'W',\r\n '\\u2C72': 'W',\r\n '\\u24CD': 'X',\r\n '\\uFF38': 'X',\r\n '\\u1E8A': 'X',\r\n '\\u1E8C': 'X',\r\n '\\u24CE': 'Y',\r\n '\\uFF39': 'Y',\r\n '\\u1EF2': 'Y',\r\n '\\u00DD': 'Y',\r\n '\\u0176': 'Y',\r\n '\\u1EF8': 'Y',\r\n '\\u0232': 'Y',\r\n '\\u1E8E': 'Y',\r\n '\\u0178': 'Y',\r\n '\\u1EF6': 'Y',\r\n '\\u1EF4': 'Y',\r\n '\\u01B3': 'Y',\r\n '\\u024E': 'Y',\r\n '\\u1EFE': 'Y',\r\n '\\u24CF': 'Z',\r\n '\\uFF3A': 'Z',\r\n '\\u0179': 'Z',\r\n '\\u1E90': 'Z',\r\n '\\u017B': 'Z',\r\n '\\u017D': 'Z',\r\n '\\u1E92': 'Z',\r\n '\\u1E94': 'Z',\r\n '\\u01B5': 'Z',\r\n '\\u0224': 'Z',\r\n '\\u2C7F': 'Z',\r\n '\\u2C6B': 'Z',\r\n '\\uA762': 'Z',\r\n '\\u24D0': 'a',\r\n '\\uFF41': 'a',\r\n '\\u1E9A': 'a',\r\n '\\u00E0': 'a',\r\n '\\u00E1': 'a',\r\n '\\u00E2': 'a',\r\n '\\u1EA7': 'a',\r\n '\\u1EA5': 'a',\r\n '\\u1EAB': 'a',\r\n '\\u1EA9': 'a',\r\n '\\u00E3': 'a',\r\n '\\u0101': 'a',\r\n '\\u0103': 'a',\r\n '\\u1EB1': 'a',\r\n '\\u1EAF': 'a',\r\n '\\u1EB5': 'a',\r\n '\\u1EB3': 'a',\r\n '\\u0227': 'a',\r\n '\\u01E1': 'a',\r\n '\\u00E4': 'a',\r\n '\\u01DF': 'a',\r\n '\\u1EA3': 'a',\r\n '\\u00E5': 'a',\r\n '\\u01FB': 'a',\r\n '\\u01CE': 'a',\r\n '\\u0201': 'a',\r\n '\\u0203': 'a',\r\n '\\u1EA1': 'a',\r\n '\\u1EAD': 'a',\r\n '\\u1EB7': 'a',\r\n '\\u1E01': 'a',\r\n '\\u0105': 'a',\r\n '\\u2C65': 'a',\r\n '\\u0250': 'a',\r\n '\\uA733': 'aa',\r\n '\\u00E6': 'ae',\r\n '\\u01FD': 'ae',\r\n '\\u01E3': 'ae',\r\n '\\uA735': 'ao',\r\n '\\uA737': 'au',\r\n '\\uA739': 'av',\r\n '\\uA73B': 'av',\r\n '\\uA73D': 'ay',\r\n '\\u24D1': 'b',\r\n '\\uFF42': 'b',\r\n '\\u1E03': 'b',\r\n '\\u1E05': 'b',\r\n '\\u1E07': 'b',\r\n '\\u0180': 'b',\r\n '\\u0183': 'b',\r\n '\\u0253': 'b',\r\n '\\u24D2': 'c',\r\n '\\uFF43': 'c',\r\n '\\u0107': 'c',\r\n '\\u0109': 'c',\r\n '\\u010B': 'c',\r\n '\\u010D': 'c',\r\n '\\u00E7': 'c',\r\n '\\u1E09': 'c',\r\n '\\u0188': 'c',\r\n '\\u023C': 'c',\r\n '\\uA73F': 'c',\r\n '\\u2184': 'c',\r\n '\\u24D3': 'd',\r\n '\\uFF44': 'd',\r\n '\\u1E0B': 'd',\r\n '\\u010F': 'd',\r\n '\\u1E0D': 'd',\r\n '\\u1E11': 'd',\r\n '\\u1E13': 'd',\r\n '\\u1E0F': 'd',\r\n '\\u0111': 'd',\r\n '\\u018C': 'd',\r\n '\\u0256': 'd',\r\n '\\u0257': 'd',\r\n '\\uA77A': 'd',\r\n '\\u01F3': 'dz',\r\n '\\u01C6': 'dz',\r\n '\\u24D4': 'e',\r\n '\\uFF45': 'e',\r\n '\\u00E8': 'e',\r\n '\\u00E9': 'e',\r\n '\\u00EA': 'e',\r\n '\\u1EC1': 'e',\r\n '\\u1EBF': 'e',\r\n '\\u1EC5': 'e',\r\n '\\u1EC3': 'e',\r\n '\\u1EBD': 'e',\r\n '\\u0113': 'e',\r\n '\\u1E15': 'e',\r\n '\\u1E17': 'e',\r\n '\\u0115': 'e',\r\n '\\u0117': 'e',\r\n '\\u00EB': 'e',\r\n '\\u1EBB': 'e',\r\n '\\u011B': 'e',\r\n '\\u0205': 'e',\r\n '\\u0207': 'e',\r\n '\\u1EB9': 'e',\r\n '\\u1EC7': 'e',\r\n '\\u0229': 'e',\r\n '\\u1E1D': 'e',\r\n '\\u0119': 'e',\r\n '\\u1E19': 'e',\r\n '\\u1E1B': 'e',\r\n '\\u0247': 'e',\r\n '\\u025B': 'e',\r\n '\\u01DD': 'e',\r\n '\\u24D5': 'f',\r\n '\\uFF46': 'f',\r\n '\\u1E1F': 'f',\r\n '\\u0192': 'f',\r\n '\\uA77C': 'f',\r\n '\\u24D6': 'g',\r\n '\\uFF47': 'g',\r\n '\\u01F5': 'g',\r\n '\\u011D': 'g',\r\n '\\u1E21': 'g',\r\n '\\u011F': 'g',\r\n '\\u0121': 'g',\r\n '\\u01E7': 'g',\r\n '\\u0123': 'g',\r\n '\\u01E5': 'g',\r\n '\\u0260': 'g',\r\n '\\uA7A1': 'g',\r\n '\\u1D79': 'g',\r\n '\\uA77F': 'g',\r\n '\\u24D7': 'h',\r\n '\\uFF48': 'h',\r\n '\\u0125': 'h',\r\n '\\u1E23': 'h',\r\n '\\u1E27': 'h',\r\n '\\u021F': 'h',\r\n '\\u1E25': 'h',\r\n '\\u1E29': 'h',\r\n '\\u1E2B': 'h',\r\n '\\u1E96': 'h',\r\n '\\u0127': 'h',\r\n '\\u2C68': 'h',\r\n '\\u2C76': 'h',\r\n '\\u0265': 'h',\r\n '\\u0195': 'hv',\r\n '\\u24D8': 'i',\r\n '\\uFF49': 'i',\r\n '\\u00EC': 'i',\r\n '\\u00ED': 'i',\r\n '\\u00EE': 'i',\r\n '\\u0129': 'i',\r\n '\\u012B': 'i',\r\n '\\u012D': 'i',\r\n '\\u00EF': 'i',\r\n '\\u1E2F': 'i',\r\n '\\u1EC9': 'i',\r\n '\\u01D0': 'i',\r\n '\\u0209': 'i',\r\n '\\u020B': 'i',\r\n '\\u1ECB': 'i',\r\n '\\u012F': 'i',\r\n '\\u1E2D': 'i',\r\n '\\u0268': 'i',\r\n '\\u0131': 'i',\r\n '\\u24D9': 'j',\r\n '\\uFF4A': 'j',\r\n '\\u0135': 'j',\r\n '\\u01F0': 'j',\r\n '\\u0249': 'j',\r\n '\\u24DA': 'k',\r\n '\\uFF4B': 'k',\r\n '\\u1E31': 'k',\r\n '\\u01E9': 'k',\r\n '\\u1E33': 'k',\r\n '\\u0137': 'k',\r\n '\\u1E35': 'k',\r\n '\\u0199': 'k',\r\n '\\u2C6A': 'k',\r\n '\\uA741': 'k',\r\n '\\uA743': 'k',\r\n '\\uA745': 'k',\r\n '\\uA7A3': 'k',\r\n '\\u24DB': 'l',\r\n '\\uFF4C': 'l',\r\n '\\u0140': 'l',\r\n '\\u013A': 'l',\r\n '\\u013E': 'l',\r\n '\\u1E37': 'l',\r\n '\\u1E39': 'l',\r\n '\\u013C': 'l',\r\n '\\u1E3D': 'l',\r\n '\\u1E3B': 'l',\r\n '\\u017F': 'l',\r\n '\\u0142': 'l',\r\n '\\u019A': 'l',\r\n '\\u026B': 'l',\r\n '\\u2C61': 'l',\r\n '\\uA749': 'l',\r\n '\\uA781': 'l',\r\n '\\uA747': 'l',\r\n '\\u01C9': 'lj',\r\n '\\u24DC': 'm',\r\n '\\uFF4D': 'm',\r\n '\\u1E3F': 'm',\r\n '\\u1E41': 'm',\r\n '\\u1E43': 'm',\r\n '\\u0271': 'm',\r\n '\\u026F': 'm',\r\n '\\u24DD': 'n',\r\n '\\uFF4E': 'n',\r\n '\\u01F9': 'n',\r\n '\\u0144': 'n',\r\n '\\u00F1': 'n',\r\n '\\u1E45': 'n',\r\n '\\u0148': 'n',\r\n '\\u1E47': 'n',\r\n '\\u0146': 'n',\r\n '\\u1E4B': 'n',\r\n '\\u1E49': 'n',\r\n '\\u019E': 'n',\r\n '\\u0272': 'n',\r\n '\\u0149': 'n',\r\n '\\uA791': 'n',\r\n '\\uA7A5': 'n',\r\n '\\u01CC': 'nj',\r\n '\\u24DE': 'o',\r\n '\\uFF4F': 'o',\r\n '\\u00F2': 'o',\r\n '\\u00F3': 'o',\r\n '\\u00F4': 'o',\r\n '\\u1ED3': 'o',\r\n '\\u1ED1': 'o',\r\n '\\u1ED7': 'o',\r\n '\\u1ED5': 'o',\r\n '\\u00F5': 'o',\r\n '\\u1E4D': 'o',\r\n '\\u022D': 'o',\r\n '\\u1E4F': 'o',\r\n '\\u014D': 'o',\r\n '\\u1E51': 'o',\r\n '\\u1E53': 'o',\r\n '\\u014F': 'o',\r\n '\\u022F': 'o',\r\n '\\u0231': 'o',\r\n '\\u00F6': 'o',\r\n '\\u022B': 'o',\r\n '\\u1ECF': 'o',\r\n '\\u0151': 'o',\r\n '\\u01D2': 'o',\r\n '\\u020D': 'o',\r\n '\\u020F': 'o',\r\n '\\u01A1': 'o',\r\n '\\u1EDD': 'o',\r\n '\\u1EDB': 'o',\r\n '\\u1EE1': 'o',\r\n '\\u1EDF': 'o',\r\n '\\u1EE3': 'o',\r\n '\\u1ECD': 'o',\r\n '\\u1ED9': 'o',\r\n '\\u01EB': 'o',\r\n '\\u01ED': 'o',\r\n '\\u00F8': 'o',\r\n '\\u01FF': 'o',\r\n '\\u0254': 'o',\r\n '\\uA74B': 'o',\r\n '\\uA74D': 'o',\r\n '\\u0275': 'o',\r\n '\\u01A3': 'oi',\r\n '\\u0223': 'ou',\r\n '\\uA74F': 'oo',\r\n '\\u24DF': 'p',\r\n '\\uFF50': 'p',\r\n '\\u1E55': 'p',\r\n '\\u1E57': 'p',\r\n '\\u01A5': 'p',\r\n '\\u1D7D': 'p',\r\n '\\uA751': 'p',\r\n '\\uA753': 'p',\r\n '\\uA755': 'p',\r\n '\\u24E0': 'q',\r\n '\\uFF51': 'q',\r\n '\\u024B': 'q',\r\n '\\uA757': 'q',\r\n '\\uA759': 'q',\r\n '\\u24E1': 'r',\r\n '\\uFF52': 'r',\r\n '\\u0155': 'r',\r\n '\\u1E59': 'r',\r\n '\\u0159': 'r',\r\n '\\u0211': 'r',\r\n '\\u0213': 'r',\r\n '\\u1E5B': 'r',\r\n '\\u1E5D': 'r',\r\n '\\u0157': 'r',\r\n '\\u1E5F': 'r',\r\n '\\u024D': 'r',\r\n '\\u027D': 'r',\r\n '\\uA75B': 'r',\r\n '\\uA7A7': 'r',\r\n '\\uA783': 'r',\r\n '\\u24E2': 's',\r\n '\\uFF53': 's',\r\n '\\u00DF': 's',\r\n '\\u015B': 's',\r\n '\\u1E65': 's',\r\n '\\u015D': 's',\r\n '\\u1E61': 's',\r\n '\\u0161': 's',\r\n '\\u1E67': 's',\r\n '\\u1E63': 's',\r\n '\\u1E69': 's',\r\n '\\u0219': 's',\r\n '\\u015F': 's',\r\n '\\u023F': 's',\r\n '\\uA7A9': 's',\r\n '\\uA785': 's',\r\n '\\u1E9B': 's',\r\n '\\u24E3': 't',\r\n '\\uFF54': 't',\r\n '\\u1E6B': 't',\r\n '\\u1E97': 't',\r\n '\\u0165': 't',\r\n '\\u1E6D': 't',\r\n '\\u021B': 't',\r\n '\\u0163': 't',\r\n '\\u1E71': 't',\r\n '\\u1E6F': 't',\r\n '\\u0167': 't',\r\n '\\u01AD': 't',\r\n '\\u0288': 't',\r\n '\\u2C66': 't',\r\n '\\uA787': 't',\r\n '\\uA729': 'tz',\r\n '\\u24E4': 'u',\r\n '\\uFF55': 'u',\r\n '\\u00F9': 'u',\r\n '\\u00FA': 'u',\r\n '\\u00FB': 'u',\r\n '\\u0169': 'u',\r\n '\\u1E79': 'u',\r\n '\\u016B': 'u',\r\n '\\u1E7B': 'u',\r\n '\\u016D': 'u',\r\n '\\u00FC': 'u',\r\n '\\u01DC': 'u',\r\n '\\u01D8': 'u',\r\n '\\u01D6': 'u',\r\n '\\u01DA': 'u',\r\n '\\u1EE7': 'u',\r\n '\\u016F': 'u',\r\n '\\u0171': 'u',\r\n '\\u01D4': 'u',\r\n '\\u0215': 'u',\r\n '\\u0217': 'u',\r\n '\\u01B0': 'u',\r\n '\\u1EEB': 'u',\r\n '\\u1EE9': 'u',\r\n '\\u1EEF': 'u',\r\n '\\u1EED': 'u',\r\n '\\u1EF1': 'u',\r\n '\\u1EE5': 'u',\r\n '\\u1E73': 'u',\r\n '\\u0173': 'u',\r\n '\\u1E77': 'u',\r\n '\\u1E75': 'u',\r\n '\\u0289': 'u',\r\n '\\u24E5': 'v',\r\n '\\uFF56': 'v',\r\n '\\u1E7D': 'v',\r\n '\\u1E7F': 'v',\r\n '\\u028B': 'v',\r\n '\\uA75F': 'v',\r\n '\\u028C': 'v',\r\n '\\uA761': 'vy',\r\n '\\u24E6': 'w',\r\n '\\uFF57': 'w',\r\n '\\u1E81': 'w',\r\n '\\u1E83': 'w',\r\n '\\u0175': 'w',\r\n '\\u1E87': 'w',\r\n '\\u1E85': 'w',\r\n '\\u1E98': 'w',\r\n '\\u1E89': 'w',\r\n '\\u2C73': 'w',\r\n '\\u24E7': 'x',\r\n '\\uFF58': 'x',\r\n '\\u1E8B': 'x',\r\n '\\u1E8D': 'x',\r\n '\\u24E8': 'y',\r\n '\\uFF59': 'y',\r\n '\\u1EF3': 'y',\r\n '\\u00FD': 'y',\r\n '\\u0177': 'y',\r\n '\\u1EF9': 'y',\r\n '\\u0233': 'y',\r\n '\\u1E8F': 'y',\r\n '\\u00FF': 'y',\r\n '\\u1EF7': 'y',\r\n '\\u1E99': 'y',\r\n '\\u1EF5': 'y',\r\n '\\u01B4': 'y',\r\n '\\u024F': 'y',\r\n '\\u1EFF': 'y',\r\n '\\u24E9': 'z',\r\n '\\uFF5A': 'z',\r\n '\\u017A': 'z',\r\n '\\u1E91': 'z',\r\n '\\u017C': 'z',\r\n '\\u017E': 'z',\r\n '\\u1E93': 'z',\r\n '\\u1E95': 'z',\r\n '\\u01B6': 'z',\r\n '\\u0225': 'z',\r\n '\\u0240': 'z',\r\n '\\u2C6C': 'z',\r\n '\\uA763': 'z',\r\n '\\u0386': '\\u0391',\r\n '\\u0388': '\\u0395',\r\n '\\u0389': '\\u0397',\r\n '\\u038A': '\\u0399',\r\n '\\u03AA': '\\u0399',\r\n '\\u038C': '\\u039F',\r\n '\\u038E': '\\u03A5',\r\n '\\u03AB': '\\u03A5',\r\n '\\u038F': '\\u03A9',\r\n '\\u03AC': '\\u03B1',\r\n '\\u03AD': '\\u03B5',\r\n '\\u03AE': '\\u03B7',\r\n '\\u03AF': '\\u03B9',\r\n '\\u03CA': '\\u03B9',\r\n '\\u0390': '\\u03B9',\r\n '\\u03CC': '\\u03BF',\r\n '\\u03CD': '\\u03C5',\r\n '\\u03CB': '\\u03C5',\r\n '\\u03B0': '\\u03C5',\r\n '\\u03C9': '\\u03C9',\r\n '\\u03C2': '\\u03C3'\r\n };\r\n\r\n static strip(text: string): string {\r\n\r\n const match = (a: string): string => {\r\n return this.DIACRITICS[a] || a;\r\n };\r\n\r\n return text.replace(/[^\\u0000-\\u007E]/g, match);\r\n }\r\n}\r\n","export * from './diacritics'\r\nexport * from './option'\r\nexport * from './option-interface'\r\nexport * from './option-list'\r\nexport * from './select.component'\r\nexport * from './select-dropdown.component'\r\nexport * from './select.module'\r\n","import {Option} from './option';\r\nimport {IOption} from './option-interface';\r\nimport {Diacritics} from './diacritics';\r\n\r\nexport class OptionList {\r\n\r\n private _options: Array<Option>;\r\n\r\n /* Consider using these for performance improvement. */\r\n // private _selection: Array<Option>;\r\n // private _filtered: Array<Option>;\r\n // private _value: Array<string>;\r\n\r\n // private _highlightedOption: Option = null;\r\n private _highlightedOption: Option | any = null;\r\n private _hasShown: boolean;\r\n\r\n public setToNullValue: any = null;\r\n // v0 and v1 are assumed not to be undefined or null.\r\n static equalValues(v0: Array<string>, v1: Array<string>): boolean {\r\n\r\n if (v0.length !== v1.length) {\r\n return false;\r\n }\r\n\r\n const a: Array<string> = v0.slice().sort();\r\n const b: Array<string> = v1.slice().sort();\r\n\r\n return a.every((v, i) => {\r\n return v === b[i];\r\n });\r\n }\r\n\r\n constructor(options: Array<IOption>) {\r\n\r\n if (typeof options === 'undefined' || options === null) {\r\n options = [];\r\n }\r\n\r\n this._options = options.map((option) => {\r\n const o: Option = new Option(option);\r\n if (option.disabled) {\r\n o.disabled = true;\r\n }\r\n if (option.group) {\r\n o.disabled = true;\r\n o.group = true;\r\n }\r\n return o;\r\n });\r\n\r\n this._hasShown = this._options.length > 0;\r\n this.highlight();\r\n }\r\n\r\n /** Options. **/\r\n\r\n get options(): Array<Option> {\r\n return this._options;\r\n }\r\n\r\n getOptionsByValue(value: string): Array<Option> {\r\n return this.options.filter((option) => {\r\n return option.value === value;\r\n });\r\n }\r\n\r\n /** Value. **/\r\n\r\n get value(): Array<string> {\r\n return this.selection.map((selectedOption) => {\r\n return selectedOption.value;\r\n });\r\n }\r\n\r\n set value(v: Array<string>) {\r\n v = typeof v === 'undefined' || v === null ? [] : v;\r\n\r\n this.options.forEach((option) => {\r\n option.selected = v.indexOf(option.value) > -1;\r\n });\r\n }\r\n\r\n /** Selection. **/\r\n\r\n get selection(): Array<Option> {\r\n return this.options.filter((option) => {\r\n return option.selected;\r\n });\r\n }\r\n\r\n select(option: Option, multiple: boolean) {\r\n if (!multiple) {\r\n this.clearSelection();\r\n }\r\n option.selected = true;\r\n }\r\n\r\n deselect(option: Option) {\r\n option.selected = false;\r\n }\r\n\r\n clearSelection() {\r\n this.options.forEach((option) => {\r\n option.selected = false;\r\n });\r\n }\r\n\r\n /** Filter. **/\r\n\r\n get filtered(): Array<Option> {\r\n return this.options.filter((option) => {\r\n return option.shown;\r\n });\r\n }\r\n\r\n filter(term: string): boolean {\r\n let anyShown = false;\r\n\r\n if (term.trim() === '') {\r\n this.resetFilter();\r\n anyShown = this.options.length > 0;\r\n } else {\r\n this.options.forEach((option) => {\r\n const l: string = Diacritics.strip(option.label).toUpperCase();\r\n const t: string = Diacritics.strip(term).toUpperCase();\r\n option.shown = l.indexOf(t) > -1;\r\n });\r\n\r\n }\r\n\r\n this.highlight();\r\n this._hasShown = anyShown;\r\n\r\n return anyShown;\r\n }\r\n\r\n private resetFilter() {\r\n this.options.forEach((option) => {\r\n option.shown = true;\r\n });\r\n }\r\n\r\n /** Highlight. **/\r\n\r\n get highlightedOption(): Option {\r\n return this._highlightedOption;\r\n }\r\n\r\n highlight() {\r\n const option: Option = this.hasShownSelected() ?\r\n this.getFirstShownSelected() : this.getFirstShown();\r\n this.highlightOption(option);\r\n }\r\n\r\n highlightOption(option: Option) {\r\n this.clearHighlightedOption();\r\n\r\n if (option !== null) {\r\n option.highlighted = true;\r\n this._highlightedOption = option;\r\n }\r\n }\r\n\r\n highlightNextOption() {\r\n const shownOptions = this.filtered;\r\n const index = this.getHighlightedIndexFromList(shownOptions);\r\n\r\n if (index > -1 && index < shownOptions.length - 1) {\r\n this.highlightOption(shownOptions[index + 1]);\r\n }\r\n }\r\n\r\n highlightPreviousOption() {\r\n const shownOptions = this.filtered;\r\n const index = this.getHighlightedIndexFromList(shownOptions);\r\n\r\n if (index > 0) {\r\n this.highlightOption(shownOptions[index - 1]);\r\n }\r\n }\r\n\r\n private clearHighlightedOption() {\r\n if (this.highlightedOption !== null) {\r\n this.highlightedOption.highlighted = false;\r\n this._highlightedOption = null;\r\n }\r\n }\r\n\r\n private getHighlightedIndexFromList(options: Array<Option>) {\r\n for (let i = 0; i < options.length; i++) {\r\n if (options[i].highlighted) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n getHighlightedIndex() {\r\n return this.getHighlightedIndexFromList(this.filtered);\r\n }\r\n\r\n /** Util. **/\r\n\r\n get hasShown(): boolean {\r\n return this._hasShown;\r\n }\r\n\r\n hasSelected() {\r\n return this.options.some((option) => {\r\n return option.selected;\r\n });\r\n }\r\n\r\n hasShownSelected() {\r\n return this.options.some((option) => {\r\n return option.shown && option.selected;\r\n });\r\n }\r\n\r\n private getFirstShown(): Option {\r\n for (const option of this.options) {\r\n if (option.shown) {\r\n return option;\r\n }\r\n }\r\n // return null;\r\n return this.setToNullValue;\r\n }\r\n\r\n private getFirstShownSelected(): Option {\r\n for (const option of this.options) {\r\n if (option.shown && option.selected) {\r\n return option;\r\n }\r\n }\r\n // return null;\r\n return this.setToNullValue;\r\n }\r\n\r\n}\r\n","import {IOption} from './option-interface';\r\n\r\nexport class Option {\r\n\r\n wrappedOption: IOption;\r\n\r\n disabled: boolean;\r\n highlighted: boolean;\r\n selected: boolean;\r\n shown: boolean;\r\n group: boolean;\r\n\r\n constructor(option: IOption) {\r\n this.wrappedOption = option;\r\n\r\n this.disabled = false;\r\n this.highlighted = false;\r\n this.selected = false;\r\n this.shown = true;\r\n this.group = false;\r\n }\r\n\r\n get value(): string {\r\n return this.wrappedOption.value;\r\n }\r\n\r\n get label(): string {\r\n return this.wrappedOption.label;\r\n }\r\n\r\n get icon(): string {\r\n if (this.wrappedOption.icon !== '' && this.wrappedOption.icon !== undefined) {\r\n return this.wrappedOption.icon;\r\n } else {\r\n return '';\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\n","module.exports = \"<div class=\\\"dropdown-content\\\" [ngStyle]=\\\"{'top.px': top, 'left.px': left, 'width.px': width}\\\">\\r\\n\\r\\n <div class=\\\"filter\\\" *ngIf=\\\"!multiple && filterEnabled\\\">\\r\\n <input\\r\\n #filterInput\\r\\n autocomplete=\\\"on\\\"\\r\\n [placeholder]=\\\"placeholder\\\"\\r\\n (click)=\\\"onSingleFilterClick($event)\\\"\\r\\n (input)=\\\"onSingleFilterInput($event)\\\"\\r\\n (keydown)=\\\"onSingleFilterKeydown($event)\\\">\\r\\n </div>\\r\\n\\r\\n <div class=\\\"options\\\" #optionsList>\\r\\n <ul class=\\\"select-dropdown\\\" [ngClass]=\\\"{'multiple-select-dropdown': multiple}\\\"\\r\\n (wheel)=\\\"onOptionsWheel($event)\\\">\\r\\n <li *ngFor=\\\"let option of optionList.filtered\\\"\\r\\n [ngClass]=\\\"{'active': option.highlighted, 'selected': option.selected, 'disabled': option.disabled, 'optgroup': option.group}\\\"\\r\\n [ngStyle]=\\\"getOptionStyle(option)\\\"\\r\\n (click)=\\\"onOptionClick(option)\\\"\\r\\n (mouseover)=\\\"onOptionMouseover(option)\\\">\\r\\n <img class=\\\"rounded-circle\\\" [src]=\\\"option.icon\\\" *ngIf=\\\"option.icon !== ''\\\">\\r\\n <span class=\\\"select-option\\\" *ngIf=\\\"!multiple\\\">{{option.label}}</span>\\r\\n <span class=\\\"filtrable\\\" *ngIf=\\\"multiple\\\">\\r\\n <input type=\\\"checkbox\\\" [checked]=\\\"option.selected\\\">\\r\\n <label></label>\\r\\n {{option.label}}\\r\\n </span>\\r\\n </li>\\r\\n <li *ngIf=\\\"!this.hasOptionsItems\\\" class=\\\"message disabled\\\">\\r\\n <span>{{notFoundMsg}}</span>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n</div>\"","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewEncapsulation, ElementRef, HostListener\r\n} from '@angular/core';\r\n\r\nimport { Option } from './option';\r\nimport { OptionList } from './option-list';\r\n\r\n@Component({\r\n selector: 'mdb-select-dropdown',\r\n templateUrl: 'select-dropdown.component.html',\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class SelectDropdownComponent\r\n implements AfterViewInit, OnChanges, OnInit {\r\n\r\n @Input() filterEnabled: boolean;\r\n @Input() highlightColor: string;\r\n @Input() highlightTextColor: string;\r\n @Input() left: number;\r\n @Input() multiple: boolean;\r\n @Input() notFoundMsg: string;\r\n @Input() optionList: OptionList;\r\n @Input() top: number;\r\n @Input() width: number;\r\n @Input() placeholder: string;\r\n\r\n @Output() close = new EventEmitter<boolean>();\r\n @Output() optionClicked = new EventEmitter<Option>();\r\n @Output() singleFilterClick = new EventEmitter<null>();\r\n @Output() singleFilterInput = new EventEmitter<string>();\r\n @Output() singleFilterKeydown = new EventEmitter<any>();\r\n\r\n @ViewChild('filterInput') filterInput: any;\r\n @ViewChild('optionsList') optionsList: any;\r\n\r\n disabledColor = '#fff';\r\n disabledTextColor = '9e9e9e';\r\n\r\n public hasOptionsItems: boolean = true;\r\n\r\n constructor(private _elementRef: ElementRef) { }\r\n\r\n /** Event handlers. **/\r\n\r\n // Angular life cycle hooks.\r\n\r\n @HostListener('keyup', ['$event']) onkeyup() {\r\n this.hasOptionsItems = this._elementRef.nativeElement.childNodes[0].children[1].children[0].children.length >= 1 ? true : false;\r\n }\r\n\r\n ngOnInit() {\r\n this.optionsReset();\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n if (changes.hasOwnProperty('optionList')) {\r\n this.optionsReset();\r\n }\r\n\r\n const container = this._elementRef.nativeElement.classList;\r\n setTimeout(() => { container.add('fadeInSelect'); }, 200);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.moveHighlightedIntoView();\r\n if (!this.multiple && this.filterEnabled) {\r\n this.filterInput.nativeElement.focus();\r\n }\r\n }\r\n\r\n // Filter input (single select).\r\n\r\n onSingleFilterClick() {\r\n this.singleFilterClick.emit(null);\r\n }\r\n\r\n onSingleFilterInput(event: any) {\r\n this.singleFilterInput.emit(event.target.value);\r\n }\r\n\r\n onSingleFilterKeydown(event: any) {\r\n this.singleFilterKeydown.emit(event);\r\n }\r\n\r\n // Options list.\r\n\r\n onOptionsWheel(event: any) {\r\n this.handleOptionsWheel(event);\r\n }\r\n\r\n onOptionMouseover(option: Option) {\r\n this.optionList.highlightOption(option);\r\n }\r\n\r\n onOptionClick(option: Option) {\r\n this.optionClicked.emit(option);\r\n }\r\n\r\n /** Initialization. **/\r\n\r\n private optionsReset() {\r\n this.optionList.filter('');\r\n this.optionList.highlight();\r\n }\r\n\r\n /** View. **/\r\n\r\n getOptionStyle(option: Option): any {\r\n if (option.highlighted) {\r\n const style: any = {};\r\n\r\n if (typeof this.highlightColor !== 'undefined') {\r\n style['background-color'] = this.highlightColor;\r\n }\r\n if (typeof this.highlightTextColor !== 'undefined') {\r\n style['color'] = this.highlightTextColor;\r\n }\r\n return style;\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n clearFilterInput() {\r\n if (this.filterEnabled) {\r\n this.filterInput.nativeElement.value = '';\r\n }\r\n }\r\n\r\n moveHighlightedIntoView() {\r\n\r\n const list = this.optionsList.nativeElement;\r\n const listHeight = list.offsetHeight;\r\n\r\n const itemIndex = this.optionList.getHighlightedIndex();\r\n\r\n if (itemIndex > -1) {\r\n const item = list.children[0].children[itemIndex];\r\n const itemHeight = item.offsetHeight;\r\n\r\n const itemTop = itemIndex * itemHeight;\r\n const itemBottom = itemTop + itemHeight;\r\n\r\n const viewTop = list.scrollTop;\r\n const viewBottom = viewTop + listHeight;\r\n\r\n if (itemBottom > viewBottom) {\r\n list.scrollTop = itemBottom - listHeight;\r\n } else if (itemTop < viewTop) {\r\n list.scrollTop = itemTop;\r\n }\r\n\r\n }\r\n }\r\n\r\n private handleOptionsWheel(e: any) {\r\n const div = this.optionsList.nativeElement;\r\n const atTop = div.scrollTop === 0;\r\n const atBottom = div.offsetHeight + div.scrollTop === div.scrollHeight;\r\n\r\n if (atTop && e.deltaY < 0) {\r\n e.preventDefault();\r\n } else if (atBottom && e.deltaY > 0) {\r\n e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n}\r\n","module.exports = \"<label *ngIf=\\\"label !== ''\\\">\\r\\n {{label}}\\r\\n</label>\\r\\n<div\\r\\n #selection\\r\\n [attr.tabindex]=\\\"disabled ? null : 0\\\"\\r\\n [ngClass]=\\\"{'open': isOpen, 'focus': hasFocus, 'below': isBelow, 'disabled': disabled}\\\"\\r\\n (click)=\\\"onSelectContainerClick()\\\"\\r\\n (focus)=\\\"onSelectContainerFocus()\\\"\\r\\n (keydown)=\\\"onSelectContainerKeydown($event)\\\"\\r\\n (window:click)=\\\"onWindowClick()\\\"\\r\\n (window:resize)=\\\"onWindowResize()\\\">\\r\\n\\r\\n <div class=\\\"single\\\"\\r\\n *ngIf=\\\"!multiple\\\">\\r\\n <div class=\\\"value\\\"\\r\\n *ngIf=\\\"optionList.hasSelected()\\\">\\r\\n {{optionList.selection[0].label}}\\r\\n </div>\\r\\n <div class=\\\"placeholder\\\"\\r\\n *ngIf=\\\"!optionList.hasSelected()\\\">\\r\\n {{placeholderView}}\\r\\n </div>\\r\\n <div class=\\\"clear\\\"\\r\\n *ngIf=\\\"allowClear && hasSelected\\\"\\r\\n (click)=\\\"onClearSelectionClick($event)\\\">\\r\\n &#x2715;\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"multiple\\\"\\r\\n *ngIf=\\\"multiple\\\">\\r\\n <div class=\\\"placeholder\\\"\\r\\n *ngIf=\\\"!optionList.hasSelected()\\\">\\r\\n {{placeholderView}}\\r\\n </div>\\r\\n\\r\\n <div class=\\\"option\\\" \\r\\n *ngFor=\\\"let option of optionList.selection\\\">\\r\\n <span class=\\\"deselect-option\\\">, </span>{{option.label}}\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n</div>\\r\\n<mdb-select-dropdown\\r\\n *ngIf=\\\"isOpen\\\"\\r\\n #dropdown\\r\\n [multiple]=\\\"multiple\\\"\\r\\n [optionList]=\\\"optionList\\\"\\r\\n [notFoundMsg]=\\\"notFoundMsg\\\"\\r\\n [highlightColor]=\\\"highlightColor\\\"\\r\\n [highlightTextColor]=\\\"highlightTextColor\\\"\\r\\n [filterEnabled]=\\\"filterEnabled\\\"\\r\\n [placeholder]=\\\"filterPlaceholder\\\"\\r\\n [top]=\\\"top\\\"\\r\\n [left]=\\\"left\\\"\\r\\n (close)=\\\"onDropdownClose($event)\\\"\\r\\n (optionClicked)=\\\"onDropdownOptionClicked($event)\\\"\\r\\n (singleFilterClick)=\\\"onSingleFilterClick()\\\"\\r\\n (singleFilterInput)=\\\"onSingleFilterInput($event)\\\"\\r\\n (singleFilterKeydown)=\\\"onSingleFilterKeydown($event)\\\">\\r\\n</mdb-select-dropdown>\"","import {\r\n Component, Input, OnChanges, OnInit, Output, EventEmitter, ExistingProvider, ViewChild,\r\n ViewEncapsulation, forwardRef, ElementRef, HostListener, Renderer2, AfterViewInit\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { SelectDropdownComponent } from './select-dropdown.component';\r\nimport { IOption } from './option-interface';\r\nimport { Option } from './option';\r\nimport { OptionList } from './option-list';\r\n\r\nexport const SELECT_VALUE_ACCESSOR: ExistingProvider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'mdb-select',\r\n templateUrl: 'select.component.html',\r\n providers: [SELECT_VALUE_ACCESSOR],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class SelectComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit {\r\n\r\n @Input() options: Array<IOption>;\r\n\r\n @Input() allowClear = false;\r\n @Input() disabled = false;\r\n @Input() highlightColor: string;\r\n @Input() highlightTextColor: string;\r\n @Input() multiple = false;\r\n @Input() noFilter = 0;\r\n @Input() notFoundMsg = 'No results found';\r\n @Input() placeholder = '';\r\n @Input() filterPlaceholder = '';\r\n @Input() label = '';\r\n @Input() filterEnabled = false;\r\n\r\n @Output() opened: EventEmitter<null> = new EventEmitter<null>();\r\n @Output() closed: EventEmitter<null> = new EventEmitter<null>();\r\n @Output() selected: EventEmitter<IOption> = new EventEmitter<IOption>();\r\n @Output() deselected: EventEmitter<IOption | IOption[]> =\r\n new EventEmitter<IOption | IOption[]>();\r\n @Output() noOptionsFound: EventEmitter<string> =\r\n new EventEmitter<string>();\r\n\r\n @ViewChild('selection') selectionSpan: any;\r\n @ViewChild('dropdown') dropdown: SelectDropdownComponent;\r\n @ViewChild('filterInput') filterInput: any;\r\n\r\n // Angular lifecycle hooks.\r\n KEYS: any = {\r\n BACKSPACE: 8,\r\n TAB: 9,\r\n ENTER: 13,\r\n ESC: 27,\r\n SPACE: 32,\r\n UP: 38,\r\n DOWN: 40\r\n };\r\n\r\n _value: Array<any> = [];\r\n optionList: OptionList;\r\n\r\n // Selection state variables.\r\n hasSelected = false;\r\n\r\n // View state variables.\r\n hasFocus = false;\r\n isOpen = false;\r\n isBelow = true;\r\n filterInputWidth = 1;\r\n isDisabled = false;\r\n placeholderView = '';\r\n\r\n clearClicked = false;\r\n selectContainerClicked = false;\r\n\r\n // Width and position for the dropdown container.\r\n width: number;\r\n top: number;\r\n left: number;\r\n\r\n onChange = (_: any) => { };\r\n onTouched = () => { };\r\n\r\n /** Event handlers. **/\r\n\r\n @HostListener('document:click', ['$event']) closeSelect($event: any) {\r\n if (!this.isChild($event.target) && this.isOpen) {\r\n this.closeDropdown();\r\n }\r\n }\r\n\r\n // Angular lifecycle hooks.\r\n constructor(public el: ElementRef, public renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit() {\r\n this.placeholderView = this.placeholder;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setArrowUpIcon();\r\n this.setArrowDownIcon();\r\n this.renderer.setStyle(this.selectionSpan.nativeElement.children[0].lastChild, 'visibility', 'hidden');\r\n }\r\n\r\n ngOnChanges(changes: any) {\r\n if (changes.hasOwnProperty('options')) {\r\n this.updateOptionsList(changes['options'].isFirstChange());\r\n }\r\n if (changes.hasOwnProperty('noFilter')) {\r\n const numOptions: number = this.optionList.options.length;\r\n const minNumOptions: number = changes['noFilter'].currentValue;\r\n this.filterEnabled = numOptions >= minNumOptions;\r\n }\r\n }\r\n\r\n setArrowUpIcon() {\r\n const div = this.renderer.createElement('div');\r\n this.renderer.appendChild(this.selectionSpan.nativeElement.children[0], div);\r\n this.selectionSpan.nativeElement.children[0].lastChild.innerHTML = '&#x25BC;';\r\n this.renderer.addClass(this.selectionSpan.nativeElement.children[0].lastChild, 'toggle');\r\n\r\n }\r\n\r\n setArrowDownIcon() {\r\n const div = this.renderer.createElement('div');\r\n this.renderer.appendChild(this.selectionSpan.nativeElement.children[0], div);\r\n this.selectionSpan.nativeElement.children[0].lastChild.innerHTML = '&#x25B2;';\r\n this.renderer.addClass(this.selectionSpan.nativeElement.children[0].lastChild, 'toggle');\r\n }\r\n\r\n\r\n isChild(elemnt: any) {\r\n let node = elemnt.parentNode;\r\n while (node != null) {\r\n if (node === this.el.nativeElement) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n }\r\n\r\n // Window.\r\n\r\n onWindowClick() {\r\n if (!this.selectContainerClicked && !this.multiple) {\r\n this.closeDropdown();\r\n }\r\n this.clearClicked = false;\r\n this.selectContainerClicked = false;\r\n }\r\n\r\n onWindowResize() {\r\n this.updateWidth();\r\n }\r\n\r\n // Select container.\r\n\r\n onSelectContainerClick() {\r\n this.selectContainerClicked = true;\r\n if (!this.clearClicked) {\r\n this.toggleDropdown();\r\n }\r\n }\r\n\r\n onSelectContainerFocus() {\r\n this.onTouched();\r\n }\r\n\r\n onSelectContainerKeydown(event: any) {\r\n this.handleSelectContainerKeydown(event);\r\n }\r\n\r\n // Dropdown container.\r\n\r\n onDropdownOptionClicked(option: Option) {\r\n this.multiple ?\r\n this.toggleSelectOption(option) : this.selectOption(option);\r\n }\r\n\r\n onDropdownClose(focus: any) {\r\n this.closeDropdown(focus);\r\n }\r\n\r\n // Single filter input.\r\n onSingleFilterClick() {\r\n this.selectContainerClicked = true;\r\n }\r\n\r\n onSingleFilterInput(term: string) {\r\n const hasShown: boolean = this.optionList.filter(term);\r\n if (!hasShown) {\r\n this.noOptionsFound.emit(term);\r\n }\r\n }\r\n\r\n onSingleFilterKeydown(event: any) {\r\n this.handleSingleFilterKeydown(event);\r\n }\r\n\r\n // Multiple filter input.\r\n\r\n onMultipleFilterInput(event: any) {\r\n if (!this.isOpen) {\r\n this.openDropdown();\r\n }\r\n this.updateFilterWidth();\r\n setTimeout(() => {\r\n const term: string = event.target.value;\r\n const hasShown: boolean = this.optionList.filter(term);\r\n if (!hasShown) {\r\n this.noOptionsFound.emit(term);\r\n }\r\n });\r\n }\r\n\r\n onMultipleFilterKeydown(event: any) {\r\n this.handleMultipleFilterKeydown(event);\r\n }\r\n\r\n // Single clear select.\r\n\r\n onClearSelectionClick() {\r\n\r\n this.clearClicked = true;\r\n this.clearSelection();\r\n this.closeDropdown(true);\r\n }\r\n\r\n // Multiple deselect option.\r\n\r\n onDeselectOptionClick(option: Option) {\r\n this.clearClicked = true;\r\n this.deselectOption(option);\r\n }\r\n\r\n /** API. **/\r\n\r\n // TODO fix issues with global click/key handler that closes the dropdown.\r\n open() {\r\n this.openDropdown();\r\n }\r\n\r\n close() {\r\n this.closeDropdown();\r\n }\r\n\r\n\r\n get value(): string | string[] {\r\n return this.multiple ? this._value : this._value[0];\r\n }\r\n\r\n set value(v: string | string[]) {\r\n if (typeof v === 'undefined' || v === null || v === '') {\r\n v = [];\r\n } else if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {\r\n v = [v];\r\n } else if (!Array.isArray(v)) {\r\n throw new TypeError('Value must be a string or an array.');\r\n }\r\n\r\n if (!OptionList.equalValues(v, this._value)) {\r\n this.optionList.value = v;\r\n this.valueChanged();\r\n }\r\n }\r\n\r\n clear() {\r\n this.clearSelection();\r\n }\r\n\r\n select(value: string) {\r\n this.optionList.getOptionsByValue(value).forEach((option) => {\r\n this.selectOption(option);\r\n });\r\n }\r\n\r\n /** ControlValueAccessor interface methods. **/\r\n\r\n writeValue(value: any) {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: () => void) {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n\r\n valueChanged() {\r\n this._value = this.optionList.value;\r\n\r\n this.hasSelected = this._value.length > 0;\r\n this.placeholderView = this.hasSelected ? '' : this.placeholder;\r\n this.updateFilterWidth();\r\n\r\n this.onChange(this.value);\r\n }\r\n\r\n /** Initialization. **/\r\n\r\n updateOptionsList(firstTime: boolean) {\r\n // let v: Array<string> | any;\r\n let v: Array<string> | any;\r\n\r\n if (!firstTime) {\r\n v = this.optionList.value;\r\n }\r\n\r\n this.optionList = new OptionList(this.options);\r\n\r\n if (!firstTime) {\r\n this.optionList.value = v;\r\n this.valueChanged();\r\n }\r\n }\r\n\r\n /** Dropdown. **/\r\n toggleDropdown() {\r\n if (!this.isDisabled) {\r\n this.isOpen ? this.closeDropdown(true) : this.openDropdown();\r\n\r\n }\r\n }\r\n\r\n openDropdown() {\r\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '1000');\r\n if (!this.isOpen) {\r\n this.renderer.setStyle(this.selectionSpan.nativeElement.children[0].lastChild, 'visibility', 'visible');\r\n // tslint:disable-next-line:max-line-length\r\n this.renderer.setStyle(this.selectionSpan.nativeElement.children[0].children[this.selectionSpan.nativeElement.children[0].children.length - 2], 'visibility', 'hidden');\r\n this.updateWidth();\r\n this.updatePosition();\r\n this.isOpen = true;\r\n if (this.multiple && this.filterEnabled) {\r\n this.filterInput.nativeElement.focus();\r\n }\r\n this.opened.emit(null);\r\n }\r\n }\r\n\r\n closeDropdown(focus: boolean = false) {\r\n const container = this.el.nativeElement.lastElementChild.classList;\r\n this.renderer.removeStyle(this.el.nativeElement, 'z-index');\r\n container.remove('fadeInSelect');\r\n if (this.isOpen) {\r\n this.renderer.setStyle(this.selectionSpan.nativeElement.children[0].lastChild, 'visibility', 'hidden');\r\n // tslint:disable-next-line:max-line-length\r\n this.renderer.setStyle(this.selectionSpan.nativeElement.children[0].children[this.selectionSpan.nativeElement.children[0].children.length - 2], 'visibility', 'visible');\r\n }\r\n setTimeout(() => {\r\n\r\n if (this.isOpen) {\r\n this.clearFilterInput();\r\n this.isOpen = false;\r\n if (focus) {\r\n this.focus();\r\n }\r\n this.closed.emit(null);\r\n }\r\n\r\n }, 200);\r\n\r\n }\r\n\r\n /** Select. **/\r\n\r\n selectOption(option: Option) {\r\n if (!option.selected) {\r\n this.optionList.select(option, this.multiple);\r\n this.valueChanged();\r\n this.selected.emit(option.wrappedOption);\r\n }\r\n }\r\n\r\n deselectOption(option: Option) {\r\n if (option.selected) {\r\n this.optionList.deselect(option);\r\n this.valueChanged();\r\n this.deselected.emit(option.wrappedOption);\r\n }\r\n }\r\n\r\n clearSelection() {\r\n const selection: Array<Option> = this.optionList.selection;\r\n if (selection.length > 0) {\r\n this.optionList.clearSelection();\r\n this.valueChanged();\r\n\r\n if (selection.length === 1) {\r\n this.deselected.emit(selection[0].wrappedOption);\r\n } else {\r\n this.deselected.emit(selection.map((option) => {\r\n return option.wrappedOption;\r\n }));\r\n }\r\n }\r\n }\r\n\r\n toggleSelectOption(option: Option) {\r\n option.selected ?\r\n this.deselectOption(option) : this.selectOption(option);\r\n }\r\n\r\n selectHighlightedOption() {\r\n const option: Option = this.optionList.highlightedOption;\r\n if (option !== null) {\r\n this.selectOption(option);\r\n this.closeDropdown(true);\r\n }\r\n }\r\n\r\n deselectLast() {\r\n const sel: Array<Option> = this.optionList.selection;\r\n\r\n if (sel.length > 0) {\r\n const option: Option = sel[sel.length - 1];\r\n this.deselectOption(option);\r\n this.setMultipleFilterInput(option.label + ' ');\r\n }\r\n }\r\n\r\n /** Filter. **/\r\n\r\n clearFilterInput() {\r\n if (this.multiple && this.filterEnabled) {\r\n this.filterInput.nativeElement.value = '';\r\n } else {\r\n this.dropdown.clearFilterInput();\r\n }\r\n }\r\n\r\n setMultipleFilterInput(value: string) {\r\n if (this.filterEnabled) {\r\n this.filterInput.nativeElement.value = value;\r\n }\r\n }\r\n\r\n handleSelectContainerKeydown(event: any) {\r\n const key = event.which;\r\n\r\n if (this.isOpen) {\r\n if (key === this.KEYS.ESC ||\r\n (key === this.KEYS.UP && event.altKey)) {\r\n this.closeDropdown(true);\r\n } else if (key === this.KEYS.TAB) {\r\n this.closeDropdown();\r\n } else if (key === this.KEYS.ENTER) {\r\n this.selectHighlightedOption();\r\n } else if (key === this.KEYS.UP) {\r\n this.optionList.highlightPreviousOption();\r\n this.dropdown.moveHighlightedIntoView();\r\n if (!this.filterEnabled) {\r\n event.preventDefault();\r\n }\r\n } else if (key === this.KEYS.DOWN) {\r\n this.optionList.highlightNextOption();\r\n this.dropdown.moveHighlightedIntoView();\r\n if (!this.filterEnabled) {\r\n event.preventDefault();\r\n }\r\n }\r\n } else {\r\n if (key === this.KEYS.ENTER || key === this.KEYS.SPACE ||\r\n (key === this.KEYS.DOWN && event.altKey)) {\r\n\r\n /* FIREFOX HACK:\r\n *\r\n * The setTimeout is added to prevent the enter keydown event\r\n * to be triggered for the filter input field, which causes\r\n * the dropdown to be closed again.\r\n */\r\n setTimeout(() => { this.openDropdown(); });\r\n }\r\n }\r\n\r\n }\r\n\r\n handleMultipleFilterKeydown(event: any) {\r\n const key = event.which;\r\n\r\n if (key === this.KEYS.BACKSPACE) {\r\n if (this.hasSelected && this.filterEnabled &&\r\n this.filterInput.nativeElement.value === '') {\r\n this.deselectLast();\r\n }\r\n }\r\n }\r\n\r\n handleSingleFilterKeydown(event: any) {\r\n const key = event.which;\r\n\r\n if (key === this.KEYS.ESC || key === this.KEYS.TAB\r\n || key === this.KEYS.UP || key === this.KEYS.DOWN\r\n || key === this.KEYS.ENTER) {\r\n this.handleSelectContainerKeydown(event);\r\n }\r\n }\r\n\r\n /** View. **/\r\n\r\n focus() {\r\n this.hasFocus = true;\r\n if (this.multiple && this.filterEnabled) {\r\n this.filterInput.nativeElement.focus();\r\n } else {\r\n this.selectionSpan.nativeElement.focus();\r\n }\r\n }\r\n\r\n blur() {\r\n this.hasFocus = false;\r\n this.selectionSpan.nativeElement.blur();\r\n }\r\n\r\n updateWidth() {\r\n this.width = this.selectionSpan.nativeElement.offsetWidth;\r\n }\r\n\r\n updatePosition() {\r\n const e = this.selectionSpan.nativeElement;\r\n this.left = e.offsetLeft;\r\n this.top = e.offsetTop + e.offsetHeight;\r\n }\r\n\r\n updateFilterWidth() {\r\n if (typeof this.filterInput !== 'undefined') {\r\n const value: string = this.filterInput.nativeElement.value;\r\n this.filterInputWidth = value.length === 0 ?\r\n 1 + this.placeholderView.length * 10 : 1 + value.length * 10;\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule} from '@angular/forms';\r\n\r\nimport {SelectComponent} from './select.component';\r\nimport {SelectDropdownComponent} from './select-dropdown.component';\r\n\r\nexport * from './option-interface';\r\nexport * from './select.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SelectComponent,\r\n SelectDropdownComponent\r\n ],\r\n exports: [\r\n SelectComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ]\r\n})\r\nexport class SelectModule {}\r\n","\r\nconst CONTAINER_CLASS_NAME = 'spinning-preloader-container';\r\nconst COMPLETE_CLASS_NAME = 'complete';\r\nconst CONTAINER_QUERY = `.${CONTAINER_CLASS_NAME}`;\r\n\r\nconst CONTAINER_NAME: string = CONTAINER_CLASS_NAME.split('-').join(' ');\r\n\r\nexport const TYPE_ERROR_CONTAINER_WAS_NOT_FOUND_MESSAGE =\r\n `The ${CONTAINER_NAME} was not found`;\r\n\r\nexport const EMULATE_ELEMENT_NAME = 'div';\r\n\r\nexport {\r\n CONTAINER_QUERY,\r\n COMPLETE_CLASS_NAME,\r\n CONTAINER_CLASS_NAME,\r\n CONTAINER_NAME\r\n}\r\n","import {\r\n Injectable,\r\n Inject\r\n} from '@angular/core';\r\n\r\nimport {\r\n DOCUMENT\r\n} from '@angular/platform-browser';\r\n\r\nimport {\r\n CONTAINER_QUERY,\r\n COMPLETE_CLASS_NAME,\r\n TYPE_ERROR_CONTAINER_WAS_NOT_FOUND_MESSAGE,\r\n EMULATE_ELEMENT_NAME\r\n} from './preloader.constants';\r\n\r\nimport {MDB_SPINNING_PRELOADER_TYPE} from './preloader.types';\r\n\r\n@Injectable()\r\nexport class MDBSpinningPreloader {\r\n public _container: MDB_SPINNING_PRELOADER_TYPE;\r\n\r\n public static errorHandler() {\r\n throw new TypeError(TYPE_ERROR_CONTAINER_WAS_NOT_FOUND_MESSAGE);\r\n }\r\n\r\n constructor(@Inject(DOCUMENT) public document: any) {\r\n this.container = this.document.querySelector(CONTAINER_QUERY);\r\n }\r\n\r\n public start() {\r\n this.container.classList.remove(COMPLETE_CLASS_NAME);\r\n }\r\n\r\n public stop() {\r\n this.container.classList.add(COMPLETE_CLASS_NAME);\r\n }\r\n\r\n public get container(): MDB_SPINNING_PRELOADER_TYPE {\r\n return this._container;\r\n }\r\n\r\n public set container(element) {\r\n if (!element) {\r\n // NgSpinningPreloader.errorHandler();\r\n }\r\n\r\n this._container = element || this.document.createElement(EMULATE_ELEMENT_NAME);\r\n }\r\n\r\n}\r\n","module.exports = \"<div class=\\\"progress-bar\\\"\\r\\nstyle=\\\"min-width: 0;\\\"\\r\\nrole=\\\"progressbar\\\"\\r\\n[ngClass]=\\\"type && 'progress-bar-' + type\\\"\\r\\n[ngStyle]=\\\"{width: (percent < 100 ? percent : 100) + '%', transition: transition}\\\"\\r\\naria-valuemin=\\\"0\\\"\\r\\n[attr.aria-valuenow]=\\\"value\\\"\\r\\n[attr.aria-valuetext]=\\\"percent.toFixed(0) + '%'\\\"\\r\\n[attr.aria-valuemax]=\\\"max\\\">\\r\\n <ng-content></ng-content>\\r\\n</div>\\r\\n\"","import { Component, Host, Input, OnDestroy, OnInit } from '@angular/core';\r\n\r\nimport { ProgressDirective } from './progress.directive';\r\n\r\n// todo: number pipe\r\n// todo: use query from progress?\r\n@Component({\r\n selector: 'mdb-bar',\r\n templateUrl: './bar.component.html'\r\n})\r\nexport class BarComponent implements OnInit, OnDestroy {\r\n public max: number;\r\n\r\n /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */\r\n @Input() public type: string;\r\n /** current value of progress bar */\r\n @Input()\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(v: number) {\r\n if (!v && v !== 0) {\r\n return;\r\n }\r\n this._value = v;\r\n this.recalculatePercentage();\r\n }\r\n\r\n public percent = 0;\r\n public transition: string;\r\n public progress: ProgressDirective;\r\n\r\n protected _value: number;\r\n\r\n public constructor(@Host() progress: ProgressDirective) {\r\n this.progress = progress;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.progress.addBar(this);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.progress.removeBar(this);\r\n }\r\n\r\n public recalculatePercentage(): void {\r\n this.percent = +(100 * this.value / this.progress.max).toFixed(2);\r\n\r\n const totalPercentage = this.progress.bars.reduce(function (total: number, bar: BarComponent): number {\r\n return total + bar.percent;\r\n }, 0);\r\n\r\n if (totalPercentage > 100) {\r\n this.percent -= totalPercentage - 100;\r\n }\r\n }\r\n}\r\n","import {NgModule, ModuleWithProviders} from '@angular/core';\r\n\r\nexport { BarComponent } from './bar.component';\r\nexport { ProgressDirective } from './progress.directive';\r\nexport { ProgressbarComponent } from './progressbar.component';\r\nexport { ProgressbarModule } from './progressbar.module';\r\nexport { ProgressbarConfigComponent } from './progressbar.config.component';\r\nexport { ProgressSpinnerComponent } from './progress-spinner.component';\r\nimport { ProgressbarModule } from './progressbar.module';\r\n\r\nimport { MdProgressSpinnerModule } from './progress-spinner-module/';\r\nimport { MdProgressBarModule } from './progress-bars-module/';\r\n\r\n\r\nconst MATERIAL_MODULES = [\r\n MdProgressBarModule,\r\n MdProgressSpinnerModule,\r\n ProgressbarModule\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n MdProgressBarModule.forRoot(),\r\n MdProgressSpinnerModule.forRoot(),\r\n ProgressbarModule.forRoot()\r\n ],\r\n exports: MATERIAL_MODULES,\r\n})\r\n\r\nexport class MaterialRootModule { }\r\n\r\n/** @deprecated */\r\n@NgModule({\r\n imports: MATERIAL_MODULES,\r\n exports: MATERIAL_MODULES,\r\n})\r\nexport class ProgressBars {\r\n /** @deprecated */\r\n static forRoot(): ModuleWithProviders {\r\n return {ngModule: MaterialRootModule};\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProgressBarComponent } from './progressbar.component';\r\n\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [ProgressBarComponent],\r\n declarations: [ProgressBarComponent],\r\n})\r\nexport class MdProgressBarModule {\r\n /** @deprecated */\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: MdProgressBarModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n\r\nexport * from './progressbar.component';\r\n","module.exports = \"<!-- The background div is named as such because it appears below the other divs and is not sized based on values. -->\\r\\n<div class=\\\"mat-progress-bar-background mat-progress-bar-element\\\"></div>\\r\\n<div class=\\\"mat-progress-bar-buffer mat-progress-bar-element\\\" [ngStyle]=\\\"_bufferTransform()\\\"></div>\\r\\n<div class=\\\"mat-progress-bar-primary mat-progress-bar-fill mat-progress-bar-element\\\" [ngStyle]=\\\"_primaryTransform()\\\"></div>\\r\\n<div class=\\\"mat-progress-bar-secondary mat-progress-bar-fill mat-progress-bar-element\\\"></div>\\r\\n\"","module.exports = \":host {\\n display: block;\\n height: 5px;\\n overflow: hidden;\\n position: relative;\\n -webkit-transform: translateZ(0);\\n transform: translateZ(0);\\n transition: opacity 250ms linear;\\n width: 100%; }\\n\\n:host .mat-progress-bar-element, :host .mat-progress-bar-fill::after {\\n height: 100%;\\n position: absolute;\\n width: 100%; }\\n\\n:host .mat-progress-bar-background {\\n background-repeat: repeat-x;\\n background-size: 10px 4px;\\n display: none; }\\n\\n:host .mat-progress-bar-buffer {\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n transition: stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 250ms ease;\\n transition: transform 250ms ease, stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1);\\n transition: transform 250ms ease, stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 250ms ease; }\\n\\n:host .mat-progress-bar-secondary {\\n display: none; }\\n\\n:host .mat-progress-bar-fill {\\n -webkit-animation: none;\\n animation: none;\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n transition: stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 250ms ease;\\n transition: transform 250ms ease, stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1);\\n transition: transform 250ms ease, stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1), -webkit-transform 250ms ease; }\\n\\n:host .mat-progress-bar-fill::after {\\n -webkit-animation: none;\\n animation: none;\\n content: '';\\n display: inline-block;\\n left: 0; }\\n\\n:host[mode=query] {\\n -webkit-transform: rotateZ(180deg);\\n transform: rotateZ(180deg); }\\n\\n:host[mode=indeterminate] .mat-progress-bar-fill, :host[mode=query] .mat-progress-bar-fill {\\n transition: none; }\\n\\n:host[mode=indeterminate] .mat-progress-bar-primary, :host[mode=query] .mat-progress-bar-primary {\\n -webkit-animation: mat-progress-bar-primary-indeterminate-translate 2s infinite linear;\\n animation: mat-progress-bar-primary-indeterminate-translate 2s infinite linear;\\n left: -145.166611%; }\\n\\n:host[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after, :host[mode=query]\\n.mat-progress-bar-primary.mat-progress-bar-fill::after {\\n -webkit-animation: mat-progress-bar-primary-indeterminate-scale 2s infinite linear;\\n animation: mat-progress-bar-primary-indeterminate-scale 2s infinite linear; }\\n\\n:host[mode=indeterminate] .mat-progress-bar-secondary, :host[mode=query] .mat-progress-bar-secondary {\\n -webkit-animation: mat-progress-bar-secondary-indeterminate-translate 2s infinite linear;\\n animation: mat-progress-bar-secondary-indeterminate-translate 2s infinite linear;\\n left: -54.888891%;\\n display: block; }\\n\\n:host[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after, :host[mode=query]\\n.mat-progress-bar-secondary.mat-progress-bar-fill::after {\\n -webkit-animation: mat-progress-bar-secondary-indeterminate-scale 2s infinite linear;\\n animation: mat-progress-bar-secondary-indeterminate-scale 2s infinite linear; }\\n\\n:host[mode=buffer] .mat-progress-bar-background {\\n -webkit-animation: mat-progress-bar-background-scroll 250ms infinite linear;\\n animation: mat-progress-bar-background-scroll 250ms infinite linear;\\n display: block; }\\n\\n:host-context([dir=rtl]) {\\n -webkit-transform: rotateY(180deg);\\n transform: rotateY(180deg); }\\n\\n@-webkit-keyframes mat-progress-bar-primary-indeterminate-translate {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 20% {\\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);\\n animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 59.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);\\n animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);\\n -webkit-transform: translateX(83.67142%);\\n transform: translateX(83.67142%); }\\n 100% {\\n -webkit-transform: translateX(200.61106%);\\n transform: translateX(200.61106%); } }\\n\\n@keyframes mat-progress-bar-primary-indeterminate-translate {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 20% {\\n -webkit-animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);\\n animation-timing-function: cubic-bezier(0.5, 0, 0.70173, 0.49582);\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 59.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);\\n animation-timing-function: cubic-bezier(0.30244, 0.38135, 0.55, 0.95635);\\n -webkit-transform: translateX(83.67142%);\\n transform: translateX(83.67142%); }\\n 100% {\\n -webkit-transform: translateX(200.61106%);\\n transform: translateX(200.61106%); } }\\n\\n@-webkit-keyframes mat-progress-bar-primary-indeterminate-scale {\\n 0% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 36.65% {\\n -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);\\n animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 69.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\\n -webkit-transform: scaleX(0.66148);\\n transform: scaleX(0.66148); }\\n 100% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); } }\\n\\n@keyframes mat-progress-bar-primary-indeterminate-scale {\\n 0% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 36.65% {\\n -webkit-animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);\\n animation-timing-function: cubic-bezier(0.33473, 0.12482, 0.78584, 1);\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 69.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\\n animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);\\n -webkit-transform: scaleX(0.66148);\\n transform: scaleX(0.66148); }\\n 100% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); } }\\n\\n@-webkit-keyframes mat-progress-bar-secondary-indeterminate-translate {\\n 0% {\\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 25% {\\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n -webkit-transform: translateX(37.65191%);\\n transform: translateX(37.65191%); }\\n 48.35% {\\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n -webkit-transform: translateX(84.38617%);\\n transform: translateX(84.38617%); }\\n 100% {\\n -webkit-transform: translateX(160.27778%);\\n transform: translateX(160.27778%); } }\\n\\n@keyframes mat-progress-bar-secondary-indeterminate-translate {\\n 0% {\\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 25% {\\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n -webkit-transform: translateX(37.65191%);\\n transform: translateX(37.65191%); }\\n 48.35% {\\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n -webkit-transform: translateX(84.38617%);\\n transform: translateX(84.38617%); }\\n 100% {\\n -webkit-transform: translateX(160.27778%);\\n transform: translateX(160.27778%); } }\\n\\n@-webkit-keyframes mat-progress-bar-secondary-indeterminate-scale {\\n 0% {\\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 19.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n -webkit-transform: scaleX(0.4571);\\n transform: scaleX(0.4571); }\\n 44.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n -webkit-transform: scaleX(0.72796);\\n transform: scaleX(0.72796); }\\n 100% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); } }\\n\\n@keyframes mat-progress-bar-secondary-indeterminate-scale {\\n 0% {\\n -webkit-animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n animation-timing-function: cubic-bezier(0.15, 0, 0.51506, 0.40969);\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); }\\n 19.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n animation-timing-function: cubic-bezier(0.31033, 0.28406, 0.8, 0.73371);\\n -webkit-transform: scaleX(0.4571);\\n transform: scaleX(0.4571); }\\n 44.15% {\\n -webkit-animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n animation-timing-function: cubic-bezier(0.4, 0.62704, 0.6, 0.90203);\\n -webkit-transform: scaleX(0.72796);\\n transform: scaleX(0.72796); }\\n 100% {\\n -webkit-transform: scaleX(0.08);\\n transform: scaleX(0.08); } }\\n\\n@-webkit-keyframes mat-progress-bar-background-scroll {\\n to {\\n -webkit-transform: translateX(-10px);\\n transform: translateX(-10px); } }\\n\\n@keyframes mat-progress-bar-background-scroll {\\n to {\\n -webkit-transform: translateX(-10px);\\n transform: translateX(-10px); } }\\n\"","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n HostBinding,\r\n Input,\r\n} from '@angular/core';\r\n\r\n// TODO(josephperrott): Benchpress tests.\r\n// TODO(josephperrott): Add ARIA attributes for progressbar \"for\".\r\n\r\n\r\n/**\r\n * <md-progress-bar> component.\r\n */\r\n@Component({\r\n selector: 'mdb-progress-bar, mat-progress-bar',\r\n templateUrl: './progressbar.component.html',\r\n styleUrls: ['./progressbar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n\r\n})\r\nexport class ProgressBarComponent {\r\n /** Color of the progress bar. */\r\n @Input() color: 'primary' | 'accent' | 'warn' = 'primary';\r\n\r\n private _value = 0;\r\n\r\n /** Value of the progressbar. Defaults to zero. Mirrored to aria-valuenow. */\r\n @Input()\r\n\r\n @HostBinding('attr.aria-valuenow')\r\n get value() { return this._value; }\r\n set value(v: number) { this._value = clamp(v || 0); }\r\n\r\n private _bufferValue = 0;\r\n\r\n /** Buffer value of the progress bar. Defaults to zero. */\r\n @Input()\r\n get bufferValue() { return this._bufferValue; }\r\n set bufferValue(v: number) { this._bufferValue = clamp(v || 0); }\r\n\r\n /**\r\n * Mode of the progress bar.\r\n *\r\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\r\n * 'determinate'.\r\n * Mirrored to mode attribute.\r\n */\r\n @Input()\r\n @HostBinding('attr.mode')\r\n mode: 'determinate' | 'indeterminate' | 'buffer' | 'query' = 'determinate';\r\n\r\n /** Gets the current transform value for the progress bar's primary indicator. */\r\n _primaryTransform() {\r\n const scale = this.value / 100;\r\n return {transform: `scaleX(${scale})`};\r\n }\r\n\r\n /**\r\n * Gets the current transform value for the progress bar's buffer indicator. Only used if the\r\n * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\r\n */\r\n _bufferTransform() {\r\n if (this.mode === 'buffer') {\r\n const scale = this.bufferValue / 100;\r\n return {transform: `scaleX(${scale})`};\r\n }\r\n }\r\n}\r\n\r\n/** Clamps a value to be between two numbers, by default 0 and 100. */\r\nfunction clamp(v: number, min = 0, max = 100) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n","import {NgModule, ModuleWithProviders} from '@angular/core';\r\nimport {\r\n MdProgressSpinnerComponent,\r\n MdSpinnerComponent,\r\n MdProgressSpinnerCssMatStylerDirective,\r\n} from './progress-spinner.component';\r\n\r\nimport { ProgressSpinnerComponent } from '../progress-spinner.component';\r\n\r\n\r\n@NgModule({\r\n exports: [\r\n MdProgressSpinnerComponent,\r\n MdSpinnerComponent,\r\n MdProgressSpinnerCssMatStylerDirective,\r\n ProgressSpinnerComponent\r\n ],\r\n declarations: [\r\n MdProgressSpinnerComponent,\r\n MdSpinnerComponent,\r\n MdProgressSpinnerCssMatStylerDirective,\r\n ProgressSpinnerComponent\r\n ],\r\n})\r\n\r\nclass MdProgressSpinnerModule {\r\n /** @deprecated */\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: MdProgressSpinnerModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n\r\nexport {MdProgressSpinnerModule};\r\nexport * from './progress-spinner.component';\r\n","module.exports = \"<!--\\r\\n preserveAspectRatio of xMidYMid meet as the center of the viewport is the circle's\\r\\n center. The center of the circle will remain at the center of the md-progress-spinner\\r\\n element containing the SVG.\\r\\n-->\\r\\n<svg viewBox=\\\"0 0 100 100\\\" preserveAspectRatio=\\\"xMidYMid meet\\\">\\r\\n <path></path>\\r\\n</svg>\"","module.exports = \":host {\\n display: block;\\n height: 100px;\\n width: 100px;\\n overflow: hidden; }\\n\\n:host svg {\\n height: 100%;\\n width: 100%;\\n -webkit-transform-origin: center;\\n transform-origin: center; }\\n\\n:host path {\\n fill: transparent;\\n stroke-width: 10px;\\n transition: stroke 0.3s cubic-bezier(0.35, 0, 0.25, 1); }\\n\\n:host[mode=indeterminate] svg {\\n -webkit-animation-duration: 5.25s, 2.887s;\\n animation-duration: 5.25s, 2.887s;\\n -webkit-animation-name: mat-progress-spinner-sporadic-rotate, mat-progress-spinner-linear-rotate;\\n animation-name: mat-progress-spinner-sporadic-rotate, mat-progress-spinner-linear-rotate;\\n -webkit-animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1), linear;\\n animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1), linear;\\n -webkit-animation-iteration-count: infinite;\\n animation-iteration-count: infinite;\\n transition: none; }\\n\\n@-webkit-keyframes mat-progress-spinner-linear-rotate {\\n 0% {\\n -webkit-transform: rotate(0);\\n transform: rotate(0); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n@keyframes mat-progress-spinner-linear-rotate {\\n 0% {\\n -webkit-transform: rotate(0);\\n transform: rotate(0); }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg); } }\\n\\n@-webkit-keyframes mat-progress-spinner-sporadic-rotate {\\n 12.5% {\\n -webkit-transform: rotate(135deg);\\n transform: rotate(135deg); }\\n 25% {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n 37.5% {\\n -webkit-transform: rotate(405deg);\\n transform: rotate(405deg); }\\n 50% {\\n -webkit-transform: rotate(540deg);\\n transform: rotate(540deg); }\\n 62.5% {\\n -webkit-transform: rotate(675deg);\\n transform: rotate(675deg); }\\n 75% {\\n -webkit-transform: rotate(810deg);\\n transform: rotate(810deg); }\\n 87.5% {\\n -webkit-transform: rotate(945deg);\\n transform: rotate(945deg); }\\n 100% {\\n -webkit-transform: rotate(1080deg);\\n transform: rotate(1080deg); } }\\n\\n@keyframes mat-progress-spinner-sporadic-rotate {\\n 12.5% {\\n -webkit-transform: rotate(135deg);\\n transform: rotate(135deg); }\\n 25% {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg); }\\n 37.5% {\\n -webkit-transform: rotate(405deg);\\n transform: rotate(405deg); }\\n 50% {\\n -webkit-transform: rotate(540deg);\\n transform: rotate(540deg); }\\n 62.5% {\\n -webkit-transform: rotate(675deg);\\n transform: rotate(675deg); }\\n 75% {\\n -webkit-transform: rotate(810deg);\\n transform: rotate(810deg); }\\n 87.5% {\\n -webkit-transform: rotate(945deg);\\n transform: rotate(945deg); }\\n 100% {\\n -webkit-transform: rotate(1080deg);\\n transform: rotate(1080deg); } }\\n\"","import {\r\n Component,\r\n HostBinding,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n Input,\r\n ElementRef,\r\n NgZone,\r\n Renderer, Directive\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { PLATFORM_ID, Inject } from '@angular/core';\r\n// TODO(josephperrott): Benchpress tests.\r\n\r\n/** A single degree in radians. */\r\nconst DEGREE_IN_RADIANS = Math.PI / 180;\r\n/** Duration of the indeterminate animation. */\r\nconst DURATION_INDETERMINATE = 667;\r\n/** Duration of the indeterminate animation. */\r\nconst DURATION_DETERMINATE = 225;\r\n/** Start animation value of the indeterminate animation */\r\nconst startIndeterminate = 3;\r\n/** End animation value of the indeterminate animation */\r\nconst endIndeterminate = 80;\r\n/* Maximum angle for the arc. The angle can't be exactly 360, because the arc becomes hidden. */\r\nconst MAX_ANGLE = 359.99 / 100;\r\n\r\nexport type ProgressSpinnerMode = 'determinate' | 'indeterminate';\r\n\r\ntype EasingFn = (currentTime: number, startValue: number,\r\n changeInValue: number, duration: number) => number;\r\n\r\n/**\r\n* Directive whose purpose is to add the mat- CSS styling to this selector.\r\n* @docs-private\r\n*/\r\n@Directive({\r\n selector: '[mdbSpinners], mat-progress-spinner'\r\n})\r\nexport class MdProgressSpinnerCssMatStylerDirective {\r\n @HostBinding('class.mat-progress-spinner') true: any;\r\n}\r\n\r\n\r\n/**\r\n* <md-progress-spinner> component.\r\n*/\r\n@Component({\r\n selector: 'mdb-Spinners, mat-progress-spinner',\r\n templateUrl: 'progress-spinner.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\n\r\nexport class MdProgressSpinnerComponent implements OnDestroy {\r\n /** The id of the last requested animation. */\r\n private _lastAnimationId = 0;\r\n\r\n /** The id of the indeterminate interval. */\r\n private _interdeterminateInterval: any;\r\n\r\n /** The SVG <path> node that is used to draw the circle. */\r\n private _path: SVGPathElement;\r\n\r\n private _mode: ProgressSpinnerMode = 'determinate';\r\n private _value: number;\r\n private _color = 'primary';\r\n\r\n isBrowser: any = false;\r\n @Inject(PLATFORM_ID) platformId: string\r\n /**\r\n * Values for aria max and min are only defined as numbers when in a determinate mode. We do this\r\n * because voiceover does not report the progress indicator as indeterminate if the aria min\r\n * and/or max value are number values.\r\n */\r\n get _ariaValueMin() {\r\n return this.mode === 'determinate' ? 0 : null;\r\n }\r\n\r\n get _ariaValueMax() {\r\n return this.mode === 'determinate' ? 100 : null;\r\n }\r\n\r\n /** @docs-private */\r\n get interdeterminateInterval() {\r\n return this._interdeterminateInterval;\r\n }\r\n /** @docs-private */\r\n set interdeterminateInterval(interval) {\r\n clearInterval(this._interdeterminateInterval);\r\n this._interdeterminateInterval = interval;\r\n }\r\n\r\n /**\r\n * Clean up any animations that were running.\r\n */\r\n ngOnDestroy() {\r\n this._cleanupIndeterminateAnimation();\r\n }\r\n\r\n /** The color of the progress-spinner. Can be primary, accent, or warn. */\r\n @Input()\r\n get color(): string { return this._color; }\r\n set color(value: string) {\r\n this._updateColor(value);\r\n }\r\n\r\n /** Value of the progress circle. It is bound to the host as the attribute aria-valuenow. */\r\n @Input()\r\n @HostBinding('attr.aria-valuenow')\r\n get value(): any {\r\n if (this.mode === 'determinate') {\r\n return this._value;\r\n }\r\n return;\r\n }\r\n set value(v: number | any) {\r\n if (v != null && this.mode === 'determinate') {\r\n const newValue = clamp(v);\r\n this._animateCircle(this.value || 0, newValue);\r\n this._value = newValue;\r\n }\r\n }\r\n\r\n /**\r\n * Mode of the progress circle\r\n *\r\n * Input must be one of the values from ProgressMode, defaults to 'determinate'.\r\n * mode is bound to the host as the attribute host.\r\n */\r\n @HostBinding('attr.mode')\r\n @Input()\r\n get mode() {\r\n return this._mode;\r\n }\r\n set mode(mode: ProgressSpinnerMode) {\r\n if (mode !== this._mode) {\r\n if (mode === 'indeterminate') {\r\n this._startIndeterminateAnimation();\r\n } else {\r\n this._cleanupIndeterminateAnimation();\r\n this._animateCircle(0, this._value);\r\n }\r\n this._mode = mode;\r\n }\r\n }\r\n\r\n constructor(\r\n private _ngZone: NgZone,\r\n private _elementRef: ElementRef,\r\n private _renderer: Renderer,\r\n @Inject(PLATFORM_ID) platformId?: string | any\r\n ) {\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n\r\n\r\n /**\r\n * Animates the circle from one percentage value to another.\r\n *\r\n * @param animateFrom The percentage of the circle filled starting the animation.\r\n * @param animateTo The percentage of the circle filled ending the animation.\r\n * @param ease The easing function to manage the pace of change in the animation.\r\n * @param duration The length of time to show the animation, in milliseconds.\r\n * @param rotation The starting angle of the circle fill, with 0° represented at the top center\r\n * of the circle.\r\n */\r\n private _animateCircle(animateFrom: number, animateTo: number, ease: EasingFn = linearEase,\r\n duration = DURATION_DETERMINATE, rotation = 0): void {\r\n\r\n const id = ++this._lastAnimationId;\r\n const startTime = Date.now();\r\n const changeInValue = animateTo - animateFrom;\r\n\r\n // No need to animate it if the values are the same\r\n if (animateTo === animateFrom) {\r\n this._renderArc(animateTo, rotation);\r\n } else {\r\n const animation = () => {\r\n const elapsedTime = Math.max(0, Math.min(Date.now() - startTime, duration));\r\n\r\n this._renderArc(\r\n ease(elapsedTime, animateFrom, changeInValue, duration),\r\n rotation\r\n );\r\n\r\n // Prevent overlapping animations by checking if a new animation has been called for and\r\n // if the animation has lasted longer than the animation duration.\r\n if (id === this._lastAnimationId && elapsedTime < duration) {\r\n requestAnimationFrame(animation);\r\n }\r\n };\r\n\r\n // Run the animation outside of Angular's zone, in order to avoid\r\n // hitting ZoneJS and change detection on each frame.\r\n this._ngZone.runOutsideAngular(animation);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Starts the indeterminate animation interval, if it is not already running.\r\n */\r\n private _startIndeterminateAnimation(): void {\r\n let rotationStartPoint = 0;\r\n let start = startIndeterminate;\r\n let end = endIndeterminate;\r\n const duration = DURATION_INDETERMINATE;\r\n const animate = () => {\r\n this._animateCircle(start, end, materialEase, duration, rotationStartPoint);\r\n // Prevent rotation from reaching Number.MAX_SAFE_INTEGER.\r\n rotationStartPoint = (rotationStartPoint + end) % 100;\r\n const temp = start;\r\n start = -end;\r\n end = -temp;\r\n };\r\n\r\n if (this.isBrowser) {\r\n if (!this.interdeterminateInterval) {\r\n this._ngZone.runOutsideAngular(() => {\r\n this.interdeterminateInterval = setInterval(animate, duration + 50, 0, false);\r\n animate();\r\n });\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n /**\r\n * Removes interval, ending the animation.\r\n */\r\n private _cleanupIndeterminateAnimation(): void {\r\n this.interdeterminateInterval = null;\r\n }\r\n\r\n /**\r\n * Renders the arc onto the SVG element. Proxies `getArc` while setting the proper\r\n * DOM attribute on the `<path>`.\r\n */\r\n private _renderArc(currentValue: number, rotation = 0): void {\r\n // Caches the path reference so it doesn't have to be looked up every time.\r\n const path = this._path = this._path || this._elementRef.nativeElement.querySelector('path');\r\n\r\n // Ensure that the path was found. This may not be the case if the\r\n // animation function fires too early.\r\n if (path) {\r\n path.setAttribute('d', getSvgArc(currentValue, rotation));\r\n }\r\n }\r\n\r\n /**\r\n * Updates the color of the progress-spinner by adding the new palette class to the element\r\n * and removing the old one.\r\n */\r\n private _updateColor(newColor: string): void {\r\n this._setElementColor(this._color, false);\r\n this._setElementColor(newColor, true);\r\n this._color = newColor;\r\n }\r\n\r\n /** Sets the given palette class on the component element. */\r\n private _setElementColor(color: string, isAdd: boolean) {\r\n if (color != null && color !== '') {\r\n this._renderer.setElementClass(this._elementRef.nativeElement, `mat-${color}`, isAdd);\r\n }\r\n }\r\n}\r\n\r\n\r\n/**\r\n * <md-spinner> component.\r\n *\r\n * This is a component definition to be used as a convenience reference to create an\r\n * indeterminate <md-progress-spinner> instance.\r\n */\r\n@Component({\r\n selector: 'mdb-spinners, mat-spinner, mdb-progress-spinner',\r\n templateUrl: 'progress-spinner.component.html',\r\n styleUrls: ['progress-spinner.component.scss'],\r\n})\r\nexport class MdSpinnerComponent extends MdProgressSpinnerComponent implements OnDestroy {\r\n\r\n @HostBinding('class.mat-spinner') true: any;\r\n\r\n constructor(elementRef: ElementRef, ngZone: NgZone, renderer: Renderer) {\r\n super(ngZone, elementRef, renderer);\r\n this.mode = 'indeterminate';\r\n }\r\n\r\n ngOnDestroy() {\r\n // The `ngOnDestroy` from `MdProgressSpinner` should be called explicitly, because\r\n // in certain cases Angular won't call it (e.g. when using AoT and in unit tests).\r\n super.ngOnDestroy();\r\n }\r\n}\r\n\r\n\r\n/**\r\n* Module functions.\r\n*/\r\n\r\n/** Clamps a value to be between 0 and 100. */\r\nfunction clamp(v: number) {\r\n return Math.max(0, Math.min(100, v));\r\n}\r\n\r\n\r\n/**\r\n* Converts Polar coordinates to Cartesian.\r\n*/\r\nfunction polarToCartesian(radius: number, pathRadius: number, angleInDegrees: number) {\r\n const angleInRadians = (angleInDegrees - 90) * DEGREE_IN_RADIANS;\r\n\r\n return (radius + (pathRadius * Math.cos(angleInRadians))) +\r\n ',' + (radius + (pathRadius * Math.sin(angleInRadians)));\r\n}\r\n\r\n\r\n/**\r\n* Easing function for linear animation.\r\n*/\r\nfunction linearEase(currentTime: number, startValue: number,\r\n changeInValue: number, duration: number) {\r\n return changeInValue * currentTime / duration + startValue;\r\n}\r\n\r\n\r\n/**\r\n * Easing function to match material design indeterminate animation.\r\n */\r\nfunction materialEase(currentTime: number, startValue: number,\r\n changeInValue: number, duration: number) {\r\n const time = currentTime / duration;\r\n const timeCubed = Math.pow(time, 3);\r\n const timeQuad = Math.pow(time, 4);\r\n const timeQuint = Math.pow(time, 5);\r\n return startValue + changeInValue * ((6 * timeQuint) + (-15 * timeQuad) + (10 * timeCubed));\r\n}\r\n\r\n\r\n/**\r\n* Determines the path value to define the arc. Converting percentage values to to polar\r\n* coordinates on the circle, and then to cartesian coordinates in the viewport.\r\n*\r\n* @param currentValue The current percentage value of the progress circle, the percentage of the\r\n* circle to fill.\r\n* @param rotation The starting point of the circle with 0 being the 0 degree point.\r\n* @return A string for an SVG path representing a circle filled from the starting point to the\r\n* percentage value provided.\r\n*/\r\nfunction getSvgArc(currentValue: number, rotation: number) {\r\n const startPoint = rotation || 0;\r\n const radius = 50;\r\n const pathRadius = 40;\r\n\r\n const startAngle = startPoint * MAX_ANGLE;\r\n const endAngle = currentValue * MAX_ANGLE;\r\n const start = polarToCartesian(radius, pathRadius, startAngle);\r\n const end = polarToCartesian(radius, pathRadius, endAngle + startAngle);\r\n const arcSweep = endAngle < 0 ? 0 : 1;\r\n let largeArcFlag: number;\r\n\r\n if (endAngle < 0) {\r\n largeArcFlag = endAngle >= -180 ? 0 : 1;\r\n } else {\r\n largeArcFlag = endAngle <= 180 ? 0 : 1;\r\n }\r\n\r\n return `M${start}A${pathRadius},${pathRadius} 0 ${largeArcFlag},${arcSweep} ${end}`;\r\n}\r\n","module.exports = \"<div class=\\\"preloader-wrapper active {{spinnerType}}\\\">\\r\\n <mdb-Spinners mdbSpinners mode=\\\"indeterminate\\\"></mdb-Spinners>\\r\\n</div>\"","import { Component, Input, ElementRef, AfterViewInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mdb-spinner',\r\n templateUrl: 'progress-spinner.component.html'\r\n})\r\nexport class ProgressSpinnerComponent implements AfterViewInit {\r\n el: ElementRef;\r\n addClass: String = 'spinner-blue-only';\r\n @Input() spinnerType = '';\r\n @Input() spinnerColor = 'rainbow';\r\n\r\n constructor(el: ElementRef) {\r\n this.el = el;\r\n }\r\n\r\n ngAfterViewInit() {\r\n const hostElem = this.el.nativeElement;\r\n const colorClass = this.spinnerColor;\r\n this.addClass = 'spinner-rainbow';\r\n\r\n switch (colorClass) {\r\n case 'green':\r\n this.addClass = 'spinner-green-only';\r\n break;\r\n case 'blue':\r\n this.addClass = 'spinner-blue-only';\r\n break;\r\n case 'yellow':\r\n this.addClass = 'spinner-yellow-only';\r\n break;\r\n case 'red':\r\n this.addClass = 'spinner-red-only';\r\n break;\r\n case 'rainbow':\r\n this.addClass = 'spinner-rainbow spinner-blue-only mat-progress-spinner';\r\n this.spinerRun();\r\n break;\r\n }\r\n hostElem.children[0].children[0].className += ' ' + this.addClass;\r\n }\r\n\r\n spinerRun() {\r\n let counter = 0;\r\n const hostElem = this.el.nativeElement;\r\n setInterval(() => {\r\n switch (counter) {\r\n case 0:\r\n this.addClass = 'spinner-red-only mat-progress-spinner ';\r\n break;\r\n case 1:\r\n this.addClass = 'spinner-yellow-only mat-progress-spinner';\r\n break;\r\n case 2:\r\n this.addClass = 'spinner-blue-only mat-progress-spinner';\r\n break;\r\n case 3:\r\n this.addClass = 'spinner-green-only mat-progress-spinner';\r\n break;\r\n }\r\n\r\n hostElem.children[0].children[0].className = ' ' + this.addClass;\r\n if (counter < 3) {\r\n counter++;\r\n } else {\r\n counter = 0;\r\n }\r\n }, 1333);\r\n }\r\n}\r\n","import { Directive, HostBinding, Input } from '@angular/core';\r\n\r\nimport { BarComponent } from './bar.component';\r\n\r\n// todo: progress element conflict with bootstrap.css\r\n// todo: need hack: replace host element with div\r\n@Directive({selector: 'mdbProgress, [mdbProgress]'})\r\nexport class ProgressDirective {\r\n /** if `true` changing value of progress bar will be animated (note: not supported by Bootstrap 4) */\r\n @Input() public animate: boolean;\r\n\r\n /** maximum total value of progress element */\r\n @HostBinding('attr.max')\r\n @Input()\r\n public get max(): number {\r\n return this._max;\r\n }\r\n\r\n public set max(v: number) {\r\n this._max = v;\r\n this.bars.forEach((bar: BarComponent) => {\r\n bar.recalculatePercentage();\r\n });\r\n }\r\n\r\n @HostBinding('class.progress') public addClass = true;\r\n\r\n public bars: any[] = [];\r\n\r\n protected _max = 100;\r\n\r\n public addBar(bar: BarComponent): void {\r\n if (!this.animate) {\r\n bar.transition = 'none';\r\n }\r\n this.bars.push(bar);\r\n }\r\n\r\n public removeBar(bar: BarComponent): void {\r\n this.bars.splice(this.bars.indexOf(bar), 1);\r\n }\r\n}\r\n","module.exports = \"<div mdbProgress [animate]=\\\"animate\\\" [max]=\\\"max\\\">\\r\\n <mdb-bar [type]=\\\"type\\\" [value]=\\\"value\\\">\\r\\n <ng-content></ng-content>\\r\\n </mdb-bar>\\r\\n</div>\\r\\n\"","import { Component, Input } from '@angular/core';\r\nimport { ProgressbarConfigComponent } from './progressbar.config.component';\r\n\r\n@Component({\r\n selector: 'mdb-progressbar',\r\n templateUrl: './progressbar.component.html'\r\n})\r\nexport class ProgressbarComponent {\r\n /** if `true` changing value of progress bar will be animated (note: not supported by Bootstrap 4) */\r\n @Input() public animate: boolean;\r\n /** maximum total value of progress element */\r\n @Input() public max: number;\r\n /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */\r\n @Input() public type: string;\r\n /** current value of progress bar */\r\n @Input() public value: number;\r\n\r\n public constructor(config: ProgressbarConfigComponent) {\r\n Object.assign(this, config);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ProgressbarConfigComponent {\r\n /** if `true` changing value of progress bar will be animated (note: not supported by Bootstrap 4) */\r\n public animate: Boolean = true;\r\n /** maximum total value of progress element */\r\n public max = 100;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { BarComponent } from './bar.component';\r\nimport { ProgressDirective } from './progress.directive';\r\nimport { ProgressbarComponent } from './progressbar.component';\r\nimport { ProgressbarConfigComponent } from './progressbar.config.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ProgressDirective, BarComponent, ProgressbarComponent],\r\n exports: [ProgressDirective, BarComponent, ProgressbarComponent]\r\n})\r\nexport class ProgressbarModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {ngModule: ProgressbarModule, providers: [ProgressbarConfigComponent]};\r\n }\r\n}\r\n","export * from './sidenav.component';\r\nexport * from './sidenav.module';\r\n","module.exports = \"<ul #sidenav id=\\\"slide-out\\\" class=\\\"{{ class }} side-nav\\\" >\\r\\n <ng-content></ng-content>\\r\\n <!-- <div class=\\\"sidenav-bg mask-strong\\\"></div> -->\\r\\n</ul>\\r\\n<div (click)=\\\"hide()\\\" #overlay id=\\\"sidenav-overlay\\\" style=\\\"display: none;\\\"></div>\"","import { Component, ViewChild, Input, ElementRef, Renderer, AfterViewInit, HostListener, PLATFORM_ID, Inject } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'mdb-sidenav',\r\n templateUrl: 'sidenav.component.html'\r\n})\r\n\r\nexport class SidenavComponent implements AfterViewInit {\r\n public windwosWidth: number;\r\n public shown: boolean;\r\n\r\n public isBrowser: any = false;\r\n @Input() public class: string;\r\n @Input() public fixed = true;\r\n\r\n @ViewChild('sidenav') public sideNav: ElementRef;\r\n @ViewChild('overlay') public overlay: any;\r\n\r\n constructor( @Inject(PLATFORM_ID) platformId: string, public el: ElementRef,\r\n public renderer: Renderer) {\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.isBrowser) {\r\n // pobraneie szerokosci okna po init\r\n this.windwosWidth = window.innerWidth;\r\n\r\n if (this.fixed) {\r\n this.renderer.setElementClass(document.body, 'fixed-sn', true);\r\n\r\n if (this.windwosWidth < 1441) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n } else {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.setShown(true);\r\n }\r\n } else {\r\n this.renderer.setElementClass(document.body, 'hidden-sn', true);\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n }\r\n }\r\n }\r\n\r\n @HostListener('window:resize')\r\n windwosResize() {\r\n if (this.isBrowser) {\r\n this.windwosWidth = window.innerWidth;\r\n if (this.fixed) {\r\n if (this.windwosWidth < 1441) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n }\r\n\r\n if (this.windwosWidth > 1440 && this.shown) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.hideOverlay();\r\n this.setShown(true);\r\n } else if (this.windwosWidth > 1440) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.hideOverlay();\r\n this.setShown(true);\r\n }\r\n } else {\r\n if (this.windwosWidth > 1440) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.hideOverlay();\r\n this.setShown(false);\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n\r\n\r\n show() {\r\n if (this.isBrowser) {\r\n if (this.fixed) {\r\n if (this.windwosWidth < 1441) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.setShown(true);\r\n this.showOverlay();\r\n } else {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.setShown(true);\r\n }\r\n } else {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(0%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(0%)');\r\n this.setShown(true);\r\n this.showOverlay();\r\n }\r\n }\r\n\r\n }\r\n\r\n hide() {\r\n if (this.isBrowser) {\r\n if (this.fixed) {\r\n if (this.windwosWidth < 1441) {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n this.hideOverlay();\r\n } else {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n }\r\n } else {\r\n this.renderer.setElementStyle(this.sideNav.nativeElement, 'transform', 'translateX(-100%)');\r\n this.renderer.setElementStyle(this.el.nativeElement, 'transform', 'translateX(-100%)');\r\n this.setShown(false);\r\n this.hideOverlay();\r\n }\r\n }\r\n }\r\n\r\n toggle() {\r\n if (this.shown) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n }\r\n\r\n showOverlay() {\r\n this.renderer.setElementStyle(this.overlay.nativeElement, 'display', 'block');\r\n setTimeout(() => {\r\n this.renderer.setElementStyle(this.overlay.nativeElement, 'opacity', '1');\r\n }, 0);\r\n }\r\n\r\n hideOverlay() {\r\n this.renderer.setElementStyle(this.overlay.nativeElement, 'opacity', '0');\r\n setTimeout(() => {\r\n this.renderer.setElementStyle(this.overlay.nativeElement, 'display', 'none');\r\n }, 200);\r\n }\r\n\r\n setShown(value: boolean) {\r\n setTimeout(() => {\r\n this.shown = value;\r\n }, 510);\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SidenavComponent,\r\n ],\r\n exports: [\r\n SidenavComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ]\r\n})\r\nexport class SidenavModule { }\r\n","export * from './mdb-page-scroll.directive';\r\nexport * from './mdb-page-scroll.service';\r\nexport * from './mdb-page-scroll.config';\r\nexport * from './mdb-page-scroll.instance';\r\nexport * from './mdb-page-scroll-util.service';\r\n\r\nexport {MDBPageScrollModule} from './mdb-page-scroll.module';\r\n","/**\r\n * Created by sebastianfuss on 02.09.16.\r\n */\r\n\r\nexport class PageScrollUtilService {\r\n\r\n /**\r\n * Util method to check whether a given variable is either undefined or null\r\n * @param variable\r\n * @returns {boolean} true the variable is undefined or null\r\n */\r\n public static isUndefinedOrNull(variable: any): boolean {\r\n return (typeof variable === 'undefined') || variable === undefined || variable === null;\r\n }\r\n\r\n public static extractElementPosition(document: Document, scrollTargetElement: HTMLElement): {top: number, left: number} {\r\n\r\n const body = document.body;\r\n const docEl = document.documentElement;\r\n\r\n // const windowPageYOffset: number = document.defaultView && document.defaultView.pageYOffset || undefined;\r\n const windowPageYOffset: number | any = document.defaultView && document.defaultView.pageYOffset as any || undefined;\r\n // const windowPageXOffset: number = document.defaultView && document.defaultView.pageXOffset || undefined;\r\n const windowPageXOffset: number | any = document.defaultView && document.defaultView.pageXOffset as any || undefined;\r\n\r\n const scrollTop = windowPageYOffset || docEl.scrollTop || body.scrollTop;\r\n const scrollLeft = windowPageXOffset || docEl.scrollLeft || body.scrollLeft;\r\n\r\n const clientTop = docEl.clientTop || body.clientTop || 0;\r\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\r\n\r\n\r\n if (PageScrollUtilService.isUndefinedOrNull(scrollTargetElement)) {\r\n // No element found, so return the current position to not cause any change in scroll position\r\n return {top: scrollTop, left: scrollLeft};\r\n }\r\n const box = scrollTargetElement.getBoundingClientRect();\r\n\r\n const top = box.top + scrollTop - clientTop;\r\n const left = box.left + scrollLeft - clientLeft;\r\n\r\n return {top: Math.round(top), left: Math.round(left)};\r\n }\r\n}\r\n","export abstract class EasingLogic {\r\n /**\r\n * Examples may be found at https://github.com/gdsmith/jquery.easing/blob/master/jquery.easing.js\r\n * or http://gizma.com/easing/\r\n * @param t current time\r\n * @param b beginning value\r\n * @param c change In value\r\n * @param d duration\r\n */\r\n public abstract ease(t: number, b: number, c: number, d: number): number;\r\n}\r\n\r\nexport declare type PageScrollTarget = HTMLElement | string;\r\n\r\nexport declare type PageScrollingViews = HTMLElement | Document | HTMLBodyElement | Node;\r\n\r\nexport class PageScrollConfig {\r\n\r\n /**\r\n * The number of milliseconds to wait till updating the scroll position again.\r\n * Small amounts may produce smoother animations but require more processing power.\r\n * @type {number}\r\n * @private\r\n */\r\n public static _interval = 10;\r\n\r\n /**\r\n * The amount of pixels that need to be between the current scrollTop/scrollLeft position\r\n * and the target position the cause a scroll animation. In case distance is below\r\n * this threshold, an immediate jump will be performed.\r\n * Due to dpi or rounding irregularities in browsers floating point numbers for scrollTop/scrollLeft values\r\n * are possible, making a === comparison of current scrollTop or scrollLeft and target scrollPosition error-prone.\r\n * @type {number}\r\n * @private\r\n */\r\n public static _minScrollDistance = 2;\r\n\r\n /**\r\n * Name of the default namespace.\r\n * @type {string}\r\n * @private\r\n */\r\n public static _defaultNamespace = 'default';\r\n\r\n /**\r\n * Whether by default the scrolling should happen in vertical direction (by manipulating the scrollTop property)\r\n * (= true; default) or in horizontal direction (by manipulating the scrollLeft property) (= false\r\n * @type {boolean}\r\n */\r\n public static defaultIsVerticalScrolling = true;\r\n\r\n /**\r\n * How many console logs should be emitted.\r\n * 0: None\r\n * 2: If animation could not be started due to missing target, \"already at destination\" or similar reasons\r\n * 5: All scroll position values that get set\r\n * @type {boolean}\r\n * @private\r\n */\r\n public static _logLevel = 2;\r\n\r\n /**\r\n * The duration how long a scrollTo animation should last by default.\r\n * May be overridden using the page-scroll-duration attribute on a single ng2PageScroll instance.\r\n * @type {number}\r\n */\r\n public static defaultDuration = 1250;\r\n\r\n /**\r\n * The distance in pixels above scroll target where the animation should stop. Setting a positive number results in\r\n * the scroll target being more in the middle of the screen, negative numbers will produce scrolling \"too far\"\r\n * @type {number}\r\n */\r\n public static defaultScrollOffset = 0;\r\n\r\n /**\r\n * Whether by default for inline scroll animations the advanced offset calculation should take place (true) or\r\n * not (false). Default is false.\r\n * The advanced offset calculation will traverse the DOM tree upwards, starting at the scrollTarget, until it finds\r\n * the scrollingView container element. Along the way the offset positions of the relative positioned\r\n * (position: relative) elements will be taken into account for calculating the target elements position.\r\n * @type {boolean}\r\n */\r\n public static defaultAdvancedInlineOffsetCalculation = false;\r\n\r\n /**\r\n * The events that are listened to on the body to decide whether a scroll animation has been interfered/interrupted by the user\r\n * @type {string[]}\r\n * @private\r\n */\r\n public static _interruptEvents: string[] = ['mousedown', 'wheel', 'DOMMouseScroll', 'mousewheel', 'keyup', 'touchmove'];\r\n\r\n /**\r\n * The keys that are considered to interrupt a scroll animation (mainly the arrow keys). All other key presses will not stop the\r\n * scroll animation.\r\n * @type {number[]}\r\n * @private\r\n */\r\n public static _interruptKeys: number[] = [33, 34, 35, 36, 38, 40];\r\n\r\n /**\r\n * Whether a scroll animation should be interruptible by user interaction (true) or not (false). If the user performs an\r\n * interrupting event while a scroll animation takes place, the scroll animation stops.\r\n * @type {boolean}\r\n */\r\n public static defaultInterruptible = true;\r\n\r\n private static _easingLogic: EasingLogic = {\r\n ease: (t: number, b: number, c: number, d: number): number => {\r\n // Linear easing\r\n return c * t / d + b;\r\n }\r\n };\r\n\r\n // Getter and setter to avoid auto completion to suggest calling the method\r\n public static get defaultEasingLogic(): EasingLogic {\r\n return PageScrollConfig._easingLogic;\r\n }\r\n\r\n public static set defaultEasingLogic(easingLogic: EasingLogic) {\r\n PageScrollConfig._easingLogic = easingLogic;\r\n }\r\n\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n Inject,\r\n Optional,\r\n OnChanges,\r\n HostListener\r\n} from '@angular/core';\r\nimport {\r\n Router,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationCancel,\r\n UrlTree\r\n} from '@angular/router';\r\nimport {DOCUMENT} from '@angular/platform-browser';\r\n\r\nimport {Subscription} from 'rxjs/Subscription';\r\n\r\nimport {PageScrollService} from './mdb-page-scroll.service';\r\nimport {PageScrollInstance} from './mdb-page-scroll.instance';\r\nimport {PageScrollUtilService as Util} from './mdb-page-scroll-util.service';\r\nimport {EasingLogic} from './mdb-page-scroll.config';\r\n\r\n@Directive({\r\n selector: '[mdbPageScroll]'\r\n})\r\nexport class PageScrollDirective implements OnChanges, OnDestroy {\r\n\r\n @Input()\r\n public routerLink: any;\r\n\r\n @Input()\r\n public href: string;\r\n\r\n @Input()\r\n // public pageScrollHorizontal: boolean = null;\r\n public pageScrollHorizontal: boolean | any = null;\r\n\r\n @Input()\r\n // public pageScrollOffset: number = null;\r\n public pageScrollOffset: number | any = null;\r\n\r\n @Input()\r\n // public pageScrollDuration: number = null;\r\n public pageScrollDuration: number | any = null;\r\n\r\n @Input()\r\n // public pageScrollSpeed: number = null;\r\n public pageScrollSpeed: number | any = null;\r\n\r\n @Input()\r\n // public pageScrollEasing: EasingLogic = null;\r\n public pageScrollEasing: EasingLogic | any = null;\r\n\r\n @Input()\r\n public pageScrollInterruptible: boolean;\r\n\r\n @Input()\r\n public pageScrollAdjustHash = false;\r\n\r\n @Input()\r\n // public pageScroll: string = null;\r\n public pageScroll: string | any = null;\r\n\r\n @Output()\r\n pageScrollFinish: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n // private pageScrollInstance: PageScrollInstance;\r\n private pageScrollInstance: PageScrollInstance | any;\r\n private document: Document;\r\n\r\n constructor(private pageScrollService: PageScrollService, @Optional() private router: Router, @Inject(DOCUMENT) document: any) {\r\n this.document = <Document> document;\r\n }\r\n\r\n ngOnChanges(): void {\r\n // Some inputs changed, reset the pageScrollInstance\r\n this.pageScrollInstance = undefined;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.pageScrollInstance) {\r\n this.pageScrollService.stop(this.pageScrollInstance);\r\n }\r\n return undefined;\r\n }\r\n\r\n // private generatePageScrollInstance(): PageScrollInstance {\r\n private generatePageScrollInstance(): PageScrollInstance | any {\r\n if (Util.isUndefinedOrNull(this.pageScrollInstance)) {\r\n this.pageScrollInstance = PageScrollInstance.newInstance({\r\n document: this.document,\r\n scrollTarget: this.href,\r\n scrollingViews: null,\r\n namespace: this.pageScroll,\r\n verticalScrolling: !this.pageScrollHorizontal,\r\n pageScrollOffset: this.pageScrollOffset,\r\n pageScrollInterruptible: this.pageScrollInterruptible,\r\n pageScrollEasingLogic: this.pageScrollEasing,\r\n pageScrollDuration: this.pageScrollDuration,\r\n pageScrollSpeed: this.pageScrollSpeed,\r\n pageScrollFinishListener: this.pageScrollFinish\r\n });\r\n }\r\n return this.pageScrollInstance;\r\n }\r\n\r\n private pushRouterState() {\r\n if (this.pageScrollAdjustHash && typeof this.pageScrollInstance.scrollTarget === 'string'\r\n && this.pageScrollInstance.scrollTarget.substr(0, 1) === '#') {\r\n // \"Navigate\" to the current route again and this time set the fragment/hash\r\n this.router.navigate([], {\r\n fragment: <string>this.pageScrollInstance.scrollTarget.substr(1),\r\n preserveQueryParams: true\r\n });\r\n }\r\n }\r\n\r\n private scroll(): void {\r\n const pageScrollInstance = this.generatePageScrollInstance();\r\n this.pushRouterState();\r\n this.pageScrollService.start(pageScrollInstance);\r\n }\r\n\r\n @HostListener('click', ['$event']) public handleClick(): boolean {\r\n if (this.routerLink && this.router !== null && this.router !== undefined) {\r\n let urlTree: UrlTree;\r\n if (typeof this.routerLink === 'string') {\r\n urlTree = this.router.parseUrl(this.routerLink);\r\n } else {\r\n urlTree = this.router.createUrlTree(this.routerLink);\r\n }\r\n if (!this.router.isActive(urlTree, true)) {\r\n // We need to navigate their first.\r\n // Navigation is handled by the routerLink directive\r\n // so we only need to listen for route change\r\n const subscription: Subscription = <Subscription>this.router.events.subscribe((routerEvent) => {\r\n if (routerEvent instanceof NavigationEnd) {\r\n subscription.unsubscribe();\r\n this.scroll();\r\n } else if (routerEvent instanceof NavigationError || routerEvent instanceof NavigationCancel) {\r\n subscription.unsubscribe();\r\n }\r\n });\r\n return false; // to preventDefault()\r\n }\r\n }\r\n this.scroll();\r\n return false; // to preventDefault()\r\n }\r\n\r\n}\r\n","/**\r\n* Created by sebastianfuss on 29.08.16.\r\n*/\r\n\r\nimport {EventEmitter} from '@angular/core';\r\n\r\nimport {EasingLogic, PageScrollConfig, PageScrollTarget, PageScrollingViews} from './mdb-page-scroll.config';\r\nimport {PageScrollUtilService as Util} from './mdb-page-scroll-util.service';\r\n\r\n/**\r\n* An Interface specifying the possible options to be passed into the newInstance() factory method\r\n*/\r\nexport interface PageScrollOptions {\r\n /**\r\n * The document object of the current app\r\n */\r\n document: Document;\r\n\r\n /**\r\n * A specification of the DOM element to scroll to. Either a string referring to an\r\n * object id (`#target`) or a HTMLElement that is attached to the document's DOM tree.\r\n */\r\n scrollTarget: PageScrollTarget;\r\n\r\n /**\r\n * Array of HTMLElements or the body object that should be manipulated while performing\r\n * the scroll animation.\r\n */\r\n scrollingViews?: PageScrollingViews[];\r\n\r\n /**\r\n * Namespace of the scroll animation\r\n */\r\n namespace?: string;\r\n\r\n /**\r\n * Whether that scroll animation scrolls in vertical direction (true) or\r\n * horizontal (false, default value)\r\n */\r\n verticalScrolling?: boolean;\r\n\r\n /**\r\n * Whether the an advanced offset calculation for inline scrollings should be applied\r\n */\r\n advancedInlineOffsetCalculation?: boolean;\r\n\r\n /**\r\n * Offset of target elements location and scroll location\r\n */\r\n pageScrollOffset?: number;\r\n\r\n /**\r\n * Whether the scroll animation should be interruptible\r\n */\r\n pageScrollInterruptible?: boolean;\r\n\r\n /**\r\n * The easing logic to be used\r\n */\r\n pageScrollEasingLogic?: EasingLogic;\r\n\r\n /**\r\n * Duration in milliseconds the scroll animation should last\r\n */\r\n pageScrollDuration?: number;\r\n\r\n /**\r\n * Maximum speed to be used for the scroll animation. Only taken\r\n * into account of no pageScrollDuration is provided\r\n */\r\n pageScrollSpeed?: number;\r\n\r\n /**\r\n * A listener to be called whenever the scroll animation stops\r\n */\r\n pageScrollFinishListener?: EventEmitter<boolean>;\r\n}\r\n\r\n/**\r\n* Represents a scrolling action\r\n*/\r\nexport class PageScrollInstance {\r\n\r\n /**\r\n * These properties will be set during instance construction and default to their defaults from PageScrollConfig\r\n */\r\n\r\n /* A namespace to \"group\" scroll animations together and stopping some does not stop others */\r\n private _namespace: string = PageScrollConfig._defaultNamespace;\r\n /* The document all the scrolling takes place and scroll targets are located in */\r\n private document: Document;\r\n /* The DOM elements or similar nodes whose scrollTop/scrollLeft property will be manipulated during scrolling */\r\n private _scrollingViews: PageScrollingViews[];\r\n private _isInlineScrolling: boolean;\r\n /* The target element that should be scrolled into the viewport */\r\n private _scrollTarget: PageScrollTarget;\r\n\r\n /* Whether we scroll vertically (true) or horizontally (false) */\r\n private _verticalScrolling = PageScrollConfig.defaultIsVerticalScrolling;\r\n /* Offset in px that the animation should stop above that target element */\r\n private _offset: number = PageScrollConfig.defaultScrollOffset;\r\n /* Duration in milliseconds the scroll animation should last */\r\n private _duration: number = PageScrollConfig.defaultDuration;\r\n /* Speed in \"pixels/second\" to be used when scrolling to the target element */\r\n private _speed: number;\r\n /* Easing function to manipulate the scrollTop/scrollLeft value over time */\r\n private _easingLogic: EasingLogic = PageScrollConfig.defaultEasingLogic;\r\n /* Boolean whether the scroll animation should stop on user interruption or not */\r\n private _interruptible: boolean = PageScrollConfig.defaultInterruptible;\r\n /* The listener that this scroll instance attaches to the body to listen for interrupt events\r\n We're keeping a reference to it so we can properly remove it when the animation finishes */\r\n private _interruptListener: EventListenerOrEventListenerObject;\r\n /* Whether the advanded offset calculation for inline scrolling should be used */\r\n private _advancedInlineOffsetCalculation: boolean = PageScrollConfig.defaultAdvancedInlineOffsetCalculation;\r\n /* Event emitter to notify the world about the scrolling */\r\n private _pageScrollFinish: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n /**\r\n * These properties will be set/manipulated if the scroll animation starts\r\n */\r\n /* The initial value of the scrollTop or scrollLeft position when the animation starts */\r\n private _startScrollPosition = 0;\r\n /* The target value of the scrollTop or scrollLeft position for the animation (aka \"the final destination\") */\r\n private _targetScrollPosition: number;\r\n /* Difference between startScrollPosition and targetScrollPosition. Pre-calculated to minimize computations during animation */\r\n private _distanceToScroll: number;\r\n /* The timestamp when the animation starts/got started */\r\n private _startTime: number;\r\n /* The estimate end time of the animation, calculated by startTime + duration */\r\n private _endTime: number;\r\n /* The duration a started animation takes. This may match the _duration or be adjusted due to the _speed option */\r\n private _executionDuration: number;\r\n /* Whether an interrupt listener is attached to the body or not */\r\n private _interruptListenersAttached = false;\r\n\r\n /* References to the timer instance that is used to perform the scroll animation to be\r\n able to clear it on animation end*/\r\n private _timer: any = null;\r\n\r\n /*\r\n * Factory methods for instance creation\r\n */\r\n public static simpleInstance(document: Document,\r\n scrollTarget: PageScrollTarget,\r\n namespace?: string): PageScrollInstance {\r\n return PageScrollInstance.newInstance({\r\n document,\r\n scrollTarget,\r\n namespace\r\n });\r\n }\r\n\r\n// public static newInstance(options: PageScrollOptions) {\r\n public static newInstance(options: PageScrollOptions | any) {\r\n\r\n if (Util.isUndefinedOrNull(options.namespace) || options.namespace.length <= 0) {\r\n options.namespace = PageScrollConfig._defaultNamespace;\r\n }\r\n // const pageScrollInstance: PageScrollInstance = new PageScrollInstance(options.namespace, document);\r\n const pageScrollInstance: PageScrollInstance | any = new PageScrollInstance(options.namespace, document);\r\n\r\n if (Util.isUndefinedOrNull(options.scrollingViews) || options.scrollingViews.length === 0) {\r\n pageScrollInstance._isInlineScrolling = false;\r\n pageScrollInstance._scrollingViews = [document.documentElement, document.body, document.body.parentNode];\r\n } else {\r\n pageScrollInstance._isInlineScrolling = true;\r\n pageScrollInstance._scrollingViews = options.scrollingViews;\r\n }\r\n\r\n pageScrollInstance._scrollTarget = options.scrollTarget;\r\n\r\n if (!Util.isUndefinedOrNull(options.verticalScrolling)) {\r\n pageScrollInstance._verticalScrolling = options.verticalScrolling;\r\n }\r\n\r\n if (!Util.isUndefinedOrNull(options.pageScrollOffset)) {\r\n pageScrollInstance._offset = options.pageScrollOffset;\r\n }\r\n\r\n if (!Util.isUndefinedOrNull(options.pageScrollEasingLogic)) {\r\n pageScrollInstance._easingLogic = options.pageScrollEasingLogic;\r\n }\r\n\r\n if (Util.isUndefinedOrNull(options.pageScrollDuration) && !Util.isUndefinedOrNull(options.pageScrollSpeed)) {\r\n // No duration specified in the options, only in this case we use the speed option when present\r\n pageScrollInstance._speed = options.pageScrollSpeed;\r\n pageScrollInstance._duration = undefined;\r\n } else if (!Util.isUndefinedOrNull(options.pageScrollDuration)) {\r\n pageScrollInstance._duration = options.pageScrollDuration;\r\n }\r\n\r\n if (!Util.isUndefinedOrNull(options.pageScrollFinishListener)) {\r\n pageScrollInstance._pageScrollFinish = options.pageScrollFinishListener;\r\n }\r\n\r\n pageScrollInstance._interruptible = options.pageScrollInterruptible ||\r\n (Util.isUndefinedOrNull(options.pageScrollInterruptible) && PageScrollConfig.defaultInterruptible);\r\n\r\n pageScrollInstance._advancedInlineOffsetCalculation = options.advancedInlineOffsetCalculation ||\r\n (Util.isUndefinedOrNull(options.advancedInlineOffsetCalculation) &&\r\n PageScrollConfig.defaultAdvancedInlineOffsetCalculation);\r\n\r\n return pageScrollInstance;\r\n }\r\n\r\n /**\r\n * Create a PageScrollInstance representing a scroll animation on the documents body.\r\n *\r\n * @param document The document that contains the body to be scrolled and the scrollTarget elements\r\n * @param scrollTarget Where to scroll to. Can be a HTMLElement reference or a string like '#elementId'\r\n * @param verticalScrolling\r\n * @param namespace Optional namespace to group scroll animations logically\r\n * @returns {PageScrollInstance}\r\n *\r\n * @deprecated Use {@link newInstance(options: PageScrollOptions)}\r\n **/\r\n public static simpleDirectionInstance(document: Document,\r\n scrollTarget: PageScrollTarget,\r\n verticalScrolling: boolean,\r\n namespace?: string): PageScrollInstance {\r\n return PageScrollInstance.newInstance({\r\n document,\r\n scrollTarget,\r\n namespace,\r\n verticalScrolling,\r\n });\r\n }\r\n\r\n /**\r\n * Create a PageScrollInstance representing a scroll animation to the target element where the scrollingView\r\n * elements get scrolled (like a div container with fixed height, resulting in scrollbars in it).\r\n *\r\n * Make sure that the scrollTarget is located inside the scrollingView in the DOM hierarchy, otherwise the\r\n * scrollingView will be scrolled to an apparently arbitrary position.\r\n *\r\n * @param document The document that contains the body to be scrolled and the scrollTarget elements\r\n * @param scrollTarget Where to scroll to. Can be a HTMLElement reference or a string like '#elementId'\r\n * @param scrollingView The element that should be scrolled\r\n * @param namespace Optional namespace to group scroll animations logically\r\n * @returns {PageScrollInstance}\r\n *\r\n * @deprecated Use {@link newInstance(options: PageScrollOptions)}\r\n */\r\n public static simpleInlineInstance(document: Document,\r\n scrollTarget: PageScrollTarget,\r\n scrollingView: PageScrollingViews,\r\n namespace?: string): PageScrollInstance {\r\n return PageScrollInstance.newInstance({\r\n document,\r\n scrollTarget,\r\n scrollingViews: [scrollingView],\r\n verticalScrolling: true,\r\n namespace\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param document The document that contains the body to be scrolled and the scrollTarget elements\r\n * @param scrollTarget Where to scroll to. Can be a HTMLElement reference or a string like '#elementId'\r\n * @param scrollingView The element that should be scrolled\r\n * @param verticalScrolling whether the scrolling should be performed in vertical direction (true, default) or horizontal (false)\r\n * @param namespace Optional namespace to group scroll animations logically\r\n * @returns {PageScrollInstance}\r\n *\r\n * @deprecated Use {@link newInstance(options: PageScrollOptions)}\r\n */\r\n public static simpleInlineDirectionInstance(document: Document,\r\n scrollTarget: PageScrollTarget,\r\n scrollingView: PageScrollingViews,\r\n verticalScrolling: boolean,\r\n namespace?: string): PageScrollInstance {\r\n return PageScrollInstance.newInstance({\r\n document,\r\n scrollTarget,\r\n scrollingViews: [scrollingView],\r\n namespace,\r\n verticalScrolling,\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * @param document The document that contains the body to be scrolled and the scrollTarget elements\r\n * @param scrollTarget Where to scroll to. Can be a HTMLElement reference or a string like '#elementId'\r\n * @param scrollingViews The elements that should be scrolled. Null to use the default elements of document and body.\r\n * @param namespace Optional namespace to group scroll animations logically\r\n * @param verticalScrolling whether the scrolling should be performed in vertical direction (true, default) or horizontal (false)\r\n * @param pageScrollOffset The offset to be attached to the top of the target element or\r\n * null/undefined to use application default\r\n * @param pageScrollInterruptible Whether this scroll animation should be interruptible.\r\n * Null/undefined for application default\r\n * @param pageScrollEasingLogic Easing function to be used for manipulating the scroll position\r\n * over time. Null/undefined for application default\r\n * @param pageScrollDuration The duration in milliseconds the animation should last.\r\n * Null/undefined for application default\r\n * @param pageScrollFinishListener Listener to be called to notify other parts of the application\r\n * that the scroll animation has finished\r\n * @returns {PageScrollInstance}\r\n *\r\n * @deprecated Use {@link newInstance(options: PageScrollOptions)}\r\n */\r\n public static advancedInstance(document: Document,\r\n scrollTarget: PageScrollTarget,\r\n scrollingViews?: PageScrollingViews[],\r\n namespace?: string,\r\n verticalScrolling?: boolean,\r\n pageScrollOffset?: number,\r\n pageScrollInterruptible?: boolean,\r\n pageScrollEasingLogic?: EasingLogic,\r\n pageScrollDuration?: number,\r\n pageScrollFinishListener?: EventEmitter<boolean>): PageScrollInstance {\r\n return PageScrollInstance.newInstance({\r\n document,\r\n scrollTarget,\r\n scrollingViews,\r\n namespace,\r\n verticalScrolling,\r\n pageScrollOffset,\r\n pageScrollInterruptible,\r\n pageScrollEasingLogic,\r\n pageScrollDuration,\r\n pageScrollFinishListener\r\n });\r\n }\r\n\r\n /**\r\n * Private constructor, requires the properties assumed to be the bare minimum.\r\n * Use the factory methods to create instances:\r\n * {@link PageScrollInstance#simpleInstance}\r\n * {@link PageScrollInstance#newInstance}\r\n * @param namespace\r\n * @param document\r\n */\r\n constructor(namespace: string, document: Document) {\r\n this._namespace = namespace;\r\n this.document = document;\r\n }\r\n\r\n public getScrollPropertyValue(scrollingView: any): number {\r\n if (!this.verticalScrolling) {\r\n return scrollingView.scrollLeft;\r\n }\r\n return scrollingView.scrollTop;\r\n }\r\n\r\n /**\r\n * Extract the exact location of the scrollTarget element.\r\n *\r\n * Extract the scrollTarget HTMLElement from the given PageScrollTarget object. The latter one may be\r\n * a string like \"#heading2\", then this method returns the corresponding DOM element for that id.\r\n *\r\n * @returns {HTMLElement}\r\n */\r\n public extractScrollTargetPosition(): {top: number, left: number} {\r\n // let scrollTargetElement: HTMLElement;\r\n let scrollTargetElement: HTMLElement | any;\r\n if (typeof this._scrollTarget === 'string') {\r\n scrollTargetElement = this.document.getElementById((<string>this._scrollTarget).substr(1));\r\n } else {\r\n scrollTargetElement = <HTMLElement>this._scrollTarget;\r\n }\r\n\r\n if (scrollTargetElement === null || scrollTargetElement === undefined) {\r\n // Scroll target not found\r\n return {top: NaN, left: NaN};\r\n }\r\n\r\n if (this._isInlineScrolling) {\r\n const position = {top: scrollTargetElement.offsetTop, left: scrollTargetElement.offsetLeft};\r\n if (this._advancedInlineOffsetCalculation && this.scrollingViews.length === 1) {\r\n const accumulatedParentsPos = {top: 0, left: 0};\r\n // not named window to make sure we're not getting the global window variable by accident\r\n const theWindow = scrollTargetElement.ownerDocument.defaultView;\r\n let parentFound = false;\r\n\r\n // Start parent is the immediate parent\r\n // let parent = scrollTargetElement.parentElement;\r\n let parent: any = scrollTargetElement.parentElement;\r\n\r\n // Iterate upwards all parents\r\n while (!parentFound && !Util.isUndefinedOrNull(parent)) {\r\n if (theWindow.getComputedStyle(parent).getPropertyValue('position') === 'relative') {\r\n accumulatedParentsPos.top += parent.offsetTop;\r\n accumulatedParentsPos.left += parent.offsetLeft;\r\n }\r\n // Next iteration\r\n parent = parent.parentElement;\r\n parentFound = parent === this.scrollingViews[0];\r\n }\r\n if (parentFound) {\r\n // Only use the results if we found the parent, otherwise we accumulated too much anyway\r\n position.top += accumulatedParentsPos.top;\r\n position.left += accumulatedParentsPos.left;\r\n } else {\r\n if (PageScrollConfig._logLevel >= 2) {\r\n console.warn('Unable to find nested scrolling targets parent!');\r\n }\r\n }\r\n }\r\n return position;\r\n }\r\n\r\n return Util.extractElementPosition(this.document, scrollTargetElement);\r\n }\r\n\r\n /**\r\n * Get the top offset of the scroll animation.\r\n * This automatically takes the offset location of the scrolling container/scrolling view\r\n * into account (for nested/inline scrolling).\r\n *\r\n * @returns {number}\r\n */\r\n public getCurrentOffset(): number {\r\n return this._offset;\r\n }\r\n\r\n /**\r\n * Sets the \"scrollTop\" or \"scrollLeft\" property for all scrollingViews to the provided value\r\n * @param position\r\n * @return true if at least for one ScrollTopSource the scrollTop/scrollLeft value could be set and it kept the new value.\r\n * false if it failed for all ScrollingViews, meaning that we should stop the animation\r\n * (probably because we're at the end of the scrolling region)\r\n */\r\n public setScrollPosition(position: number): boolean {\r\n if (PageScrollConfig._logLevel >= 5) {\r\n console.warn('Scroll Position: ' + position);\r\n }\r\n // Set the new scrollTop/scrollLeft to all scrollingViews elements\r\n return this.scrollingViews.reduce((oneAlreadyWorked: any, scrollingView: any) => {\r\n const startScrollPropertyValue = this.getScrollPropertyValue(scrollingView);\r\n if (scrollingView && !Util.isUndefinedOrNull(startScrollPropertyValue)) {\r\n const scrollDistance = Math.abs(startScrollPropertyValue - position);\r\n\r\n // The movement we need to perform is less than 2px\r\n // This we consider a small movement which some browser may not perform when\r\n // changing the scrollTop/scrollLeft property\r\n // Thus in this cases we do not stop the scroll animation, although setting the\r\n // scrollTop/scrollLeft value \"fails\"\r\n const isSmallMovement = scrollDistance < PageScrollConfig._minScrollDistance;\r\n\r\n if (!this.verticalScrolling) {\r\n scrollingView.scrollLeft = position;\r\n } else {\r\n scrollingView.scrollTop = position;\r\n }\r\n\r\n // Return true of setting the new scrollTop/scrollLeft value worked\r\n // We consider that it worked if the new scrollTop/scrollLeft value is closer to the\r\n // desired scrollTop/scrollLeft than before (it might not be exactly the value we\r\n // set due to dpi or rounding irregularities)\r\n if (isSmallMovement || scrollDistance > Math.abs(this.getScrollPropertyValue(scrollingView) - position)) {\r\n return true;\r\n }\r\n }\r\n return oneAlreadyWorked;\r\n }, false);\r\n }\r\n\r\n /**\r\n * Trigger firing a animation finish event\r\n * @param value Whether the animation finished at the target (true) or got interrupted (false)\r\n */\r\n public fireEvent(value: boolean): void {\r\n if (this._pageScrollFinish) {\r\n this._pageScrollFinish.emit(value);\r\n }\r\n }\r\n\r\n /**\r\n * Attach the interrupt listeners to the PageScrollInstance body. The given interruptReporter\r\n * will be called if any of the attached events is fired.\r\n *\r\n * Possibly attached interruptListeners are automatically removed from the body before the new one will be attached.\r\n *\r\n * @param interruptReporter\r\n */\r\n public attachInterruptListeners(interruptReporter: InterruptReporter): void {\r\n if (this._interruptListenersAttached) {\r\n // Detach possibly existing listeners first\r\n this.detachInterruptListeners();\r\n }\r\n this._interruptListener = (event: Event): any => {\r\n interruptReporter.report(event, this);\r\n };\r\n PageScrollConfig._interruptEvents.forEach(\r\n (event: string) => this.document.body.addEventListener(event, this._interruptListener)\r\n );\r\n this._interruptListenersAttached = true;\r\n }\r\n\r\n /**\r\n * Remove event listeners from the body and stop listening for events that might be treated as \"animation\r\n * interrupt\" events.\r\n */\r\n public detachInterruptListeners(): void {\r\n PageScrollConfig._interruptEvents.forEach(\r\n (event: string) => this.document.body.removeEventListener(event, this._interruptListener)\r\n );\r\n this._interruptListenersAttached = false;\r\n }\r\n\r\n public get namespace(): string {\r\n return this._namespace;\r\n }\r\n\r\n get scrollTarget(): PageScrollTarget {\r\n return this._scrollTarget;\r\n }\r\n\r\n get verticalScrolling(): boolean {\r\n return this._verticalScrolling;\r\n }\r\n\r\n public get scrollingViews(): any[] {\r\n return this._scrollingViews;\r\n }\r\n\r\n public set startScrollPosition(value: number) {\r\n this._startScrollPosition = value;\r\n }\r\n\r\n public get startScrollPosition(): number {\r\n return this._startScrollPosition;\r\n }\r\n\r\n public set targetScrollPosition(value: number) {\r\n this._targetScrollPosition = value;\r\n }\r\n\r\n public get targetScrollPosition(): number {\r\n return this._targetScrollPosition;\r\n }\r\n\r\n public set distanceToScroll(value: number) {\r\n this._distanceToScroll = value;\r\n }\r\n\r\n public get distanceToScroll(): number {\r\n return this._distanceToScroll;\r\n }\r\n\r\n get executionDuration(): number {\r\n return this._executionDuration;\r\n }\r\n\r\n set executionDuration(value: number) {\r\n this._executionDuration = value;\r\n }\r\n\r\n public get duration(): number {\r\n return this._duration;\r\n }\r\n\r\n public get speed(): number {\r\n return this._speed;\r\n }\r\n\r\n public get easingLogic(): EasingLogic {\r\n return this._easingLogic;\r\n }\r\n\r\n public get interruptible(): boolean {\r\n return this._interruptible;\r\n }\r\n\r\n public set startTime(value: number) {\r\n this._startTime = value;\r\n }\r\n\r\n public get startTime(): number {\r\n return this._startTime;\r\n }\r\n\r\n public set endTime(value: number) {\r\n this._endTime = value;\r\n }\r\n\r\n public get endTime(): number {\r\n return this._endTime;\r\n }\r\n\r\n public set timer(value: any) {\r\n this._timer = value;\r\n }\r\n\r\n public get timer(): any {\r\n return this._timer;\r\n }\r\n\r\n public get interruptListenersAttached(): boolean {\r\n return this._interruptListenersAttached;\r\n }\r\n}\r\n\r\n/**\r\n* An Interface a listener should implement to be notified about possible interrupt events\r\n* that happened due to user interaction while a scroll animation takes place.\r\n*\r\n* The PageScrollService provides an implementation to a PageScrollInstance to be notified\r\n* about scroll animation interrupts and stop related animations.\r\n*/\r\nexport interface InterruptReporter {\r\n report: (event: Event, pageScrollInstance: PageScrollInstance) => any;\r\n}\r\n","/**\r\n* Created by sebastianfuss on 03.09.16.\r\n*/\r\n\r\nimport {CommonModule} from '@angular/common';\r\nimport {NgModule, ModuleWithProviders} from '@angular/core';\r\n\r\nimport {PageScrollService} from './mdb-page-scroll.service';\r\nimport {PageScrollDirective} from './mdb-page-scroll.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [PageScrollDirective],\r\n exports: [PageScrollDirective]\r\n})\r\nexport class MDBPageScrollModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: MDBPageScrollModule,\r\n providers: [\r\n {provide: PageScrollService, useClass: PageScrollService}\r\n ]\r\n };\r\n }\r\n}\r\n","import {Injectable, isDevMode} from '@angular/core';\r\n\r\nimport {PageScrollConfig} from './mdb-page-scroll.config';\r\nimport {PageScrollInstance, InterruptReporter} from './mdb-page-scroll.instance';\r\nimport {PageScrollUtilService as Util} from './mdb-page-scroll-util.service';\r\n\r\n@Injectable()\r\nexport class PageScrollService {\r\n\r\n private static instanceCounter = 0;\r\n\r\n private runningInstances: PageScrollInstance[] = [];\r\n\r\n private onInterrupted: InterruptReporter = {\r\n report: (event: Event, pageScrollInstance: PageScrollInstance): void => {\r\n if (!pageScrollInstance.interruptible) {\r\n // Non-interruptible anyway, so do not stop anything\r\n return;\r\n }\r\n\r\n let shouldStop = true;\r\n\r\n if (event.type === 'keyup') {\r\n // Only stop if specific keys have been pressed, for all others don't stop anything\r\n if (PageScrollConfig._interruptKeys.indexOf((<KeyboardEvent>event).keyCode) === -1) {\r\n // The pressed key is not in the list of interrupting keys\r\n shouldStop = false;\r\n }\r\n } else if (event.type === 'mousedown') {\r\n // For mousedown events we only stop the scroll animation of the mouse has\r\n // been clicked inside the scrolling container\r\n if (!pageScrollInstance.scrollingViews.some(scrollingView => scrollingView.contains(event.target))) {\r\n // Mouse clicked an element which is not inside any of the the scrolling containers\r\n shouldStop = false;\r\n }\r\n }\r\n\r\n if (shouldStop) {\r\n this.stopAll(pageScrollInstance.namespace);\r\n }\r\n }\r\n };\r\n\r\n private stopInternal(interrupted: boolean, pageScrollInstance: PageScrollInstance): boolean {\r\n const index: number = this.runningInstances.indexOf(pageScrollInstance);\r\n if (index >= 0) {\r\n this.runningInstances.splice(index, 1);\r\n }\r\n\r\n if (pageScrollInstance.interruptListenersAttached) {\r\n pageScrollInstance.detachInterruptListeners();\r\n }\r\n\r\n if (pageScrollInstance.timer) {\r\n // Clear/Stop the timer\r\n clearInterval(pageScrollInstance.timer);\r\n // Clear the reference to this timer\r\n pageScrollInstance.timer = undefined;\r\n pageScrollInstance.fireEvent(!interrupted);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Start a scroll animation. All properties of the animation are stored in the given {@link PageScrollInstance} object.\r\n *\r\n * This is the core functionality of the whole library.\r\n *\r\n * @param pageScrollInstance\r\n */\r\n public start(pageScrollInstance: PageScrollInstance): void {\r\n // Stop all possibly running scroll animations in the same namespace\r\n this.stopAll(pageScrollInstance.namespace);\r\n\r\n if (pageScrollInstance.scrollingViews === null || pageScrollInstance.scrollingViews.length === 0) {\r\n // No scrollingViews specified, thus we can't animate anything\r\n if (isDevMode()) {\r\n console.warn('No scrollingViews specified, this ng2-page-scroll does not know which DOM elements to scroll');\r\n }\r\n return;\r\n }\r\n\r\n let startScrollPositionFound = false;\r\n // Reset start scroll position to 0. If any of the scrollingViews has a different one, it will be extracted next\r\n pageScrollInstance.startScrollPosition = 0;\r\n\r\n // Get the start scroll position from the scrollingViews (e.g. if the user already scrolled down the content)\r\n pageScrollInstance.scrollingViews.forEach((scrollingView: any) => {\r\n if (Util.isUndefinedOrNull(scrollingView)) {\r\n return;\r\n }\r\n // Get the scrollTop or scrollLeft value of the first scrollingView that returns a value for its \"scrollTop\"\r\n // or \"scrollLeft\" property that is not undefined and unequal to 0\r\n\r\n const scrollPosition = pageScrollInstance.getScrollPropertyValue(scrollingView);\r\n if (!startScrollPositionFound && scrollPosition) {\r\n // We found a scrollingView that does not have scrollTop or scrollLeft 0\r\n\r\n // Return the scroll position value, as this will be our startScrollPosition\r\n pageScrollInstance.startScrollPosition = scrollPosition;\r\n startScrollPositionFound = true;\r\n }\r\n });\r\n\r\n const pageScrollOffset = pageScrollInstance.getCurrentOffset();\r\n\r\n // Calculate the target position that the scroll animation should go to\r\n\r\n const scrollTargetPosition = pageScrollInstance.extractScrollTargetPosition();\r\n pageScrollInstance.targetScrollPosition = Math.round(\r\n (pageScrollInstance.verticalScrolling ? scrollTargetPosition.top : scrollTargetPosition.left) - pageScrollOffset);\r\n\r\n // Calculate the distance we need to go in total\r\n pageScrollInstance.distanceToScroll = pageScrollInstance.targetScrollPosition - pageScrollInstance.startScrollPosition;\r\n\r\n if (isNaN(pageScrollInstance.distanceToScroll)) {\r\n // We weren't able to find the target position, maybe the element does not exist?\r\n\r\n if (isDevMode()) {\r\n // console.log('Scrolling not possible, as we can\\'t find the specified target');\r\n }\r\n pageScrollInstance.fireEvent(false);\r\n return;\r\n }\r\n\r\n // We're at the final destination already\r\n // OR we need to scroll down but are already at the end\r\n // OR we need to scroll up but are at the top already\r\n const allReadyAtDestination = Math.abs(pageScrollInstance.distanceToScroll) < PageScrollConfig._minScrollDistance;\r\n\r\n // Check how long we need to scroll if a speed option is given\r\n // Default executionDuration is the specified duration\r\n pageScrollInstance.executionDuration = pageScrollInstance.duration;\r\n // Maybe we need to pay attention to the speed option?\r\n if (!Util.isUndefinedOrNull(pageScrollInstance.speed) && Util.isUndefinedOrNull(pageScrollInstance.duration)) {\r\n // Speed option is set and no duration => calculate duration based on speed and scroll distance\r\n pageScrollInstance.executionDuration = pageScrollInstance.distanceToScroll / pageScrollInstance.speed * 1000;\r\n }\r\n\r\n // We should go there directly, as our \"animation\" would have one big step\r\n // only anyway and this way we save the interval stuff\r\n const tooShortInterval = pageScrollInstance.executionDuration <= PageScrollConfig._interval;\r\n\r\n if (allReadyAtDestination || tooShortInterval) {\r\n if (isDevMode()) {\r\n if (allReadyAtDestination) {\r\n // console.log('Scrolling not possible, as we can\\'t get any closer to the destination');\r\n } else {\r\n // console.log('Scroll duration shorter that interval length, jumping to target');\r\n }\r\n }\r\n pageScrollInstance.setScrollPosition(pageScrollInstance.targetScrollPosition);\r\n pageScrollInstance.fireEvent(true);\r\n return;\r\n }\r\n\r\n // Register the interrupt listeners if we want an interruptible scroll animation\r\n if (pageScrollInstance.interruptible ||\r\n (Util.isUndefinedOrNull(pageScrollInstance.interruptible) && PageScrollConfig.defaultInterruptible)) {\r\n pageScrollInstance.attachInterruptListeners(this.onInterrupted);\r\n }\r\n\r\n // Let's get started, get the start time...\r\n pageScrollInstance.startTime = new Date().getTime();\r\n // .. and calculate the end time (when we need to finish at last)\r\n pageScrollInstance.endTime = pageScrollInstance.startTime + pageScrollInstance.executionDuration;\r\n\r\n pageScrollInstance.timer = setInterval((_pageScrollInstance: PageScrollInstance) => {\r\n // Take the current time\r\n const currentTime: number = new Date().getTime();\r\n\r\n // Determine the new scroll position\r\n let newScrollPosition: number;\r\n let stopNow = false;\r\n if (_pageScrollInstance.endTime <= currentTime) {\r\n // We're over the time already, so go the targetScrollPosition (aka destination)\r\n newScrollPosition = _pageScrollInstance.targetScrollPosition;\r\n stopNow = true;\r\n } else {\r\n // Calculate the scroll position based on the current time using the easing function\r\n newScrollPosition = Math.round(_pageScrollInstance.easingLogic.ease(\r\n currentTime - _pageScrollInstance.startTime,\r\n _pageScrollInstance.startScrollPosition,\r\n _pageScrollInstance.distanceToScroll,\r\n _pageScrollInstance.executionDuration));\r\n }\r\n // Set the new scrollPosition to all scrollingViews elements\r\n if (!_pageScrollInstance.setScrollPosition(newScrollPosition)) {\r\n // Setting the new scrollTop/scrollLeft value failed for all ScrollingViews\r\n // early stop the scroll animation to save resources\r\n stopNow = true;\r\n }\r\n\r\n // At the end do the internal stop maintenance and fire the pageScrollFinish event\r\n // (otherwise the event might arrive at \"too early\")\r\n if (stopNow) {\r\n this.stopInternal(false, _pageScrollInstance);\r\n }\r\n\r\n }, PageScrollConfig._interval, pageScrollInstance);\r\n\r\n // Register the instance as running one\r\n this.runningInstances.push(pageScrollInstance);\r\n }\r\n\r\n /**\r\n * Stop all running scroll animations. Optionally limit to stop only the ones of specific namespace.\r\n *\r\n * @param namespace\r\n * @returns {boolean}\r\n */\r\n// public stopAll(namespace?: string): boolean {\r\n public stopAll(namespace?: string | any): boolean {\r\n if (this.runningInstances.length > 0) {\r\n let stoppedSome = false;\r\n\r\n for (let i = 0; i < this.runningInstances.length; ++i) {\r\n const pageScrollInstance = this.runningInstances[i];\r\n if (Util.isUndefinedOrNull(namespace) || namespace.length === 0 ||\r\n pageScrollInstance.namespace === namespace) {\r\n stoppedSome = true;\r\n this.stopInternal(true, pageScrollInstance);\r\n // Decrease the counter, as we removed an item from the array we iterate over\r\n i--;\r\n }\r\n }\r\n return stoppedSome;\r\n }\r\n return false;\r\n }\r\n\r\n public stop(pageScrollInstance: PageScrollInstance): boolean {\r\n return this.stopInternal(true, pageScrollInstance);\r\n }\r\n\r\n constructor() {\r\n if (PageScrollService.instanceCounter > 0 && isDevMode()) {\r\n console.warn('An instance of PageScrollService already exists, usually ' +\r\n 'including one provider should be enough, so double check.');\r\n }\r\n PageScrollService.instanceCounter++;\r\n }\r\n}\r\n","/**\r\n * returns coumputed style of given element\r\n * @param el\r\n * @param styleProp\r\n * @returns {any}\r\n */\r\n// export function computedStyle(element: string | HTMLElement, styleProp: string): string {\r\n export function computedStyle(element: string | HTMLElement, styleProp: string): string | any {\r\n let el: any;\r\n el = (typeof element === 'string') ? (<HTMLElement>document.querySelector(<string>element)) : element;\r\n\r\n let value: any;\r\n const defaultView: any = (el.ownerDocument || document).defaultView;\r\n\r\n // W3C standard way:\r\n if (defaultView && defaultView.getComputedStyle) {\r\n // sanitize property name to css notation\r\n // (hypen separated words eg. font-Size)\r\n styleProp = styleProp.replace(/([A-Z])/g, '-$1').toLowerCase();\r\n return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);\r\n } else if (el['currentStyle']) { // IE\r\n // sanitize property name to camelCase\r\n styleProp = styleProp.replace(/\\-(\\w)/g, function( letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = el['currentStyle'][styleProp];\r\n // convert other units to pixels on IE\r\n if (/^\\d+(em|pt|%|ex)?$/i.test(value)) {\r\n return (function(val: any) {\r\n const oldLeft = el.style.left, oldRsLeft = el['runtimeStyle'].left;\r\n el['runtimeStyle'].left = el['currentStyle'].left;\r\n el.style.left = val || 0;\r\n val = el.style['pixelLeft'] + 'px';\r\n el.style.left = oldLeft;\r\n el['runtimeStyle'].left = oldRsLeft;\r\n return val;\r\n })(value);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { MdbStickyDirective } from './sticky-content.directive';\r\nimport { MdbStickyModule } from './sticky-content.module';\r\nexport { MdbStickyDirective, MdbStickyModule };\r\n","'use strict';\r\n\r\nimport { Directive, ElementRef, Input, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { computedStyle } from './computed.style';\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { PLATFORM_ID, Inject } from '@angular/core';\r\n@Directive({\r\n selector: '[mdbSticky]'\r\n})\r\n\r\nexport class MdbStickyDirective implements OnDestroy, AfterViewInit {\r\n @Input() stickyAfter: string; // css selector to be sticky after\r\n isBrowser: boolean = false;\r\n\r\n // el: HTMLElement;\r\n el: HTMLElement | any;\r\n // parentEl: HTMLElement;\r\n parentEl: HTMLElement | any;\r\n // fillerEl: HTMLElement;\r\n fillerEl: HTMLElement | any;\r\n stickyOffsetTop = 0;\r\n\r\n diff: any;\r\n original: any;\r\n\r\n constructor(el: ElementRef, @Inject(PLATFORM_ID) platformId: string) {\r\n this.el = this.el = el.nativeElement;\r\n this.parentEl = this.el.parentElement;\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.el.style.boxSizing = 'border-box';\r\n\r\n if (this.stickyAfter) {\r\n const cetStickyAfterEl = document.querySelector(this.stickyAfter);\r\n if (cetStickyAfterEl) {\r\n this.stickyOffsetTop = cetStickyAfterEl.getBoundingClientRect().bottom;\r\n }\r\n }\r\n\r\n // set the parent relatively positioned\r\n const allowedPositions = ['absolute', 'fixed', 'relative'];\r\n const parentElPosition = computedStyle(this.parentEl, 'position');\r\n if (allowedPositions.indexOf(parentElPosition) === -1) { // inherit, initial, unset\r\n this.parentEl.style.position = 'relative';\r\n }\r\n\r\n this.diff = {\r\n top: this.el.offsetTop - this.parentEl.offsetTop,\r\n left: this.el.offsetLeft - this.parentEl.offsetLeft\r\n };\r\n\r\n if (this.isBrowser) {\r\n const elRect = this.el.getBoundingClientRect();\r\n this.el.getBoundingClientRect()\r\n this.original = {\r\n boundingClientRect: elRect,\r\n position: computedStyle(this.el, 'position'),\r\n float: computedStyle(this.el, 'float'),\r\n top: computedStyle(this.el, 'top'),\r\n bottom: computedStyle(this.el, 'bottom'),\r\n left: computedStyle(this.el, 'left'),\r\n width: computedStyle(this.el, 'width'),\r\n offsetTop: this.el.offsetTop,\r\n offsetLeft: this.el.offsetLeft,\r\n marginTop: parseInt(computedStyle(this.el, 'marginTop'), 10),\r\n marginBottom: parseInt(computedStyle(this.el, 'marginBottom'), 10),\r\n marginLeft: parseInt(computedStyle(this.el, 'marginLeft'), 10),\r\n marginRight: parseInt(computedStyle(this.el, 'marginLeft'), 10)\r\n };\r\n }\r\n\r\n\r\n this.attach();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.detach();\r\n }\r\n\r\n attach(): void {\r\n window.addEventListener('scroll', this.scrollHandler);\r\n window.addEventListener('resize', this.scrollHandler);\r\n }\r\n\r\n detach(): void {\r\n window.removeEventListener('scroll', this.scrollHandler);\r\n window.removeEventListener('resize', this.scrollHandler);\r\n }\r\n\r\n scrollHandler = () => {\r\n // let elRect: ClientRect = this.el.getBoundingClientRect();\r\n const parentRect: ClientRect = this.el.parentElement.getBoundingClientRect();\r\n const bodyRect: ClientRect = document.body.getBoundingClientRect();\r\n let dynProps;\r\n\r\n if (this.original.float === 'right') {\r\n const right = bodyRect.right - parentRect.right + this.original.marginRight;\r\n dynProps = { right: right + 'px' };\r\n } else if (this.original.float === 'left') {\r\n const left = parentRect.left - bodyRect.left + this.original.marginLeft;\r\n dynProps = { left: left + 'px' };\r\n } else {\r\n // console.log('parentRect..............', parentRect.width);\r\n dynProps = { width: parentRect.width + 'px' };\r\n }\r\n // console.log('dynProps', dynProps);\r\n\r\n if (this.original.marginTop + this.original.marginBottom +\r\n this.original.boundingClientRect.height + this.stickyOffsetTop >= parentRect.bottom) {\r\n /**\r\n * stikcy element reached to the bottom of the container\r\n */\r\n // console.log('case 1 (absolute)', parentRect.bottom, this.original.marginBottom);\r\n const floatAdjustment =\r\n this.original.float === 'right' ? { right: 0 } :\r\n this.original.float === 'left' ? { left: 0 } : {};\r\n Object.assign(this.el.style, {\r\n position: 'absolute',\r\n float: 'none',\r\n top: 'inherit',\r\n bottom: 0\r\n }, dynProps, floatAdjustment);\r\n } else if (parentRect.top * -1 + this.original.marginTop + this.stickyOffsetTop > this.original.offsetTop) {\r\n /**\r\n * stikcy element is in the middle of container\r\n */\r\n // console.log('case 2 (fixed)', parentRect.top * -1, this.original.marginTop, this.original.offsetTop);\r\n\r\n // if not floating, add an empty filler element, since the original elements becames 'fixed'\r\n if (this.original.float !== 'left' && this.original.float !== 'right' && !this.fillerEl) {\r\n this.fillerEl = document.createElement('div');\r\n this.fillerEl.style.height = this.el.offsetHeight + 'px';\r\n this.parentEl.insertBefore(this.fillerEl, this.el);\r\n }\r\n\r\n Object.assign(this.el.style, {\r\n position: 'fixed', // fixed is a lot smoother than absolute\r\n float: 'none',\r\n top: this.stickyOffsetTop + 'px',\r\n bottom: 'inherit'\r\n }, dynProps);\r\n } else {\r\n /**\r\n * stikcy element is in the original position\r\n */\r\n // console.log('case 3 (original)');\r\n if (this.fillerEl) {\r\n this.parentEl.removeChild(this.fillerEl); // IE11 does not work with el.remove()\r\n this.fillerEl = undefined;\r\n }\r\n Object.assign(this.el.style, {\r\n position: this.original.position,\r\n float: this.original.float,\r\n top: this.original.top,\r\n bottom: this.original.bottom,\r\n width: this.original.width,\r\n left: this.original.left\r\n }, dynProps);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MdbStickyDirective } from './sticky-content.directive';\r\n\r\nexport { MdbStickyDirective };\r\n\r\n@NgModule({\r\n imports: [ CommonModule, FormsModule ],\r\n declarations: [MdbStickyDirective],\r\n exports: [ MdbStickyDirective ]\r\n})\r\n\r\nexport class MdbStickyModule {}\r\n","export { NgTranscludeDirective } from './transclude.directive';\r\nexport { TabDirective } from './tab.directive';\r\nexport { TabHeadingDirective } from './tab-heading.directive';\r\nexport { TabsetComponent } from './tabset.component';\r\nexport { TabsetConfig } from './tabset.config';\r\nexport { TabsModule } from './tabset.module';\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\nimport { TabDirective } from './tab.directive';\r\n\r\n/** Should be used to mark <template> element as a template for tab heading */\r\n@Directive({selector: '[mdbTabHeading]'})\r\nexport class TabHeadingDirective {\r\n public templateRef: TemplateRef<any>;\r\n\r\n public constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\r\n tab.headingRef = templateRef;\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostBinding, Input, Output, TemplateRef, ElementRef, OnInit } from '@angular/core';\r\nimport { TabsetComponent } from './tabset.component';\r\n\r\n@Directive({selector: 'mdb-tab, [mdbTab]'})\r\nexport class TabDirective implements OnInit {\r\n /** tab header text */\r\n @Input() public heading: string;\r\n /** if true tab can not be activated */\r\n @Input() public disabled: boolean;\r\n /** if true tab can be removable, additional button will appear */\r\n @Input() public removable: boolean;\r\n /** if set, will be added to the tab's class atribute */\r\n @Input() public customClass: string;\r\n\r\n /** tab active state toggle */\r\n @HostBinding('class.active')\r\n @Input()\r\n public get active(): boolean {\r\n return this._active;\r\n }\r\n\r\n public set active(active: boolean) {\r\n\r\n if (this.disabled && active || !active) {\r\n if (!active) {\r\n this.removeClass(this.el.nativeElement, 'show');\r\n setTimeout(() => {\r\n this._active = active;\r\n this.deselect.emit(this);\r\n }, 150);\r\n }\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this._active = active;\r\n this.classAdd(this.el.nativeElement, 'show');\r\n }, 150);\r\n this.select.emit(this);\r\n\r\n this.tabset.tabs.forEach((mdbTab: TabDirective) => {\r\n if (mdbTab !== this) {\r\n mdbTab.active = false;\r\n }\r\n });\r\n\r\n }\r\n\r\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\r\n @Output() public select: EventEmitter<TabDirective> = new EventEmitter();\r\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\r\n @Output() public deselect: EventEmitter<TabDirective> = new EventEmitter();\r\n /** fired before tab will be removed */\r\n @Output() public removed: EventEmitter<TabDirective> = new EventEmitter();\r\n\r\n @HostBinding('class.tab-pane') public addClass = true;\r\n @HostBinding('class.fade') public test = true;\r\n\r\n\r\n public headingRef: TemplateRef<any>;\r\n public tabset: TabsetComponent;\r\n // public el: ElementRef = null;\r\n public el: ElementRef | any = null;\r\n\r\n protected _active: boolean;\r\n\r\n public constructor(tabset: TabsetComponent, el: ElementRef) {\r\n this.el = el;\r\n this.tabset = tabset;\r\n this.tabset.addTab(this);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.removable = this.removable;\r\n }\r\n\r\n protected hasClass(el: any, className: any) {\r\n if (el.classList) {\r\n return el.classList.contains(className);\r\n } else {\r\n return !!el.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'));\r\n }\r\n }\r\n\r\n protected classAdd(el: any, className: any) {\r\n if (el.classList) {\r\n el.classList.add(className);\r\n } else if (!this.hasClass(el, className)) {\r\n el.className += ' ' + className;\r\n };\r\n }\r\n\r\n protected removeClass(el: any, className: any) {\r\n if (el.classList) {\r\n el.classList.remove(className);\r\n } else if (this.hasClass(el, className)) {\r\n const reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n el.className = el.className.replace(reg, ' ');\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"<div class=\\\"container-fluid\\\"> \\r\\n <div class=\\\"row\\\">\\r\\n <div class=\\\"{{ listGetClass }}\\\">\\r\\n <ul class=\\\"nav {{ buttonClass }}\\\" [ngClass]=\\\"classMap\\\" (click)=\\\"$event.preventDefault()\\\">\\r\\n <li *ngFor=\\\"let tabz of tabs;let i = index\\\" [ngClass]=\\\"['nav-item', tabz.customClass || '']\\\" [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\" (click)=\\\"click($event, i)\\\">\\r\\n <a #tabEl href=\\\"javascript:void(0);\\\" class=\\\"nav-link waves-light\\\" [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\">\\r\\n <span [mdbNgTransclude]=\\\"tabz.headingRef\\\" [innerHTML]=\\\"tabz.heading\\\"></span>\\r\\n <span *ngIf=\\\"tabz.removable\\\">\\r\\n <span (click)=\\\"$event.preventDefault(); removeTab(tabz);\\\" class=\\\"glyphicon glyphicon-remove-circle\\\">\\r\\n </span>\\r\\n </span>\\r\\n </a>\\r\\n </li>\\r\\n </ul>\\r\\n </div>\\r\\n <div class=\\\"{{ tabsGetClass }}\\\">\\r\\n <div class=\\\"tab-content {{ contentClass }}\\\">\\r\\n <ng-content></ng-content>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"","import { Component, Output, EventEmitter, ViewChildren, HostBinding, Input, OnDestroy, OnInit, ElementRef } from '@angular/core';\r\n\r\nimport { TabDirective } from './tab.directive';\r\nimport { TabsetConfig } from './tabset.config';\r\n\r\nimport { WavesDirective } from './../../free/waves';\r\n// todo: add active event to tab\r\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\r\n@Component({\r\n selector: 'mdb-tabset',\r\n templateUrl: 'tabset.component.html',\r\n providers: [WavesDirective]\r\n})\r\n\r\nexport class TabsetComponent implements OnDestroy, OnInit {\r\n public tabs: TabDirective[] = [];\r\n public classMap: any = {};\r\n\r\n protected isDestroyed: boolean;\r\n protected _vertical: boolean;\r\n protected _justified: boolean;\r\n protected _type: string;\r\n\r\n public listGetClass: String;\r\n public tabsGetClass: String;\r\n\r\n @HostBinding('class.tab-container') public clazz = true;\r\n\r\n\r\n @Input() buttonClass: String;\r\n @Input() contentClass: String;\r\n /** if true tabs will be placed vertically */\r\n\r\n @ViewChildren('tabEl', {read: ElementRef}) tabEl: any;\r\n\r\n @Output()\r\n showBsTab: EventEmitter<any> = new EventEmitter<any>();\r\n @Output()\r\n shownBsTab: EventEmitter<any> = new EventEmitter<any>();\r\n @Output()\r\n hideBsTab: EventEmitter<any> = new EventEmitter<any>();\r\n @Output()\r\n hiddenBsTab: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @Input()\r\n public get vertical(): boolean {\r\n return this._vertical;\r\n }\r\n public set vertical(value: boolean) {\r\n this._vertical = value;\r\n this.setClassMap();\r\n }\r\n public setActiveTab(index: number): void {\r\n this.tabs[index - 1].active = true;\r\n }\r\n /** if true tabs fill the container and have a consistent width */\r\n @Input()\r\n public get justified(): boolean {\r\n return this._justified;\r\n }\r\n public set justified(value: boolean) {\r\n this._justified = value;\r\n this.setClassMap();\r\n }\r\n\r\n /** navigation context class: 'tabs' or 'pills' */\r\n @Input()\r\n public get type(): string {\r\n return this._type;\r\n }\r\n public set type(value: string) {\r\n this._type = value;\r\n this.setClassMap();\r\n }\r\n\r\n public constructor(config: TabsetConfig, public ripple: WavesDirective) {\r\n Object.assign(this, config);\r\n }\r\n\r\n public click(event: any, index: any) {\r\n const prev = this.tabEl.toArray()[this.getActive()];\r\n const clicked = this.tabEl.toArray()[index];\r\n\r\n this.hideBsTab.emit({\r\n target: clicked,\r\n relatedTarget: prev\r\n });\r\n this.showBsTab.emit({\r\n target: clicked,\r\n relatedTarget: prev\r\n });\r\n\r\n this.setActiveTab(index + 1);\r\n if (this.contentClass !== 'vertical') {\r\n this.ripple.el = clicked;\r\n this.ripple.click(event);\r\n }\r\n\r\n this.hiddenBsTab.emit({\r\n target: clicked,\r\n relatedTarget: prev\r\n });\r\n this.shownBsTab.emit({\r\n target: clicked,\r\n relatedTarget: prev\r\n });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.isDestroyed = true;\r\n }\r\n\r\n // public getActive() {\r\n public getActive(): any {\r\n const tabs = this.tabs.map((object, index) => {\r\n return {\r\n index: index,\r\n object: object\r\n };\r\n });\r\n\r\n for (const tab of tabs) {\r\n if (tab.object.active) {\r\n return tab.index;\r\n }\r\n }\r\n }\r\n\r\n public addTab(tab: TabDirective): void {\r\n this.tabs.push(tab);\r\n tab.active = this.tabs.length === 1 && tab.active !== false;\r\n }\r\n\r\n public removeTab(tab: TabDirective): void {\r\n const index = this.tabs.indexOf(tab);\r\n if (index === -1 || this.isDestroyed) {\r\n return;\r\n }\r\n // Select a new tab if the tab to be removed is selected and not destroyed\r\n if (tab.active && this.hasAvailableTabs(index)) {\r\n const newActiveIndex = this.getClosestTabIndex(index);\r\n this.tabs[newActiveIndex].active = true;\r\n }\r\n\r\n tab.removed.emit(tab);\r\n this.tabs.splice(index, 1);\r\n }\r\n\r\n protected getClosestTabIndex(index: number): number {\r\n const tabsLength = this.tabs.length;\r\n if (!tabsLength) {\r\n return -1;\r\n }\r\n\r\n for (let step = 1; step <= tabsLength; step += 1) {\r\n const prevIndex = index - step;\r\n const nextIndex = index + step;\r\n if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\r\n return prevIndex;\r\n }\r\n if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n protected hasAvailableTabs(index: number): boolean {\r\n const tabsLength = this.tabs.length;\r\n if (!tabsLength) {\r\n return false;\r\n }\r\n\r\n for (let i = 0; i < tabsLength; i += 1) {\r\n if (!this.tabs[i].disabled && i !== index) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n protected setClassMap(): void {\r\n this.classMap = {\r\n 'nav-stacked': this.vertical,\r\n 'nav-justified': this.justified,\r\n // [`nav-${this.type}`]: true\r\n };\r\n }\r\n\r\n public listGet() {\r\n if (this.vertical) {\r\n this.listGetClass = 'col-md-3';\r\n } else {\r\n this.listGetClass = 'col-md-12';\r\n }\r\n }\r\n\r\n public tabsGet() {\r\n if (this.vertical) {\r\n this.tabsGetClass = 'col-md-9';\r\n } else {\r\n this.tabsGetClass = 'col-md-12';\r\n }\r\n }\r\n ngOnInit() {\r\n this.listGet();\r\n this.tabsGet();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TabsetConfig {\r\n /** provides default navigation context class: 'tabs' or 'pills' */\r\n public type = 'tabs';\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\n\r\nimport { NgTranscludeDirective } from './transclude.directive';\r\nimport { TabHeadingDirective } from './tab-heading.directive';\r\nimport { TabDirective } from './tab.directive';\r\nimport { TabsetComponent } from './tabset.component';\r\nimport { TabsetConfig } from './tabset.config';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [NgTranscludeDirective, TabDirective, TabsetComponent, TabHeadingDirective],\r\n exports: [TabDirective, TabsetComponent, TabHeadingDirective, NgTranscludeDirective]\r\n})\r\nexport class TabsModule {\r\n public static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: TabsModule,\r\n providers: [TabsetConfig]\r\n };\r\n }\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[mdbNgTransclude]'\r\n})\r\nexport class NgTranscludeDirective {\r\n public viewRef: ViewContainerRef;\r\n\r\n protected _viewRef: ViewContainerRef;\r\n protected _ngTransclude: TemplateRef<any>;\r\n\r\n @Input()\r\n public set mdbNgTransclude(templateRef: TemplateRef<any>) {\r\n this._ngTransclude = templateRef;\r\n if (templateRef) {\r\n this.viewRef.createEmbeddedView(templateRef);\r\n }\r\n }\r\n\r\n public get mdbNgTransclude(): TemplateRef<any> {\r\n return this._ngTransclude;\r\n }\r\n\r\n public constructor(viewRef: ViewContainerRef) {\r\n this.viewRef = viewRef;\r\n }\r\n}\r\n","module.exports = \"<div *ngIf=\\\"values && values.length\\\" class=\\\"md-chip-list\\\" [ngClass]=\\\"focused\\\">\\r\\n <span *ngFor=\\\"let value of values\\\" class=\\\"md-chip\\\" selected > \\r\\n {{value}} <i class=\\\"close fa fa-times\\\" aria-hidden=\\\"true\\\" (click)=\\\"removeValue(value)\\\" ></i>\\r\\n </span>\\r\\n\\r\\n <span>\\r\\n <input [(ngModel)]=\\\"labelToAdd\\\" \\r\\n (keyup.enter)=\\\"addValue(box.value, $event);$event.preventDefault()\\\"\\r\\n (focus)=\\\"onFocus()\\\" \\r\\n (focusout)=\\\"focusOutFunction()\\\" \\r\\n #box />\\r\\n </span>\\r\\n</div>\\r\\n<div *ngIf=\\\"!values || !values.length\\\">\\r\\n <input class=\\\"md-chips-input\\\" placeholder=\\\"{{ placeholder }}\\\" #tbox \\r\\n (keyup.enter)=\\\"addValue(tbox.value, $event);$event.preventDefault()\\\"/>\\r\\n</div>\"","import { Component,\r\n \r\n Input,\r\n Output,\r\n EventEmitter,\r\n forwardRef} from '@angular/core';\r\n \r\n import { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n \r\n \r\n export const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MaterialChipsComponent),\r\n multi: true\r\n };\r\n \r\n @Component({\r\n selector: 'mdb-material-chips',\r\n templateUrl: 'chips.component.html',\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\r\n })\r\n \r\n export class MaterialChipsComponent {\r\n \r\n @Input('placeholder') public placeholder = '';\r\n \r\n addAreaDisplayed: boolean;\r\n isTagsFocused = false;\r\n values: string[];\r\n labelToAdd: string;\r\n focused: string;\r\n selected: string;\r\n noop: any;\r\n \r\n @Output() tagsfocusedChange = new EventEmitter();\r\n @Output() labelsChange: EventEmitter<string[]> = new EventEmitter<string[]>();\r\n \r\n @Input()\r\n get tagsfocused() {\r\n return this.isTagsFocused;\r\n }\r\n \r\n private onTouchedCallback: () => void = this.noop;\r\n private onChangeCallback: (_: any) => void = this.noop;\r\n registerOnChange(fn: any) { this.onChangeCallback = fn; }\r\n registerOnTouched(fn: any) { this.onTouchedCallback = fn; }\r\n constructor() {\r\n this.onTouchedCallback = this.onTouchedCallback === undefined ? this.noop : this.onTouchedCallback;\r\n this.onChangeCallback = this.onChangeCallback === undefined ? this.noop : this.onChangeCallback;\r\n }\r\n \r\n removeValue(value: string) {\r\n const index = this.values.indexOf(value, 0);\r\n if (index !== undefined) {\r\n this.values.splice(index, 1);\r\n this.labelsChange.emit(this.values);\r\n }\r\n }\r\n \r\n addValue(value: string) {\r\n if (!value || value.trim() === '') { return; }\r\n this.values.push(value);\r\n this.labelsChange.emit(this.values);\r\n this.labelToAdd = '';\r\n }\r\n \r\n writeValue(value: string[]) {\r\n if (value !== this.values) {\r\n this.values = value;\r\n }\r\n }\r\n \r\n onFocus() {\r\n this.focused = 'md-focused';\r\n this.isTagsFocused = true;\r\n this.tagsfocusedChange.emit(this.isTagsFocused);\r\n }\r\n focusOutFunction() {\r\n this.focused = '';\r\n this.isTagsFocused = false;\r\n this.tagsfocusedChange.emit(this.isTagsFocused);\r\n }\r\n }\r\n ","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {FormsModule} from '@angular/forms';\r\nimport {MaterialChipsComponent} from './chips.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [MaterialChipsComponent],\r\n exports: [MaterialChipsComponent]\r\n})\r\nexport class MaterialChipsModule {\r\n}\r\n","export * from './chips.component';\r\nexport * from './chips.module';\r\n","export * from './timepicker.component';\r\nexport * from './timepicker.module';\r\n","module.exports = \"<div>\\r\\n <div class=\\\"md-form\\\">\\r\\n <label class=\\\"active\\\">{{ label }}</label>\\r\\n <input [placeholder]=\\\"placeholder\\\" [value]=\\\"endHours\\\" type=\\\"text\\\" class=\\\"form-control timepicker\\\" (click)=\\\"openBtnClicked()\\\" [(ngModel)]=\\\"endHours\\\">\\r\\n </div>\\r\\n <div class=\\\"clockpicker picker\\\" [hidden]=\\\"!showClock\\\" [ngClass]=\\\"{'picker--opened': showClock, 'darktheme': darktheme}\\\">\\r\\n <div class=\\\"picker__holder\\\">\\r\\n <div class=\\\"picker__frame\\\">\\r\\n <div class=\\\"picker__wrap\\\">\\r\\n <div class=\\\"picker__box\\\">\\r\\n <div class=\\\"picker__date-display\\\">\\r\\n <div class=\\\"clockpicker-display\\\">\\r\\n <div class=\\\"clockpicker-display-column\\\">\\r\\n <span class=\\\"clockpicker-span-hours text-primary\\\" [ngClass]=\\\"{'text-primary': showHours}\\\" (click)=\\\"showHoursClock()\\\">\\r\\n {{ selectedHours.h }}</span>:<span class=\\\"clockpicker-span-minutes\\\" [ngClass]=\\\"{'text-primary': !showHours}\\\"\\r\\n (click)=\\\"showMinutesClock()\\\">{{selectedHours.m }}</span>\\r\\n </div>\\r\\n <div class=\\\"clockpicker-display-column clockpicker-display-am-pm\\\" *ngIf=\\\"twelvehour\\\">\\r\\n <div class=\\\"clockpicker-span-am-pm\\\">{{ selectedHours.ampm }}</div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"picker__calendar-container\\\">\\r\\n <div class=\\\"clockpicker-plate\\\" #plate>\\r\\n <div class=\\\"clockpicker-canvas\\\">\\r\\n <svg class=\\\"clockpicker-svg\\\" width=\\\"270\\\" height=\\\"270\\\" #svg>\\r\\n <g transform=\\\"translate(135,135)\\\" #g>\\r\\n <line x1=\\\"0\\\" y1=\\\"0\\\" x2=\\\"77.94228634059948\\\" y2=\\\"-45.00000000000001\\\" #hand></line>\\r\\n <circle class=\\\"clockpicker-canvas-fg\\\" r=\\\"5\\\" cx=\\\"95.26279441628824\\\" cy=\\\"-55.000000000000014\\\" #fg></circle>\\r\\n <circle class=\\\"clockpicker-canvas-bg\\\" r=\\\"20\\\" cx=\\\"95.26279441628824\\\" cy=\\\"-55.000000000000014\\\" #bg></circle>\\r\\n <circle class=\\\"clockpicker-canvas-bearing\\\" cx=\\\"0\\\" cy=\\\"0\\\" r=\\\"2\\\" #bearing></circle>\\r\\n </g>\\r\\n </svg>\\r\\n </div>\\r\\n <div class=\\\"clockpicker-dial clockpicker-hours\\\" #hoursPlate [ngClass]=\\\"{'clockpicker-dial-out': !showHours}\\\" [ngStyle]=\\\"{'visibility': !showHours ? 'hidden' : 'visible'}\\\">\\r\\n <div *ngFor=\\\"let tick of hoursTicks\\\" class=\\\"clockpicker-tick\\\" style=\\\"font-size: 140%;\\\" [ngStyle]=\\\"{'left': tick.left+'px', 'top': tick.top+'px'}\\\"\\r\\n id=\\\"{{ tick.hour }}\\\">\\r\\n {{ tick.hour }}\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"clockpicker-dial clockpicker-minutes\\\" #minutesPlate [ngClass]=\\\"{'clockpicker-dial-out': showHours}\\\" [ngStyle]=\\\"{'visibility': showHours ? 'hidden' : 'visible'}\\\">\\r\\n <div *ngFor=\\\"let tick of minutesTicks\\\" class=\\\"clockpicker-tick\\\" style=\\\"font-size: 120%;\\\" [ngStyle]=\\\"{'left': tick.left+'px', 'top': tick.top+'px'}\\\">\\r\\n {{ tick.min }}\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"clockpicker-am-pm-block\\\" *ngIf=\\\"twelvehour\\\">\\r\\n <button type=\\\"button\\\" class=\\\"btn-floating btn-flat clockpicker-button am-button\\\" [ngClass]=\\\"{'active': selectedHours.ampm=='AM'}\\\"\\r\\n (click)=\\\"setAmPm('AM')\\\">\\r\\n AM\\r\\n </button>\\r\\n <button type=\\\"button\\\" class=\\\"btn-floating btn-flat clockpicker-button pm-button\\\" [ngClass]=\\\"{'active': selectedHours.ampm=='PM'}\\\"\\r\\n (click)=\\\"setAmPm('PM')\\\">\\r\\n PM\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"picker__footer\\\">\\r\\n <button type=\\\"button\\\" *ngIf=\\\"buttonLabel\\\" class=\\\"btn-flat clockpicker-button\\\" (click)=\\\"closeBtnClicked()\\\">\\r\\n {{buttonLabel}}\\r\\n </button>\\r\\n <button type=\\\"button\\\" *ngIf=\\\"!buttonLabel\\\" class=\\\"btn-flat clockpicker-button\\\" (click)=\\\"closeBtnClicked()\\\">\\r\\n Done\\r\\n </button>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n </div>\\r\\n</div>\"","import { Component, ViewChild, Input, ElementRef, Renderer2, OnInit, AfterViewInit, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n\r\nexport const TIME_PIRCKER_VALUE_ACCESSOT: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ClockPickerComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'mdb-time-picker',\r\n templateUrl: './timepicker.component.html',\r\n providers: [TIME_PIRCKER_VALUE_ACCESSOT]\r\n})\r\n\r\nexport class ClockPickerComponent implements OnInit, AfterViewInit, ControlValueAccessor {\r\n @ViewChild('hoursPlate') public hoursPlate: ElementRef;\r\n @ViewChild('minutesPlate') public minutesPlate: ElementRef;\r\n\r\n @ViewChild('plate') public plate: ElementRef;\r\n @ViewChild('svg') public svg: ElementRef;\r\n @ViewChild('g') public g: ElementRef;\r\n @ViewChild('hand') public hand: ElementRef;\r\n @ViewChild('fg') public fg: ElementRef;\r\n @ViewChild('bg') public bg: ElementRef;\r\n @ViewChild('bearing') public bearing: ElementRef;\r\n\r\n @Input('twelvehour') public twelvehour = false;\r\n @Input('darktheme') public darktheme = false;\r\n @Input('placeholder') public placeholder: String = '';\r\n @Input('label') public label = '';\r\n @Input('duration') public duration = 300;\r\n @Input('showClock') public showClock = false;\r\n @Input('buttonlabel') public buttonLabel: string;\r\n\r\n touchDevice = ('ontouchstart' in document.documentElement);\r\n showHours = false;\r\n\r\n dialRadius = 135;\r\n outerRadius = 110;\r\n innerRadius = 80;\r\n tickRadius = 20;\r\n diameter = this.dialRadius * 2;\r\n\r\n hoursTicks: any = [];\r\n minutesTicks: any = [];\r\n selectedHours: any = { 'h': '12', 'm': '00', 'ampm': 'AM' };\r\n endHours = '';\r\n\r\n\r\n touchSupported: any = 'ontouchstart' in window;\r\n mousedownEvent: any = 'mousedown' + (this.touchSupported ? ' touchstart' : '');\r\n mousemoveEvent: any = 'mousemove' + (this.touchSupported ? ' touchmove' : '');\r\n mouseupEvent: any = 'mouseup' + (this.touchSupported ? ' touchend' : '');\r\n\r\n constructor(public elem: ElementRef, public renderer: Renderer2) {\r\n renderer.listen(this.elem.nativeElement, 'click', (event: any) => {\r\n\r\n if (this.showClock &&\r\n event.target &&\r\n this.elem.nativeElement !== event.target &&\r\n !this.elem.nativeElement.contains(event.target)\r\n ) {\r\n this.showClock = false;\r\n }\r\n if (event.target.classList.contains('picker__holder')) {\r\n this.showClock = false;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.generateTick();\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderer.listen(this.elem.nativeElement.querySelector('.clockpicker-plate'), 'mousedown', (event: any) => {\r\n this.mousedown(event, false);\r\n });\r\n\r\n\r\n\r\n }\r\n checkDraw() {\r\n let value;\r\n const isHours = this.showHours;\r\n if (isHours) {\r\n value = parseInt(this.selectedHours.h, 0);\r\n } else {\r\n value = parseInt(this.selectedHours.m, 0);\r\n }\r\n\r\n\r\n const unit = Math.PI / (isHours ? 6 : 30),\r\n radian = value * unit,\r\n radius = isHours && value > 0 && value < 13 ? this.innerRadius : this.outerRadius,\r\n xd = Math.sin(radian) * radius,\r\n yd = - Math.cos(radian) * radius;\r\n this.setHand(xd, yd, false);\r\n\r\n }\r\n\r\n mousedown(e: any, space: any) {\r\n const offset = this.plate.nativeElement.getBoundingClientRect(),\r\n isTouch = /^touch/.test(e.type),\r\n x0 = offset.left + this.dialRadius,\r\n y0 = offset.top + this.dialRadius,\r\n dx = (isTouch ? e.originalEvent.touches[0] : e).clientX - x0,\r\n dy = (isTouch ? e.originalEvent.touches[0] : e).clientY - y0,\r\n z = Math.sqrt(dx * dx + dy * dy);\r\n let moved = false;\r\n\r\n if (space && (z < this.outerRadius - this.tickRadius || z > this.outerRadius + this.tickRadius)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n\r\n if (this.showHours) {\r\n this.setHand(dx, dy, true);\r\n } else {\r\n this.setHand(dx, dy, false);\r\n }\r\n\r\n const mousemoveEventMethod = (event: any) => {\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n const x = event.clientX - x0,\r\n y = event.clientY - y0;\r\n if (!moved && x === dx && y === dy) {\r\n return;\r\n }\r\n moved = true;\r\n\r\n this.setHand(x, y, false);\r\n };\r\n\r\n const mouseupEventMethod = (event: any) => {\r\n document.removeEventListener(this.mousemoveEvent, mousemoveEventMethod);\r\n e.preventDefault();\r\n const x = event.clientX - x0,\r\n y = event.clientX - y0;\r\n if ((space || moved) && x === dx && y === dy) {\r\n this.setHand(x, y, false);\r\n }\r\n this.showMinutesClock();\r\n document.removeEventListener(this.mouseupEvent, mouseupEventMethod);\r\n };\r\n document.addEventListener(this.mousemoveEvent, mousemoveEventMethod);\r\n document.addEventListener('mouseup', mouseupEventMethod);\r\n }\r\n hideKeyboard() {\r\n // this set timeout needed for case when hideKeyborad\r\n // is called inside of 'onfocus' event handler\r\n setTimeout(function () {\r\n\r\n // creating temp field\r\n const field = document.createElement('input');\r\n field.setAttribute('type', 'text');\r\n // hiding temp field from peoples eyes\r\n // -webkit-user-modify is nessesary for Android 4.x\r\n /*tslint:disable:max-line-length*/\r\n field.setAttribute('style', 'position:absolute; top: 0px; opacity: 0; -webkit-user-modify: read-write-plaintext-only; left:0px;');\r\n document.body.appendChild(field);\r\n\r\n // adding onfocus event handler for out temp field\r\n field.onfocus = function () {\r\n // this timeout of 200ms is nessasary for Android 2.3.x\r\n setTimeout(function () {\r\n\r\n field.setAttribute('style', 'display:none;');\r\n setTimeout(function () {\r\n document.body.removeChild(field);\r\n document.body.focus();\r\n }, 14);\r\n\r\n }, 20);\r\n };\r\n // focusing it\r\n field.focus();\r\n\r\n }, 50);\r\n }\r\n\r\n openBtnClicked(): void {\r\n this.showClock = true;\r\n this.showHours = true;\r\n this.checkDraw();\r\n this.hideKeyboard();\r\n }\r\n\r\n closeBtnClicked() {\r\n const h = this.selectedHours.h;\r\n const m = this.selectedHours.m;\r\n const ampm = this.selectedHours.ampm;\r\n\r\n if (this.twelvehour) {\r\n this.endHours = h + ':' + m + ampm;\r\n } else {\r\n this.endHours = h + ':' + m;\r\n }\r\n this.onChangeCb(this.endHours);\r\n this.onTouchedCb();\r\n this.showClock = false;\r\n }\r\n\r\n setHour(hour: String) {\r\n this.selectedHours.h = hour;\r\n }\r\n\r\n setMinute(min: String) {\r\n // event.stopPropagation();\r\n this.selectedHours.m = min;\r\n }\r\n\r\n setAmPm(ampm: String) {\r\n // event.stopPropagation();\r\n this.selectedHours.ampm = ampm;\r\n }\r\n\r\n showHoursClock() {\r\n this.showHours = true;\r\n this.checkDraw();\r\n }\r\n\r\n showMinutesClock() {\r\n this.showHours = false;\r\n this.checkDraw();\r\n }\r\n\r\n\r\n generateTick() {\r\n if (this.twelvehour) {\r\n for (let i = 1; i < 13; i++) {\r\n const radian = i / 6 * Math.PI;\r\n const radius = this.outerRadius;\r\n\r\n const tick = {\r\n 'hour': i,\r\n 'left': this.dialRadius + Math.sin(radian) * radius - this.tickRadius,\r\n 'top': this.dialRadius - Math.cos(radian) * radius - this.tickRadius,\r\n };\r\n this.hoursTicks.push(tick);\r\n }\r\n } else {\r\n for (let i = 0; i < 24; i++) {\r\n const radian = i / 6 * Math.PI;\r\n const inner = i > 0 && i < 13;\r\n const radius = inner ? this.innerRadius : this.outerRadius;\r\n let h;\r\n\r\n if (i === 0) {\r\n h = '0' + i.toString();\r\n } else {\r\n h = i;\r\n }\r\n\r\n const tick = {\r\n 'hour': h,\r\n 'left': this.dialRadius + Math.sin(radian) * radius - this.tickRadius,\r\n 'top': this.dialRadius - Math.cos(radian) * radius - this.tickRadius,\r\n };\r\n this.hoursTicks.push(tick);\r\n }\r\n }\r\n\r\n for (let i = 0; i < 60; i += 5) {\r\n const radian = i / 30 * Math.PI;\r\n let min = i.toString();\r\n if (i < 10) {\r\n min = '0' + i.toString();\r\n }\r\n const tick = {\r\n 'min': min,\r\n 'left': this.dialRadius + Math.sin(radian) * this.outerRadius - this.tickRadius,\r\n 'top': this.dialRadius - Math.cos(radian) * this.outerRadius - this.tickRadius,\r\n };\r\n this.minutesTicks.push(tick);\r\n }\r\n\r\n }\r\n\r\n setHand(x: any, y: any, roundBy5: any) {\r\n let radian = Math.atan2(x, - y);\r\n const isHours = this.showHours;\r\n const unit = Math.PI / (isHours || roundBy5 ? 6 : 30);\r\n const z = Math.sqrt(x * x + y * y);\r\n const inner = isHours && z < (this.outerRadius + this.innerRadius) / 2;\r\n let radius = inner ? this.innerRadius : this.outerRadius;\r\n let value;\r\n\r\n\r\n if (this.showHours) {\r\n value = parseInt(this.selectedHours.h, 0);\r\n } else {\r\n value = parseInt(this.selectedHours.m, 0);\r\n }\r\n\r\n if (this.twelvehour) {\r\n radius = this.outerRadius;\r\n }\r\n\r\n if (radian < 0) {\r\n radian = Math.PI * 2 + radian;\r\n }\r\n\r\n value = Math.round(radian / unit);\r\n radian = value * unit;\r\n\r\n if (this.twelvehour) {\r\n if (isHours) {\r\n if (value === 0) {\r\n value = 12;\r\n }\r\n } else {\r\n if (roundBy5) {\r\n value *= 5;\r\n }\r\n if (value === 60) {\r\n value = 0;\r\n }\r\n }\r\n } else {\r\n if (isHours) {\r\n value = !inner ? value + 12 : value;\r\n value = value === 24 ? 0 : value;\r\n value = (inner && value === 0) ? 12 : value;\r\n value = (!inner && value === 12) ? 0 : value;\r\n } else {\r\n if (roundBy5) {\r\n value *= 5;\r\n }\r\n if (value === 60) {\r\n value = 0;\r\n }\r\n }\r\n }\r\n\r\n if (isHours) {\r\n this.fg.nativeElement.setAttribute('class', 'clockpicker-canvas-fg');\r\n } else {\r\n if (value % 5 === 0) {\r\n this.fg.nativeElement.setAttribute('class', 'clockpicker-canvas-fg');\r\n } else {\r\n this.fg.nativeElement.setAttribute('class', 'clockpicker-canvas-fg active');\r\n }\r\n }\r\n\r\n const cx1 = Math.sin(radian) * (radius - this.tickRadius),\r\n cy1 = - Math.cos(radian) * (radius - this.tickRadius),\r\n cx2 = Math.sin(radian) * radius,\r\n cy2 = - Math.cos(radian) * radius;\r\n\r\n this.hand.nativeElement.setAttribute('x2', cx1);\r\n this.hand.nativeElement.setAttribute('y2', cy1);\r\n this.bg.nativeElement.setAttribute('cx', cx2);\r\n this.bg.nativeElement.setAttribute('cy', cy2);\r\n this.fg.nativeElement.setAttribute('cx', cx2);\r\n this.fg.nativeElement.setAttribute('cy', cy2);\r\n\r\n if (this.showHours) {\r\n if (value < 10) {\r\n this.setHour('0' + value.toString());\r\n } else {\r\n this.setHour(value.toString());\r\n }\r\n } else {\r\n if (value < 10) {\r\n this.setMinute('0' + value.toString());\r\n } else {\r\n this.setMinute(value.toString());\r\n }\r\n }\r\n }\r\n\r\n offset(obj: any) {\r\n let left = 0,\r\n top = 0;\r\n\r\n if (obj.offsetParent) {\r\n do {\r\n left += obj.offsetLeft;\r\n top += obj.offsetTop;\r\n } while (obj = obj.offsetParent);\r\n }\r\n return { left, top };\r\n }\r\n\r\n\r\n\r\n onChangeCb: (_: any) => void = () => { };\r\n onTouchedCb: () => void = () => { };\r\n\r\n writeValue(value: any): void {\r\n this.endHours = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCb = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCb = fn;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgModule } from '@angular/core';\r\nimport { ClockPickerComponent } from './timepicker.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule],\r\n declarations: [ClockPickerComponent],\r\n exports: [ClockPickerComponent]\r\n})\r\nexport class TimePickerModule {\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n\r\n\r\n"],"sourceRoot":""}