ngx-bootstrap 3.0.1 → 3.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +298 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +24 -8
- package/accordion/accordion-group.component.d.ts +3 -3
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js +264 -0
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -0
- package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +2 -0
- package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -0
- package/accordion/esm2015/accordion-group.component.js +140 -0
- package/accordion/esm2015/accordion.component.js +88 -0
- package/accordion/esm2015/accordion.config.js +35 -0
- package/accordion/esm2015/accordion.module.js +36 -0
- package/accordion/esm2015/ngx-bootstrap-accordion.js +10 -0
- package/accordion/esm2015/public_api.js +10 -0
- package/accordion/esm5/accordion-group.component.js +157 -0
- package/accordion/esm5/accordion.component.js +99 -0
- package/accordion/esm5/accordion.config.js +37 -0
- package/accordion/esm5/accordion.module.js +43 -0
- package/accordion/esm5/ngx-bootstrap-accordion.js +10 -0
- package/accordion/esm5/public_api.js +10 -0
- package/accordion/fesm2015/ngx-bootstrap-accordion.js +222 -0
- package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -0
- package/accordion/fesm5/ngx-bootstrap-accordion.js +255 -0
- package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -0
- package/accordion/ngx-bootstrap-accordion.d.ts +4 -0
- package/accordion/ngx-bootstrap-accordion.metadata.json +1 -0
- package/accordion/package.json +19 -0
- package/accordion/{index.d.ts → public_api.d.ts} +0 -0
- package/alert/bundles/ngx-bootstrap-alert.umd.js +209 -0
- package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -0
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js +2 -0
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -0
- package/alert/esm2015/alert.component.js +145 -0
- package/alert/esm2015/alert.config.js +50 -0
- package/alert/esm2015/alert.module.js +35 -0
- package/alert/esm2015/ngx-bootstrap-alert.js +10 -0
- package/alert/esm2015/public_api.js +9 -0
- package/alert/esm5/alert.component.js +157 -0
- package/alert/esm5/alert.config.js +52 -0
- package/alert/esm5/alert.module.js +42 -0
- package/alert/esm5/ngx-bootstrap-alert.js +10 -0
- package/alert/esm5/public_api.js +9 -0
- package/alert/fesm2015/ngx-bootstrap-alert.js +153 -0
- package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -0
- package/alert/fesm5/ngx-bootstrap-alert.js +171 -0
- package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -0
- package/alert/ngx-bootstrap-alert.d.ts +4 -0
- package/alert/ngx-bootstrap-alert.metadata.json +1 -0
- package/alert/package.json +19 -0
- package/alert/{index.d.ts → public_api.d.ts} +0 -0
- package/bundles/ngx-bootstrap.es2015.js +20178 -12836
- package/bundles/ngx-bootstrap.es2015.js.map +1 -1
- package/bundles/ngx-bootstrap.umd.js +179 -21213
- package/bundles/ngx-bootstrap.umd.js.map +1 -1
- package/bundles/ngx-bootstrap.umd.min.js +1 -64
- package/bundles/ngx-bootstrap.umd.min.js.map +1 -1
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js +479 -0
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -0
- package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +2 -0
- package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -0
- package/buttons/button-checkbox.directive.d.ts +10 -10
- package/buttons/button-radio-group.directive.d.ts +9 -10
- package/buttons/button-radio.directive.d.ts +12 -12
- package/buttons/esm2015/button-checkbox.directive.js +146 -0
- package/buttons/esm2015/button-radio-group.directive.js +90 -0
- package/buttons/esm2015/button-radio.directive.js +200 -0
- package/buttons/esm2015/buttons.module.js +33 -0
- package/buttons/esm2015/ngx-bootstrap-buttons.js +13 -0
- package/buttons/esm2015/public_api.js +10 -0
- package/buttons/esm5/button-checkbox.directive.js +184 -0
- package/buttons/esm5/button-radio-group.directive.js +105 -0
- package/buttons/esm5/button-radio.directive.js +239 -0
- package/buttons/esm5/buttons.module.js +40 -0
- package/buttons/esm5/ngx-bootstrap-buttons.js +13 -0
- package/buttons/esm5/public_api.js +10 -0
- package/buttons/fesm2015/ngx-bootstrap-buttons.js +376 -0
- package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -0
- package/buttons/fesm5/ngx-bootstrap-buttons.js +471 -0
- package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -0
- package/buttons/ngx-bootstrap-buttons.d.ts +7 -0
- package/buttons/ngx-bootstrap-buttons.metadata.json +1 -0
- package/buttons/package.json +19 -0
- package/buttons/{index.d.ts → public_api.d.ts} +0 -0
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js +567 -0
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -0
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +2 -0
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -0
- package/carousel/carousel.component.d.ts +3 -7
- package/carousel/esm2015/carousel.component.js +372 -0
- package/carousel/esm2015/carousel.config.js +59 -0
- package/carousel/esm2015/carousel.module.js +36 -0
- package/carousel/esm2015/ngx-bootstrap-carousel.js +10 -0
- package/carousel/esm2015/public_api.js +10 -0
- package/carousel/esm2015/slide.component.js +81 -0
- package/carousel/esm5/carousel.component.js +495 -0
- package/carousel/esm5/carousel.config.js +61 -0
- package/carousel/esm5/carousel.module.js +43 -0
- package/carousel/esm5/ngx-bootstrap-carousel.js +10 -0
- package/carousel/esm5/public_api.js +10 -0
- package/carousel/esm5/slide.component.js +86 -0
- package/carousel/fesm2015/ngx-bootstrap-carousel.js +423 -0
- package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -0
- package/carousel/fesm5/ngx-bootstrap-carousel.js +556 -0
- package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -0
- package/carousel/ngx-bootstrap-carousel.d.ts +4 -0
- package/carousel/ngx-bootstrap-carousel.metadata.json +1 -0
- package/carousel/package.json +19 -0
- package/carousel/{index.d.ts → public_api.d.ts} +0 -0
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js +8428 -0
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -0
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +2 -0
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -0
- package/chronos/esm2015/create/check-overflow.js +39 -0
- package/chronos/esm2015/create/clone.js +13 -0
- package/chronos/esm2015/create/date-from-array.js +38 -0
- package/chronos/esm2015/create/from-anything.js +131 -0
- package/chronos/esm2015/create/from-array.js +149 -0
- package/chronos/esm2015/create/from-object.js +25 -0
- package/chronos/esm2015/create/from-string-and-array.js +46 -0
- package/chronos/esm2015/create/from-string-and-format.js +120 -0
- package/chronos/esm2015/create/from-string.js +268 -0
- package/chronos/esm2015/create/local.js +23 -0
- package/chronos/esm2015/create/parsing-flags.js +38 -0
- package/chronos/esm2015/create/parsing.types.js +146 -0
- package/chronos/esm2015/create/valid.js +60 -0
- package/chronos/esm2015/duration/bubble.js +64 -0
- package/chronos/esm2015/duration/constructor.js +182 -0
- package/chronos/esm2015/duration/create.js +141 -0
- package/chronos/esm2015/duration/humanize.js +109 -0
- package/chronos/esm2015/duration/valid.js +54 -0
- package/chronos/esm2015/format/format.js +67 -0
- package/chronos/esm2015/format.js +71 -0
- package/chronos/esm2015/i18n/ar.js +155 -0
- package/chronos/esm2015/i18n/bg.js +101 -0
- package/chronos/esm2015/i18n/cs.js +215 -0
- package/chronos/esm2015/i18n/da.js +56 -0
- package/chronos/esm2015/i18n/de.js +80 -0
- package/chronos/esm2015/i18n/en-gb.js +72 -0
- package/chronos/esm2015/i18n/es-do.js +118 -0
- package/chronos/esm2015/i18n/es-us.js +111 -0
- package/chronos/esm2015/i18n/es.js +117 -0
- package/chronos/esm2015/i18n/fi.js +119 -0
- package/chronos/esm2015/i18n/fr.js +87 -0
- package/chronos/esm2015/i18n/gl.js +117 -0
- package/chronos/esm2015/i18n/he.js +129 -0
- package/chronos/esm2015/i18n/hi.js +150 -0
- package/chronos/esm2015/i18n/hu.js +140 -0
- package/chronos/esm2015/i18n/id.js +100 -0
- package/chronos/esm2015/i18n/it.js +79 -0
- package/chronos/esm2015/i18n/ja.js +95 -0
- package/chronos/esm2015/i18n/ko.js +82 -0
- package/chronos/esm2015/i18n/lt.js +155 -0
- package/chronos/esm2015/i18n/mn.js +108 -0
- package/chronos/esm2015/i18n/nb.js +59 -0
- package/chronos/esm2015/i18n/nl-be.js +97 -0
- package/chronos/esm2015/i18n/nl.js +97 -0
- package/chronos/esm2015/i18n/pl.js +156 -0
- package/chronos/esm2015/i18n/pt-br.js +65 -0
- package/chronos/esm2015/i18n/ro.js +73 -0
- package/chronos/esm2015/i18n/ru.js +218 -0
- package/chronos/esm2015/i18n/sk.js +193 -0
- package/chronos/esm2015/i18n/sl.js +202 -0
- package/chronos/esm2015/i18n/sv.js +74 -0
- package/chronos/esm2015/i18n/th.js +75 -0
- package/chronos/esm2015/i18n/tr.js +95 -0
- package/chronos/esm2015/i18n/zh-cn.js +136 -0
- package/chronos/esm2015/index.js +7 -0
- package/chronos/esm2015/locale/calendar.js +14 -0
- package/chronos/esm2015/locale/locale.class.js +841 -0
- package/chronos/esm2015/locale/locale.defaults.js +46 -0
- package/chronos/esm2015/locale/locales.js +272 -0
- package/chronos/esm2015/moment/add-subtract.js +61 -0
- package/chronos/esm2015/moment/calendar.js +81 -0
- package/chronos/esm2015/moment/diff.js +88 -0
- package/chronos/esm2015/moment/min-max.js +50 -0
- package/chronos/esm2015/ngx-bootstrap-chronos.js +11 -0
- package/chronos/esm2015/parse/regex.js +72 -0
- package/chronos/esm2015/parse/token.js +52 -0
- package/chronos/esm2015/public_api.js +50 -0
- package/chronos/esm2015/test/chain.js +1212 -0
- package/chronos/esm2015/types.js +76 -0
- package/chronos/esm2015/units/aliases.js +53 -0
- package/chronos/esm2015/units/constants.js +16 -0
- package/chronos/esm2015/units/day-of-month.js +39 -0
- package/chronos/esm2015/units/day-of-week.js +183 -0
- package/chronos/esm2015/units/day-of-year.js +55 -0
- package/chronos/esm2015/units/hour.js +153 -0
- package/chronos/esm2015/units/index.js +24 -0
- package/chronos/esm2015/units/millisecond.js +74 -0
- package/chronos/esm2015/units/minute.js +31 -0
- package/chronos/esm2015/units/month.js +75 -0
- package/chronos/esm2015/units/offset.js +227 -0
- package/chronos/esm2015/units/priorities.js +31 -0
- package/chronos/esm2015/units/quarter.js +57 -0
- package/chronos/esm2015/units/second.js +31 -0
- package/chronos/esm2015/units/timestamp.js +36 -0
- package/chronos/esm2015/units/timezone.js +33 -0
- package/chronos/esm2015/units/week-calendar-utils.js +94 -0
- package/chronos/esm2015/units/week-year.js +175 -0
- package/chronos/esm2015/units/week.js +83 -0
- package/chronos/esm2015/units/year.js +81 -0
- package/chronos/esm2015/utils/abs-ceil.js +13 -0
- package/chronos/esm2015/utils/abs-round.js +13 -0
- package/chronos/esm2015/utils/compare-arrays.js +27 -0
- package/chronos/esm2015/utils/date-compare.js +108 -0
- package/chronos/esm2015/utils/date-getters.js +157 -0
- package/chronos/esm2015/utils/date-setters.js +147 -0
- package/chronos/esm2015/utils/defaults.js +22 -0
- package/chronos/esm2015/utils/start-end-of.js +74 -0
- package/chronos/esm2015/utils/type-checks.js +114 -0
- package/chronos/esm2015/utils/zero-fill.js +21 -0
- package/chronos/esm2015/utils.js +21 -0
- package/chronos/esm5/create/check-overflow.js +39 -0
- package/chronos/esm5/create/clone.js +13 -0
- package/chronos/esm5/create/date-from-array.js +44 -0
- package/chronos/esm5/create/from-anything.js +131 -0
- package/chronos/esm5/create/from-array.js +149 -0
- package/chronos/esm5/create/from-object.js +25 -0
- package/chronos/esm5/create/from-string-and-array.js +46 -0
- package/chronos/esm5/create/from-string-and-format.js +120 -0
- package/chronos/esm5/create/from-string.js +268 -0
- package/chronos/esm5/create/local.js +23 -0
- package/chronos/esm5/create/parsing-flags.js +38 -0
- package/chronos/esm5/create/parsing.types.js +146 -0
- package/chronos/esm5/create/valid.js +60 -0
- package/chronos/esm5/duration/bubble.js +64 -0
- package/chronos/esm5/duration/constructor.js +205 -0
- package/chronos/esm5/duration/create.js +143 -0
- package/chronos/esm5/duration/humanize.js +109 -0
- package/chronos/esm5/duration/valid.js +54 -0
- package/chronos/esm5/format/format.js +68 -0
- package/chronos/esm5/format.js +73 -0
- package/chronos/esm5/i18n/ar.js +155 -0
- package/chronos/esm5/i18n/bg.js +101 -0
- package/chronos/esm5/i18n/cs.js +215 -0
- package/chronos/esm5/i18n/da.js +56 -0
- package/chronos/esm5/i18n/de.js +80 -0
- package/chronos/esm5/i18n/en-gb.js +72 -0
- package/chronos/esm5/i18n/es-do.js +118 -0
- package/chronos/esm5/i18n/es-us.js +111 -0
- package/chronos/esm5/i18n/es.js +117 -0
- package/chronos/esm5/i18n/fi.js +119 -0
- package/chronos/esm5/i18n/fr.js +87 -0
- package/chronos/esm5/i18n/gl.js +117 -0
- package/chronos/esm5/i18n/he.js +129 -0
- package/chronos/esm5/i18n/hi.js +150 -0
- package/chronos/esm5/i18n/hu.js +140 -0
- package/chronos/esm5/i18n/id.js +100 -0
- package/chronos/esm5/i18n/it.js +79 -0
- package/chronos/esm5/i18n/ja.js +95 -0
- package/chronos/esm5/i18n/ko.js +82 -0
- package/chronos/esm5/i18n/lt.js +155 -0
- package/chronos/esm5/i18n/mn.js +108 -0
- package/chronos/esm5/i18n/nb.js +59 -0
- package/chronos/esm5/i18n/nl-be.js +97 -0
- package/chronos/esm5/i18n/nl.js +97 -0
- package/chronos/esm5/i18n/pl.js +156 -0
- package/chronos/esm5/i18n/pt-br.js +65 -0
- package/chronos/esm5/i18n/ro.js +73 -0
- package/chronos/esm5/i18n/ru.js +218 -0
- package/chronos/esm5/i18n/sk.js +193 -0
- package/chronos/esm5/i18n/sl.js +202 -0
- package/chronos/esm5/i18n/sv.js +74 -0
- package/chronos/esm5/i18n/th.js +75 -0
- package/chronos/esm5/i18n/tr.js +95 -0
- package/chronos/esm5/i18n/zh-cn.js +136 -0
- package/chronos/esm5/index.js +7 -0
- package/chronos/esm5/locale/calendar.js +14 -0
- package/chronos/esm5/locale/locale.class.js +996 -0
- package/chronos/esm5/locale/locale.defaults.js +46 -0
- package/chronos/esm5/locale/locales.js +272 -0
- package/chronos/esm5/moment/add-subtract.js +61 -0
- package/chronos/esm5/moment/calendar.js +83 -0
- package/chronos/esm5/moment/diff.js +89 -0
- package/chronos/esm5/moment/min-max.js +58 -0
- package/chronos/esm5/ngx-bootstrap-chronos.js +11 -0
- package/chronos/esm5/parse/regex.js +72 -0
- package/chronos/esm5/parse/token.js +52 -0
- package/chronos/esm5/public_api.js +50 -0
- package/chronos/esm5/test/chain.js +1506 -0
- package/chronos/esm5/types.js +76 -0
- package/chronos/esm5/units/aliases.js +53 -0
- package/chronos/esm5/units/constants.js +16 -0
- package/chronos/esm5/units/day-of-month.js +39 -0
- package/chronos/esm5/units/day-of-week.js +188 -0
- package/chronos/esm5/units/day-of-year.js +55 -0
- package/chronos/esm5/units/hour.js +153 -0
- package/chronos/esm5/units/index.js +24 -0
- package/chronos/esm5/units/millisecond.js +74 -0
- package/chronos/esm5/units/minute.js +31 -0
- package/chronos/esm5/units/month.js +75 -0
- package/chronos/esm5/units/offset.js +231 -0
- package/chronos/esm5/units/priorities.js +31 -0
- package/chronos/esm5/units/quarter.js +58 -0
- package/chronos/esm5/units/second.js +31 -0
- package/chronos/esm5/units/timestamp.js +36 -0
- package/chronos/esm5/units/timezone.js +33 -0
- package/chronos/esm5/units/week-calendar-utils.js +94 -0
- package/chronos/esm5/units/week-year.js +178 -0
- package/chronos/esm5/units/week.js +85 -0
- package/chronos/esm5/units/year.js +81 -0
- package/chronos/esm5/utils/abs-ceil.js +13 -0
- package/chronos/esm5/utils/abs-round.js +13 -0
- package/chronos/esm5/utils/compare-arrays.js +27 -0
- package/chronos/esm5/utils/date-compare.js +112 -0
- package/chronos/esm5/utils/date-getters.js +165 -0
- package/chronos/esm5/utils/date-setters.js +147 -0
- package/chronos/esm5/utils/defaults.js +22 -0
- package/chronos/esm5/utils/start-end-of.js +74 -0
- package/chronos/esm5/utils/type-checks.js +114 -0
- package/chronos/esm5/utils/zero-fill.js +21 -0
- package/chronos/esm5/utils.js +21 -0
- package/chronos/fesm2015/ngx-bootstrap-chronos.js +8176 -0
- package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -0
- package/chronos/fesm5/ngx-bootstrap-chronos.js +8383 -0
- package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -0
- package/chronos/i18n/bg.d.ts +2 -0
- package/chronos/i18n/lt.d.ts +2 -0
- package/chronos/i18n/nb.d.ts +2 -0
- package/chronos/i18n/sk.d.ts +2 -0
- package/chronos/index.d.ts +1 -7
- package/chronos/ngx-bootstrap-chronos.d.ts +5 -0
- package/chronos/ngx-bootstrap-chronos.metadata.json +1 -0
- package/chronos/package.json +19 -0
- package/chronos/public_api.d.ts +46 -0
- package/chronos/units/day-of-month.d.ts +1 -1
- package/chronos/units/day-of-week.d.ts +1 -0
- package/chronos/units/day-of-year.d.ts +1 -0
- package/chronos/units/hour.d.ts +1 -1
- package/chronos/units/millisecond.d.ts +1 -1
- package/chronos/units/minute.d.ts +1 -1
- package/chronos/units/month.d.ts +1 -0
- package/chronos/units/offset.d.ts +1 -0
- package/chronos/units/quarter.d.ts +1 -0
- package/chronos/units/second.d.ts +1 -1
- package/chronos/units/timestamp.d.ts +1 -1
- package/chronos/units/timezone.d.ts +1 -0
- package/chronos/units/week-year.d.ts +1 -0
- package/chronos/units/week.d.ts +1 -0
- package/chronos/units/year.d.ts +1 -0
- package/chronos/utils/date-compare.d.ts +2 -0
- package/chronos/utils/type-checks.d.ts +1 -1
- package/collapse/bundles/ngx-bootstrap-collapse.umd.js +178 -0
- package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -0
- package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +2 -0
- package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -0
- package/collapse/esm2015/collapse.directive.js +150 -0
- package/collapse/esm2015/collapse.module.js +31 -0
- package/collapse/esm2015/ngx-bootstrap-collapse.js +10 -0
- package/collapse/esm2015/public_api.js +8 -0
- package/collapse/esm5/collapse.directive.js +167 -0
- package/collapse/esm5/collapse.module.js +38 -0
- package/collapse/esm5/ngx-bootstrap-collapse.js +10 -0
- package/collapse/esm5/public_api.js +8 -0
- package/collapse/fesm2015/ngx-bootstrap-collapse.js +147 -0
- package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -0
- package/collapse/fesm5/ngx-bootstrap-collapse.js +169 -0
- package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -0
- package/collapse/ngx-bootstrap-collapse.d.ts +4 -0
- package/collapse/ngx-bootstrap-collapse.metadata.json +1 -0
- package/collapse/package.json +19 -0
- package/collapse/{index.d.ts → public_api.d.ts} +0 -0
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +508 -0
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -0
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +2 -0
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -0
- package/component-loader/component-loader.class.d.ts +11 -5
- package/component-loader/component-loader.factory.d.ts +1 -2
- package/component-loader/esm2015/bs-component-ref.class.js +17 -0
- package/component-loader/esm2015/component-loader.class.js +402 -0
- package/component-loader/esm2015/component-loader.factory.js +66 -0
- package/component-loader/esm2015/content-ref.class.js +34 -0
- package/component-loader/esm2015/listen-options.model.js +28 -0
- package/component-loader/esm2015/ngx-bootstrap-component-loader.js +10 -0
- package/component-loader/esm2015/public_api.js +10 -0
- package/component-loader/esm5/bs-component-ref.class.js +27 -0
- package/component-loader/esm5/component-loader.class.js +468 -0
- package/component-loader/esm5/component-loader.factory.js +75 -0
- package/component-loader/esm5/content-ref.class.js +31 -0
- package/component-loader/esm5/listen-options.model.js +28 -0
- package/component-loader/esm5/ngx-bootstrap-component-loader.js +10 -0
- package/component-loader/esm5/public_api.js +10 -0
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +426 -0
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -0
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js +498 -0
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -0
- package/component-loader/listen-options.model.d.ts +1 -0
- package/component-loader/ngx-bootstrap-component-loader.d.ts +4 -0
- package/component-loader/ngx-bootstrap-component-loader.metadata.json +1 -0
- package/component-loader/package.json +19 -0
- package/component-loader/public_api.d.ts +4 -0
- package/datepicker/base/bs-datepicker-container.d.ts +3 -1
- package/datepicker/bs-datepicker-input.directive.d.ts +3 -3
- package/datepicker/bs-datepicker.component.d.ts +13 -3
- package/datepicker/bs-datepicker.config.d.ts +14 -1
- package/datepicker/bs-datepicker.css +14 -5
- package/datepicker/bs-datepicker.css.map +2 -2
- package/datepicker/bs-datepicker.module.d.ts +0 -1
- package/datepicker/bs-datepicker.scss +23 -10
- package/datepicker/bs-daterangepicker-input.directive.d.ts +3 -3
- package/datepicker/bs-daterangepicker.component.d.ts +4 -3
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +4334 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +2 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -0
- package/datepicker/datepicker.component.d.ts +5 -5
- package/datepicker/engine/calc-days-calendar.d.ts +1 -1
- package/datepicker/engine/flag-days-calendar.d.ts +2 -1
- package/datepicker/engine/flag-months-calendar.d.ts +1 -1
- package/datepicker/engine/flag-years-calendar.d.ts +1 -1
- package/datepicker/engine/format-days-calendar.d.ts +1 -1
- package/datepicker/engine/format-months-calendar.d.ts +1 -1
- package/datepicker/engine/format-years-calendar.d.ts +1 -1
- package/datepicker/engine/view-mode.d.ts +2 -2
- package/datepicker/esm2015/base/bs-datepicker-container.js +109 -0
- package/datepicker/esm2015/bs-datepicker-input.directive.js +208 -0
- package/datepicker/esm2015/bs-datepicker.component.js +307 -0
- package/datepicker/esm2015/bs-datepicker.config.js +117 -0
- package/datepicker/esm2015/bs-datepicker.module.js +90 -0
- package/datepicker/esm2015/bs-daterangepicker-input.directive.js +224 -0
- package/datepicker/esm2015/bs-daterangepicker.component.js +293 -0
- package/datepicker/esm2015/bs-daterangepicker.config.js +29 -0
- package/datepicker/esm2015/bs-locale.service.js +61 -0
- package/datepicker/esm2015/date-formatter.js +18 -0
- package/datepicker/esm2015/datepicker-inner.component.js +451 -0
- package/datepicker/esm2015/datepicker.component.js +326 -0
- package/datepicker/esm2015/datepicker.config.js +74 -0
- package/datepicker/esm2015/datepicker.module.js +52 -0
- package/datepicker/esm2015/daypicker.component.js +212 -0
- package/datepicker/esm2015/engine/calc-days-calendar.js +29 -0
- package/datepicker/esm2015/engine/flag-days-calendar.js +115 -0
- package/datepicker/esm2015/engine/flag-months-calendar.js +57 -0
- package/datepicker/esm2015/engine/flag-years-calendar.js +56 -0
- package/datepicker/esm2015/engine/format-days-calendar.js +50 -0
- package/datepicker/esm2015/engine/format-months-calendar.js +29 -0
- package/datepicker/esm2015/engine/format-years-calendar.js +42 -0
- package/datepicker/esm2015/engine/view-mode.js +14 -0
- package/datepicker/esm2015/models/index.js +199 -0
- package/datepicker/esm2015/monthpicker.component.js +118 -0
- package/datepicker/esm2015/ngx-bootstrap-datepicker.js +29 -0
- package/datepicker/esm2015/public_api.js +19 -0
- package/datepicker/esm2015/reducer/_defaults.js +10 -0
- package/datepicker/esm2015/reducer/bs-datepicker.actions.js +204 -0
- package/datepicker/esm2015/reducer/bs-datepicker.effects.js +249 -0
- package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +289 -0
- package/datepicker/esm2015/reducer/bs-datepicker.state.js +87 -0
- package/datepicker/esm2015/reducer/bs-datepicker.store.js +34 -0
- package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.js +39 -0
- package/datepicker/esm2015/themes/bs/bs-current-date-view.component.js +32 -0
- package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +51 -0
- package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +113 -0
- package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +73 -0
- package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +88 -0
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +133 -0
- package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +134 -0
- package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.js +104 -0
- package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.js +53 -0
- package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.js +105 -0
- package/datepicker/esm2015/utils/bs-calendar-utils.js +54 -0
- package/datepicker/esm2015/utils/matrix-utils.js +39 -0
- package/datepicker/esm2015/yearpicker.component.js +122 -0
- package/datepicker/esm5/base/bs-datepicker-container.js +170 -0
- package/datepicker/esm5/bs-datepicker-input.directive.js +242 -0
- package/datepicker/esm5/bs-datepicker.component.js +368 -0
- package/datepicker/esm5/bs-datepicker.config.js +119 -0
- package/datepicker/esm5/bs-datepicker.module.js +97 -0
- package/datepicker/esm5/bs-daterangepicker-input.directive.js +263 -0
- package/datepicker/esm5/bs-daterangepicker.component.js +354 -0
- package/datepicker/esm5/bs-daterangepicker.config.js +34 -0
- package/datepicker/esm5/bs-locale.service.js +79 -0
- package/datepicker/esm5/date-formatter.js +28 -0
- package/datepicker/esm5/datepicker-inner.component.js +547 -0
- package/datepicker/esm5/datepicker.component.js +325 -0
- package/datepicker/esm5/datepicker.config.js +76 -0
- package/datepicker/esm5/datepicker.module.js +59 -0
- package/datepicker/esm5/daypicker.component.js +157 -0
- package/datepicker/esm5/engine/calc-days-calendar.js +29 -0
- package/datepicker/esm5/engine/flag-days-calendar.js +115 -0
- package/datepicker/esm5/engine/flag-months-calendar.js +57 -0
- package/datepicker/esm5/engine/flag-years-calendar.js +56 -0
- package/datepicker/esm5/engine/format-days-calendar.js +55 -0
- package/datepicker/esm5/engine/format-months-calendar.js +31 -0
- package/datepicker/esm5/engine/format-years-calendar.js +44 -0
- package/datepicker/esm5/engine/view-mode.js +14 -0
- package/datepicker/esm5/models/index.js +199 -0
- package/datepicker/esm5/monthpicker.component.js +85 -0
- package/datepicker/esm5/ngx-bootstrap-datepicker.js +29 -0
- package/datepicker/esm5/public_api.js +19 -0
- package/datepicker/esm5/reducer/_defaults.js +10 -0
- package/datepicker/esm5/reducer/bs-datepicker.actions.js +266 -0
- package/datepicker/esm5/reducer/bs-datepicker.effects.js +314 -0
- package/datepicker/esm5/reducer/bs-datepicker.reducer.js +298 -0
- package/datepicker/esm5/reducer/bs-datepicker.state.js +91 -0
- package/datepicker/esm5/reducer/bs-datepicker.store.js +40 -0
- package/datepicker/esm5/themes/bs/bs-calendar-layout.component.js +28 -0
- package/datepicker/esm5/themes/bs/bs-current-date-view.component.js +36 -0
- package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +50 -0
- package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +138 -0
- package/datepicker/esm5/themes/bs/bs-datepicker-day-decorator.directive.js +73 -0
- package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +68 -0
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +158 -0
- package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +114 -0
- package/datepicker/esm5/themes/bs/bs-months-calendar-view.component.js +100 -0
- package/datepicker/esm5/themes/bs/bs-timepicker-view.component.js +37 -0
- package/datepicker/esm5/themes/bs/bs-years-calendar-view.component.js +101 -0
- package/datepicker/esm5/utils/bs-calendar-utils.js +54 -0
- package/datepicker/esm5/utils/matrix-utils.js +39 -0
- package/datepicker/esm5/yearpicker.component.js +92 -0
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +3827 -0
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -0
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +4198 -0
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -0
- package/datepicker/models/index.d.ts +3 -1
- package/datepicker/ngx-bootstrap-datepicker.d.ts +23 -0
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -0
- package/datepicker/package.json +19 -0
- package/datepicker/public_api.d.ts +14 -0
- package/datepicker/reducer/_defaults.d.ts +1 -1
- package/datepicker/reducer/bs-datepicker.actions.d.ts +5 -3
- package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +1 -1
- package/datepicker/reducer/bs-datepicker.state.d.ts +4 -1
- package/datepicker/reducer/bs-datepicker.store.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +9 -2
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +4 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
- package/datepicker/utils/matrix-utils.d.ts +1 -1
- package/dropdown/bs-dropdown-container.component.d.ts +3 -0
- package/dropdown/bs-dropdown-toggle.directive.d.ts +4 -2
- package/dropdown/bs-dropdown.config.d.ts +2 -0
- package/dropdown/bs-dropdown.directive.d.ts +12 -6
- package/dropdown/bs-dropdown.state.d.ts +2 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +793 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +2 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -0
- package/dropdown/esm2015/bs-dropdown-container.component.js +104 -0
- package/dropdown/esm2015/bs-dropdown-menu.directive.js +42 -0
- package/dropdown/esm2015/bs-dropdown-toggle.directive.js +109 -0
- package/dropdown/esm2015/bs-dropdown.config.js +44 -0
- package/dropdown/esm2015/bs-dropdown.directive.js +408 -0
- package/dropdown/esm2015/bs-dropdown.module.js +60 -0
- package/dropdown/esm2015/bs-dropdown.state.js +51 -0
- package/dropdown/esm2015/index.js +7 -0
- package/dropdown/esm2015/ngx-bootstrap-dropdown.js +10 -0
- package/dropdown/esm2015/public_api.js +13 -0
- package/dropdown/esm5/bs-dropdown-container.component.js +109 -0
- package/dropdown/esm5/bs-dropdown-menu.directive.js +40 -0
- package/dropdown/esm5/bs-dropdown-toggle.directive.js +132 -0
- package/dropdown/esm5/bs-dropdown.config.js +46 -0
- package/dropdown/esm5/bs-dropdown.directive.js +501 -0
- package/dropdown/esm5/bs-dropdown.module.js +69 -0
- package/dropdown/esm5/bs-dropdown.state.js +54 -0
- package/dropdown/esm5/index.js +7 -0
- package/dropdown/esm5/ngx-bootstrap-dropdown.js +10 -0
- package/dropdown/esm5/public_api.js +13 -0
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +623 -0
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -0
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +748 -0
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -0
- package/dropdown/index.d.ts +1 -7
- package/dropdown/ngx-bootstrap-dropdown.d.ts +4 -0
- package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -0
- package/dropdown/package.json +19 -0
- package/dropdown/public_api.d.ts +7 -0
- package/esm2015/ngx-bootstrap.js +10 -0
- package/esm2015/public_api.js +31 -0
- package/esm5/ngx-bootstrap.js +10 -0
- package/esm5/public_api.js +31 -0
- package/fesm2015/ngx-bootstrap.js +35 -0
- package/fesm2015/ngx-bootstrap.js.map +1 -0
- package/fesm5/ngx-bootstrap.js +35 -0
- package/fesm5/ngx-bootstrap.js.map +1 -0
- package/locale/bundles/ngx-bootstrap-locale.umd.js +56 -0
- package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -0
- package/locale/bundles/ngx-bootstrap-locale.umd.min.js +2 -0
- package/locale/bundles/ngx-bootstrap-locale.umd.min.js.map +1 -0
- package/locale/esm2015/ngx-bootstrap-locale.js +10 -0
- package/locale/esm2015/public_api.js +40 -0
- package/locale/esm5/ngx-bootstrap-locale.js +10 -0
- package/locale/esm5/public_api.js +40 -0
- package/locale/fesm2015/ngx-bootstrap-locale.js +13 -0
- package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -0
- package/locale/fesm5/ngx-bootstrap-locale.js +13 -0
- package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -0
- package/locale/ngx-bootstrap-locale.d.ts +4 -0
- package/locale/ngx-bootstrap-locale.metadata.json +1 -0
- package/locale/package.json +19 -0
- package/locale/public_api.d.ts +34 -0
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +178 -0
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +1 -0
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +2 -0
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -0
- package/mini-ngrx/esm2015/index.js +7 -0
- package/mini-ngrx/esm2015/ngx-bootstrap-mini-ngrx.js +10 -0
- package/mini-ngrx/esm2015/public_api.js +18 -0
- package/mini-ngrx/esm2015/state.class.js +29 -0
- package/mini-ngrx/esm2015/store.class.js +81 -0
- package/mini-ngrx/esm5/index.js +7 -0
- package/mini-ngrx/esm5/ngx-bootstrap-mini-ngrx.js +10 -0
- package/mini-ngrx/esm5/public_api.js +18 -0
- package/mini-ngrx/esm5/state.class.js +35 -0
- package/mini-ngrx/esm5/store.class.js +114 -0
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +114 -0
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -0
- package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +144 -0
- package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -0
- package/mini-ngrx/index.d.ts +1 -7
- package/mini-ngrx/ngx-bootstrap-mini-ngrx.d.ts +4 -0
- package/mini-ngrx/ngx-bootstrap-mini-ngrx.metadata.json +1 -0
- package/mini-ngrx/package.json +19 -0
- package/mini-ngrx/public_api.d.ts +7 -0
- package/modal/bs-modal-ref.service.d.ts +4 -0
- package/modal/bs-modal.service.d.ts +5 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.js +1156 -0
- package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -0
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js +2 -0
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -0
- package/modal/esm2015/bs-modal-ref.service.js +46 -0
- package/modal/esm2015/bs-modal.service.js +267 -0
- package/modal/esm2015/modal-backdrop.component.js +103 -0
- package/modal/esm2015/modal-backdrop.options.js +19 -0
- package/modal/esm2015/modal-container.component.js +160 -0
- package/modal/esm2015/modal-options.class.js +92 -0
- package/modal/esm2015/modal.directive.js +459 -0
- package/modal/esm2015/modal.module.js +44 -0
- package/modal/esm2015/models/index.js +58 -0
- package/modal/esm2015/ngx-bootstrap-modal.js +11 -0
- package/modal/esm2015/public_api.js +14 -0
- package/modal/esm5/bs-modal-ref.service.js +48 -0
- package/modal/esm5/bs-modal.service.js +333 -0
- package/modal/esm5/modal-backdrop.component.js +112 -0
- package/modal/esm5/modal-backdrop.options.js +18 -0
- package/modal/esm5/modal-container.component.js +170 -0
- package/modal/esm5/modal-options.class.js +96 -0
- package/modal/esm5/modal.directive.js +580 -0
- package/modal/esm5/modal.module.js +51 -0
- package/modal/esm5/models/index.js +58 -0
- package/modal/esm5/ngx-bootstrap-modal.js +11 -0
- package/modal/esm5/public_api.js +14 -0
- package/modal/fesm2015/ngx-bootstrap-modal.js +932 -0
- package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -0
- package/modal/fesm5/ngx-bootstrap-modal.js +1142 -0
- package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -0
- package/modal/modal-container.component.d.ts +2 -2
- package/modal/modal-options.class.d.ts +5 -7
- package/modal/modal.directive.d.ts +25 -7
- package/modal/models/index.d.ts +22 -0
- package/modal/ngx-bootstrap-modal.d.ts +5 -0
- package/modal/ngx-bootstrap-modal.metadata.json +1 -0
- package/modal/package.json +19 -0
- package/modal/{index.d.ts → public_api.d.ts} +0 -0
- package/ngx-bootstrap.d.ts +4 -0
- package/ngx-bootstrap.metadata.json +1 -0
- package/package.json +30 -29
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js +815 -0
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -0
- package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +2 -0
- package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -0
- package/pagination/esm2015/models/index.js +62 -0
- package/pagination/esm2015/ngx-bootstrap-pagination.js +12 -0
- package/pagination/esm2015/pager.component.js +412 -0
- package/pagination/esm2015/pagination.component.js +422 -0
- package/pagination/esm2015/pagination.config.js +49 -0
- package/pagination/esm2015/pagination.module.js +35 -0
- package/pagination/esm2015/public_api.js +10 -0
- package/pagination/esm5/models/index.js +62 -0
- package/pagination/esm5/ngx-bootstrap-pagination.js +12 -0
- package/pagination/esm5/pager.component.js +475 -0
- package/pagination/esm5/pagination.component.js +485 -0
- package/pagination/esm5/pagination.config.js +51 -0
- package/pagination/esm5/pagination.module.js +42 -0
- package/pagination/esm5/public_api.js +10 -0
- package/pagination/fesm2015/ngx-bootstrap-pagination.js +685 -0
- package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -0
- package/pagination/fesm5/ngx-bootstrap-pagination.js +816 -0
- package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -0
- package/pagination/models/index.d.ts +25 -0
- package/pagination/ngx-bootstrap-pagination.d.ts +6 -0
- package/pagination/ngx-bootstrap-pagination.metadata.json +1 -0
- package/pagination/package.json +19 -0
- package/pagination/pager.component.d.ts +11 -11
- package/pagination/pagination.component.d.ts +12 -12
- package/pagination/pagination.config.d.ts +3 -2
- package/pagination/{index.d.ts → public_api.d.ts} +0 -0
- package/popover/bundles/ngx-bootstrap-popover.umd.js +317 -0
- package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -0
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js +2 -0
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -0
- package/popover/esm2015/ngx-bootstrap-popover.js +10 -0
- package/popover/esm2015/popover-container.component.js +72 -0
- package/popover/esm2015/popover.config.js +58 -0
- package/popover/esm2015/popover.directive.js +227 -0
- package/popover/esm2015/popover.module.js +41 -0
- package/popover/esm2015/public_api.js +10 -0
- package/popover/esm5/ngx-bootstrap-popover.js +10 -0
- package/popover/esm5/popover-container.component.js +66 -0
- package/popover/esm5/popover.config.js +60 -0
- package/popover/esm5/popover.directive.js +260 -0
- package/popover/esm5/popover.module.js +48 -0
- package/popover/esm5/public_api.js +10 -0
- package/popover/fesm2015/ngx-bootstrap-popover.js +277 -0
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -0
- package/popover/fesm5/ngx-bootstrap-popover.js +309 -0
- package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -0
- package/popover/ngx-bootstrap-popover.d.ts +4 -0
- package/popover/ngx-bootstrap-popover.metadata.json +1 -0
- package/popover/package.json +19 -0
- package/popover/popover.directive.d.ts +3 -3
- package/popover/{index.d.ts → public_api.d.ts} +0 -0
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js +366 -0
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -0
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +2 -0
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -0
- package/positioning/esm2015/ng-positioning.js +253 -0
- package/positioning/esm2015/ngx-bootstrap-positioning.js +10 -0
- package/positioning/esm2015/positioning.service.js +91 -0
- package/positioning/esm2015/public_api.js +8 -0
- package/positioning/esm5/ng-positioning.js +300 -0
- package/positioning/esm5/ngx-bootstrap-positioning.js +10 -0
- package/positioning/esm5/positioning.service.js +99 -0
- package/positioning/esm5/public_api.js +8 -0
- package/positioning/fesm2015/ngx-bootstrap-positioning.js +299 -0
- package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -0
- package/positioning/fesm5/ngx-bootstrap-positioning.js +352 -0
- package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -0
- package/positioning/ngx-bootstrap-positioning.d.ts +4 -0
- package/positioning/ngx-bootstrap-positioning.metadata.json +1 -0
- package/positioning/package.json +19 -0
- package/positioning/{index.d.ts → public_api.d.ts} +0 -0
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +319 -0
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -0
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +2 -0
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -0
- package/progressbar/esm2015/bar.component.js +129 -0
- package/progressbar/esm2015/ngx-bootstrap-progressbar.js +10 -0
- package/progressbar/esm2015/progressbar.component.js +148 -0
- package/progressbar/esm2015/progressbar.config.js +41 -0
- package/progressbar/esm2015/progressbar.module.js +35 -0
- package/progressbar/esm2015/public_api.js +10 -0
- package/progressbar/esm5/bar.component.js +149 -0
- package/progressbar/esm5/ngx-bootstrap-progressbar.js +10 -0
- package/progressbar/esm5/progressbar.component.js +170 -0
- package/progressbar/esm5/progressbar.config.js +43 -0
- package/progressbar/esm5/progressbar.module.js +42 -0
- package/progressbar/esm5/public_api.js +10 -0
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +268 -0
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -0
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js +315 -0
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -0
- package/progressbar/ngx-bootstrap-progressbar.d.ts +4 -0
- package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -0
- package/progressbar/package.json +19 -0
- package/progressbar/progressbar.component.d.ts +4 -2
- package/progressbar/{index.d.ts → public_api.d.ts} +0 -0
- package/public_api.d.ts +25 -0
- package/rating/bundles/ngx-bootstrap-rating.umd.js +243 -0
- package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -0
- package/rating/bundles/ngx-bootstrap-rating.umd.min.js +2 -0
- package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -0
- package/rating/esm2015/models/index.js +28 -0
- package/rating/esm2015/ngx-bootstrap-rating.js +11 -0
- package/rating/esm2015/public_api.js +8 -0
- package/rating/esm2015/rating.component.js +210 -0
- package/rating/esm2015/rating.module.js +36 -0
- package/rating/esm5/models/index.js +28 -0
- package/rating/esm5/ngx-bootstrap-rating.js +11 -0
- package/rating/esm5/public_api.js +8 -0
- package/rating/esm5/rating.component.js +244 -0
- package/rating/esm5/rating.module.js +43 -0
- package/rating/fesm2015/ngx-bootstrap-rating.js +194 -0
- package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -0
- package/rating/fesm5/ngx-bootstrap-rating.js +233 -0
- package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -0
- package/rating/models/index.d.ts +9 -0
- package/rating/ngx-bootstrap-rating.d.ts +5 -0
- package/rating/ngx-bootstrap-rating.metadata.json +1 -0
- package/rating/package.json +19 -0
- package/rating/{index.d.ts → public_api.d.ts} +0 -0
- package/rating/rating.component.d.ts +6 -5
- package/schematics/collection.json +10 -0
- package/schematics/ng-add/index.js +98 -0
- package/schematics/ng-add/index.js.map +1 -0
- package/schematics/ng-add/index.spec.js +37 -0
- package/schematics/ng-add/index.spec.js.map +1 -0
- package/schematics/ng-add/schema.js +10 -0
- package/schematics/ng-add/schema.js.map +1 -0
- package/schematics/ng-add/schema.json +16 -0
- package/schematics/utils/index.js +135 -0
- package/schematics/utils/index.js.map +1 -0
- package/schematics/utils/ng-module-imports.js +69 -0
- package/schematics/utils/ng-module-imports.js.map +1 -0
- package/schematics/utils/project-main-file.js +22 -0
- package/schematics/utils/project-main-file.js.map +1 -0
- package/schematics/utils/project-targets.js +25 -0
- package/schematics/utils/project-targets.js.map +1 -0
- package/sortable/bundles/ngx-bootstrap-sortable.umd.js +464 -0
- package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -0
- package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +2 -0
- package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -0
- package/sortable/esm2015/draggable-item.js +24 -0
- package/sortable/esm2015/draggable-item.service.js +65 -0
- package/sortable/esm2015/ngx-bootstrap-sortable.js +10 -0
- package/sortable/esm2015/public_api.js +9 -0
- package/sortable/esm2015/sortable.component.js +382 -0
- package/sortable/esm2015/sortable.module.js +34 -0
- package/sortable/esm5/draggable-item.js +24 -0
- package/sortable/esm5/draggable-item.service.js +82 -0
- package/sortable/esm5/ngx-bootstrap-sortable.js +10 -0
- package/sortable/esm5/public_api.js +9 -0
- package/sortable/esm5/sortable.component.js +398 -0
- package/sortable/esm5/sortable.module.js +41 -0
- package/sortable/fesm2015/ngx-bootstrap-sortable.js +377 -0
- package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -0
- package/sortable/fesm5/ngx-bootstrap-sortable.js +414 -0
- package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -0
- package/sortable/ngx-bootstrap-sortable.d.ts +4 -0
- package/sortable/ngx-bootstrap-sortable.metadata.json +1 -0
- package/sortable/package.json +19 -0
- package/sortable/{index.d.ts → public_api.d.ts} +0 -0
- package/sortable/sortable.component.d.ts +1 -1
- package/tabs/bundles/ngx-bootstrap-tabs.umd.js +481 -0
- package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +1 -0
- package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +2 -0
- package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +1 -0
- package/tabs/esm2015/ng-transclude.directive.js +61 -0
- package/tabs/esm2015/ngx-bootstrap-tabs.js +10 -0
- package/tabs/esm2015/public_api.js +12 -0
- package/tabs/esm2015/tab-heading.directive.js +39 -0
- package/tabs/esm2015/tab.directive.js +181 -0
- package/tabs/esm2015/tabs.module.js +50 -0
- package/tabs/esm2015/tabset.component.js +195 -0
- package/tabs/esm2015/tabset.config.js +32 -0
- package/tabs/esm5/ng-transclude.directive.js +65 -0
- package/tabs/esm5/ngx-bootstrap-tabs.js +10 -0
- package/tabs/esm5/public_api.js +12 -0
- package/tabs/esm5/tab-heading.directive.js +38 -0
- package/tabs/esm5/tab.directive.js +194 -0
- package/tabs/esm5/tabs.module.js +57 -0
- package/tabs/esm5/tabset.component.js +231 -0
- package/tabs/esm5/tabset.config.js +34 -0
- package/tabs/fesm2015/ngx-bootstrap-tabs.js +415 -0
- package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -0
- package/tabs/fesm5/ngx-bootstrap-tabs.js +470 -0
- package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -0
- package/tabs/ngx-bootstrap-tabs.d.ts +4 -0
- package/tabs/ngx-bootstrap-tabs.metadata.json +1 -0
- package/tabs/package.json +19 -0
- package/tabs/{index.d.ts → public_api.d.ts} +0 -0
- package/tabs/tabset.component.d.ts +3 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +1183 -0
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -0
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +2 -0
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -0
- package/timepicker/esm2015/models/index.js +18 -0
- package/timepicker/esm2015/ngx-bootstrap-timepicker.js +11 -0
- package/timepicker/esm2015/public_api.js +11 -0
- package/timepicker/esm2015/reducer/timepicker.actions.js +99 -0
- package/timepicker/esm2015/reducer/timepicker.reducer.js +103 -0
- package/timepicker/esm2015/reducer/timepicker.store.js +33 -0
- package/timepicker/esm2015/timepicker-controls.util.js +156 -0
- package/timepicker/esm2015/timepicker.component.js +480 -0
- package/timepicker/esm2015/timepicker.config.js +144 -0
- package/timepicker/esm2015/timepicker.models.js +82 -0
- package/timepicker/esm2015/timepicker.module.js +39 -0
- package/timepicker/esm2015/timepicker.utils.js +224 -0
- package/timepicker/esm5/models/index.js +18 -0
- package/timepicker/esm5/ngx-bootstrap-timepicker.js +11 -0
- package/timepicker/esm5/public_api.js +11 -0
- package/timepicker/esm5/reducer/timepicker.actions.js +127 -0
- package/timepicker/esm5/reducer/timepicker.reducer.js +108 -0
- package/timepicker/esm5/reducer/timepicker.store.js +39 -0
- package/timepicker/esm5/timepicker-controls.util.js +156 -0
- package/timepicker/esm5/timepicker.component.js +564 -0
- package/timepicker/esm5/timepicker.config.js +146 -0
- package/timepicker/esm5/timepicker.models.js +82 -0
- package/timepicker/esm5/timepicker.module.js +46 -0
- package/timepicker/esm5/timepicker.utils.js +227 -0
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +1006 -0
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -0
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js +1132 -0
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -0
- package/timepicker/models/index.d.ts +8 -0
- package/timepicker/ngx-bootstrap-timepicker.d.ts +5 -0
- package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -0
- package/timepicker/package.json +19 -0
- package/timepicker/{index.d.ts → public_api.d.ts} +0 -0
- package/timepicker/reducer/timepicker.actions.d.ts +1 -1
- package/timepicker/reducer/timepicker.reducer.d.ts +1 -1
- package/timepicker/reducer/timepicker.store.d.ts +1 -1
- package/timepicker/timepicker.component.d.ts +8 -7
- package/timepicker/timepicker.config.d.ts +1 -1
- package/timepicker/timepicker.utils.d.ts +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +546 -0
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -0
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +2 -0
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -0
- package/tooltip/esm2015/ngx-bootstrap-tooltip.js +10 -0
- package/tooltip/esm2015/public_api.js +10 -0
- package/tooltip/esm2015/tooltip-container.component.js +92 -0
- package/tooltip/esm2015/tooltip.config.js +49 -0
- package/tooltip/esm2015/tooltip.directive.js +419 -0
- package/tooltip/esm2015/tooltip.module.js +41 -0
- package/tooltip/esm5/ngx-bootstrap-tooltip.js +10 -0
- package/tooltip/esm5/public_api.js +10 -0
- package/tooltip/esm5/tooltip-container.component.js +82 -0
- package/tooltip/esm5/tooltip.config.js +51 -0
- package/tooltip/esm5/tooltip.directive.js +490 -0
- package/tooltip/esm5/tooltip.module.js +48 -0
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +456 -0
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -0
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js +522 -0
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -0
- package/tooltip/ngx-bootstrap-tooltip.d.ts +4 -0
- package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -0
- package/tooltip/package.json +19 -0
- package/tooltip/{index.d.ts → public_api.d.ts} +0 -0
- package/tooltip/tooltip-container.component.d.ts +4 -1
- package/tooltip/tooltip.directive.d.ts +10 -8
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +2029 -0
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -0
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +2 -0
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -0
- package/typeahead/esm2015/latin-map.js +833 -0
- package/typeahead/esm2015/ngx-bootstrap-typeahead.js +10 -0
- package/typeahead/esm2015/public_api.js +14 -0
- package/typeahead/esm2015/typeahead-container.component.js +336 -0
- package/typeahead/esm2015/typeahead-match.class.js +38 -0
- package/typeahead/esm2015/typeahead-options.class.js +22 -0
- package/typeahead/esm2015/typeahead-utils.js +80 -0
- package/typeahead/esm2015/typeahead.config.js +35 -0
- package/typeahead/esm2015/typeahead.directive.js +652 -0
- package/typeahead/esm2015/typeahead.module.js +41 -0
- package/typeahead/esm5/latin-map.js +833 -0
- package/typeahead/esm5/ngx-bootstrap-typeahead.js +10 -0
- package/typeahead/esm5/public_api.js +14 -0
- package/typeahead/esm5/typeahead-container.component.js +414 -0
- package/typeahead/esm5/typeahead-match.class.js +44 -0
- package/typeahead/esm5/typeahead-options.class.js +21 -0
- package/typeahead/esm5/typeahead-utils.js +94 -0
- package/typeahead/esm5/typeahead.config.js +37 -0
- package/typeahead/esm5/typeahead.directive.js +748 -0
- package/typeahead/esm5/typeahead.module.js +48 -0
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +1780 -0
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -0
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js +1975 -0
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -0
- package/typeahead/ngx-bootstrap-typeahead.d.ts +4 -0
- package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -0
- package/typeahead/package.json +19 -0
- package/typeahead/public_api.d.ts +8 -0
- package/typeahead/typeahead-container.component.d.ts +2 -2
- package/typeahead/typeahead.config.d.ts +5 -0
- package/typeahead/typeahead.directive.d.ts +13 -10
- package/utils/bundles/ngx-bootstrap-utils.umd.js +792 -0
- package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -0
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js +10 -0
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -0
- package/utils/esm2015/decorators.js +37 -0
- package/utils/esm2015/facade/browser.js +29 -0
- package/utils/esm2015/linked-list.class.js +324 -0
- package/utils/esm2015/ngx-bootstrap-utils.js +10 -0
- package/utils/esm2015/public_api.js +16 -0
- package/utils/esm2015/theme-provider.js +49 -0
- package/utils/esm2015/trigger.class.js +32 -0
- package/utils/esm2015/triggers.js +165 -0
- package/utils/esm2015/utils.class.js +31 -0
- package/utils/esm2015/warn-once.js +21 -0
- package/utils/esm5/decorators.js +39 -0
- package/utils/esm5/facade/browser.js +29 -0
- package/utils/esm5/linked-list.class.js +425 -0
- package/utils/esm5/ngx-bootstrap-utils.js +10 -0
- package/utils/esm5/public_api.js +16 -0
- package/utils/esm5/theme-provider.js +49 -0
- package/utils/esm5/trigger.class.js +33 -0
- package/utils/esm5/triggers.js +170 -0
- package/utils/esm5/utils.class.js +46 -0
- package/utils/esm5/warn-once.js +21 -0
- package/utils/facade/browser.d.ts +5 -5
- package/utils/fesm2015/ngx-bootstrap-utils.js +650 -0
- package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -0
- package/utils/fesm5/ngx-bootstrap-utils.js +768 -0
- package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -0
- package/utils/ngx-bootstrap-utils.d.ts +4 -0
- package/utils/ngx-bootstrap-utils.metadata.json +1 -0
- package/utils/package.json +19 -0
- package/utils/public_api.d.ts +10 -0
- package/utils/triggers.d.ts +12 -1
- package/accordion/accordion-group.component.html +0 -19
- package/accordion/accordion-group.component.js +0 -82
- package/accordion/accordion-group.component.js.map +0 -1
- package/accordion/accordion-group.component.metadata.json +0 -1
- package/accordion/accordion-group.component.ngfactory.js.map +0 -1
- package/accordion/accordion.component.js +0 -50
- package/accordion/accordion.component.js.map +0 -1
- package/accordion/accordion.component.metadata.json +0 -1
- package/accordion/accordion.component.ngfactory.js.map +0 -1
- package/accordion/accordion.config.js +0 -16
- package/accordion/accordion.config.js.map +0 -1
- package/accordion/accordion.config.metadata.json +0 -1
- package/accordion/accordion.config.ngfactory.js.map +0 -1
- package/accordion/accordion.module.js +0 -23
- package/accordion/accordion.module.js.map +0 -1
- package/accordion/accordion.module.metadata.json +0 -1
- package/accordion/accordion.module.ngfactory.js.map +0 -1
- package/accordion/index.js +0 -5
- package/accordion/index.js.map +0 -1
- package/accordion/index.metadata.json +0 -1
- package/alert/alert.component.html +0 -11
- package/alert/alert.component.js +0 -99
- package/alert/alert.component.js.map +0 -1
- package/alert/alert.component.metadata.json +0 -1
- package/alert/alert.component.ngfactory.js.map +0 -1
- package/alert/alert.config.js +0 -17
- package/alert/alert.config.js.map +0 -1
- package/alert/alert.config.metadata.json +0 -1
- package/alert/alert.config.ngfactory.js.map +0 -1
- package/alert/alert.module.js +0 -22
- package/alert/alert.module.js.map +0 -1
- package/alert/alert.module.metadata.json +0 -1
- package/alert/alert.module.ngfactory.js.map +0 -1
- package/alert/index.js +0 -4
- package/alert/index.js.map +0 -1
- package/alert/index.metadata.json +0 -1
- package/buttons/button-checkbox.directive.js +0 -93
- package/buttons/button-checkbox.directive.js.map +0 -1
- package/buttons/button-checkbox.directive.metadata.json +0 -1
- package/buttons/button-checkbox.directive.ngfactory.js.map +0 -1
- package/buttons/button-radio-group.directive.js +0 -53
- package/buttons/button-radio-group.directive.js.map +0 -1
- package/buttons/button-radio-group.directive.metadata.json +0 -1
- package/buttons/button-radio-group.directive.ngfactory.js.map +0 -1
- package/buttons/button-radio.directive.js +0 -126
- package/buttons/button-radio.directive.js.map +0 -1
- package/buttons/button-radio.directive.metadata.json +0 -1
- package/buttons/button-radio.directive.ngfactory.js.map +0 -1
- package/buttons/buttons.module.js +0 -20
- package/buttons/buttons.module.js.map +0 -1
- package/buttons/buttons.module.metadata.json +0 -1
- package/buttons/buttons.module.ngfactory.js.map +0 -1
- package/buttons/index.js +0 -5
- package/buttons/index.js.map +0 -1
- package/buttons/index.metadata.json +0 -1
- package/carousel/carousel.component.html +0 -14
- package/carousel/carousel.component.js +0 -419
- package/carousel/carousel.component.js.map +0 -1
- package/carousel/carousel.component.metadata.json +0 -1
- package/carousel/carousel.component.ngfactory.js.map +0 -1
- package/carousel/carousel.config.js +0 -19
- package/carousel/carousel.config.js.map +0 -1
- package/carousel/carousel.config.metadata.json +0 -1
- package/carousel/carousel.config.ngfactory.js.map +0 -1
- package/carousel/carousel.module.js +0 -23
- package/carousel/carousel.module.js.map +0 -1
- package/carousel/carousel.module.metadata.json +0 -1
- package/carousel/carousel.module.ngfactory.js.map +0 -1
- package/carousel/index.js +0 -5
- package/carousel/index.js.map +0 -1
- package/carousel/index.metadata.json +0 -1
- package/carousel/slide.component.js +0 -41
- package/carousel/slide.component.js.map +0 -1
- package/carousel/slide.component.metadata.json +0 -1
- package/carousel/slide.component.ngfactory.js.map +0 -1
- package/chronos/create/check-overflow.js +0 -30
- package/chronos/create/check-overflow.js.map +0 -1
- package/chronos/create/check-overflow.metadata.json +0 -1
- package/chronos/create/clone.js +0 -6
- package/chronos/create/clone.js.map +0 -1
- package/chronos/create/clone.metadata.json +0 -1
- package/chronos/create/date-from-array.js +0 -23
- package/chronos/create/date-from-array.js.map +0 -1
- package/chronos/create/date-from-array.metadata.json +0 -1
- package/chronos/create/from-anything.js +0 -106
- package/chronos/create/from-anything.js.map +0 -1
- package/chronos/create/from-anything.metadata.json +0 -1
- package/chronos/create/from-array.js +0 -136
- package/chronos/create/from-array.js.map +0 -1
- package/chronos/create/from-array.metadata.json +0 -1
- package/chronos/create/from-object.js +0 -16
- package/chronos/create/from-object.js.map +0 -1
- package/chronos/create/from-object.metadata.json +0 -1
- package/chronos/create/from-string-and-array.js +0 -38
- package/chronos/create/from-string-and-array.js.map +0 -1
- package/chronos/create/from-string-and-array.metadata.json +0 -1
- package/chronos/create/from-string-and-format.js +0 -106
- package/chronos/create/from-string-and-format.js.map +0 -1
- package/chronos/create/from-string-and-format.metadata.json +0 -1
- package/chronos/create/from-string.js +0 -226
- package/chronos/create/from-string.js.map +0 -1
- package/chronos/create/from-string.metadata.json +0 -1
- package/chronos/create/local.js +0 -10
- package/chronos/create/local.js.map +0 -1
- package/chronos/create/local.metadata.json +0 -1
- package/chronos/create/parsing-flags.js +0 -26
- package/chronos/create/parsing-flags.js.map +0 -1
- package/chronos/create/parsing-flags.metadata.json +0 -1
- package/chronos/create/parsing.types.js +0 -1
- package/chronos/create/parsing.types.js.map +0 -1
- package/chronos/create/parsing.types.metadata.json +0 -1
- package/chronos/create/valid.js +0 -42
- package/chronos/create/valid.js.map +0 -1
- package/chronos/create/valid.metadata.json +0 -1
- package/chronos/duration/bubble.js +0 -47
- package/chronos/duration/bubble.js.map +0 -1
- package/chronos/duration/bubble.metadata.json +0 -1
- package/chronos/duration/constructor.js +0 -134
- package/chronos/duration/constructor.js.map +0 -1
- package/chronos/duration/constructor.metadata.json +0 -1
- package/chronos/duration/create.js +0 -114
- package/chronos/duration/create.js.map +0 -1
- package/chronos/duration/create.metadata.json +0 -1
- package/chronos/duration/humanize.js +0 -84
- package/chronos/duration/humanize.js.map +0 -1
- package/chronos/duration/humanize.metadata.json +0 -1
- package/chronos/duration/valid.js +0 -45
- package/chronos/duration/valid.js.map +0 -1
- package/chronos/duration/valid.metadata.json +0 -1
- package/chronos/format/format.js +0 -52
- package/chronos/format/format.js.map +0 -1
- package/chronos/format/format.metadata.json +0 -1
- package/chronos/format.js +0 -48
- package/chronos/format.js.map +0 -1
- package/chronos/format.metadata.json +0 -1
- package/chronos/i18n/ar.js +0 -132
- package/chronos/i18n/ar.js.map +0 -1
- package/chronos/i18n/ar.metadata.json +0 -1
- package/chronos/i18n/cs.js +0 -191
- package/chronos/i18n/cs.js.map +0 -1
- package/chronos/i18n/cs.metadata.json +0 -1
- package/chronos/i18n/da.js +0 -51
- package/chronos/i18n/da.js.map +0 -1
- package/chronos/i18n/da.metadata.json +0 -1
- package/chronos/i18n/de.js +0 -73
- package/chronos/i18n/de.js.map +0 -1
- package/chronos/i18n/de.metadata.json +0 -1
- package/chronos/i18n/en-gb.js +0 -62
- package/chronos/i18n/en-gb.js.map +0 -1
- package/chronos/i18n/en-gb.metadata.json +0 -1
- package/chronos/i18n/es-do.js +0 -86
- package/chronos/i18n/es-do.js.map +0 -1
- package/chronos/i18n/es-do.metadata.json +0 -1
- package/chronos/i18n/es-us.js +0 -80
- package/chronos/i18n/es-us.js.map +0 -1
- package/chronos/i18n/es-us.metadata.json +0 -1
- package/chronos/i18n/es.js +0 -85
- package/chronos/i18n/es.js.map +0 -1
- package/chronos/i18n/es.metadata.json +0 -1
- package/chronos/i18n/fi.js +0 -101
- package/chronos/i18n/fi.js.map +0 -1
- package/chronos/i18n/fi.metadata.json +0 -1
- package/chronos/i18n/fr.js +0 -77
- package/chronos/i18n/fr.js.map +0 -1
- package/chronos/i18n/fr.metadata.json +0 -1
- package/chronos/i18n/gl.js +0 -85
- package/chronos/i18n/gl.js.map +0 -1
- package/chronos/i18n/gl.metadata.json +0 -1
- package/chronos/i18n/he.js +0 -98
- package/chronos/i18n/he.js.map +0 -1
- package/chronos/i18n/he.metadata.json +0 -1
- package/chronos/i18n/hi.js +0 -125
- package/chronos/i18n/hi.js.map +0 -1
- package/chronos/i18n/hi.metadata.json +0 -1
- package/chronos/i18n/hu.js +0 -105
- package/chronos/i18n/hu.js.map +0 -1
- package/chronos/i18n/hu.metadata.json +0 -1
- package/chronos/i18n/id.js +0 -84
- package/chronos/i18n/id.js.map +0 -1
- package/chronos/i18n/id.metadata.json +0 -1
- package/chronos/i18n/it.js +0 -66
- package/chronos/i18n/it.js.map +0 -1
- package/chronos/i18n/it.metadata.json +0 -1
- package/chronos/i18n/ja.js +0 -75
- package/chronos/i18n/ja.js.map +0 -1
- package/chronos/i18n/ja.metadata.json +0 -1
- package/chronos/i18n/ko.js +0 -77
- package/chronos/i18n/ko.js.map +0 -1
- package/chronos/i18n/ko.metadata.json +0 -1
- package/chronos/i18n/mn.js +0 -99
- package/chronos/i18n/mn.js.map +0 -1
- package/chronos/i18n/mn.metadata.json +0 -1
- package/chronos/i18n/nl-be.js +0 -82
- package/chronos/i18n/nl-be.js.map +0 -1
- package/chronos/i18n/nl-be.metadata.json +0 -1
- package/chronos/i18n/nl.js +0 -81
- package/chronos/i18n/nl.js.map +0 -1
- package/chronos/i18n/nl.metadata.json +0 -1
- package/chronos/i18n/pl.js +0 -121
- package/chronos/i18n/pl.js.map +0 -1
- package/chronos/i18n/pl.metadata.json +0 -1
- package/chronos/i18n/pt-br.js +0 -56
- package/chronos/i18n/pt-br.js.map +0 -1
- package/chronos/i18n/pt-br.metadata.json +0 -1
- package/chronos/i18n/ro.js +0 -67
- package/chronos/i18n/ro.js.map +0 -1
- package/chronos/i18n/ro.metadata.json +0 -1
- package/chronos/i18n/ru.js +0 -182
- package/chronos/i18n/ru.js.map +0 -1
- package/chronos/i18n/ru.metadata.json +0 -1
- package/chronos/i18n/sl.js +0 -185
- package/chronos/i18n/sl.js.map +0 -1
- package/chronos/i18n/sl.metadata.json +0 -1
- package/chronos/i18n/sv.js +0 -64
- package/chronos/i18n/sv.js.map +0 -1
- package/chronos/i18n/sv.metadata.json +0 -1
- package/chronos/i18n/th.js +0 -60
- package/chronos/i18n/th.js.map +0 -1
- package/chronos/i18n/th.metadata.json +0 -1
- package/chronos/i18n/tr.js +0 -84
- package/chronos/i18n/tr.js.map +0 -1
- package/chronos/i18n/tr.metadata.json +0 -1
- package/chronos/i18n/zh-cn.js +0 -115
- package/chronos/i18n/zh-cn.js.map +0 -1
- package/chronos/i18n/zh-cn.metadata.json +0 -1
- package/chronos/index.js +0 -7
- package/chronos/index.js.map +0 -1
- package/chronos/index.metadata.json +0 -1
- package/chronos/locale/calendar.js +0 -9
- package/chronos/locale/calendar.js.map +0 -1
- package/chronos/locale/calendar.metadata.json +0 -1
- package/chronos/locale/locale.class.js +0 -550
- package/chronos/locale/locale.class.js.map +0 -1
- package/chronos/locale/locale.class.metadata.json +0 -1
- package/chronos/locale/locale.defaults.js +0 -41
- package/chronos/locale/locale.defaults.js.map +0 -1
- package/chronos/locale/locale.defaults.metadata.json +0 -1
- package/chronos/locale/locales.js +0 -194
- package/chronos/locale/locales.js.map +0 -1
- package/chronos/locale/locales.metadata.json +0 -1
- package/chronos/moment/add-subtract.js +0 -35
- package/chronos/moment/add-subtract.js.map +0 -1
- package/chronos/moment/add-subtract.metadata.json +0 -1
- package/chronos/moment/calendar.js +0 -43
- package/chronos/moment/calendar.js.map +0 -1
- package/chronos/moment/calendar.metadata.json +0 -1
- package/chronos/moment/diff.js +0 -71
- package/chronos/moment/diff.js.map +0 -1
- package/chronos/moment/diff.metadata.json +0 -1
- package/chronos/moment/min-max.js +0 -41
- package/chronos/moment/min-max.js.map +0 -1
- package/chronos/moment/min-max.metadata.json +0 -1
- package/chronos/parse/regex.js +0 -49
- package/chronos/parse/regex.js.map +0 -1
- package/chronos/parse/regex.metadata.json +0 -1
- package/chronos/parse/token.js +0 -31
- package/chronos/parse/token.js.map +0 -1
- package/chronos/parse/token.metadata.json +0 -1
- package/chronos/test/chain.js +0 -738
- package/chronos/test/chain.js.map +0 -1
- package/chronos/test/chain.metadata.json +0 -1
- package/chronos/types.js +0 -1
- package/chronos/types.js.map +0 -1
- package/chronos/types.metadata.json +0 -1
- package/chronos/units/aliases.js +0 -35
- package/chronos/units/aliases.js.map +0 -1
- package/chronos/units/aliases.metadata.json +0 -1
- package/chronos/units/constants.js +0 -11
- package/chronos/units/constants.js.map +0 -1
- package/chronos/units/constants.metadata.json +0 -1
- package/chronos/units/day-of-month.js +0 -28
- package/chronos/units/day-of-month.js.map +0 -1
- package/chronos/units/day-of-week.js +0 -129
- package/chronos/units/day-of-week.js.map +0 -1
- package/chronos/units/day-of-week.metadata.json +0 -1
- package/chronos/units/day-of-year.js +0 -34
- package/chronos/units/day-of-year.js.map +0 -1
- package/chronos/units/day-of-year.metadata.json +0 -1
- package/chronos/units/hour.js +0 -122
- package/chronos/units/hour.js.map +0 -1
- package/chronos/units/index.js +0 -19
- package/chronos/units/index.js.map +0 -1
- package/chronos/units/millisecond.js +0 -58
- package/chronos/units/millisecond.js.map +0 -1
- package/chronos/units/minute.js +0 -20
- package/chronos/units/minute.js.map +0 -1
- package/chronos/units/month.js +0 -61
- package/chronos/units/month.js.map +0 -1
- package/chronos/units/month.metadata.json +0 -1
- package/chronos/units/offset.js +0 -212
- package/chronos/units/offset.js.map +0 -1
- package/chronos/units/offset.metadata.json +0 -1
- package/chronos/units/priorities.js +0 -21
- package/chronos/units/priorities.js.map +0 -1
- package/chronos/units/priorities.metadata.json +0 -1
- package/chronos/units/quarter.js +0 -37
- package/chronos/units/quarter.js.map +0 -1
- package/chronos/units/quarter.metadata.json +0 -1
- package/chronos/units/second.js +0 -20
- package/chronos/units/second.js.map +0 -1
- package/chronos/units/timestamp.js +0 -24
- package/chronos/units/timestamp.js.map +0 -1
- package/chronos/units/timezone.js +0 -17
- package/chronos/units/timezone.js.map +0 -1
- package/chronos/units/timezone.metadata.json +0 -1
- package/chronos/units/week-calendar-utils.js +0 -63
- package/chronos/units/week-calendar-utils.js.map +0 -1
- package/chronos/units/week-calendar-utils.metadata.json +0 -1
- package/chronos/units/week-year.js +0 -102
- package/chronos/units/week-year.js.map +0 -1
- package/chronos/units/week-year.metadata.json +0 -1
- package/chronos/units/week.js +0 -56
- package/chronos/units/week.js.map +0 -1
- package/chronos/units/week.metadata.json +0 -1
- package/chronos/units/year.js +0 -55
- package/chronos/units/year.js.map +0 -1
- package/chronos/units/year.metadata.json +0 -1
- package/chronos/utils/abs-ceil.js +0 -4
- package/chronos/utils/abs-ceil.js.map +0 -1
- package/chronos/utils/abs-ceil.metadata.json +0 -1
- package/chronos/utils/abs-round.js +0 -4
- package/chronos/utils/abs-round.js.map +0 -1
- package/chronos/utils/abs-round.metadata.json +0 -1
- package/chronos/utils/compare-arrays.js +0 -15
- package/chronos/utils/compare-arrays.js.map +0 -1
- package/chronos/utils/compare-arrays.metadata.json +0 -1
- package/chronos/utils/date-compare.js +0 -50
- package/chronos/utils/date-compare.js.map +0 -1
- package/chronos/utils/date-compare.metadata.json +0 -1
- package/chronos/utils/date-getters.js +0 -75
- package/chronos/utils/date-getters.js.map +0 -1
- package/chronos/utils/date-getters.metadata.json +0 -1
- package/chronos/utils/date-setters.js +0 -74
- package/chronos/utils/date-setters.js.map +0 -1
- package/chronos/utils/date-setters.metadata.json +0 -1
- package/chronos/utils/defaults.js +0 -11
- package/chronos/utils/defaults.js.map +0 -1
- package/chronos/utils/defaults.metadata.json +0 -1
- package/chronos/utils/start-end-of.js +0 -57
- package/chronos/utils/start-end-of.js.map +0 -1
- package/chronos/utils/start-end-of.metadata.json +0 -1
- package/chronos/utils/type-checks.js +0 -56
- package/chronos/utils/type-checks.js.map +0 -1
- package/chronos/utils/type-checks.metadata.json +0 -1
- package/chronos/utils/zero-fill.js +0 -10
- package/chronos/utils/zero-fill.js.map +0 -1
- package/chronos/utils/zero-fill.metadata.json +0 -1
- package/chronos/utils.js +0 -7
- package/chronos/utils.js.map +0 -1
- package/chronos/utils.metadata.json +0 -1
- package/collapse/collapse.directive.js +0 -98
- package/collapse/collapse.directive.js.map +0 -1
- package/collapse/collapse.directive.metadata.json +0 -1
- package/collapse/collapse.directive.ngfactory.js.map +0 -1
- package/collapse/collapse.module.js +0 -18
- package/collapse/collapse.module.js.map +0 -1
- package/collapse/collapse.module.metadata.json +0 -1
- package/collapse/collapse.module.ngfactory.js.map +0 -1
- package/collapse/index.js +0 -3
- package/collapse/index.js.map +0 -1
- package/collapse/index.metadata.json +0 -1
- package/component-loader/bs-component-ref.class.js +0 -7
- package/component-loader/bs-component-ref.class.js.map +0 -1
- package/component-loader/bs-component-ref.class.metadata.json +0 -1
- package/component-loader/component-loader.class.js +0 -258
- package/component-loader/component-loader.class.js.map +0 -1
- package/component-loader/component-loader.class.metadata.json +0 -1
- package/component-loader/component-loader.factory.js +0 -50
- package/component-loader/component-loader.factory.js.map +0 -1
- package/component-loader/component-loader.factory.metadata.json +0 -1
- package/component-loader/component-loader.factory.ngfactory.js.map +0 -1
- package/component-loader/content-ref.class.js +0 -14
- package/component-loader/content-ref.class.js.map +0 -1
- package/component-loader/content-ref.class.metadata.json +0 -1
- package/component-loader/index.d.ts +0 -3
- package/component-loader/index.js +0 -4
- package/component-loader/index.js.map +0 -1
- package/component-loader/index.metadata.json +0 -1
- package/component-loader/listen-options.model.js +0 -1
- package/component-loader/listen-options.model.js.map +0 -1
- package/component-loader/listen-options.model.metadata.json +0 -1
- package/datepicker/base/bs-datepicker-container.js +0 -40
- package/datepicker/base/bs-datepicker-container.js.map +0 -1
- package/datepicker/base/bs-datepicker-container.metadata.json +0 -1
- package/datepicker/bs-datepicker-input.directive.js +0 -134
- package/datepicker/bs-datepicker-input.directive.js.map +0 -1
- package/datepicker/bs-datepicker-input.directive.metadata.json +0 -1
- package/datepicker/bs-datepicker-input.directive.ngfactory.js.map +0 -1
- package/datepicker/bs-datepicker.component.js +0 -217
- package/datepicker/bs-datepicker.component.js.map +0 -1
- package/datepicker/bs-datepicker.component.metadata.json +0 -1
- package/datepicker/bs-datepicker.component.ngfactory.js.map +0 -1
- package/datepicker/bs-datepicker.config.js +0 -39
- package/datepicker/bs-datepicker.config.js.map +0 -1
- package/datepicker/bs-datepicker.config.metadata.json +0 -1
- package/datepicker/bs-datepicker.config.ngfactory.js.map +0 -1
- package/datepicker/bs-datepicker.module.js +0 -80
- package/datepicker/bs-datepicker.module.js.map +0 -1
- package/datepicker/bs-datepicker.module.metadata.json +0 -1
- package/datepicker/bs-datepicker.module.ngfactory.js.map +0 -1
- package/datepicker/bs-daterangepicker-input.directive.js +0 -150
- package/datepicker/bs-daterangepicker-input.directive.js.map +0 -1
- package/datepicker/bs-daterangepicker-input.directive.metadata.json +0 -1
- package/datepicker/bs-daterangepicker-input.directive.ngfactory.js.map +0 -1
- package/datepicker/bs-daterangepicker.component.js +0 -220
- package/datepicker/bs-daterangepicker.component.js.map +0 -1
- package/datepicker/bs-daterangepicker.component.metadata.json +0 -1
- package/datepicker/bs-daterangepicker.component.ngfactory.js.map +0 -1
- package/datepicker/bs-daterangepicker.config.js +0 -27
- package/datepicker/bs-daterangepicker.config.js.map +0 -1
- package/datepicker/bs-daterangepicker.config.metadata.json +0 -1
- package/datepicker/bs-daterangepicker.config.ngfactory.js.map +0 -1
- package/datepicker/bs-locale.service.js +0 -42
- package/datepicker/bs-locale.service.js.map +0 -1
- package/datepicker/bs-locale.service.metadata.json +0 -1
- package/datepicker/bs-locale.service.ngfactory.js.map +0 -1
- package/datepicker/date-formatter.js +0 -11
- package/datepicker/date-formatter.js.map +0 -1
- package/datepicker/date-formatter.metadata.json +0 -1
- package/datepicker/datepicker-inner.component.js +0 -317
- package/datepicker/datepicker-inner.component.js.map +0 -1
- package/datepicker/datepicker-inner.component.metadata.json +0 -1
- package/datepicker/datepicker-inner.component.ngfactory.js.map +0 -1
- package/datepicker/datepicker.component.js +0 -114
- package/datepicker/datepicker.component.js.map +0 -1
- package/datepicker/datepicker.component.metadata.json +0 -1
- package/datepicker/datepicker.component.ngfactory.js.map +0 -1
- package/datepicker/datepicker.config.js +0 -28
- package/datepicker/datepicker.config.js.map +0 -1
- package/datepicker/datepicker.config.metadata.json +0 -1
- package/datepicker/datepicker.config.ngfactory.js.map +0 -1
- package/datepicker/datepicker.module.js +0 -39
- package/datepicker/datepicker.module.js.map +0 -1
- package/datepicker/datepicker.module.metadata.json +0 -1
- package/datepicker/datepicker.module.ngfactory.js.map +0 -1
- package/datepicker/daypicker.component.js +0 -116
- package/datepicker/daypicker.component.js.map +0 -1
- package/datepicker/daypicker.component.metadata.json +0 -1
- package/datepicker/daypicker.component.ngfactory.js.map +0 -1
- package/datepicker/engine/calc-days-calendar.js +0 -19
- package/datepicker/engine/calc-days-calendar.js.map +0 -1
- package/datepicker/engine/calc-days-calendar.metadata.json +0 -1
- package/datepicker/engine/flag-days-calendar.js +0 -72
- package/datepicker/engine/flag-days-calendar.js.map +0 -1
- package/datepicker/engine/flag-days-calendar.metadata.json +0 -1
- package/datepicker/engine/flag-months-calendar.js +0 -30
- package/datepicker/engine/flag-months-calendar.js.map +0 -1
- package/datepicker/engine/flag-months-calendar.metadata.json +0 -1
- package/datepicker/engine/flag-years-calendar.js +0 -29
- package/datepicker/engine/flag-years-calendar.js.map +0 -1
- package/datepicker/engine/flag-years-calendar.metadata.json +0 -1
- package/datepicker/engine/format-days-calendar.js +0 -34
- package/datepicker/engine/format-days-calendar.js.map +0 -1
- package/datepicker/engine/format-days-calendar.metadata.json +0 -1
- package/datepicker/engine/format-months-calendar.js +0 -22
- package/datepicker/engine/format-months-calendar.js.map +0 -1
- package/datepicker/engine/format-months-calendar.metadata.json +0 -1
- package/datepicker/engine/format-years-calendar.js +0 -30
- package/datepicker/engine/format-years-calendar.js.map +0 -1
- package/datepicker/engine/format-years-calendar.metadata.json +0 -1
- package/datepicker/engine/view-mode.js +0 -4
- package/datepicker/engine/view-mode.js.map +0 -1
- package/datepicker/engine/view-mode.metadata.json +0 -1
- package/datepicker/index.d.ts +0 -13
- package/datepicker/index.js +0 -14
- package/datepicker/index.js.map +0 -1
- package/datepicker/index.metadata.json +0 -1
- package/datepicker/models/index.js +0 -15
- package/datepicker/models/index.js.map +0 -1
- package/datepicker/models/index.metadata.json +0 -1
- package/datepicker/monthpicker.component.js +0 -56
- package/datepicker/monthpicker.component.js.map +0 -1
- package/datepicker/monthpicker.component.metadata.json +0 -1
- package/datepicker/monthpicker.component.ngfactory.js.map +0 -1
- package/datepicker/reducer/_defaults.js +0 -5
- package/datepicker/reducer/_defaults.js.map +0 -1
- package/datepicker/reducer/_defaults.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.actions.js +0 -104
- package/datepicker/reducer/bs-datepicker.actions.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.actions.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.actions.ngfactory.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.effects.js +0 -179
- package/datepicker/reducer/bs-datepicker.effects.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.effects.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.effects.ngfactory.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.reducer.js +0 -261
- package/datepicker/reducer/bs-datepicker.reducer.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.reducer.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.state.js +0 -16
- package/datepicker/reducer/bs-datepicker.state.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.state.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.store.js +0 -36
- package/datepicker/reducer/bs-datepicker.store.js.map +0 -1
- package/datepicker/reducer/bs-datepicker.store.metadata.json +0 -1
- package/datepicker/reducer/bs-datepicker.store.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-calendar-layout.component.js +0 -14
- package/datepicker/themes/bs/bs-calendar-layout.component.js.map +0 -1
- package/datepicker/themes/bs/bs-calendar-layout.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-calendar-layout.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-current-date-view.component.js +0 -18
- package/datepicker/themes/bs/bs-current-date-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-current-date-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-current-date-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.js +0 -20
- package/datepicker/themes/bs/bs-custom-dates-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-container.component.js +0 -87
- package/datepicker/themes/bs/bs-datepicker-container.component.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-container.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-datepicker-container.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js +0 -28
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.metadata.json +0 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.js +0 -30
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-datepicker-view.html +0 -61
- package/datepicker/themes/bs/bs-daterangepicker-container.component.js +0 -105
- package/datepicker/themes/bs/bs-daterangepicker-container.component.js.map +0 -1
- package/datepicker/themes/bs/bs-daterangepicker-container.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-daterangepicker-container.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.js +0 -42
- package/datepicker/themes/bs/bs-days-calendar-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.js +0 -40
- package/datepicker/themes/bs/bs-months-calendar-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-timepicker-view.component.js +0 -17
- package/datepicker/themes/bs/bs-timepicker-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-timepicker-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-timepicker-view.component.ngfactory.js.map +0 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.js +0 -41
- package/datepicker/themes/bs/bs-years-calendar-view.component.js.map +0 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.metadata.json +0 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.ngfactory.js.map +0 -1
- package/datepicker/utils/bs-calendar-utils.js +0 -30
- package/datepicker/utils/bs-calendar-utils.js.map +0 -1
- package/datepicker/utils/bs-calendar-utils.metadata.json +0 -1
- package/datepicker/utils/matrix-utils.js +0 -14
- package/datepicker/utils/matrix-utils.js.map +0 -1
- package/datepicker/utils/matrix-utils.metadata.json +0 -1
- package/datepicker/yearpicker.component.js +0 -57
- package/datepicker/yearpicker.component.js.map +0 -1
- package/datepicker/yearpicker.component.metadata.json +0 -1
- package/datepicker/yearpicker.component.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown-container.component.js +0 -59
- package/dropdown/bs-dropdown-container.component.js.map +0 -1
- package/dropdown/bs-dropdown-container.component.metadata.json +0 -1
- package/dropdown/bs-dropdown-container.component.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown-menu.directive.js +0 -25
- package/dropdown/bs-dropdown-menu.directive.js.map +0 -1
- package/dropdown/bs-dropdown-menu.directive.metadata.json +0 -1
- package/dropdown/bs-dropdown-menu.directive.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown-toggle.directive.js +0 -63
- package/dropdown/bs-dropdown-toggle.directive.js.map +0 -1
- package/dropdown/bs-dropdown-toggle.directive.metadata.json +0 -1
- package/dropdown/bs-dropdown-toggle.directive.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown.config.js +0 -14
- package/dropdown/bs-dropdown.config.js.map +0 -1
- package/dropdown/bs-dropdown.config.metadata.json +0 -1
- package/dropdown/bs-dropdown.config.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown.directive.js +0 -300
- package/dropdown/bs-dropdown.directive.js.map +0 -1
- package/dropdown/bs-dropdown.directive.metadata.json +0 -1
- package/dropdown/bs-dropdown.directive.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown.module.js +0 -46
- package/dropdown/bs-dropdown.module.js.map +0 -1
- package/dropdown/bs-dropdown.module.metadata.json +0 -1
- package/dropdown/bs-dropdown.module.ngfactory.js.map +0 -1
- package/dropdown/bs-dropdown.state.js +0 -21
- package/dropdown/bs-dropdown.state.js.map +0 -1
- package/dropdown/bs-dropdown.state.metadata.json +0 -1
- package/dropdown/bs-dropdown.state.ngfactory.js.map +0 -1
- package/dropdown/index.js +0 -8
- package/dropdown/index.js.map +0 -1
- package/dropdown/index.metadata.json +0 -1
- package/index.d.ts +0 -24
- package/index.js +0 -25
- package/index.js.map +0 -1
- package/index.metadata.json +0 -1
- package/locale.d.ts +0 -30
- package/locale.js +0 -31
- package/locale.js.map +0 -1
- package/locale.metadata.json +0 -1
- package/mini-ngrx/LICENCE +0 -21
- package/mini-ngrx/index.js +0 -3
- package/mini-ngrx/index.js.map +0 -1
- package/mini-ngrx/index.metadata.json +0 -1
- package/mini-ngrx/state.class.js +0 -30
- package/mini-ngrx/state.class.js.map +0 -1
- package/mini-ngrx/state.class.metadata.json +0 -1
- package/mini-ngrx/store.class.js +0 -46
- package/mini-ngrx/store.class.js.map +0 -1
- package/mini-ngrx/store.class.metadata.json +0 -1
- package/modal/bs-modal-ref.service.js +0 -15
- package/modal/bs-modal-ref.service.js.map +0 -1
- package/modal/bs-modal-ref.service.metadata.json +0 -1
- package/modal/bs-modal-ref.service.ngfactory.js.map +0 -1
- package/modal/bs-modal.service.js +0 -174
- package/modal/bs-modal.service.js.map +0 -1
- package/modal/bs-modal.service.metadata.json +0 -1
- package/modal/bs-modal.service.ngfactory.js.map +0 -1
- package/modal/index.js +0 -9
- package/modal/index.js.map +0 -1
- package/modal/index.metadata.json +0 -1
- package/modal/modal-backdrop.component.js +0 -69
- package/modal/modal-backdrop.component.js.map +0 -1
- package/modal/modal-backdrop.component.metadata.json +0 -1
- package/modal/modal-backdrop.component.ngfactory.js.map +0 -1
- package/modal/modal-backdrop.options.js +0 -9
- package/modal/modal-backdrop.options.js.map +0 -1
- package/modal/modal-backdrop.options.metadata.json +0 -1
- package/modal/modal-container.component.js +0 -103
- package/modal/modal-container.component.js.map +0 -1
- package/modal/modal-container.component.metadata.json +0 -1
- package/modal/modal-container.component.ngfactory.js.map +0 -1
- package/modal/modal-options.class.js +0 -44
- package/modal/modal-options.class.js.map +0 -1
- package/modal/modal-options.class.metadata.json +0 -1
- package/modal/modal-options.class.ngfactory.js.map +0 -1
- package/modal/modal.directive.js +0 -436
- package/modal/modal.directive.js.map +0 -1
- package/modal/modal.directive.metadata.json +0 -1
- package/modal/modal.directive.ngfactory.js.map +0 -1
- package/modal/modal.module.js +0 -31
- package/modal/modal.module.js.map +0 -1
- package/modal/modal.module.metadata.json +0 -1
- package/modal/modal.module.ngfactory.js.map +0 -1
- package/pagination/index.js +0 -5
- package/pagination/index.js.map +0 -1
- package/pagination/index.metadata.json +0 -1
- package/pagination/pager.component.html +0 -12
- package/pagination/pager.component.js +0 -249
- package/pagination/pager.component.js.map +0 -1
- package/pagination/pager.component.metadata.json +0 -1
- package/pagination/pager.component.ngfactory.js.map +0 -1
- package/pagination/pagination.component.html +0 -35
- package/pagination/pagination.component.js +0 -249
- package/pagination/pagination.component.js.map +0 -1
- package/pagination/pagination.component.metadata.json +0 -1
- package/pagination/pagination.component.ngfactory.js.map +0 -1
- package/pagination/pagination.config.js +0 -31
- package/pagination/pagination.config.js.map +0 -1
- package/pagination/pagination.config.metadata.json +0 -1
- package/pagination/pagination.config.ngfactory.js.map +0 -1
- package/pagination/pagination.module.js +0 -22
- package/pagination/pagination.module.js.map +0 -1
- package/pagination/pagination.module.metadata.json +0 -1
- package/pagination/pagination.module.ngfactory.js.map +0 -1
- package/popover/index.js +0 -5
- package/popover/index.js.map +0 -1
- package/popover/index.metadata.json +0 -1
- package/popover/popover-container.component.html +0 -5
- package/popover/popover-container.component.js +0 -43
- package/popover/popover-container.component.js.map +0 -1
- package/popover/popover-container.component.metadata.json +0 -1
- package/popover/popover-container.component.ngfactory.js.map +0 -1
- package/popover/popover.config.js +0 -27
- package/popover/popover.config.js.map +0 -1
- package/popover/popover.config.metadata.json +0 -1
- package/popover/popover.config.ngfactory.js.map +0 -1
- package/popover/popover.directive.js +0 -165
- package/popover/popover.directive.js.map +0 -1
- package/popover/popover.directive.metadata.json +0 -1
- package/popover/popover.directive.ngfactory.js.map +0 -1
- package/popover/popover.module.js +0 -28
- package/popover/popover.module.js.map +0 -1
- package/popover/popover.module.metadata.json +0 -1
- package/popover/popover.module.ngfactory.js.map +0 -1
- package/positioning/index.js +0 -3
- package/positioning/index.js.map +0 -1
- package/positioning/index.metadata.json +0 -1
- package/positioning/ng-positioning.js +0 -216
- package/positioning/ng-positioning.js.map +0 -1
- package/positioning/ng-positioning.metadata.json +0 -1
- package/positioning/positioning.service.js +0 -26
- package/positioning/positioning.service.js.map +0 -1
- package/positioning/positioning.service.metadata.json +0 -1
- package/positioning/positioning.service.ngfactory.js.map +0 -1
- package/progressbar/bar.component.html +0 -1
- package/progressbar/bar.component.js +0 -87
- package/progressbar/bar.component.js.map +0 -1
- package/progressbar/bar.component.metadata.json +0 -1
- package/progressbar/bar.component.ngfactory.js.map +0 -1
- package/progressbar/index.js +0 -5
- package/progressbar/index.js.map +0 -1
- package/progressbar/index.metadata.json +0 -1
- package/progressbar/progressbar.component.html +0 -6
- package/progressbar/progressbar.component.js +0 -76
- package/progressbar/progressbar.component.js.map +0 -1
- package/progressbar/progressbar.component.metadata.json +0 -1
- package/progressbar/progressbar.component.ngfactory.js.map +0 -1
- package/progressbar/progressbar.config.js +0 -15
- package/progressbar/progressbar.config.js.map +0 -1
- package/progressbar/progressbar.config.metadata.json +0 -1
- package/progressbar/progressbar.config.ngfactory.js.map +0 -1
- package/progressbar/progressbar.module.js +0 -22
- package/progressbar/progressbar.module.js.map +0 -1
- package/progressbar/progressbar.module.metadata.json +0 -1
- package/progressbar/progressbar.module.ngfactory.js.map +0 -1
- package/rating/index.js +0 -3
- package/rating/index.js.map +0 -1
- package/rating/index.metadata.json +0 -1
- package/rating/rating.component.html +0 -18
- package/rating/rating.component.js +0 -111
- package/rating/rating.component.js.map +0 -1
- package/rating/rating.component.metadata.json +0 -1
- package/rating/rating.component.ngfactory.js.map +0 -1
- package/rating/rating.module.js +0 -23
- package/rating/rating.module.js.map +0 -1
- package/rating/rating.module.metadata.json +0 -1
- package/rating/rating.module.ngfactory.js.map +0 -1
- package/sortable/draggable-item.js +0 -1
- package/sortable/draggable-item.js.map +0 -1
- package/sortable/draggable-item.metadata.json +0 -1
- package/sortable/draggable-item.service.js +0 -34
- package/sortable/draggable-item.service.js.map +0 -1
- package/sortable/draggable-item.service.metadata.json +0 -1
- package/sortable/draggable-item.service.ngfactory.js.map +0 -1
- package/sortable/index.js +0 -4
- package/sortable/index.js.map +0 -1
- package/sortable/index.metadata.json +0 -1
- package/sortable/sortable.component.js +0 -186
- package/sortable/sortable.component.js.map +0 -1
- package/sortable/sortable.component.metadata.json +0 -1
- package/sortable/sortable.component.ngfactory.js.map +0 -1
- package/sortable/sortable.module.js +0 -21
- package/sortable/sortable.module.js.map +0 -1
- package/sortable/sortable.module.metadata.json +0 -1
- package/sortable/sortable.module.ngfactory.js.map +0 -1
- package/spec/ng-bootstrap/license +0 -23
- package/tabs/index.js +0 -7
- package/tabs/index.js.map +0 -1
- package/tabs/index.metadata.json +0 -1
- package/tabs/ng-transclude.directive.js +0 -34
- package/tabs/ng-transclude.directive.js.map +0 -1
- package/tabs/ng-transclude.directive.metadata.json +0 -1
- package/tabs/ng-transclude.directive.ngfactory.js.map +0 -1
- package/tabs/tab-heading.directive.js +0 -19
- package/tabs/tab-heading.directive.js.map +0 -1
- package/tabs/tab-heading.directive.metadata.json +0 -1
- package/tabs/tab-heading.directive.ngfactory.js.map +0 -1
- package/tabs/tab.directive.js +0 -97
- package/tabs/tab.directive.js.map +0 -1
- package/tabs/tab.directive.metadata.json +0 -1
- package/tabs/tab.directive.ngfactory.js.map +0 -1
- package/tabs/tabs.module.js +0 -37
- package/tabs/tabs.module.js.map +0 -1
- package/tabs/tabs.module.metadata.json +0 -1
- package/tabs/tabs.module.ngfactory.js.map +0 -1
- package/tabs/tabset.component.html +0 -15
- package/tabs/tabset.component.js +0 -134
- package/tabs/tabset.component.js.map +0 -1
- package/tabs/tabset.component.metadata.json +0 -1
- package/tabs/tabset.component.ngfactory.js.map +0 -1
- package/tabs/tabset.config.js +0 -13
- package/tabs/tabset.config.js.map +0 -1
- package/tabs/tabset.config.metadata.json +0 -1
- package/tabs/tabset.config.ngfactory.js.map +0 -1
- package/timepicker/index.js +0 -6
- package/timepicker/index.js.map +0 -1
- package/timepicker/index.metadata.json +0 -1
- package/timepicker/reducer/timepicker.actions.js +0 -53
- package/timepicker/reducer/timepicker.actions.js.map +0 -1
- package/timepicker/reducer/timepicker.actions.metadata.json +0 -1
- package/timepicker/reducer/timepicker.actions.ngfactory.js.map +0 -1
- package/timepicker/reducer/timepicker.reducer.js +0 -90
- package/timepicker/reducer/timepicker.reducer.js.map +0 -1
- package/timepicker/reducer/timepicker.reducer.metadata.json +0 -1
- package/timepicker/reducer/timepicker.store.js +0 -34
- package/timepicker/reducer/timepicker.store.js.map +0 -1
- package/timepicker/reducer/timepicker.store.metadata.json +0 -1
- package/timepicker/reducer/timepicker.store.ngfactory.js.map +0 -1
- package/timepicker/timepicker-controls.util.js +0 -122
- package/timepicker/timepicker-controls.util.js.map +0 -1
- package/timepicker/timepicker-controls.util.metadata.json +0 -1
- package/timepicker/timepicker.component.html +0 -122
- package/timepicker/timepicker.component.js +0 -288
- package/timepicker/timepicker.component.js.map +0 -1
- package/timepicker/timepicker.component.metadata.json +0 -1
- package/timepicker/timepicker.component.ngfactory.js.map +0 -1
- package/timepicker/timepicker.config.js +0 -36
- package/timepicker/timepicker.config.js.map +0 -1
- package/timepicker/timepicker.config.metadata.json +0 -1
- package/timepicker/timepicker.config.ngfactory.js.map +0 -1
- package/timepicker/timepicker.models.js +0 -1
- package/timepicker/timepicker.models.js.map +0 -1
- package/timepicker/timepicker.models.metadata.json +0 -1
- package/timepicker/timepicker.module.js +0 -26
- package/timepicker/timepicker.module.js.map +0 -1
- package/timepicker/timepicker.module.metadata.json +0 -1
- package/timepicker/timepicker.module.ngfactory.js.map +0 -1
- package/timepicker/timepicker.utils.js +0 -141
- package/timepicker/timepicker.utils.js.map +0 -1
- package/timepicker/timepicker.utils.metadata.json +0 -1
- package/tooltip/index.js +0 -5
- package/tooltip/index.js.map +0 -1
- package/tooltip/index.metadata.json +0 -1
- package/tooltip/tooltip-container.component.js +0 -50
- package/tooltip/tooltip-container.component.js.map +0 -1
- package/tooltip/tooltip-container.component.metadata.json +0 -1
- package/tooltip/tooltip-container.component.ngfactory.js.map +0 -1
- package/tooltip/tooltip.config.js +0 -16
- package/tooltip/tooltip.config.js.map +0 -1
- package/tooltip/tooltip.config.metadata.json +0 -1
- package/tooltip/tooltip.config.ngfactory.js.map +0 -1
- package/tooltip/tooltip.directive.js +0 -315
- package/tooltip/tooltip.directive.js.map +0 -1
- package/tooltip/tooltip.directive.metadata.json +0 -1
- package/tooltip/tooltip.directive.ngfactory.js.map +0 -1
- package/tooltip/tooltip.module.js +0 -28
- package/tooltip/tooltip.module.js.map +0 -1
- package/tooltip/tooltip.module.metadata.json +0 -1
- package/tooltip/tooltip.module.ngfactory.js.map +0 -1
- package/tsconfig.spec.json +0 -41
- package/typeahead/index.d.ts +0 -7
- package/typeahead/index.js +0 -8
- package/typeahead/index.js.map +0 -1
- package/typeahead/index.metadata.json +0 -1
- package/typeahead/latin-map.js +0 -828
- package/typeahead/latin-map.js.map +0 -1
- package/typeahead/latin-map.metadata.json +0 -1
- package/typeahead/typeahead-container.component.html +0 -42
- package/typeahead/typeahead-container.component.js +0 -240
- package/typeahead/typeahead-container.component.js.map +0 -1
- package/typeahead/typeahead-container.component.metadata.json +0 -1
- package/typeahead/typeahead-container.component.ngfactory.js.map +0 -1
- package/typeahead/typeahead-match.class.js +0 -18
- package/typeahead/typeahead-match.class.js.map +0 -1
- package/typeahead/typeahead-match.class.metadata.json +0 -1
- package/typeahead/typeahead-options.class.js +0 -8
- package/typeahead/typeahead-options.class.js.map +0 -1
- package/typeahead/typeahead-options.class.metadata.json +0 -1
- package/typeahead/typeahead-utils.js +0 -60
- package/typeahead/typeahead-utils.js.map +0 -1
- package/typeahead/typeahead-utils.metadata.json +0 -1
- package/typeahead/typeahead.directive.js +0 -383
- package/typeahead/typeahead.directive.js.map +0 -1
- package/typeahead/typeahead.directive.metadata.json +0 -1
- package/typeahead/typeahead.directive.ngfactory.js.map +0 -1
- package/typeahead/typeahead.module.js +0 -27
- package/typeahead/typeahead.module.js.map +0 -1
- package/typeahead/typeahead.module.metadata.json +0 -1
- package/typeahead/typeahead.module.ngfactory.js.map +0 -1
- package/utils/decorators.js +0 -21
- package/utils/decorators.js.map +0 -1
- package/utils/decorators.metadata.json +0 -1
- package/utils/facade/browser.js +0 -25
- package/utils/facade/browser.js.map +0 -1
- package/utils/facade/browser.metadata.json +0 -1
- package/utils/index.d.ts +0 -6
- package/utils/index.js +0 -7
- package/utils/index.js.map +0 -1
- package/utils/index.metadata.json +0 -1
- package/utils/linked-list.class.js +0 -244
- package/utils/linked-list.class.js.map +0 -1
- package/utils/linked-list.class.metadata.json +0 -1
- package/utils/theme-provider.js +0 -35
- package/utils/theme-provider.js.map +0 -1
- package/utils/theme-provider.metadata.json +0 -1
- package/utils/trigger.class.js +0 -16
- package/utils/trigger.class.js.map +0 -1
- package/utils/trigger.class.metadata.json +0 -1
- package/utils/triggers.js +0 -94
- package/utils/triggers.js.map +0 -1
- package/utils/triggers.metadata.json +0 -1
- package/utils/utils.class.js +0 -25
- package/utils/utils.class.js.map +0 -1
- package/utils/utils.class.metadata.json +0 -1
- package/utils/warn-once.js +0 -12
- package/utils/warn-once.js.map +0 -1
- package/utils/warn-once.metadata.json +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["webpack://ngx-bootstrap.umd/webpack/universalModuleDefinition","webpack://ngx-bootstrap.umd/webpack/bootstrap","webpack://ngx-bootstrap.umd/external \"@angular/core\"","webpack://ngx-bootstrap.umd/external \"@angular/common\"","webpack://ngx-bootstrap.umd/external \"rxjs/operators\"","webpack://ngx-bootstrap.umd/external \"@angular/forms\"","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/date-from-array.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/zero-fill.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/type-checks.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/format/format.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/date-getters.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/parse/regex.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/parse/token.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/constants.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/priorities.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/aliases.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/year.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/parsing-flags.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/month.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/date-setters.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/clone.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/duration/valid.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/abs-ceil.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/duration/bubble.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/duration/humanize.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/duration/constructor.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/valid.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-string.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/day-of-month.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/hour.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/millisecond.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/minute.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/offset.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/quarter.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/second.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/timestamp.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/week.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/week-year.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/index.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/format.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/defaults.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-array.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/check-overflow.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-string-and-format.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-string-and-array.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-object.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/from-anything.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/create/local.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/abs-round.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/date-compare.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/duration/create.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/moment/add-subtract.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/day-of-week.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/start-end-of.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/day-of-year.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/units/week-calendar-utils.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/locale/locale.class.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/locale/calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/locale/locale.defaults.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/utils/compare-arrays.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/locale/locales.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/facade/browser.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/theme-provider.ts","webpack://ngx-bootstrap.umd/./.tmp/accordion/accordion.component.ts","webpack://ngx-bootstrap.umd/./.tmp/accordion/accordion-group.component.ts","webpack://ngx-bootstrap.umd/./.tmp/collapse/collapse.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/collapse/collapse.module.ts","webpack://ngx-bootstrap.umd/./.tmp/accordion/accordion.config.ts","webpack://ngx-bootstrap.umd/./.tmp/accordion/accordion.module.ts","webpack://ngx-bootstrap.umd/./.tmp/accordion/index.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/decorators.ts","webpack://ngx-bootstrap.umd/./.tmp/alert/alert.component.ts","webpack://ngx-bootstrap.umd/./.tmp/alert/alert.config.ts","webpack://ngx-bootstrap.umd/./.tmp/alert/alert.module.ts","webpack://ngx-bootstrap.umd/./.tmp/alert/index.ts","webpack://ngx-bootstrap.umd/./.tmp/buttons/button-checkbox.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/buttons/button-radio-group.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/buttons/button-radio.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/buttons/buttons.module.ts","webpack://ngx-bootstrap.umd/./.tmp/buttons/index.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/linked-list.class.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/trigger.class.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/utils.class.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/index.ts","webpack://ngx-bootstrap.umd/./.tmp/carousel/carousel.component.ts","webpack://ngx-bootstrap.umd/./.tmp/carousel/slide.component.ts","webpack://ngx-bootstrap.umd/./.tmp/carousel/carousel.config.ts","webpack://ngx-bootstrap.umd/./.tmp/carousel/carousel.module.ts","webpack://ngx-bootstrap.umd/./.tmp/carousel/index.ts","webpack://ngx-bootstrap.umd/./.tmp/collapse/index.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/date-formatter.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/datepicker-inner.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/datepicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/datepicker.config.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/daypicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/monthpicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/yearpicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/datepicker.module.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/triggers.ts","webpack://ngx-bootstrap.umd/./.tmp/component-loader/content-ref.class.ts","webpack://ngx-bootstrap.umd/./.tmp/component-loader/component-loader.class.ts","webpack://ngx-bootstrap.umd/./.tmp/component-loader/component-loader.factory.ts","webpack://ngx-bootstrap.umd/./.tmp/positioning/ng-positioning.ts","webpack://ngx-bootstrap.umd/./.tmp/positioning/positioning.service.ts","webpack://ngx-bootstrap.umd/./.tmp/utils/warn-once.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-datepicker-input.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/base/bs-datepicker-container.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/bs-datepicker.effects.ts","webpack://ngx-bootstrap.umd/./node_modules/tslib/tslib.es6.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/config.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Observer.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isArray.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isObject.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/errorObject.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/tryCatch.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Subscription.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Subscriber.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/noop.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/pipe.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Observable.js","webpack://ngx-bootstrap.umd/./.tmp/mini-ngrx/store.class.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/_defaults.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-datepicker.config.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/bs-datepicker.state.ts","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Subject.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/BehaviorSubject.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/Scheduler.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack://ngx-bootstrap.umd/./.tmp/mini-ngrx/state.class.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/bs-datepicker.actions.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/utils/bs-calendar-utils.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/utils/matrix-utils.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/calc-days-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/format-days-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/flag-days-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/view-mode.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/format-months-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/flag-months-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/format-years-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/engine/flag-years-calendar.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/bs-datepicker.reducer.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/reducer/bs-datepicker.store.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-datepicker-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-datepicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-daterangepicker-input.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-daterangepicker-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-daterangepicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-daterangepicker.config.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-locale.service.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-calendar-layout.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-current-date-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-custom-dates-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-datepicker-day-decorator.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/models/index.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-datepicker-navigation-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-days-calendar-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-months-calendar-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-timepicker-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/themes/bs/bs-years-calendar-view.component.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/bs-datepicker.module.ts","webpack://ngx-bootstrap.umd/./.tmp/datepicker/index.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/bs-modal-ref.service.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal-backdrop.options.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal-options.class.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal-backdrop.component.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/positioning/index.ts","webpack://ngx-bootstrap.umd/./.tmp/component-loader/index.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/bs-modal.service.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/modal.module.ts","webpack://ngx-bootstrap.umd/./.tmp/modal/index.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown.state.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown-menu.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown-toggle.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown.config.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/bs-dropdown.module.ts","webpack://ngx-bootstrap.umd/./.tmp/dropdown/index.ts","webpack://ngx-bootstrap.umd/./.tmp/pagination/pager.component.ts","webpack://ngx-bootstrap.umd/./.tmp/pagination/pagination.component.ts","webpack://ngx-bootstrap.umd/./.tmp/pagination/pagination.config.ts","webpack://ngx-bootstrap.umd/./.tmp/pagination/pagination.module.ts","webpack://ngx-bootstrap.umd/./.tmp/pagination/index.ts","webpack://ngx-bootstrap.umd/./.tmp/progressbar/bar.component.ts","webpack://ngx-bootstrap.umd/./.tmp/progressbar/progressbar.component.ts","webpack://ngx-bootstrap.umd/./.tmp/progressbar/progressbar.config.ts","webpack://ngx-bootstrap.umd/./.tmp/progressbar/progressbar.module.ts","webpack://ngx-bootstrap.umd/./.tmp/progressbar/index.ts","webpack://ngx-bootstrap.umd/./.tmp/rating/rating.component.ts","webpack://ngx-bootstrap.umd/./.tmp/rating/rating.module.ts","webpack://ngx-bootstrap.umd/./.tmp/rating/index.ts","webpack://ngx-bootstrap.umd/./.tmp/sortable/sortable.component.ts","webpack://ngx-bootstrap.umd/./.tmp/sortable/draggable-item.service.ts","webpack://ngx-bootstrap.umd/./.tmp/sortable/sortable.module.ts","webpack://ngx-bootstrap.umd/./.tmp/sortable/index.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/ng-transclude.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/tab.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/tab-heading.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/tabset.component.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/tabset.config.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/tabs.module.ts","webpack://ngx-bootstrap.umd/./.tmp/tabs/index.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/timepicker.utils.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/timepicker-controls.util.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/timepicker.config.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/reducer/timepicker.actions.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/reducer/timepicker.reducer.ts","webpack://ngx-bootstrap.umd/./.tmp/mini-ngrx/index.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/reducer/timepicker.store.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/timepicker.component.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/timepicker.module.ts","webpack://ngx-bootstrap.umd/./.tmp/timepicker/index.ts","webpack://ngx-bootstrap.umd/./.tmp/tooltip/tooltip-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/tooltip/tooltip.config.ts","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/scheduler/async.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isNumeric.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/timer.js","webpack://ngx-bootstrap.umd/./.tmp/tooltip/tooltip.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/tooltip/tooltip.module.ts","webpack://ngx-bootstrap.umd/./.tmp/tooltip/index.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/latin-map.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead-options.class.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead-match.class.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead-utils.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead-container.component.ts","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/isIterable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/fromPromise.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/fromIterable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/fromObservable.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack://ngx-bootstrap.umd/./node_modules/rxjs/_esm5/internal/observable/from.js","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/typeahead.module.ts","webpack://ngx-bootstrap.umd/./.tmp/typeahead/index.ts","webpack://ngx-bootstrap.umd/./.tmp/popover/popover.config.ts","webpack://ngx-bootstrap.umd/./.tmp/popover/popover-container.component.ts","webpack://ngx-bootstrap.umd/./.tmp/popover/popover.directive.ts","webpack://ngx-bootstrap.umd/./.tmp/popover/popover.module.ts","webpack://ngx-bootstrap.umd/./.tmp/popover/index.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/index.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/ar.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/cs.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/da.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/de.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/en-gb.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/es.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/es-do.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/es-us.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/fi.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/fr.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/hi.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/hu.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/id.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/it.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/ja.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/ko.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/mn.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/nl.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/nl-be.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/pl.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/pt-br.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/sv.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/ru.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/ro.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/zh-cn.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/tr.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/he.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/th.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/sl.ts","webpack://ngx-bootstrap.umd/./.tmp/chronos/i18n/gl.ts","webpack://ngx-bootstrap.umd/./.tmp/locale.ts","webpack://ngx-bootstrap.umd/./.tmp/index.ts"],"names":[],"mappings":"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AK;AACL;AACA;AACA,KAAK;AACL;AACA;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW,EAAE;AACzC;AACA;;;ACTA;AACiB;AACS;AAC1B;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B;AAC3B;AACA;;;AChBA;AACA,sDAAqD,0CAA0C,EAAE;AACjG;;;ACFA;AACA;AACA;AACA;AACA;;;ACJA;AACA;AACA,mBAA0B,MAAM;AAChC;;;ACHA;AACsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChBA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,0GAA0G,sCAAsC,EAAE;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACnBA;AACkB;AACC;AACE;AACF;AACG;AACQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACO;AACR;AACA,+CAA+C,iGAA6E,EAAE;AAC9H;AACA;;;ACrMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACRA;AACA;AACqB;AACY;AACV;AACsB;AAC5B;AACS;AAC1B;AACA,mBAAmB,eAAe;AAClC,IAAI,mBAAmB,mBAAmB,eAAe;AACzD,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD;AACA,eAAe,wBAAwB;AACvC;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAA4D,aAAa;AACzE;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,wBAAwB;AACvC;AACA,eAAe,iBAAiB;AAChC;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,yCAAyC,YAAY;AACrD;AACA,eAAe,IAAI;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6CAA6C;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;;ACxSA;AACqB;AACwB;AACZ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClBA;AACA;AACA;AACA;;;ACHA;AACA;AACA,iBAAwB;AACxB;;;ACHA;AACe;AACf;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,EAAE;AAClE;AACA;AACA;;;ACtBA;AACuB;AACmB;AAClB;AACP;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG;AACjG;AACA,uFAAuF,gBAAgB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,kBAAkB;AAClB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA,eAAe,SAAS;AACxB;AACA,eAAe,SAAS;AACxB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,mBAAmB;AAClC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB,EAAE,kBAAkB,oBAAoB,EAAE,eAAe,uBAAuB,EAAE;AAC9I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxSA;;GAEG;AACmD;AACK;AAG3D;IAAkC,uCAAa;IAC7C,mBACU,WAA6B,EAC7B,QAA4B,EACpC,MAAuB;QAHzB,YAKE,iBAAO,SAGR;QAPS,iBAAW,GAAX,WAAW,CAAkB;QAC7B,cAAQ,GAAR,QAAQ,CAAoB;QAKpC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;IACvB,CAAC;IAED,0BAAM,GAAN,UAAU,WAA4B;QACpC,IAAM,OAAO,GAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,0CAAoB,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,wBAAI,GAAJ,UAAQ,QAAwB;QAC9B,IAAM,KAAK,GAAG,IAAI,SAAS,CAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtE,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE1B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED,4BAAQ,GAAR,UAAS,MAAc;QACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,wBAAI,GAAJ,UAAK,MAAc;QACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,yBAAK,GAAL,UAAM,GAAQ;QACZ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,4BAAQ,GAAR;QACE,QAAQ;IACV,CAAC;IACH,gBAAC;AAAD,CAAC,CAvCiC,qBAAU,GAuC3C;;;;AC1CM,IAAM,mBAAmB,GAAqB;IACnD,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;CACV,CAAC;;;;;;;;;ACPyC;AAM3C;;;GAGG;AAEH;IADA;QAcE;;WAEG;QACH,mBAAc,GAAG,aAAa,CAAC;QAE/B,0BAA0B;QAC1B,kBAAa,GAAG,CAAC,CAAC;QAClB;;WAEG;QACH,oBAAe,GAAG,IAAI,CAAC;QAEvB,oBAAe,GAAG,GAAG,CAAC;QACtB,eAAe;QACf,mBAAc,GAAG,KAAK,CAAC;QACvB;;WAEG;QACH,qBAAgB,GAAG,GAAG,CAAC;QAEvB,0BAA0B;QAC1B,eAAU,GAAG,MAAM,CAAC;QACpB,cAAS,GAAG,MAAM,CAAC;QACnB,aAAQ,GAAG,GAAG,CAAC;QACf,eAAU,GAAG,MAAM,CAAC;QACpB,cAAS,GAAG,MAAM,CAAC;QACnB,gBAAW,GAAG,GAAG,CAAC;IACpB,CAAC;IAxCY,kBAAkB;QAD9B,2BAAU,EAAE;OACA,kBAAkB,CAwC9B;IAAD,yBAAC;CAAA;AAxC8B;;;ACDmB;AACW;AAO7D;IAAA;IAkDA,CAAC;IAAD,wBAAC;AAAD,CAAC;;AAED,IAAM,YAAY,GAA0B,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAEvE,IAAM,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CACpE,IAAI,uCAAkB,EAAE,EACxB;IACE,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,YAAY;IAClB,aAAa,EAAE,EAAE;IACjB,gBAAgB,EAAE,mBAAmB;CACtC,CACF,CAAC;;;AChFF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACtBA;AACA;AACuB;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACpCA;AACA;AACqB;AACA;AACE;AACW;AACJ;AACe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;AC1KA;AACA;AACkB;AACgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;AC9CA;AACA;AACuB;AACvB;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACzCA;AACA;AACiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;AChJA;AACA;AACsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACjDA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;AACA,eAAe,OAAO;AACtB;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA,CAAC;AACO;AACR;;;ACvDA;AACA;AACoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACtEA;AACA;AACyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACO;AACR;;;ACXA;AACsB;AACG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7DmE;AAClB;AAGjD;IAAkC,uCAAkB;IAClD,mBACE,aAAgB,EAChB,kBAAsC,EACtC,OAAyB;QAH3B,YAKE,kBAAM,aAAa,CAAC,SAiBrB;QAfC,IAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAC5C,+BAAS,CAAC,KAAc,CAAC,CAC1B,CAAC;QACF,IAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAChC,0BAAI,CAAC,UAAC,KAAQ,EAAE,MAAc;YAC5B,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC;YACf,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,EACD,aAAa,CACd,CAAC,CAAC;QAEH,MAAM,CAAC,SAAS,CAAC,UAAC,KAAQ,IAAK,YAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;;IACnD,CAAC;IACH,gBAAC;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CA;AACkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACTA;AACA;AACA;AACA;AACA;;;ACJA;AACqB;AACL;AACI;AACE;AACtB;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,SAAS;AACT;AACA,WAAW,YAAY;AACvB;AACA,WAAW,qBAAqB;AAChC;AACA,WAAW,cAAc;AACzB;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClFA,6BAA6B;AAYN;AACmD;AACzB;AAEF;AACD;AACI;AACrB;AAM7B;IAoKE,0BAAY,iBAAmC,EACpB,SAAoB,EACpB,WAAuB,EAC/B,GAA2B,EAC3B,MAAqB;QAHb,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAY;QA/JlD,yCAAyC;QAEzC,kBAAa,GAA4C,IAAI,qBAAY,EAAE,CAAC;QAsC5E;;WAEG;QACM,mBAAc,GAAG,EAAE,CAAC;QAqE7B,4DAA4D;QACjC,eAAU,GAAG,IAAI,CAAC;QAqB7C,kBAAkB;QACY,kBAAa,GAAG,GAAG,CAAC;QAclD,kBAAkB;QAElB,wBAAmB,GAA0B,IAAI,qBAAY,EAAW,CAAC;QAWvE,IAAI,CAAC,QAAQ,GAAG,GAAG;aAChB,YAAY,CACX,IAAI,CAAC,WAAW,EAChB,iBAAiB,EACjB,IAAI,CAAC,SAAS,CACf;aACA,OAAO,CAAC,EAAC,OAAO,EAAE,4BAAa,EAAE,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,MAAM,CAAC,IAAI,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GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,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AAE,QAAQ;gBAC1B,KAAK,EAAE,oCAAoC;aAC5C;SACF,CAAC;OACW,2BAA2B,CAqOvC;IAAD,kCAAC;CAAA;AArOuC;;;AC9BxC;AACA;AACA;AACA;AACA;;;ACJA;AACA,iCAAwC,qEAAqE,EAAE;AAC/G;;;ACFA;AAC0C;AAC1C;AACA;AACA;AACA;AACA;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;;;ACZA;AACsC;AACtC;AACA;AACA;AACA;AACA;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACfA;AACqB;AACE;AACI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;;AC1BA;AAC0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,8BAA8B,EAAE;AAC3D;AACA;AACA;AACA;AACA;;;ACdA;AACqB;AACE;AACM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B,EAAE;AAChG,qBAAqB;AACrB,iBAAiB;AACjB,4DAA4D,8BAA8B,EAAE;AAC5F,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;;ACzBA;AACsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AC3BA;AACqB;AACE;AACe;AACR;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;;ACpDA;AAC0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnBA;AACqB;AACE;AACmB;AACV;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yCAAyC,+BAA+B,EAAE,GAAG,EAAE;AAC3H,2CAA2C,yCAAyC,8BAA8B,EAAE,GAAG,EAAE;AACzH,2CAA2C,yCAAyC,8BAA8B,EAAE,GAAG,EAAE;AACzH,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;;ACxBA;AACqB;AACM;AACE;AACC;AACE;AACV;AACF;AACD;AACmB;AACI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3CA;AACqB;AACD;AACE;AACQ;AACT;AACD;AACE;AACC;AACE;AACH;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCA,wCAAwC;AAcjB;AAG+B;AAEwB;AACrB;AACkB;AACS;AAGpF;IAyGE,4BAAoB,SAAoB,EACpB,OAAmB,EAC3B,gBAAkC,EAC1B,QAAmB,EAC3B,GAA2B,EACnB,eAAkC;QALlC,cAAS,GAAT,SAAS,CAAW;QACpB,YAAO,GAAP,OAAO,CAAY;QAEnB,aAAQ,GAAR,QAAQ,CAAW;QAEnB,oBAAe,GAAf,eAAe,CAAmB;QAzGtD;;;WAGG;QACM,uBAAkB,GAAW,KAAK,CAAC,CAAC;QAc7C;;;WAGG;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","file":"ngx-bootstrap.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@angular/core\"), require(\"@angular/common\"), require(\"rxjs/operators\"), require(\"@angular/forms\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@angular/core\", \"@angular/common\", \"rxjs/operators\", \"@angular/forms\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ngx-bootstrap.umd\"] = factory(require(\"@angular/core\"), require(\"@angular/common\"), require(\"rxjs/operators\"), require(\"@angular/forms\"));\n\telse\n\t\troot[\"ngx-bootstrap.umd\"] = factory(root[\"@angular/core\"], root[\"@angular/common\"], root[\"rxjs/operators\"], root[\"@angular/forms\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__3__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","export function createUTCDate(y?: number,\n m?: number,\n d?: number): Date {\n const date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n\n return date;\n}\n\nexport function createDate(y?: number,\n m = 0,\n d = 1,\n h = 0,\n M = 0,\n s = 0,\n ms = 0): Date {\n const date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n\n return date;\n}\n","export function zeroFill(num: number,\n targetLength: number,\n forceSign?: boolean): string {\n const absNumber = `${Math.abs(num)}`;\n const zerosToFill = targetLength - absNumber.length;\n const sign = num >= 0;\n const _sign = sign ? (forceSign ? '+' : '') : '-';\n // todo: this is crazy slow\n const _zeros = Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1);\n\n return (_sign + _zeros + absNumber);\n}\n","\n\nexport function mod(n: number, x: number): number {\n return (n % x + x) % x;\n}\n\nexport function absFloor(num: number): number {\n return num < 0 ? Math.ceil(num) || 0 : Math.floor(num);\n}\n\n","import { absFloor } from '../utils';\n\nexport function isString(str: any): str is string {\n return typeof str === 'string';\n}\n\nexport function isDate(value: any): value is Date {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false;\n}\n\nexport function isDateValid(date: Date): boolean {\n return date && date.getTime && !isNaN(date.getTime());\n}\n\nexport function isFunction(fn: any): fn is Function {\n return (\n fn instanceof Function ||\n Object.prototype.toString.call(fn) === '[object Function]'\n );\n}\n\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\nexport function isArray<T>(input?: any): input is T[] {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nexport function hasOwnProp<T>(a: T /*object*/, b: string): b is keyof T {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nexport function isObject<T>(input: any /*object*/): input is T {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null && Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nexport function isObjectEmpty(obj: any): boolean {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n }\n let k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n\n return true;\n}\n\n\nexport function isUndefined(input: any): boolean {\n return input === void 0;\n}\n\nexport function toInt<T>(argumentForCoercion: string | number | T): number {\n const coercedNumber = +argumentForCoercion;\n let value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n","import { Locale } from '../locale/locale.class';\nimport { zeroFill } from '../utils/zero-fill';\nimport { isFunction } from '../utils/type-checks';\nimport { DateFormatterOptions, DateFormatterFn } from '../types';\n\nexport let formatFunctions: {\n [key: string]: (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string;\n} = {};\nexport let formatTokenFunctions: { [key: string]: DateFormatterFn } = {};\n\n// tslint:disable-next-line\nexport const formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nexport function addFormatToken(token: string,\n padded: [string, number, boolean],\n ordinal: string,\n callback: DateFormatterFn): void {\n if (token) {\n formatTokenFunctions[token] = callback;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function (): string {\n return zeroFill(callback.apply(null, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.ordinal(callback.apply(null, arguments), token);\n };\n }\n}\n\nexport function makeFormatFunction(format: string): (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string {\n const array: string[] = format.match(formattingTokens);\n const length = array.length;\n\n const formatArr: string[] | DateFormatterFn[] = new Array(length);\n\n for (let i = 0; i < length; i++) {\n formatArr[i] = formatTokenFunctions[array[i]]\n ? formatTokenFunctions[array[i]]\n : removeFormattingTokens(array[i]);\n }\n\n return function (date: Date, locale: Locale, isUTC: boolean, offset = 0): string {\n let output = '';\n for (let j = 0; j < length; j++) {\n output += isFunction(formatArr[j])\n ? (formatArr[j] as DateFormatterFn).call(null, date, {format, locale, isUTC, offset})\n : formatArr[j];\n }\n\n return output;\n };\n}\n\nfunction removeFormattingTokens(input: string): string {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n}\n","import { createDate } from '../create/date-from-array';\n\nexport function getHours(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCHours() : date.getHours();\n}\n\nexport function getMinutes(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMinutes() : date.getMinutes();\n}\n\nexport function getSeconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCSeconds() : date.getSeconds();\n}\n\nexport function getMilliseconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMilliseconds() : date.getMilliseconds();\n}\nexport function getTime(date: Date): number {\n return date.getTime();\n}\n\nexport function getDay(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDay() : date.getDay();\n}\n\nexport function getDate(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDate() : date.getDate();\n}\n\nexport function getMonth(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMonth() : date.getMonth();\n}\n\nexport function getFullYear(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCFullYear() : date.getFullYear();\n}\n\nexport function getUnixTime(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function unix(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function getFirstDayOfMonth(date: Date): Date {\n return createDate(\n date.getFullYear(),\n date.getMonth(),\n 1,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n );\n}\n\nexport function daysInMonth(date: Date): number {\n return _daysInMonth(date.getFullYear(), date.getMonth());\n}\n\nexport function _daysInMonth(year: number, month: number): number {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\n\nexport function isFirstDayOfWeek(date: Date, firstDayOfWeek: number): boolean {\n return date.getDay() === firstDayOfWeek;\n}\n\nexport function isSameMonth(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2);\n}\n\nexport function isSameYear(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return getFullYear(date1) === getFullYear(date2);\n}\n\nexport function isSameDay(date1: Date, date2: Date): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return (\n isSameYear(date1, date2) &&\n isSameMonth(date1, date2) &&\n getDate(date1) === getDate(date2)\n );\n}\n","import { hasOwnProp, isFunction } from '../utils/type-checks';\nimport { Locale } from '../locale/locale.class';\n\nexport const match1 = /\\d/; // 0 - 9\nexport const match2 = /\\d\\d/; // 00 - 99\nexport const match3 = /\\d{3}/; // 000 - 999\nexport const match4 = /\\d{4}/; // 0000 - 9999\nexport const match6 = /[+-]?\\d{6}/; // -999999 - 999999\nexport const match1to2 = /\\d\\d?/; // 0 - 99\nexport const match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nexport const match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nexport const match1to3 = /\\d{1,3}/; // 0 - 999\nexport const match1to4 = /\\d{1,4}/; // 0 - 9999\nexport const match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\nexport const matchUnsigned = /\\d+/; // 0 - inf\nexport const matchSigned = /[+-]?\\d+/; // -inf - inf\n\nexport const matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nexport const matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\nexport const matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\n// tslint:disable-next-line\nexport const matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\nexport type RegExpTokenFn = (isStrict: boolean, locale: Locale) => RegExp;\nconst regexes: {[key: string]: RegExpTokenFn} = {};\n\n\nexport function addRegexToken(token: string, regex: RegExp | RegExpTokenFn, strictRegex?: RegExp): void {\n if (isFunction(regex)) {\n regexes[token] = regex;\n\n return;\n }\n\n regexes[token] = function (isStrict: boolean, locale: Locale) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n}\n\nexport function getParseRegexForToken(token: string, locale: Locale): RegExp {\n const _strict = false;\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](_strict, locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(str: string): string {\n // tslint:disable-next-line\n return regexEscape(str\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, (matched, p1, p2, p3, p4) => p1 || p2 || p3 || p4)\n );\n}\n\nexport function regexEscape(str: string): string {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","// tslint:disable:max-line-length\nimport { hasOwnProp, isArray, isFunction, isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateParseTokenFn } from '../types';\n\nconst tokens: {[key: string]: DateParseTokenFn} = {};\n\nexport function addParseToken(token: string | string[], callback: DateParseTokenFn | number) {\n const _token = isString(token) ? [token] : token;\n let func = callback;\n\n if (isNumber(callback)) {\n func = function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[callback] = toInt(input);\n\n return config;\n };\n }\n\n if (isArray<string>(_token) && isFunction(func)) {\n let i;\n for (i = 0; i < _token.length; i++) {\n tokens[_token[i]] = func;\n }\n }\n}\n\nexport function addWeekParseToken(token: string[], callback: DateParseTokenFn): void {\n addParseToken(token, function (input: string, array: DateArray, config: DateParsingConfig, _token: string): DateParsingConfig {\n config._w = config._w || {};\n\n return callback(input, config._w, config, _token);\n });\n}\n\n\nexport function addTimeToArrayFromToken(token: string, input: string, config: DateParsingConfig): DateParsingConfig {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n\n return config;\n}\n","// place in new Date([array])\nexport const YEAR = 0;\nexport const MONTH = 1;\nexport const DATE = 2;\nexport const HOUR = 3;\nexport const MINUTE = 4;\nexport const SECOND = 5;\nexport const MILLISECOND = 6;\nexport const WEEK = 7;\nexport const WEEKDAY = 8;\n","const priorities: {[key: string]: number} = {};\n\nexport function addUnitPriority(unit: string, priority: number): void {\n priorities[unit] = priority;\n}\n\n/*\nexport function getPrioritizedUnits(unitsObj) {\n const units = [];\n let unit;\n for (unit in unitsObj) {\n if (unitsObj.hasOwnProperty(unit)) {\n units.push({ unit, priority: priorities[unit] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n return units;\n}\n*/\n","import { hasOwnProp, isString } from '../utils/type-checks';\nimport { DateObject, UnitOfTime } from '../types';\n\nconst aliases: { [key: string]: string } = {};\n\nexport type ExtendedUnitOfTime = UnitOfTime | 'date' | 'week' | 'isoWeek' | 'dayOfYear' |\n 'weekday' | 'isoWeekday' | 'second' | 'millisecond' | 'minute' | 'hour' | 'quarter' | 'weekYear' | 'isoWeekYear';\n\nconst _mapUnits: { [key: string]: UnitOfTime } = {\n date: 'day',\n hour: 'hours',\n minute: 'minutes',\n second: 'seconds',\n millisecond: 'milliseconds'\n};\n\nexport function addUnitAlias(unit: ExtendedUnitOfTime, shorthand: string): void {\n const lowerCase = unit.toLowerCase();\n let _unit = unit;\n if (lowerCase in _mapUnits) {\n _unit = _mapUnits[lowerCase];\n }\n aliases[lowerCase] = aliases[`${lowerCase}s`] = aliases[shorthand] = _unit;\n}\n\nexport function normalizeUnits(units: string | string[]): string {\n return isString(units) ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\n\nexport function normalizeObjectUnits(inputObject: { [key: string]: number }): DateObject {\n const normalizedInput: { [key: string]: number } = {};\n let normalizedProp;\n let prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput as any;\n}\n","import { addFormatToken } from '../format/format';\nimport { getFullYear } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { YEAR } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n// FORMATTING\n\nfunction getYear(date: Date, opts: DateFormatterOptions): string {\n return getFullYear(date, opts.isUTC).toString();\n}\n\naddFormatToken('Y', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const y = getFullYear(date, opts.isUTC);\n\n return y <= 9999 ? y.toString(10) : `+${y}`;\n});\n\naddFormatToken(null, ['YY', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getFullYear(date, opts.isUTC) % 100).toString(10);\n});\n\naddFormatToken(null, ['YYYY', 4, false], null, getYear);\naddFormatToken(null, ['YYYYY', 5, false], null, getYear);\naddFormatToken(null, ['YYYYYY', 6, true], null, getYear);\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array, config) {\n array[YEAR] = input.length === 2 ? parseTwoDigitYear(input) : toInt(input);\n\n return config;\n});\naddParseToken('YY', function (input, array, config) {\n array[YEAR] = parseTwoDigitYear(input);\n\n return config;\n});\naddParseToken('Y', function (input, array, config) {\n array[YEAR] = parseInt(input, 10);\n\n return config;\n});\n\nexport function parseTwoDigitYear(input: string): number {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n}\n\nexport function daysInYear(year: number): number {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n","import { DateParsingConfig, DateParsingFlags } from './parsing.types';\n\nfunction defaultParsingFlags(): DateParsingFlags {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n}\n\nexport function getParsingFlags(config: DateParsingConfig): DateParsingFlags {\n if (config._pf == null) {\n config._pf = defaultParsingFlags();\n }\n\n return config._pf;\n}\n","import { addFormatToken } from '../format/format';\nimport { isLeapYear } from './year';\nimport { mod } from '../utils';\nimport { getMonth } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateFormatterOptions } from '../types';\n\n// todo: this is duplicate, source in date-getters.ts\nexport function daysInMonth(year: number, month: number): number {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n const modMonth = mod(month, 12);\n const _year = year + (month - modMonth) / 12;\n\n return modMonth === 1\n ? isLeapYear(_year) ? 29 : 28\n : (31 - modMonth % 7 % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2, false], 'Mo',\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMonth(date, opts.isUTC) + 1).toString(10);\n });\n\naddFormatToken('MMM', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.monthsShort(date, opts.format, opts.isUTC);\n });\n\naddFormatToken('MMMM', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.months(date, opts.format, opts.isUTC);\n });\n\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = toInt(input) - 1;\n\n return config;\n});\n\naddParseToken(['MMM', 'MMMM'],\n function (input: string, array: DateArray, config: DateParsingConfig, token: string): DateParsingConfig {\n const month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = !!input;\n }\n\n return config;\n });\n\n","import { TimeUnit } from '../types';\nimport { daysInMonth } from '../units/month';\nimport { isNumber } from './type-checks';\nimport { getDate, getFullYear, getMonth } from './date-getters';\nimport { isLeapYear } from '../units/year';\nimport { createDate } from '../create/date-from-array';\n\nconst defaultTimeUnit: TimeUnit = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n seconds: 0\n};\n\nexport function shiftDate(date: Date, unit: TimeUnit): Date {\n const _unit = Object.assign({}, defaultTimeUnit, unit);\n const year = date.getFullYear() + (_unit.year || 0);\n const month = date.getMonth() + (_unit.month || 0);\n let day = date.getDate() + (_unit.day || 0);\n if (_unit.month && !_unit.day) {\n day = Math.min(day, daysInMonth(year, month));\n }\n\n return createDate(\n year,\n month,\n day,\n date.getHours() + (_unit.hour || 0),\n date.getMinutes() + (_unit.minute || 0),\n date.getSeconds() + (_unit.seconds || 0)\n );\n}\n\nexport function setFullDate(date: Date, unit: TimeUnit): Date {\n return createDate(\n getNum(date.getFullYear(), unit.year),\n getNum(date.getMonth(), unit.month),\n getNum(date.getDate(), unit.day),\n getNum(date.getHours(), unit.hour),\n getNum(date.getMinutes(), unit.minute),\n getNum(date.getSeconds(), unit.seconds),\n getNum(date.getMilliseconds(), unit.milliseconds)\n );\n}\n\nfunction getNum(def: number, num?: number): number {\n return isNumber(num) ? num : def;\n}\n\nexport function setFullYear(date: Date, value: number, isUTC?: boolean): Date {\n const _month = getMonth(date, isUTC);\n const _date = getDate(date, isUTC);\n const _year = getFullYear(date, isUTC);\n if (isLeapYear(_year) && _month === 1 && _date === 29) {\n const _daysInMonth = daysInMonth(value, _month);\n isUTC ? date.setUTCFullYear(value, _month, _daysInMonth) : date.setFullYear(value, _month, _daysInMonth);\n }\n\n isUTC ? date.setUTCFullYear(value) : date.setFullYear(value);\n\n return date;\n}\n\nexport function setMonth(date: Date, value: number, isUTC?: boolean): Date {\n const dayOfMonth = Math.min(getDate(date), daysInMonth(getFullYear(date), value));\n isUTC ? date.setUTCMonth(value, dayOfMonth) : date.setMonth(value, dayOfMonth);\n\n return date;\n}\n\nexport function setDay(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setHours(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCHours(value) : date.setHours(value);\n\n return date;\n}\n\nexport function setMinutes(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMinutes(value) : date.setMinutes(value);\n\n return date;\n}\n\nexport function setSeconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCSeconds(value) : date.setSeconds(value);\n\n return date;\n}\n\nexport function setMilliseconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMilliseconds(value) : date.setMilliseconds(value);\n\n return date;\n}\n\nexport function setDate(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setTime(date: Date, value: number): Date {\n date.setTime(value);\n\n return date;\n}\n","// fastest way to clone date\n// https://jsperf.com/clone-date-object2\nexport function cloneDate(date: Date): Date {\n return new Date(date.getTime());\n}\n","import { toInt } from '../utils/type-checks';\nimport { createDuration } from './create';\nimport { Duration } from './constructor';\nimport { DateObject } from '../types';\n\nconst ordering: (keyof DateObject)[] = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes', 'seconds', 'milliseconds'];\nconst orderingHash = ordering.reduce((mem: { [key: string]: boolean }, order) => {\n mem[order] = true;\n\n return mem;\n}, {});\n\nexport function isDurationValid(duration: Partial<DateObject>): boolean {\n const durationKeys = Object.keys(duration);\n if (durationKeys\n .some((key: keyof DateObject) => {\n return (key in orderingHash)\n && duration[key] === null\n || isNaN(duration[key]);\n })) {\n return false;\n }\n // for (let key in duration) {\n // if (!(indexOf.call(ordering, key) !== -1 && (duration[key] == null || !isNaN(duration[key])))) {\n // return false;\n // }\n // }\n\n let unitHasDecimal = false;\n for (let i = 0; i < ordering.length; ++i) {\n if (duration[ordering[i]]) {\n // only allow non-integers for smallest unit\n if (unitHasDecimal) {\n return false;\n }\n if (duration[ordering[i]] !== toInt(duration[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\n// export function isValid() {\n// return this._isValid;\n// }\n//\n// export function createInvalid(): Duration {\n// return createDuration(NaN);\n// }\n","export function absCeil (number: number): number {\n return number < 0 ? Math.floor(number) : Math.ceil(number);\n}\n","import { Duration } from './constructor';\nimport { absFloor } from '../utils';\nimport { absCeil } from '../utils/abs-ceil';\n\nexport function bubble(dur: Duration): Duration {\n let milliseconds = dur._milliseconds;\n let days = dur._days;\n let months = dur._months;\n const data = dur._data;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n const seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n const minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n const hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n const monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n const years = absFloor(months / 12);\n months %= 12;\n\n data.day = days;\n data.month = months;\n data.year = years;\n\n return dur;\n}\n\nexport function daysToMonths(day: number): number {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return day * 4800 / 146097;\n}\n\nexport function monthsToDays(month: number): number {\n // the reverse of daysToMonths\n return month * 146097 / 4800;\n}\n","// tslint:disable:cyclomatic-complexity\nimport { createDuration } from './create';\nimport { Locale } from '../locale/locale.class';\nimport { Duration } from './constructor';\n\nlet round = Math.round;\nconst thresholds: { [key: string]: number } = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n};\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(str: 'future' | 'past', num: number,\n withoutSuffix: boolean, isFuture: boolean,\n locale: Locale): string {\n return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture);\n}\n\nexport function relativeTime(posNegDuration: Duration, withoutSuffix: boolean, locale: Locale): string {\n const duration = createDuration(posNegDuration).abs();\n const seconds = round(duration.as('s'));\n const minutes = round(duration.as('m'));\n const hours = round(duration.as('h'));\n const days = round(duration.as('d'));\n const months = round(duration.as('M'));\n const years = round(duration.as('y'));\n\n const a: [string] | [string, number] =\n seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n const b: [string, number | string, boolean, boolean, Locale] =\n [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale];\n // a[2] = withoutSuffix;\n // a[3] = +posNegDuration > 0;\n // a[4] = locale;\n\n return substituteTimeAgo.apply(null, b);\n}\n\n// This function allows you to set the rounding function for relative time strings\nexport function getSetRelativeTimeRounding(roundingFunction: any): boolean | Function {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n\n return true;\n }\n\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nexport function getSetRelativeTimeThreshold(threshold: string, limit: number): boolean | number {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n}\n\n// export function humanize(withSuffix) {\n// if (!this.isValid()) {\n// return this.localeData().invalidDate();\n// }\n//\n// const locale = this.localeData();\n// let output = relativeTime(this, !withSuffix, locale);\n//\n// if (withSuffix) {\n// output = locale.pastFuture(+this, output);\n// }\n//\n// return locale.postformat(output);\n// }\n","import { getLocale } from '../locale/locales';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isDurationValid } from './valid';\nimport { bubble, daysToMonths, monthsToDays } from './bubble';\nimport { DateObject } from '../types';\nimport { Locale } from '../locale/locale.class';\nimport { normalizeUnits } from '../units/aliases';\nimport { relativeTime } from './humanize';\nimport { toInt } from '../utils/type-checks';\n\nexport class Duration {\n _milliseconds: number;\n _days: number;\n _months: number;\n _data: Partial<DateObject> = {};\n _locale: Locale = getLocale();\n _isValid: boolean;\n\n constructor(duration: Partial<DateObject>, config: DateParsingConfig = {}) {\n this._locale = config && config._locale || getLocale();\n // const normalizedInput = normalizeObjectUnits(duration);\n const normalizedInput = duration;\n const years = normalizedInput.year || 0;\n const quarters = normalizedInput.quarter || 0;\n const months = normalizedInput.month || 0;\n const weeks = normalizedInput.week || 0;\n const days = normalizedInput.day || 0;\n const hours = normalizedInput.hours || 0;\n const minutes = normalizedInput.minutes || 0;\n const seconds = normalizedInput.seconds || 0;\n const milliseconds = normalizedInput.milliseconds || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1000 +\n minutes * 60 * 1000 + // 1000 * 60\n hours * 1000 * 60 * 60; // using 1000 * 60 * 60\n // instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n // this._data = {};\n\n // this._locale = getLocale();\n\n // this._bubble();\n return bubble(this);\n }\n\n isValid(): boolean {\n return this._isValid;\n }\n\n humanize(withSuffix?: boolean): string {\n // throw new Error(`TODO: implement`);\n\n if (!this.isValid()) {\n return this.localeData().invalidDate;\n }\n\n const locale = this.localeData();\n let output = relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n localeData(): Locale {\n return this._locale;\n }\n\n locale(): string;\n locale(localeKey: string): Duration;\n locale(localeKey?: string): Duration | string {\n if (!localeKey) {\n return this._locale._abbr;\n }\n\n this._locale = getLocale(localeKey) || this._locale;\n\n return this;\n }\n\n\n abs(): Duration {\n const mathAbs = Math.abs;\n\n const data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.month = mathAbs(data.month);\n data.year = mathAbs(data.year);\n\n return this;\n }\n\n as(_units: string): number {\n if (!this.isValid()) {\n return NaN;\n }\n let days;\n let months;\n const milliseconds = this._milliseconds;\n\n const units = normalizeUnits(_units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n return units === 'month' ? months : months / 12;\n }\n\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' :\n return days / 7 + milliseconds / 6048e5;\n case 'day' :\n return days + milliseconds / 864e5;\n case 'hours' :\n return days * 24 + milliseconds / 36e5;\n case 'minutes' :\n return days * 1440 + milliseconds / 6e4;\n case 'seconds' :\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'milliseconds':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error(`Unknown unit ${units}`);\n }\n }\n\n valueOf () {\n if (!this.isValid()) {\n return NaN;\n }\n\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n}\n\nexport function isDuration(obj: any): obj is Duration {\n return obj instanceof Duration;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { getParsingFlags } from './parsing-flags';\n\nexport function isValid(config: DateParsingConfig): boolean {\n if (config._isValid == null) {\n const flags = getParsingFlags(config);\n const parsedParts = Array.prototype.some.call(flags.parsedDateParts, function (i: number) {\n return i != null;\n });\n let isNowValid = !isNaN(config._d && config._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (config._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(config)) {\n config._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return config._isValid;\n}\n\nexport function createInvalid(config: DateParsingConfig, flags?: { nullInput: boolean }): DateParsingConfig {\n config._d = new Date(NaN);\n Object.assign(getParsingFlags(config), flags || { userInvalidated: true });\n\n return config;\n}\n\nexport function markInvalid(config: DateParsingConfig): DateParsingConfig {\n config._isValid = false;\n\n return config;\n}\n","// tslint:disable-next-line\nimport { defaultLocaleMonthsShort, defaultLocaleWeekdaysShort } from '../locale/locale.class';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from './parsing.types';\nimport { isString } from '../utils/type-checks';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { createUTCDate } from './date-from-array';\nimport { createInvalid, markInvalid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n// tslint:disable-next-line\nconst extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n// tslint:disable-next-line\nconst basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\nconst tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\nconst isoDates: [string, RegExp, boolean][] = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/, true],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/, true],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/, true],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/, true],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/, true],\n ['YYYYMMDD', /\\d{8}/, true],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/, true],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/, true]\n];\n\n// iso time formats and regexes\nconst isoTimes: [string, RegExp][] = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n];\n\nconst aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\nconst obsOffsets: { [key: string]: number } = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n// tslint:disable-next-line\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n// date from iso format\nexport function configFromISO(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const input = config._i;\n const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);\n\n\n let allowTime;\n let dateFormat;\n let timeFormat;\n let tzFormat;\n\n if (!match) {\n config._isValid = false;\n\n return config;\n }\n\n // getParsingFlags(config).iso = true;\n let i;\n let l;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n\n return config;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n\n return configFromStringAndFormat(config);\n}\n\n// tslint:disable-next-line\nfunction extractFromRFC2822Strings(yearStr: string, monthStr: string, dayStr: string, hourStr: string, minuteStr: string, secondStr: string): DateArray {\n const result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr: string): number {\n const year = parseInt(yearStr, 10);\n\n return year <= 49 ? year + 2000 : year;\n}\n\nfunction preprocessRFC2822(str: string): string {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return str\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ').trim();\n}\n\nfunction checkWeekday(weekdayStr: string, parsedInput: DateArray, config: DateParsingConfig): boolean {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);\n const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction calculateOffset(obsOffset: string, militaryOffset: string, numOffset: string) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n const hm = parseInt(numOffset, 10);\n const m = hm % 100;\n const h = (hm - m) / 100;\n\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nexport function configFromRFC2822(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const match = rfc2822.exec(preprocessRFC2822(config._i));\n\n if (!match) {\n return markInvalid(config);\n }\n\n const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return config;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n\n return config;\n}\n\n// date from iso format or fallback\nexport function configFromString(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n\n return config;\n }\n\n // todo: update logic processing\n // isISO -> configFromISO\n // isRFC -> configFromRFC\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n // Final attempt, use Input Fallback\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n}\n\n// hooks.createFromInputFallback = deprecate(\n// 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n// 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n// 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n// 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n// function (config) {\n// config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n// }\n// );\n","import { addFormatToken } from '../format/format';\nimport { getDate } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { DATE } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2, false], 'Do',\n function (date: Date, opts: DateFormatterOptions): string {\n return getDate(date, opts.isUTC).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIOROITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n return locale._dayOfMonthOrdinalParse || locale._ordinalParse;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do',\n function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[DATE] = toInt(input.match(match1to2)[0]);\n\n return config;\n });\n","import { getHours, getMinutes, getSeconds } from '../utils/date-getters';\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { Locale } from '../locale/locale.class';\nimport { addRegexToken, match1to2, match2, match3to4, match5to6 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { HOUR, MINUTE, SECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\n\n// FORMATTING\n\nfunction hFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) % 12 || 12;\n}\n\nfunction kFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) || 24;\n}\n\naddFormatToken('H', ['HH', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return getHours(date, opts.isUTC).toString(10);\n });\naddFormatToken('h', ['hh', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return hFormat(date, opts.isUTC).toString(10);\n });\naddFormatToken('k', ['kk', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return kFormat(date, opts.isUTC).toString(10);\n });\n\naddFormatToken('hmm', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_h}${_mm}`;\n });\n\naddFormatToken('hmmss', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_h}${_mm}${_ss}`;\n });\n\naddFormatToken('Hmm', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_H}${_mm}`;\n });\n\naddFormatToken('Hmmss', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_H}${_mm}${_ss}`;\n });\n\nfunction meridiem(token: string, lowercase: boolean): void {\n addFormatToken(token, null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.meridiem(getHours(date, opts.isUTC), getMinutes(date, opts.isUTC), lowercase);\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n\n// PARSING\n\nfunction matchMeridiem(isStrict: boolean, locale: Locale): RegExp {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'],\n function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n\n return config;\n });\naddParseToken(['a', 'A'], function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n\n return config;\n});\naddParseToken(['h', 'hh'], function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n\n return config;\n});\naddParseToken('hmm', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n\n return config;\n});\naddParseToken('hmmss', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n\n return config;\n});\naddParseToken('Hmm', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n\n return config;\n});\naddParseToken('Hmmss', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n\n return config;\n});\n","// tslint:disable:no-bitwise\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { addRegexToken, match1, match1to3, match2, match3, matchUnsigned } from '../parse/regex';\nimport { MILLISECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addParseToken } from '../parse/token';\nimport { DateArray, DateFormatterOptions, WeekParsing } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getMilliseconds } from '../utils/date-getters';\n\naddFormatToken('S', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 100)).toString(10);\n });\n\naddFormatToken(null, ['SS', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 10)).toString(10);\n });\n\naddFormatToken(null, ['SSS', 3, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC)).toString(10);\n });\naddFormatToken(null, ['SSSS', 4, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10).toString(10);\n });\naddFormatToken(null, ['SSSSS', 5, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100).toString(10);\n });\naddFormatToken(null, ['SSSSSS', 6, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000).toString(10);\n });\naddFormatToken(null, ['SSSSSSS', 7, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10000).toString(10);\n });\naddFormatToken(null, ['SSSSSSSS', 8, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100000).toString(10);\n });\naddFormatToken(null, ['SSSSSSSSS', 9, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000000).toString(10);\n });\n\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nlet token;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MILLISECOND] = toInt(parseFloat(`0.${input}`) * 1000);\n\n return config;\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n// MOMENTS\n\n","import { addFormatToken } from '../format/format';\nimport { getMinutes } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MINUTE } from './constants';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return getMinutes(date, opts.isUTC).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n","// tslint:disable:no-bitwise max-line-length\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';\nimport { add } from '../moment/add-subtract';\nimport { addParseToken } from '../parse/token';\nimport { DateArray } from '../types';\nimport { cloneDate } from '../create/clone';\nimport { setMonth } from '../utils/date-setters';\n\nfunction addOffsetFormatToken(token: string, separator: string): void {\n addFormatToken(token, null, null, function (date: Date, config): string {\n let offset = getUTCOffset(date, {_isUTC: config.isUTC, _offset: config.offset});\n let sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n}\n\naddOffsetFormatToken('Z', ':');\naddOffsetFormatToken('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n\n return config;\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nconst chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher: RegExp, str: string): number {\n const matches = (str || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n const chunk = matches[matches.length - 1];\n const parts = chunk.match(chunkOffset) || ['-', '0', '0'];\n const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);\n const _min = parts[0] === '+' ? minutes : -minutes;\n\n return minutes === 0 ? 0 : _min;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nexport function cloneWithOffset(input: Date, date: Date,\n config: DateParsingConfig = {}): Date {\n if (!config._isUTC) {\n return input;\n }\n\n const res = cloneDate(date);\n // todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000\n const offsetDiff = (config._offset || 0) * 60000;\n const diff = input.valueOf() - res.valueOf() + offsetDiff;\n // Use low-level api, because this fn is low-level api.\n res.setTime(res.valueOf() + diff);\n // todo: add timezone handling\n // hooks.updateOffset(res, false);\n\n return res;\n}\n\nexport function getDateOffset(date: Date): number {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n// todo: it's from moment timezones\n// hooks.updateOffset = function () {\n// };\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nexport function getUTCOffset(date: Date, config: DateParsingConfig = {}): number {\n const _offset = config._offset || 0;\n\n return config._isUTC ? _offset : getDateOffset(date);\n}\n\nexport function setUTCOffset(date: Date, input: number | string, keepLocalTime?: boolean, keepMinutes?: boolean, config: DateParsingConfig = {}): Date {\n const offset = config._offset || 0;\n let localAdjust;\n let _input = input;\n let _date = date;\n\n if (isString(_input)) {\n _input = offsetFromString(matchShortOffset, _input);\n if (_input === null) {\n return _date;\n }\n } else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {\n _input = _input * 60;\n }\n\n if (!config._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(_date);\n }\n config._offset = _input;\n config._isUTC = true;\n if (localAdjust != null) {\n _date = add(_date, localAdjust, 'minutes');\n }\n if (offset !== _input) {\n if (!keepLocalTime || config._changeInProgress) {\n _date = add(_date, _input - offset, 'minutes', config._isUTC);\n // addSubtract(this, createDuration(_input - offset, 'm'), 1, false);\n } else if (!config._changeInProgress) {\n config._changeInProgress = true;\n // todo: add timezone handling\n // hooks.updateOffset(this, true);\n config._changeInProgress = null;\n }\n }\n\n return _date;\n}\n\n/*\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n*/\n\nexport function setOffsetToUTC(date: Date, keepLocalTime?: boolean): Date {\n return setUTCOffset(date, 0, keepLocalTime);\n}\n\nexport function isDaylightSavingTime(date: Date): boolean {\n\n return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))\n || getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));\n}\n\n/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}*/\n\nexport function setOffsetToParsedOffset(date: Date, input: string, config: DateParsingConfig = {}): Date {\n if (config._tzm != null) {\n return setUTCOffset(date, config._tzm, false, true, config);\n }\n\n if (isString(input)) {\n const tZone = offsetFromString(matchOffset, input);\n if (tZone != null) {\n return setUTCOffset(date, tZone, false, false, config);\n }\n\n return setUTCOffset(date, 0, true, false, config);\n }\n\n return date;\n}\n\nexport function hasAlignedHourOffset(date: Date, input?: Date) {\n const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;\n\n return (getUTCOffset(date) - _input) % 60 === 0;\n}\n\n\n// DEPRECATED\n/*export function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n const c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}*/\n\n// in Khronos\n/*export function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}*/\n","import { addFormatToken } from '../format/format';\nimport { addRegexToken, match1 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { getMonth } from '../utils/date-getters';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { setMonth } from '../utils/date-setters';\n\n// FORMATTING\n\naddFormatToken('Q', null, 'Qo',\n function (date: Date, opts: DateFormatterOptions): string {\n return getQuarter(date, opts.isUTC).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = (toInt(input) - 1) * 3;\n\n return config;\n});\n\n// MOMENTS\n\nexport function getQuarter(date: Date, isUTC = false): number {\n return Math.ceil((getMonth(date, isUTC) + 1) / 3);\n}\n\nexport function setQuarter(date: Date, quarter: number, isUTC?: boolean): Date {\n return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);\n}\n\n// export function getSetQuarter(input) {\n// return input == null\n// ? Math.ceil((this.month() + 1) / 3)\n// : this.month((input - 1) * 3 + this.month() % 3);\n// }\n","import { addFormatToken } from '../format/format';\nimport { getSeconds } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { SECOND } from './constants';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateFormatterOptions } from '../types';\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return getSeconds(date, opts.isUTC).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n","import { addFormatToken } from '../format/format';\nimport { unix } from '../utils/date-getters';\nimport { addRegexToken, matchSigned, matchTimestamp } from '../parse/regex';\nimport { addParseToken} from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n// FORMATTING\n\naddFormatToken('X', null, null, function (date: Date): string {\n return unix(date).toString(10);\n});\naddFormatToken('x', null, null, function (date: Date): string {\n return date.valueOf().toString(10);\n});\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\n\naddParseToken('X', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(parseFloat(input) * 1000);\n\n return config;\n});\naddParseToken('x', function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(toInt(input));\n\n return config;\n});\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { weekOfYear } from './week-calendar-utils';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { add } from '../moment/add-subtract';\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2, false], 'wo',\n function (date: Date, opts: DateFormatterOptions): string {\n return getWeek(date, opts.locale).toString(10);\n });\n\naddFormatToken('W', ['WW', 2, false], 'Wo',\n function (date: Date): string {\n return getISOWeek(date).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(['w', 'ww', 'W', 'WW'],\n function (input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token.substr(0, 1)] = toInt(input);\n\n return config;\n });\n\n// export function getSetWeek (input) {\n// var week = this.localeData().week(this);\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n\nexport function setWeek(date: Date, input: number, locale = getLocale()): Date {\n const week = getWeek(date, locale);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return locale.week(date, isUTC);\n}\n\n// export function getSetISOWeek (input) {\n// var week = weekOfYear(this, 1, 4).week;\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n\nexport function setISOWeek(date: Date, input: number): Date {\n const week = getISOWeek(date);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getISOWeek(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).week;\n}\n\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { parseTwoDigitYear } from './year';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from './week-calendar-utils';\nimport { createUTCDate } from '../create/date-from-array';\nimport { getISOWeek, getWeek } from './week';\nimport { getISODayOfWeek, getLocaleDayOfWeek } from './day-of-week';\nimport { getLocale } from '../locale/locales';\nimport { setDate, setFullYear, setMonth } from '../utils/date-setters';\nimport { getDate, getFullYear, getMonth } from '../utils/date-getters';\nimport { Locale } from '../locale/locale.class';\nimport { DateFormatterFn, DateFormatterOptions, WeekParsing } from '../types';\n\n// FORMATTING\n\naddFormatToken(null, ['gg', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n // return this.weekYear() % 100;\n return (getWeekYear(date, opts.locale) % 100).toString();\n });\n\naddFormatToken(null, ['GG', 2, false], null,\n function (date: Date): string {\n // return this.isoWeekYear() % 100;\n return (getISOWeekYear(date) % 100).toString();\n });\n\nfunction addWeekYearFormatToken(token: string, getter: DateFormatterFn): void {\n addFormatToken(null, [token, token.length, false], null, getter);\n}\n\nfunction _getWeekYearFormatCb(date: Date, opts: DateFormatterOptions): string {\n return getWeekYear(date, opts.locale).toString();\n}\n\nfunction _getISOWeekYearFormatCb(date: Date): string {\n return getISOWeekYear(date).toString();\n}\n\naddWeekYearFormatToken('gggg', _getWeekYearFormatCb);\naddWeekYearFormatToken('ggggg', _getWeekYearFormatCb);\naddWeekYearFormatToken('GGGG', _getISOWeekYearFormatCb);\naddWeekYearFormatToken('GGGGG', _getISOWeekYearFormatCb);\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week: WeekParsing, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n\n return config;\n });\n\naddWeekParseToken(['gg', 'GG'], function (input, week: WeekParsing, config, token) {\n week[token] = parseTwoDigitYear(input);\n\n return config;\n});\n\n// MOMENTS\n\nexport function getSetWeekYear(date: Date, input: number, locale = getLocale(), isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date,\n input,\n // this.week(),\n getWeek(date, locale, isUTC),\n // this.weekday(),\n getLocaleDayOfWeek(date, locale, isUTC),\n locale.firstDayOfWeek(),\n locale.firstDayOfYear(),\n isUTC);\n}\n\nexport function getWeekYear(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return weekOfYear(date, locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC).year;\n}\n\nexport function getSetISOWeekYear(date: Date, input: number, isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date, input, getISOWeek(date, isUTC), getISODayOfWeek(date, isUTC), 1, 4);\n}\n\nexport function getISOWeekYear(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).year;\n}\n\nexport function getISOWeeksInYear(date: Date, isUTC?: boolean) {\n return weeksInYear(getFullYear(date, isUTC), 1, 4);\n}\n\nexport function getWeeksInYear(date: Date, isUTC?: boolean, locale: Locale = getLocale()): number {\n return weeksInYear(getFullYear(date, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear());\n}\n\nfunction getSetWeekYearHelper(date: Date, input: number, week: number,\n weekday: number, dow: number, doy: number, isUTC?: boolean): number | Date {\n if (!input) {\n return getWeekYear(date, void 0, isUTC);\n }\n\n const weeksTarget = weeksInYear(input, dow, doy);\n const _week = week > weeksTarget ? weeksTarget : week;\n\n return setWeekAll(date, input, _week, weekday, dow, doy);\n}\n\nfunction setWeekAll(date: Date, weekYear: number, week: number,\n weekday: number, dow: number, doy: number): Date {\n const dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n const _date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n setFullYear(date, getFullYear(_date, true), true);\n setMonth(date, getMonth(_date, true), true);\n setDate(date, getDate(_date, true), true);\n\n return date;\n}\n","import './aliases';\nimport './constants';\nimport './day-of-month';\nimport './day-of-week';\nimport './day-of-year';\nimport './hour';\nimport './millisecond';\nimport './minute';\nimport './month';\nimport './offset';\nimport './priorities';\nimport './quarter';\nimport './second';\nimport './timestamp';\nimport './week';\nimport './week-calendar-utils';\nimport './week-year';\nimport './year';\n","// moment.js\n// version : 2.18.1\n// authors : Tim Wood, Iskren Chernev, Moment.js contributors\n// license : MIT\n// momentjs.com\n\nimport './units/index';\nimport { formatFunctions, makeFormatFunction } from './format/format';\nimport { Locale } from './locale/locale.class';\nimport { getLocale } from './locale/locales';\nimport { isDateValid } from './utils/type-checks';\n\nexport function formatDate(date: Date, format: string, locale?: string, isUTC?: boolean, offset = 0): string {\n const _locale = getLocale(locale || 'en');\n if (!_locale) {\n throw new Error(\n `Locale \"${locale}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n const _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');\n\n const output = formatMoment(date, _format, _locale, isUTC, offset);\n\n if (!output) {\n return output;\n }\n\n return _locale.postformat(output);\n}\n\n// format date using native date object\nexport function formatMoment(date: Date, _format: string, locale: Locale, isUTC?: boolean, offset = 0): string {\n if (!isDateValid(date)) {\n return locale.invalidDate;\n }\n\n const format = expandFormat(_format, locale);\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](date, locale, isUTC, offset);\n}\n\nexport function expandFormat(_format: string, locale: Locale): string {\n let format = _format;\n let i = 5;\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n const replaceLongDateFormatTokens = (input: any) => {\n return locale.formatLongDate(input) || input;\n };\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n","// Pick the first defined of two or three arguments.\nexport function defaults<T>(a?: T, b?: T, c?: T): T {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n\n return c;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { DateArray } from '../types';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, YEAR } from '../units/constants';\nimport { daysInYear } from '../units/year';\nimport { getParsingFlags } from './parsing-flags';\nimport { createUTCDate } from './date-from-array';\nimport { createDate } from './date-from-array';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from '../units/week-calendar-utils';\nimport { defaults } from '../utils/defaults';\n\nfunction currentDateArray(config: DateParsingConfig): DateArray {\n const nowValue = new Date();\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nexport function configFromArray(config: DateParsingConfig): DateParsingConfig {\n const input = [];\n let i;\n let date;\n let currentDate;\n let expectedWeekday;\n let yearToUse;\n\n if (config._d) {\n return config;\n }\n\n currentDate = currentDateArray(config);\n\n // compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n // if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n\n return config;\n}\n\nfunction dayOfYearFromWeekInfo(config: DateParsingConfig): DateParsingConfig {\n let w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(new Date(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n const curWeek = weekOfYear(new Date(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n\n return config;\n}\n","import { getParsingFlags } from './parsing-flags';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, WEEK, WEEKDAY, YEAR } from '../units/constants';\nimport { daysInMonth } from '../units/month';\nimport { DateParsingConfig } from './parsing.types';\n\nexport function checkOverflow(config: DateParsingConfig): DateParsingConfig {\n let overflow;\n const a = config._a;\n\n if (a && getParsingFlags(config).overflow === -2) {\n // todo: fix this sh*t\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(config)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(config)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(config)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(config).overflow = overflow;\n }\n\n return config;\n}\n\n","import { DateParsingConfig } from './parsing.types';\nimport { configFromISO, configFromRFC2822 } from './from-string';\nimport { expandFormat } from '../format';\nimport { formattingTokens, formatTokenFunctions } from '../format/format';\nimport { isArray, isString } from '../utils/type-checks';\nimport { getParseRegexForToken } from '../parse/regex';\nimport { addTimeToArrayFromToken } from '../parse/token';\nimport { HOUR } from '../units/constants';\nimport { configFromArray } from './from-array';\nimport { getParsingFlags } from './parsing-flags';\nimport { checkOverflow } from './check-overflow';\nimport { Locale } from '../locale/locale.class';\n\n// constant that refers to the ISO standard\n// hooks.ISO_8601 = function () {};\nexport const ISO_8601 = 'ISO_8601';\n\n// constant that refers to the RFC 2822 form\n// hooks.RFC_2822 = function () {};\nexport const RFC_2822 = 'RFC_2822';\n\n// date from string and format string\nexport function configFromStringAndFormat(config: DateParsingConfig): DateParsingConfig {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === ISO_8601) {\n return configFromISO(config);\n }\n if (config._f === RFC_2822) {\n return configFromRFC2822(config);\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n if (isArray(config._f) || (!config._i && config._i !== 0)) {\n return config;\n }\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n let input = config._i.toString();\n let totalParsedInputLength = 0;\n const inputLength = input.length;\n const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n let i;\n let token;\n let parsedInput;\n let skipped;\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];\n if (parsedInput) {\n skipped = input.substr(0, input.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n input = input.slice(input.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;\n if (input.length > 0) {\n getParsingFlags(config).unusedInput.push(input);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = void 0;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n\n return checkOverflow(config);\n}\n\n\nfunction meridiemFixWrap(locale: Locale, _hour: number, meridiem: string): number {\n let hour = _hour;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n }\n\n if (locale.isPM == null) {\n // this is not supposed to happen\n return hour;\n }\n // Fallback\n const isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { createInvalid, isValid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\nimport { configFromStringAndFormat } from './from-string-and-format';\n\n// date from string and array of format strings\nexport function configFromStringAndArray(config: DateParsingConfig): DateParsingConfig {\n let tempConfig;\n let bestMoment;\n let scoreToBeat;\n let currentScore;\n\n if (!config._f || config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n\n return createInvalid(config);\n }\n\n let i;\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = Object.assign({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n // or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n return Object.assign(config, bestMoment || tempConfig);\n}\n","import { normalizeObjectUnits } from '../units/aliases';\nimport { configFromArray } from './from-array';\nimport { DateParsingConfig } from './parsing.types';\nimport { isObject, isString } from '../utils/type-checks';\n\nexport function configFromObject(config: DateParsingConfig): DateParsingConfig {\n if (config._d) {\n return config;\n }\n\n const input = config._i;\n if (isObject(input)) {\n const i = normalizeObjectUnits(input as any);\n config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]\n // todo: obsolete -> remove it\n .map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n }\n\n return configFromArray(config);\n}\n","// tslint:disable:max-line-length\nimport { isArray, isDate, isNumber, isObject, isObjectEmpty, isString, isUndefined } from '../utils/type-checks';\nimport { DateParsingConfig } from './parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { createInvalid, isValid } from './valid';\nimport { configFromStringAndArray } from './from-string-and-array';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { cloneDate } from './clone';\nimport { configFromString } from './from-string';\nimport { configFromArray } from './from-array';\nimport { configFromObject } from './from-object';\nimport { checkOverflow } from './check-overflow';\nimport { DateInput } from '../test/chain';\n\nfunction createFromConfig(config: DateParsingConfig): DateParsingConfig {\n const res = checkOverflow(prepareConfig(config));\n // todo: remove, in moment.js it's never called cuz of moment constructor\n res._d = new Date(res._d != null ? res._d.getTime() : NaN);\n if (!isValid(Object.assign({}, res, {_isValid: null}))) {\n res._d = new Date(NaN);\n }\n // todo: update offset\n /*if (res._nextDay) {\n // Adding is smart enough around DST\n res._d = add(res._d, 1, 'day');\n res._nextDay = undefined;\n }*/\n\n return res;\n}\n\nexport function prepareConfig(config: DateParsingConfig): DateParsingConfig {\n let input = config._i;\n const format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid(config, { nullInput: true });\n }\n\n if (isString(input)) {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isDate(input)) {\n config._d = cloneDate(input);\n\n return config;\n }\n\n // todo: add check for recursion\n\n if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config: DateParsingConfig): DateParsingConfig {\n const input = config._i;\n if (isUndefined(input)) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = cloneDate(input);\n } else if (isString(input)) {\n configFromString(config);\n } else if (isArray<string | number>(input) && input.length) {\n const _arr: (string | number)[] = input.slice(0);\n config._a = _arr.map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n }\n\n return config;\n}\n\nexport function createLocalOrUTC(input: DateInput, format?: string | string[], localeKey?: string, strict?: boolean, isUTC?: boolean): DateParsingConfig {\n const config: DateParsingConfig = {};\n let _input = input;\n\n // params switch -> skip; test it well\n // if (localeKey === true || localeKey === false) {\n // strict = localeKey;\n // localeKey = undefined;\n // }\n\n // todo: fail fast and return not valid date\n if ((isObject(_input) && isObjectEmpty(_input)) || (isArray(_input) && _input.length === 0)) {\n _input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n // config._isAMomentObject = true;\n config._useUTC = config._isUTC = isUTC;\n config._l = localeKey;\n config._i = _input;\n config._f = format;\n config._strict = strict;\n\n return createFromConfig(config);\n}\n","import { createLocalOrUTC } from './from-anything';\nimport { DateArray, DateObject } from '../types';\nimport { DateInput } from '../test/chain';\nimport { isDate } from '../utils/type-checks';\n\nexport function parseDate(input: DateInput, format?: string | string[],\n localeKey?: string, strict?: boolean, isUTC?: boolean): Date {\n if (isDate(input)) {\n return input;\n }\n\n const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);\n\n return config._d;\n}\n","export function absRound(num: number): number {\n return num < 0 ? Math.round(num * -1) * -1 : Math.round(num);\n}\n","import { UnitOfTime } from '../types';\nimport { endOf, startOf } from './start-end-of';\n\nexport function isAfter(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() > date2.valueOf();\n }\n\n return date2.valueOf() < startOf(date1, units).valueOf();\n}\n\nexport function isBefore(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() < date2.valueOf();\n }\n\n return endOf(date1, units).valueOf() < date2.valueOf();\n}\n\nexport function isBetween(\n date: Date,\n from: Date,\n to: Date,\n units: UnitOfTime,\n inclusivity = '()'\n): boolean {\n const leftBound =\n inclusivity[0] === '('\n ? isAfter(date, from, units)\n : !isBefore(date, from, units);\n const rightBound =\n inclusivity[1] === ')'\n ? isBefore(date, to, units)\n : !isAfter(date, to, units);\n\n return leftBound && rightBound;\n}\n\nexport function isSame(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() === date2.valueOf();\n }\n\n const inputMs = date2.valueOf();\n\n return (\n startOf(date1, units).valueOf() <= inputMs &&\n inputMs <= endOf(date1, units).valueOf()\n );\n}\n\nexport function isSameOrAfter(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isAfter(date1, date2, units);\n}\n\nexport function isSameOrBefore(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isBefore(date1, date2, units);\n}\n","// ASP.NET json date format regex\nimport { Duration, isDuration } from './constructor';\nimport { isDateValid, isNumber, isObject, isString, toInt } from '../utils/type-checks';\nimport { DATE, HOUR, MILLISECOND, MINUTE, SECOND } from '../units/constants';\nimport { parseDate } from '../create/local';\nimport { absRound } from '../utils/abs-round';\nimport { DateObject } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { cloneWithOffset } from '../units/offset';\nimport { isAfter, isBefore } from '../utils/date-compare';\nimport { getFullYear, getMonth } from '../utils/date-getters';\nimport { add } from '../moment/add-subtract';\nimport { cloneDate } from '../create/clone';\n\nconst aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\n// tslint:disable-next-line\nconst isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nexport type DurationInput = string | number | Duration | Partial<DateObject> | { from: Date; to: Date };\n\nexport function createDuration(input?: DurationInput, key?: string, config: DateParsingConfig = {}) {\n const duration = convertDuration(input, key);\n // matching against regexp is expensive, do it on demand\n\n return new Duration(duration, config);\n}\n\nfunction convertDuration(input: any, key: string): Partial<DateObject> {\n // checks for null or undefined\n if (input == null) {\n return {};\n }\n\n if (isDuration(input)) {\n return {\n milliseconds: input._milliseconds,\n day: input._days,\n month: input._months\n };\n }\n if (isNumber(input)) {\n // duration = {};\n return key ? { [key]: input } : { milliseconds: input };\n }\n\n if (isString(input)) {\n let match = aspNetRegex.exec(input);\n\n if (match) {\n const sign = (match[1] === '-') ? -1 : 1;\n\n return {\n year: 0,\n day: toInt(match[DATE]) * sign,\n hours: toInt(match[HOUR]) * sign,\n minutes: toInt(match[MINUTE]) * sign,\n seconds: toInt(match[SECOND]) * sign,\n // the millisecond decimal point is included in the match\n milliseconds: toInt(absRound(toInt(match[MILLISECOND]) * 1000)) * sign\n };\n }\n\n match = isoRegex.exec(input);\n if (match) {\n const sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n\n return {\n year: parseIso(match[2], sign),\n month: parseIso(match[3], sign),\n week: parseIso(match[4], sign),\n day: parseIso(match[5], sign),\n hours: parseIso(match[6], sign),\n minutes: parseIso(match[7], sign),\n seconds: parseIso(match[8], sign)\n };\n }\n\n }\n\n if (isObject<{from: any; to: any}>(input) && ('from' in input || 'to' in input)) {\n const diffRes = momentsDifference(parseDate(input.from), parseDate(input.to));\n\n return {\n milliseconds: diffRes.milliseconds,\n month: diffRes.months\n };\n }\n\n return input;\n}\n\n// createDuration.fn = Duration.prototype;\n// createDuration.invalid = invalid;\n\nfunction parseIso(inp: string, sign: number): number {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n const res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n const res = { milliseconds: 0, months: 0 };\n\n res.months = getMonth(other) - getMonth(base) +\n (getFullYear(other) - getFullYear(base)) * 12;\n const _basePlus = add(cloneDate(base), res.months, 'month');\n if (isAfter(_basePlus, other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(add(cloneDate(base), res.months, 'month'));\n\n return res;\n}\n\nfunction momentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n if (!(isDateValid(base) && isDateValid(other))) {\n return { milliseconds: 0, months: 0 };\n }\n\n let res;\n const _other = cloneWithOffset(other, base, {_offset: base.getTimezoneOffset()});\n if (isBefore(base, _other)) {\n res = positiveMomentsDifference(base, _other);\n } else {\n res = positiveMomentsDifference(_other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n","import { createDuration } from '../duration/create';\nimport { absRound } from '../utils/abs-round';\nimport { Duration } from '../duration/constructor';\nimport { getDate, getMonth, getTime } from '../utils/date-getters';\nimport { setDate, setMonth, setTime } from '../utils/date-setters';\nimport { cloneDate } from '../create/clone';\nimport { UnitOfTime } from '../types';\n\nexport function add(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, 1, isUTC);\n}\n\nexport function subtract(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, -1, isUTC);\n}\n\nexport function addSubtract(date: Date, duration: Duration, isAdding: number, isUTC?: boolean): Date {\n const milliseconds = duration._milliseconds;\n const days = absRound(duration._days);\n const months = absRound(duration._months);\n\n // todo: add timezones support\n // const _updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(date, getMonth(date, isUTC) + months * isAdding, isUTC);\n }\n if (days) {\n setDate(date, getDate(date, isUTC) + days * isAdding, isUTC);\n }\n if (milliseconds) {\n setTime(date, getTime(date) + milliseconds * isAdding);\n }\n\n return cloneDate(date);\n // todo: add timezones support\n // if (_updateOffset) {\n // hooks.updateOffset(date, days || months);\n // }\n}\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { getDay } from '../utils/date-getters';\nimport { addRegexToken, match1to2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { add } from '../moment/add-subtract';\nimport { getLocale } from '../locale/locales';\n\n// FORMATTING\n\naddFormatToken('d', null, 'do',\n function (date: Date, opts: DateFormatterOptions): string {\n return getDay(date, opts.isUTC).toString(10);\n });\n\naddFormatToken('dd', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysMin(date, opts.format, opts.isUTC);\n });\n\naddFormatToken('ddd', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysShort(date, opts.format, opts.isUTC);\n });\n\naddFormatToken('dddd', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdays(date, opts.format, opts.isUTC);\n });\n\naddFormatToken('e', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return getLocaleDayOfWeek(date, opts.locale, opts.isUTC).toString(10);\n // return getDay(date, opts.isUTC).toString(10);\n });\naddFormatToken('E', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n return getISODayOfWeek(date, opts.isUTC).toString(10);\n });\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\n\naddRegexToken('dd', function (isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysMinRegex(isStrict);\n});\n\naddRegexToken('ddd', function (isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'],\n function (input: string, week: WeekParsing, config: DateParsingConfig, token) {\n const weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = !!input;\n }\n\n return config;\n });\n\naddWeekParseToken(['d', 'e', 'E'],\n function (input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token] = toInt(input);\n\n return config;\n });\n\n// HELPERS\n\nexport function parseWeekday(input: string | number, locale: Locale): number {\n if (!isString(input)) {\n return input;\n }\n\n const _num = parseInt(input, 10);\n if (!isNaN(_num)) {\n return _num;\n }\n\n const _weekDay = locale.weekdaysParse(input);\n if (isNumber(_weekDay)) {\n return _weekDay;\n }\n\n return null;\n}\n\nexport function parseIsoWeekday(input: string | number, locale: Locale = getLocale()): number {\n if (isString(input)) {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNumber(input) && isNaN(input) ? null : input;\n}\n\n// MOMENTS\n\nexport function getSetDayOfWeek(date: Date, input: number, opts: { isUTC?: boolean; locale: Locale }): Date | number {\n if (!input) {\n return getDayOfWeek(date, opts.isUTC);\n }\n\n return setDayOfWeek(date, input, opts.locale, opts.isUTC);\n}\n\nexport function setDayOfWeek(date: Date, input: number, locale = getLocale(), isUTC?: boolean): Date {\n const day = getDay(date, isUTC);\n const _input = parseWeekday(input, locale);\n\n return add(date, _input - day, 'day');\n}\n\nexport function getDayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC);\n}\n\n/********************************************/\n\n// todo: utc\n// getSetLocaleDayOfWeek\nexport function getLocaleDayOfWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return (getDay(date, isUTC) + 7 - locale.firstDayOfWeek()) % 7;\n}\n\nexport function setLocaleDayOfWeek(date: Date, input: number, opts: { locale?: Locale; isUTC?: boolean } = {}): Date {\n const weekday = getLocaleDayOfWeek(date, opts.locale, opts.isUTC);\n\n return add(date, input - weekday, 'day');\n}\n\n\n// getSetISODayOfWeek\nexport function getISODayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC) || 7;\n}\n\nexport function setISODayOfWeek(date: Date, input: number | string, opts: { locale?: Locale } = {}): Date {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n const weekday = parseIsoWeekday(input, opts.locale);\n\n return setDayOfWeek(date, getDayOfWeek(date) % 7 ? weekday : weekday - 7);\n}\n","// tslint:disable: switch-default\nimport { TimeUnit, UnitOfTime } from '../types';\nimport {\n setDate, setFullDate, setHours, setMilliseconds, setMinutes, setMonth, setSeconds,\n shiftDate\n} from './date-setters';\nimport { cloneDate } from '../create/clone';\nimport { setISODayOfWeek, setLocaleDayOfWeek } from '../units/day-of-week';\nimport { getMonth } from './date-getters';\nimport { add, subtract } from '../moment/add-subtract';\n\nexport function startOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n const _date = cloneDate(date);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (unit) {\n case 'year':\n setMonth(_date, 0, isUTC);\n /* falls through */\n case 'quarter':\n case 'month':\n setDate(_date, 1, isUTC);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n setHours(_date, 0, isUTC);\n /* falls through */\n case 'hours':\n setMinutes(_date, 0, isUTC);\n /* falls through */\n case 'minutes':\n setSeconds(_date, 0, isUTC);\n /* falls through */\n case 'seconds':\n setMilliseconds(_date, 0, isUTC);\n }\n\n // weeks are a special case\n if (unit === 'week') {\n setLocaleDayOfWeek(_date, 0, {isUTC});\n }\n if (unit === 'isoWeek') {\n setISODayOfWeek(_date, 1);\n }\n\n // quarters are also special\n if (unit === 'quarter') {\n setMonth(_date, Math.floor(getMonth(_date, isUTC) / 3) * 3, isUTC);\n }\n\n return _date;\n}\n\nexport function endOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n let _unit = unit;\n // 'date' is an alias for 'day', so it should be considered as such.\n if (_unit === 'date') {\n _unit = 'day';\n }\n\n const start = startOf(date, _unit, isUTC);\n const _step = add(start, 1, _unit === 'isoWeek' ? 'week' : _unit, isUTC);\n const res = subtract(_step, 1, 'milliseconds', isUTC);\n\n return res;\n}\n","import { addFormatToken } from '../format/format';\nimport { startOf } from '../utils/start-end-of';\nimport { addRegexToken, match1to3, match3 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { toInt } from '../utils/type-checks';\nimport { add } from '../moment/add-subtract';\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3, false], 'DDDo',\n function (date: Date): string {\n return getDayOfYear(date).toString(10);\n });\n\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\n\naddUnitPriority('dayOfYear', 4);\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'],\n function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._dayOfYear = toInt(input);\n\n return config;\n });\n\nexport function getDayOfYear(date: Date, isUTC?: boolean): number {\n const date1 = +startOf(date, 'day', isUTC);\n const date2 = +startOf(date, 'year', isUTC);\n const someDate = date1 - date2;\n const oneDay = 1000 * 60 * 60 * 24;\n\n return Math.round(someDate / oneDay) + 1;\n}\n\nexport function setDayOfYear(date: Date, input: number): Date {\n const dayOfYear = getDayOfYear(date);\n\n return add(date, (input - dayOfYear), 'day');\n}\n","/**\n *\n * @param {number} year\n * @param {number} dow - start-of-first-week\n * @param {number} doy - start-of-year\n * @returns {number}\n */\nimport { createUTCDate } from '../create/date-from-array';\nimport { daysInYear } from './year';\nimport { getDayOfYear } from './day-of-year';\nimport { getFullYear } from '../utils/date-getters';\n\nfunction firstWeekOffset(year: number, dow: number, doy: number): number {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n const fwd = dow - doy + 7;\n // first-week day local weekday -- which local weekday is fwd\n const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nexport function dayOfYearFromWeeks(\n year: number,\n week: number,\n weekday: number,\n dow: number,\n doy: number\n): { year: number; dayOfYear: number } {\n const localWeekday = (7 + weekday - dow) % 7;\n const weekOffset = firstWeekOffset(year, dow, doy);\n const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;\n let resYear: number;\n let resDayOfYear: number;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\n\nexport function weekOfYear(date: Date, dow: number, doy: number, isUTC?: boolean): { week: number; year: number } {\n const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);\n const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;\n let resWeek: number;\n let resYear: number;\n\n if (week < 1) {\n resYear = getFullYear(date, isUTC) - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {\n resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);\n resYear = getFullYear(date, isUTC) + 1;\n } else {\n resYear = getFullYear(date, isUTC);\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n}\n\nexport function weeksInYear(year: number, dow: number, doy: number): number {\n const weekOffset = firstWeekOffset(year, dow, doy);\n const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n","// tslint:disable:max-file-line-count max-line-length cyclomatic-complexity\n\nimport { weekOfYear } from '../units/week-calendar-utils';\nimport { hasOwnProp, isArray, isFunction } from '../utils/type-checks';\nimport { getDay, getMonth } from '../utils/date-getters';\nimport { matchWord, regexEscape } from '../parse/regex';\nimport { setDayOfWeek } from '../units/day-of-week';\n\nexport interface LocaleOptionsFormat {\n format: string[];\n standalone: string[];\n isFormat?: RegExp;\n}\n\nexport type LocaleOptions = string[] | LocaleOptionsFormat;\n\nconst MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nexport const defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n);\nexport const defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n);\nexport const defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nexport const defaultLongDateFormat: { [index: string]: string } = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n};\n\nexport const defaultOrdinal = '%d';\nexport const defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nconst defaultMonthsShortRegex = matchWord;\nconst defaultMonthsRegex = matchWord;\n\nexport type OrdinalDateFn = (num: number, token?: string) => string;\nexport type PluralizeDateFn = (num: number, withoutSuffix: boolean,\n key?: string, isFuture?: boolean) => string;\n\nexport interface LocaleData {\n abbr?: string;\n parentLocale?: string;\n\n months?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsShort?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsParseExact?: boolean;\n\n weekdays?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysShort?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysMin?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysParseExact?: boolean;\n\n longDateFormat?: { [index: string]: string };\n calendar?: {\n [key: string]: (string\n | ((date: Date, now?: Date) => string)\n // tslint:disable-next-line\n | ((dayOfWeek: number, isNextWeek: boolean) => string))\n };\n relativeTime?: { [key: string]: string | PluralizeDateFn };\n dayOfMonthOrdinalParse?: RegExp;\n ordinal?: string | OrdinalDateFn;\n\n week?: { dow?: number; doy?: number };\n\n invalidDate?: string;\n\n monthsRegex?: RegExp;\n monthsParse?: RegExp[];\n monthsShortRegex?: RegExp;\n monthsStrictRegex?: RegExp;\n monthsShortStrictRegex?: RegExp;\n longMonthsParse?: RegExp[];\n shortMonthsParse?: RegExp[];\n\n meridiemParse?: RegExp;\n\n meridiemHour?(hour: number, meridiem: string): number;\n\n preparse?(str: string): string;\n\n postformat?(str: string | number): string;\n\n meridiem?(hour: number, minute?: number, isLower?: boolean): string;\n\n isPM?(input: string): boolean;\n}\n\nexport class Locale {\n parentLocale?: Locale;\n _abbr: string;\n _config: LocaleData;\n meridiemHour: (hour: number, meridiem: string) => number;\n\n _invalidDate: string;\n _week: { dow: number; doy: number };\n _dayOfMonthOrdinalParse: RegExp;\n _ordinalParse: RegExp;\n _meridiemParse: RegExp;\n\n private _calendar: { [key: string]: string };\n private _relativeTime: { future: string; past: string };\n private _months: LocaleOptions;\n private _monthsShort: LocaleOptions;\n private _monthsRegex: RegExp;\n private _monthsShortRegex: RegExp;\n private _monthsStrictRegex: RegExp;\n private _monthsShortStrictRegex: RegExp;\n private _monthsParse: RegExp[];\n private _longMonthsParse: string[] | RegExp[];\n private _shortMonthsParse: string[] | RegExp[];\n private _monthsParseExact: RegExp;\n private _weekdaysParseExact: boolean;\n private _weekdaysRegex: RegExp;\n private _weekdaysShortRegex: RegExp;\n private _weekdaysMinRegex: RegExp;\n\n private _weekdaysStrictRegex: RegExp;\n private _weekdaysShortStrictRegex: RegExp;\n private _weekdaysMinStrictRegex: RegExp;\n\n private _weekdays: LocaleOptions;\n private _weekdaysShort: string[];\n private _weekdaysMin: string[];\n private _weekdaysParse: string[] | RegExp[];\n private _minWeekdaysParse: string[] | RegExp[];\n private _shortWeekdaysParse: string[] | RegExp[];\n private _fullWeekdaysParse: RegExp[];\n private _longDateFormat: { [key: string]: string };\n\n private _ordinal: string;\n\n constructor(config: LocaleData) {\n if (!!config) {\n this.set(config);\n }\n }\n\n set(config: LocaleData): void {\n let confKey;\n for (confKey in config) {\n if (!config.hasOwnProperty(confKey)) {\n continue;\n }\n const prop = config[confKey as keyof LocaleData];\n const key = (isFunction(prop) ? confKey : `_${confKey}`) as keyof Locale;\n\n this[key] = prop as any;\n }\n\n this._config = config;\n }\n\n calendar(key: string, date: Date, now: Date): string {\n const output = this._calendar[key] || this._calendar.sameElse;\n\n return isFunction(output) ? output.call(null, date, now) : output;\n }\n\n longDateFormat(key: string) {\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val: string) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n get invalidDate(): string {\n return this._invalidDate;\n }\n\n set invalidDate(val: string) {\n this._invalidDate = val;\n }\n\n ordinal(num: number, token?: string): string {\n return this._ordinal.replace('%d', num.toString(10));\n }\n\n preparse(str: string) {\n return str;\n }\n\n postformat(str: string) {\n return str;\n }\n\n relativeTime(num: number, withoutSuffix: boolean, str: 'future' | 'past', isFuture: boolean): string {\n const output = this._relativeTime[str];\n\n return (isFunction(output)) ?\n output(num, withoutSuffix, str, isFuture) :\n output.replace(/%d/i, num.toString(10));\n }\n\n pastFuture(diff: number, output: string): string {\n const format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n /** Months */\n months(): string[];\n months(date: Date, format?: string, isUTC?: boolean): string;\n months(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._months)\n ? this._months\n : this._months.standalone;\n }\n\n if (isArray<string>(this._months)) {\n return this._months[getMonth(date, isUTC)];\n }\n\n const key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone';\n\n return this._months[key][getMonth(date, isUTC)];\n }\n\n monthsShort(): string[];\n monthsShort(date?: Date, format?: string, isUTC?: boolean): string;\n monthsShort(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort.standalone;\n }\n\n if (isArray<string>(this._monthsShort)) {\n return this._monthsShort[getMonth(date, isUTC)];\n }\n const key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';\n\n return this._monthsShort[key][getMonth(date, isUTC)];\n }\n\n monthsParse(monthName: string, format?: string, strict?: boolean): number {\n let date;\n let regex;\n\n if (this._monthsParseExact) {\n return this.handleMonthStrictParse(monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(Date.UTC(2000, i));\n if (strict && !this._longMonthsParse[i]) {\n const _months = this.months(date, '', true).replace('.', '');\n const _shortMonths = this.monthsShort(date, '', true).replace('.', '');\n this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');\n this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && (this._longMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (strict && format === 'MMM' && (this._shortMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n monthsRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n }\n\n return this._monthsRegex;\n }\n\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n\n monthsShortRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n }\n\n return this._monthsShortRegex;\n }\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n\n /** Week */\n week(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;\n }\n\n firstDayOfWeek(): number {\n return this._week.dow;\n }\n\n firstDayOfYear(): number {\n return this._week.doy;\n }\n\n /** Day of Week */\n weekdays(): string[];\n weekdays(date: Date, format?: string, isUTC?: boolean): string;\n weekdays(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return isArray<string>(this._weekdays)\n ? this._weekdays\n : this._weekdays.standalone;\n }\n\n if (isArray<string>(this._weekdays)) {\n return this._weekdays[getDay(date, isUTC)];\n }\n\n const _key = this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone';\n\n return this._weekdays[_key][getDay(date, isUTC)];\n }\n\n weekdaysMin(): string[];\n weekdaysMin(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysMin(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;\n }\n\n weekdaysShort(): string[];\n weekdaysShort(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysShort(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;\n }\n\n\n // proto.weekdaysParse = localeWeekdaysParse;\n weekdaysParse(weekdayName?: string, format?: string, strict?: boolean): number {\n let i;\n let regex;\n\n if (this._weekdaysParseExact) {\n return this.handleWeekStrictParse(weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // fix: here is the issue\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\\.?')}$`, 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n\n if (!isArray<RegExp>(this._fullWeekdaysParse)\n || !isArray<RegExp>(this._shortWeekdaysParse)\n || !isArray<RegExp>(this._minWeekdaysParse)\n || !isArray<RegExp>(this._weekdaysParse)) {\n return;\n }\n\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // proto.weekdaysRegex = weekdaysRegex;\n weekdaysRegex(isStrict: boolean) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = matchWord;\n }\n\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n // proto.weekdaysShortRegex = weekdaysShortRegex;\n // proto.weekdaysMinRegex = weekdaysMinRegex;\n\n\n weekdaysShortRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = matchWord;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n weekdaysMinRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = matchWord;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n isPM(input: string): boolean {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return input.toLowerCase().charAt(0) === 'p';\n }\n\n meridiem(hours: number, minutes: number, isLower: boolean): string {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n }\n\n return isLower ? 'am' : 'AM';\n }\n\n formatLongDate(key: string) {\n this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[\n key\n ] = formatUpper.replace(/MMMM|MM|DD|dddd/g, (val: string) => {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n private handleMonthStrictParse(monthName: string, format: string, strict?: boolean) {\n const llc = monthName.toLocaleLowerCase();\n let i;\n let ii;\n let mom;\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = new Date(2000, i);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n private handleWeekStrictParse(weekdayName: string, format: string, strict: boolean): number {\n let ii;\n const llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n let i;\n for (i = 0; i < 7; ++i) {\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();\n }\n }\n\n if (!isArray<string>(this._weekdaysParse)\n || !isArray<string>(this._shortWeekdaysParse)\n || !isArray<string>(this._minWeekdaysParse)) {\n return;\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n private computeMonthsParse() {\n const shortPieces: string[] = [];\n const longPieces: string[] = [];\n const mixedPieces: string[] = [];\n let date;\n\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(2000, i);\n shortPieces.push(this.monthsShort(date, ''));\n longPieces.push(this.months(date, ''));\n mixedPieces.push(this.months(date, ''));\n mixedPieces.push(this.monthsShort(date, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n }\n\n private computeWeekdaysParse() {\n const minPieces = [];\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n\n let i;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // let mom = createUTC([2000, 1]).day(i);\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n const minp = this.weekdaysMin(date);\n const shortp = this.weekdaysShort(date);\n const longp = this.weekdays(date);\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');\n }\n}\n\nfunction cmpLenRev(a: string, b: string): number {\n return b.length - a.length;\n}\n","export const defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n};\n","import {\n defaultDayOfMonthOrdinalParse,\n defaultLocaleMonths,\n defaultLocaleMonthsShort,\n defaultLocaleWeekdays,\n defaultLocaleWeekdaysMin,\n defaultLocaleWeekdaysShort, defaultLongDateFormat, defaultOrdinal,\n LocaleData\n} from './locale.class';\nimport { defaultCalendar } from './calendar';\n\nexport const defaultInvalidDate = 'Invalid date';\n\nexport const defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n};\n\nexport const defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n\nexport const defaultRelativeTime: {[key: string]: string} = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n};\n\nexport const baseConfig: LocaleData = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n};\n","// compare two arrays, return the number of differences\nimport { toInt } from './type-checks';\n\nexport function compareArrays<T>(array1: T[], array2: T[], dontConvert: boolean) {\n const len = Math.min(array1.length, array2.length);\n const lengthDiff = Math.abs(array1.length - array2.length);\n let diffs = 0;\n let i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i])\n || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n}\n","// internal storage for locale config files\nimport { Locale, LocaleData } from './locale.class';\nimport { baseConfig } from './locale.defaults';\nimport { hasOwnProp, isArray, isObject, isString, isUndefined, toInt } from '../utils/type-checks';\nimport { compareArrays } from '../utils/compare-arrays';\n\nconst locales: { [key: string]: Locale } = {};\nconst localeFamilies: { [key: string]: {name: string; config: LocaleData}[] } = {};\nlet globalLocale: Locale;\n\nfunction normalizeLocale(key: string): string {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least,\n// but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names: string[]): Locale {\n let next;\n let locale;\n let i = 0;\n\n while (i < names.length) {\n const split = normalizeLocale(names[i]).split('-');\n let j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n // the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n\n return null;\n}\n\nexport function mergeConfigs(parentConfig: LocaleData,\n childConfig: LocaleData) {\n const res: LocaleData = Object.assign({}, parentConfig);\n\n for (const childProp in childConfig) {\n if (!hasOwnProp(childConfig, childProp)) {\n continue;\n }\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n } else if (childConfig[childProp] != null) {\n res[childProp] = childConfig[childProp];\n } else {\n delete res[childProp];\n }\n }\n let parentProp;\n for (parentProp in parentConfig) {\n if (\n hasOwnProp(parentConfig, parentProp) &&\n !hasOwnProp(childConfig, parentProp) &&\n isObject(parentConfig[parentProp as keyof LocaleData])\n ) {\n // make sure changes to properties don't modify parent config\n res[parentProp as keyof LocaleData] = Object.assign({}, res[parentProp as keyof LocaleData]);\n }\n }\n\n return res;\n}\n\n\nfunction loadLocale(name: string): Locale {\n // no way!\n /* var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }*/\n if (!locales[name]) {\n // tslint:disable-next-line\n console.error(`Khronos locale error: please load locale \"${name}\" before using it`);\n // throw new Error(`Khronos locale error: please load locale \"${name}\" before using it`);\n }\n\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nexport function getSetGlobalLocale(key?: string | string[], values?: LocaleData): string {\n let data: Locale;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else if (isString(key)) {\n data = defineLocale(key, values);\n }\n\n if (data) {\n globalLocale = data;\n }\n }\n\n return globalLocale && globalLocale._abbr;\n}\n\nexport function defineLocale(name: string, config?: LocaleData): Locale {\n if (config === null) {\n // useful for testing\n delete locales[name];\n globalLocale = getLocale('en');\n\n return null;\n }\n\n if (!config) {\n return;\n }\n\n let parentConfig = baseConfig;\n config.abbr = name;\n if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({ name, config });\n\n return null;\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n}\n\nexport function updateLocale(name: string, config?: LocaleData): Locale {\n let _config = config;\n\n if (_config != null) {\n let parentConfig = baseConfig;\n // MERGE\n const tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n _config = mergeConfigs(parentConfig, _config);\n const locale = new Locale(_config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n}\n\n// returns locale data\nexport function getLocale(key?: string | string[]): Locale {\n if (!key) {\n return globalLocale;\n }\n // let locale;\n const _key = isArray(key) ? key : [key];\n\n return chooseLocale(_key);\n}\n\nexport function listLocales(): string[] {\n return Object.keys(locales);\n}\n\n// define default locale\ngetSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal(num: number): string {\n const b = num % 10;\n const output =\n toInt((num % 100) / 10) === 1\n ? 'th'\n : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n\n return num + output;\n }\n});\n","/*tslint:disable */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * JS version of browser APIs. This library can only run in the browser.\n */\nvar win = (typeof window !== 'undefined' && window) || <any>{};\n\nexport { win as window };\nexport var document = win.document;\nexport var location = win.location;\nexport var gc = win['gc'] ? () => win['gc']() : (): any => null;\nexport var performance = win['performance'] ? win['performance'] : null;\nexport const Event = win['Event'];\nexport const MouseEvent = win['MouseEvent'];\nexport const KeyboardEvent = win['KeyboardEvent'];\nexport const EventTarget = win['EventTarget'];\nexport const History = win['History'];\nexport const Location = win['Location'];\nexport const EventListener = win['EventListener'];\n","import { window } from './facade/browser';\n\nlet guessedVersion: 'bs3' | 'bs4';\n\nfunction _guessBsVersion(): 'bs3' | 'bs4' {\n if (typeof document === 'undefined') {\n return null;\n }\n const spanEl = document.createElement('span');\n spanEl.innerText = 'test bs version';\n document.body.appendChild(spanEl);\n spanEl.classList.add('d-none');\n const rect = spanEl.getBoundingClientRect();\n document.body.removeChild(spanEl);\n if (!rect) {\n return 'bs3';\n }\n\n return rect.top === 0 ? 'bs4' : 'bs3';\n}\n\nexport function setTheme(theme: 'bs3' | 'bs4'): void {\n guessedVersion = theme;\n}\n\n// todo: in ngx-bootstrap, bs4 will became a default one\nexport function isBs3(): boolean {\n if (typeof window === 'undefined') {\n return true;\n }\n\n if (typeof window.__theme === 'undefined') {\n if (guessedVersion) {\n return guessedVersion === 'bs3';\n }\n guessedVersion = _guessBsVersion();\n\n return guessedVersion === 'bs3';\n }\n\n return window.__theme !== 'bs4';\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from '../utils/theme-provider';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n template: \"<div class=\\\"panel card\\\" [ngClass]=\\\"panelClass\\\"> <div class=\\\"panel-heading card-header\\\" role=\\\"tab\\\" (click)=\\\"toggleOpen($event)\\\"> <div class=\\\"panel-title\\\"> <div role=\\\"button\\\" class=\\\"accordion-toggle\\\" [attr.aria-expanded]=\\\"isOpen\\\"> <button class=\\\"btn btn-link\\\" *ngIf=\\\"heading\\\" [ngClass]=\\\"{'text-muted': isDisabled}\\\"> {{ heading }} </button> <ng-content select=\\\"[accordion-heading]\\\"></ng-content> </div> </div> </div> <div class=\\\"panel-collapse collapse\\\" role=\\\"tabpanel\\\" [collapse]=\\\"!isOpen\\\"> <div class=\\\"panel-body card-block card-body\\\"> <ng-content></ng-content> </div> </div> </div> \",\n host: {\n class: 'panel',\n style: 'display: block'\n }\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled: boolean;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null).then(() => {\n this.isOpenChange.emit(value);\n });\n }\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n }\n\n ngOnInit(): any {\n this.panelClass = this.panelClass || 'panel-default';\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): any {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(event: Event): any {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","// todo: add animations when https://github.com/angular/angular/issues/9947 solved\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\n\n@Directive({\n selector: '[collapse]',\n exportAs: 'bs-collapse',\n host: {\n '[class.collapse]': 'true'\n }\n})\nexport class CollapseDirective {\n /** This event fires as soon as content collapses */\n @Output() collapsed: EventEmitter<any> = new EventEmitter();\n /** This event fires as soon as content becomes visible */\n @Output() expanded: EventEmitter<any> = new EventEmitter();\n\n @HostBinding('style.display') display: string;\n // shown\n @HostBinding('class.in')\n @HostBinding('class.show')\n @HostBinding('attr.aria-expanded')\n isExpanded = true;\n // hidden\n @HostBinding('attr.aria-hidden') isCollapsed = false;\n // stale state\n @HostBinding('class.collapse') isCollapse = true;\n // animation state\n @HostBinding('class.collapsing') isCollapsing = false;\n\n /** A flag indicating visibility of content (shown or hidden) */\n @Input()\n set collapse(value: boolean) {\n this.isExpanded = value;\n this.toggle();\n }\n\n get collapse(): boolean {\n return this.isExpanded;\n }\n\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\n }\n\n /** allows to manually toggle content visibility */\n toggle(): void {\n if (this.isExpanded) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /** allows to manually hide content */\n hide(): void {\n this.isCollapse = false;\n this.isCollapsing = true;\n\n this.isExpanded = false;\n this.isCollapsed = true;\n\n this.isCollapse = true;\n this.isCollapsing = false;\n\n this.display = 'none';\n this.collapsed.emit(this);\n }\n\n /** allows to manually show collapsed content */\n show(): void {\n this.isCollapse = false;\n this.isCollapsing = true;\n\n this.isExpanded = true;\n this.isCollapsed = false;\n\n this.display = 'block';\n // this.height = 'auto';\n this.isCollapse = true;\n this.isCollapsing = false;\n this._renderer.setStyle(\n this._el.nativeElement,\n 'overflow',\n 'visible'\n );\n this._renderer.setStyle(this._el.nativeElement, 'height', 'auto');\n this.expanded.emit(this);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CollapseDirective } from './collapse.directive';\n\n@NgModule({\n declarations: [CollapseDirective],\n exports: [CollapseDirective]\n})\nexport class CollapseModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: CollapseModule, providers: [] };\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable()\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CollapseModule } from '../collapse/collapse.module';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionConfig } from './accordion.config';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: AccordionModule, providers: [AccordionConfig] };\n }\n}\n","export { AccordionPanelComponent } from './accordion-group.component';\nexport { AccordionComponent } from './accordion.component';\nexport { AccordionModule } from './accordion.module';\nexport { AccordionConfig } from './accordion.config';\n","/*tslint:disable:no-invalid-this */\nexport function OnChange(defaultValue?: any): any {\n const sufix = 'Change';\n\n return function OnChangeHandler(target: any, propertyKey: string): void {\n const _key = ` __${propertyKey}Value`;\n Object.defineProperty(target, propertyKey, {\n get(): any {\n return this[_key];\n },\n set(value: any): void {\n const prevValue = this[_key];\n this[_key] = value;\n if (prevValue !== value && this[propertyKey + sufix]) {\n this[propertyKey + sufix].emit(value);\n }\n }\n });\n };\n}\n/* tslint:enable */\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport { AlertConfig } from './alert.config';\nimport { OnChange } from '../utils/decorators';\n\n@Component({\n selector: 'alert,bs-alert',\n template: \"<ng-template [ngIf]=\\\"isOpen\\\"> <div [class]=\\\"'alert alert-' + type\\\" role=\\\"alert\\\" [ngClass]=\\\"classes\\\"> <ng-template [ngIf]=\\\"dismissible\\\"> <button type=\\\"button\\\" class=\\\"close\\\" aria-label=\\\"Close\\\" (click)=\\\"close()\\\"> <span aria-hidden=\\\"true\\\">×</span> <span class=\\\"sr-only\\\">Close</span> </button> </ng-template> <ng-content></ng-content> </div> </ng-template> \",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AlertComponent implements OnInit {\n /** Alert type.\n * Provides one of four bootstrap supported contextual classes:\n * `success`, `info`, `warning` and `danger`\n */\n @Input() type = 'warning';\n /** If set, displays an inline \"Close\" button */\n @OnChange() @Input() dismissible = false;\n /** Number in milliseconds, after which alert will be closed */\n @Input() dismissOnTimeout: number | string;\n\n /** Is alert visible */\n @Input() isOpen = true;\n\n /** This event fires immediately after close instance method is called,\n * $event is an instance of Alert component.\n */\n @Output() onClose = new EventEmitter<AlertComponent>();\n /** This event fires when alert closed, $event is an instance of Alert component */\n @Output() onClosed = new EventEmitter<AlertComponent>();\n\n\n classes = '';\n dismissibleChange = new EventEmitter<boolean>();\n\n constructor(_config: AlertConfig, private changeDetection: ChangeDetectorRef) {\n Object.assign(this, _config);\n this.dismissibleChange.subscribe((dismissible: boolean) => {\n this.classes = this.dismissible ? 'alert-dismissible' : '';\n this.changeDetection.markForCheck();\n });\n }\n\n ngOnInit(): void {\n if (this.dismissOnTimeout) {\n // if dismissOnTimeout used as attr without binding, it will be a string\n setTimeout(\n () => this.close(),\n parseInt(this.dismissOnTimeout as string, 10)\n );\n }\n }\n\n // todo: animation ` If the .fade and .in classes are present on the element,\n // the alert will fade out before it is removed`\n /**\n * Closes an alert by removing it from the DOM.\n */\n close(): void {\n if (!this.isOpen) {\n return;\n }\n\n this.onClose.emit(this);\n this.isOpen = false;\n this.changeDetection.markForCheck();\n this.onClosed.emit(this);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AlertConfig {\n /** default alert type */\n type = 'warning';\n\n /** is alerts are dismissible by default */\n dismissible = false;\n\n /** default time before alert will dismiss */\n dismissOnTimeout?: number = undefined;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { AlertComponent } from './alert.component';\nimport { AlertConfig } from './alert.config';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [AlertComponent],\n exports: [AlertComponent],\n entryComponents: [AlertComponent]\n})\nexport class AlertModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: AlertModule, providers: [AlertConfig] };\n }\n}\n","export { AlertComponent } from './alert.component';\nexport { AlertModule } from './alert.module';\nexport { AlertConfig } from './alert.config';\n","// tslint:disable:no-use-before-declare\nimport {\n Directive,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue: any = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse: any = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: any;\n protected isDisabled: boolean;\n\n protected onChange: any = Function.prototype;\n protected onTouched: any = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): any {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: any): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","// tslint:disable:no-use-before-declare\nimport { ChangeDetectorRef, Directive, ElementRef, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n get value(): any {\n return this._value;\n }\n set value(value: any) {\n this._value = value;\n }\n\n private _value: any;\n\n constructor(private el: ElementRef, private cdr: ChangeDetectorRef) {}\n\n writeValue(value: any): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","// tslint:disable:no-use-before-declare\nimport {\n ChangeDetectorRef, Directive, ElementRef, forwardRef, HostBinding, HostListener, Input, OnInit,\n Optional, Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n private _value: any;\n private _disabled: boolean;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: any;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input() get value(): any {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: any) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` — radio button is disabled */\n @Input() get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n this.setDisabledState(disabled);\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n @Optional() private group: ButtonRadioGroupDirective,\n private renderer: Renderer2\n ) {}\n\n @HostListener('click')\n onClick(): void {\n if (this.el.nativeElement.attributes.disabled || !this.uncheckable && this.btnRadio === this.value) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n _onChange(value: any): void {\n if (this.group) {\n this.group.onTouched();\n this.group.onChange(value);\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: any): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n","export { ButtonCheckboxDirective } from './button-checkbox.directive';\nexport { ButtonRadioGroupDirective } from './button-radio-group.directive';\nexport { ButtonRadioDirective } from './button-radio.directive';\nexport { ButtonsModule } from './buttons.module';\n","export class LinkedList<T> {\n length = 0;\n protected head: any;\n protected tail: any;\n protected current: any;\n protected asArray: T[] = [];\n\n get(position: number): T {\n if (this.length === 0 || position < 0 || position >= this.length) {\n return void 0;\n }\n\n let current = this.head;\n\n for (let index = 0; index < position; index++) {\n current = current.next;\n }\n\n return current.value;\n }\n\n add(value: T, position: number = this.length): void {\n if (position < 0 || position > this.length) {\n throw new Error('Position is out of the list');\n }\n\n const node = {\n value: value as any,\n next: undefined as any,\n previous: undefined as any\n };\n\n if (this.length === 0) {\n this.head = node;\n this.tail = node;\n this.current = node;\n } else {\n if (position === 0) {\n // first node\n node.next = this.head;\n this.head.previous = node;\n this.head = node;\n } else if (position === this.length) {\n // last node\n this.tail.next = node;\n node.previous = this.tail;\n this.tail = node;\n } else {\n // node in middle\n const currentPreviousNode = this.getNode(position - 1);\n const currentNextNode = currentPreviousNode.next;\n\n currentPreviousNode.next = node;\n currentNextNode.previous = node;\n\n node.previous = currentPreviousNode;\n node.next = currentNextNode;\n }\n }\n this.length++;\n this.createInternalArrayRepresentation();\n }\n\n remove(position = 0): void {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n\n if (position === 0) {\n // first node\n this.head = this.head.next;\n\n if (this.head) {\n // there is no second node\n this.head.previous = undefined;\n } else {\n // there is no second node\n this.tail = undefined;\n }\n } else if (position === this.length - 1) {\n // last node\n this.tail = this.tail.previous;\n this.tail.next = undefined;\n } else {\n // middle node\n const removedNode = this.getNode(position);\n removedNode.next.previous = removedNode.previous;\n removedNode.previous.next = removedNode.next;\n }\n\n this.length--;\n this.createInternalArrayRepresentation();\n }\n\n set(position: number, value: T): void {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n\n const node = this.getNode(position);\n node.value = value;\n this.createInternalArrayRepresentation();\n }\n\n toArray(): T[] {\n return this.asArray;\n }\n\n findAll(fn: any): any[] {\n let current = this.head;\n const result: any[] = [];\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result.push({index, value: current.value});\n }\n current = current.next;\n }\n\n return result;\n }\n\n // Array methods overriding start\n push(...args: T[]): number {\n args.forEach((arg: any) => {\n this.add(arg);\n });\n\n return this.length;\n }\n\n pop(): T {\n if (this.length === 0) {\n return undefined;\n }\n const last = this.tail;\n this.remove(this.length - 1);\n\n return last.value;\n }\n\n unshift(...args: T[]): number {\n args.reverse();\n args.forEach((arg: any) => {\n this.add(arg, 0);\n });\n\n return this.length;\n }\n\n shift(): T {\n if (this.length === 0) {\n return undefined;\n }\n const lastItem = this.head.value;\n this.remove();\n\n return lastItem;\n }\n\n forEach(fn: any): void {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n fn(current.value, index);\n current = current.next;\n }\n }\n\n indexOf(value: T): number {\n let current = this.head;\n let position = 0;\n\n for (let index = 0; index < this.length; index++) {\n if (current.value === value) {\n position = index;\n break;\n }\n current = current.next;\n }\n\n return position;\n }\n\n some(fn: any): boolean {\n let current = this.head;\n let result = false;\n while (current && !result) {\n if (fn(current.value)) {\n result = true;\n break;\n }\n current = current.next;\n }\n\n return result;\n }\n\n every(fn: any): boolean {\n let current = this.head;\n let result = true;\n while (current && result) {\n if (!fn(current.value)) {\n result = false;\n }\n current = current.next;\n }\n\n return result;\n }\n\n toString(): string {\n return '[Linked List]';\n }\n\n find(fn: any): T {\n let current = this.head;\n let result: T;\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result = current.value;\n break;\n }\n current = current.next;\n }\n\n return result;\n }\n\n findIndex(fn: any): number {\n let current = this.head;\n let result: number;\n for (let index = 0; index < this.length; index++) {\n if (fn(current.value, index)) {\n result = index;\n break;\n }\n current = current.next;\n }\n\n return result;\n }\n\n protected getNode(position: number): any {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n\n let current = this.head;\n\n for (let index = 0; index < position; index++) {\n current = current.next;\n }\n\n return current;\n }\n\n protected createInternalArrayRepresentation(): void {\n const outArray: any[] = [];\n let current = this.head;\n\n while (current) {\n outArray.push(current.value);\n current = current.next;\n }\n this.asArray = outArray;\n }\n\n // Array methods overriding END\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nexport class Trigger {\n open: string;\n close?: string;\n\n constructor(open: string, close?: string) {\n this.open = open;\n this.close = close || open;\n }\n\n isManual(): boolean {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\n","import { window } from './facade/browser';\n\nexport class Utils {\n static reflow(element: any): void {\n ((bs: any): void => bs)(element.offsetHeight);\n }\n\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\n static getStyles(elem: any): any {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n let view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n }\n}\n","export { OnChange } from './decorators';\nexport { LinkedList } from './linked-list.class';\nexport { isBs3 } from './theme-provider';\nexport { Trigger } from './trigger.class';\nexport { Utils } from './utils.class';\nexport { setTheme } from './theme-provider';\n","// tslint:disable:max-file-line-count\n/***\n * pause (not yet supported) (?string='hover') - event group name which pauses\n * the cycling of the carousel, if hover pauses on mouseenter and resumes on\n * mouseleave keyboard (not yet supported) (?boolean=true) - if false\n * carousel will not react to keyboard events\n * note: swiping not yet supported\n */\n/****\n * Problems:\n * 1) if we set an active slide via model changes, .active class remains on a\n * current slide.\n * 2) if we have only one slide, we shouldn't show prev/next nav buttons\n * 3) if first or last slide is active and noWrap is true, there should be\n * \"disabled\" class on the nav buttons.\n * 4) default interval should be equal 5000\n */\n\nimport {\n Component, EventEmitter, Input, NgZone, OnDestroy, Output\n} from '@angular/core';\n\nimport { isBs3, LinkedList } from '../utils/index';\nimport { SlideComponent } from './slide.component';\nimport { CarouselConfig } from './carousel.config';\n\nexport enum Direction {\n UNKNOWN,\n NEXT,\n PREV\n}\n\n/**\n * Base element to create carousel\n */\n@Component({\n selector: 'carousel',\n template: \"<div (mouseenter)=\\\"pause()\\\" (mouseleave)=\\\"play()\\\" (mouseup)=\\\"play()\\\" class=\\\"carousel slide\\\"> <ol class=\\\"carousel-indicators\\\" *ngIf=\\\"showIndicators && slides.length > 1\\\"> <li *ngFor=\\\"let slidez of slides; let i = index;\\\" [class.active]=\\\"slidez.active === true\\\" (click)=\\\"selectSlide(i)\\\"></li> </ol> <div class=\\\"carousel-inner\\\"><ng-content></ng-content></div> <a class=\\\"left carousel-control carousel-control-prev\\\" [class.disabled]=\\\"activeSlide === 0 && noWrap\\\" (click)=\\\"previousSlide()\\\" *ngIf=\\\"slides.length > 1\\\"> <span class=\\\"icon-prev carousel-control-prev-icon\\\" aria-hidden=\\\"true\\\"></span> <span *ngIf=\\\"isBs4\\\" class=\\\"sr-only\\\">Previous</span> </a> <a class=\\\"right carousel-control carousel-control-next\\\" (click)=\\\"nextSlide()\\\" [class.disabled]=\\\"isLast(activeSlide) && noWrap\\\" *ngIf=\\\"slides.length > 1\\\"> <span class=\\\"icon-next carousel-control-next-icon\\\" aria-hidden=\\\"true\\\"></span> <span class=\\\"sr-only\\\">Next</span> </a> </div> \"\n})\nexport class CarouselComponent implements OnDestroy {\n /** If `true` — carousel will not cycle continuously and will have hard stops (prevent looping) */\n @Input() noWrap: boolean;\n /** If `true` — will disable pausing on carousel mouse hover */\n @Input() noPause: boolean;\n /** If `true` — carousel-indicators are visible */\n @Input() showIndicators: boolean;\n\n /** Will be emitted when active slide has been changed. Part of two-way-bindable [(activeSlide)] property */\n @Output()\n activeSlideChange: EventEmitter<any> = new EventEmitter<any>(false);\n\n /** Index of currently displayed slide(started for 0) */\n @Input()\n set activeSlide(index: number) {\n if (this._slides.length && index !== this._currentActiveSlide) {\n this._select(index);\n }\n }\n\n get activeSlide(): number {\n return this._currentActiveSlide;\n }\n\n /**\n * Delay of item cycling in milliseconds. If false, carousel won't cycle\n * automatically.\n */\n @Input()\n get interval(): number {\n return this._interval;\n }\n\n set interval(value: number) {\n this._interval = value;\n this.restartTimer();\n }\n\n get slides(): SlideComponent[] {\n return this._slides.toArray();\n }\n\n protected _currentActiveSlide: number;\n protected _interval: number;\n protected _slides: LinkedList<SlideComponent> = new LinkedList<SlideComponent>();\n protected currentInterval: any;\n protected isPlaying: boolean;\n protected destroyed = false;\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n constructor(config: CarouselConfig, private ngZone: NgZone) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.destroyed = true;\n }\n\n /**\n * Adds new slide. If this slide is first in collection - set it as active\n * and starts auto changing\n * @param slide\n */\n addSlide(slide: SlideComponent): void {\n this._slides.add(slide);\n if (this._slides.length === 1) {\n this._currentActiveSlide = void 0;\n this.activeSlide = 0;\n this.play();\n }\n }\n\n /**\n * Removes specified slide. If this slide is active - will roll to another\n * slide\n * @param slide\n */\n removeSlide(slide: SlideComponent): void {\n const remIndex = this._slides.indexOf(slide);\n\n if (this._currentActiveSlide === remIndex) {\n // removing of active slide\n let nextSlideIndex: number = void 0;\n if (this._slides.length > 1) {\n // if this slide last - will roll to first slide, if noWrap flag is\n // FALSE or to previous, if noWrap is TRUE in case, if this slide in\n // middle of collection, index of next slide is same to removed\n nextSlideIndex = !this.isLast(remIndex)\n ? remIndex\n : this.noWrap ? remIndex - 1 : 0;\n }\n this._slides.remove(remIndex);\n\n // prevents exception with changing some value after checking\n setTimeout(() => {\n this._select(nextSlideIndex);\n }, 0);\n } else {\n this._slides.remove(remIndex);\n const currentSlideIndex = this.getCurrentSlideIndex();\n setTimeout(() => {\n // after removing, need to actualize index of current active slide\n this._currentActiveSlide = currentSlideIndex;\n this.activeSlideChange.emit(this._currentActiveSlide);\n }, 0);\n }\n }\n\n /**\n * Rolling to next slide\n * @param force: {boolean} if true - will ignore noWrap flag\n */\n nextSlide(force = false): void {\n this.activeSlide = this.findNextSlideIndex(Direction.NEXT, force);\n }\n\n /**\n * Rolling to previous slide\n * @param force: {boolean} if true - will ignore noWrap flag\n */\n previousSlide(force = false): void {\n this.activeSlide = this.findNextSlideIndex(Direction.PREV, force);\n }\n\n /**\n * Rolling to specified slide\n * @param index: {number} index of slide, which must be shown\n */\n selectSlide(index: number): void {\n this.activeSlide = index;\n }\n\n /**\n * Starts a auto changing of slides\n */\n play(): void {\n if (!this.isPlaying) {\n this.isPlaying = true;\n this.restartTimer();\n }\n }\n\n /**\n * Stops a auto changing of slides\n */\n pause(): void {\n if (!this.noPause) {\n this.isPlaying = false;\n this.resetTimer();\n }\n }\n\n /**\n * Finds and returns index of currently displayed slide\n * @returns {number}\n */\n getCurrentSlideIndex(): number {\n return this._slides.findIndex((slide: SlideComponent) => slide.active);\n }\n\n /**\n * Defines, whether the specified index is last in collection\n * @param index\n * @returns {boolean}\n */\n isLast(index: number): boolean {\n return index + 1 >= this._slides.length;\n }\n\n /**\n * Defines next slide index, depending of direction\n * @param direction: Direction(UNKNOWN|PREV|NEXT)\n * @param force: {boolean} if TRUE - will ignore noWrap flag, else will\n * return undefined if next slide require wrapping\n * @returns {any}\n */\n private findNextSlideIndex(direction: Direction, force: boolean): number {\n let nextSlideIndex = 0;\n\n if (\n !force &&\n (this.isLast(this.activeSlide) &&\n direction !== Direction.PREV &&\n this.noWrap)\n ) {\n return void 0;\n }\n\n switch (direction) {\n case Direction.NEXT:\n // if this is last slide, not force, looping is disabled\n // and need to going forward - select current slide, as a next\n nextSlideIndex = !this.isLast(this._currentActiveSlide)\n ? this._currentActiveSlide + 1\n : !force && this.noWrap ? this._currentActiveSlide : 0;\n break;\n case Direction.PREV:\n // if this is first slide, not force, looping is disabled\n // and need to going backward - select current slide, as a next\n nextSlideIndex =\n this._currentActiveSlide > 0\n ? this._currentActiveSlide - 1\n : !force && this.noWrap\n ? this._currentActiveSlide\n : this._slides.length - 1;\n break;\n default:\n throw new Error('Unknown direction');\n }\n\n return nextSlideIndex;\n }\n\n /**\n * Sets a slide, which specified through index, as active\n * @param index\n * @private\n */\n private _select(index: number): void {\n if (isNaN(index)) {\n this.pause();\n\n return;\n }\n const currentSlide = this._slides.get(this._currentActiveSlide);\n if (currentSlide) {\n currentSlide.active = false;\n }\n const nextSlide = this._slides.get(index);\n if (nextSlide) {\n this._currentActiveSlide = index;\n nextSlide.active = true;\n this.activeSlide = index;\n this.activeSlideChange.emit(index);\n }\n }\n\n /**\n * Starts loop of auto changing of slides\n */\n private restartTimer(): any {\n this.resetTimer();\n const interval = +this.interval;\n if (!isNaN(interval) && interval > 0) {\n this.currentInterval = this.ngZone.runOutsideAngular(() => {\n return setInterval(() => {\n const nInterval = +this.interval;\n this.ngZone.run(() => {\n if (\n this.isPlaying &&\n !isNaN(this.interval) &&\n nInterval > 0 &&\n this.slides.length\n ) {\n this.nextSlide();\n } else {\n this.pause();\n }\n });\n }, interval);\n });\n }\n }\n\n /**\n * Stops loop of auto changing of slides\n */\n private resetTimer(): void {\n if (this.currentInterval) {\n clearInterval(this.currentInterval);\n this.currentInterval = void 0;\n }\n }\n}\n","import {\n Component,\n HostBinding,\n OnDestroy,\n Input,\n OnInit\n} from '@angular/core';\n\nimport { CarouselComponent } from './carousel.component';\n\n@Component({\n selector: 'slide',\n template: `\n <div [class.active]=\"active\" class=\"item\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n '[attr.aria-hidden]': '!active'\n }\n})\nexport class SlideComponent implements OnInit, OnDestroy {\n /** Is current slide active */\n @HostBinding('class.active')\n @Input()\n active: boolean;\n\n /** Wraps element by appropriate CSS classes */\n @HostBinding('class.item')\n @HostBinding('class.carousel-item')\n addClass = true;\n\n /** Link to Parent(container-collection) component */\n protected carousel: CarouselComponent;\n\n constructor(carousel: CarouselComponent) {\n this.carousel = carousel;\n }\n\n /** Fires changes in container collection after adding a new slide instance */\n ngOnInit(): void {\n this.carousel.addSlide(this);\n }\n\n /** Fires changes in container collection after removing of this slide instance */\n ngOnDestroy(): void {\n this.carousel.removeSlide(this);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class CarouselConfig {\n /** Default interval of auto changing of slides */\n interval = 5000;\n\n /** Is loop of auto changing of slides can be paused */\n noPause = false;\n\n /** Is slides can wrap from the last to the first slide */\n noWrap = false;\n\n /** Show carousel-indicators */\n showIndicators = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { CarouselComponent } from './carousel.component';\nimport { SlideComponent } from './slide.component';\nimport { CarouselConfig } from './carousel.config';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [SlideComponent, CarouselComponent],\n exports: [SlideComponent, CarouselComponent],\n providers: [CarouselConfig]\n})\nexport class CarouselModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: CarouselModule, providers: [] };\n }\n}\n","export { CarouselComponent } from './carousel.component';\nexport { CarouselModule } from './carousel.module';\nexport { SlideComponent } from './slide.component';\nexport { CarouselConfig } from './carousel.config';\n","export { CollapseDirective } from './collapse.directive';\nexport { CollapseModule } from './collapse.module';\n","import { formatDate } from '../chronos/format';\n\nexport class DateFormatter {\n format(date: Date, format: string, locale: string): string {\n return formatDate(date, format, locale);\n }\n}\n","/* tslint:disable:max-file-line-count */\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnInit,\n Output,\n SimpleChanges\n} from '@angular/core';\n\nimport { DateFormatter } from './date-formatter';\n\n// const MIN_DATE:Date = void 0;\n// const MAX_DATE:Date = void 0;\n// const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n/*\n const KEYS = {\n 13: 'enter',\n 32: 'space',\n 33: 'pageup',\n 34: 'pagedown',\n 35: 'end',\n 36: 'home',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down'\n };\n */\n\n@Component({\n selector: 'datepicker-inner',\n template: `\n <!--<!–ng-keydown=\"keydown($event)\"–>-->\n <div *ngIf=\"datepickerMode\" class=\"well well-sm bg-faded p-a card\" role=\"application\" >\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DatePickerInnerComponent implements OnInit, OnChanges {\n @Input() locale: string;\n @Input() datepickerMode: string;\n @Input() startingDay: number;\n @Input() yearRange: number;\n\n @Input() minDate: Date;\n @Input() maxDate: Date;\n @Input() minMode: string;\n @Input() maxMode: string;\n @Input() showWeeks: boolean;\n @Input() formatDay: string;\n @Input() formatMonth: string;\n @Input() formatYear: string;\n @Input() formatDayHeader: string;\n @Input() formatDayTitle: string;\n @Input() formatMonthTitle: string;\n @Input() onlyCurrentMonth: boolean;\n @Input() shortcutPropagation: boolean;\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n @Input() monthColLimit: number;\n @Input() yearColLimit: number;\n @Input() dateDisabled: { date: Date; mode: string }[];\n @Input() dayDisabled: number[];\n @Input() initDate: Date;\n\n @Output() selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n @Output() update: EventEmitter<Date> = new EventEmitter<Date>(false);\n @Output() activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n stepDay: any = {};\n stepMonth: any = {};\n stepYear: any = {};\n\n uniqueId: string;\n\n protected modes: string[] = ['day', 'month', 'year'];\n protected dateFormatter: DateFormatter = new DateFormatter();\n protected _activeDate: Date;\n protected selectedDate: Date;\n protected activeDateId: string;\n\n protected refreshViewHandlerDay: Function;\n protected compareHandlerDay: Function;\n protected refreshViewHandlerMonth: Function;\n protected compareHandlerMonth: Function;\n protected refreshViewHandlerYear: Function;\n protected compareHandlerYear: Function;\n\n @Input()\n get activeDate(): Date {\n return this._activeDate;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n // todo: add formatter value to Date object\n ngOnInit(): void {\n // todo: use date for unique value\n this.uniqueId = `datepicker--${Math.floor(Math.random() * 10000)}`;\n\n if (this.initDate) {\n this.activeDate = this.initDate;\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n } else if (this.activeDate === undefined) {\n this.activeDate = new Date();\n }\n }\n\n // this.refreshView should be called here to reflect the changes on the fly\n // tslint:disable-next-line:no-unused-variable\n ngOnChanges(changes: SimpleChanges): void {\n this.refreshView();\n this.checkIfActiveDateGotUpdated(changes.activeDate);\n }\n\n // Check if activeDate has been update and then emit the activeDateChange with the new date\n checkIfActiveDateGotUpdated(activeDate: any): void {\n if (activeDate && !activeDate.firstChange) {\n const previousValue = activeDate.previousValue;\n if (\n previousValue &&\n previousValue instanceof Date &&\n previousValue.getTime() !== activeDate.currentValue.getTime()\n ) {\n this.activeDateChange.emit(this.activeDate);\n }\n }\n }\n\n setCompareHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.compareHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.compareHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.compareHandlerYear = handler;\n }\n }\n\n compare(date1: Date, date2: Date): number | undefined {\n if (date1 === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (this.datepickerMode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1, date2);\n }\n\n if (this.datepickerMode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1, date2);\n }\n\n if (this.datepickerMode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1, date2);\n }\n\n return void 0;\n }\n\n setRefreshViewHandler(handler: Function, type: string): void {\n if (type === 'day') {\n this.refreshViewHandlerDay = handler;\n }\n\n if (type === 'month') {\n this.refreshViewHandlerMonth = handler;\n }\n\n if (type === 'year') {\n this.refreshViewHandlerYear = handler;\n }\n }\n\n refreshView(): void {\n if (this.datepickerMode === 'day' && this.refreshViewHandlerDay) {\n this.refreshViewHandlerDay();\n }\n\n if (this.datepickerMode === 'month' && this.refreshViewHandlerMonth) {\n this.refreshViewHandlerMonth();\n }\n\n if (this.datepickerMode === 'year' && this.refreshViewHandlerYear) {\n this.refreshViewHandlerYear();\n }\n }\n\n dateFilter(date: Date, format: string): string {\n return this.dateFormatter.format(date, format, this.locale);\n }\n\n isActive(dateObject: any): boolean {\n if (this.compare(dateObject.date, this.activeDate) === 0) {\n this.activeDateId = dateObject.uid;\n\n return true;\n }\n\n return false;\n }\n\n createDateObject(date: Date, format: string): any {\n const dateObject: any = {};\n dateObject.date = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n dateObject.date = this.fixTimeZone(dateObject.date);\n dateObject.label = this.dateFilter(date, format);\n dateObject.selected = this.compare(date, this.selectedDate) === 0;\n dateObject.disabled = this.isDisabled(date);\n dateObject.current = this.compare(date, new Date()) === 0;\n dateObject.customClass = this.getCustomClassForDate(dateObject.date);\n\n return dateObject;\n }\n\n split(arr: any[], size: number): any[] {\n const arrays: any[] = [];\n while (arr.length > 0) {\n arrays.push(arr.splice(0, size));\n }\n\n return arrays;\n }\n\n // Fix a hard-reproducible bug with timezones\n // The bug depends on OS, browser, current timezone and current date\n // i.e.\n // var date = new Date(2014, 0, 1);\n // console.log(date.getFullYear(), date.getMonth(), date.getDate(),\n // date.getHours()); can result in \"2013 11 31 23\" because of the bug.\n fixTimeZone(date: Date): Date {\n const hours = date.getHours();\n\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n hours === 23 ? hours + 2 : 0\n );\n }\n\n select(date: Date, isManual = true): void {\n if (this.datepickerMode === this.minMode) {\n if (!this.activeDate) {\n this.activeDate = new Date(0, 0, 0, 0, 0, 0, 0);\n }\n\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.selectionDone.emit(this.activeDate);\n }\n } else {\n this.activeDate = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate()\n );\n this.activeDate = this.fixTimeZone(this.activeDate);\n if (isManual) {\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) - 1\n ];\n }\n }\n\n this.selectedDate = new Date(this.activeDate.valueOf());\n this.update.emit(this.activeDate);\n this.refreshView();\n }\n\n move(direction: number): void {\n let expectedStep: any;\n if (this.datepickerMode === 'day') {\n expectedStep = this.stepDay;\n }\n\n if (this.datepickerMode === 'month') {\n expectedStep = this.stepMonth;\n }\n\n if (this.datepickerMode === 'year') {\n expectedStep = this.stepYear;\n }\n\n if (expectedStep) {\n const year =\n this.activeDate.getFullYear() + direction * (expectedStep.years || 0);\n const month =\n this.activeDate.getMonth() + direction * (expectedStep.months || 0);\n this.activeDate = new Date(year, month, 1);\n\n this.refreshView();\n this.activeDateChange.emit(this.activeDate);\n }\n }\n\n toggleMode(_direction: number): void {\n const direction = _direction || 1;\n\n if (\n (this.datepickerMode === this.maxMode && direction === 1) ||\n (this.datepickerMode === this.minMode && direction === -1)\n ) {\n return;\n }\n\n this.datepickerMode = this.modes[\n this.modes.indexOf(this.datepickerMode) + direction\n ];\n this.refreshView();\n }\n\n protected getCustomClassForDate(date: Date): string {\n if (!this.customClass) {\n return '';\n }\n // todo: build a hash of custom classes, it will work faster\n const customClassObject: {\n date: Date;\n mode: string;\n clazz: string;\n } = this.customClass.find((customClass: any) => {\n return (\n customClass.date.valueOf() === date.valueOf() &&\n customClass.mode === this.datepickerMode\n );\n }, this);\n\n return customClassObject === undefined ? '' : customClassObject.clazz;\n }\n\n protected compareDateDisabled(\n date1Disabled: { date: Date; mode: string },\n date2: Date\n ): number {\n if (date1Disabled === undefined || date2 === undefined) {\n return undefined;\n }\n\n if (date1Disabled.mode === 'day' && this.compareHandlerDay) {\n return this.compareHandlerDay(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'month' && this.compareHandlerMonth) {\n return this.compareHandlerMonth(date1Disabled.date, date2);\n }\n\n if (date1Disabled.mode === 'year' && this.compareHandlerYear) {\n return this.compareHandlerYear(date1Disabled.date, date2);\n }\n\n return undefined;\n }\n\n protected isDisabled(date: Date): boolean {\n let isDateDisabled = false;\n if (this.dateDisabled) {\n this.dateDisabled.forEach(\n (disabledDate: { date: Date; mode: string }) => {\n if (this.compareDateDisabled(disabledDate, date) === 0) {\n isDateDisabled = true;\n }\n }\n );\n }\n\n if (this.dayDisabled) {\n isDateDisabled =\n isDateDisabled ||\n this.dayDisabled.indexOf(date.getDay()) > -1;\n }\n\n return (\n isDateDisabled ||\n (this.minDate && this.compare(date, this.minDate) < 0) ||\n (this.maxDate && this.compare(date, this.maxDate) > 0)\n );\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n forwardRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatepickerConfig } from './datepicker.config';\n\nexport const DATEPICKER_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => DatePickerComponent),\n multi: true\n};\n\n/* tslint:disable:component-selector-name component-selector-type */\n@Component({\n selector: 'datepicker',\n template: `\n <datepicker-inner [activeDate]=\"activeDate\"\n (update)=\"onUpdate($event)\"\n [locale]=\"config.locale\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n [dayDisabled]=\"dayDisabled\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [monthColLimit]=\"monthColLimit\"\n [yearColLimit]=\"yearColLimit\"\n (selectionDone)=\"onSelectionDone($event)\"\n (activeDateChange)=\"onActiveDateChange($event)\">\n <daypicker tabindex=\"0\"></daypicker>\n <monthpicker tabindex=\"0\"></monthpicker>\n <yearpicker tabindex=\"0\"></yearpicker>\n </datepicker-inner>\n `,\n providers: [DATEPICKER_CONTROL_VALUE_ACCESSOR]\n})\n/* tslint:enable:component-selector-name component-selector-type */\nexport class DatePickerComponent implements ControlValueAccessor {\n /** sets datepicker mode, supports: `day`, `month`, `year` */\n @Input() datepickerMode = 'day';\n /** default date to show if `ng-model` value is not specified */\n @Input() initDate: Date;\n /** oldest selectable date */\n @Input() minDate: Date;\n /** latest selectable date */\n @Input() maxDate: Date;\n /** set lower datepicker mode, supports: `day`, `month`, `year` */\n @Input() minMode: string;\n /** sets upper datepicker mode, supports: `day`, `month`, `year` */\n @Input() maxMode: string;\n /** if false week numbers will be hidden */\n @Input() showWeeks = true;\n /** format of day in month */\n @Input() formatDay: string;\n /** format of month in year */\n @Input() formatMonth: string;\n /** format of year in year range */\n @Input() formatYear: string;\n /** format of day in week header */\n @Input() formatDayHeader: string;\n /** format of title when selecting day */\n @Input() formatDayTitle: string;\n /** format of title when selecting month */\n @Input() formatMonthTitle: string;\n /** starting day of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() startingDay: number;\n /** number of years displayed in year selection */\n @Input() yearRange: number;\n /** if true only dates from the currently displayed month will be shown */\n @Input() onlyCurrentMonth: boolean;\n /** if true shortcut`s event propagation will be disabled */\n @Input() shortcutPropagation: boolean;\n /** number of months displayed in a single row of month picker */\n @Input() monthColLimit: number;\n /** number of years displayed in a single row of year picker */\n @Input() yearColLimit: number;\n /** array of custom css classes to be applied to targeted dates */\n @Input() customClass: { date: Date; mode: string; clazz: string }[];\n /** array of disabled dates */\n @Input() dateDisabled: { date: Date; mode: string }[];\n /** disabled days of the week from 0-6 (0=Sunday, ..., 6=Saturday) */\n @Input() dayDisabled: number[];\n\n /** currently active date */\n @Input()\n get activeDate(): Date {\n return this._activeDate || this._now;\n }\n\n set activeDate(value: Date) {\n this._activeDate = value;\n }\n\n @Output()\n selectionDone: EventEmitter<Date> = new EventEmitter<Date>(undefined);\n\n /** callback to invoke when the activeDate is changed. */\n @Output()\n activeDateChange: EventEmitter<Date> = new EventEmitter<Date>(\n undefined\n );\n\n @ViewChild(DatePickerInnerComponent)\n _datePicker: DatePickerInnerComponent;\n\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n config: DatepickerConfig;\n\n protected _now: Date = new Date();\n protected _activeDate: Date;\n\n constructor(config: DatepickerConfig) {\n this.config = config;\n this.configureOptions();\n }\n\n configureOptions(): void {\n Object.assign(this, this.config);\n }\n\n onUpdate(event: any): void {\n this.activeDate = event;\n this.onChange(event);\n }\n\n onSelectionDone(event: Date): void {\n this.selectionDone.emit(event);\n }\n\n onActiveDateChange(event: Date): void {\n this.activeDateChange.emit(event);\n }\n // todo: support null value\n writeValue(value: any): void {\n if (this._datePicker.compare(value, this._activeDate) === 0) {\n return;\n }\n if (value && value instanceof Date) {\n this.activeDate = value;\n this._datePicker.select(value, false);\n\n return;\n }\n\n this.activeDate = value ? new Date(value) : void 0;\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class DatepickerConfig {\n locale = 'en';\n datepickerMode = 'day';\n startingDay = 0;\n yearRange = 20;\n minMode = 'day';\n maxMode = 'year';\n showWeeks = true;\n formatDay = 'DD';\n formatMonth = 'MMMM';\n formatYear = 'YYYY';\n formatDayHeader = 'dd';\n formatDayTitle = 'MMMM YYYY';\n formatMonthTitle = 'YYYY';\n onlyCurrentMonth = false;\n monthColLimit = 3;\n yearColLimit = 5;\n shortcutPropagation = false;\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\nimport { isBs3 } from '../utils/theme-provider';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'daypicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode === 'day'\" role=\"grid\" [attr.aria-labelledby]=\"datePicker.uniqueId + '-title'\" aria-activedescendant=\"activeDateId\">\n <thead>\n <tr>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\">‹</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\"\n tabindex=\"-1\"><</button>\n </th>\n <th [attr.colspan]=\"5 + (datePicker.showWeeks ? 1 : 0)\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-secondary btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button *ngIf=\"!isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">›</button>\n <button *ngIf=\"isBs4\"\n type=\"button\"\n class=\"btn btn-default btn-secondary btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\"\n tabindex=\"-1\">>\n </button>\n </th>\n </tr>\n <tr>\n <th *ngIf=\"datePicker.showWeeks\"></th>\n <th *ngFor=\"let labelz of labels\" class=\"text-center\">\n <small aria-label=\"labelz.full\"><b>{{ labelz.abbr }}</b></small>\n </th>\n </tr>\n </thead>\n <tbody>\n <ng-template ngFor [ngForOf]=\"rows\" let-rowz=\"$implicit\" let-index=\"index\">\n <tr *ngIf=\"!(datePicker.onlyCurrentMonth && rowz[0].secondary && rowz[6].secondary)\">\n <td *ngIf=\"datePicker.showWeeks\" class=\"h6\" class=\"text-center\">\n <em>{{ weekNumbers[index] }}</em>\n </td>\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-sm {{dtz.customClass}}\"\n *ngIf=\"!(datePicker.onlyCurrentMonth && dtz.secondary)\"\n [ngClass]=\"{'btn-secondary': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected, disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz), 'btn-default': !isBs4}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-muted': dtz.secondary || dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </ng-template>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-secondary {\n color: #292b2c;\n background-color: #fff;\n border-color: #ccc;\n }\n :host .btn-info .text-muted {\n color: #292b2c !important;\n }\n `\n ]\n})\nexport class DayPickerComponent implements OnInit {\n labels: any[] = [];\n title: string;\n rows: any[] = [];\n weekNumbers: number[] = [];\n datePicker: DatePickerInnerComponent;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n /*protected getDaysInMonth(year:number, month:number) {\n return ((month === 1) && (year % 4 === 0) &&\n ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];\n }*/\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepDay = { months: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const year = this.activeDate.getFullYear();\n const month = this.activeDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const difference = this.startingDay - firstDayOfMonth.getDay();\n const numDisplayedFromPreviousMonth =\n difference > 0 ? 7 - difference : -difference;\n const firstDate = new Date(firstDayOfMonth.getTime());\n\n if (numDisplayedFromPreviousMonth > 0) {\n firstDate.setDate(-numDisplayedFromPreviousMonth + 1);\n }\n\n // 42 is the number of days on a six-week calendar\n const _days: Date[] = self.getDates(firstDate, 42);\n const days: any[] = [];\n for (let i = 0; i < 42; i++) {\n const _dateObject = this.createDateObject(_days[i], this.formatDay);\n _dateObject.secondary = _days[i].getMonth() !== month;\n _dateObject.uid = this.uniqueId + '-' + i;\n days[i] = _dateObject;\n }\n\n self.labels = [];\n for (let j = 0; j < 7; j++) {\n self.labels[j] = {};\n self.labels[j].abbr = this.dateFilter(\n days[j].date,\n this.formatDayHeader\n );\n self.labels[j].full = this.dateFilter(days[j].date, 'EEEE');\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatDayTitle);\n self.rows = this.split(days, 7);\n\n if (this.showWeeks) {\n self.weekNumbers = [];\n const thursdayIndex = (4 + 7 - this.startingDay) % 7;\n const numWeeks = self.rows.length;\n for (let curWeek = 0; curWeek < numWeeks; curWeek++) {\n self.weekNumbers.push(\n self.getISO8601WeekNumber(self.rows[curWeek][thursdayIndex].date)\n );\n }\n }\n }, 'day');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const d2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());\n return d1.getTime() - d2.getTime();\n }, 'day');\n\n this.datePicker.refreshView();\n }\n\n protected getDates(startDate: Date, n: number): Date[] {\n const dates: Date[] = new Array(n);\n let current = new Date(startDate.getTime());\n let i = 0;\n let date: Date;\n while (i < n) {\n date = new Date(current.getTime());\n date = this.datePicker.fixTimeZone(date);\n dates[i++] = date;\n current = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate() + 1\n );\n }\n return dates;\n }\n\n protected getISO8601WeekNumber(date: Date): number {\n const checkDate = new Date(date.getTime());\n // Thursday\n checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));\n const time = checkDate.getTime();\n // Compare with Jan 1\n checkDate.setMonth(0);\n checkDate.setDate(1);\n return (\n Math.floor(Math.round((time - checkDate.getTime()) / 86400000) / 7) + 1\n );\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from '../utils/theme-provider';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'monthpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='month'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">‹</button></th>\n <th [attr.colspan]=\"((datePicker.monthColLimit - 2) <= 0) ? 1 : datePicker.monthColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong> \n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\" [ngClass]=\"dtz.customClass\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class MonthPickerComponent implements OnInit {\n title: string;\n rows: any[] = [];\n datePicker: DatePickerInnerComponent;\n maxMode: string;\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepMonth = { years: 1 };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const months: any[] = new Array(12);\n const year: number = this.activeDate.getFullYear();\n let date: Date;\n\n for (let i = 0; i < 12; i++) {\n date = new Date(year, i, 1);\n date = this.fixTimeZone(date);\n months[i] = this.createDateObject(date, this.formatMonth);\n months[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = this.dateFilter(this.activeDate, this.formatMonthTitle);\n self.rows = this.split(months, self.datePicker.monthColLimit);\n }, 'month');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n const d1 = new Date(date1.getFullYear(), date1.getMonth());\n const d2 = new Date(date2.getFullYear(), date2.getMonth());\n return d1.getTime() - d2.getTime();\n }, 'month');\n\n this.datePicker.refreshView();\n }\n\n // todo: key events implementation\n}\n","// @deprecated\n// tslint:disable\nimport { Component, OnInit } from '@angular/core';\n\nimport { isBs3 } from '../utils/theme-provider';\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\n\n@Component({\n selector: 'yearpicker',\n template: `\n<table *ngIf=\"datePicker.datepickerMode==='year'\" role=\"grid\">\n <thead>\n <tr>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-left float-left\"\n (click)=\"datePicker.move(-1)\" tabindex=\"-1\">‹</button>\n </th>\n <th [attr.colspan]=\"((datePicker.yearColLimit - 2) <= 0) ? 1 : datePicker.yearColLimit - 2\">\n <button [id]=\"datePicker.uniqueId + '-title'\" role=\"heading\"\n type=\"button\" class=\"btn btn-default btn-sm\"\n (click)=\"datePicker.toggleMode(0)\"\n [disabled]=\"datePicker.datepickerMode === datePicker.maxMode\"\n [ngClass]=\"{disabled: datePicker.datepickerMode === datePicker.maxMode}\" tabindex=\"-1\" style=\"width:100%;\">\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th>\n <button type=\"button\" class=\"btn btn-default btn-sm pull-right float-right\"\n (click)=\"datePicker.move(1)\" tabindex=\"-1\">›</button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let rowz of rows\">\n <td *ngFor=\"let dtz of rowz\" class=\"text-center\" role=\"gridcell\" [attr.id]=\"dtz.uid\">\n <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\"\n [ngClass]=\"{'btn-link': isBs4 && !dtz.selected && !datePicker.isActive(dtz), 'btn-info': dtz.selected || (isBs4 && !dtz.selected && datePicker.isActive(dtz)), disabled: dtz.disabled, active: !isBs4 && datePicker.isActive(dtz)}\"\n [disabled]=\"dtz.disabled\"\n (click)=\"datePicker.select(dtz.date)\" tabindex=\"-1\">\n <span [ngClass]=\"{'text-success': isBs4 && dtz.current, 'text-info': !isBs4 && dtz.current}\">{{ dtz.label }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n `,\n styles: [\n `\n :host .btn-info .text-success {\n color: #fff !important;\n }\n `\n ]\n})\nexport class YearPickerComponent implements OnInit {\n datePicker: DatePickerInnerComponent;\n title: string;\n rows: any[] = [];\n\n constructor(datePicker: DatePickerInnerComponent) {\n this.datePicker = datePicker;\n }\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n ngOnInit(): void {\n const self = this;\n\n this.datePicker.stepYear = { years: this.datePicker.yearRange };\n\n this.datePicker.setRefreshViewHandler(function(): void {\n const years: any[] = new Array(this.yearRange);\n let date: Date;\n const start = self.getStartingYear(this.activeDate.getFullYear());\n\n for (let i = 0; i < this.yearRange; i++) {\n date = new Date(start + i, 0, 1);\n date = this.fixTimeZone(date);\n years[i] = this.createDateObject(date, this.formatYear);\n years[i].uid = this.uniqueId + '-' + i;\n }\n\n self.title = [years[0].label, years[this.yearRange - 1].label].join(\n ' - '\n );\n self.rows = this.split(years, self.datePicker.yearColLimit);\n }, 'year');\n\n this.datePicker.setCompareHandler(function(\n date1: Date,\n date2: Date\n ): number {\n return date1.getFullYear() - date2.getFullYear();\n }, 'year');\n\n this.datePicker.refreshView();\n }\n\n protected getStartingYear(year: number): number {\n // todo: parseInt\n return (\n (year - 1) / this.datePicker.yearRange * this.datePicker.yearRange + 1\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DatePickerInnerComponent } from './datepicker-inner.component';\nimport { DatePickerComponent } from './datepicker.component';\nimport { DatepickerConfig } from './datepicker.config';\nimport { DayPickerComponent } from './daypicker.component';\nimport { MonthPickerComponent } from './monthpicker.component';\nimport { YearPickerComponent } from './yearpicker.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n exports: [\n DatePickerComponent,\n DatePickerInnerComponent,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent\n ],\n entryComponents: [DatePickerComponent]\n})\nexport class DatepickerModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: DatepickerModule, providers: [DatepickerConfig] };\n }\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nimport { Renderer2 } from '@angular/core';\nimport { Trigger } from './trigger.class';\nimport {\n BsEventCallback, ListenOptions\n} from '../component-loader/listen-options.model';\n\nconst DEFAULT_ALIASES = {\n hover: ['mouseover', 'mouseout'],\n focus: ['focusin', 'focusout']\n};\n\nexport function parseTriggers(triggers: string, aliases: any = DEFAULT_ALIASES): Trigger[] {\n const trimmedTriggers = (triggers || '').trim();\n\n if (trimmedTriggers.length === 0) {\n return [];\n }\n\n const parsedTriggers = trimmedTriggers\n .split(/\\s+/)\n .map((trigger: string) => trigger.split(':'))\n .map((triggerPair: string[]) => {\n const alias = aliases[triggerPair[0]] || triggerPair;\n\n return new Trigger(alias[0], alias[1]);\n });\n\n const manualTriggers = parsedTriggers.filter((triggerPair: Trigger) =>\n triggerPair.isManual()\n );\n\n if (manualTriggers.length > 1) {\n throw new Error('Triggers parse error: only one manual trigger is allowed');\n }\n\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\n }\n\n return parsedTriggers;\n}\n\nexport function listenToTriggers(renderer: Renderer2,\n target: any,\n triggers: string,\n showFn: BsEventCallback,\n hideFn: BsEventCallback,\n toggleFn: BsEventCallback): Function {\n const parsedTriggers = parseTriggers(triggers);\n const listeners: any[] = [];\n\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n\n parsedTriggers.forEach((trigger: Trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\n\n return;\n }\n\n listeners.push(\n renderer.listen(target, trigger.open, showFn),\n renderer.listen(target, trigger.close, hideFn)\n );\n });\n\n return () => {\n listeners.forEach((unsubscribeFn: Function) => unsubscribeFn());\n };\n}\n\nexport function listenToTriggersV2(renderer: Renderer2,\n options: ListenOptions): Function {\n const parsedTriggers = parseTriggers(options.triggers);\n const target = options.target;\n // do nothing\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n\n // all listeners\n const listeners: any[] = [];\n\n // lazy listeners registration\n const _registerHide: Function[] = [];\n const registerHide = () => {\n // add hide listeners to unregister array\n _registerHide.forEach((fn: Function) => listeners.push(fn()));\n // register hide events only once\n _registerHide.length = 0;\n };\n\n // register open\\close\\toggle listeners\n parsedTriggers.forEach((trigger: Trigger) => {\n const useToggle = trigger.open === trigger.close;\n const showFn = useToggle ? options.toggle : options.show;\n\n if (!useToggle) {\n _registerHide.push(() =>\n renderer.listen(target, trigger.close, options.hide)\n );\n }\n\n listeners.push(\n renderer.listen(target, trigger.open, () => showFn(registerHide))\n );\n });\n\n return () => {\n listeners.forEach((unsubscribeFn: Function) => unsubscribeFn());\n };\n}\n\nexport function registerOutsideClick(renderer: Renderer2,\n options: ListenOptions) {\n if (!options.outsideClick) {\n return Function.prototype;\n }\n\n return renderer.listen('document', 'click', (event: any) => {\n if (options.target && options.target.contains(event.target)) {\n return;\n }\n if (\n options.targets &&\n options.targets.some(target => target.contains(event.target))\n ) {\n return;\n }\n\n options.hide();\n });\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\nimport { ComponentRef, ViewRef } from '@angular/core';\n\nexport class ContentRef {\n nodes: any[];\n viewRef?: ViewRef;\n componentRef?: ComponentRef<any>;\n\n constructor(\n nodes: any[],\n viewRef?: ViewRef,\n componentRef?: ComponentRef<any>\n ) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n","// tslint:disable:max-file-line-count\n// todo: add delay support\n// todo: merge events onShow, onShown, etc...\n// todo: add global positioning configuration?\nimport {\n ApplicationRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Injector,\n NgZone,\n Provider,\n ReflectiveInjector,\n Renderer2,\n TemplateRef,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { PositioningOptions, PositioningService } from '../positioning/index';\nimport { listenToTriggersV2, registerOutsideClick } from '../utils/triggers';\nimport { ContentRef } from './content-ref.class';\nimport { ListenOptions } from './listen-options.model';\n\nexport class ComponentLoader<T> {\n onBeforeShow: EventEmitter<any> = new EventEmitter();\n onShown: EventEmitter<any> = new EventEmitter();\n onBeforeHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<any> = new EventEmitter();\n\n instance: T;\n _componentRef: ComponentRef<T>;\n _inlineViewRef: EmbeddedViewRef<T>;\n\n private _providers: Provider[] = [];\n private _componentFactory: ComponentFactory<T>;\n private _zoneSubscription: any;\n private _contentRef: ContentRef;\n private _innerComponent: ComponentRef<T>;\n\n private _unregisterListenersFn: Function;\n\n get isShown(): boolean {\n if (this._isHiding) {\n return false;\n }\n\n return !!this._componentRef;\n }\n\n private _isHiding = false;\n\n /**\n * Placement of a component. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n private attachment: string;\n\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n private container: string | ElementRef | any;\n\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n private triggers: string;\n\n private _listenOpts: ListenOptions = {};\n private _globalListener = Function.prototype;\n\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n // tslint:disable-next-line\n public constructor(\n private _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _injector: Injector,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _applicationRef: ApplicationRef,\n private _posService: PositioningService\n ) {}\n\n attach(compType: Type<T>): ComponentLoader<T> {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory<T>(compType);\n\n return this;\n }\n\n // todo: add behaviour: to target element, `body`, custom element\n to(container?: string): ComponentLoader<T> {\n this.container = container || this.container;\n\n return this;\n }\n\n position(opts?: PositioningOptions): ComponentLoader<T> {\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = (opts.target as ElementRef) || this._elementRef;\n\n return this;\n }\n\n provide(provider: Provider): ComponentLoader<T> {\n this._providers.push(provider);\n\n return this;\n }\n\n // todo: appendChild to element or document.querySelector(this.container)\n\n show(opts: {\n content?: string | TemplateRef<any>;\n context?: any;\n initialState?: any; [key: string]: any;\n } = {}\n ): ComponentRef<T> {\n\n this._subscribePositioning();\n this._innerComponent = null;\n\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n const injector = ReflectiveInjector.resolveAndCreate(this._providers, this._injector);\n\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n\n Object.assign(this._componentRef.instance, opts);\n\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n if (this.container === 'body' && typeof document !== 'undefined') {\n document\n .querySelector(this.container as string)\n .appendChild(this._componentRef.location.nativeElement);\n }\n\n if (\n !this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.appendChild(\n this._componentRef.location.nativeElement\n );\n }\n\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(this._componentRef.instance);\n }\n\n this._registerOutsideClick();\n\n return this._componentRef;\n }\n\n hide(): ComponentLoader<T> {\n if (!this._componentRef) {\n return this;\n }\n\n this.onBeforeHide.emit(this._componentRef.instance);\n\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this._contentRef.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n this._componentRef.destroy();\n if (this._viewContainerRef && this._contentRef.viewRef) {\n this._viewContainerRef.remove(\n this._viewContainerRef.indexOf(this._contentRef.viewRef)\n );\n }\n if (this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n // this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._componentRef.hostView));\n //\n // if (this._contentRef.viewRef && this._viewContainerRef.indexOf(this._contentRef.viewRef) !== -1) {\n // this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\n // }\n\n this._contentRef = null;\n this._componentRef = null;\n this._removeGlobalListener();\n\n this.onHidden.emit();\n\n return this;\n }\n\n toggle(): void {\n if (this.isShown) {\n this.hide();\n\n return;\n }\n\n this.show();\n }\n\n dispose(): void {\n if (this.isShown) {\n this.hide();\n }\n\n this._unsubscribePositioning();\n\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n\n listen(listenOpts: ListenOptions): ComponentLoader<T> {\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n listenOpts.target = listenOpts.target || this._elementRef.nativeElement;\n\n const hide = (this._listenOpts.hide = () =>\n listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide: Function) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n\n const toggle = (registerHide: Function) => {\n this.isShown ? hide() : show(registerHide);\n };\n\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n\n return this;\n }\n\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = null;\n }\n }\n\n attachInline(\n vRef: ViewContainerRef,\n template: TemplateRef<any>\n ): ComponentLoader<T> {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n\n return this;\n }\n\n _registerOutsideClick(): void {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide()\n });\n });\n }\n }\n\n getInnerComponent(): ComponentRef<T> {\n return this._innerComponent;\n }\n\n private _subscribePositioning(): void {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.position({\n element: this._componentRef.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n }\n\n private _unsubscribePositioning(): void {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = null;\n }\n\n private _getContentRef(\n content: string | TemplateRef<any> | any,\n context?: any,\n initialState?: any\n ): ContentRef {\n if (!content) {\n return new ContentRef([]);\n }\n\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView<TemplateRef<T>>(content, context);\n _viewRef.markForCheck();\n\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(\n content\n );\n const modalContentInjector = ReflectiveInjector.resolveAndCreate(\n [...this._providers],\n this._injector\n );\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n\n return new ContentRef(\n [[componentRef.location.nativeElement]],\n componentRef.hostView,\n componentRef\n );\n }\n\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n}\n","import {\n ApplicationRef, ComponentFactoryResolver, ElementRef, Injectable, Injector,\n NgZone, Renderer2, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\nimport { PositioningService } from '../positioning/index';\n\n@Injectable()\nexport class ComponentLoaderFactory {\n constructor(private _componentFactoryResolver: ComponentFactoryResolver,\n private _ngZone: NgZone,\n private _injector: Injector,\n private _posService: PositioningService,\n private _applicationRef: ApplicationRef) {}\n\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n * @returns {ComponentLoader}\n */\n createLoader<T>(_elementRef: ElementRef,\n _viewContainerRef: ViewContainerRef,\n _renderer: Renderer2): ComponentLoader<T> {\n return new ComponentLoader<T>(\n _viewContainerRef,\n _renderer,\n _elementRef,\n this._injector,\n this._componentFactoryResolver,\n this._ngZone,\n this._applicationRef,\n this._posService\n );\n }\n}\n","/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\n\n// previous version:\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\n// tslint:disable\nexport class Positioning {\n public position(element: HTMLElement, round = true): ClientRect {\n let elPosition: ClientRect;\n let parentOffset: ClientRect = {\n width: 0,\n height: 0,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n\n if (this.getStyle(element, 'position') === 'fixed') {\n const bcRect = element.getBoundingClientRect();\n elPosition = {\n width: bcRect.width,\n height: bcRect.height,\n top: bcRect.top,\n bottom: bcRect.bottom,\n left: bcRect.left,\n right: bcRect.right\n };\n } else {\n const offsetParentEl = this.offsetParent(element);\n\n elPosition = this.offset(element, false);\n\n if (offsetParentEl !== document.documentElement) {\n parentOffset = this.offset(offsetParentEl, false);\n }\n\n parentOffset.top += offsetParentEl.clientTop;\n parentOffset.left += offsetParentEl.clientLeft;\n }\n\n elPosition.top -= parentOffset.top;\n elPosition.bottom -= parentOffset.top;\n elPosition.left -= parentOffset.left;\n elPosition.right -= parentOffset.left;\n\n if (round) {\n elPosition.top = Math.round(elPosition.top);\n elPosition.bottom = Math.round(elPosition.bottom);\n elPosition.left = Math.round(elPosition.left);\n elPosition.right = Math.round(elPosition.right);\n }\n\n return elPosition;\n }\n\n public offset(element: HTMLElement, round = true): ClientRect {\n const elBcr = element.getBoundingClientRect();\n const viewportOffset = {\n top: window.pageYOffset - document.documentElement.clientTop,\n left: window.pageXOffset - document.documentElement.clientLeft\n };\n\n let elOffset = {\n height: elBcr.height || element.offsetHeight,\n width: elBcr.width || element.offsetWidth,\n top: elBcr.top + viewportOffset.top,\n bottom: elBcr.bottom + viewportOffset.top,\n left: elBcr.left + viewportOffset.left,\n right: elBcr.right + viewportOffset.left\n };\n\n if (round) {\n elOffset.height = Math.round(elOffset.height);\n elOffset.width = Math.round(elOffset.width);\n elOffset.top = Math.round(elOffset.top);\n elOffset.bottom = Math.round(elOffset.bottom);\n elOffset.left = Math.round(elOffset.left);\n elOffset.right = Math.round(elOffset.right);\n }\n\n return elOffset;\n }\n\n public positionElements(\n hostElement: HTMLElement,\n targetElement: HTMLElement,\n placement: string,\n appendToBody?: boolean\n ): ClientRect {\n const hostElPosition = appendToBody\n ? this.offset(hostElement, false)\n : this.position(hostElement, false);\n const targetElStyles = this.getAllStyles(targetElement);\n const shiftWidth: any = {\n left: hostElPosition.left,\n center:\n hostElPosition.left +\n hostElPosition.width / 2 -\n targetElement.offsetWidth / 2,\n right: hostElPosition.left + hostElPosition.width\n };\n const shiftHeight: any = {\n top: hostElPosition.top,\n center:\n hostElPosition.top +\n hostElPosition.height / 2 -\n targetElement.offsetHeight / 2,\n bottom: hostElPosition.top + hostElPosition.height\n };\n const targetElBCR = targetElement.getBoundingClientRect();\n let placementPrimary = placement.split(' ')[0] || 'top';\n const placementSecondary = placement.split(' ')[1] || 'center';\n\n let targetElPosition: ClientRect = {\n height: targetElBCR.height || targetElement.offsetHeight,\n width: targetElBCR.width || targetElement.offsetWidth,\n top: 0,\n bottom: targetElBCR.height || targetElement.offsetHeight,\n left: 0,\n right: targetElBCR.width || targetElement.offsetWidth\n };\n\n if (placementPrimary === 'auto') {\n let newPlacementPrimary = this.autoPosition(\n targetElPosition,\n hostElPosition,\n targetElement,\n placementSecondary\n );\n if (!newPlacementPrimary)\n newPlacementPrimary = this.autoPosition(\n targetElPosition,\n hostElPosition,\n targetElement\n );\n if (newPlacementPrimary) placementPrimary = newPlacementPrimary;\n targetElement.classList.add(placementPrimary);\n }\n\n switch (placementPrimary) {\n case 'top':\n targetElPosition.top =\n hostElPosition.top -\n (targetElement.offsetHeight +\n parseFloat(targetElStyles.marginBottom));\n targetElPosition.bottom +=\n hostElPosition.top - targetElement.offsetHeight;\n targetElPosition.left = shiftWidth[placementSecondary];\n targetElPosition.right += shiftWidth[placementSecondary];\n break;\n case 'bottom':\n targetElPosition.top = shiftHeight[placementPrimary];\n targetElPosition.bottom += shiftHeight[placementPrimary];\n targetElPosition.left = shiftWidth[placementSecondary];\n targetElPosition.right += shiftWidth[placementSecondary];\n break;\n case 'left':\n targetElPosition.top = shiftHeight[placementSecondary];\n targetElPosition.bottom += shiftHeight[placementSecondary];\n targetElPosition.left =\n hostElPosition.left -\n (targetElement.offsetWidth + parseFloat(targetElStyles.marginRight));\n targetElPosition.right +=\n hostElPosition.left - targetElement.offsetWidth;\n break;\n case 'right':\n targetElPosition.top = shiftHeight[placementSecondary];\n targetElPosition.bottom += shiftHeight[placementSecondary];\n targetElPosition.left = shiftWidth[placementPrimary];\n targetElPosition.right += shiftWidth[placementPrimary];\n break;\n }\n\n targetElPosition.top = Math.round(targetElPosition.top);\n targetElPosition.bottom = Math.round(targetElPosition.bottom);\n targetElPosition.left = Math.round(targetElPosition.left);\n targetElPosition.right = Math.round(targetElPosition.right);\n\n return targetElPosition;\n }\n\n private autoPosition(\n targetElPosition: ClientRect,\n hostElPosition: ClientRect,\n targetElement: HTMLElement,\n preferredPosition?: string\n ) {\n if (\n (!preferredPosition || preferredPosition === 'right') &&\n targetElPosition.left + hostElPosition.left - targetElement.offsetWidth <\n 0\n ) {\n return 'right';\n } else if (\n (!preferredPosition || preferredPosition === 'top') &&\n targetElPosition.bottom +\n hostElPosition.bottom +\n targetElement.offsetHeight >\n window.innerHeight\n ) {\n return 'top';\n } else if (\n (!preferredPosition || preferredPosition === 'bottom') &&\n targetElPosition.top + hostElPosition.top - targetElement.offsetHeight < 0\n ) {\n return 'bottom';\n } else if (\n (!preferredPosition || preferredPosition === 'left') &&\n targetElPosition.right +\n hostElPosition.right +\n targetElement.offsetWidth >\n window.innerWidth\n ) {\n return 'left';\n }\n return null;\n }\n\n private getAllStyles(element: HTMLElement) {\n return window.getComputedStyle(element);\n }\n\n private getStyle(element: HTMLElement, prop: string): string {\n return (this.getAllStyles(element) as any)[prop];\n }\n\n private isStaticPositioned(element: HTMLElement): boolean {\n return (this.getStyle(element, 'position') || 'static') === 'static';\n }\n\n private offsetParent(element: HTMLElement): HTMLElement {\n let offsetParentEl =\n <HTMLElement>element.offsetParent || document.documentElement;\n\n while (\n offsetParentEl &&\n offsetParentEl !== document.documentElement &&\n this.isStaticPositioned(offsetParentEl)\n ) {\n offsetParentEl = <HTMLElement>offsetParentEl.offsetParent;\n }\n\n return offsetParentEl || document.documentElement;\n }\n}\n\nconst positionService = new Positioning();\n\nexport function positionElements(\n hostElement: HTMLElement,\n targetElement: HTMLElement,\n placement: string,\n appendToBody?: boolean\n): void {\n const pos = positionService.positionElements(\n hostElement,\n targetElement,\n placement,\n appendToBody\n );\n\n targetElement.style.top = `${pos.top}px`;\n targetElement.style.left = `${pos.left}px`;\n}\n","import { Injectable, ElementRef } from '@angular/core';\nimport { positionElements } from './ng-positioning';\n\nexport interface PositioningOptions {\n /** The DOM element, ElementRef, or a selector string of an element which will be moved */\n element?: HTMLElement | ElementRef | string;\n\n /** The DOM element, ElementRef, or a selector string of an element which the element will be attached to */\n target?: HTMLElement | ElementRef | string;\n\n /**\n * A string of the form 'vert-attachment horiz-attachment' or 'placement'\n * - placement can be \"top\", \"bottom\", \"left\", \"right\"\n * not yet supported:\n * - vert-attachment can be any of 'top', 'middle', 'bottom'\n * - horiz-attachment can be any of 'left', 'center', 'right'\n */\n attachment?: string;\n\n /** A string similar to `attachment`. The one difference is that, if it's not provided,\n * `targetAttachment` will assume the mirror image of `attachment`.\n */\n targetAttachment?: string;\n\n /** A string of the form 'vert-offset horiz-offset'\n * - vert-offset and horiz-offset can be of the form \"20px\" or \"55%\"\n */\n offset?: string;\n\n /** A string similar to `offset`, but referring to the offset of the target */\n targetOffset?: string;\n\n /** If true component will be attached to body */\n appendToBody?: boolean;\n}\n\n@Injectable()\nexport class PositioningService {\n position(options: PositioningOptions): void {\n const {element, target, attachment, appendToBody} = options;\n positionElements(\n _getHtmlElement(target),\n _getHtmlElement(element),\n attachment,\n appendToBody\n );\n }\n\n}\n\nfunction _getHtmlElement(element: HTMLElement | ElementRef | string): HTMLElement {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element) as HTMLElement;\n }\n\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n\n return element as HTMLElement;\n}\n","import { isDevMode } from '@angular/core';\nconst _messagesHash: { [key: string]: boolean } = {};\nconst _hideMsg = typeof console === 'undefined' || !('warn' in console);\n\nexport function warnOnce(msg: string): void {\n if (!isDevMode() || _hideMsg || msg in _messagesHash) {\n return;\n }\n\n _messagesHash[msg] = true;\n /*tslint:disable-next-line*/\n console.warn(msg);\n}\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, Renderer2 } from '@angular/core';\nimport {\n AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { parseDate } from '../chronos/create/local';\nimport { formatDate } from '../chronos/format';\nimport { getLocale } from '../chronos/locale/locales';\nimport { isAfter, isBefore } from '../chronos/utils/date-compare';\nimport { isDate, isDateValid } from '../chronos/utils/type-checks';\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\nconst BS_DATEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDatepickerInputDirective),\n multi: true\n};\n\n@Directive({\n selector: `input[bsDatepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATEPICKER_VALUE_ACCESSOR, BS_DATEPICKER_VALIDATOR]\n})\nexport class BsDatepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n private _validatorChange = Function.prototype;\n private _value: Date;\n\n constructor(@Host() private _picker: BsDatepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n _setInputValue(value: Date): void {\n const initialDate = !value ? ''\n : formatDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n\n this._renderer.setProperty(this._elRef.nativeElement, 'value', initialDate);\n }\n\n onChange(event: any) {\n this.writeValue(event.target.value);\n this._onChange(this._value);\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: Date | string = c.value;\n\n if (_value === null || _value === undefined || _value === '') {\n return null;\n }\n\n if (isDate(_value)) {\n const _isDateValid = isDateValid(_value);\n if (!_isDateValid) {\n return { bsDate: { invalid: _value } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value, this._picker.minDate, 'date')) {\n return { bsDate: { minDate: this._picker.minDate } };\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value, this._picker.maxDate, 'date')) {\n return { bsDate: { maxDate: this._picker.maxDate } };\n }\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n this._value = parseDate(value, this._picker._config.dateInputFormat, this._localeService.currentLocale);\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => any): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n }\n}\n","// datepicker container component\n/* tslint:disable:no-empty */\nimport { BsCustomDates } from '../themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerEffects } from '../reducer/bs-datepicker.effects';\nimport { Observable } from 'rxjs';\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n YearsCalendarViewModel\n} from '../models/index';\n\nexport abstract class BsDatepickerAbstractComponent {\n containerClass: string;\n\n _effects: BsDatepickerEffects;\n _customRangesFish: BsCustomDates[] = [];\n\n set minDate(value: Date) {\n this._effects.setMinDate(value);\n }\n\n set maxDate(value: Date) {\n this._effects.setMaxDate(value);\n }\n\n set isDisabled(value: boolean) {\n this._effects.setDisabled(value);\n }\n\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n setViewMode(event: BsDatepickerViewMode): void {}\n\n navigateTo(event: BsNavigationEvent): void {}\n\n dayHoverHandler(event: CellHoverEvent): void {}\n\n monthHoverHandler(event: CellHoverEvent): void {}\n\n yearHoverHandler(event: CellHoverEvent): void {}\n\n daySelectHandler(day: DayViewModel): void {}\n\n monthSelectHandler(event: CalendarCellViewModel): void {}\n\n yearSelectHandler(event: CalendarCellViewModel): void {}\n\n _stopPropagation(event: any): void {\n event.stopPropagation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { getFullYear, getMonth } from '../../chronos/utils/date-getters';\nimport { BsDatepickerAbstractComponent } from '../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\nimport {\n BsDatepickerViewMode,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n DatepickerRenderOptions,\n DaysCalendarViewModel,\n DayViewModel,\n MonthsCalendarViewModel,\n YearsCalendarViewModel\n} from '../models/index';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { BsDatepickerStore } from './bs-datepicker.store';\nimport { BsLocaleService } from '../bs-locale.service';\nimport { filter, map } from 'rxjs/operators';\n\n@Injectable()\nexport class BsDatepickerEffects {\n viewMode: Observable<BsDatepickerViewMode>;\n daysCalendar: Observable<DaysCalendarViewModel[]>;\n monthsCalendar: Observable<MonthsCalendarViewModel[]>;\n yearsCalendar: Observable<YearsCalendarViewModel[]>;\n options: Observable<DatepickerRenderOptions>;\n\n private _store: BsDatepickerStore;\n private _subs: Subscription[] = [];\n\n constructor(private _actions: BsDatepickerActions,\n private _localeService: BsLocaleService) {}\n\n init(_bsDatepickerStore: BsDatepickerStore): BsDatepickerEffects {\n this._store = _bsDatepickerStore;\n\n return this;\n }\n\n /** setters */\n\n setValue(value: Date): void {\n this._store.dispatch(this._actions.select(value));\n }\n\n setRangeValue(value: Date[]): void {\n this._store.dispatch(this._actions.selectRange(value));\n }\n\n setMinDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.minDate(value));\n\n return this;\n }\n\n setMaxDate(value: Date): BsDatepickerEffects {\n this._store.dispatch(this._actions.maxDate(value));\n\n return this;\n }\n\n setDisabled(value: boolean): BsDatepickerEffects {\n this._store.dispatch(this._actions.isDisabled(value));\n\n return this;\n }\n\n /* Set rendering options */\n setOptions(_config: BsDatepickerConfig): BsDatepickerEffects {\n const _options = Object.assign({locale: this._localeService.currentLocale}, _config);\n this._store.dispatch(this._actions.setOptions(_options));\n\n return this;\n }\n\n /** view to mode bindings */\n setBindings(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.daysCalendar = this._store\n .select(state => state.flaggedMonths)\n .pipe(\n filter(months => !!months)\n );\n\n // month calendar\n container.monthsCalendar = this._store\n .select(state => state.flaggedMonthsCalendar)\n .pipe(\n filter(months => !!months)\n );\n\n // year calendar\n container.yearsCalendar = this._store\n .select(state => state.yearsCalendarFlagged)\n .pipe(\n filter(years => !!years)\n );\n\n container.viewMode = this._store.select(state => state.view.mode);\n\n container.options = this._store\n .select(state => state.showWeekNumbers)\n .pipe(\n map(showWeekNumbers => ({showWeekNumbers}))\n );\n\n return this;\n }\n\n /** event handlers */\n setEventHandlers(container: BsDatepickerAbstractComponent): BsDatepickerEffects {\n container.setViewMode = (event: BsDatepickerViewMode): void => {\n this._store.dispatch(this._actions.changeViewMode(event));\n };\n\n container.navigateTo = (event: BsNavigationEvent): void => {\n this._store.dispatch(this._actions.navigateStep(event.step));\n };\n\n container.dayHoverHandler = (event: CellHoverEvent): void => {\n const _cell = event.cell as DayViewModel;\n if (_cell.isOtherMonth || _cell.isDisabled) {\n return;\n }\n\n this._store.dispatch(this._actions.hoverDay(event));\n _cell.isHovered = event.isHovered;\n };\n\n container.monthHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n container.yearHoverHandler = (event: CellHoverEvent): void => {\n event.cell.isHovered = event.isHovered;\n };\n\n /** select handlers */\n // container.daySelectHandler = (day: DayViewModel): void => {\n // if (day.isOtherMonth || day.isDisabled) {\n // return;\n // }\n // this._store.dispatch(this._actions.select(day.date));\n // };\n\n container.monthSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {month: getMonth(event.date)},\n viewMode: 'day'\n })\n );\n };\n\n container.yearSelectHandler = (event: CalendarCellViewModel): void => {\n if (event.isDisabled) {\n return;\n }\n this._store.dispatch(\n this._actions.navigateTo({\n unit: {year: getFullYear(event.date)},\n viewMode: 'month'\n })\n );\n };\n\n return this;\n }\n\n registerDatepickerSideEffects(): BsDatepickerEffects {\n this._subs.push(\n this._store.select(state => state.view).subscribe(view => {\n this._store.dispatch(this._actions.calculate());\n })\n );\n\n // format calendar values on month model change\n this._subs.push(\n this._store\n .select(state => state.monthsModel)\n .pipe(\n filter(monthModel => !!monthModel)\n )\n .subscribe(month => this._store.dispatch(this._actions.format()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.formattedMonths)\n .pipe(\n filter(month => !!month)\n )\n .subscribe(month => this._store.dispatch(this._actions.flag()))\n );\n\n // flag day values\n this._subs.push(\n this._store\n .select(state => state.selectedDate)\n .pipe(\n filter(selectedDate => !!selectedDate)\n )\n .subscribe(selectedDate => this._store.dispatch(this._actions.flag()))\n );\n\n // flag for date range picker\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .pipe(\n filter(selectedRange => !!selectedRange)\n )\n .subscribe(selectedRange => this._store.dispatch(this._actions.flag()))\n );\n\n // monthsCalendar\n this._subs.push(\n this._store\n .select(state => state.monthsCalendar)\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // years calendar\n this._subs.push(\n this._store\n .select(state => state.yearsCalendarModel)\n .pipe(\n filter(state => !!state)\n )\n .subscribe(() => this._store.dispatch(this._actions.flag()))\n );\n\n // on hover\n this._subs.push(\n this._store\n .select(state => state.hoveredDate)\n .pipe(\n filter(hoveredDate => !!hoveredDate)\n )\n .subscribe(hoveredDate => this._store.dispatch(this._actions.flag()))\n );\n\n // on locale change\n this._subs.push(\n this._localeService.localeChange\n .subscribe(locale => this._store.dispatch(this._actions.setLocale(locale)))\n );\n\n return this;\n }\n\n destroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport var config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined,\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\n/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; });\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x != null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","// typeof any so that it we don't have to cast when comparing a result to the error object\n/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map\n","/** PURE_IMPORTS_START _errorObject PURE_IMPORTS_END */\nimport { errorObject } from './errorObject';\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject.e = e;\n return errorObject;\n }\n}\nexport function tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n//# sourceMappingURL=tryCatch.js.map\n","/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(UnsubscriptionError, _super);\n function UnsubscriptionError(errors) {\n var _this = _super.call(this, errors ?\n errors.length + \" errors occurred during unsubscription:\\n \" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '') || this;\n _this.errors = errors;\n _this.name = 'UnsubscriptionError';\n Object.setPrototypeOf(_this, UnsubscriptionError.prototype);\n return _this;\n }\n return UnsubscriptionError;\n}(Error));\nexport { UnsubscriptionError };\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_tryCatch,_util_errorObject,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = /*@__PURE__*/ (function () {\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n function Subscription(unsubscribe) {\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n this.closed = false;\n /** @internal */\n this._parent = null;\n /** @internal */\n this._parents = null;\n /** @internal */\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n // if this._parent is null, then so is this._parents, and we\n // don't have to remove ourselves from any parent subscriptions.\n while (_parent) {\n _parent.remove(this);\n // if this._parents is null or index >= len,\n // then _parent is set to null, and the loop exits\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction(_unsubscribe)) {\n var trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]);\n }\n }\n if (isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n var trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n };\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function' /* quack quack */) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n /** @internal */\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n // If we don't have a parent, or the new parent is the same as the\n // current parent, then set this._parent to the new parent.\n this._parent = parent;\n }\n else if (!_parents) {\n // If there's already one parent, but not multiple, allocate an Array to\n // store the rest of the parent Subscriptions.\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n // Only add the new parent to the _parents list if it's not already there.\n _parents.push(parent);\n }\n };\n /** @nocollapse */\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? /*@__PURE__*/ Symbol.for('rxSubscriber')\n : '@@rxSubscriber';\n/**\n * @deprecated use rxSubscriber instead\n */\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n /** @internal */ _this.syncErrorValue = null;\n /** @internal */ _this.syncErrorThrown = false;\n /** @internal */ _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n // HACK(benlesh): For situations where Node has multiple copies of rxjs in\n // node_modules, we cannot rely on `instanceof` checks\n if (isTrustedSubscriber(destinationOrNext)) {\n var trustedSubscriber = destinationOrNext[rxSubscriberSymbol]();\n _this.syncErrorThrowable = trustedSubscriber.syncErrorThrowable;\n _this.destination = trustedSubscriber;\n trustedSubscriber.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached {@link Error}. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nfunction isTrustedSubscriber(obj) {\n return obj instanceof Subscriber || ('syncErrorThrowable' in obj && obj[rxSubscriberSymbol]);\n}\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** Symbol.observable or a string \"@@observable\". Used for interop */\n/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n//# sourceMappingURL=observable.js.map\n","/* tslint:disable:no-empty */\n/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */\nimport { noop } from './noop';\n/* tslint:enable:max-line-length */\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\n/* @internal */\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_toSubscriber,_internal_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from '../internal/symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nvar Observable = /*@__PURE__*/ (function () {\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n function Observable(subscribe) {\n /** Internal implementation detail, do not use directly. */\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * <span class=\"informal\">Use it when you have all these Observables, but still nothing is happening.</span>\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to a {@link create} static factory, but most of the time it is\n * a library implementation, which defines what and when will be emitted by an Observable. This means that calling\n * `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, that if `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where first function is equivalent\n * of a `next` method, second of an `error` method and third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whatever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a {@link Scheduler}.\n *\n * @example <caption>Subscribe with an Observer</caption>\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() { // We actually could just remove this method,\n * }, // since we do not really care about errors right now.\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * Rx.Observable.of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Subscribe with functions</caption>\n * let sum = 0;\n *\n * Rx.Observable.of(1, 2, 3)\n * .subscribe(\n * function(value) {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * function() {\n * console.log('Sum equals: ' + sum);\n * }\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n *\n *\n * @example <caption>Cancel a subscription</caption>\n * const subscription = Rx.Observable.interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => console.log('completed!') // Will not be called, even\n * ); // when cancelling subscription\n *\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n *\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source || !sink.syncErrorThrowable ? this._subscribe(sink) : this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n sink.error(err);\n }\n };\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n // Must be declared in a separate statement to avoid a RefernceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n /* tslint:enable:max-line-length */\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * @example\n *\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * Rx.Observable.interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n */\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n /* tslint:enable:max-line-length */\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n * @nocollapse\n */\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/**\n * @copyright ngrx\n */\nimport { Observable, Observer, Operator } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { Action, ActionReducer } from './index';\n\nexport class MiniStore<T> extends Observable<T> implements Observer<Action> {\n constructor(\n private _dispatcher: Observer<Action>,\n private _reducer: ActionReducer<any>,\n state$: Observable<any>\n ) {\n super();\n\n this.source = state$;\n }\n\n select<R>(pathOrMapFn: (state: T) => R): Observable<R> {\n const mapped$: Observable<R> = this.source.pipe(map(pathOrMapFn));\n\n return mapped$.pipe(distinctUntilChanged());\n }\n\n lift<R>(operator: Operator<T, R>): MiniStore<R> {\n const store = new MiniStore<R>(this._dispatcher, this._reducer, this);\n store.operator = operator;\n\n return store;\n }\n\n dispatch(action: Action) {\n this._dispatcher.next(action);\n }\n\n next(action: Action) {\n this._dispatcher.next(action);\n }\n\n error(err: any) {\n this._dispatcher.error(err);\n }\n\n complete() {\n /*noop*/\n }\n}\n","import {\n MonthViewOptions\n} from '../models/index';\n\nexport const defaultMonthOptions: MonthViewOptions = {\n width: 7,\n height: 6\n};\n","import { Injectable } from '@angular/core';\nimport {\n DatepickerRenderOptions\n} from './models/index';\n\n\n/**\n * For date range picker there are `BsDaterangepickerConfig` which inherits all properties,\n * except `displayMonths`, for range picker it default to `2`\n */\n@Injectable()\nexport class BsDatepickerConfig\n implements DatepickerRenderOptions {\n value?: Date | Date[];\n isDisabled?: boolean;\n /**\n * Default min date for all date/range pickers\n */\n minDate?: Date;\n /**\n * Default max date for all date/range pickers\n */\n maxDate?: Date;\n\n /** CSS class which will be applied to datepicker container,\n * usually used to set color theme\n */\n containerClass = 'theme-green';\n\n // DatepickerRenderOptions\n displayMonths = 1;\n /**\n * Allows to hide week numbers in datepicker\n */\n showWeekNumbers = true;\n\n dateInputFormat = 'L';\n // range picker\n rangeSeparator = ' - ';\n /**\n * Date format for date range input field\n */\n rangeInputFormat = 'L';\n\n // DatepickerFormatOptions\n monthTitle = 'MMMM';\n yearTitle = 'YYYY';\n dayLabel = 'D';\n monthLabel = 'MMMM';\n yearLabel = 'YYYY';\n weekNumbers = 'w';\n}\n","import {\n BsDatepickerViewMode,\n DatepickerFormatOptions,\n DatepickerRenderOptions,\n DaysCalendarModel,\n DaysCalendarViewModel,\n MonthsCalendarViewModel,\n MonthViewOptions,\n YearsCalendarViewModel\n} from '../models/index';\nimport { defaultMonthOptions } from './_defaults';\nimport { BsDatepickerConfig } from '../bs-datepicker.config';\n\nexport interface BsDatepickerViewState {\n date: Date;\n mode: BsDatepickerViewMode;\n}\n\nexport class BsDatepickerState\n implements DatepickerRenderOptions, DatepickerFormatOptions {\n // date picker\n selectedDate?: Date;\n // daterange picker\n selectedRange?: Date[];\n\n // initial date of calendar, today by default\n view: BsDatepickerViewState;\n\n isDisabled?: boolean;\n // bounds\n minDate?: Date;\n maxDate?: Date;\n\n hoveredDate?: Date;\n hoveredMonth?: Date;\n hoveredYear?: Date;\n\n // days calendar\n monthsModel?: DaysCalendarModel[];\n formattedMonths?: DaysCalendarViewModel[];\n flaggedMonths?: DaysCalendarViewModel[];\n\n // months calendar\n monthsCalendar?: MonthsCalendarViewModel[];\n flaggedMonthsCalendar?: MonthsCalendarViewModel[];\n\n // years calendar\n yearsCalendarModel?: YearsCalendarViewModel[];\n yearsCalendarFlagged?: YearsCalendarViewModel[];\n\n // options\n monthViewOptions: MonthViewOptions;\n\n // DatepickerRenderOptions\n showWeekNumbers?: boolean;\n displayMonths?: number;\n\n // DatepickerFormatOptions\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nconst _initialView: BsDatepickerViewState = { date: new Date(), mode: 'day' };\n\nexport const initialDatepickerState: BsDatepickerState = Object.assign(\n new BsDatepickerConfig(),\n {\n locale: 'en',\n view: _initialView,\n selectedRange: [],\n monthViewOptions: defaultMonthOptions\n }\n);\n","/** PURE_IMPORTS_START tslib PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObjectUnsubscribedError, _super);\n function ObjectUnsubscribedError() {\n var _this = _super.call(this, 'object unsubscribed') || this;\n _this.name = 'ObjectUnsubscribedError';\n Object.setPrototypeOf(_this, ObjectUnsubscribedError.prototype);\n return _this;\n }\n return ObjectUnsubscribedError;\n}(Error));\nexport { ObjectUnsubscribedError };\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n/**\n * @class SubjectSubscriber<T>\n */\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\n/**\n * @class Subject<T>\n */\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n /**@nocollapse */\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\n/**\n * @class AnonymousSubject<T>\n */\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n/**\n * @class BehaviorSubject<T>\n */\nvar BehaviorSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n /** @deprecated This is an internal implementation detail, do not use. */\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\n/**\n * A unit of work to be executed in a {@link Scheduler}. An action is typically\n * created from within a Scheduler and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n /**\n * Schedules this action on its parent Scheduler for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n // Always replace the current state with the new state.\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n return clearInterval(id) && undefined || undefined;\n };\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n /** @deprecated This is an internal implementation detail, do not use. */\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n // Otherwise flush the scheduler starting with this action.\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an {@link Action}.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}\n */\nvar Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n /** @nocollapse */\n Scheduler.now = Date.now ? Date.now : function () { return +new Date(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @deprecated internal use only\n */\n _this.active = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @deprecated internal use only\n */\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift()); // exhaust the scheduler queue\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n/**\n *\n * Queue Scheduler\n *\n * <span class=\"informal\">Put every next task on a queue, instead of executing it immediately</span>\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link async} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * @examples <caption>Schedule recursively first, then do something</caption>\n *\n * Rx.Scheduler.queue.schedule(() => {\n * Rx.Scheduler.queue.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n *\n *\n * @example <caption>Reschedule itself recursively</caption>\n *\n * Rx.Scheduler.queue.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n *\n *\n * @static true\n * @name queue\n * @owner Scheduler\n */\nexport var queue = /*@__PURE__*/ new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map\n","/**\n * @copyright ngrx\n */\nimport { Action, ActionReducer } from './index';\nimport { BehaviorSubject, Observable, queueScheduler } from 'rxjs';\nimport { observeOn, scan } from 'rxjs/operators';\n\n\nexport class MiniState<T> extends BehaviorSubject<T> {\n constructor(\n _initialState: T,\n actionsDispatcher$: Observable<Action>,\n reducer: ActionReducer<T>\n ) {\n super(_initialState);\n\n const actionInQueue$ = actionsDispatcher$.pipe(\n observeOn(queueScheduler)\n );\n const state$ = actionInQueue$.pipe(\n scan((state: T, action: Action) => {\n if (!action) {\n return state;\n }\n\n return reducer(state, action);\n },\n _initialState\n ));\n\n state$.subscribe((value: T) => this.next(value));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TimeUnit } from '../../chronos/types';\nimport { Action } from '../../mini-ngrx/index';\nimport {\n BsDatepickerViewMode,\n BsViewNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions\n} from '../models/index';\n\n@Injectable()\nexport class BsDatepickerActions {\n static readonly CALCULATE = '[datepicker] calculate dates matrix';\n static readonly FORMAT = '[datepicker] format datepicker values';\n static readonly FLAG = '[datepicker] set flags';\n static readonly SELECT = '[datepicker] select date';\n static readonly NAVIGATE_OFFSET = '[datepicker] shift view date';\n static readonly NAVIGATE_TO = '[datepicker] change view date';\n static readonly SET_OPTIONS = '[datepicker] update render options';\n static readonly HOVER = '[datepicker] hover date';\n static readonly CHANGE_VIEWMODE = '[datepicker] switch view mode';\n\n static readonly SET_MIN_DATE = '[datepicker] set min date';\n static readonly SET_MAX_DATE = '[datepicker] set max date';\n static readonly SET_IS_DISABLED = '[datepicker] set is disabled';\n\n static readonly SET_LOCALE = '[datepicker] set datepicker locale';\n\n static readonly SELECT_RANGE = '[daterangepicker] select dates range';\n\n calculate(): Action {\n return { type: BsDatepickerActions.CALCULATE };\n }\n\n format(): Action {\n return { type: BsDatepickerActions.FORMAT };\n }\n\n flag(): Action {\n return { type: BsDatepickerActions.FLAG };\n }\n\n select(date: Date): Action {\n return {\n type: BsDatepickerActions.SELECT,\n payload: date\n };\n }\n\n changeViewMode(event: BsDatepickerViewMode): Action {\n return {\n type: BsDatepickerActions.CHANGE_VIEWMODE,\n payload: event\n };\n }\n\n navigateTo(event: BsViewNavigationEvent): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_TO,\n payload: event\n };\n }\n\n navigateStep(step: TimeUnit): Action {\n return {\n type: BsDatepickerActions.NAVIGATE_OFFSET,\n payload: step\n };\n }\n\n setOptions(options: DatepickerRenderOptions): Action {\n return {\n type: BsDatepickerActions.SET_OPTIONS,\n payload: options\n };\n }\n\n // date range picker\n selectRange(value: Date[]): Action {\n return {\n type: BsDatepickerActions.SELECT_RANGE,\n payload: value\n };\n }\n\n hoverDay(event: CellHoverEvent): Action {\n return {\n type: BsDatepickerActions.HOVER,\n payload: event.isHovered ? event.cell.date : null\n };\n }\n\n minDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MIN_DATE,\n payload: date\n };\n }\n\n maxDate(date: Date): Action {\n return {\n type: BsDatepickerActions.SET_MAX_DATE,\n payload: date\n };\n }\n\n isDisabled(value: boolean): Action {\n return {\n type: BsDatepickerActions.SET_IS_DISABLED,\n payload: value\n };\n }\n\n setLocale(locale: string): Action {\n return {\n type: BsDatepickerActions.SET_LOCALE,\n payload: locale\n };\n }\n}\n","import {\n getDay,\n isFirstDayOfWeek\n} from '../../chronos/utils/date-getters';\nimport { shiftDate } from '../../chronos/utils/date-setters';\nimport {\n isAfter,\n isBefore\n} from '../../chronos/utils/date-compare';\nimport { endOf, startOf } from '../../chronos/utils/start-end-of';\n\nexport function getStartingDayOfCalendar(date: Date,\n options: { firstDayOfWeek?: number }): Date {\n if (isFirstDayOfWeek(date, options.firstDayOfWeek)) {\n return date;\n }\n\n const weekDay = getDay(date);\n const offset = calculateDateOffset(weekDay, options.firstDayOfWeek);\n\n return shiftDate(date, {day: -offset});\n}\n\nexport function calculateDateOffset(weekday: number, startingDayOffset: number): number {\n if (startingDayOffset === 0) {\n return weekday;\n }\n\n const offset = weekday - startingDayOffset % 7;\n\n return offset < 0 ? offset + 7 : offset;\n}\n\nexport function isMonthDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'month'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'month'), max, 'day');\n\n return minBound || maxBound;\n}\n\nexport function isYearDisabled(date: Date, min: Date, max: Date): boolean {\n const minBound = min && isBefore(endOf(date, 'year'), min, 'day');\n const maxBound = max && isAfter(startOf(date, 'year'), max, 'day');\n\n return minBound || maxBound;\n}\n","import { TimeUnit } from '../../chronos/types';\nimport { shiftDate } from '../../chronos/utils/date-setters';\n\nexport type CreateMatrixCb<T> = (date: Date) => T;\n\nexport interface MatrixOptions {\n height: number;\n width: number;\n initialDate: Date;\n shift: TimeUnit;\n}\n\nexport function createMatrix<T>(\n options: MatrixOptions,\n fn: CreateMatrixCb<T>\n): T[][] {\n let prevValue = options.initialDate;\n const matrix: T[][] = new Array(options.height);\n for (let i = 0; i < options.height; i++) {\n matrix[i] = new Array(options.width);\n for (let j = 0; j < options.width; j++) {\n matrix[i][j] = fn(prevValue);\n prevValue = shiftDate(prevValue, options.shift);\n }\n }\n\n return matrix;\n}\n","// user and model input should handle parsing and validating input values\n// should accept some options\n// todo: split out formatting\nimport { DaysCalendarModel, MonthViewOptions } from '../models/index';\nimport { getFirstDayOfMonth } from '../../chronos/utils/date-getters';\nimport { getStartingDayOfCalendar } from '../utils/bs-calendar-utils';\nimport { createMatrix } from '../utils/matrix-utils';\n\nexport function calcDaysCalendar(\n startingDate: Date,\n options: MonthViewOptions\n): DaysCalendarModel {\n const firstDay = getFirstDayOfMonth(startingDate);\n const initialDate = getStartingDayOfCalendar(firstDay, options);\n\n const matrixOptions = {\n width: options.width,\n height: options.height,\n initialDate,\n shift: { day: 1 }\n };\n const daysMatrix = createMatrix<Date>(matrixOptions, date => date);\n\n return {\n daysMatrix,\n month: firstDay\n };\n}\n","import {\n DatepickerFormatOptions,\n DaysCalendarModel,\n DaysCalendarViewModel\n} from '../models/index';\nimport { formatDate } from '../../chronos/format';\nimport { getLocale } from '../../chronos/locale/locales';\n\nexport function formatDaysCalendar(daysCalendar: DaysCalendarModel,\n formatOptions: DatepickerFormatOptions,\n monthIndex: number): DaysCalendarViewModel {\n return {\n month: daysCalendar.month,\n monthTitle: formatDate(\n daysCalendar.month,\n formatOptions.monthTitle,\n formatOptions.locale\n ),\n yearTitle: formatDate(\n daysCalendar.month,\n formatOptions.yearTitle,\n formatOptions.locale\n ),\n weekNumbers: getWeekNumbers(\n daysCalendar.daysMatrix,\n formatOptions.weekNumbers,\n formatOptions.locale\n ),\n weekdays: getShiftedWeekdays(formatOptions.locale),\n weeks: daysCalendar.daysMatrix.map((week: Date[], weekIndex: number) => ({\n days: week.map((date: Date, dayIndex: number) => ({\n date,\n label: formatDate(date, formatOptions.dayLabel, formatOptions.locale),\n monthIndex,\n weekIndex,\n dayIndex\n }))\n }))\n };\n}\n\nexport function getWeekNumbers(daysMatrix: Date[][],\n format: string,\n locale: string): string[] {\n return daysMatrix.map(\n (days: Date[]) => (days[0] ? formatDate(days[0], format, locale) : '')\n );\n}\n\nexport function getShiftedWeekdays(locale: string): string[] {\n const _locale = getLocale(locale);\n const weekdays = _locale.weekdaysShort() as string[];\n const firstDayOfWeek = _locale.firstDayOfWeek();\n\n return [...weekdays.slice(firstDayOfWeek), ...weekdays.slice(0, firstDayOfWeek)];\n}\n","import {\n DaysCalendarViewModel,\n DayViewModel,\n WeekViewModel\n} from '../models/index';\nimport { isSameDay, isSameMonth } from '../../chronos/utils/date-getters';\nimport { isAfter, isBefore } from '../../chronos/utils/date-compare';\nimport { isMonthDisabled } from '../utils/bs-calendar-utils';\nimport { shiftDate } from '../../chronos/utils/date-setters';\nimport { endOf, startOf } from '../../chronos/utils/start-end-of';\n\nexport interface FlagDaysCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredDate: Date;\n selectedDate: Date;\n selectedRange: Date[];\n displayMonths: number;\n monthIndex: number;\n}\n\nexport function flagDaysCalendar(\n formattedMonth: DaysCalendarViewModel,\n options: FlagDaysCalendarOptions\n): DaysCalendarViewModel {\n formattedMonth.weeks.forEach((week: WeekViewModel, weekIndex: number) => {\n week.days.forEach((day: DayViewModel, dayIndex: number) => {\n // datepicker\n const isOtherMonth = !isSameMonth(day.date, formattedMonth.month);\n\n const isHovered =\n !isOtherMonth && isSameDay(day.date, options.hoveredDate);\n // date range picker\n const isSelectionStart =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[0]);\n const isSelectionEnd =\n !isOtherMonth &&\n options.selectedRange &&\n isSameDay(day.date, options.selectedRange[1]);\n\n const isSelected =\n (!isOtherMonth && isSameDay(day.date, options.selectedDate)) ||\n isSelectionStart ||\n isSelectionEnd;\n\n const isInRange =\n !isOtherMonth &&\n options.selectedRange &&\n isDateInRange(day.date, options.selectedRange, options.hoveredDate);\n\n const isDisabled =\n options.isDisabled ||\n isBefore(day.date, options.minDate, 'day') ||\n isAfter(day.date, options.maxDate, 'day');\n\n // decide update or not\n const newDay = Object.assign({}, day, {\n isOtherMonth,\n isHovered,\n isSelected,\n isSelectionStart,\n isSelectionEnd,\n isInRange,\n isDisabled\n });\n\n if (\n day.isOtherMonth !== newDay.isOtherMonth ||\n day.isHovered !== newDay.isHovered ||\n day.isSelected !== newDay.isSelected ||\n day.isSelectionStart !== newDay.isSelectionStart ||\n day.isSelectionEnd !== newDay.isSelectionEnd ||\n day.isDisabled !== newDay.isDisabled ||\n day.isInRange !== newDay.isInRange\n ) {\n week.days[dayIndex] = newDay;\n }\n });\n });\n\n // todo: add check for linked calendars\n formattedMonth.hideLeftArrow =\n options.isDisabled ||\n (options.monthIndex > 0 && options.monthIndex !== options.displayMonths);\n formattedMonth.hideRightArrow =\n options.isDisabled ||\n (options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths);\n\n formattedMonth.disableLeftArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: -1 }),\n options.minDate,\n options.maxDate\n );\n formattedMonth.disableRightArrow = isMonthDisabled(\n shiftDate(formattedMonth.month, { month: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return formattedMonth;\n}\n\nfunction isDateInRange(\n date: Date,\n selectedRange: Date[],\n hoveredDate: Date\n): boolean {\n if (!date || !selectedRange[0]) {\n return false;\n }\n\n if (selectedRange[1]) {\n return date > selectedRange[0] && date <= selectedRange[1];\n }\n\n if (hoveredDate) {\n return date > selectedRange[0] && date <= hoveredDate;\n }\n\n return false;\n}\n","import { BsDatepickerViewMode } from '../models/index';\n\nexport function canSwitchMode(mode: BsDatepickerViewMode): boolean {\n return true;\n}\n","import {\n DatepickerFormatOptions,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models/index';\nimport { startOf } from '../../chronos/utils/start-end-of';\nimport { formatDate } from '../../chronos/format';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 3;\nconst shift = { month: 1 };\n\nexport function formatMonthsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions\n): MonthsCalendarViewModel {\n const initialDate = startOf(viewDate, 'year');\n const matrixOptions = { width, height, initialDate, shift };\n const monthMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.monthLabel, formatOptions.locale)\n }));\n\n return {\n months: monthMatrix,\n monthTitle: '',\n yearTitle: formatDate(\n viewDate,\n formatOptions.yearTitle,\n formatOptions.locale\n )\n };\n}\n","import { isSameMonth } from '../../chronos/utils/date-getters';\nimport {\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../models/index';\nimport { isMonthDisabled, isYearDisabled } from '../utils/bs-calendar-utils';\nimport { shiftDate } from '../../chronos/utils/date-setters';\n\nexport interface FlagMonthCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredMonth: Date;\n displayMonths: number;\n monthIndex: number;\n}\n\nexport function flagMonthsCalendar(\n monthCalendar: MonthsCalendarViewModel,\n options: FlagMonthCalendarOptions\n): MonthsCalendarViewModel {\n monthCalendar.months.forEach(\n (months: CalendarCellViewModel[], rowIndex: number) => {\n months.forEach((month: CalendarCellViewModel, monthIndex: number) => {\n const isHovered = isSameMonth(month.date, options.hoveredMonth);\n const isDisabled =\n options.isDisabled ||\n isMonthDisabled(month.date, options.minDate, options.maxDate);\n const newMonth = Object.assign(/*{},*/ month, {\n isHovered,\n isDisabled\n });\n if (\n month.isHovered !== newMonth.isHovered ||\n month.isDisabled !== newMonth.isDisabled\n ) {\n monthCalendar.months[rowIndex][monthIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n monthCalendar.hideLeftArrow =\n options.monthIndex > 0 && options.monthIndex !== options.displayMonths;\n monthCalendar.hideRightArrow =\n options.monthIndex < options.displayMonths &&\n options.monthIndex + 1 !== options.displayMonths;\n\n monthCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n monthCalendar.disableRightArrow = isYearDisabled(\n shiftDate(monthCalendar.months[0][0].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return monthCalendar;\n}\n","import {\n DatepickerFormatOptions,\n YearsCalendarViewModel,\n CalendarCellViewModel\n} from '../models/index';\nimport { shiftDate } from '../../chronos/utils/date-setters';\nimport { formatDate } from '../../chronos/format';\nimport { createMatrix } from '../utils/matrix-utils';\n\nconst height = 4;\nconst width = 4;\nexport const yearsPerCalendar = height * width;\nconst initialShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;\nconst shift = { year: 1 };\n\nexport function formatYearsCalendar(\n viewDate: Date,\n formatOptions: DatepickerFormatOptions\n): YearsCalendarViewModel {\n const initialDate = shiftDate(viewDate, { year: initialShift });\n const matrixOptions = { width, height, initialDate, shift };\n const yearsMatrix = createMatrix<\n CalendarCellViewModel\n >(matrixOptions, date => ({\n date,\n label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)\n }));\n const yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);\n\n return {\n years: yearsMatrix,\n monthTitle: '',\n yearTitle\n };\n}\n\nfunction formatYearRangeTitle(\n yearsMatrix: CalendarCellViewModel[][],\n formatOptions: DatepickerFormatOptions\n): string {\n const from = formatDate(\n yearsMatrix[0][0].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n const to = formatDate(\n yearsMatrix[height - 1][width - 1].date,\n formatOptions.yearTitle,\n formatOptions.locale\n );\n\n return `${from} - ${to}`;\n}\n","import { isSameYear } from '../../chronos/utils/date-getters';\nimport { YearsCalendarViewModel, CalendarCellViewModel } from '../models/index';\nimport { isYearDisabled } from '../utils/bs-calendar-utils';\nimport { shiftDate } from '../../chronos/utils/date-setters';\n\nexport interface FlagYearsCalendarOptions {\n isDisabled: boolean;\n minDate: Date;\n maxDate: Date;\n hoveredYear: Date;\n displayMonths: number;\n yearIndex: number;\n}\n\nexport function flagYearsCalendar(\n yearsCalendar: YearsCalendarViewModel,\n options: FlagYearsCalendarOptions\n): YearsCalendarViewModel {\n yearsCalendar.years.forEach(\n (years: CalendarCellViewModel[], rowIndex: number) => {\n years.forEach((year: CalendarCellViewModel, yearIndex: number) => {\n const isHovered = isSameYear(year.date, options.hoveredYear);\n const isDisabled =\n options.isDisabled ||\n isYearDisabled(year.date, options.minDate, options.maxDate);\n\n const newMonth = Object.assign(/*{},*/ year, { isHovered, isDisabled });\n if (\n year.isHovered !== newMonth.isHovered ||\n year.isDisabled !== newMonth.isDisabled\n ) {\n yearsCalendar.years[rowIndex][yearIndex] = newMonth;\n }\n });\n }\n );\n\n // todo: add check for linked calendars\n yearsCalendar.hideLeftArrow =\n options.yearIndex > 0 && options.yearIndex !== options.displayMonths;\n yearsCalendar.hideRightArrow =\n options.yearIndex < options.displayMonths &&\n options.yearIndex + 1 !== options.displayMonths;\n\n yearsCalendar.disableLeftArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[0][0].date, { year: -1 }),\n options.minDate,\n options.maxDate\n );\n const i = yearsCalendar.years.length - 1;\n const j = yearsCalendar.years[i].length - 1;\n yearsCalendar.disableRightArrow = isYearDisabled(\n shiftDate(yearsCalendar.years[i][j].date, { year: 1 }),\n options.minDate,\n options.maxDate\n );\n\n return yearsCalendar;\n}\n","// tslint:disable:max-file-line-count\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { Action } from '../../mini-ngrx/index';\nimport { BsDatepickerActions } from './bs-datepicker.actions';\nimport { calcDaysCalendar } from '../engine/calc-days-calendar';\nimport { formatDaysCalendar } from '../engine/format-days-calendar';\nimport { flagDaysCalendar } from '../engine/flag-days-calendar';\nimport { setFullDate, shiftDate } from '../../chronos/utils/date-setters';\nimport { canSwitchMode } from '../engine/view-mode';\nimport { formatMonthsCalendar } from '../engine/format-months-calendar';\nimport { flagMonthsCalendar } from '../engine/flag-months-calendar';\nimport { formatYearsCalendar, yearsPerCalendar } from '../engine/format-years-calendar';\nimport { flagYearsCalendar } from '../engine/flag-years-calendar';\nimport { BsViewNavigationEvent, DatepickerFormatOptions } from '../models/index';\nimport { isArray, isDateValid } from '../../chronos/utils/type-checks';\nimport { startOf } from '../../chronos/utils/start-end-of';\nimport { getLocale } from '../../chronos/locale/locales';\nimport { isAfter, isBefore } from '../../chronos/utils/date-compare';\n\nexport function bsDatepickerReducer(state = initialDatepickerState,\n action: Action): BsDatepickerState {\n switch (action.type) {\n case BsDatepickerActions.CALCULATE: {\n return calculateReducer(state);\n }\n\n case BsDatepickerActions.FORMAT: {\n return formatReducer(state, action);\n }\n\n case BsDatepickerActions.FLAG: {\n return flagReducer(state, action);\n }\n\n case BsDatepickerActions.NAVIGATE_OFFSET: {\n const date = shiftDate(startOf(state.view.date, 'month'), action.payload);\n const newState = {\n view: {\n mode: state.view.mode,\n date\n }\n };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.NAVIGATE_TO: {\n const payload: BsViewNavigationEvent = action.payload;\n\n const date = setFullDate(state.view.date, payload.unit);\n const mode = payload.viewMode;\n const newState = { view: { date, mode } };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.CHANGE_VIEWMODE: {\n if (!canSwitchMode(action.payload)) {\n return state;\n }\n const date = state.view.date;\n const mode = action.payload;\n const newState = { view: { date, mode } };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.HOVER: {\n return Object.assign({}, state, { hoveredDate: action.payload });\n }\n\n case BsDatepickerActions.SELECT: {\n const newState = {\n selectedDate: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_OPTIONS: {\n const newState = action.payload;\n // preserve view mode\n const mode = state.view.mode;\n const _viewDate = isDateValid(newState.value) && newState.value\n || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0]\n || state.view.date;\n const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);\n newState.view = { mode, date };\n // update selected value\n if (newState.value) {\n // if new value is array we work with date range\n if (isArray(newState.value)) {\n newState.selectedRange = newState.value;\n }\n\n // if new value is a date -> datepicker\n if (newState.value instanceof Date) {\n newState.selectedDate = newState.value;\n }\n\n // provided value is not supported :)\n // need to report it somehow\n }\n\n return Object.assign({}, state, newState);\n }\n\n // date range picker\n case BsDatepickerActions.SELECT_RANGE: {\n const newState = {\n selectedRange: action.payload,\n view: state.view\n };\n\n const mode = state.view.mode;\n const _date = action.payload && action.payload[0] || state.view.date;\n const date = getViewDate(_date, state.minDate, state.maxDate);\n newState.view = { mode, date };\n\n return Object.assign({}, state, newState);\n }\n\n case BsDatepickerActions.SET_MIN_DATE: {\n return Object.assign({}, state, {\n minDate: action.payload\n });\n }\n case BsDatepickerActions.SET_MAX_DATE: {\n return Object.assign({}, state, {\n maxDate: action.payload\n });\n }\n case BsDatepickerActions.SET_IS_DISABLED: {\n return Object.assign({}, state, {\n isDisabled: action.payload\n });\n }\n\n default:\n return state;\n }\n}\n\nfunction calculateReducer(state: BsDatepickerState): BsDatepickerState {\n // how many calendars\n const displayMonths = state.displayMonths;\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'day') {\n state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();\n const monthsModel = new Array(displayMonths);\n for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {\n // todo: for unlinked calendars it will be harder\n monthsModel[monthIndex] = calcDaysCalendar(\n viewDate,\n state.monthViewOptions\n );\n viewDate = shiftDate(viewDate, { month: 1 });\n }\n\n return Object.assign({}, state, { monthsModel });\n }\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: yearsPerCalendar });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction formatReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n if (state.view.mode === 'day') {\n const formattedMonths = state.monthsModel.map((month, monthIndex) =>\n formatDaysCalendar(month, getFormatOptions(state), monthIndex)\n );\n\n return Object.assign({}, state, { formattedMonths });\n }\n\n // how many calendars\n const displayMonths = state.displayMonths;\n // check initial rendering\n // use selected date on initial rendering if set\n let viewDate = state.view.date;\n\n if (state.view.mode === 'month') {\n const monthsCalendar = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n monthsCalendar[calendarIndex] = formatMonthsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 1 });\n }\n\n return Object.assign({}, state, { monthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarModel = new Array(displayMonths);\n for (\n let calendarIndex = 0;\n calendarIndex < displayMonths;\n calendarIndex++\n ) {\n // todo: for unlinked calendars it will be harder\n yearsCalendarModel[calendarIndex] = formatYearsCalendar(\n viewDate,\n getFormatOptions(state)\n );\n viewDate = shiftDate(viewDate, { year: 16 });\n }\n\n return Object.assign({}, state, { yearsCalendarModel });\n }\n\n return state;\n}\n\nfunction flagReducer(state: BsDatepickerState,\n action: Action): BsDatepickerState {\n if (state.view.mode === 'day') {\n const flaggedMonths = state.formattedMonths.map(\n (formattedMonth, monthIndex) =>\n flagDaysCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredDate: state.hoveredDate,\n selectedDate: state.selectedDate,\n selectedRange: state.selectedRange,\n displayMonths: state.displayMonths,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonths });\n }\n\n if (state.view.mode === 'month') {\n const flaggedMonthsCalendar = state.monthsCalendar.map(\n (formattedMonth, monthIndex) =>\n flagMonthsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredMonth: state.hoveredMonth,\n displayMonths: state.displayMonths,\n monthIndex\n })\n );\n\n return Object.assign({}, state, { flaggedMonthsCalendar });\n }\n\n if (state.view.mode === 'year') {\n const yearsCalendarFlagged = state.yearsCalendarModel.map(\n (formattedMonth, yearIndex) =>\n flagYearsCalendar(formattedMonth, {\n isDisabled: state.isDisabled,\n minDate: state.minDate,\n maxDate: state.maxDate,\n hoveredYear: state.hoveredYear,\n displayMonths: state.displayMonths,\n yearIndex\n })\n );\n\n return Object.assign({}, state, { yearsCalendarFlagged });\n }\n\n return state;\n}\n\nfunction getFormatOptions(state: BsDatepickerState): DatepickerFormatOptions {\n return {\n locale: state.locale,\n\n monthTitle: state.monthTitle,\n yearTitle: state.yearTitle,\n\n dayLabel: state.dayLabel,\n monthLabel: state.monthLabel,\n yearLabel: state.yearLabel,\n\n weekNumbers: state.weekNumbers\n };\n}\n\n/**\n * if view date is provided (bsValue|ngModel) it should be shown\n * if view date is not provider:\n * if minDate>currentDate (default view value), show minDate\n * if maxDate<currentDate(default view value) show maxDate\n */\nfunction getViewDate(viewDate: Date | Date[], minDate: Date, maxDate: Date) {\n const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;\n\n if (minDate && isAfter(minDate, _date, 'day')) {\n return minDate;\n }\n\n if (maxDate && isBefore(maxDate, _date, 'day')) {\n return maxDate;\n }\n\n return _date;\n}\n","import { Injectable } from '@angular/core';\nimport { MiniStore } from '../../mini-ngrx/store.class';\nimport { BsDatepickerState, initialDatepickerState } from './bs-datepicker.state';\nimport { BehaviorSubject } from 'rxjs';\nimport { Action } from '../../mini-ngrx/index';\nimport { MiniState } from '../../mini-ngrx/state.class';\nimport { bsDatepickerReducer } from './bs-datepicker.reducer';\n\n@Injectable()\nexport class BsDatepickerStore extends MiniStore<BsDatepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[datepicker] dispatcher init'\n });\n const state = new MiniState<BsDatepickerState>(\n initialDatepickerState,\n _dispatcher,\n bsDatepickerReducer\n );\n super(_dispatcher, bsDatepickerReducer, state);\n }\n}\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\n\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models/index';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'bs-datepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n template: \"<!-- days calendar view mode --> <div class=\\\"bs-datepicker\\\" [ngClass]=\\\"containerClass\\\" *ngIf=\\\"viewMode | async\\\"> <div class=\\\"bs-datepicker-container\\\"> <!--calendars--> <div class=\\\"bs-calendar-container\\\" [ngSwitch]=\\\"viewMode | async\\\" role=\\\"application\\\"> <!--days calendar--> <div *ngSwitchCase=\\\"'day'\\\"> <bs-days-calendar-view *ngFor=\\\"let calendar of (daysCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" [options]=\\\"options | async\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"dayHoverHandler($event)\\\" (onSelect)=\\\"daySelectHandler($event)\\\" ></bs-days-calendar-view> </div> <!--months calendar--> <div *ngSwitchCase=\\\"'month'\\\"> <bs-month-calendar-view *ngFor=\\\"let calendar of (monthsCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"monthHoverHandler($event)\\\" (onSelect)=\\\"monthSelectHandler($event)\\\" ></bs-month-calendar-view> </div> <!--years calendar--> <div *ngSwitchCase=\\\"'year'\\\"> <bs-years-calendar-view *ngFor=\\\"let calendar of (yearsCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"yearHoverHandler($event)\\\" (onSelect)=\\\"yearSelectHandler($event)\\\" ></bs-years-calendar-view> </div> </div> <!--applycancel buttons--> <div class=\\\"bs-datepicker-buttons\\\" *ngIf=\\\"false\\\"> <button class=\\\"btn btn-success\\\">Apply</button> <button class=\\\"btn btn-default\\\">Cancel</button> </div> </div> <!--custom dates or date ranges picker--> <div class=\\\"bs-datepicker-custom-range\\\" *ngIf=\\\"false\\\"> <bs-custom-date-view [ranges]=\\\"_customRangesFish\\\"></bs-custom-date-view> </div> </div> \",\n host: {\n '(click)': '_stopPropagation($event)',\n style: 'position: absolute; display: block;',\n role: 'dialog',\n 'aria-label': 'calendar'\n }\n})\nexport class BsDatepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n set value(value: Date) {\n this._effects.setValue(value);\n }\n valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n\n _subs: Subscription[] = [];\n constructor(\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects\n ) {\n super();\n this._effects = _effects;\n }\n\n ngOnInit(): void {\n this.containerClass = this._config.containerClass;\n this._effects\n .init(this._store)\n // intial state options\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n .select(state => state.selectedDate)\n .subscribe(date => this.valueChange.emit(date))\n );\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (day.isOtherMonth || day.isDisabled) {\n return;\n }\n this._store.dispatch(this._actions.select(day.date));\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n}\n","import {\n ComponentRef, Directive, ElementRef, EventEmitter, Input, OnChanges,\n OnDestroy, OnInit, Output, Renderer2, SimpleChanges, ViewContainerRef\n} from '@angular/core';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { Subscription } from 'rxjs';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Directive({\n selector: '[bsDatepicker]',\n exportAs: 'bsDatepicker'\n})\nexport class BsDatepickerDirective implements OnInit, OnDestroy, OnChanges {\n /**\n * Placement of a datepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close datepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the datepicker should be appended to.\n * Currently only supports \"body\".\n */\n @Input() container = 'body';\n\n /**\n * Returns whether or not the datepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Emits an event when the datepicker is shown\n */\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the datepicker is hidden\n */\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date;\n /**\n * Initial value of datepicker\n */\n @Input()\n set bsValue(value: Date) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for datepicker\n */\n @Input() bsConfig: Partial<BsDatepickerConfig>;\n /**\n * Indicates whether datepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Emits when datepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDatepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDatepickerContainerComponent>;\n\n constructor(public _config: BsDatepickerConfig,\n _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n // todo: assign only subset of fields\n Object.assign(this, this._config);\n this._datepicker = cis.createLoader<BsDatepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n }\n\n ngOnInit(): any {\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n }\n\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDatepickerContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({placement: this.placement});\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange.subscribe((value: Date) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n /**\n * Set config for datepicker\n */\n setConfig(): void {\n this._config = Object.assign({}, this._config, this.bsConfig, {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate\n });\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import { ChangeDetectorRef, Directive, ElementRef, forwardRef, Host, Renderer2 } from '@angular/core';\nimport {\n AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors,\n Validator\n} from '@angular/forms';\nimport { parseDate } from '../chronos/create/local';\nimport { formatDate } from '../chronos/format';\nimport { getLocale } from '../chronos/locale/locales';\nimport { isAfter, isBefore } from '../chronos/utils/date-compare';\nimport { isArray, isDateValid } from '../chronos/utils/type-checks';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsLocaleService } from './bs-locale.service';\n\nconst BS_DATERANGEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\n\nconst BS_DATERANGEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => BsDaterangepickerInputDirective),\n multi: true\n};\n\n\n@Directive({\n selector: `input[bsDaterangepicker]`,\n host: {\n '(change)': 'onChange($event)',\n '(keyup.esc)': 'hide()',\n '(blur)': 'onBlur()'\n },\n providers: [BS_DATERANGEPICKER_VALUE_ACCESSOR, BS_DATERANGEPICKER_VALIDATOR]\n})\nexport class BsDaterangepickerInputDirective\n implements ControlValueAccessor, Validator {\n private _onChange = Function.prototype;\n private _onTouched = Function.prototype;\n private _validatorChange = Function.prototype;\n private _value: Date[];\n\n constructor(@Host() private _picker: BsDaterangepickerDirective,\n private _localeService: BsLocaleService,\n private _renderer: Renderer2,\n private _elRef: ElementRef,\n private changeDetection: ChangeDetectorRef) {\n // update input value on datepicker value update\n this._picker.bsValueChange.subscribe((value: Date[]) => {\n this._setInputValue(value);\n if (this._value !== value) {\n this._value = value;\n this._onChange(value);\n this._onTouched();\n }\n this.changeDetection.markForCheck();\n });\n\n // update input value on locale change\n this._localeService.localeChange.subscribe(() => {\n this._setInputValue(this._value);\n });\n }\n\n _setInputValue(date: Date[]): void {\n let range = '';\n if (date) {\n const start = !date[0] ? ''\n : formatDate(date[0],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n const end = !date[1] ? ''\n : formatDate(\n date[1],\n this._picker._config.rangeInputFormat,\n this._localeService.currentLocale\n );\n range = (start && end) ? start + this._picker._config.rangeSeparator + end : '';\n }\n this._renderer.setProperty(this._elRef.nativeElement, 'value', range);\n }\n\n onChange(event: any) {\n this.writeValue(event.target.value);\n this._onChange(this._value);\n this._onTouched();\n }\n\n validate(c: AbstractControl): ValidationErrors | null {\n const _value: [Date, Date] = c.value;\n\n if (_value === null || _value === undefined || !isArray(_value)) {\n return null;\n }\n\n\n const _isDateValid = isDateValid(_value[0]) && isDateValid(_value[0]);\n\n if (!_isDateValid) {\n return { bsDate: { invalid: _value } };\n }\n\n if (this._picker && this._picker.minDate && isBefore(_value[0], this._picker.minDate, 'date')) {\n return { bsDate: { minDate: this._picker.minDate } };\n }\n\n if (this._picker && this._picker.maxDate && isAfter(_value[1], this._picker.maxDate, 'date')) {\n return { bsDate: { maxDate: this._picker.maxDate } };\n }\n }\n\n registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n writeValue(value: Date[] | string) {\n if (!value) {\n this._value = null;\n } else {\n const _localeKey = this._localeService.currentLocale;\n const _locale = getLocale(_localeKey);\n if (!_locale) {\n throw new Error(\n `Locale \"${_localeKey}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n let _input: (string[] | Date[]) = [];\n if (typeof value === 'string') {\n _input = value.split(this._picker._config.rangeSeparator);\n }\n\n if (Array.isArray(value)) {\n _input = value;\n }\n\n\n this._value = (_input as string[])\n .map((_val: string): Date =>\n parseDate(_val, this._picker._config.dateInputFormat, this._localeService.currentLocale))\n .map((date: Date) => (isNaN(date.valueOf()) ? null : date));\n }\n\n this._picker.bsValue = this._value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this._picker.isDisabled = isDisabled;\n if (isDisabled) {\n this._renderer.setAttribute(this._elRef.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this._renderer.removeAttribute(this._elRef.nativeElement, 'disabled');\n }\n\n registerOnChange(fn: (value: any) => any): void {\n this._onChange = fn;\n }\n\n registerOnTouched(fn: () => any): void {\n this._onTouched = fn;\n }\n\n onBlur() {\n this._onTouched();\n }\n\n hide() {\n this._picker.hide();\n }\n}\n","import { Component, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { BsDatepickerAbstractComponent } from '../../base/bs-datepicker-container';\nimport { BsDatepickerConfig } from '../../bs-datepicker.config';\nimport { DayViewModel } from '../../models/index';\nimport { BsDatepickerActions } from '../../reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from '../../reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from '../../reducer/bs-datepicker.store';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'bs-daterangepicker-container',\n providers: [BsDatepickerStore, BsDatepickerEffects],\n template: \"<!-- days calendar view mode --> <div class=\\\"bs-datepicker\\\" [ngClass]=\\\"containerClass\\\" *ngIf=\\\"viewMode | async\\\"> <div class=\\\"bs-datepicker-container\\\"> <!--calendars--> <div class=\\\"bs-calendar-container\\\" [ngSwitch]=\\\"viewMode | async\\\" role=\\\"application\\\"> <!--days calendar--> <div *ngSwitchCase=\\\"'day'\\\"> <bs-days-calendar-view *ngFor=\\\"let calendar of (daysCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" [options]=\\\"options | async\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"dayHoverHandler($event)\\\" (onSelect)=\\\"daySelectHandler($event)\\\" ></bs-days-calendar-view> </div> <!--months calendar--> <div *ngSwitchCase=\\\"'month'\\\"> <bs-month-calendar-view *ngFor=\\\"let calendar of (monthsCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"monthHoverHandler($event)\\\" (onSelect)=\\\"monthSelectHandler($event)\\\" ></bs-month-calendar-view> </div> <!--years calendar--> <div *ngSwitchCase=\\\"'year'\\\"> <bs-years-calendar-view *ngFor=\\\"let calendar of (yearsCalendar | async)\\\" [class.bs-datepicker-multiple]=\\\"(daysCalendar | async)?.length > 1\\\" [calendar]=\\\"calendar\\\" (onNavigate)=\\\"navigateTo($event)\\\" (onViewMode)=\\\"setViewMode($event)\\\" (onHover)=\\\"yearHoverHandler($event)\\\" (onSelect)=\\\"yearSelectHandler($event)\\\" ></bs-years-calendar-view> </div> </div> <!--applycancel buttons--> <div class=\\\"bs-datepicker-buttons\\\" *ngIf=\\\"false\\\"> <button class=\\\"btn btn-success\\\">Apply</button> <button class=\\\"btn btn-default\\\">Cancel</button> </div> </div> <!--custom dates or date ranges picker--> <div class=\\\"bs-datepicker-custom-range\\\" *ngIf=\\\"false\\\"> <bs-custom-date-view [ranges]=\\\"_customRangesFish\\\"></bs-custom-date-view> </div> </div> \",\n host: {\n '(click)': '_stopPropagation($event)',\n style: 'position: absolute; display: block;',\n role: 'dialog',\n 'aria-label': 'calendar'\n }\n})\nexport class BsDaterangepickerContainerComponent extends BsDatepickerAbstractComponent\n implements OnInit, OnDestroy {\n set value(value: Date[]) {\n this._effects.setRangeValue(value);\n }\n\n valueChange = new EventEmitter<Date[]>();\n\n _rangeStack: Date[] = [];\n _subs: Subscription[] = [];\n constructor(\n private _config: BsDatepickerConfig,\n private _store: BsDatepickerStore,\n private _actions: BsDatepickerActions,\n _effects: BsDatepickerEffects\n ) {\n super();\n this._effects = _effects;\n }\n\n ngOnInit(): void {\n this.containerClass = this._config.containerClass;\n this._effects\n .init(this._store)\n // intial state options\n // todo: fix this, split configs\n .setOptions(this._config)\n // data binding view --> model\n .setBindings(this)\n // set event handlers\n .setEventHandlers(this)\n .registerDatepickerSideEffects();\n\n // todo: move it somewhere else\n // on selected date change\n this._subs.push(\n this._store\n .select(state => state.selectedRange)\n .subscribe(date => this.valueChange.emit(date))\n );\n }\n\n daySelectHandler(day: DayViewModel): void {\n if (day.isOtherMonth || day.isDisabled) {\n return;\n }\n\n // if only one date is already selected\n // and user clicks on previous date\n // start selection from new date\n // but if new date is after initial one\n // than finish selection\n if (this._rangeStack.length === 1) {\n this._rangeStack =\n day.date >= this._rangeStack[0]\n ? [this._rangeStack[0], day.date]\n : [day.date];\n }\n\n if (this._rangeStack.length === 0) {\n this._rangeStack = [day.date];\n }\n\n this._store.dispatch(this._actions.selectRange(this._rangeStack));\n\n if (this._rangeStack.length === 2) {\n this._rangeStack = [];\n }\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n this._effects.destroy();\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n ViewContainerRef\n} from '@angular/core';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\nimport { Subscription } from 'rxjs';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n selector: '[bsDaterangepicker]',\n exportAs: 'bsDaterangepicker'\n})\nexport class BsDaterangepickerDirective\n implements OnInit, OnDestroy, OnChanges {\n /**\n * Placement of a daterangepicker. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' = 'bottom';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers = 'click';\n /**\n * Close daterangepicker on outside click\n */\n @Input() outsideClick = true;\n /**\n * A selector specifying the element the daterangepicker should be appended\n * to. Currently only supports \"body\".\n */\n @Input() container = 'body';\n\n /**\n * Returns whether or not the daterangepicker is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._datepicker.isShown;\n }\n\n set isOpen(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Emits an event when the daterangepicker is shown\n */\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the daterangepicker is hidden\n */\n @Output() onHidden: EventEmitter<any>;\n\n _bsValue: Date[];\n /**\n * Initial value of daterangepicker\n */\n @Input()\n set bsValue(value: Date[]) {\n if (this._bsValue === value) {\n return;\n }\n this._bsValue = value;\n this.bsValueChange.emit(value);\n }\n\n /**\n * Config object for daterangepicker\n */\n @Input() bsConfig: Partial<BsDaterangepickerConfig>;\n /**\n * Indicates whether daterangepicker's content is enabled or not\n */\n @Input() isDisabled: boolean;\n /**\n * Minimum date which is available for selection\n */\n @Input() minDate: Date;\n /**\n * Maximum date which is available for selection\n */\n @Input() maxDate: Date;\n /**\n * Emits when daterangepicker value has been changed\n */\n @Output() bsValueChange: EventEmitter<Date[]> = new EventEmitter();\n\n protected _subs: Subscription[] = [];\n\n private _datepicker: ComponentLoader<BsDaterangepickerContainerComponent>;\n private _datepickerRef: ComponentRef<BsDaterangepickerContainerComponent>;\n\n constructor(public _config: BsDaterangepickerConfig,\n _elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n cis: ComponentLoaderFactory) {\n this._datepicker = cis.createLoader<BsDaterangepickerContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n );\n Object.assign(this, _config);\n this.onShown = this._datepicker.onShown;\n this.onHidden = this._datepicker.onHidden;\n }\n\n ngOnInit(): any {\n this._datepicker.listen({\n outsideClick: this.outsideClick,\n triggers: this.triggers,\n show: () => this.show()\n });\n this.setConfig();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this._datepickerRef || !this._datepickerRef.instance) {\n return;\n }\n\n if (changes.minDate) {\n this._datepickerRef.instance.minDate = this.minDate;\n }\n\n if (changes.maxDate) {\n this._datepickerRef.instance.maxDate = this.maxDate;\n }\n\n if (changes.isDisabled) {\n this._datepickerRef.instance.isDisabled = this.isDisabled;\n }\n }\n\n /**\n * Opens an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n show(): void {\n if (this._datepicker.isShown) {\n return;\n }\n\n this.setConfig();\n\n this._datepickerRef = this._datepicker\n .provide({provide: BsDatepickerConfig, useValue: this._config})\n .attach(BsDaterangepickerContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({placement: this.placement});\n\n // if date changes from external source (model -> view)\n this._subs.push(\n this.bsValueChange.subscribe((value: Date[]) => {\n this._datepickerRef.instance.value = value;\n })\n );\n\n // if date changes from picker (view -> model)\n this._subs.push(\n this._datepickerRef.instance.valueChange\n .pipe(\n filter((range: Date[]) => range && range[0] && !!range[1])\n )\n .subscribe((value: Date[]) => {\n this.bsValue = value;\n this.hide();\n })\n );\n }\n\n /**\n * Set config for daterangepicker\n */\n setConfig() {\n this._config = Object.assign(\n {},\n this._config,\n this.bsConfig,\n {\n value: this._bsValue,\n isDisabled: this.isDisabled,\n minDate: this.minDate || this.bsConfig && this.bsConfig.minDate,\n maxDate: this.maxDate || this.bsConfig && this.bsConfig.maxDate\n }\n );\n }\n\n /**\n * Closes an element’s datepicker. This is considered a “manual” triggering of\n * the datepicker.\n */\n hide(): void {\n if (this.isOpen) {\n this._datepicker.hide();\n }\n for (const sub of this._subs) {\n sub.unsubscribe();\n }\n }\n\n /**\n * Toggles an element’s datepicker. This is considered a “manual” triggering\n * of the datepicker.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n ngOnDestroy(): any {\n this._datepicker.dispose();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\n\n@Injectable()\nexport class BsDaterangepickerConfig extends BsDatepickerConfig {\n // DatepickerRenderOptions\n displayMonths = 2;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class BsLocaleService {\n private _defaultLocale = 'en';\n private _locale = new BehaviorSubject<string>(this._defaultLocale);\n private _localeChange: Observable<string> = this._locale.asObservable();\n\n get locale(): BehaviorSubject<string> {\n return this._locale;\n }\n\n get localeChange(): Observable<string> {\n return this._localeChange;\n }\n\n get currentLocale(): string {\n return this._locale.getValue();\n }\n\n use(locale: string): void {\n if (locale === this.currentLocale) {\n return;\n }\n\n this._locale.next(locale);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-calendar-layout',\n template: `\n <!-- current date, will be added in nearest releases -->\n <bs-current-date title=\"hey there\" *ngIf=\"false\"></bs-current-date>\n\n <!--navigation-->\n <div class=\"bs-datepicker-head\">\n <ng-content select=\"bs-datepicker-navigation-view\"></ng-content>\n </div>\n\n <div class=\"bs-datepicker-body\">\n <ng-content></ng-content>\n </div>\n\n <!--timepicker-->\n <bs-timepicker *ngIf=\"false\"></bs-timepicker>\n `\n})\nexport class BsCalendarLayoutComponent {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'bs-current-date',\n template: `<div class=\"current-timedate\"><span>{{ title }}</span></div>`\n})\nexport class BsCurrentDateViewComponent {\n @Input() title: string;\n}\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\n\nexport interface BsCustomDates {\n label: string;\n value: Date | Date[];\n}\n\n@Component({\n selector: 'bs-custom-date-view',\n template: `\n <div class=\"bs-datepicker-predefined-btns\">\n <button *ngFor=\"let range of ranges\">{{ range.label }}</button>\n <button *ngIf=\"isCustomRangeShown\">Custom Range</button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BsCustomDatesViewComponent {\n @Input() isCustomRangeShown: true;\n @Input() ranges: BsCustomDates[];\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { DayViewModel } from '../../models/index';\n\n@Component({\n selector: '[bsDatepickerDayDecorator]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.disabled]': 'day.isDisabled',\n '[class.is-highlighted]': 'day.isHovered',\n '[class.is-other-month]': 'day.isOtherMonth',\n '[class.in-range]': 'day.isInRange',\n '[class.select-start]': 'day.isSelectionStart',\n '[class.select-end]': 'day.isSelectionEnd',\n '[class.selected]': 'day.isSelected'\n },\n template: `{{ day.label }}`\n})\nexport class BsDatepickerDayDecoratorComponent {\n @Input() day: DayViewModel;\n}\n","import { TimeUnit } from '../../chronos/types';\n\nexport type BsDatepickerViewMode = 'day' | 'month' | 'year';\n\n/** *************** */\n// navigation bar settings\nexport interface NavigationViewModel {\n monthTitle: string;\n yearTitle: string;\n hideLeftArrow?: boolean;\n hideRightArrow?: boolean;\n disableLeftArrow?: boolean;\n disableRightArrow?: boolean;\n}\n\nexport interface CalendarCellViewModel {\n date: Date;\n label: string;\n isDisabled?: boolean;\n isHovered?: boolean;\n}\n\n/** *************** */\n// days matrix: day cell view model\nexport interface DayViewModel extends CalendarCellViewModel {\n isOtherMonth?: boolean;\n isInRange?: boolean;\n isSelectionStart?: boolean;\n isSelectionEnd?: boolean;\n isSelected?: boolean;\n // day index\n monthIndex?: number;\n weekIndex?: number;\n dayIndex?: number;\n}\n\nexport interface WeekViewModel {\n days: DayViewModel[];\n}\n\n// todo: split navigation settings\nexport interface DaysCalendarViewModel extends NavigationViewModel {\n weeks: WeekViewModel[];\n // additional information\n month: Date;\n weekNumbers: string[];\n weekdays: string[];\n}\n\n/** *************** */\n// months calendar\nexport interface MonthsCalendarViewModel extends NavigationViewModel {\n months: CalendarCellViewModel[][];\n}\n\n/** *************** */\n// years calendar\nexport interface YearsCalendarViewModel extends NavigationViewModel {\n years: CalendarCellViewModel[][];\n}\n\n/** *************** */\n\n// math model\n/** *************** */\n\n// days Date's array\nexport interface DaysCalendarModel {\n daysMatrix: Date[][];\n month: Date;\n}\n\n/** *************** */\n// some func options\nexport interface MonthViewOptions {\n width?: number;\n height?: number;\n firstDayOfWeek?: number;\n}\n\n/** *************** */\n// rendering options\nexport interface DatepickerFormatOptions {\n locale: string;\n\n monthTitle: string;\n yearTitle: string;\n\n dayLabel: string;\n monthLabel: string;\n yearLabel: string;\n\n weekNumbers: string;\n}\n\nexport interface DatepickerRenderOptions {\n showWeekNumbers?: boolean;\n displayMonths?: number;\n}\n\n/** *************** */\n// events\n/** *************** */\nexport enum BsNavigationDirection {\n UP,\n DOWN\n}\n\n// used for navigation events, to change view date in state\nexport interface BsNavigationEvent {\n direction?: BsNavigationDirection;\n step?: TimeUnit;\n}\n\nexport interface BsViewNavigationEvent {\n unit?: TimeUnit;\n viewMode: BsDatepickerViewMode;\n}\n\nexport interface CellHoverEvent {\n cell: CalendarCellViewModel;\n isHovered: boolean;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n DaysCalendarViewModel\n} from '../../models/index';\n\n@Component({\n selector: 'bs-datepicker-navigation-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <button class=\"previous\"\n [disabled]=\"calendar.disableLeftArrow\"\n [style.visibility]=\"calendar.hideLeftArrow ? 'hidden' : 'visible'\"\n (click)=\"navTo(true)\"><span>‹</span>\n </button>\n\n <button class=\"current\"\n *ngIf=\"calendar.monthTitle\"\n (click)=\"view('month')\"\n ><span>{{ calendar.monthTitle }}</span>\n </button>\n\n <button class=\"current\" (click)=\"view('year')\"\n ><span>{{ calendar.yearTitle }}</span></button>\n\n <button class=\"next\"\n [disabled]=\"calendar.disableRightArrow\"\n [style.visibility]=\"calendar.hideRightArrow ? 'hidden' : 'visible'\"\n (click)=\"navTo(false)\"><span>›</span>\n </button>\n `\n})\nexport class BsDatepickerNavigationViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationDirection>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n navTo(down: boolean): void {\n this.onNavigate.emit(\n down ? BsNavigationDirection.DOWN : BsNavigationDirection.UP\n );\n }\n\n view(viewMode: BsDatepickerViewMode): void {\n this.onViewMode.emit(viewMode);\n }\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n DatepickerRenderOptions,\n DaysCalendarViewModel,\n DayViewModel\n} from '../../models/index';\n\n@Component({\n selector: 'bs-days-calendar-view',\n // changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <!--days matrix-->\n <table role=\"grid\" class=\"days weeks\">\n <thead>\n <tr>\n <!--if show weeks-->\n <th *ngIf=\"options.showWeekNumbers\"></th>\n <th *ngFor=\"let weekday of calendar.weekdays; let i = index\"\n aria-label=\"weekday\">{{ calendar.weekdays[i] }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of calendar.weeks; let i = index\">\n <td class=\"week\" *ngIf=\"options.showWeekNumbers\">\n <span>{{ calendar.weekNumbers[i] }}</span>\n </td>\n <td *ngFor=\"let day of week.days\" role=\"gridcell\">\n <span bsDatepickerDayDecorator\n [day]=\"day\"\n (click)=\"selectDay(day)\"\n (mouseenter)=\"hoverDay(day, true)\"\n (mouseleave)=\"hoverDay(day, false)\">{{ day.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n\n </bs-calendar-layout>\n `\n})\nexport class BsDaysCalendarViewComponent {\n @Input() calendar: DaysCalendarViewModel;\n @Input() options: DatepickerRenderOptions;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<DayViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { month: step } });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n\n selectDay(event: DayViewModel): void {\n this.onSelect.emit(event);\n }\n\n hoverDay(cell: DayViewModel, isHovered: boolean): void {\n this.onHover.emit({ cell, isHovered });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CellHoverEvent,\n MonthsCalendarViewModel,\n CalendarCellViewModel\n} from '../../models/index';\n\n@Component({\n selector: 'bs-month-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"months\">\n <tbody>\n <tr *ngFor=\"let row of calendar.months\">\n <td *ngFor=\"let month of row\" role=\"gridcell\"\n (click)=\"viewMonth(month)\"\n (mouseenter)=\"hoverMonth(month, true)\"\n (mouseleave)=\"hoverMonth(month, false)\"\n [class.disabled]=\"month.isDisabled\"\n [class.is-highlighted]=\"month.isHovered\">\n <span>{{ month.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsMonthCalendarViewComponent {\n @Input() calendar: MonthsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step } });\n }\n\n viewMonth(month: CalendarCellViewModel) {\n this.onSelect.emit(month);\n }\n\n hoverMonth(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","// tslint:disable:max-line-length\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'bs-timepicker',\n template: `\n <div class=\"bs-timepicker-container\">\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\">-</button>\n <input type=\"text\" [value]=\"hours\" placeholder=\"00\">\n <button class=\"bs-increase\">+</button>\n </div>\n <div class=\"bs-timepicker-controls\">\n <button class=\"bs-decrease\">-</button>\n <input type=\"text\" [value]=\"minutes\" placeholder=\"00\">\n <button class=\"bs-increase\">+</button>\n </div>\n <button class=\"switch-time-format\">{{ ampm }}\n <img\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg==\"\n alt=\"\">\n </button>\n </div>\n `\n})\nexport class BsTimepickerViewComponent {\n ampm = 'ok';\n hours = 0;\n minutes = 0;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { yearsPerCalendar } from '../../engine/format-years-calendar';\nimport {\n BsDatepickerViewMode,\n BsNavigationDirection,\n BsNavigationEvent,\n CalendarCellViewModel,\n CellHoverEvent,\n YearsCalendarViewModel\n} from '../../models/index';\n\n@Component({\n selector: 'bs-years-calendar-view',\n template: `\n <bs-calendar-layout>\n <bs-datepicker-navigation-view\n [calendar]=\"calendar\"\n (onNavigate)=\"navigateTo($event)\"\n (onViewMode)=\"changeViewMode($event)\"\n ></bs-datepicker-navigation-view>\n\n <table role=\"grid\" class=\"years\">\n <tbody>\n <tr *ngFor=\"let row of calendar.years\">\n <td *ngFor=\"let year of row\" role=\"gridcell\"\n (click)=\"viewYear(year)\"\n (mouseenter)=\"hoverYear(year, true)\"\n (mouseleave)=\"hoverYear(year, false)\"\n [class.disabled]=\"year.isDisabled\"\n [class.is-highlighted]=\"year.isHovered\">\n <span>{{ year.label }}</span>\n </td>\n </tr>\n </tbody>\n </table>\n </bs-calendar-layout>\n `\n})\nexport class BsYearsCalendarViewComponent {\n @Input() calendar: YearsCalendarViewModel;\n\n @Output() onNavigate = new EventEmitter<BsNavigationEvent>();\n @Output() onViewMode = new EventEmitter<BsDatepickerViewMode>();\n\n @Output() onSelect = new EventEmitter<CalendarCellViewModel>();\n @Output() onHover = new EventEmitter<CellHoverEvent>();\n\n navigateTo(event: BsNavigationDirection): void {\n const step = BsNavigationDirection.DOWN === event ? -1 : 1;\n this.onNavigate.emit({ step: { year: step * yearsPerCalendar } });\n }\n\n viewYear(year: CalendarCellViewModel) {\n this.onSelect.emit(year);\n }\n\n hoverYear(cell: CalendarCellViewModel, isHovered: boolean) {\n this.onHover.emit({ cell, isHovered });\n }\n\n changeViewMode(event: BsDatepickerViewMode): void {\n this.onViewMode.emit(event);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\nimport { PositioningService } from '../positioning/positioning.service';\n\nimport { warnOnce } from '../utils/warn-once';\nimport { BsDatepickerInputDirective } from './bs-datepicker-input.directive';\nimport { BsDatepickerDirective } from './bs-datepicker.component';\nimport { BsDatepickerConfig } from './bs-datepicker.config';\nimport { BsDaterangepickerInputDirective } from './bs-daterangepicker-input.directive';\nimport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nimport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\n\nimport { BsLocaleService } from './bs-locale.service';\nimport { BsDatepickerActions } from './reducer/bs-datepicker.actions';\nimport { BsDatepickerEffects } from './reducer/bs-datepicker.effects';\nimport { BsDatepickerStore } from './reducer/bs-datepicker.store';\nimport { BsCalendarLayoutComponent } from './themes/bs/bs-calendar-layout.component';\nimport { BsCurrentDateViewComponent } from './themes/bs/bs-current-date-view.component';\nimport { BsCustomDatesViewComponent } from './themes/bs/bs-custom-dates-view.component';\nimport { BsDatepickerContainerComponent } from './themes/bs/bs-datepicker-container.component';\nimport { BsDatepickerDayDecoratorComponent } from './themes/bs/bs-datepicker-day-decorator.directive';\nimport { BsDatepickerNavigationViewComponent } from './themes/bs/bs-datepicker-navigation-view.component';\nimport { BsDaterangepickerContainerComponent } from './themes/bs/bs-daterangepicker-container.component';\nimport { BsDaysCalendarViewComponent } from './themes/bs/bs-days-calendar-view.component';\nimport { BsMonthCalendarViewComponent } from './themes/bs/bs-months-calendar-view.component';\nimport { BsTimepickerViewComponent } from './themes/bs/bs-timepicker-view.component';\nimport { BsYearsCalendarViewComponent } from './themes/bs/bs-years-calendar-view.component';\n\nconst _exports = [\n BsDatepickerContainerComponent,\n BsDaterangepickerContainerComponent,\n\n BsDatepickerDirective,\n BsDatepickerInputDirective,\n\n BsDaterangepickerInputDirective,\n BsDaterangepickerDirective\n];\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n BsDatepickerDayDecoratorComponent,\n BsCurrentDateViewComponent,\n BsDatepickerNavigationViewComponent,\n BsTimepickerViewComponent,\n\n BsCalendarLayoutComponent,\n BsDaysCalendarViewComponent,\n BsMonthCalendarViewComponent,\n BsYearsCalendarViewComponent,\n\n BsCustomDatesViewComponent,\n\n ..._exports\n ],\n entryComponents: [\n BsDatepickerContainerComponent,\n BsDaterangepickerContainerComponent\n ],\n exports: _exports\n})\nexport class BsDatepickerModule {\n constructor() {\n warnOnce(`BsDatepickerModule is under development,\n BREAKING CHANGES are possible,\n PLEASE, read changelog`);\n }\n\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: BsDatepickerModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDatepickerStore,\n BsDatepickerActions,\n BsDatepickerConfig,\n BsDaterangepickerConfig,\n BsDatepickerEffects,\n BsLocaleService\n ]\n };\n }\n}\n","export { DatePickerComponent } from './datepicker.component';\nexport { DatepickerModule } from './datepicker.module';\nexport { DayPickerComponent } from './daypicker.component';\nexport { MonthPickerComponent } from './monthpicker.component';\nexport { YearPickerComponent } from './yearpicker.component';\nexport { DateFormatter } from './date-formatter';\nexport { DatepickerConfig } from './datepicker.config';\n\nexport { BsDatepickerModule } from './bs-datepicker.module';\nexport { BsDatepickerDirective } from './bs-datepicker.component';\nexport { BsDaterangepickerDirective } from './bs-daterangepicker.component';\nexport { BsDatepickerConfig } from './bs-datepicker.config';\nexport { BsDaterangepickerConfig } from './bs-daterangepicker.config';\nexport { BsLocaleService } from './bs-locale.service';\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class BsModalRef {\n /**\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef\n */\n content?: any | null;\n\n /**\n * Hides the modal\n */\n hide: () => void = Function;\n}\n","export class ModalBackdropOptions {\n animate = true;\n\n constructor(options: ModalBackdropOptions) {\n Object.assign(this, options);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ModalOptions {\n /**\n * Includes a modal-backdrop element. Alternatively,\n * specify static for a backdrop which doesn't close the modal on click.\n */\n backdrop?: boolean | 'static';\n /**\n * Closes the modal when escape key is pressed.\n */\n keyboard?: boolean;\n\n focus?: boolean;\n /**\n * Shows the modal when initialized.\n */\n show?: boolean;\n /**\n * Ignore the backdrop click\n */\n ignoreBackdropClick?: boolean;\n /**\n * Css class for opened modal\n */\n class?: string;\n /**\n * Toggle animation\n */\n animated?: boolean;\n /**\n * Modal data\n */\n initialState?: Object;\n}\n\n\nexport const modalConfigDefaults: ModalOptions = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {}\n};\n\nexport const CLASS_NAME: any = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in', // bs3\n SHOW: 'show' // bs4\n};\n\nexport const SELECTOR: any = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\n\nexport const TRANSITION_DURATIONS: any = {\n MODAL: 300,\n BACKDROP: 150\n};\n\nexport const DISMISS_REASONS = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc'\n};\n","import {\n Component,\n ElementRef,\n HostListener,\n OnDestroy,\n OnInit,\n Renderer2\n} from '@angular/core';\nimport {\n CLASS_NAME,\n DISMISS_REASONS,\n ModalOptions,\n TRANSITION_DURATIONS\n} from './modal-options.class';\nimport { BsModalService } from './bs-modal.service';\nimport { isBs3 } from '../utils/theme-provider';\n\n@Component({\n selector: 'modal-container',\n template: `\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true'\n }\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n config: ModalOptions;\n isShown = false;\n level: number;\n isAnimated: boolean;\n bsModalService: BsModalService;\n private isModalHiding = false;\n\n constructor(options: ModalOptions,\n protected _element: ElementRef,\n private _renderer: Renderer2) {\n this.config = Object.assign({}, options);\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this._renderer.addClass(\n this._element.nativeElement,\n CLASS_NAME.FADE\n );\n }\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n event.target !== this._element.nativeElement\n ) {\n return;\n }\n this.bsModalService.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEsc(event: any): void {\n if (!this.isShown) {\n return;\n }\n\n if (event.keyCode === 27) {\n event.preventDefault();\n }\n\n if (\n this.config.keyboard &&\n this.level === this.bsModalService.getModalsCount()\n ) {\n this.bsModalService.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n\n ngOnDestroy(): void {\n if (this.isShown) {\n this.hide();\n }\n }\n\n hide(): void {\n if (this.isModalHiding || !this.isShown) {\n return;\n }\n this.isModalHiding = true;\n this._renderer.removeClass(\n this._element.nativeElement,\n isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW\n );\n setTimeout(() => {\n this.isShown = false;\n if (\n document &&\n document.body &&\n this.bsModalService.getModalsCount() === 1\n ) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.bsModalService.hide(this.level);\n this.isModalHiding = false;\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n}\n","import { Component, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\nimport { CLASS_NAME } from './modal-options.class';\nimport { isBs3 } from '../utils/theme-provider';\nimport { Utils } from '../utils/utils.class';\n\n\n/** This component will be added as background layout for modals if enabled */\n@Component({\n selector: 'bs-modal-backdrop',\n template: ' ',\n host: { class: CLASS_NAME.BACKDROP }\n})\nexport class ModalBackdropComponent implements OnInit {\n get isAnimated(): boolean {\n return this._isAnimated;\n }\n\n set isAnimated(value: boolean) {\n this._isAnimated = value;\n // this.renderer.setElementClass(this.element.nativeElement, `${ClassName.FADE}`, value);\n }\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n set isShown(value: boolean) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.IN}`\n );\n }\n if (!isBs3()) {\n if (value) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n } else {\n this.renderer.removeClass(\n this.element.nativeElement,\n `${CLASS_NAME.SHOW}`\n );\n }\n }\n }\n\n element: ElementRef;\n renderer: Renderer2;\n\n protected _isAnimated: boolean;\n protected _isShown = false;\n\n constructor(element: ElementRef, renderer: Renderer2) {\n this.element = element;\n this.renderer = renderer;\n }\n\n ngOnInit(): void {\n if (this.isAnimated) {\n this.renderer.addClass(\n this.element.nativeElement,\n `${CLASS_NAME.FADE}`\n );\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n}\n","/* tslint:disable:max-file-line-count */\n// todo: should we support enforce focus in?\n// todo: in original bs there are was a way to prevent modal from showing\n// todo: original modal had resize events\n\nimport {\n ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input,\n OnDestroy, OnInit, Output, Renderer2, ViewContainerRef\n} from '@angular/core';\n\nimport { document, window } from '../utils/facade/browser';\n\nimport { isBs3 } from '../utils/theme-provider';\nimport { Utils } from '../utils/utils.class';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport {\n CLASS_NAME, DISMISS_REASONS, modalConfigDefaults, ModalOptions\n} from './modal-options.class';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\n\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n\n/** Mark any code with directive to show it's content in modal */\n@Directive({\n selector: '[bsModal]',\n exportAs: 'bs-modal'\n})\nexport class ModalDirective implements OnDestroy, OnInit {\n /** allows to set modal configuration via element property */\n @Input()\n set config(conf: ModalOptions) {\n this._config = this.getConfig(conf);\n }\n\n get config(): ModalOptions {\n return this._config;\n }\n\n /** This event fires immediately when the `show` instance method is called. */\n @Output()\n onShow: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n @Output()\n onShown: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n @Output()\n onHide: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n @Output()\n onHidden: EventEmitter<ModalDirective> = new EventEmitter<ModalDirective>();\n\n /** This field contains last dismiss reason.\n * Possible values: `backdrop-click`, `esc` and `null`\n * (if modal was closed by direct call of `.hide()`).\n */\n dismissReason: string;\n\n get isShown(): boolean {\n return this._isShown;\n }\n\n protected _config: ModalOptions;\n protected _isShown = false;\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n protected scrollbarWidth = 0;\n\n protected timerHideModal: any = 0;\n protected timerRmBackDrop: any = 0;\n\n // reference to backdrop component\n protected backdrop: ComponentRef<ModalBackdropComponent>;\n private _backdrop: ComponentLoader<ModalBackdropComponent>;\n\n private isNested = false;\n\n constructor(private _element: ElementRef,\n _viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n clf: ComponentLoaderFactory) {\n this._backdrop = clf.createLoader<ModalBackdropComponent>(\n _element,\n _viewContainerRef,\n _renderer\n );\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n if (\n this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n event.target !== this._element.nativeElement\n ) {\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n\n // todo: consider preventing default and stopping propagation\n @HostListener('keydown.esc', ['$event'])\n onEsc(event: any): void {\n if (!this._isShown) {\n return;\n }\n\n if (event.keyCode === 27) {\n event.preventDefault();\n }\n\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n\n ngOnDestroy(): any {\n this.config = void 0;\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n\n ngOnInit(): any {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n\n /* Public methods */\n\n /** Allows to manually toggle modal visibility */\n toggle(): void {\n return this._isShown ? this.hide() : this.show();\n }\n\n /** Allows to manually open modal */\n show(): void {\n this.dismissReason = null;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n\n this._isShown = true;\n\n this.checkScrollbar();\n this.setScrollbar();\n\n if (document && document.body) {\n if (document.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n } else {\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n }\n }\n\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n\n /** Allows to manually close modal */\n hide(event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n this.onHide.emit(this);\n\n // todo: add an option to prevent hiding\n if (!this._isShown) {\n return;\n }\n\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n // this._addClassIn = false;\n\n if (this._config.animated) {\n this.timerHideModal = setTimeout(\n () => this.hideModal(),\n TRANSITION_DURATION\n );\n } else {\n this.hideModal();\n }\n }\n\n /** Private methods @internal */\n protected getConfig(config?: ModalOptions): ModalOptions {\n return Object.assign({}, modalConfigDefaults, config);\n }\n\n /**\n * Show dialog\n * @internal\n */\n protected showElement(): void {\n // todo: replace this with component loader usage\n if (\n !this._element.nativeElement.parentNode ||\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE\n ) {\n // don't move modals dom position\n if (document && document.body) {\n document.body.appendChild(this._element.nativeElement);\n }\n }\n\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'false'\n );\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-modal',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'block'\n );\n this._renderer.setProperty(\n this._element.nativeElement,\n 'scrollTop',\n 0\n );\n\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n\n // this._addClassIn = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n } else {\n transitionComplete();\n }\n }\n\n /** @internal */\n protected hideModal(): void {\n this._renderer.setAttribute(\n this._element.nativeElement,\n 'aria-hidden',\n 'true'\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'display',\n 'none'\n );\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document && document.body) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n protected showBackdrop(callback?: Function): void {\n if (\n this._isShown &&\n this.config.backdrop &&\n (!this.backdrop || !this.backdrop.instance.isShown)\n ) {\n this.removeBackdrop();\n this._backdrop\n .attach(ModalBackdropComponent)\n .to('body')\n .show({isAnimated: this._config.animated});\n this.backdrop = this._backdrop._componentRef;\n\n if (!callback) {\n return;\n }\n\n if (!this._config.animated) {\n callback();\n\n return;\n }\n\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n } else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = setTimeout(\n callbackRemove,\n BACKDROP_TRANSITION_DURATION\n );\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n /** @internal */\n protected removeBackdrop(): void {\n this._backdrop.hide();\n }\n\n /** Events tricks */\n\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n\n protected focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) return;\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n\n /** @internal */\n protected resetAdjustments(): void {\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingLeft',\n ''\n );\n this._renderer.setStyle(\n this._element.nativeElement,\n 'paddingRight',\n ''\n );\n }\n\n /** Scroll bar tricks */\n /** @internal */\n protected checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n protected setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || 0,\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n protected resetScrollbar(): void {\n document.body.style.paddingRight = this.originalBodyPadding + 'px';\n }\n\n // thx d.walsh\n protected getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n}\n","export { positionElements, Positioning } from './ng-positioning';\nexport { PositioningService, PositioningOptions } from './positioning.service';\n","export { ComponentLoader } from './component-loader.class';\nexport { ComponentLoaderFactory } from './component-loader.factory';\nexport { ContentRef } from './content-ref.class';\n","import {\n ComponentRef,\n Injectable,\n TemplateRef,\n EventEmitter, Renderer2, RendererFactory2\n} from '@angular/core';\n\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalContainerComponent } from './modal-container.component';\nimport {\n CLASS_NAME,\n modalConfigDefaults,\n ModalOptions,\n TRANSITION_DURATIONS\n} from './modal-options.class';\nimport { BsModalRef } from './bs-modal-ref.service';\n\n@Injectable()\nexport class BsModalService {\n // constructor props\n config: ModalOptions = modalConfigDefaults;\n\n onShow: EventEmitter<any> = new EventEmitter();\n onShown: EventEmitter<any> = new EventEmitter();\n onHide: EventEmitter<any> = new EventEmitter();\n onHidden: EventEmitter<any> = new EventEmitter();\n\n protected isBodyOverflowing = false;\n protected originalBodyPadding = 0;\n\n protected scrollbarWidth = 0;\n\n protected backdropRef: ComponentRef<ModalBackdropComponent>;\n private _backdropLoader: ComponentLoader<ModalBackdropComponent>;\n private modalsCount = 0;\n private lastDismissReason = '';\n\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n\n private _renderer: Renderer2;\n\n constructor(rendererFactory: RendererFactory2, private clf: ComponentLoaderFactory) {\n this._backdropLoader = this.clf.createLoader<ModalBackdropComponent>(\n null,\n null,\n null\n );\n this._renderer = rendererFactory.createRenderer(null, null);\n }\n\n /** Shows a modal */\n show(content: string | TemplateRef<any> | any, config?: ModalOptions): BsModalRef {\n this.modalsCount++;\n this._createLoaders();\n this.config = Object.assign({}, modalConfigDefaults, config);\n this._showBackdrop();\n this.lastDismissReason = null;\n\n return this._showModal(content);\n }\n\n hide(level: number) {\n if (this.modalsCount === 1) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(level);\n this.removeLoaders(level);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n }\n\n _showBackdrop(): void {\n const isBackdropEnabled =\n this.config.backdrop || this.config.backdrop === 'static';\n const isBackdropInDOM =\n !this.backdropRef || !this.backdropRef.instance.isShown;\n\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this.config.animated });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n\n _hideBackdrop(): void {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n\n _showModal(content: any): BsModalRef {\n const modalLoader = this.loaders[this.loaders.length - 1];\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: this.config })\n .provide({ provide: BsModalRef, useValue: bsModalRef })\n .attach(ModalContainerComponent)\n .to('body')\n .show({content, isAnimated: this.config.animated, initialState: this.config.initialState, bsModalService: this});\n modalContainerRef.instance.level = this.getModalsCount();\n bsModalRef.hide = () => {\n modalContainerRef.instance.hide();\n };\n bsModalRef.content = modalLoader.getInnerComponent() || null;\n\n return bsModalRef;\n }\n\n _hideModal(level: number): void {\n const modalLoader = this.loaders[level - 1];\n if (modalLoader) {\n modalLoader.hide();\n }\n }\n\n getModalsCount(): number {\n return this.modalsCount;\n }\n\n setDismissReason(reason: string) {\n this.lastDismissReason = reason;\n }\n\n removeBackdrop(): void {\n this._backdropLoader.hide();\n this.backdropRef = null;\n }\n\n /** AFTER PR MERGE MODAL.COMPONENT WILL BE USING THIS CODE */\n /** Scroll bar tricks */\n /** @internal */\n checkScrollbar(): void {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n\n setScrollbar(): void {\n if (!document) {\n return;\n }\n\n this.originalBodyPadding = parseInt(\n window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || '0',\n 10\n );\n\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n\n private resetScrollbar(): void {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n\n // thx d.walsh\n private getScrollbarWidth(): number {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n\n return scrollbarWidth;\n }\n\n private _createLoaders(): void {\n const loader = this.clf.createLoader<ModalContainerComponent>(\n null,\n null,\n null\n );\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n\n private removeLoaders(level: number): void {\n this.loaders.splice(level - 1, 1);\n this.loaders.forEach(\n (loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n loader.instance.level = i + 1;\n }\n );\n }\n\n private copyEvent(from: EventEmitter<any>, to: EventEmitter<any>) {\n from.subscribe(() => {\n to.emit(this.lastDismissReason);\n });\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ModalBackdropComponent } from './modal-backdrop.component';\nimport { ModalDirective } from './modal.directive';\nimport { PositioningService } from '../positioning/index';\nimport { ComponentLoaderFactory } from '../component-loader/index';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { BsModalService } from './bs-modal.service';\n\n@NgModule({\n declarations: [\n ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent\n ],\n exports: [ModalBackdropComponent, ModalDirective],\n entryComponents: [ModalBackdropComponent, ModalContainerComponent]\n})\nexport class ModalModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n}\n","export { BsModalRef } from './bs-modal-ref.service';\nexport { ModalBackdropOptions } from './modal-backdrop.options';\nexport { ModalContainerComponent } from './modal-container.component';\nexport { ModalBackdropComponent } from './modal-backdrop.component';\nexport { ModalOptions } from './modal-options.class';\nexport { ModalDirective } from './modal.directive';\nexport { ModalModule } from './modal.module';\nexport { BsModalService } from './bs-modal.service';\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnDestroy,\n Renderer2\n} from '@angular/core';\nimport { BsDropdownState } from './bs-dropdown.state';\nimport { isBs3 } from '../utils/theme-provider';\n\n@Component({\n selector: 'bs-dropdown-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display:block;position: absolute;'\n },\n template: `\n <div [class.dropup]=\"direction === 'up'\"\n [class.dropdown]=\"direction === 'down'\"\n [class.show]=\"isOpen\"\n [class.open]=\"isOpen\"><ng-content></ng-content></div>\n `\n})\nexport class BsDropdownContainerComponent implements OnDestroy {\n isOpen = false;\n\n get direction(): 'down' | 'up' {\n return this._state.direction;\n }\n\n private _subscription: any;\n\n constructor(\n private _state: BsDropdownState,\n private cd: ChangeDetectorRef,\n private _renderer: Renderer2,\n _element: ElementRef\n ) {\n this._subscription = _state.isOpenChange.subscribe((value: boolean) => {\n this.isOpen = value;\n const dropdown = _element.nativeElement.querySelector('.dropdown-menu');\n if (dropdown && !isBs3()) {\n this._renderer.addClass(dropdown, 'show');\n if (dropdown.classList.contains('dropdown-menu-right')) {\n this._renderer.setStyle(dropdown, 'left', 'auto');\n this._renderer.setStyle(dropdown, 'right', '0');\n }\n if (this.direction === 'up') {\n this._renderer.setStyle(dropdown, 'top', 'auto');\n this._renderer.setStyle(\n dropdown,\n 'transform',\n 'translateY(-101%)'\n );\n }\n }\n this.cd.markForCheck();\n this.cd.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this._subscription.unsubscribe();\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BsComponentRef } from '../component-loader/bs-component-ref.class';\n\n@Injectable()\nexport class BsDropdownState {\n direction: 'down' | 'up' = 'down';\n autoClose: boolean;\n isOpenChange = new EventEmitter<boolean>();\n isDisabledChange = new EventEmitter<boolean>();\n toggleClick = new EventEmitter<boolean>();\n\n /**\n * Content to be displayed as popover.\n */\n dropdownMenu: Promise<BsComponentRef<any>>;\n resolveDropdownMenu: (componentRef: BsComponentRef<any>) => void;\n\n constructor() {\n this.dropdownMenu = new Promise(resolve => {\n this.resolveDropdownMenu = resolve;\n });\n }\n}\n","// tslint:disable:max-file-line-count\nimport {\n Directive,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewContainerRef\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { ComponentLoader, ComponentLoaderFactory } from '../component-loader/index';\n\nimport { BsDropdownConfig } from './bs-dropdown.config';\nimport { BsDropdownContainerComponent } from './bs-dropdown-container.component';\nimport { BsDropdownState } from './bs-dropdown.state';\nimport { BsComponentRef } from '../component-loader/bs-component-ref.class';\nimport { BsDropdownMenuDirective } from './';\nimport { isBs3 } from '../utils/theme-provider';\n\n@Directive({\n selector: '[bsDropdown],[dropdown]',\n exportAs: 'bs-dropdown',\n providers: [BsDropdownState],\n host: {\n '[class.dropup]': 'dropup',\n '[class.open]': 'isOpen',\n '[class.show]': 'isOpen && isBs4'\n }\n})\nexport class BsDropdownDirective implements OnInit, OnDestroy {\n /**\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: string;\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers: string;\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n @Input() container: string;\n\n /**\n * This attribute indicates that the dropdown should be opened upwards\n */\n @Input() dropup: boolean;\n\n /**\n * Indicates that dropdown will be closed on item or document click,\n * and after pressing ESC\n */\n @Input()\n set autoClose(value: boolean) {\n this._state.autoClose = value;\n }\n\n get autoClose(): boolean {\n return this._state.autoClose;\n }\n\n /**\n * Disables dropdown toggle and hides dropdown menu if opened\n */\n @Input()\n set isDisabled(value: boolean) {\n this._isDisabled = value;\n this._state.isDisabledChange.emit(value);\n if (value) {\n this.hide();\n }\n }\n\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n\n /**\n * Returns whether or not the popover is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n if (this._showInline) {\n return this._isInlineOpen;\n }\n\n return this._dropdown.isShown;\n }\n\n set isOpen(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Emits an event when isOpen change\n */\n @Output() isOpenChange: EventEmitter<any>;\n\n /**\n * Emits an event when the popover is shown\n */\n @Output() onShown: EventEmitter<any>;\n\n /**\n * Emits an event when the popover is hidden\n */\n @Output() onHidden: EventEmitter<any>;\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n // todo: move to component loader\n private _isInlineOpen = false;\n\n private get _showInline(): boolean {\n return !this.container;\n }\n\n private _inlinedMenu: EmbeddedViewRef<BsDropdownMenuDirective>;\n\n private _isDisabled: boolean;\n private _dropdown: ComponentLoader<BsDropdownContainerComponent>;\n private _subscriptions: Subscription[] = [];\n private _isInited = false;\n\n constructor(private _elementRef: ElementRef,\n private _renderer: Renderer2,\n private _viewContainerRef: ViewContainerRef,\n private _cis: ComponentLoaderFactory,\n private _config: BsDropdownConfig,\n private _state: BsDropdownState) {\n // set initial dropdown state from config\n this._state.autoClose = this._config.autoClose;\n\n // create dropdown component loader\n this._dropdown = this._cis\n .createLoader<BsDropdownContainerComponent>(\n this._elementRef,\n this._viewContainerRef,\n this._renderer\n )\n .provide({provide: BsDropdownState, useValue: this._state});\n\n this.onShown = this._dropdown.onShown;\n this.onHidden = this._dropdown.onHidden;\n this.isOpenChange = this._state.isOpenChange;\n\n }\n\n ngOnInit(): void {\n // fix: seems there are an issue with `routerLinkActive`\n // which result in duplicated call ngOnInit without call to ngOnDestroy\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n if (this._isInited) {\n return;\n }\n this._isInited = true;\n\n // attach DOM listeners\n this._dropdown.listen({\n // because of dropdown inline mode\n outsideClick: false,\n triggers: this.triggers,\n show: () => this.show()\n });\n\n // toggle visibility on toggle element click\n this._subscriptions.push(\n this._state.toggleClick.subscribe((value: boolean) => this.toggle(value))\n );\n\n // hide dropdown if set disabled while opened\n this._subscriptions.push(\n this._state.isDisabledChange\n .pipe(\n filter((value: boolean) => value)\n )\n .subscribe((value: boolean) => this.hide())\n );\n }\n\n /**\n * Opens an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n show(): void {\n if (this.isOpen || this.isDisabled) {\n return;\n }\n\n if (this._showInline) {\n if (!this._inlinedMenu) {\n this._state.dropdownMenu.then(\n (dropdownMenu: BsComponentRef<BsDropdownMenuDirective>) => {\n this._dropdown.attachInline(\n dropdownMenu.viewContainer,\n dropdownMenu.templateRef\n );\n this._inlinedMenu = this._dropdown._inlineViewRef;\n this.addBs4Polyfills();\n }\n )\n // swallow errors\n .catch();\n }\n this.addBs4Polyfills();\n this._isInlineOpen = true;\n this.onShown.emit(true);\n this._state.isOpenChange.emit(true);\n\n return;\n }\n this._state.dropdownMenu.then(dropdownMenu => {\n // check direction in which dropdown should be opened\n const _dropup =\n this.dropup ||\n (typeof this.dropup !== 'undefined' && this.dropup);\n this._state.direction = _dropup ? 'up' : 'down';\n const _placement =\n this.placement || (_dropup ? 'top left' : 'bottom left');\n\n // show dropdown\n this._dropdown\n .attach(BsDropdownContainerComponent)\n .to(this.container)\n .position({attachment: _placement})\n .show({\n content: dropdownMenu.templateRef,\n placement: _placement\n });\n\n this._state.isOpenChange.emit(true);\n })\n // swallow error\n .catch();\n }\n\n /**\n * Closes an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n hide(): void {\n if (!this.isOpen) {\n return;\n }\n\n if (this._showInline) {\n this.removeShowClass();\n this.removeDropupStyles();\n this._isInlineOpen = false;\n this.onHidden.emit(true);\n } else {\n this._dropdown.hide();\n }\n\n this._state.isOpenChange.emit(false);\n }\n\n /**\n * Toggles an element’s popover. This is considered a “manual” triggering of\n * the popover. With parameter <code>true</code> allows toggling, with parameter <code>false</code>\n * only hides opened dropdown. Parameter usage will be removed in ngx-bootstrap v3\n */\n toggle(value?: boolean): void {\n if (this.isOpen || !value) {\n return this.hide();\n }\n\n return this.show();\n }\n\n ngOnDestroy(): void {\n // clean up subscriptions and destroy dropdown\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._dropdown.dispose();\n }\n\n private addBs4Polyfills(): void {\n if (!isBs3()) {\n this.addShowClass();\n this.checkRightAlignment();\n this.addDropupStyles();\n }\n }\n\n private addShowClass(): void {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.addClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n\n private removeShowClass(): void {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeClass(this._inlinedMenu.rootNodes[0], 'show');\n }\n }\n\n private checkRightAlignment(): void {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n const isRightAligned = this._inlinedMenu.rootNodes[0].classList.contains(\n 'dropdown-menu-right'\n );\n this._renderer.setStyle(\n this._inlinedMenu.rootNodes[0],\n 'left',\n isRightAligned ? 'auto' : '0'\n );\n this._renderer.setStyle(\n this._inlinedMenu.rootNodes[0],\n 'right',\n isRightAligned ? '0' : 'auto'\n );\n }\n }\n\n private addDropupStyles(): void {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n // a little hack to not break support of bootstrap 4 beta\n this._renderer.setStyle(\n this._inlinedMenu.rootNodes[0],\n 'top',\n this.dropup ? 'auto' : '100%'\n );\n this._renderer.setStyle(\n this._inlinedMenu.rootNodes[0],\n 'transform',\n this.dropup ? 'translateY(-101%)' : 'translateY(0)'\n );\n }\n }\n\n private removeDropupStyles(): void {\n if (this._inlinedMenu && this._inlinedMenu.rootNodes[0]) {\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'top');\n this._renderer.removeStyle(this._inlinedMenu.rootNodes[0], 'transform');\n }\n }\n}\n","import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { BsDropdownState } from './bs-dropdown.state';\n\n@Directive({\n selector: '[bsDropdownMenu],[dropdownMenu]',\n exportAs: 'bs-dropdown-menu'\n})\nexport class BsDropdownMenuDirective {\n constructor(\n _state: BsDropdownState,\n _viewContainer: ViewContainerRef,\n _templateRef: TemplateRef<any>\n ) {\n _state.resolveDropdownMenu({\n templateRef: _templateRef,\n viewContainer: _viewContainer\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { BsDropdownState } from './bs-dropdown.state';\n\n@Directive({\n selector: '[bsDropdownToggle],[dropdownToggle]',\n exportAs: 'bs-dropdown-toggle',\n host: {\n '[attr.aria-haspopup]': 'true'\n }\n})\nexport class BsDropdownToggleDirective implements OnDestroy {\n @HostBinding('attr.disabled') isDisabled: boolean = null;\n\n // @HostBinding('class.active')\n @HostBinding('attr.aria-expanded') isOpen: boolean;\n\n private _subscriptions: Subscription[] = [];\n\n constructor(private _state: BsDropdownState, private _element: ElementRef) {\n // sync is open value with state\n this._subscriptions.push(\n this._state.isOpenChange.subscribe(\n (value: boolean) => (this.isOpen = value)\n )\n );\n // populate disabled state\n this._subscriptions.push(\n this._state.isDisabledChange.subscribe(\n (value: boolean) => (this.isDisabled = value || null)\n )\n );\n }\n\n @HostListener('click', [])\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n this._state.toggleClick.emit(true);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: any): void {\n if (\n this._state.autoClose &&\n event.button !== 2 &&\n !this._element.nativeElement.contains(event.target)\n ) {\n this._state.toggleClick.emit(false);\n }\n }\n\n @HostListener('keyup.esc')\n onEsc(): void {\n if (this._state.autoClose) {\n this._state.toggleClick.emit(false);\n }\n }\n\n ngOnDestroy(): void {\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Default dropdown configuration */\n@Injectable()\nexport class BsDropdownConfig {\n /** default dropdown auto closing behavior */\n autoClose = true;\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ComponentLoaderFactory } from '../component-loader/index';\n\nimport { PositioningService } from '../positioning/index';\nimport { BsDropdownContainerComponent } from './bs-dropdown-container.component';\nimport { BsDropdownMenuDirective } from './bs-dropdown-menu.directive';\nimport { BsDropdownToggleDirective } from './bs-dropdown-toggle.directive';\nimport { BsDropdownConfig } from './bs-dropdown.config';\n\nimport { BsDropdownDirective } from './bs-dropdown.directive';\nimport { BsDropdownState } from './bs-dropdown.state';\n\n@NgModule({\n declarations: [\n BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownContainerComponent,\n BsDropdownDirective\n ],\n exports: [\n BsDropdownMenuDirective,\n BsDropdownToggleDirective,\n BsDropdownDirective\n ],\n entryComponents: [BsDropdownContainerComponent]\n})\nexport class BsDropdownModule {\n static forRoot(config?: any): ModuleWithProviders {\n return {\n ngModule: BsDropdownModule,\n providers: [\n ComponentLoaderFactory,\n PositioningService,\n BsDropdownState,\n {\n provide: BsDropdownConfig,\n useValue: config ? config : { autoClose: true }\n }\n ]\n };\n }\n}\n","export { BsDropdownDirective } from './bs-dropdown.directive';\nexport { BsDropdownMenuDirective } from './bs-dropdown-menu.directive';\nexport { BsDropdownToggleDirective } from './bs-dropdown-toggle.directive';\nexport {\n BsDropdownContainerComponent\n} from './bs-dropdown-container.component';\nexport { BsDropdownState } from './bs-dropdown.state';\nexport { BsDropdownConfig } from './bs-dropdown.config';\nexport { BsDropdownModule } from './bs-dropdown.module';\n","import {\n Component,\n ElementRef,\n OnInit,\n Renderer2,\n Input,\n Output,\n EventEmitter,\n forwardRef, ChangeDetectorRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PageChangedEvent } from './pagination.component';\nimport { PaginationConfig } from './pagination.config';\n\nexport const PAGER_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => PagerComponent),\n multi: true\n};\n\n@Component({\n selector: 'pager',\n template: \"<ul class=\\\"pager\\\"> <li [class.disabled]=\\\"noPrevious()\\\" [class.previous]=\\\"align\\\" [ngClass]=\\\"{'pull-right': align, 'float-right': align}\\\" class=\\\"{{ pageBtnClass }}\\\"> <a href (click)=\\\"selectPage(page - 1, $event)\\\">{{ getText('previous') }}</a> </li> <li [class.disabled]=\\\"noNext()\\\" [class.next]=\\\"align\\\" [ngClass]=\\\"{'pull-right': align, 'float-right': align}\\\" class=\\\"{{ pageBtnClass }}\\\"> <a href (click)=\\\"selectPage(page + 1, $event)\\\">{{ getText('next') }}</a> </li> </ul> \",\n providers: [PAGER_CONTROL_VALUE_ACCESSOR]\n})\nexport class PagerComponent implements ControlValueAccessor, OnInit {\n config: any;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\n /** limit number for page links in pager */\n @Input() maxSize: number;\n /** if false first and last buttons will be hidden */\n @Input() boundaryLinks: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\n // labels\n /** first button text */\n @Input() firstText: string;\n /** previous button text */\n @Input() previousText: string;\n /** next button text */\n @Input() nextText: string;\n /** last button text */\n @Input() lastText: string;\n /** if true current page will in the middle of pages list */\n @Input() rotate: boolean;\n // css\n /** add class to <code><li\\></code> */\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = new EventEmitter<number>();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to\n * object with current page index and number of items per page\n */\n @Output()\n pageChanged: EventEmitter<PageChangedEvent> = new EventEmitter<PageChangedEvent>();\n\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n @Input()\n get itemsPerPage(): number {\n return this._itemsPerPage;\n }\n\n set itemsPerPage(v: number) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n /** total number of items in all pages */\n @Input()\n get totalItems(): number {\n return this._totalItems;\n }\n\n set totalItems(v: number) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n get totalPages(): number {\n return this._totalPages;\n }\n\n set totalPages(v: number) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n\n set page(value: number) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n\n get page(): number {\n return this._page;\n }\n\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n classMap: string;\n pages: any[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\n\n constructor(private renderer: Renderer2,\n private elementRef: ElementRef,\n paginationConfig: PaginationConfig,\n private changeDetection: ChangeDetectorRef) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(\n Object.assign({}, paginationConfig.main, paginationConfig.pager)\n );\n }\n }\n\n configureOptions(config: any): void {\n this.config = Object.assign({}, config);\n }\n\n ngOnInit(): void {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n\n writeValue(value: number): void {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getText(key: string): string {\n return (this as any)[`${key}Text`] || this.config[`${key}Text`];\n }\n\n noPrevious(): boolean {\n return this.page === 1;\n }\n\n noNext(): boolean {\n return this.page === this.totalPages;\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n selectPage(page: number, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n if (!this.disabled) {\n if (event && event.target) {\n const target: any = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n\n // Create page object used in template\n protected makePage(num: number,\n text: string,\n active: boolean): { number: number; text: string; active: boolean } {\n return {text, number: num, active};\n }\n\n protected getPages(currentPage: number, totalPages: number): any[] {\n const pages: any[] = [];\n\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized =\n typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n // recompute if maxSize\n if (isMaxSized) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n\n // base class\n protected calculateTotalPages(): number {\n const totalPages =\n this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n\n return Math.max(totalPages || 0, 1);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n forwardRef, ChangeDetectorRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PaginationConfig } from './pagination.config';\n\nexport interface PageChangedEvent {\n itemsPerPage: number;\n page: number;\n}\n\nexport const PAGINATION_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => PaginationComponent),\n multi: true\n};\n\n@Component({\n selector: 'pagination',\n template: \"<ul class=\\\"pagination\\\" [ngClass]=\\\"classMap\\\"> <li class=\\\"pagination-first page-item\\\" *ngIf=\\\"boundaryLinks\\\" [class.disabled]=\\\"noPrevious()||disabled\\\"> <a class=\\\"page-link\\\" href (click)=\\\"selectPage(1, $event)\\\" [innerHTML]=\\\"getText('first')\\\"></a> </li> <li class=\\\"pagination-prev page-item\\\" *ngIf=\\\"directionLinks\\\" [class.disabled]=\\\"noPrevious()||disabled\\\"> <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page - 1, $event)\\\" [innerHTML]=\\\"getText('previous')\\\"></a> </li> <li *ngFor=\\\"let pg of pages\\\" [class.active]=\\\"pg.active\\\" [class.disabled]=\\\"disabled&&!pg.active\\\" class=\\\"pagination-page page-item\\\"> <a class=\\\"page-link\\\" href (click)=\\\"selectPage(pg.number, $event)\\\" [innerHTML]=\\\"pg.text\\\"></a> </li> <li class=\\\"pagination-next page-item\\\" *ngIf=\\\"directionLinks\\\" [class.disabled]=\\\"noNext()||disabled\\\"> <a class=\\\"page-link\\\" href (click)=\\\"selectPage(page + 1, $event)\\\" [innerHTML]=\\\"getText('next')\\\"></a></li> <li class=\\\"pagination-last page-item\\\" *ngIf=\\\"boundaryLinks\\\" [class.disabled]=\\\"noNext()||disabled\\\"> <a class=\\\"page-link\\\" href (click)=\\\"selectPage(totalPages, $event)\\\" [innerHTML]=\\\"getText('last')\\\"></a></li> </ul> \",\n providers: [PAGINATION_CONTROL_VALUE_ACCESSOR]\n})\nexport class PaginationComponent implements ControlValueAccessor, OnInit {\n config: any;\n /** if `true` aligns each link to the sides of pager */\n @Input() align: boolean;\n /** limit number for page links in pager */\n @Input() maxSize: number;\n /** if false first and last buttons will be hidden */\n @Input() boundaryLinks: boolean;\n /** if false previous and next buttons will be hidden */\n @Input() directionLinks: boolean;\n // labels\n /** first button text */\n @Input() firstText: string;\n /** previous button text */\n @Input() previousText: string;\n /** next button text */\n @Input() nextText: string;\n /** last button text */\n @Input() lastText: string;\n /** if true current page will in the middle of pages list */\n @Input() rotate: boolean;\n // css\n /** add class to <code><li\\></code>*/\n @Input() pageBtnClass: string;\n\n /** if true pagination component will be disabled */\n @Input() disabled: boolean;\n\n /** fired when total pages count changes, $event:number equals to total pages count */\n @Output() numPages: EventEmitter<number> = new EventEmitter<number>();\n /** fired when page was changed, $event:{page, itemsPerPage} equals to object\n * with current page index and number of items per page\n */\n @Output()\n pageChanged = new EventEmitter<PageChangedEvent>();\n\n /** maximum number of items per page. If value less than 1 will display all items on one page */\n @Input()\n get itemsPerPage(): number {\n return this._itemsPerPage;\n }\n\n set itemsPerPage(v: number) {\n this._itemsPerPage = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n /** total number of items in all pages */\n @Input()\n get totalItems(): number {\n return this._totalItems;\n }\n\n set totalItems(v: number) {\n this._totalItems = v;\n this.totalPages = this.calculateTotalPages();\n }\n\n get totalPages(): number {\n return this._totalPages;\n }\n\n set totalPages(v: number) {\n this._totalPages = v;\n this.numPages.emit(v);\n if (this.inited) {\n this.selectPage(this.page);\n }\n }\n\n set page(value: number) {\n const _previous = this._page;\n this._page = value > this.totalPages ? this.totalPages : value || 1;\n this.changeDetection.markForCheck();\n\n if (_previous === this._page || typeof _previous === 'undefined') {\n return;\n }\n\n this.pageChanged.emit({\n page: this._page,\n itemsPerPage: this.itemsPerPage\n });\n }\n\n get page(): number {\n return this._page;\n }\n\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n classMap: string;\n pages: any[];\n\n protected _itemsPerPage: number;\n protected _totalItems: number;\n protected _totalPages: number;\n protected inited = false;\n protected _page = 1;\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n paginationConfig: PaginationConfig,\n private changeDetection: ChangeDetectorRef\n ) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n if (!this.config) {\n this.configureOptions(paginationConfig.main);\n }\n }\n\n configureOptions(config: any): void {\n this.config = Object.assign({}, config);\n }\n\n ngOnInit(): void {\n if (typeof window !== 'undefined') {\n this.classMap = this.elementRef.nativeElement.getAttribute('class') || '';\n }\n // watch for maxSize\n this.maxSize =\n typeof this.maxSize !== 'undefined' ? this.maxSize : this.config.maxSize;\n this.rotate =\n typeof this.rotate !== 'undefined' ? this.rotate : this.config.rotate;\n this.boundaryLinks =\n typeof this.boundaryLinks !== 'undefined'\n ? this.boundaryLinks\n : this.config.boundaryLinks;\n this.directionLinks =\n typeof this.directionLinks !== 'undefined'\n ? this.directionLinks\n : this.config.directionLinks;\n this.pageBtnClass =\n typeof this.pageBtnClass !== 'undefined'\n ? this.pageBtnClass\n : this.config.pageBtnClass;\n\n // base class\n this.itemsPerPage =\n typeof this.itemsPerPage !== 'undefined'\n ? this.itemsPerPage\n : this.config.itemsPerPage;\n this.totalPages = this.calculateTotalPages();\n // this class\n this.pages = this.getPages(this.page, this.totalPages);\n this.inited = true;\n }\n\n writeValue(value: number): void {\n this.page = value;\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getText(key: string): string {\n return (this as any)[`${key}Text`] || this.config[`${key}Text`];\n }\n\n noPrevious(): boolean {\n return this.page === 1;\n }\n\n noNext(): boolean {\n return this.page === this.totalPages;\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n selectPage(page: number, event?: Event): void {\n if (event) {\n event.preventDefault();\n }\n\n if (!this.disabled) {\n if (event && event.target) {\n const target: any = event.target;\n target.blur();\n }\n this.writeValue(page);\n this.onChange(this.page);\n }\n }\n\n // Create page object used in template\n protected makePage(\n num: number,\n text: string,\n active: boolean\n ): { number: number; text: string; active: boolean } {\n return { text, number: num, active };\n }\n\n protected getPages(currentPage: number, totalPages: number): any[] {\n const pages: any[] = [];\n\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized =\n typeof this.maxSize !== 'undefined' && this.maxSize < totalPages;\n\n // recompute if maxSize\n if (isMaxSized) {\n if (this.rotate) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxSize / 2), 1);\n endPage = startPage + this.maxSize - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxSize + 1;\n }\n } else {\n // Visible pages are paginated with maxSize\n startPage =\n (Math.ceil(currentPage / this.maxSize) - 1) * this.maxSize + 1;\n\n // Adjust last page if limit is exceeded\n endPage = Math.min(startPage + this.maxSize - 1, totalPages);\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n\n // Add links to move between page sets\n if (isMaxSized && !this.rotate) {\n if (startPage > 1) {\n const previousPageSet = this.makePage(startPage - 1, '...', false);\n pages.unshift(previousPageSet);\n }\n\n if (endPage < totalPages) {\n const nextPageSet = this.makePage(endPage + 1, '...', false);\n pages.push(nextPageSet);\n }\n }\n\n return pages;\n }\n\n // base class\n protected calculateTotalPages(): number {\n const totalPages =\n this.itemsPerPage < 1\n ? 1\n : Math.ceil(this.totalItems / this.itemsPerPage);\n\n return Math.max(totalPages || 0, 1);\n }\n}\n","// todo: split\nimport { Injectable } from '@angular/core';\n\n/** Provides default values for Pagination and pager components */\n@Injectable()\nexport class PaginationConfig {\n main: any = {\n maxSize: void 0,\n itemsPerPage: 10,\n boundaryLinks: false,\n directionLinks: true,\n firstText: 'First',\n previousText: 'Previous',\n nextText: 'Next',\n lastText: 'Last',\n pageBtnClass: '',\n rotate: true\n };\n pager: any = {\n itemsPerPage: 15,\n previousText: '« Previous',\n nextText: 'Next »',\n pageBtnClass: '',\n align: true\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PaginationConfig } from './pagination.config';\n\nimport { PagerComponent } from './pager.component';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [PagerComponent, PaginationComponent],\n exports: [PagerComponent, PaginationComponent]\n})\nexport class PaginationModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: PaginationModule, providers: [PaginationConfig] };\n }\n}\n","export { PagerComponent } from './pager.component';\nexport { PaginationComponent, PageChangedEvent } from './pagination.component';\nexport { PaginationModule } from './pagination.module';\nexport { PaginationConfig } from './pagination.config';\n","import {\n Component,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit\n} from '@angular/core';\n\nimport { ProgressbarComponent } from './progressbar.component';\nimport { isBs3 } from '../utils/theme-provider';\n\n// todo: number pipe\n// todo: use query from progress?\n@Component({\n selector: 'bar',\n template: \"<ng-content></ng-content> \",\n host: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n '[class]': '\"progress-bar \" + (type ? \"progress-bar-\" + type + \" bg-\" + type : \"\")',\n '[class.progress-bar-animated]': '!isBs3 && animate',\n '[class.progress-bar-striped]': 'striped',\n '[class.active]': 'isBs3 && animate',\n '[attr.aria-valuenow]': 'value',\n '[attr.aria-valuetext]': 'percent ? percent.toFixed(0) + \"%\" : \"\"',\n '[attr.aria-valuemax]': 'max',\n '[style.height.%]': '\"100\"'\n }\n})\nexport class BarComponent implements OnInit, OnDestroy {\n max: number;\n\n /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */\n @Input() type: string;\n\n /** current value of progress bar */\n @Input()\n get value(): number {\n return this._value;\n }\n\n set value(v: number) {\n if (!v && v !== 0) {\n return;\n }\n this._value = v;\n this.recalculatePercentage();\n }\n\n @HostBinding('style.width.%')\n get setBarWidth() {\n this.recalculatePercentage();\n\n return this.percent;\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n striped: boolean;\n animate: boolean;\n percent = 0;\n progress: ProgressbarComponent;\n\n protected _value: number;\n\n constructor(@Host() progress: ProgressbarComponent) {\n this.progress = progress;\n }\n\n ngOnInit(): void {\n this.progress.addBar(this);\n }\n\n ngOnDestroy(): void {\n this.progress.removeBar(this);\n }\n\n recalculatePercentage(): void {\n this.percent = +(this.value / this.progress.max * 100).toFixed(2);\n\n const totalPercentage = this.progress.bars\n .reduce(function (total: number, bar: BarComponent): number {\n return total + bar.percent;\n }, 0);\n\n if (totalPercentage > 100) {\n this.percent -= totalPercentage - 100;\n }\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { ProgressbarConfig } from './progressbar.config';\nimport { isBs3 } from '../utils/index';\nimport { BarComponent } from './bar.component';\n\n@Component({\n selector: 'progressbar',\n template: \"<bar [type]=\\\"type\\\" [value]=\\\"_value\\\" *ngIf=\\\"!isStacked\\\"> <ng-content></ng-content> </bar> <ng-template [ngIf]=\\\"isStacked\\\"> <bar *ngFor=\\\"let item of _value\\\" [type]=\\\"item.type\\\" [value]=\\\"item.value\\\">{{ item.label }}</bar> </ng-template> \",\n styles: [\n `\n :host {\n width: 100%;\n display: flex;\n }\n `\n ]\n})\nexport class ProgressbarComponent {\n /** if `true` changing value of progress bar will be animated*/\n @Input() animate: boolean;\n /** If `true`, striped classes are applied */\n @Input() striped: boolean;\n /** provide one of the four supported contextual classes: `success`, `info`, `warning`, `danger` */\n @Input() type: string;\n /** current value of progress bar. Could be a number or array of objects\n * like {\"value\":15,\"type\":\"info\",\"label\":\"15 %\"}\n */\n @Input()\n set value(value: number | any[]) {\n this.isStacked = Array.isArray(value);\n this._value = value;\n }\n isStacked = false;\n _value: number | any[];\n get isBs3(): boolean {\n return isBs3();\n }\n\n /** maximum total value of progress element */\n @HostBinding('attr.max')\n @Input()\n get max(): number {\n return this._max;\n }\n\n set max(v: number) {\n this._max = v;\n this.bars.forEach((bar: BarComponent) => {\n bar.recalculatePercentage();\n });\n }\n\n @HostBinding('class.progress') addClass = true;\n\n bars: any[] = [];\n\n protected _max = 100;\n\n constructor(config: ProgressbarConfig) {\n Object.assign(this, config);\n }\n addBar(bar: BarComponent): void {\n bar.animate = this.animate;\n bar.striped = this.striped;\n\n this.bars.push(bar);\n }\n\n removeBar(bar: BarComponent): void {\n this.bars.splice(this.bars.indexOf(bar), 1);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ProgressbarConfig {\n /** if `true` changing value of progress bar will be animated */\n animate: Boolean = false;\n /** maximum total value of progress element */\n max = 100;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { BarComponent } from './bar.component';\nimport { ProgressbarComponent } from './progressbar.component';\nimport { ProgressbarConfig } from './progressbar.config';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [BarComponent, ProgressbarComponent],\n exports: [BarComponent, ProgressbarComponent]\n})\nexport class ProgressbarModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: ProgressbarModule, providers: [ProgressbarConfig] };\n }\n}\n","export { BarComponent } from './bar.component';\nexport { ProgressbarComponent } from './progressbar.component';\nexport { ProgressbarModule } from './progressbar.module';\nexport { ProgressbarConfig } from './progressbar.config';\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n forwardRef, TemplateRef, ChangeDetectionStrategy, ChangeDetectorRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RATING_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => RatingComponent),\n multi: true\n};\n\n@Component({\n selector: 'rating',\n template: \"<span (mouseleave)=\\\"reset()\\\" (keydown)=\\\"onKeydown($event)\\\" tabindex=\\\"0\\\" role=\\\"slider\\\" aria-valuemin=\\\"0\\\" [attr.aria-valuemax]=\\\"range.length\\\" [attr.aria-valuenow]=\\\"value\\\"> <ng-template #star let-value=\\\"value\\\" let-index=\\\"index\\\">{{index < value ? '★' : '☆'}}</ng-template> <ng-template ngFor let-r [ngForOf]=\\\"range\\\" let-index=\\\"index\\\"> <span class=\\\"sr-only\\\">({{ index < value ? '*' : ' ' }})</span> <span class=\\\"bs-rating-star\\\" (mouseenter)=\\\"enter(index + 1)\\\" (click)=\\\"rate(index + 1)\\\" [title]=\\\"r.title\\\" [style.cursor]=\\\"readonly ? 'default' : 'pointer'\\\" [class.active]=\\\"index < value\\\"> <ng-template [ngTemplateOutlet]=\\\"customTemplate || star\\\" [ngTemplateOutletContext]=\\\"{index: index, value: value}\\\"> </ng-template> </span> </ng-template> </span> \",\n providers: [RATING_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RatingComponent implements ControlValueAccessor, OnInit {\n /** number of icons */\n @Input() max = 5;\n /** if true will not react on any user events */\n @Input() readonly: boolean;\n /** array of icons titles, default: ([\"one\", \"two\", \"three\", \"four\", \"five\"]) */\n @Input() titles: string[];\n /** custom template for icons */\n @Input() customTemplate: TemplateRef<any>;\n /** fired when icon selected, $event:number equals to selected rating */\n @Output() onHover: EventEmitter<number> = new EventEmitter();\n /** fired when icon selected, $event:number equals to previous rating value */\n @Output() onLeave: EventEmitter<number> = new EventEmitter();\n\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n range: any[];\n value: number;\n protected preValue: number;\n\n constructor(private changeDetection: ChangeDetectorRef) {}\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: any): void {\n if ([37, 38, 39, 40].indexOf(event.which) === -1) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const sign = event.which === 38 || event.which === 39 ? 1 : -1;\n this.rate(this.value + sign);\n }\n\n ngOnInit(): void {\n this.max = typeof this.max !== 'undefined' ? this.max : 5;\n this.titles =\n typeof this.titles !== 'undefined' && this.titles.length > 0\n ? this.titles\n : ['one', 'two', 'three', 'four', 'five'];\n this.range = this.buildTemplateObjects(this.max);\n }\n\n // model -> view\n writeValue(value: number): void {\n if (value % 1 !== value) {\n this.value = Math.round(value);\n this.preValue = value;\n this.changeDetection.markForCheck();\n\n return;\n }\n\n this.preValue = value;\n this.value = value;\n this.changeDetection.markForCheck();\n }\n\n enter(value: number): void {\n if (!this.readonly) {\n this.value = value;\n this.changeDetection.markForCheck();\n this.onHover.emit(value);\n }\n }\n\n reset(): void {\n this.value = this.preValue;\n this.changeDetection.markForCheck();\n this.onLeave.emit(this.value);\n }\n\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n rate(value: number): void {\n if (!this.readonly && value >= 0 && value <= this.range.length) {\n this.writeValue(value);\n this.onChange(value);\n }\n }\n\n protected buildTemplateObjects(max: number): any[] {\n const result: any[] = [];\n for (let i = 0; i < max; i++) {\n result.push({\n index: i,\n title: this.titles[i] || i + 1\n });\n }\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { RatingComponent } from './rating.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [RatingComponent],\n exports: [RatingComponent]\n})\nexport class RatingModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: RatingModule,\n providers: []\n };\n }\n}\n","export { RatingComponent } from './rating.component';\nexport { RatingModule } from './rating.module';\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n forwardRef,\n TemplateRef\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\nimport { DraggableItem } from './draggable-item';\nimport { DraggableItemService } from './draggable-item.service';\n\n/* tslint:disable */\n@Component({\n selector: 'bs-sortable',\n exportAs: 'bs-sortable',\n template: `\n<div\n [ngClass]=\"wrapperClass\"\n [ngStyle]=\"wrapperStyle\"\n [ngStyle]=\"wrapperStyle\"\n (dragover)=\"cancelEvent($event)\"\n (dragenter)=\"cancelEvent($event)\"\n (drop)=\"resetActiveItem($event)\"\n (mouseleave)=\"resetActiveItem($event)\">\n <div\n *ngIf=\"showPlaceholder\"\n [ngClass]=\"placeholderClass\"\n [ngStyle]=\"placeholderStyle\"\n (dragover)=\"onItemDragover($event, 0)\"\n (dragenter)=\"cancelEvent($event)\"\n >{{placeholderItem}}</div>\n <div\n *ngFor=\"let item of items; let i=index;\"\n [ngClass]=\"[ itemClass, i === activeItem ? itemActiveClass : '' ]\"\n [ngStyle]=\"getItemStyle(i === activeItem)\"\n draggable=\"true\"\n (dragstart)=\"onItemDragstart($event, item, i)\"\n (dragend)=\"resetActiveItem($event)\"\n (dragover)=\"onItemDragover($event, i)\"\n (dragenter)=\"cancelEvent($event)\"\n aria-dropeffect=\"move\"\n [attr.aria-grabbed]=\"i === activeItem\"\n ><ng-template [ngTemplateOutlet]=\"itemTemplate || defItemTemplate\"\n [ngTemplateOutletContext]=\"{item:item, index: i}\"></ng-template></div>\n</div>\n\n<ng-template #defItemTemplate let-item=\"item\">{{item.value}}</ng-template> \n`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SortableComponent),\n multi: true\n }\n ]\n})\n/* tslint:enable */\nexport class SortableComponent implements ControlValueAccessor {\n private static globalZoneIndex = 0;\n /** field name if input array consists of objects */\n @Input() fieldName: string;\n\n /** class name for items wrapper */\n @Input() wrapperClass = '';\n\n /** style object for items wrapper */\n @Input() wrapperStyle: { [key: string]: string } = {};\n\n /** class name for item */\n @Input() itemClass = '';\n\n /** style object for item */\n @Input() itemStyle: { [key: string]: string } = {};\n\n /** class name for active item */\n @Input() itemActiveClass = '';\n\n /** style object for active item */\n @Input() itemActiveStyle: { [key: string]: string } = {};\n\n /** class name for placeholder */\n @Input() placeholderClass = '';\n\n /** style object for placeholder */\n @Input() placeholderStyle: { [key: string]: string } = {};\n\n /** placeholder item which will be shown if collection is empty */\n @Input() placeholderItem = '';\n\n /** used to specify a custom item template. Template variables: item and index; */\n @Input() itemTemplate: TemplateRef<any>;\n\n /** fired on array change (reordering, insert, remove), same as <code>ngModelChange</code>.\n * Returns new items collection as a payload.\n */\n @Output() onChange: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n showPlaceholder = false;\n activeItem = -1;\n\n get items(): SortableItem[] {\n return this._items;\n }\n\n set items(value: SortableItem[]) {\n this._items = value;\n const out = this.items.map((x: SortableItem) => x.initData);\n this.onChanged(out);\n this.onChange.emit(out);\n }\n\n onTouched: any = Function.prototype;\n onChanged: any = Function.prototype;\n\n private transfer: DraggableItemService;\n private currentZoneIndex: number;\n private _items: SortableItem[];\n\n constructor(transfer: DraggableItemService) {\n this.transfer = transfer;\n this.currentZoneIndex = SortableComponent.globalZoneIndex++;\n this.transfer\n .onCaptureItem()\n .subscribe((item: DraggableItem) => this.onDrop(item));\n }\n\n onItemDragstart(\n event: DragEvent,\n item: SortableItem,\n i: number\n ): void {\n this.initDragstartEvent(event);\n this.onTouched();\n this.transfer.dragStart({\n event,\n item,\n i,\n initialIndex: i,\n lastZoneIndex: this.currentZoneIndex,\n overZoneIndex: this.currentZoneIndex\n });\n }\n\n onItemDragover(event: DragEvent, i: number): void {\n if (!this.transfer.getItem()) {\n return;\n }\n event.preventDefault();\n const dragItem = this.transfer.captureItem(\n this.currentZoneIndex,\n this.items.length\n );\n let newArray: any[] = [];\n if (!this.items.length) {\n newArray = [dragItem.item];\n } else if (dragItem.i > i) {\n newArray = [\n ...this.items.slice(0, i),\n dragItem.item,\n ...this.items.slice(i, dragItem.i),\n ...this.items.slice(dragItem.i + 1)\n ];\n } else {\n // this.draggedItem.i < i\n newArray = [\n ...this.items.slice(0, dragItem.i),\n ...this.items.slice(dragItem.i + 1, i + 1),\n dragItem.item,\n ...this.items.slice(i + 1)\n ];\n }\n this.items = newArray;\n dragItem.i = i;\n this.activeItem = i;\n this.updatePlaceholderState();\n }\n\n cancelEvent(event: DragEvent): void {\n if (!this.transfer.getItem() || !event) {\n return;\n }\n event.preventDefault();\n }\n\n onDrop(item: DraggableItem): void {\n if (\n item &&\n item.overZoneIndex !== this.currentZoneIndex &&\n item.lastZoneIndex === this.currentZoneIndex\n ) {\n this.items = this.items.filter(\n (x: SortableItem, i: number) => i !== item.i\n );\n this.updatePlaceholderState();\n }\n this.resetActiveItem(undefined);\n }\n\n resetActiveItem(event: DragEvent): void {\n this.cancelEvent(event);\n this.activeItem = -1;\n }\n\n registerOnChange(callback: (_: any) => void): void {\n this.onChanged = callback;\n }\n\n registerOnTouched(callback: () => void): void {\n this.onTouched = callback;\n }\n\n writeValue(value: any[]): void {\n if (value) {\n this.items = value.map((x: any, i: number) => ({\n id: i,\n initData: x,\n value: this.fieldName ? x[this.fieldName] : x\n }));\n } else {\n this.items = [];\n }\n this.updatePlaceholderState();\n }\n\n updatePlaceholderState(): void {\n this.showPlaceholder = !this._items.length;\n }\n\n getItemStyle(isActive: boolean): {} {\n return isActive\n ? Object.assign({}, this.itemStyle, this.itemActiveStyle)\n : this.itemStyle;\n }\n\n // tslint:disable-next-line\n private initDragstartEvent(event: DragEvent): void {\n // it is necessary for mozilla\n // data type should be 'Text' instead of 'text/plain' to keep compatibility\n // with IE\n event.dataTransfer.setData('Text', 'placeholder');\n }\n}\n\nexport declare interface SortableItem {\n id: number;\n value: string;\n initData: any;\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DraggableItem } from './draggable-item';\n\n@Injectable()\nexport class DraggableItemService {\n private draggableItem: DraggableItem;\n\n private onCapture: Subject<DraggableItem> = new Subject<DraggableItem>();\n\n dragStart(item: DraggableItem): void {\n this.draggableItem = item;\n }\n\n getItem(): DraggableItem {\n return this.draggableItem;\n }\n\n captureItem(overZoneIndex: number, newIndex: number): DraggableItem {\n if (this.draggableItem.overZoneIndex !== overZoneIndex) {\n this.draggableItem.lastZoneIndex = this.draggableItem.overZoneIndex;\n this.draggableItem.overZoneIndex = overZoneIndex;\n this.onCapture.next(this.draggableItem);\n this.draggableItem = Object.assign({}, this.draggableItem, {\n overZoneIndex,\n i: newIndex\n });\n }\n\n return this.draggableItem;\n }\n\n onCaptureItem(): Subject<DraggableItem> {\n return this.onCapture;\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SortableComponent } from './sortable.component';\nimport { DraggableItemService } from './draggable-item.service';\n\n@NgModule({\n declarations: [SortableComponent],\n imports: [CommonModule],\n exports: [SortableComponent]\n})\nexport class SortableModule {\n static forRoot(): ModuleWithProviders {\n return { ngModule: SortableModule, providers: [DraggableItemService] };\n }\n}\n","export { SortableModule } from './sortable.module';\nexport { SortableComponent, SortableItem } from './sortable.component';\nexport { DraggableItemService } from './draggable-item.service';\nexport { DraggableItem } from './draggable-item';\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngTransclude]'\n})\nexport class NgTranscludeDirective {\n viewRef: ViewContainerRef;\n\n protected _viewRef: ViewContainerRef;\n protected _ngTransclude: TemplateRef<any>;\n\n @Input()\n set ngTransclude(templateRef: TemplateRef<any>) {\n this._ngTransclude = templateRef;\n if (templateRef) {\n this.viewRef.createEmbeddedView(templateRef);\n }\n }\n\n get ngTransclude(): TemplateRef<any> {\n return this._ngTransclude;\n }\n\n constructor(viewRef: ViewContainerRef) {\n this.viewRef = viewRef;\n }\n}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef,\n OnInit,\n OnDestroy,\n ElementRef,\n Renderer2\n} from '@angular/core';\nimport { TabsetComponent } from './tabset.component';\n\n@Directive({ selector: 'tab, [tab]' })\nexport class TabDirective implements OnInit, OnDestroy {\n /** tab header text */\n @Input() heading: string;\n /** tab id. The same id with suffix '-link' will be added to the corresponding <li> element */\n @HostBinding('attr.id')\n @Input() id: string;\n /** if true tab can not be activated */\n @Input() disabled: boolean;\n /** if true tab can be removable, additional button will appear */\n @Input() removable: boolean;\n /** if set, will be added to the tab's class attribute. Multiple classes are supported. */\n @Input()\n get customClass(): string {\n return this._customClass;\n }\n\n set customClass(customClass: string) {\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.removeClass(this.elementRef.nativeElement, cssClass);\n });\n }\n\n this._customClass = customClass ? customClass.trim() : null;\n\n if (this.customClass) {\n this.customClass.split(' ').forEach((cssClass: string) => {\n this.renderer.addClass(this.elementRef.nativeElement, cssClass);\n });\n }\n }\n\n /** tab active state toggle */\n @HostBinding('class.active')\n @Input()\n get active(): boolean {\n return this._active;\n }\n\n set active(active: boolean) {\n if (this._active === active) {\n return;\n }\n if ((this.disabled && active) || !active) {\n if (this._active && !active) {\n this.deselect.emit(this);\n this._active = active;\n }\n\n return;\n }\n\n this._active = active;\n this.select.emit(this);\n this.tabset.tabs.forEach((tab: TabDirective) => {\n if (tab !== this) {\n tab.active = false;\n }\n });\n }\n\n /** fired when tab became active, $event:Tab equals to selected instance of Tab component */\n @Output() select: EventEmitter<TabDirective> = new EventEmitter();\n /** fired when tab became inactive, $event:Tab equals to deselected instance of Tab component */\n @Output() deselect: EventEmitter<TabDirective> = new EventEmitter();\n /** fired before tab will be removed, $event:Tab equals to instance of removed tab */\n @Output() removed: EventEmitter<TabDirective> = new EventEmitter();\n\n @HostBinding('class.tab-pane') addClass = true;\n\n headingRef: TemplateRef<any>;\n tabset: TabsetComponent;\n protected _active: boolean;\n protected _customClass: string;\n\n constructor(\n tabset: TabsetComponent,\n public elementRef: ElementRef,\n public renderer: Renderer2\n ) {\n this.tabset = tabset;\n this.tabset.addTab(this);\n }\n\n ngOnInit(): void {\n this.removable = this.removable;\n }\n\n ngOnDestroy(): void {\n this.tabset.removeTab(this, { reselect: false, emit: false });\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\n\n/** Should be used to mark <ng-template> element as a template for tab heading */\n@Directive({ selector: '[tabHeading]' })\nexport class TabHeadingDirective {\n templateRef: TemplateRef<any>;\n\n constructor(templateRef: TemplateRef<any>, tab: TabDirective) {\n tab.headingRef = templateRef;\n }\n}\n","import { Component, HostBinding, Input, OnDestroy, Renderer2 } from '@angular/core';\n\nimport { TabDirective } from './tab.directive';\nimport { TabsetConfig } from './tabset.config';\n// todo: add active event to tab\n// todo: fix? mixing static and dynamic tabs position tabs in order of creation\n@Component({\n selector: 'tabset',\n template: \"<ul class=\\\"nav\\\" [ngClass]=\\\"classMap\\\" (click)=\\\"$event.preventDefault()\\\"> <li *ngFor=\\\"let tabz of tabs\\\" [ngClass]=\\\"['nav-item', tabz.customClass || '']\\\" [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\"> <a href=\\\"javascript:void(0);\\\" class=\\\"nav-link\\\" [attr.id]=\\\"tabz.id ? tabz.id + '-link' : ''\\\" [class.active]=\\\"tabz.active\\\" [class.disabled]=\\\"tabz.disabled\\\" (click)=\\\"tabz.active = true\\\"> <span [ngTransclude]=\\\"tabz.headingRef\\\">{{ tabz.heading }}</span> <span *ngIf=\\\"tabz.removable\\\" (click)=\\\"$event.preventDefault(); removeTab(tabz);\\\" class=\\\"bs-remove-tab\\\"> ❌</span> </a> </li> </ul> <div class=\\\"tab-content\\\"> <ng-content></ng-content> </div> \"\n})\nexport class TabsetComponent implements OnDestroy {\n /** if true tabs will be placed vertically */\n @Input()\n get vertical(): boolean {\n return this._vertical;\n }\n set vertical(value: boolean) {\n this._vertical = value;\n this.setClassMap();\n }\n\n /** if true tabs fill the container and have a consistent width */\n @Input()\n get justified(): boolean {\n return this._justified;\n }\n set justified(value: boolean) {\n this._justified = value;\n this.setClassMap();\n }\n\n /** navigation context class: 'tabs' or 'pills' */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value;\n this.setClassMap();\n }\n\n @HostBinding('class.tab-container') clazz = true;\n\n tabs: TabDirective[] = [];\n classMap: any = {};\n\n protected isDestroyed: boolean;\n protected _vertical: boolean;\n protected _justified: boolean;\n protected _type: string;\n\n constructor(config: TabsetConfig, private renderer: Renderer2) {\n Object.assign(this, config);\n }\n\n ngOnDestroy(): void {\n this.isDestroyed = true;\n }\n\n addTab(tab: TabDirective): void {\n this.tabs.push(tab);\n tab.active = this.tabs.length === 1 && typeof tab.active === 'undefined';\n }\n\n removeTab(\n tab: TabDirective,\n options = { reselect: true, emit: true }\n ): void {\n const index = this.tabs.indexOf(tab);\n if (index === -1 || this.isDestroyed) {\n return;\n }\n // Select a new tab if the tab to be removed is selected and not destroyed\n if (options.reselect && tab.active && this.hasAvailableTabs(index)) {\n const newActiveIndex = this.getClosestTabIndex(index);\n this.tabs[newActiveIndex].active = true;\n }\n if (options.emit) {\n tab.removed.emit(tab);\n }\n this.tabs.splice(index, 1);\n if (tab.elementRef.nativeElement.parentNode) {\n this.renderer.removeChild(\n tab.elementRef.nativeElement.parentNode,\n tab.elementRef.nativeElement\n );\n }\n }\n\n protected getClosestTabIndex(index: number): number {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return -1;\n }\n\n for (let step = 1; step <= tabsLength; step += 1) {\n const prevIndex = index - step;\n const nextIndex = index + step;\n if (this.tabs[prevIndex] && !this.tabs[prevIndex].disabled) {\n return prevIndex;\n }\n if (this.tabs[nextIndex] && !this.tabs[nextIndex].disabled) {\n return nextIndex;\n }\n }\n\n return -1;\n }\n\n protected hasAvailableTabs(index: number): boolean {\n const tabsLength = this.tabs.length;\n if (!tabsLength) {\n return false;\n }\n\n for (let i = 0; i < tabsLength; i += 1) {\n if (!this.tabs[i].disabled && i !== index) {\n return true;\n }\n }\n\n return false;\n }\n\n protected setClassMap(): void {\n this.classMap = {\n 'nav-stacked': this.vertical,\n 'flex-column': this.vertical,\n 'nav-justified': this.justified,\n [`nav-${this.type}`]: true\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class TabsetConfig {\n /** provides default navigation context class: 'tabs' or 'pills' */\n type = 'tabs';\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { NgTranscludeDirective } from './ng-transclude.directive';\nimport { TabHeadingDirective } from './tab-heading.directive';\nimport { TabDirective } from './tab.directive';\nimport { TabsetComponent } from './tabset.component';\nimport { TabsetConfig } from './tabset.config';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [\n NgTranscludeDirective,\n TabDirective,\n TabsetComponent,\n TabHeadingDirective\n ],\n exports: [\n TabDirective,\n TabsetComponent,\n TabHeadingDirective,\n NgTranscludeDirective\n ]\n})\nexport class TabsModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TabsModule,\n providers: [TabsetConfig]\n };\n }\n}\n","export { NgTranscludeDirective } from './ng-transclude.directive';\nexport { TabDirective } from './tab.directive';\nexport { TabHeadingDirective } from './tab-heading.directive';\nexport { TabsetComponent } from './tabset.component';\nexport { TabsetConfig } from './tabset.config';\nexport { TabsModule } from './tabs.module';\n","import { Time, TimepickerComponentState } from './timepicker.models';\n\nconst dex = 10;\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimepickerComponentState, newDate: Date): boolean {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n\n if (controls.max && newDate > controls.max) {\n return false;\n }\n\n return true;\n}\n\nexport function toNumber(value: string | number): number {\n if (typeof value === 'number') {\n return value;\n }\n\n return parseInt(value, dex);\n}\n\nexport function isNumber(value: any): value is number {\n return !isNaN(toNumber(value));\n}\n\nexport function parseHours(\n value: string | number,\n isPM = false\n): number {\n const hour = toNumber(value);\n if (\n isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)\n ) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = toNumber(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = toNumber(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date): Date {\n if (typeof value === 'string') {\n return new Date(value);\n }\n\n return value;\n}\n\nexport function changeTime(value: Date, diff: Time): Date {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + toNumber(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + toNumber(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds);\n}\n\nexport function setTime(value: Date, opts: Time): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds);\n}\n\nexport function createDate(\n value: Date,\n hours: number,\n minutes: number,\n seconds: number\n): Date {\n return new Date(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n hours,\n minutes,\n seconds,\n value.getMilliseconds()\n );\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date): boolean {\n const newDate = changeTime(new Date(), diff);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(\n hours: string,\n minutes = '0',\n seconds = '0',\n isPM: boolean\n): boolean {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n","import { changeTime } from './timepicker.utils';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nexport function canChangeValue(\n state: TimepickerComponentState,\n event?: TimeChangeEvent\n): boolean {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !state.arrowkeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(\n state: TimepickerComponentState\n): TimepickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timepickerControls(\n value: Date,\n state: TimepickerComponentState\n): TimepickerControls {\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res: TimepickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds\n ? max > _newMinutes\n : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds\n ? min < _newMinutes\n : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/** Provides default configuration values for timepicker */\n@Injectable()\nexport class TimepickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true up/down arrowkeys inside hours and minutes inputs will change time */\n arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timepicker */\n showSeconds = false;\n /** show minutes in timepicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n}\n","import { Injectable } from '@angular/core';\nimport { Action } from '../../mini-ngrx/index';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n Time\n} from '../timepicker.models';\n\n@Injectable()\nexport class TimepickerActions {\n static readonly WRITE_VALUE = '[timepicker] write value from ng model';\n static readonly CHANGE_HOURS = '[timepicker] change hours';\n static readonly CHANGE_MINUTES = '[timepicker] change minutes';\n static readonly CHANGE_SECONDS = '[timepicker] change seconds';\n static readonly SET_TIME_UNIT = '[timepicker] set time unit';\n static readonly UPDATE_CONTROLS = '[timepicker] update controls';\n\n writeValue(value: Date | string) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n\n changeHours(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n\n changeMinutes(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n\n changeSeconds(event: TimeChangeEvent): Action {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n\n setTime(value: Time): Action {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n\n updateControls(value: TimepickerComponentState): Action {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n}\n","import { Action } from '../../mini-ngrx/index';\nimport {\n canChangeHours,\n canChangeMinutes,\n canChangeSeconds,\n canChangeValue,\n timepickerControls\n} from '../timepicker-controls.util';\nimport { TimepickerConfig } from '../timepicker.config';\nimport {\n TimepickerComponentState,\n TimepickerControls\n} from '../timepicker.models';\nimport { changeTime, setTime, isValidLimit } from '../timepicker.utils';\nimport { TimepickerActions } from './timepicker.actions';\n\nexport class TimepickerState {\n value: Date;\n config: TimepickerComponentState;\n controls: TimepickerControls;\n}\n\nexport const initialState: TimepickerState = {\n value: null,\n config: new TimepickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\nexport function timepickerReducer(state = initialState, action: Action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n\n case TimepickerActions.CHANGE_HOURS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_MINUTES: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_SECONDS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, action.payload);\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState: TimepickerState = {\n value: state.value,\n config: action.payload,\n controls: _newControlsState\n };\n\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n\n return Object.assign({}, state, _newState);\n }\n\n default:\n return state;\n }\n}\n","export interface Action {\n type: string;\n payload?: any;\n}\n\nexport type ActionReducer<T> = (state: T, action: Action) => T;\n\nexport { MiniState } from './state.class';\nexport { MiniStore } from './store.class';\n","import { Injectable } from '@angular/core';\nimport {\n timepickerReducer,\n TimepickerState,\n initialState\n} from './timepicker.reducer';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, MiniStore, MiniState } from '../../mini-ngrx/index';\n\n@Injectable()\nexport class TimepickerStore extends MiniStore<TimepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState<TimepickerState>(\n initialState,\n _dispatcher,\n timepickerReducer\n );\n super(_dispatcher, timepickerReducer, state);\n }\n}\n","/* tslint:disable:no-forward-ref max-file-line-count */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges, ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerStore } from './reducer/timepicker.store';\nimport { getControlsValue } from './timepicker-controls.util';\nimport { TimepickerConfig } from './timepicker.config';\nimport {\n TimeChangeSource,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\nimport {\n isValidDate,\n padNumber,\n parseTime,\n isInputValid,\n isHourInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isInputLimitValid\n} from './timepicker.utils';\nimport { Subscription } from 'rxjs';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],\n template: \"<table> <tbody> <tr class=\\\"text-center\\\" [hidden]=\\\"!showSpinners\\\"> <!-- increment hours button--> <td> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canIncrementHours || !isEditable\\\" (click)=\\\"changeHours(hourStep)\\\" ><span class=\\\"bs-chevron bs-chevron-up\\\"></span></a> </td> <!-- divider --> <td *ngIf=\\\"showMinutes\\\"> </td> <!-- increment minutes button --> <td *ngIf=\\\"showMinutes\\\"> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canIncrementMinutes || !isEditable\\\" (click)=\\\"changeMinutes(minuteStep)\\\" ><span class=\\\"bs-chevron bs-chevron-up\\\"></span></a> </td> <!-- divider --> <td *ngIf=\\\"showSeconds\\\"> </td> <!-- increment seconds button --> <td *ngIf=\\\"showSeconds\\\"> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canIncrementSeconds || !isEditable\\\" (click)=\\\"changeSeconds(secondsStep)\\\"> <span class=\\\"bs-chevron bs-chevron-up\\\"></span> </a> </td> <!-- space between --> <td *ngIf=\\\"showMeridian\\\"> </td> <!-- meridian placeholder--> <td *ngIf=\\\"showMeridian\\\"></td> </tr> <tr> <!-- hours --> <td class=\\\"form-group\\\" [class.has-error]=\\\"invalidHours\\\"> <input type=\\\"text\\\" [class.is-invalid]=\\\"invalidHours\\\" class=\\\"form-control text-center bs-timepicker-field\\\" placeholder=\\\"HH\\\" maxlength=\\\"2\\\" [readonly]=\\\"readonlyInput\\\" [disabled]=\\\"disabled\\\" [value]=\\\"hours\\\" (wheel)=\\\"prevDef($event);changeHours(hourStep * wheelSign($event), 'wheel')\\\" (keydown.ArrowUp)=\\\"changeHours(hourStep, 'key')\\\" (keydown.ArrowDown)=\\\"changeHours(-hourStep, 'key')\\\" (change)=\\\"updateHours($event.target.value)\\\"></td> <!-- divider --> <td *ngIf=\\\"showMinutes\\\"> : </td> <!-- minutes --> <td class=\\\"form-group\\\" *ngIf=\\\"showMinutes\\\" [class.has-error]=\\\"invalidMinutes\\\"> <input type=\\\"text\\\" [class.is-invalid]=\\\"invalidMinutes\\\" class=\\\"form-control text-center bs-timepicker-field\\\" placeholder=\\\"MM\\\" maxlength=\\\"2\\\" [readonly]=\\\"readonlyInput\\\" [disabled]=\\\"disabled\\\" [value]=\\\"minutes\\\" (wheel)=\\\"prevDef($event);changeMinutes(minuteStep * wheelSign($event), 'wheel')\\\" (keydown.ArrowUp)=\\\"changeMinutes(minuteStep, 'key')\\\" (keydown.ArrowDown)=\\\"changeMinutes(-minuteStep, 'key')\\\" (change)=\\\"updateMinutes($event.target.value)\\\"> </td> <!-- divider --> <td *ngIf=\\\"showSeconds\\\"> : </td> <!-- seconds --> <td class=\\\"form-group\\\" *ngIf=\\\"showSeconds\\\" [class.has-error]=\\\"invalidSeconds\\\"> <input type=\\\"text\\\" [class.is-invalid]=\\\"invalidSeconds\\\" class=\\\"form-control text-center bs-timepicker-field\\\" placeholder=\\\"SS\\\" maxlength=\\\"2\\\" [readonly]=\\\"readonlyInput\\\" [disabled]=\\\"disabled\\\" [value]=\\\"seconds\\\" (wheel)=\\\"prevDef($event);changeSeconds(secondsStep * wheelSign($event), 'wheel')\\\" (keydown.ArrowUp)=\\\"changeSeconds(secondsStep, 'key')\\\" (keydown.ArrowDown)=\\\"changeSeconds(-secondsStep, 'key')\\\" (change)=\\\"updateSeconds($event.target.value)\\\"> </td> <!-- space between --> <td *ngIf=\\\"showMeridian\\\"> </td> <!-- meridian --> <td *ngIf=\\\"showMeridian\\\"> <button type=\\\"button\\\" class=\\\"btn btn-default text-center\\\" [disabled]=\\\"!isEditable || !canToggleMeridian\\\" [class.disabled]=\\\"!isEditable || !canToggleMeridian\\\" (click)=\\\"toggleMeridian()\\\" >{{ meridian }} </button> </td> </tr> <tr class=\\\"text-center\\\" [hidden]=\\\"!showSpinners\\\"> <!-- decrement hours button--> <td> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canDecrementHours || !isEditable\\\" (click)=\\\"changeHours(-hourStep)\\\"> <span class=\\\"bs-chevron bs-chevron-down\\\"></span> </a> </td> <!-- divider --> <td *ngIf=\\\"showMinutes\\\"> </td> <!-- decrement minutes button--> <td *ngIf=\\\"showMinutes\\\"> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canDecrementMinutes || !isEditable\\\" (click)=\\\"changeMinutes(-minuteStep)\\\"> <span class=\\\"bs-chevron bs-chevron-down\\\"></span> </a> </td> <!-- divider --> <td *ngIf=\\\"showSeconds\\\"> </td> <!-- decrement seconds button--> <td *ngIf=\\\"showSeconds\\\"> <a class=\\\"btn btn-link\\\" [class.disabled]=\\\"!canDecrementSeconds || !isEditable\\\" (click)=\\\"changeSeconds(-secondsStep)\\\"> <span class=\\\"bs-chevron bs-chevron-down\\\"></span> </a> </td> <!-- space between --> <td *ngIf=\\\"showMeridian\\\"> </td> <!-- meridian placeholder--> <td *ngIf=\\\"showMeridian\\\"></td> </tr> </tbody> </table> \",\n styles: [`\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimepickerComponent\n implements ControlValueAccessor,\n TimepickerComponentState,\n TimepickerControls,\n OnChanges,\n OnDestroy {\n /** hours change step */\n @Input() hourStep: number;\n /** hours change step */\n @Input() minuteStep: number;\n /** seconds change step */\n @Input() secondsStep: number;\n /** if true hours and minutes fields will be readonly */\n @Input() readonlyInput: boolean;\n /** if true hours and minutes fields will be disabled */\n @Input() disabled: boolean;\n /** if true scroll inside hours and minutes inputs will change time */\n @Input() mousewheel: boolean;\n /** if true up/down arrowkeys inside hours and minutes inputs will change time */\n @Input() arrowkeys: boolean;\n /** if true spinner arrows above and below the inputs will be shown */\n @Input() showSpinners: boolean;\n /** if true meridian button will be shown */\n @Input() showMeridian: boolean;\n /** show minutes in timepicker */\n @Input() showMinutes: boolean;\n /** show seconds in timepicker */\n @Input() showSeconds: boolean;\n /** meridian labels based on locale */\n @Input() meridians: string[];\n /** minimum time user can select */\n @Input() min: Date;\n /** maximum time user can select */\n @Input() max: Date;\n\n /** emits true if value is a valid date */\n @Output() isValid = new EventEmitter<boolean>();\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible(): boolean {\n return this.showSpinners && !this.readonlyInput;\n }\n\n get isEditable(): boolean {\n return !(this.readonlyInput || this.disabled);\n }\n\n // min\\max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n onChange: any = Function.prototype;\n onTouched: any = Function.prototype;\n\n timepickerSub: Subscription;\n\n constructor(\n _config: TimepickerConfig,\n _cd: ChangeDetectorRef,\n private _store: TimepickerStore,\n private _timepickerActions: TimepickerActions\n ) {\n Object.assign(this, _config);\n\n this.timepickerSub = _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n });\n\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimepickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n });\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n isPM(): boolean {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n\n prevDef($event: any) {\n $event.preventDefault();\n }\n\n wheelSign($event: any): number {\n return Math.sign($event.deltaY as number) * -1;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeMinutes({ step, source })\n );\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeSeconds({ step, source })\n );\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\n }\n\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.dispatch(\n this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n })\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.dispatch(\n this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n })\n );\n }\n\n /**\n * Write a new value to the element.\n */\n writeValue(obj: any): void {\n if (isValidDate(obj)) {\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue(null));\n }\n }\n\n /**\n * Set the function to be called when the control receives a change event.\n */\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnDestroy(): void {\n this.timepickerSub.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n\n return;\n }\n\n const _value = parseTime(value);\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimepickerComponent } from './timepicker.component';\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerConfig } from './timepicker.config';\nimport { TimepickerStore } from './reducer/timepicker.store';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent]\n})\nexport class TimepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerConfig, TimepickerActions, TimepickerStore]\n };\n }\n}\n","export { TimepickerComponent } from './timepicker.component';\nexport { TimepickerActions } from './reducer/timepicker.actions';\nexport { TimepickerStore } from './reducer/timepicker.store';\nexport { TimepickerConfig } from './timepicker.config';\nexport { TimepickerModule } from './timepicker.module';\n","import {\n AfterViewInit,\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { TooltipConfig } from './tooltip.config';\nimport { isBs3 } from '../utils/theme-provider';\n\n@Component({\n selector: 'bs-tooltip-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line\n host: {\n '[class]':\n '\"tooltip in tooltip-\" + placement + \" \" + \"bs-tooltip-\" + placement + \" \" + placement + \" \" + containerClass',\n '[class.show]': '!isBs3',\n role: 'tooltip'\n },\n styles: [\n `\n :host.tooltip {\n display: block;\n }\n :host.bs-tooltip-top .arrow, :host.bs-tooltip-bottom .arrow {\n left: 50%;\n margin-left: -6px;\n }\n :host.bs-tooltip-left .arrow, :host.bs-tooltip-right .arrow {\n top: 50%;\n margin-top: -6px;\n }\n `\n ],\n template: `\n <div class=\"tooltip-arrow arrow\"></div>\n <div class=\"tooltip-inner\"><ng-content></ng-content></div>\n `\n})\nexport class TooltipContainerComponent implements AfterViewInit {\n classMap: any;\n placement: string;\n containerClass: string;\n animation: boolean;\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n constructor(config: TooltipConfig) {\n Object.assign(this, config);\n }\n\n ngAfterViewInit(): void {\n this.classMap = { in: false, fade: false };\n this.classMap[this.placement] = true;\n this.classMap[`tooltip-${this.placement}`] = true;\n\n this.classMap.in = true;\n if (this.animation) {\n this.classMap.fade = true;\n }\n\n if (this.containerClass) {\n this.classMap[this.containerClass] = true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n/** Default values provider for tooltip */\n@Injectable()\nexport class TooltipConfig {\n /** tooltip placement, supported positions: 'top', 'bottom', 'left', 'right' */\n placement = 'top';\n /** array of event names which triggers tooltip opening */\n triggers = 'hover focus';\n /** a selector specifying the element the tooltip should be appended to. Currently only supports \"body\" */\n container: string;\n}\n","/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n/**\n *\n * Async Scheduler\n *\n * <span class=\"informal\">Schedule task as if you used setTimeout(task, duration)</span>\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asap} scheduler.\n *\n * @example <caption>Use async scheduler to delay task</caption>\n * const task = () => console.log('it works!');\n *\n * Rx.Scheduler.async.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n *\n *\n * @example <caption>Use async scheduler to repeat task in intervals</caption>\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * Rx.Scheduler.async.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n *\n * @static true\n * @name async\n * @owner Scheduler\n */\nexport var async = /*@__PURE__*/ new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map\n","/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */\nimport { isArray } from './isArray';\nexport function isNumeric(val) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\n/**\n * Creates an Observable that starts emitting after an `initialDelay` and\n * emits ever increasing numbers after each `period` of time thereafter.\n *\n * <span class=\"informal\">Its like {@link interval}, but you can specify when\n * should the emissions start.</span>\n *\n * <img src=\"./img/timer.png\" width=\"100%\">\n *\n * `timer` returns an Observable that emits an infinite sequence of ascending\n * integers, with a constant interval of time, `period` of your choosing\n * between those emissions. The first emission happens after the specified\n * `initialDelay`. The initial delay may be a {@link Date}. By default, this\n * operator uses the `async` IScheduler to provide a notion of time, but you\n * may pass any IScheduler to it. If `period` is not specified, the output\n * Observable emits only one value, `0`. Otherwise, it emits an infinite\n * sequence.\n *\n * @example <caption>Emits ascending numbers, one every second (1000ms), starting after 3 seconds</caption>\n * var numbers = Rx.Observable.timer(3000, 1000);\n * numbers.subscribe(x => console.log(x));\n *\n * @example <caption>Emits one number after five seconds</caption>\n * var numbers = Rx.Observable.timer(5000);\n * numbers.subscribe(x => console.log(x));\n *\n * @see {@link interval}\n * @see {@link delay}\n *\n * @param {number|Date} [dueTime] The initial delay time to wait before\n * emitting the first value of `0`.\n * @param {number|SchedulerLike} [periodOrScheduler] The period of time between emissions of the\n * subsequent numbers.\n * @param {SchedulerLike} [scheduler=async] The IScheduler to use for scheduling\n * the emission of values, and providing a notion of \"time\".\n * @return {Observable} An Observable that emits a `0` after the\n * `initialDelay` and ever increasing numbers after each `period` of time\n * thereafter.\n * @static true\n * @name timer\n * @owner Observable\n */\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) {\n dueTime = 0;\n }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map\n","// tslint:disable:deprecation\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { TooltipContainerComponent } from './tooltip-container.component';\nimport { TooltipConfig } from './tooltip.config';\nimport { ComponentLoader, ComponentLoaderFactory } from '../component-loader/index';\nimport { OnChange } from '../utils/decorators';\nimport { warnOnce } from '../utils/warn-once';\nimport { parseTriggers } from '../utils/triggers';\nimport { timer } from 'rxjs';\n\n@Directive({\n selector: '[tooltip], [tooltipHtml]',\n exportAs: 'bs-tooltip'\n})\nexport class TooltipDirective implements OnInit, OnDestroy {\n /**\n * Content to be displayed as tooltip.\n */\n @OnChange()\n @Input()\n tooltip: string | TemplateRef<any>;\n /** Fired when tooltip content changes */\n @Output()\n tooltipChange: EventEmitter<string | TemplateRef<any>> = new EventEmitter();\n\n /**\n * Placement of a tooltip. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: string;\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers: string;\n /**\n * A selector specifying the element the tooltip should be appended to.\n * Currently only supports \"body\".\n */\n @Input() container: string;\n\n /**\n * Returns whether or not the tooltip is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._tooltip.isShown;\n }\n\n set isOpen(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Allows to disable tooltip\n */\n @Input() isDisabled: boolean;\n\n /**\n * Css class for tooltip container\n */\n @Input() containerClass = '';\n /**\n * Delay before showing the tooltip\n */\n @Input() delay: number;\n\n /**\n * Emits an event when the tooltip is shown\n */\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the tooltip is hidden\n */\n @Output() onHidden: EventEmitter<any>;\n\n /** @deprecated - please use `tooltip` instead */\n @Input('tooltipHtml')\n set htmlContent(value: string | TemplateRef<any>) {\n warnOnce('tooltipHtml was deprecated, please use `tooltip` instead');\n this.tooltip = value;\n }\n\n /** @deprecated - please use `placement` instead */\n @Input('tooltipPlacement')\n set _placement(value: string) {\n warnOnce('tooltipPlacement was deprecated, please use `placement` instead');\n this.placement = value;\n }\n\n /** @deprecated - please use `isOpen` instead*/\n @Input('tooltipIsOpen')\n set _isOpen(value: boolean) {\n warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');\n this.isOpen = value;\n }\n\n get _isOpen(): boolean {\n warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');\n return this.isOpen;\n }\n\n /** @deprecated - please use `isDisabled` instead */\n @Input('tooltipEnable')\n set _enable(value: boolean) {\n warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');\n this.isDisabled = value;\n }\n\n get _enable(): boolean {\n warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');\n return this.isDisabled;\n }\n\n /** @deprecated - please use `container=\"body\"` instead */\n @Input('tooltipAppendToBody')\n set _appendToBody(value: boolean) {\n warnOnce(\n 'tooltipAppendToBody was deprecated, please use `container=\"body\"` instead'\n );\n this.container = value ? 'body' : this.container;\n }\n\n get _appendToBody(): boolean {\n warnOnce(\n 'tooltipAppendToBody was deprecated, please use `container=\"body\"` instead'\n );\n return this.container === 'body';\n }\n\n /** @deprecated - removed, will be added to configuration */\n @Input('tooltipAnimation') _animation = true;\n\n /** @deprecated - will replaced with customClass */\n @Input('tooltipClass')\n set _popupClass(value: string) {\n warnOnce('tooltipClass deprecated');\n }\n\n /** @deprecated - removed */\n @Input('tooltipContext')\n set _tooltipContext(value: any) {\n warnOnce('tooltipContext deprecated');\n }\n\n /** @deprecated */\n @Input('tooltipPopupDelay')\n set _tooltipPopupDelay(value: number) {\n warnOnce('tooltipPopupDelay is deprecated, use `delay` instead');\n this.delay = value;\n }\n\n /** @deprecated */\n @Input('tooltipFadeDuration') _fadeDuration = 150;\n\n /** @deprecated - please use `triggers` instead */\n @Input('tooltipTrigger')\n get _tooltipTrigger(): string | string[] {\n warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');\n return this.triggers;\n }\n\n set _tooltipTrigger(value: string | string[]) {\n warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');\n this.triggers = (value || '').toString();\n }\n\n /** @deprecated */\n @Output()\n tooltipStateChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\n protected _delayTimeoutId: number | any;\n protected _tooltipCancelShowFn: Function;\n\n private _tooltip: ComponentLoader<TooltipContainerComponent>;\n\n constructor(_viewContainerRef: ViewContainerRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n cis: ComponentLoaderFactory,\n config: TooltipConfig) {\n this._tooltip = cis\n .createLoader<TooltipContainerComponent>(\n this._elementRef,\n _viewContainerRef,\n this._renderer\n )\n .provide({provide: TooltipConfig, useValue: config});\n\n Object.assign(this, config);\n this.onShown = this._tooltip.onShown;\n this.onHidden = this._tooltip.onHidden;\n }\n\n ngOnInit(): void {\n this._tooltip.listen({\n triggers: this.triggers,\n show: () => this.show()\n });\n this.tooltipChange.subscribe((value: any) => {\n if (!value) {\n this._tooltip.hide();\n }\n });\n }\n\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n /**\n * Opens an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n show(): void {\n if (\n this.isOpen ||\n this.isDisabled ||\n this._delayTimeoutId ||\n !this.tooltip\n ) {\n return;\n }\n\n const showTooltip = () => {\n if (this._delayTimeoutId) {\n this._delayTimeoutId = undefined;\n }\n\n this._tooltip\n .attach(TooltipContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({\n content: this.tooltip,\n placement: this.placement,\n containerClass: this.containerClass\n });\n };\n const cancelDelayedTooltipShowing = () => {\n if (this._tooltipCancelShowFn) {\n this._tooltipCancelShowFn();\n }\n };\n\n if (this.delay) {\n const _timer = timer(this.delay).subscribe(() => {\n showTooltip();\n cancelDelayedTooltipShowing();\n });\n\n if (this.triggers) {\n const triggers = parseTriggers(this.triggers);\n this._tooltipCancelShowFn = this._renderer.listen(this._elementRef.nativeElement, triggers[0].close, () => {\n _timer.unsubscribe();\n cancelDelayedTooltipShowing();\n });\n }\n } else {\n showTooltip();\n }\n }\n\n /**\n * Closes an element’s tooltip. This is considered a “manual” triggering of\n * the tooltip.\n */\n hide(): void {\n if (this._delayTimeoutId) {\n clearTimeout(this._delayTimeoutId);\n this._delayTimeoutId = undefined;\n }\n\n if (!this._tooltip.isShown) {\n return;\n }\n\n this._tooltip.instance.classMap.in = false;\n setTimeout(() => {\n this._tooltip.hide();\n }, this._fadeDuration);\n }\n\n ngOnDestroy(): void {\n this._tooltip.dispose();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { TooltipContainerComponent } from './tooltip-container.component';\nimport { TooltipDirective } from './tooltip.directive';\nimport { TooltipConfig } from './tooltip.config';\nimport { ComponentLoaderFactory } from '../component-loader/index';\nimport { PositioningService } from '../positioning/index';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TooltipDirective, TooltipContainerComponent],\n exports: [TooltipDirective],\n entryComponents: [TooltipContainerComponent]\n})\nexport class TooltipModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TooltipModule,\n providers: [TooltipConfig, ComponentLoaderFactory, PositioningService]\n };\n }\n}\n","export { TooltipContainerComponent } from './tooltip-container.component';\nexport { TooltipDirective } from './tooltip.directive';\nexport { TooltipModule } from './tooltip.module';\nexport { TooltipConfig } from './tooltip.config';\n","/* tslint:disable */\nexport const latinMap: { [key: string]: string } = {\n 'Á': 'A',\n 'Ă': 'A',\n 'Ắ': 'A',\n 'Ặ': 'A',\n 'Ằ': 'A',\n 'Ẳ': 'A',\n 'Ẵ': 'A',\n 'Ǎ': 'A',\n 'Â': 'A',\n 'Ấ': 'A',\n 'Ậ': 'A',\n 'Ầ': 'A',\n 'Ẩ': 'A',\n 'Ẫ': 'A',\n 'Ä': 'A',\n 'Ǟ': 'A',\n 'Ȧ': 'A',\n 'Ǡ': 'A',\n 'Ạ': 'A',\n 'Ȁ': 'A',\n 'À': 'A',\n 'Ả': 'A',\n 'Ȃ': 'A',\n 'Ā': 'A',\n 'Ą': 'A',\n 'Å': 'A',\n 'Ǻ': 'A',\n 'Ḁ': 'A',\n 'Ⱥ': 'A',\n 'Ã': 'A',\n 'Ꜳ': 'AA',\n 'Æ': 'AE',\n 'Ǽ': 'AE',\n 'Ǣ': 'AE',\n 'Ꜵ': 'AO',\n 'Ꜷ': 'AU',\n 'Ꜹ': 'AV',\n 'Ꜻ': 'AV',\n 'Ꜽ': 'AY',\n 'Ḃ': 'B',\n 'Ḅ': 'B',\n 'Ɓ': 'B',\n 'Ḇ': 'B',\n 'Ƀ': 'B',\n 'Ƃ': 'B',\n 'Ć': 'C',\n 'Č': 'C',\n 'Ç': 'C',\n 'Ḉ': 'C',\n 'Ĉ': 'C',\n 'Ċ': 'C',\n 'Ƈ': 'C',\n 'Ȼ': 'C',\n 'Ď': 'D',\n 'Ḑ': 'D',\n 'Ḓ': 'D',\n 'Ḋ': 'D',\n 'Ḍ': 'D',\n 'Ɗ': 'D',\n 'Ḏ': 'D',\n 'Dz': 'D',\n 'Dž': 'D',\n 'Đ': 'D',\n 'Ƌ': 'D',\n 'DZ': 'DZ',\n 'DŽ': 'DZ',\n 'É': 'E',\n 'Ĕ': 'E',\n 'Ě': 'E',\n 'Ȩ': 'E',\n 'Ḝ': 'E',\n 'Ê': 'E',\n 'Ế': 'E',\n 'Ệ': 'E',\n 'Ề': 'E',\n 'Ể': 'E',\n 'Ễ': 'E',\n 'Ḙ': 'E',\n 'Ë': 'E',\n 'Ė': 'E',\n 'Ẹ': 'E',\n 'Ȅ': 'E',\n 'È': 'E',\n 'Ẻ': 'E',\n 'Ȇ': 'E',\n 'Ē': 'E',\n 'Ḗ': 'E',\n 'Ḕ': 'E',\n 'Ę': 'E',\n 'Ɇ': 'E',\n 'Ẽ': 'E',\n 'Ḛ': 'E',\n 'Ꝫ': 'ET',\n 'Ḟ': 'F',\n 'Ƒ': 'F',\n 'Ǵ': 'G',\n 'Ğ': 'G',\n 'Ǧ': 'G',\n 'Ģ': 'G',\n 'Ĝ': 'G',\n 'Ġ': 'G',\n 'Ɠ': 'G',\n 'Ḡ': 'G',\n 'Ǥ': 'G',\n 'Ḫ': 'H',\n 'Ȟ': 'H',\n 'Ḩ': 'H',\n 'Ĥ': 'H',\n 'Ⱨ': 'H',\n 'Ḧ': 'H',\n 'Ḣ': 'H',\n 'Ḥ': 'H',\n 'Ħ': 'H',\n 'Í': 'I',\n 'Ĭ': 'I',\n 'Ǐ': 'I',\n 'Î': 'I',\n 'Ï': 'I',\n 'Ḯ': 'I',\n 'İ': 'I',\n 'Ị': 'I',\n 'Ȉ': 'I',\n 'Ì': 'I',\n 'Ỉ': 'I',\n 'Ȋ': 'I',\n 'Ī': 'I',\n 'Į': 'I',\n 'Ɨ': 'I',\n 'Ĩ': 'I',\n 'Ḭ': 'I',\n 'Ꝺ': 'D',\n 'Ꝼ': 'F',\n 'Ᵹ': 'G',\n 'Ꞃ': 'R',\n 'Ꞅ': 'S',\n 'Ꞇ': 'T',\n 'Ꝭ': 'IS',\n 'Ĵ': 'J',\n 'Ɉ': 'J',\n 'Ḱ': 'K',\n 'Ǩ': 'K',\n 'Ķ': 'K',\n 'Ⱪ': 'K',\n 'Ꝃ': 'K',\n 'Ḳ': 'K',\n 'Ƙ': 'K',\n 'Ḵ': 'K',\n 'Ꝁ': 'K',\n 'Ꝅ': 'K',\n 'Ĺ': 'L',\n 'Ƚ': 'L',\n 'Ľ': 'L',\n 'Ļ': 'L',\n 'Ḽ': 'L',\n 'Ḷ': 'L',\n 'Ḹ': 'L',\n 'Ⱡ': 'L',\n 'Ꝉ': 'L',\n 'Ḻ': 'L',\n 'Ŀ': 'L',\n 'Ɫ': 'L',\n 'Lj': 'L',\n 'Ł': 'L',\n 'LJ': 'LJ',\n 'Ḿ': 'M',\n 'Ṁ': 'M',\n 'Ṃ': 'M',\n 'Ɱ': 'M',\n 'Ń': 'N',\n 'Ň': 'N',\n 'Ņ': 'N',\n 'Ṋ': 'N',\n 'Ṅ': 'N',\n 'Ṇ': 'N',\n 'Ǹ': 'N',\n 'Ɲ': 'N',\n 'Ṉ': 'N',\n 'Ƞ': 'N',\n 'Nj': 'N',\n 'Ñ': 'N',\n 'NJ': 'NJ',\n 'Ó': 'O',\n 'Ŏ': 'O',\n 'Ǒ': 'O',\n 'Ô': 'O',\n 'Ố': 'O',\n 'Ộ': 'O',\n 'Ồ': 'O',\n 'Ổ': 'O',\n 'Ỗ': 'O',\n 'Ö': 'O',\n 'Ȫ': 'O',\n 'Ȯ': 'O',\n 'Ȱ': 'O',\n 'Ọ': 'O',\n 'Ő': 'O',\n 'Ȍ': 'O',\n 'Ò': 'O',\n 'Ỏ': 'O',\n 'Ơ': 'O',\n 'Ớ': 'O',\n 'Ợ': 'O',\n 'Ờ': 'O',\n 'Ở': 'O',\n 'Ỡ': 'O',\n 'Ȏ': 'O',\n 'Ꝋ': 'O',\n 'Ꝍ': 'O',\n 'Ō': 'O',\n 'Ṓ': 'O',\n 'Ṑ': 'O',\n 'Ɵ': 'O',\n 'Ǫ': 'O',\n 'Ǭ': 'O',\n 'Ø': 'O',\n 'Ǿ': 'O',\n 'Õ': 'O',\n 'Ṍ': 'O',\n 'Ṏ': 'O',\n 'Ȭ': 'O',\n 'Ƣ': 'OI',\n 'Ꝏ': 'OO',\n 'Ɛ': 'E',\n 'Ɔ': 'O',\n 'Ȣ': 'OU',\n 'Ṕ': 'P',\n 'Ṗ': 'P',\n 'Ꝓ': 'P',\n 'Ƥ': 'P',\n 'Ꝕ': 'P',\n 'Ᵽ': 'P',\n 'Ꝑ': 'P',\n 'Ꝙ': 'Q',\n 'Ꝗ': 'Q',\n 'Ŕ': 'R',\n 'Ř': 'R',\n 'Ŗ': 'R',\n 'Ṙ': 'R',\n 'Ṛ': 'R',\n 'Ṝ': 'R',\n 'Ȑ': 'R',\n 'Ȓ': 'R',\n 'Ṟ': 'R',\n 'Ɍ': 'R',\n 'Ɽ': 'R',\n 'Ꜿ': 'C',\n 'Ǝ': 'E',\n 'Ś': 'S',\n 'Ṥ': 'S',\n 'Š': 'S',\n 'Ṧ': 'S',\n 'Ş': 'S',\n 'Ŝ': 'S',\n 'Ș': 'S',\n 'Ṡ': 'S',\n 'Ṣ': 'S',\n 'Ṩ': 'S',\n 'Ť': 'T',\n 'Ţ': 'T',\n 'Ṱ': 'T',\n 'Ț': 'T',\n 'Ⱦ': 'T',\n 'Ṫ': 'T',\n 'Ṭ': 'T',\n 'Ƭ': 'T',\n 'Ṯ': 'T',\n 'Ʈ': 'T',\n 'Ŧ': 'T',\n 'Ɐ': 'A',\n 'Ꞁ': 'L',\n 'Ɯ': 'M',\n 'Ʌ': 'V',\n 'Ꜩ': 'TZ',\n 'Ú': 'U',\n 'Ŭ': 'U',\n 'Ǔ': 'U',\n 'Û': 'U',\n 'Ṷ': 'U',\n 'Ü': 'U',\n 'Ǘ': 'U',\n 'Ǚ': 'U',\n 'Ǜ': 'U',\n 'Ǖ': 'U',\n 'Ṳ': 'U',\n 'Ụ': 'U',\n 'Ű': 'U',\n 'Ȕ': 'U',\n 'Ù': 'U',\n 'Ủ': 'U',\n 'Ư': 'U',\n 'Ứ': 'U',\n 'Ự': 'U',\n 'Ừ': 'U',\n 'Ử': 'U',\n 'Ữ': 'U',\n 'Ȗ': 'U',\n 'Ū': 'U',\n 'Ṻ': 'U',\n 'Ų': 'U',\n 'Ů': 'U',\n 'Ũ': 'U',\n 'Ṹ': 'U',\n 'Ṵ': 'U',\n 'Ꝟ': 'V',\n 'Ṿ': 'V',\n 'Ʋ': 'V',\n 'Ṽ': 'V',\n 'Ꝡ': 'VY',\n 'Ẃ': 'W',\n 'Ŵ': 'W',\n 'Ẅ': 'W',\n 'Ẇ': 'W',\n 'Ẉ': 'W',\n 'Ẁ': 'W',\n 'Ⱳ': 'W',\n 'Ẍ': 'X',\n 'Ẋ': 'X',\n 'Ý': 'Y',\n 'Ŷ': 'Y',\n 'Ÿ': 'Y',\n 'Ẏ': 'Y',\n 'Ỵ': 'Y',\n 'Ỳ': 'Y',\n 'Ƴ': 'Y',\n 'Ỷ': 'Y',\n 'Ỿ': 'Y',\n 'Ȳ': 'Y',\n 'Ɏ': 'Y',\n 'Ỹ': 'Y',\n 'Ź': 'Z',\n 'Ž': 'Z',\n 'Ẑ': 'Z',\n 'Ⱬ': 'Z',\n 'Ż': 'Z',\n 'Ẓ': 'Z',\n 'Ȥ': 'Z',\n 'Ẕ': 'Z',\n 'Ƶ': 'Z',\n 'IJ': 'IJ',\n 'Œ': 'OE',\n 'ᴀ': 'A',\n 'ᴁ': 'AE',\n 'ʙ': 'B',\n 'ᴃ': 'B',\n 'ᴄ': 'C',\n 'ᴅ': 'D',\n 'ᴇ': 'E',\n 'ꜰ': 'F',\n 'ɢ': 'G',\n 'ʛ': 'G',\n 'ʜ': 'H',\n 'ɪ': 'I',\n 'ʁ': 'R',\n 'ᴊ': 'J',\n 'ᴋ': 'K',\n 'ʟ': 'L',\n 'ᴌ': 'L',\n 'ᴍ': 'M',\n 'ɴ': 'N',\n 'ᴏ': 'O',\n 'ɶ': 'OE',\n 'ᴐ': 'O',\n 'ᴕ': 'OU',\n 'ᴘ': 'P',\n 'ʀ': 'R',\n 'ᴎ': 'N',\n 'ᴙ': 'R',\n 'ꜱ': 'S',\n 'ᴛ': 'T',\n 'ⱻ': 'E',\n 'ᴚ': 'R',\n 'ᴜ': 'U',\n 'ᴠ': 'V',\n 'ᴡ': 'W',\n 'ʏ': 'Y',\n 'ᴢ': 'Z',\n 'á': 'a',\n 'ă': 'a',\n 'ắ': 'a',\n 'ặ': 'a',\n 'ằ': 'a',\n 'ẳ': 'a',\n 'ẵ': 'a',\n 'ǎ': 'a',\n 'â': 'a',\n 'ấ': 'a',\n 'ậ': 'a',\n 'ầ': 'a',\n 'ẩ': 'a',\n 'ẫ': 'a',\n 'ä': 'a',\n 'ǟ': 'a',\n 'ȧ': 'a',\n 'ǡ': 'a',\n 'ạ': 'a',\n 'ȁ': 'a',\n 'à': 'a',\n 'ả': 'a',\n 'ȃ': 'a',\n 'ā': 'a',\n 'ą': 'a',\n 'ᶏ': 'a',\n 'ẚ': 'a',\n 'å': 'a',\n 'ǻ': 'a',\n 'ḁ': 'a',\n 'ⱥ': 'a',\n 'ã': 'a',\n 'ꜳ': 'aa',\n 'æ': 'ae',\n 'ǽ': 'ae',\n 'ǣ': 'ae',\n 'ꜵ': 'ao',\n 'ꜷ': 'au',\n 'ꜹ': 'av',\n 'ꜻ': 'av',\n 'ꜽ': 'ay',\n 'ḃ': 'b',\n 'ḅ': 'b',\n 'ɓ': 'b',\n 'ḇ': 'b',\n 'ᵬ': 'b',\n 'ᶀ': 'b',\n 'ƀ': 'b',\n 'ƃ': 'b',\n 'ɵ': 'o',\n 'ć': 'c',\n 'č': 'c',\n 'ç': 'c',\n 'ḉ': 'c',\n 'ĉ': 'c',\n 'ɕ': 'c',\n 'ċ': 'c',\n 'ƈ': 'c',\n 'ȼ': 'c',\n 'ď': 'd',\n 'ḑ': 'd',\n 'ḓ': 'd',\n 'ȡ': 'd',\n 'ḋ': 'd',\n 'ḍ': 'd',\n 'ɗ': 'd',\n 'ᶑ': 'd',\n 'ḏ': 'd',\n 'ᵭ': 'd',\n 'ᶁ': 'd',\n 'đ': 'd',\n 'ɖ': 'd',\n 'ƌ': 'd',\n 'ı': 'i',\n 'ȷ': 'j',\n 'ɟ': 'j',\n 'ʄ': 'j',\n 'dz': 'dz',\n 'dž': 'dz',\n 'é': 'e',\n 'ĕ': 'e',\n 'ě': 'e',\n 'ȩ': 'e',\n 'ḝ': 'e',\n 'ê': 'e',\n 'ế': 'e',\n 'ệ': 'e',\n 'ề': 'e',\n 'ể': 'e',\n 'ễ': 'e',\n 'ḙ': 'e',\n 'ë': 'e',\n 'ė': 'e',\n 'ẹ': 'e',\n 'ȅ': 'e',\n 'è': 'e',\n 'ẻ': 'e',\n 'ȇ': 'e',\n 'ē': 'e',\n 'ḗ': 'e',\n 'ḕ': 'e',\n 'ⱸ': 'e',\n 'ę': 'e',\n 'ᶒ': 'e',\n 'ɇ': 'e',\n 'ẽ': 'e',\n 'ḛ': 'e',\n 'ꝫ': 'et',\n 'ḟ': 'f',\n 'ƒ': 'f',\n 'ᵮ': 'f',\n 'ᶂ': 'f',\n 'ǵ': 'g',\n 'ğ': 'g',\n 'ǧ': 'g',\n 'ģ': 'g',\n 'ĝ': 'g',\n 'ġ': 'g',\n 'ɠ': 'g',\n 'ḡ': 'g',\n 'ᶃ': 'g',\n 'ǥ': 'g',\n 'ḫ': 'h',\n 'ȟ': 'h',\n 'ḩ': 'h',\n 'ĥ': 'h',\n 'ⱨ': 'h',\n 'ḧ': 'h',\n 'ḣ': 'h',\n 'ḥ': 'h',\n 'ɦ': 'h',\n 'ẖ': 'h',\n 'ħ': 'h',\n 'ƕ': 'hv',\n 'í': 'i',\n 'ĭ': 'i',\n 'ǐ': 'i',\n 'î': 'i',\n 'ï': 'i',\n 'ḯ': 'i',\n 'ị': 'i',\n 'ȉ': 'i',\n 'ì': 'i',\n 'ỉ': 'i',\n 'ȋ': 'i',\n 'ī': 'i',\n 'į': 'i',\n 'ᶖ': 'i',\n 'ɨ': 'i',\n 'ĩ': 'i',\n 'ḭ': 'i',\n 'ꝺ': 'd',\n 'ꝼ': 'f',\n 'ᵹ': 'g',\n 'ꞃ': 'r',\n 'ꞅ': 's',\n 'ꞇ': 't',\n 'ꝭ': 'is',\n 'ǰ': 'j',\n 'ĵ': 'j',\n 'ʝ': 'j',\n 'ɉ': 'j',\n 'ḱ': 'k',\n 'ǩ': 'k',\n 'ķ': 'k',\n 'ⱪ': 'k',\n 'ꝃ': 'k',\n 'ḳ': 'k',\n 'ƙ': 'k',\n 'ḵ': 'k',\n 'ᶄ': 'k',\n 'ꝁ': 'k',\n 'ꝅ': 'k',\n 'ĺ': 'l',\n 'ƚ': 'l',\n 'ɬ': 'l',\n 'ľ': 'l',\n 'ļ': 'l',\n 'ḽ': 'l',\n 'ȴ': 'l',\n 'ḷ': 'l',\n 'ḹ': 'l',\n 'ⱡ': 'l',\n 'ꝉ': 'l',\n 'ḻ': 'l',\n 'ŀ': 'l',\n 'ɫ': 'l',\n 'ᶅ': 'l',\n 'ɭ': 'l',\n 'ł': 'l',\n 'lj': 'lj',\n 'ſ': 's',\n 'ẜ': 's',\n 'ẛ': 's',\n 'ẝ': 's',\n 'ḿ': 'm',\n 'ṁ': 'm',\n 'ṃ': 'm',\n 'ɱ': 'm',\n 'ᵯ': 'm',\n 'ᶆ': 'm',\n 'ń': 'n',\n 'ň': 'n',\n 'ņ': 'n',\n 'ṋ': 'n',\n 'ȵ': 'n',\n 'ṅ': 'n',\n 'ṇ': 'n',\n 'ǹ': 'n',\n 'ɲ': 'n',\n 'ṉ': 'n',\n 'ƞ': 'n',\n 'ᵰ': 'n',\n 'ᶇ': 'n',\n 'ɳ': 'n',\n 'ñ': 'n',\n 'nj': 'nj',\n 'ó': 'o',\n 'ŏ': 'o',\n 'ǒ': 'o',\n 'ô': 'o',\n 'ố': 'o',\n 'ộ': 'o',\n 'ồ': 'o',\n 'ổ': 'o',\n 'ỗ': 'o',\n 'ö': 'o',\n 'ȫ': 'o',\n 'ȯ': 'o',\n 'ȱ': 'o',\n 'ọ': 'o',\n 'ő': 'o',\n 'ȍ': 'o',\n 'ò': 'o',\n 'ỏ': 'o',\n 'ơ': 'o',\n 'ớ': 'o',\n 'ợ': 'o',\n 'ờ': 'o',\n 'ở': 'o',\n 'ỡ': 'o',\n 'ȏ': 'o',\n 'ꝋ': 'o',\n 'ꝍ': 'o',\n 'ⱺ': 'o',\n 'ō': 'o',\n 'ṓ': 'o',\n 'ṑ': 'o',\n 'ǫ': 'o',\n 'ǭ': 'o',\n 'ø': 'o',\n 'ǿ': 'o',\n 'õ': 'o',\n 'ṍ': 'o',\n 'ṏ': 'o',\n 'ȭ': 'o',\n 'ƣ': 'oi',\n 'ꝏ': 'oo',\n 'ɛ': 'e',\n 'ᶓ': 'e',\n 'ɔ': 'o',\n 'ᶗ': 'o',\n 'ȣ': 'ou',\n 'ṕ': 'p',\n 'ṗ': 'p',\n 'ꝓ': 'p',\n 'ƥ': 'p',\n 'ᵱ': 'p',\n 'ᶈ': 'p',\n 'ꝕ': 'p',\n 'ᵽ': 'p',\n 'ꝑ': 'p',\n 'ꝙ': 'q',\n 'ʠ': 'q',\n 'ɋ': 'q',\n 'ꝗ': 'q',\n 'ŕ': 'r',\n 'ř': 'r',\n 'ŗ': 'r',\n 'ṙ': 'r',\n 'ṛ': 'r',\n 'ṝ': 'r',\n 'ȑ': 'r',\n 'ɾ': 'r',\n 'ᵳ': 'r',\n 'ȓ': 'r',\n 'ṟ': 'r',\n 'ɼ': 'r',\n 'ᵲ': 'r',\n 'ᶉ': 'r',\n 'ɍ': 'r',\n 'ɽ': 'r',\n 'ↄ': 'c',\n 'ꜿ': 'c',\n 'ɘ': 'e',\n 'ɿ': 'r',\n 'ś': 's',\n 'ṥ': 's',\n 'š': 's',\n 'ṧ': 's',\n 'ş': 's',\n 'ŝ': 's',\n 'ș': 's',\n 'ṡ': 's',\n 'ṣ': 's',\n 'ṩ': 's',\n 'ʂ': 's',\n 'ᵴ': 's',\n 'ᶊ': 's',\n 'ȿ': 's',\n 'ɡ': 'g',\n 'ᴑ': 'o',\n 'ᴓ': 'o',\n 'ᴝ': 'u',\n 'ť': 't',\n 'ţ': 't',\n 'ṱ': 't',\n 'ț': 't',\n 'ȶ': 't',\n 'ẗ': 't',\n 'ⱦ': 't',\n 'ṫ': 't',\n 'ṭ': 't',\n 'ƭ': 't',\n 'ṯ': 't',\n 'ᵵ': 't',\n 'ƫ': 't',\n 'ʈ': 't',\n 'ŧ': 't',\n 'ᵺ': 'th',\n 'ɐ': 'a',\n 'ᴂ': 'ae',\n 'ǝ': 'e',\n 'ᵷ': 'g',\n 'ɥ': 'h',\n 'ʮ': 'h',\n 'ʯ': 'h',\n 'ᴉ': 'i',\n 'ʞ': 'k',\n 'ꞁ': 'l',\n 'ɯ': 'm',\n 'ɰ': 'm',\n 'ᴔ': 'oe',\n 'ɹ': 'r',\n 'ɻ': 'r',\n 'ɺ': 'r',\n 'ⱹ': 'r',\n 'ʇ': 't',\n 'ʌ': 'v',\n 'ʍ': 'w',\n 'ʎ': 'y',\n 'ꜩ': 'tz',\n 'ú': 'u',\n 'ŭ': 'u',\n 'ǔ': 'u',\n 'û': 'u',\n 'ṷ': 'u',\n 'ü': 'u',\n 'ǘ': 'u',\n 'ǚ': 'u',\n 'ǜ': 'u',\n 'ǖ': 'u',\n 'ṳ': 'u',\n 'ụ': 'u',\n 'ű': 'u',\n 'ȕ': 'u',\n 'ù': 'u',\n 'ủ': 'u',\n 'ư': 'u',\n 'ứ': 'u',\n 'ự': 'u',\n 'ừ': 'u',\n 'ử': 'u',\n 'ữ': 'u',\n 'ȗ': 'u',\n 'ū': 'u',\n 'ṻ': 'u',\n 'ų': 'u',\n 'ᶙ': 'u',\n 'ů': 'u',\n 'ũ': 'u',\n 'ṹ': 'u',\n 'ṵ': 'u',\n 'ᵫ': 'ue',\n 'ꝸ': 'um',\n 'ⱴ': 'v',\n 'ꝟ': 'v',\n 'ṿ': 'v',\n 'ʋ': 'v',\n 'ᶌ': 'v',\n 'ⱱ': 'v',\n 'ṽ': 'v',\n 'ꝡ': 'vy',\n 'ẃ': 'w',\n 'ŵ': 'w',\n 'ẅ': 'w',\n 'ẇ': 'w',\n 'ẉ': 'w',\n 'ẁ': 'w',\n 'ⱳ': 'w',\n 'ẘ': 'w',\n 'ẍ': 'x',\n 'ẋ': 'x',\n 'ᶍ': 'x',\n 'ý': 'y',\n 'ŷ': 'y',\n 'ÿ': 'y',\n 'ẏ': 'y',\n 'ỵ': 'y',\n 'ỳ': 'y',\n 'ƴ': 'y',\n 'ỷ': 'y',\n 'ỿ': 'y',\n 'ȳ': 'y',\n 'ẙ': 'y',\n 'ɏ': 'y',\n 'ỹ': 'y',\n 'ź': 'z',\n 'ž': 'z',\n 'ẑ': 'z',\n 'ʑ': 'z',\n 'ⱬ': 'z',\n 'ż': 'z',\n 'ẓ': 'z',\n 'ȥ': 'z',\n 'ẕ': 'z',\n 'ᵶ': 'z',\n 'ᶎ': 'z',\n 'ʐ': 'z',\n 'ƶ': 'z',\n 'ɀ': 'z',\n 'ff': 'ff',\n 'ffi': 'ffi',\n 'ffl': 'ffl',\n 'fi': 'fi',\n 'fl': 'fl',\n 'ij': 'ij',\n 'œ': 'oe',\n 'st': 'st',\n 'ₐ': 'a',\n 'ₑ': 'e',\n 'ᵢ': 'i',\n 'ⱼ': 'j',\n 'ₒ': 'o',\n 'ᵣ': 'r',\n 'ᵤ': 'u',\n 'ᵥ': 'v',\n 'ₓ': 'x'\n};\n","import { TypeaheadDirective } from './typeahead.directive';\n\nexport class TypeaheadOptions {\n placement: string;\n animation: boolean;\n typeaheadRef: TypeaheadDirective;\n\n constructor(options: TypeaheadOptions) {\n Object.assign(this, options);\n }\n}\n","export class TypeaheadMatch {\n readonly value: string;\n readonly item: any;\n protected header: boolean;\n\n constructor(item: any, value: string = item, header = false) {\n this.item = item;\n this.value = value;\n this.header = header;\n }\n\n isHeader(): boolean {\n return this.header;\n }\n\n toString(): string {\n return this.value;\n }\n}\n","import { latinMap } from './latin-map';\n\nexport function latinize(str: string): string {\n if (!str) {\n return '';\n }\n\n return str.replace(/[^A-Za-z0-9\\[\\] ]/g, function (a: string): string {\n return latinMap[a] || a;\n });\n}\n\nexport function escapeRegexp(queryToEscape: string): string {\n // Regex: capture the whole query string and replace it with the string\n // that will be used to match the results, for example if the capture is\n // 'a' the result will be \\a\n return queryToEscape.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1');\n}\n\n/* tslint:disable */\nexport function tokenize(str: string,\n wordRegexDelimiters = ' ',\n phraseRegexDelimiters = ''): Array<string> {\n /* tslint:enable */\n const regexStr = `(?:[${phraseRegexDelimiters}])([^${phraseRegexDelimiters}]+)` +\n `(?:[${phraseRegexDelimiters}])|([^${wordRegexDelimiters}]+)`;\n const preTokenized: string[] = str.split(new RegExp(regexStr, 'g'));\n const result: string[] = [];\n const preTokenizedLength: number = preTokenized.length;\n let token: string;\n const replacePhraseDelimiters = new RegExp(`[${phraseRegexDelimiters}]+`, 'g');\n\n for (let i = 0; i < preTokenizedLength; i += 1) {\n token = preTokenized[i];\n if (token && token.length && token !== wordRegexDelimiters) {\n result.push(token.replace(replacePhraseDelimiters, ''));\n }\n }\n\n return result;\n}\n\nexport function getValueFromObject(object: any, option: string): string {\n if (!option || typeof object !== 'object') {\n return object.toString();\n }\n\n if (option.endsWith('()')) {\n const functionName = option.slice(0, option.length - 2);\n\n return object[functionName]().toString();\n }\n\n const properties: string = option\n .replace(/\\[(\\w+)\\]/g, '.$1')\n .replace(/^\\./, '');\n const propertiesArray: string[] = properties.split('.');\n\n for (const property of propertiesArray) {\n if (property in object) {\n // tslint:disable-next-line\n object = object[property];\n }\n }\n if (!object) {return ''; }\n\n return object.toString();\n}\n","import {\n Component,\n ElementRef,\n HostListener,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n Renderer2\n} from '@angular/core';\n\nimport { isBs3, Utils } from '../utils';\nimport { latinize } from './typeahead-utils';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { TypeaheadDirective } from './typeahead.directive';\n\n@Component({\n selector: 'typeahead-container',\n // tslint:disable-next-line\n template: \"<!-- inject options list template --> <ng-template [ngTemplateOutlet]=\\\"optionsListTemplate || (isBs4 ? bs4Template : bs3Template)\\\" [ngTemplateOutletContext]=\\\"{matches:matches, itemTemplate:itemTemplate, query:query}\\\"></ng-template> <!-- default options item template --> <ng-template #bsItemTemplate let-match=\\\"match\\\" let-query=\\\"query\\\"><span [innerHtml]=\\\"highlight(match, query)\\\"></span> </ng-template> <!-- Bootstrap 3 options list template --> <ng-template #bs3Template> <ul class=\\\"dropdown-menu\\\" #ulElement [style.overflow-y]=\\\"needScrollbar ? 'scroll': 'auto'\\\" [style.height]=\\\"needScrollbar ? guiHeight: 'auto'\\\"> <ng-template ngFor let-match let-i=\\\"index\\\" [ngForOf]=\\\"matches\\\"> <li #liElements *ngIf=\\\"match.isHeader()\\\" class=\\\"dropdown-header\\\">{{ match }}</li> <li #liElements *ngIf=\\\"!match.isHeader()\\\" [class.active]=\\\"isActive(match)\\\" (mouseenter)=\\\"selectActive(match)\\\"> <a href=\\\"#\\\" (click)=\\\"selectMatch(match, $event)\\\" tabindex=\\\"-1\\\"> <ng-template [ngTemplateOutlet]=\\\"itemTemplate || bsItemTemplate\\\" [ngTemplateOutletContext]=\\\"{item:match.item, index:i, match:match, query:query}\\\"></ng-template> </a> </li> </ng-template> </ul> </ng-template> <!-- Bootstrap 4 options list template --> <ng-template #bs4Template> <ng-template ngFor let-match let-i=\\\"index\\\" [ngForOf]=\\\"matches\\\"> <h6 *ngIf=\\\"match.isHeader()\\\" class=\\\"dropdown-header\\\">{{ match }}</h6> <ng-template [ngIf]=\\\"!match.isHeader()\\\"> <button #liElements class=\\\"dropdown-item\\\" (click)=\\\"selectMatch(match, $event)\\\" (mouseenter)=\\\"selectActive(match)\\\" [class.active]=\\\"isActive(match)\\\"> <ng-template [ngTemplateOutlet]=\\\"itemTemplate || bsItemTemplate\\\" [ngTemplateOutletContext]=\\\"{item:match.item, index:i, match:match, query:query}\\\"></ng-template> </button> </ng-template> </ng-template> </ng-template> \",\n host: {\n class: 'dropdown open',\n '[class.dropdown-menu]': 'isBs4',\n '[style.overflow-y]' : `isBs4 && needScrollbar ? 'scroll': 'visible'`,\n '[style.height]': `isBs4 && needScrollbar ? guiHeight: 'auto'`,\n '[style.visibility]': `typeaheadScrollable ? 'hidden' : 'visible'`,\n '[class.dropup]': 'dropup',\n style: 'position: absolute;display: block;'\n }\n})\nexport class TypeaheadContainerComponent {\n parent: TypeaheadDirective;\n query: any;\n element: ElementRef;\n isFocused = false;\n top: string;\n left: string;\n display: string;\n placement: string;\n dropup: boolean;\n guiHeight: string;\n needScrollbar: boolean;\n\n get isBs4(): boolean {\n return !isBs3();\n }\n\n protected _active: TypeaheadMatch;\n protected _matches: TypeaheadMatch[] = [];\n\n @ViewChild('ulElement')\n private ulElement: ElementRef;\n\n @ViewChildren('liElements')\n private liElements: QueryList<ElementRef>;\n\n constructor(element: ElementRef, private renderer: Renderer2) {\n this.element = element;\n }\n\n get active(): TypeaheadMatch {\n return this._active;\n }\n\n get matches(): TypeaheadMatch[] {\n return this._matches;\n }\n\n set matches(value: TypeaheadMatch[]) {\n this._matches = value;\n this.needScrollbar = this.typeaheadScrollable && this.typeaheadOptionsInScrollableView < this.matches.length;\n if (this.typeaheadScrollable) {\n setTimeout(() => {\n this.setScrollableMode();\n });\n }\n\n if (this._matches.length > 0) {\n this._active = this._matches[0];\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n }\n }\n\n get optionsListTemplate(): TemplateRef<any> {\n return this.parent ? this.parent.optionsListTemplate : undefined;\n }\n\n get typeaheadScrollable(): boolean {\n return this.parent ? this.parent.typeaheadScrollable : false;\n }\n\n\n get typeaheadOptionsInScrollableView(): number {\n return this.parent ? this.parent.typeaheadOptionsInScrollableView : 5;\n }\n\n get itemTemplate(): TemplateRef<any> {\n return this.parent ? this.parent.typeaheadItemTemplate : undefined;\n }\n\n selectActiveMatch(): void {\n this.selectMatch(this._active);\n }\n\n prevActiveMatch(): void {\n const index = this.matches.indexOf(this._active);\n this._active = this.matches[\n index - 1 < 0 ? this.matches.length - 1 : index - 1\n ];\n if (this._active.isHeader()) {\n this.prevActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollPrevious(index);\n }\n }\n\n nextActiveMatch(): void {\n const index = this.matches.indexOf(this._active);\n this._active = this.matches[\n index + 1 > this.matches.length - 1 ? 0 : index + 1\n ];\n if (this._active.isHeader()) {\n this.nextActiveMatch();\n }\n if (this.typeaheadScrollable) {\n this.scrollNext(index);\n }\n }\n\n selectActive(value: TypeaheadMatch): void {\n this.isFocused = true;\n this._active = value;\n }\n\n highlight(match: TypeaheadMatch, query: any): string {\n let itemStr: string = match.value;\n let itemStrHelper: string = (this.parent && this.parent.typeaheadLatinize\n ? latinize(itemStr)\n : itemStr).toLowerCase();\n let startIdx: number;\n let tokenLen: number;\n // Replaces the capture string with the same string inside of a \"strong\" tag\n if (typeof query === 'object') {\n const queryLen: number = query.length;\n for (let i = 0; i < queryLen; i += 1) {\n // query[i] is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query[i]);\n tokenLen = query[i].length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n itemStrHelper =\n `${itemStrHelper.substring(0, startIdx)} ${' '.repeat(tokenLen)} ` +\n `${itemStrHelper.substring(startIdx + tokenLen)}`;\n }\n }\n } else if (query) {\n // query is already latinized and lower case\n startIdx = itemStrHelper.indexOf(query);\n tokenLen = query.length;\n if (startIdx >= 0 && tokenLen > 0) {\n itemStr =\n `${itemStr.substring(0, startIdx)}<strong>${itemStr.substring(startIdx, startIdx + tokenLen)}</strong>` +\n `${itemStr.substring(startIdx + tokenLen)}`;\n }\n }\n\n return itemStr;\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n focusLost(): void {\n this.isFocused = false;\n }\n\n isActive(value: TypeaheadMatch): boolean {\n return this._active === value;\n }\n\n selectMatch(value: TypeaheadMatch, e: Event = void 0): boolean {\n if (e) {\n e.stopPropagation();\n e.preventDefault();\n }\n this.parent.changeModel(value);\n setTimeout(() => this.parent.typeaheadOnSelect.emit(value), 0);\n\n return false;\n }\n\n setScrollableMode(): void {\n if (!this.ulElement) {\n this.ulElement = this.element;\n }\n if (this.liElements.first) {\n const ulStyles = Utils.getStyles(this.ulElement.nativeElement);\n const liStyles = Utils.getStyles(this.liElements.first.nativeElement);\n const ulPaddingBottom = parseFloat((ulStyles['padding-bottom'] ? ulStyles['padding-bottom'] : '').replace('px', ''));\n const ulPaddingTop = parseFloat((ulStyles['padding-top'] ? ulStyles['padding-top'] : '0').replace('px', ''));\n const optionHeight = parseFloat((liStyles['height'] ? liStyles['height'] : '0').replace('px', ''));\n const height = this.typeaheadOptionsInScrollableView * optionHeight;\n this.guiHeight = `${height + ulPaddingTop + ulPaddingBottom}px`;\n }\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'visible');\n }\n\n scrollPrevious(index: number): void {\n if (index === 0) {\n this.scrollToBottom();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index - 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop = liElement.nativeElement.offsetTop;\n }\n }\n }\n\n scrollNext(index: number): void {\n if (index + 1 > this.matches.length - 1) {\n this.scrollToTop();\n\n return;\n }\n if (this.liElements) {\n const liElement = this.liElements.toArray()[index + 1];\n if (liElement && !this.isScrolledIntoView(liElement.nativeElement)) {\n this.ulElement.nativeElement.scrollTop =\n liElement.nativeElement.offsetTop -\n this.ulElement.nativeElement.offsetHeight +\n liElement.nativeElement.offsetHeight;\n }\n }\n }\n\n\n private isScrolledIntoView = function (elem: HTMLElement) {\n const containerViewTop = this.ulElement.nativeElement.scrollTop;\n const containerViewBottom = containerViewTop + this.ulElement.nativeElement.offsetHeight;\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.offsetHeight;\n\n return ((elemBottom <= containerViewBottom) && (elemTop >= containerViewTop));\n };\n\n private scrollToBottom(): void {\n this.ulElement.nativeElement.scrollTop = this.ulElement.nativeElement.scrollHeight;\n }\n\n private scrollToTop(): void {\n this.ulElement.nativeElement.scrollTop = 0;\n }\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\n/**\n * @deprecated use {@link iterator} instead\n */\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\n/** Identifies an input as being an Iterable */\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map\n","/**\n * Subscribes to an ArrayLike with a subscriber\n * @param array The array or array-like to subscribe to\n */\n/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n if (!subscriber.closed) {\n subscriber.complete();\n }\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToArray } from '../util/subscribeToArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_util_subscribeToPromise PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToPromise } from '../util/subscribeToPromise';\nexport function fromPromise(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToPromise(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n });\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n // Finalize the iterator if it happens to be a Generator\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator,_util_subscribeToIterable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { subscribeToIterable } from '../util/subscribeToIterable';\nexport function fromIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n if (!scheduler) {\n return new Observable(subscribeToIterable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n // Finalize generators\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromIterable.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\n/**\n * Subscribes to an object that implements Symbol.observable with the given\n * Subscriber.\n * @param obj An object that implements Symbol.observable\n */\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n // Should be caught by observable subscribe function error handling.\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable,_util_subscribeToObservable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToObservable } from '../util/subscribeToObservable';\nexport function fromObservable(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToObservable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromObservable.js.map\n","/** PURE_IMPORTS_START _Observable,_subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (result instanceof Observable) {\n return function (subscriber) {\n if (result._isScalar) {\n subscriber.next(result.value);\n subscriber.complete();\n return undefined;\n }\n else {\n return result.subscribe(subscriber);\n }\n };\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else if (result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _Observable,_util_isPromise,_util_isArrayLike,_util_isInteropObservable,_util_isIterable,_fromArray,_fromPromise,_fromIterable,_fromObservable,_util_subscribeTo PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isIterable } from '../util/isIterable';\nimport { fromArray } from './fromArray';\nimport { fromPromise } from './fromPromise';\nimport { fromIterable } from './fromIterable';\nimport { fromObservable } from './fromObservable';\nimport { subscribeTo } from '../util/subscribeTo';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return fromPromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return fromArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return fromIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=from.js.map\n","/* tslint:disable:max-file-line-count */\nimport {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { from, Observable, Subscription } from 'rxjs';\nimport { ComponentLoader, ComponentLoaderFactory } from '../component-loader/index';\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadMatch } from './typeahead-match.class';\nimport { getValueFromObject, latinize, tokenize } from './typeahead-utils';\nimport { debounceTime, filter, mergeMap, switchMap, toArray } from 'rxjs/operators';\n\n@Directive({selector: '[typeahead]', exportAs: 'bs-typeahead'})\nexport class TypeaheadDirective implements OnInit, OnDestroy {\n /** options source, can be Array of strings, objects or\n * an Observable for external matching process\n */\n @Input() typeahead: any;\n /** minimal no of characters that needs to be entered before\n * typeahead kicks-in. When set to 0, typeahead shows on focus with full\n * list of options (limited as normal by typeaheadOptionsLimit)\n */\n @Input() typeaheadMinLength: number = void 0;\n /** minimal wait time after last character typed before typeahead kicks-in */\n @Input() typeaheadWaitMs: number;\n /** maximum length of options items list */\n @Input() typeaheadOptionsLimit: number;\n /** when options source is an array of objects, the name of field\n * that contains the options value, we use array item as option in case\n * of this field is missing. Supports nested properties and methods.\n */\n @Input() typeaheadOptionField: string;\n /** when options source is an array of objects, the name of field that\n * contains the group value, matches are grouped by this field when set.\n */\n @Input() typeaheadGroupField: string;\n /** should be used only in case of typeahead attribute is array.\n * If true - loading of options will be async, otherwise - sync.\n * true make sense if options array is large.\n */\n @Input() typeaheadAsync: boolean = void 0;\n /** match latin symbols.\n * If true the word súper would match super and vice versa.\n */\n @Input() typeaheadLatinize = true;\n /** Can be use to search words by inserting a single white space between each characters\n * for example 'C a l i f o r n i a' will match 'California'.\n */\n @Input() typeaheadSingleWords = true;\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to break words. Defaults to space.\n */\n @Input() typeaheadWordDelimiters = ' ';\n /** should be used only in case typeaheadSingleWords attribute is true.\n * Sets the word delimiter to match exact phrase.\n * Defaults to simple and double quotes.\n */\n @Input() typeaheadPhraseDelimiters = '\\'\"';\n /** used to specify a custom item template.\n * Template variables exposed are called item and index;\n */\n @Input() typeaheadItemTemplate: TemplateRef<any>;\n /** used to specify a custom options list template.\n * Template variables: matches, itemTemplate, query\n */\n @Input() optionsListTemplate: TemplateRef<any>;\n /** specifies if typeahead is scrollable */\n @Input() typeaheadScrollable = false;\n /** specifies number of options to show in scroll view */\n @Input() typeaheadOptionsInScrollableView = 5;\n /** fired when 'busy' state of this component was changed,\n * fired on async mode only, returns boolean\n */\n @Output() typeaheadLoading = new EventEmitter<boolean>();\n /** fired on every key event and returns true\n * in case of matches are not detected\n */\n @Output() typeaheadNoResults = new EventEmitter<boolean>();\n /** fired when option was selected, return object with data of this option */\n @Output() typeaheadOnSelect = new EventEmitter<TypeaheadMatch>();\n /** fired when blur event occurres. returns the active item */\n @Output() typeaheadOnBlur = new EventEmitter<any>();\n\n /**\n * A selector specifying the element the typeahead should be appended to.\n * Currently only supports \"body\".\n */\n @Input() container: string;\n\n /** This attribute indicates that the dropdown should be opened upwards */\n @Input() dropup = false;\n\n // not yet implemented\n /** if false restrict model values to the ones selected from the popup only will be provided */\n // @Input() protected typeaheadEditable:boolean;\n /** if false the first match automatically will not be focused as you type */\n // @Input() protected typeaheadFocusFirst:boolean;\n /** format the ng-model result after selection */\n // @Input() protected typeaheadInputFormatter:any;\n /** if true automatically select an item when there is one option that exactly matches the user input */\n // @Input() protected typeaheadSelectOnExact:boolean;\n /** if true select the currently highlighted match on blur */\n // @Input() protected typeaheadSelectOnBlur:boolean;\n /** if false don't focus the input element the typeahead directive is associated with on selection */\n // @Input() protected typeaheadFocusOnSelect:boolean;\n\n _container: TypeaheadContainerComponent;\n isTypeaheadOptionsListActive = false;\n\n protected keyUpEventEmitter: EventEmitter<any> = new EventEmitter();\n protected _matches: TypeaheadMatch[];\n protected placement = 'bottom-left';\n // protected popup:ComponentRef<TypeaheadContainerComponent>;\n\n private _typeahead: ComponentLoader<TypeaheadContainerComponent>;\n private _subscriptions: Subscription[] = [];\n private _outsideClickListener: Function;\n\n constructor(private ngControl: NgControl,\n private element: ElementRef,\n viewContainerRef: ViewContainerRef,\n private renderer: Renderer2,\n cis: ComponentLoaderFactory,\n private changeDetection: ChangeDetectorRef) {\n this._typeahead = cis.createLoader<TypeaheadContainerComponent>(\n element,\n viewContainerRef,\n renderer\n );\n }\n\n ngOnInit(): void {\n this.typeaheadOptionsLimit = this.typeaheadOptionsLimit || 20;\n this.typeaheadMinLength =\n this.typeaheadMinLength === void 0 ? 1 : this.typeaheadMinLength;\n this.typeaheadWaitMs = this.typeaheadWaitMs || 0;\n\n // async should be false in case of array\n if (\n this.typeaheadAsync === undefined &&\n !(this.typeahead instanceof Observable)\n ) {\n this.typeaheadAsync = false;\n }\n\n if (this.typeahead instanceof Observable) {\n this.typeaheadAsync = true;\n }\n\n if (this.typeaheadAsync) {\n this.asyncActions();\n } else {\n this.syncActions();\n }\n }\n\n @HostListener('input', ['$event'])\n onInput(e: any): void {\n // For `<input>`s, use the `value` property. For others that don't have a\n // `value` (such as `<span contenteditable=\"true\">`), use either\n // `textContent` or `innerText` (depending on which one is supported, i.e.\n // Firefox or IE).\n const value =\n e.target.value !== undefined\n ? e.target.value\n : e.target.textContent !== undefined\n ? e.target.textContent\n : e.target.innerText;\n if (value != null && value.trim().length >= this.typeaheadMinLength) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(e.target.value);\n } else {\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(false);\n this.hide();\n }\n }\n\n @HostListener('keyup', ['$event'])\n onChange(e: any): void {\n if (this._container) {\n // esc\n if (e.keyCode === 27) {\n this.hide();\n\n return;\n }\n\n // up\n if (e.keyCode === 38) {\n this._container.prevActiveMatch();\n\n return;\n }\n\n // down\n if (e.keyCode === 40) {\n this._container.nextActiveMatch();\n\n return;\n }\n\n // enter, tab\n if (e.keyCode === 13) {\n this._container.selectActiveMatch();\n\n return;\n }\n }\n }\n\n @HostListener('click')\n @HostListener('focus')\n onFocus(): void {\n if (this.typeaheadMinLength === 0) {\n this.typeaheadLoading.emit(true);\n this.keyUpEventEmitter.emit(this.element.nativeElement.value || '');\n }\n }\n\n @HostListener('blur')\n onBlur(): void {\n if (this._container && !this._container.isFocused) {\n this.typeaheadOnBlur.emit(this._container.active);\n }\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(e: any): void {\n // no container - no problems\n if (!this._container) {\n return;\n }\n\n // if an item is visible - prevent form submission\n if (e.keyCode === 13) {\n e.preventDefault();\n\n return;\n }\n\n // if an item is visible - don't change focus\n if (e.keyCode === 9) {\n e.preventDefault();\n this._container.selectActiveMatch();\n\n return;\n }\n }\n\n changeModel(match: TypeaheadMatch): void {\n const valueStr: string = match.value;\n this.ngControl.viewToModelUpdate(valueStr);\n (this.ngControl.control).setValue(valueStr);\n this.changeDetection.markForCheck();\n this.hide();\n }\n\n get matches(): any[] {\n return this._matches;\n }\n\n show(): void {\n this._typeahead\n .attach(TypeaheadContainerComponent)\n // todo: add append to body, after updating positioning service\n .to(this.container)\n .position({attachment: `${this.dropup ? 'top' : 'bottom'} left`})\n .show({\n typeaheadRef: this,\n placement: this.placement,\n animation: false,\n dropup: this.dropup\n });\n\n this._outsideClickListener = this.renderer.listen('document', 'click', (e: MouseEvent) => {\n if (this.typeaheadMinLength === 0 && this.element.nativeElement.contains(e.target)) {\n return;\n }\n this.onOutsideClick();\n });\n\n this._container = this._typeahead.instance;\n this._container.parent = this;\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? tokenize(\n normalizedQuery,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters\n )\n : normalizedQuery;\n this._container.matches = this._matches;\n this.element.nativeElement.focus();\n }\n\n hide(): void {\n if (this._typeahead.isShown) {\n this._typeahead.hide();\n this._outsideClickListener();\n this._container = null;\n }\n }\n\n onOutsideClick(): void {\n if (this._container && !this._container.isFocused) {\n this.hide();\n }\n }\n\n ngOnDestroy(): any {\n // clean up subscriptions\n for (const sub of this._subscriptions) {\n sub.unsubscribe();\n }\n this._typeahead.dispose();\n }\n\n protected asyncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime(this.typeaheadWaitMs),\n switchMap(() => this.typeahead)\n )\n .subscribe((matches: any[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected syncActions(): void {\n this._subscriptions.push(\n this.keyUpEventEmitter\n .pipe(\n debounceTime(this.typeaheadWaitMs),\n mergeMap((value: string) => {\n const normalizedQuery = this.normalizeQuery(value);\n\n return from(this.typeahead)\n .pipe(\n filter((option: any) => {\n return (\n option &&\n this.testMatch(this.normalizeOption(option), normalizedQuery)\n );\n }),\n toArray()\n );\n })\n )\n .subscribe((matches: any[]) => {\n this.finalizeAsyncCall(matches);\n })\n );\n }\n\n protected normalizeOption(option: any): any {\n const optionValue: string = getValueFromObject(\n option,\n this.typeaheadOptionField\n );\n const normalizedOption = this.typeaheadLatinize\n ? latinize(optionValue)\n : optionValue;\n\n return normalizedOption.toLowerCase();\n }\n\n protected normalizeQuery(value: string): any {\n // If singleWords, break model here to not be doing extra work on each\n // iteration\n let normalizedQuery: any = (this.typeaheadLatinize\n ? latinize(value)\n : value)\n .toString()\n .toLowerCase();\n normalizedQuery = this.typeaheadSingleWords\n ? tokenize(\n normalizedQuery,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters\n )\n : normalizedQuery;\n\n return normalizedQuery;\n }\n\n protected testMatch(match: string, test: any): boolean {\n let spaceLength: number;\n\n if (typeof test === 'object') {\n spaceLength = test.length;\n for (let i = 0; i < spaceLength; i += 1) {\n if (test[i].length > 0 && match.indexOf(test[i]) < 0) {\n return false;\n }\n }\n\n return true;\n }\n\n return match.indexOf(test) >= 0;\n }\n\n protected finalizeAsyncCall(matches: any[]): void {\n this.prepareMatches(matches);\n\n this.typeaheadLoading.emit(false);\n this.typeaheadNoResults.emit(!this.hasMatches());\n\n if (!this.hasMatches()) {\n this.hide();\n\n return;\n }\n\n if (this._container) {\n // This improves the speed as it won't have to be done for each list item\n const normalizedQuery = (this.typeaheadLatinize\n ? latinize(this.ngControl.control.value)\n : this.ngControl.control.value)\n .toString()\n .toLowerCase();\n this._container.query = this.typeaheadSingleWords\n ? tokenize(\n normalizedQuery,\n this.typeaheadWordDelimiters,\n this.typeaheadPhraseDelimiters\n )\n : normalizedQuery;\n this._container.matches = this._matches;\n } else {\n this.show();\n }\n }\n\n protected prepareMatches(options: any[]): void {\n const limited: any[] = options.slice(0, this.typeaheadOptionsLimit);\n\n if (this.typeaheadGroupField) {\n let matches: TypeaheadMatch[] = [];\n\n // extract all group names\n const groups = limited\n .map((option: any) =>\n getValueFromObject(option, this.typeaheadGroupField)\n )\n .filter((v: string, i: number, a: any[]) => a.indexOf(v) === i);\n\n groups.forEach((group: string) => {\n // add group header to array of matches\n matches.push(new TypeaheadMatch(group, group, true));\n\n // add each item of group to array of matches\n matches = matches.concat(\n limited\n .filter(\n (option: any) =>\n getValueFromObject(option, this.typeaheadGroupField) === group\n )\n .map(\n (option: any) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n )\n );\n });\n\n this._matches = matches;\n } else {\n this._matches = limited.map(\n (option: any) =>\n new TypeaheadMatch(\n option,\n getValueFromObject(option, this.typeaheadOptionField)\n )\n );\n }\n }\n\n protected hasMatches(): boolean {\n return this._matches.length > 0;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { TypeaheadContainerComponent } from './typeahead-container.component';\nimport { TypeaheadDirective } from './typeahead.directive';\nimport { ComponentLoaderFactory } from '../component-loader/index';\nimport { PositioningService } from '../positioning/index';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TypeaheadContainerComponent, TypeaheadDirective],\n exports: [TypeaheadContainerComponent, TypeaheadDirective],\n entryComponents: [TypeaheadContainerComponent]\n})\nexport class TypeaheadModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TypeaheadModule,\n providers: [ComponentLoaderFactory, PositioningService]\n };\n }\n}\n","export { latinMap } from './latin-map';\nexport { TypeaheadOptions } from './typeahead-options.class';\nexport { TypeaheadMatch } from './typeahead-match.class';\n\nexport {\n escapeRegexp,\n getValueFromObject,\n tokenize,\n latinize\n} from './typeahead-utils';\nexport { TypeaheadContainerComponent } from './typeahead-container.component';\nexport { TypeaheadDirective } from './typeahead.directive';\nexport { TypeaheadModule } from './typeahead.module';\n","import { Injectable } from '@angular/core';\n\n/**\n * Configuration service for the Popover directive.\n * You can inject this service, typically in your root component, and customize\n * the values of its properties in order to provide default values for all the\n * popovers used in the application.\n */\n@Injectable()\nexport class PopoverConfig {\n /**\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\", \"auto\"\n */\n placement = 'top';\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n triggers = 'click';\n\n outsideClick = false;\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n container: string;\n}\n","import { ChangeDetectionStrategy, Input, Component } from '@angular/core';\nimport { PopoverConfig } from './popover.config';\nimport { isBs3 } from '../utils/theme-provider';\n\n@Component({\n selector: 'popover-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n // tslint:disable-next-line\n host: {\n '[class]':\n '\"popover in popover-\" + placement + \" \" + \"bs-popover-\" + placement + \" \" + placement + \" \" + containerClass',\n '[class.show]': '!isBs3',\n role: 'tooltip',\n style: 'display:block;'\n },\n styles: [\n `\n :host.bs-popover-top .arrow, :host.bs-popover-bottom .arrow {\n left: 50%;\n margin-left: -8px;\n }\n :host.bs-popover-left .arrow, :host.bs-popover-right .arrow {\n top: 50%;\n margin-top: -8px;\n }\n `\n ],\n template: \"<div class=\\\"popover-arrow arrow\\\"></div> <h3 class=\\\"popover-title popover-header\\\" *ngIf=\\\"title\\\">{{ title }}</h3> <div class=\\\"popover-content popover-body\\\"> <ng-content></ng-content> </div> \"\n})\nexport class PopoverContainerComponent {\n @Input() placement: string;\n @Input() title: string;\n containerClass: string;\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n constructor(config: PopoverConfig) {\n Object.assign(this, config);\n }\n}\n","import {\n Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output,\n Renderer2, TemplateRef, ViewContainerRef\n} from '@angular/core';\nimport { PopoverConfig } from './popover.config';\nimport { ComponentLoader, ComponentLoaderFactory } from '../component-loader/index';\nimport { PopoverContainerComponent } from './popover-container.component';\n\n/**\n * A lightweight, extensible directive for fancy popover creation.\n */\n@Directive({selector: '[popover]', exportAs: 'bs-popover'})\nexport class PopoverDirective implements OnInit, OnDestroy {\n /**\n * Content to be displayed as popover.\n */\n @Input() popover: string | TemplateRef<any>;\n /**\n * Context to be used if popover is a template.\n */\n @Input() popoverContext: any;\n /**\n * Title of a popover.\n */\n @Input() popoverTitle: string;\n /**\n * Placement of a popover. Accepts: \"top\", \"bottom\", \"left\", \"right\"\n */\n @Input() placement: 'top' | 'bottom' | 'left' | 'right' | 'auto';\n /**\n * Close popover on outside click\n */\n @Input() outsideClick = false;\n /**\n * Specifies events that should trigger. Supports a space separated list of\n * event names.\n */\n @Input() triggers: string;\n /**\n * A selector specifying the element the popover should be appended to.\n * Currently only supports \"body\".\n */\n @Input() container: string;\n\n /**\n * Css class for popover container\n */\n @Input() containerClass = '';\n\n /**\n * Returns whether or not the popover is currently being shown\n */\n @Input()\n get isOpen(): boolean {\n return this._popover.isShown;\n }\n\n set isOpen(value: boolean) {\n if (value) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Emits an event when the popover is shown\n */\n @Output() onShown: EventEmitter<any>;\n /**\n * Emits an event when the popover is hidden\n */\n @Output() onHidden: EventEmitter<any>;\n\n private _popover: ComponentLoader<PopoverContainerComponent>;\n private _isInited = false;\n\n constructor(_elementRef: ElementRef,\n _renderer: Renderer2,\n _viewContainerRef: ViewContainerRef,\n _config: PopoverConfig,\n cis: ComponentLoaderFactory) {\n this._popover = cis\n .createLoader<PopoverContainerComponent>(\n _elementRef,\n _viewContainerRef,\n _renderer\n )\n .provide({provide: PopoverConfig, useValue: _config});\n Object.assign(this, _config);\n this.onShown = this._popover.onShown;\n this.onHidden = this._popover.onHidden;\n\n // fix: no focus on button on Mac OS #1795\n if (typeof window !== 'undefined') {\n _elementRef.nativeElement.addEventListener('click', function () {\n try {\n _elementRef.nativeElement.focus();\n } catch (err) {\n return;\n }\n });\n }\n }\n\n /**\n * Opens an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n show(): void {\n if (this._popover.isShown || !this.popover) {\n return;\n }\n\n this._popover\n .attach(PopoverContainerComponent)\n .to(this.container)\n .position({attachment: this.placement})\n .show({\n content: this.popover,\n context: this.popoverContext,\n placement: this.placement,\n title: this.popoverTitle,\n containerClass: this.containerClass\n });\n this.isOpen = true;\n }\n\n /**\n * Closes an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n hide(): void {\n if (this.isOpen) {\n this._popover.hide();\n this.isOpen = false;\n }\n }\n\n /**\n * Toggles an element’s popover. This is considered a “manual” triggering of\n * the popover.\n */\n toggle(): void {\n if (this.isOpen) {\n return this.hide();\n }\n\n this.show();\n }\n\n ngOnInit(): any {\n // fix: seems there are an issue with `routerLinkActive`\n // which result in duplicated call ngOnInit without call to ngOnDestroy\n // read more: https://github.com/valor-software/ngx-bootstrap/issues/1885\n if (this._isInited) {\n return;\n }\n this._isInited = true;\n\n this._popover.listen({\n triggers: this.triggers,\n outsideClick: this.outsideClick,\n show: () => this.show()\n });\n }\n\n ngOnDestroy(): any {\n this._popover.dispose();\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ComponentLoaderFactory } from '../component-loader/index';\nimport { PositioningService } from '../positioning/index';\nimport { PopoverConfig } from './popover.config';\nimport { PopoverDirective } from './popover.directive';\nimport { PopoverContainerComponent } from './popover-container.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [PopoverDirective, PopoverContainerComponent],\n exports: [PopoverDirective],\n entryComponents: [PopoverContainerComponent]\n})\nexport class PopoverModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: PopoverModule,\n providers: [PopoverConfig, ComponentLoaderFactory, PositioningService]\n };\n }\n}\n","export { PopoverDirective } from './popover.directive';\nexport { PopoverModule } from './popover.module';\nexport { PopoverConfig } from './popover.config';\nexport { PopoverContainerComponent } from './popover-container.component';\n","import './units/index';\n\nexport {add, subtract} from './moment/add-subtract';\n\nexport { getMonth } from './utils/date-getters';\n\nexport { parseDate } from './create/local';\nexport { formatDate } from './format';\n\nexport {\n defineLocale,\n getSetGlobalLocale,\n listLocales\n} from './locale/locales';\n\nexport { LocaleData } from './locale/locale.class';\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\nimport { LocaleData } from '../locale/locale.class';\n\nconst symbolMap: {[key: string]: string} = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n};\nconst numberMap: {[key: string]: string} = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n};\nconst pluralForm = function (num: number): number {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nconst plurals: {[key: string]: [string, string, [string, string], string, string, string]} = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n};\nconst pluralize = function (u: string) {\n return function (num: number, withoutSuffix: boolean): string {\n const f = pluralForm(num);\n let str = plurals[u][pluralForm(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return (str as string).replace(/%d/i, num.toString());\n };\n};\nconst months: string[] = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n];\n\nexport const arLocale: LocaleData = {\n abbr: 'ar',\n months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM(input) {\n return 'م' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse(str: string): string {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat(str: string) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\nconst months: string[] = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_');\nconst monthsShort: string[] = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n\nfunction plural(num: number): boolean {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const result = num + ' ';\n\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n // break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n // break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n // break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n // break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n // break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n // break;\n }\n}\n\nexport const csLocale: LocaleData = {\n abbr: 'cs',\n months,\n monthsShort,\n monthsParse: (function (months, monthsShort) {\n let i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (červenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months, monthsShort)),\n shortMonthsParse: (function (monthsShort) {\n let i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse: (function (months) {\n let i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months)),\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Danish (Denmark) [da]\n//! author : Per Hansen : https://github.com/perhp\n\nexport const daLocale: LocaleData = {\n abbr: 'da',\n months : 'Januar_Februar_Marts_April_Maj_Juni_Juli_August_September_Oktober_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Maj_Jun_Jul_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays : 'Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag'.split('_'),\n weekdaysShort : 'Søn_Man_Tir_Ons_Tor_Fre_Lør'.split('_'),\n weekdaysMin : 'Sø_Ma_Ti_On_To_Fr_Lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\nfunction processRelativeTime(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const format: { [key: string]: [string, string] } = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [num + ' Tage', num + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [num + ' Monate', num + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [num + ' Jahre', num + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n}\n\nexport const deLocale: LocaleData = {\n abbr: 'de',\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\nexport const enGbLocale: LocaleData = {\n abbr: 'en-gb',\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n const b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return num + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esLocale: LocaleData = {\n abbr: 'es',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esDoLocale: LocaleData = {\n abbr: 'es-do',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nexport const esUsLocale: LocaleData = {\n abbr: 'es-us',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM [de] D [de] YYYY',\n LLL: 'MMMM [de] D [de] YYYY h:mm A',\n LLLL: 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n// https://github.com/moment/moment/blob/develop/locale/fi.js\n\nvar numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(num, isFuture) + ' ' + result;\n return result;\n}\n\nfunction verbalNumber(num: number, isFuture: boolean) {\n return num < 10 ? (isFuture ? numbersFuture[num] : numbersPast[num]) : num;\n}\n\nexport const fiLocale: LocaleData = {\n abbr: 'fi',\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\nexport const frLocale: LocaleData = {\n abbr: 'fr',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return num + (num === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\nlet symbolMap: {[key: string]: string} = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap: {[key: string]: string} = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\nexport const hiLocale: LocaleData = {\n abbr: 'hi',\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष'\n },\n preparse(str: string): string {\n return str.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat(str: string): string {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\nlet weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + ((isFuture || withoutSuffix) ? ' másodperc' : ' másodperce');\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n}\nfunction week(date: Date, isFuture: boolean) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[getDayOfWeek(date)] + '] LT[-kor]';\n}\n\nexport const huLocale: LocaleData = {\n abbr: 'hu',\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek (date: Date) {\n return week(date, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek (date: Date) {\n return week(date, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Indonesia [id]\n//! author : Romy Kusuma : https://github.com/rkusuma\n//! reference: https://github.com/moment/moment/blob/develop/locale/id.js\n\nexport const idLocale: LocaleData = {\n abbr: 'id',\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n\nexport const itLocale: LocaleData = {\n abbr: 'it',\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future(num: number): string {\n return ((/^[0-9].+$/).test(num.toString(10)) ? 'tra' : 'in') + ' ' + num;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\nexport const jaLocale: LocaleData = {\n abbr: 'ja',\n months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 HH:mm dddd',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日 HH:mm dddd'\n },\n meridiemParse: /午前|午後/i,\n isPM (input) {\n return input === '午後';\n },\n meridiem (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : '[来週]dddd LT',\n lastDay : '[昨日] LT',\n lastWeek : '[前週]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n default:\n return num.toString(10);\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\nexport const koLocale: LocaleData = {\n abbr: 'ko',\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '일';\n case 'M':\n return num + '월';\n case 'w':\n case 'W':\n return num + '주';\n default:\n return num.toString(10);\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return num + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return num + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return num + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return num + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return num + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return num + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return num.toString(10);\n }\n}\n\nexport const mnLocale: LocaleData = {\n abbr: 'mn',\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + ' өдөр';\n default:\n return num.toString(10);\n }\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlLocale: LocaleData = {\n abbr: 'nl',\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort (date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal (_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');\nlet monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlBeLocale: LocaleData = {\n abbr: 'nl-be',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\nlet monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_');\nlet monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n\nfunction plural(num: number): boolean {\n return (num % 10 < 5) && (num % 10 > 1) && ((~~(num / 10) % 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string): string {\n let result = num + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(num) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(num) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(num) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(num) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(num) ? 'lata' : 'lat');\n }\n}\n\nexport const plLocale: LocaleData = {\n abbr: 'pl',\n months(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[getMonth(date, isUTC)] + '|' + monthsNominative[getMonth(date, isUTC)] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[getMonth(date, isUTC)];\n } else {\n return monthsNominative[getMonth(date, isUTC)];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\nexport const ptBrLocale: LocaleData = {\n abbr: 'pt-br',\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek(date: Date) {\n return (getDayOfWeek(date) === 0 || getDayOfWeek(date) === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: '%s atrás',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\nexport const svLocale: LocaleData = {\n abbr: 'sv',\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n let b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return num + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getWeek } from '../units/week';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\nfunction plural(word: string, num: number): string {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n}\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key: string]: string} = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n return num + ' ' + plural(format[key], +num);\n}\n\nlet monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nexport const ruLocale: LocaleData = {\n abbr: 'ru',\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня в] LT',\n nextDay: '[Завтра в] LT',\n lastDay: '[Вчера в] LT',\n nextWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В следующее] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n } else {\n return '[В] dddd [в] LT';\n }\n }\n },\n lastWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[В прошлое] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Во] dddd [в] LT';\n } else {\n return '[В] dddd [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM(input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return num + '-й';\n case 'D':\n return num + '-го';\n case 'w':\n case 'W':\n return num + '-я';\n default:\n return num.toString(10);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\nimport { LocaleData } from '../locale/locale.class';\n\n// ! moment.js locale configuration\n// ! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n// ! author : Earle white: https://github.com/5earle\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key:string]: string} = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani'\n };\n\n let separator = ' ';\n if (num % 100 >= 20 || (num >= 100 && num % 100 === 0)) {\n separator = ' de ';\n }\n return num + separator + format[key];\n}\n\n\nexport const roLocale: LocaleData = {\n abbr: 'ro',\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n\nexport const zhCnLocale: LocaleData = {\n abbr: 'zh-cn',\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n let hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal(_num: number, period) {\n const num = Number(_num);\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + '日';\n case 'M':\n return num + '月';\n case 'w':\n case 'W':\n return num + '周';\n default:\n return num.toString();\n }\n },\n relativeTime: {\n future: '%s内',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年'\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\nlet suffixes: { [key: string]: string } = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n};\n\nexport const trLocale: LocaleData = {\n abbr: 'tr',\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n if (num === 0) { // special case for zero\n return num + '\\'ıncı';\n }\n let a = num % 10,\n b = num % 100 - a,\n c = num >= 100 ? 100 : null;\n return num + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\nexport const heLocale: LocaleData = {\n abbr: 'he',\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh(num: number): string {\n if (num === 2) {\n return 'שעתיים';\n }\n return num + ' שעות';\n },\n d: 'יום',\n dd(num: number): string {\n if (num === 2) {\n return 'יומיים';\n }\n return num + ' ימים';\n },\n M: 'חודש',\n MM(num: number): string {\n if (num === 2) {\n return 'חודשיים';\n }\n return num + ' חודשים';\n },\n y: 'שנה',\n yy(num: number): string {\n if (num === 2) {\n return 'שנתיים';\n } else if (num % 10 === 0 && num !== 10) {\n return num + ' שנה';\n }\n return num + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM(input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\n// moment.js locale configuration\n// locale : Thai [th]\n// author : Watcharapol Sanitwong : https://github.com/tumit\n\nimport { LocaleData } from '../locale/locale.class';\n\nexport const thLocale: LocaleData = {\n abbr: 'th',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : mihan : https://github.com/mihan\n\nfunction processRelativeTime(number: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n}\n\nexport const slLocale: LocaleData = {\n abbr: 'sl',\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Darío Beiró : https://github.com/quinobravo\n\nlet monthsShortDot = 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsShort = 'xan_feb_mar_abr_mai_xuñ_xul_ago_set_out_nov_dec'.split('_');\n\nlet monthsParse = [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xuñ/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro|xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i;\n\nexport const glLocale: LocaleData = {\n abbr: 'gl',\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n monthsShortStrictRegex: /^(xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoxe á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañan á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[onte á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[o] dddd [pasado á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","export { arLocale } from './chronos/i18n/ar';\nexport { csLocale } from './chronos/i18n/cs';\nexport { daLocale } from './chronos/i18n/da';\nexport { deLocale } from './chronos/i18n/de';\nexport { enGbLocale } from './chronos/i18n/en-gb';\nexport { esLocale } from './chronos/i18n/es';\nexport { esDoLocale } from './chronos/i18n/es-do';\nexport { esUsLocale } from './chronos/i18n/es-us';\nexport { fiLocale } from './chronos/i18n/fi';\nexport { frLocale } from './chronos/i18n/fr';\nexport { hiLocale } from './chronos/i18n/hi';\nexport { huLocale } from './chronos/i18n/hu';\nexport { idLocale } from './chronos/i18n/id';\nexport { itLocale } from './chronos/i18n/it';\nexport { jaLocale } from './chronos/i18n/ja';\nexport { koLocale } from './chronos/i18n/ko';\nexport { mnLocale } from './chronos/i18n/mn';\nexport { nlLocale } from './chronos/i18n/nl';\nexport { nlBeLocale } from './chronos/i18n/nl-be';\nexport { plLocale } from './chronos/i18n/pl';\nexport { ptBrLocale } from './chronos/i18n/pt-br';\nexport { svLocale } from './chronos/i18n/sv';\nexport { ruLocale } from './chronos/i18n/ru';\nexport { roLocale } from './chronos/i18n/ro';\nexport { zhCnLocale } from './chronos/i18n/zh-cn';\nexport { trLocale } from './chronos/i18n/tr';\nexport { heLocale } from './chronos/i18n/he';\nexport { thLocale } from './chronos/i18n/th';\nexport { slLocale } from './chronos/i18n/sl';\nexport { glLocale } from './chronos/i18n/gl';","/* tslint:disable: max-classes-per-file */\nimport { AccordionModule } from './accordion/accordion.module';\nimport { AlertModule } from './alert/alert.module';\nimport { ButtonsModule } from './buttons/buttons.module';\nimport { CarouselModule } from './carousel/carousel.module';\nimport { CollapseModule } from './collapse/collapse.module';\nimport { BsDaterangepickerConfig } from './datepicker/bs-daterangepicker.config';\nimport { DatepickerModule } from './datepicker/datepicker.module';\nimport { BsDropdownModule } from './dropdown/bs-dropdown.module';\nimport { ModalModule } from './modal/modal.module';\nimport { PaginationModule } from './pagination/pagination.module';\nimport { PopoverModule } from './popover/popover.module';\nimport { ProgressbarModule } from './progressbar/progressbar.module';\nimport { RatingModule } from './rating/rating.module';\nimport { SortableModule } from './sortable/index';\nimport { TabsModule } from './tabs/tabs.module';\nimport { TimepickerModule } from './timepicker/timepicker.module';\nimport { TooltipModule } from './tooltip/tooltip.module';\nimport { TypeaheadModule } from './typeahead/typeahead.module';\n\nexport { listLocales } from './chronos/locale/locales';\nexport { setTheme } from './utils/theme-provider';\n\nexport {\n AccordionComponent,\n AccordionConfig,\n AccordionModule,\n AccordionPanelComponent\n} from './accordion/index';\n\nexport { AlertComponent, AlertConfig, AlertModule } from './alert/index';\n\nexport {\n ButtonCheckboxDirective,\n ButtonRadioDirective,\n ButtonsModule\n} from './buttons/index';\n\nexport {\n CarouselComponent,\n CarouselConfig,\n CarouselModule,\n SlideComponent\n} from './carousel/index';\n\nexport { CollapseDirective, CollapseModule } from './collapse/index';\n\nexport {\n DateFormatter,\n DatePickerComponent,\n DatepickerConfig,\n DatepickerModule,\n DayPickerComponent,\n MonthPickerComponent,\n YearPickerComponent,\n BsDatepickerModule,\n BsDatepickerConfig,\n BsDaterangepickerConfig,\n BsLocaleService,\n BsDaterangepickerDirective,\n BsDatepickerDirective\n} from './datepicker/index';\n\nexport {\n ModalDirective,\n ModalOptions,\n ModalBackdropOptions,\n ModalBackdropComponent,\n ModalModule,\n BsModalRef,\n BsModalService\n} from './modal/index';\n\nexport {\n BsDropdownModule,\n BsDropdownConfig,\n BsDropdownState,\n BsDropdownContainerComponent,\n BsDropdownDirective,\n BsDropdownMenuDirective,\n BsDropdownToggleDirective\n} from './dropdown/index';\n\nexport {\n PagerComponent,\n PaginationComponent,\n PaginationConfig,\n PaginationModule,\n PageChangedEvent\n} from './pagination/index';\n\nexport {\n BarComponent,\n ProgressbarComponent,\n ProgressbarConfig,\n ProgressbarModule\n} from './progressbar/index';\n\nexport { RatingComponent, RatingModule } from './rating/index';\n\nexport {\n DraggableItem,\n DraggableItemService,\n SortableItem,\n SortableComponent,\n SortableModule\n} from './sortable/index';\n\nexport {\n NgTranscludeDirective,\n TabDirective,\n TabHeadingDirective,\n TabsetComponent,\n TabsetConfig,\n TabsModule\n} from './tabs/index';\n\nexport {\n TimepickerComponent,\n TimepickerConfig,\n TimepickerModule\n} from './timepicker/index';\n\nexport {\n TooltipConfig,\n TooltipContainerComponent,\n TooltipDirective,\n TooltipModule\n} from './tooltip/index';\n\nexport {\n TypeaheadOptions,\n TypeaheadContainerComponent,\n TypeaheadDirective,\n TypeaheadMatch,\n TypeaheadModule\n} from './typeahead/index';\n\nexport {\n PopoverConfig,\n PopoverContainerComponent,\n PopoverDirective,\n PopoverModule\n} from './popover/index';\n\nexport { OnChange, LinkedList, isBs3, Trigger, Utils } from './utils/index';\n\nexport {\n ComponentLoader,\n ComponentLoaderFactory,\n ContentRef\n} from './component-loader/index';\n\nexport {\n Positioning,\n PositioningOptions,\n PositioningService,\n positionElements\n} from './positioning/index';\n\nexport { defineLocale, getSetGlobalLocale, LocaleData } from './chronos/index';\n\nexport * from './locale';\n"],"sourceRoot":""}
|
1
|
+
{"version":3,"file":"ngx-bootstrap.umd.js.map","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|