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
@@ -0,0 +1,841 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview added by tsickle
|
3
|
+
* @suppress {checkTypes} checked by tsc
|
4
|
+
*/
|
5
|
+
// tslint:disable:max-file-line-count max-line-length cyclomatic-complexity
|
6
|
+
import { weekOfYear } from '../units/week-calendar-utils';
|
7
|
+
import { hasOwnProp, isArray, isFunction } from '../utils/type-checks';
|
8
|
+
import { getDay, getMonth } from '../utils/date-getters';
|
9
|
+
import { matchWord, regexEscape } from '../parse/regex';
|
10
|
+
import { setDayOfWeek } from '../units/day-of-week';
|
11
|
+
/**
|
12
|
+
* @record
|
13
|
+
*/
|
14
|
+
export function LocaleOptionsFormat() { }
|
15
|
+
function LocaleOptionsFormat_tsickle_Closure_declarations() {
|
16
|
+
/** @type {?} */
|
17
|
+
LocaleOptionsFormat.prototype.format;
|
18
|
+
/** @type {?} */
|
19
|
+
LocaleOptionsFormat.prototype.standalone;
|
20
|
+
/** @type {?|undefined} */
|
21
|
+
LocaleOptionsFormat.prototype.isFormat;
|
22
|
+
}
|
23
|
+
const /** @type {?} */ MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/;
|
24
|
+
export const /** @type {?} */ defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');
|
25
|
+
export const /** @type {?} */ defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');
|
26
|
+
export const /** @type {?} */ defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');
|
27
|
+
export const /** @type {?} */ defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');
|
28
|
+
export const /** @type {?} */ defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');
|
29
|
+
export const /** @type {?} */ defaultLongDateFormat = {
|
30
|
+
LTS: 'h:mm:ss A',
|
31
|
+
LT: 'h:mm A',
|
32
|
+
L: 'MM/DD/YYYY',
|
33
|
+
LL: 'MMMM D, YYYY',
|
34
|
+
LLL: 'MMMM D, YYYY h:mm A',
|
35
|
+
LLLL: 'dddd, MMMM D, YYYY h:mm A'
|
36
|
+
};
|
37
|
+
export const /** @type {?} */ defaultOrdinal = '%d';
|
38
|
+
export const /** @type {?} */ defaultDayOfMonthOrdinalParse = /\d{1,2}/;
|
39
|
+
const /** @type {?} */ defaultMonthsShortRegex = matchWord;
|
40
|
+
const /** @type {?} */ defaultMonthsRegex = matchWord;
|
41
|
+
/**
|
42
|
+
* @record
|
43
|
+
*/
|
44
|
+
export function LocaleData() { }
|
45
|
+
function LocaleData_tsickle_Closure_declarations() {
|
46
|
+
/** @type {?|undefined} */
|
47
|
+
LocaleData.prototype.abbr;
|
48
|
+
/** @type {?|undefined} */
|
49
|
+
LocaleData.prototype.parentLocale;
|
50
|
+
/** @type {?|undefined} */
|
51
|
+
LocaleData.prototype.months;
|
52
|
+
/** @type {?|undefined} */
|
53
|
+
LocaleData.prototype.monthsShort;
|
54
|
+
/** @type {?|undefined} */
|
55
|
+
LocaleData.prototype.monthsParseExact;
|
56
|
+
/** @type {?|undefined} */
|
57
|
+
LocaleData.prototype.weekdays;
|
58
|
+
/** @type {?|undefined} */
|
59
|
+
LocaleData.prototype.weekdaysShort;
|
60
|
+
/** @type {?|undefined} */
|
61
|
+
LocaleData.prototype.weekdaysMin;
|
62
|
+
/** @type {?|undefined} */
|
63
|
+
LocaleData.prototype.weekdaysParseExact;
|
64
|
+
/** @type {?|undefined} */
|
65
|
+
LocaleData.prototype.longDateFormat;
|
66
|
+
/** @type {?|undefined} */
|
67
|
+
LocaleData.prototype.calendar;
|
68
|
+
/** @type {?|undefined} */
|
69
|
+
LocaleData.prototype.relativeTime;
|
70
|
+
/** @type {?|undefined} */
|
71
|
+
LocaleData.prototype.dayOfMonthOrdinalParse;
|
72
|
+
/** @type {?|undefined} */
|
73
|
+
LocaleData.prototype.ordinal;
|
74
|
+
/** @type {?|undefined} */
|
75
|
+
LocaleData.prototype.week;
|
76
|
+
/** @type {?|undefined} */
|
77
|
+
LocaleData.prototype.invalidDate;
|
78
|
+
/** @type {?|undefined} */
|
79
|
+
LocaleData.prototype.monthsRegex;
|
80
|
+
/** @type {?|undefined} */
|
81
|
+
LocaleData.prototype.monthsParse;
|
82
|
+
/** @type {?|undefined} */
|
83
|
+
LocaleData.prototype.monthsShortRegex;
|
84
|
+
/** @type {?|undefined} */
|
85
|
+
LocaleData.prototype.monthsStrictRegex;
|
86
|
+
/** @type {?|undefined} */
|
87
|
+
LocaleData.prototype.monthsShortStrictRegex;
|
88
|
+
/** @type {?|undefined} */
|
89
|
+
LocaleData.prototype.longMonthsParse;
|
90
|
+
/** @type {?|undefined} */
|
91
|
+
LocaleData.prototype.shortMonthsParse;
|
92
|
+
/** @type {?|undefined} */
|
93
|
+
LocaleData.prototype.meridiemParse;
|
94
|
+
/** @type {?|undefined} */
|
95
|
+
LocaleData.prototype.meridiemHour;
|
96
|
+
/** @type {?|undefined} */
|
97
|
+
LocaleData.prototype.preparse;
|
98
|
+
/** @type {?|undefined} */
|
99
|
+
LocaleData.prototype.postformat;
|
100
|
+
/** @type {?|undefined} */
|
101
|
+
LocaleData.prototype.meridiem;
|
102
|
+
/** @type {?|undefined} */
|
103
|
+
LocaleData.prototype.isPM;
|
104
|
+
}
|
105
|
+
export class Locale {
|
106
|
+
/**
|
107
|
+
* @param {?} config
|
108
|
+
*/
|
109
|
+
constructor(config) {
|
110
|
+
if (!!config) {
|
111
|
+
this.set(config);
|
112
|
+
}
|
113
|
+
}
|
114
|
+
/**
|
115
|
+
* @param {?} config
|
116
|
+
* @return {?}
|
117
|
+
*/
|
118
|
+
set(config) {
|
119
|
+
let /** @type {?} */ confKey;
|
120
|
+
for (confKey in config) {
|
121
|
+
if (!config.hasOwnProperty(confKey)) {
|
122
|
+
continue;
|
123
|
+
}
|
124
|
+
const /** @type {?} */ prop = config[/** @type {?} */ (confKey)];
|
125
|
+
const /** @type {?} */ key = /** @type {?} */ ((isFunction(prop) ? confKey : `_${confKey}`));
|
126
|
+
this[key] = /** @type {?} */ (prop);
|
127
|
+
}
|
128
|
+
this._config = config;
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* @param {?} key
|
132
|
+
* @param {?} date
|
133
|
+
* @param {?} now
|
134
|
+
* @return {?}
|
135
|
+
*/
|
136
|
+
calendar(key, date, now) {
|
137
|
+
const /** @type {?} */ output = this._calendar[key] || this._calendar["sameElse"];
|
138
|
+
return isFunction(output) ? output.call(null, date, now) : output;
|
139
|
+
}
|
140
|
+
/**
|
141
|
+
* @param {?} key
|
142
|
+
* @return {?}
|
143
|
+
*/
|
144
|
+
longDateFormat(key) {
|
145
|
+
const /** @type {?} */ format = this._longDateFormat[key];
|
146
|
+
const /** @type {?} */ formatUpper = this._longDateFormat[key.toUpperCase()];
|
147
|
+
if (format || !formatUpper) {
|
148
|
+
return format;
|
149
|
+
}
|
150
|
+
this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {
|
151
|
+
return val.slice(1);
|
152
|
+
});
|
153
|
+
return this._longDateFormat[key];
|
154
|
+
}
|
155
|
+
/**
|
156
|
+
* @return {?}
|
157
|
+
*/
|
158
|
+
get invalidDate() {
|
159
|
+
return this._invalidDate;
|
160
|
+
}
|
161
|
+
/**
|
162
|
+
* @param {?} val
|
163
|
+
* @return {?}
|
164
|
+
*/
|
165
|
+
set invalidDate(val) {
|
166
|
+
this._invalidDate = val;
|
167
|
+
}
|
168
|
+
/**
|
169
|
+
* @param {?} num
|
170
|
+
* @param {?=} token
|
171
|
+
* @return {?}
|
172
|
+
*/
|
173
|
+
ordinal(num, token) {
|
174
|
+
return this._ordinal.replace('%d', num.toString(10));
|
175
|
+
}
|
176
|
+
/**
|
177
|
+
* @param {?} str
|
178
|
+
* @return {?}
|
179
|
+
*/
|
180
|
+
preparse(str) {
|
181
|
+
return str;
|
182
|
+
}
|
183
|
+
/**
|
184
|
+
* @param {?} str
|
185
|
+
* @return {?}
|
186
|
+
*/
|
187
|
+
postformat(str) {
|
188
|
+
return str;
|
189
|
+
}
|
190
|
+
/**
|
191
|
+
* @param {?} num
|
192
|
+
* @param {?} withoutSuffix
|
193
|
+
* @param {?} str
|
194
|
+
* @param {?} isFuture
|
195
|
+
* @return {?}
|
196
|
+
*/
|
197
|
+
relativeTime(num, withoutSuffix, str, isFuture) {
|
198
|
+
const /** @type {?} */ output = this._relativeTime[str];
|
199
|
+
return (isFunction(output)) ?
|
200
|
+
output(num, withoutSuffix, str, isFuture) :
|
201
|
+
output.replace(/%d/i, num.toString(10));
|
202
|
+
}
|
203
|
+
/**
|
204
|
+
* @param {?} diff
|
205
|
+
* @param {?} output
|
206
|
+
* @return {?}
|
207
|
+
*/
|
208
|
+
pastFuture(diff, output) {
|
209
|
+
const /** @type {?} */ format = this._relativeTime[diff > 0 ? 'future' : 'past'];
|
210
|
+
return isFunction(format) ? format(output) : format.replace(/%s/i, output);
|
211
|
+
}
|
212
|
+
/**
|
213
|
+
* @param {?=} date
|
214
|
+
* @param {?=} format
|
215
|
+
* @param {?=} isUTC
|
216
|
+
* @return {?}
|
217
|
+
*/
|
218
|
+
months(date, format, isUTC = false) {
|
219
|
+
if (!date) {
|
220
|
+
return isArray(this._months)
|
221
|
+
? this._months
|
222
|
+
: this._months.standalone;
|
223
|
+
}
|
224
|
+
if (isArray(this._months)) {
|
225
|
+
return this._months[getMonth(date, isUTC)];
|
226
|
+
}
|
227
|
+
const /** @type {?} */ key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
|
228
|
+
? 'format'
|
229
|
+
: 'standalone';
|
230
|
+
return this._months[key][getMonth(date, isUTC)];
|
231
|
+
}
|
232
|
+
/**
|
233
|
+
* @param {?=} date
|
234
|
+
* @param {?=} format
|
235
|
+
* @param {?=} isUTC
|
236
|
+
* @return {?}
|
237
|
+
*/
|
238
|
+
monthsShort(date, format, isUTC = false) {
|
239
|
+
if (!date) {
|
240
|
+
return isArray(this._monthsShort)
|
241
|
+
? this._monthsShort
|
242
|
+
: this._monthsShort.standalone;
|
243
|
+
}
|
244
|
+
if (isArray(this._monthsShort)) {
|
245
|
+
return this._monthsShort[getMonth(date, isUTC)];
|
246
|
+
}
|
247
|
+
const /** @type {?} */ key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';
|
248
|
+
return this._monthsShort[key][getMonth(date, isUTC)];
|
249
|
+
}
|
250
|
+
/**
|
251
|
+
* @param {?} monthName
|
252
|
+
* @param {?=} format
|
253
|
+
* @param {?=} strict
|
254
|
+
* @return {?}
|
255
|
+
*/
|
256
|
+
monthsParse(monthName, format, strict) {
|
257
|
+
let /** @type {?} */ date;
|
258
|
+
let /** @type {?} */ regex;
|
259
|
+
if (this._monthsParseExact) {
|
260
|
+
return this.handleMonthStrictParse(monthName, format, strict);
|
261
|
+
}
|
262
|
+
if (!this._monthsParse) {
|
263
|
+
this._monthsParse = [];
|
264
|
+
this._longMonthsParse = [];
|
265
|
+
this._shortMonthsParse = [];
|
266
|
+
}
|
267
|
+
// TODO: add sorting
|
268
|
+
// Sorting makes sure if one month (or abbr) is a prefix of another
|
269
|
+
// see sorting in computeMonthsParse
|
270
|
+
let /** @type {?} */ i;
|
271
|
+
for (i = 0; i < 12; i++) {
|
272
|
+
// make the regex if we don't have it already
|
273
|
+
date = new Date(Date.UTC(2000, i));
|
274
|
+
if (strict && !this._longMonthsParse[i]) {
|
275
|
+
const /** @type {?} */ _months = this.months(date, '', true).replace('.', '');
|
276
|
+
const /** @type {?} */ _shortMonths = this.monthsShort(date, '', true).replace('.', '');
|
277
|
+
this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');
|
278
|
+
this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');
|
279
|
+
}
|
280
|
+
if (!strict && !this._monthsParse[i]) {
|
281
|
+
regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;
|
282
|
+
this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
|
283
|
+
}
|
284
|
+
// test the regex
|
285
|
+
if (strict && format === 'MMMM' && (/** @type {?} */ (this._longMonthsParse[i])).test(monthName)) {
|
286
|
+
return i;
|
287
|
+
}
|
288
|
+
if (strict && format === 'MMM' && (/** @type {?} */ (this._shortMonthsParse[i])).test(monthName)) {
|
289
|
+
return i;
|
290
|
+
}
|
291
|
+
if (!strict && this._monthsParse[i].test(monthName)) {
|
292
|
+
return i;
|
293
|
+
}
|
294
|
+
}
|
295
|
+
}
|
296
|
+
/**
|
297
|
+
* @param {?} isStrict
|
298
|
+
* @return {?}
|
299
|
+
*/
|
300
|
+
monthsRegex(isStrict) {
|
301
|
+
if (this._monthsParseExact) {
|
302
|
+
if (!hasOwnProp(this, '_monthsRegex')) {
|
303
|
+
this.computeMonthsParse();
|
304
|
+
}
|
305
|
+
if (isStrict) {
|
306
|
+
return this._monthsStrictRegex;
|
307
|
+
}
|
308
|
+
return this._monthsRegex;
|
309
|
+
}
|
310
|
+
if (!hasOwnProp(this, '_monthsRegex')) {
|
311
|
+
this._monthsRegex = defaultMonthsRegex;
|
312
|
+
}
|
313
|
+
return this._monthsStrictRegex && isStrict ?
|
314
|
+
this._monthsStrictRegex : this._monthsRegex;
|
315
|
+
}
|
316
|
+
/**
|
317
|
+
* @param {?} isStrict
|
318
|
+
* @return {?}
|
319
|
+
*/
|
320
|
+
monthsShortRegex(isStrict) {
|
321
|
+
if (this._monthsParseExact) {
|
322
|
+
if (!hasOwnProp(this, '_monthsRegex')) {
|
323
|
+
this.computeMonthsParse();
|
324
|
+
}
|
325
|
+
if (isStrict) {
|
326
|
+
return this._monthsShortStrictRegex;
|
327
|
+
}
|
328
|
+
return this._monthsShortRegex;
|
329
|
+
}
|
330
|
+
if (!hasOwnProp(this, '_monthsShortRegex')) {
|
331
|
+
this._monthsShortRegex = defaultMonthsShortRegex;
|
332
|
+
}
|
333
|
+
return this._monthsShortStrictRegex && isStrict ?
|
334
|
+
this._monthsShortStrictRegex : this._monthsShortRegex;
|
335
|
+
}
|
336
|
+
/**
|
337
|
+
* Week
|
338
|
+
* @param {?} date
|
339
|
+
* @param {?=} isUTC
|
340
|
+
* @return {?}
|
341
|
+
*/
|
342
|
+
week(date, isUTC) {
|
343
|
+
return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;
|
344
|
+
}
|
345
|
+
/**
|
346
|
+
* @return {?}
|
347
|
+
*/
|
348
|
+
firstDayOfWeek() {
|
349
|
+
return this._week.dow;
|
350
|
+
}
|
351
|
+
/**
|
352
|
+
* @return {?}
|
353
|
+
*/
|
354
|
+
firstDayOfYear() {
|
355
|
+
return this._week.doy;
|
356
|
+
}
|
357
|
+
/**
|
358
|
+
* @param {?=} date
|
359
|
+
* @param {?=} format
|
360
|
+
* @param {?=} isUTC
|
361
|
+
* @return {?}
|
362
|
+
*/
|
363
|
+
weekdays(date, format, isUTC) {
|
364
|
+
if (!date) {
|
365
|
+
return isArray(this._weekdays)
|
366
|
+
? this._weekdays
|
367
|
+
: this._weekdays.standalone;
|
368
|
+
}
|
369
|
+
if (isArray(this._weekdays)) {
|
370
|
+
return this._weekdays[getDay(date, isUTC)];
|
371
|
+
}
|
372
|
+
const /** @type {?} */ _key = this._weekdays.isFormat.test(format)
|
373
|
+
? 'format'
|
374
|
+
: 'standalone';
|
375
|
+
return this._weekdays[_key][getDay(date, isUTC)];
|
376
|
+
}
|
377
|
+
/**
|
378
|
+
* @param {?=} date
|
379
|
+
* @param {?=} format
|
380
|
+
* @param {?=} isUTC
|
381
|
+
* @return {?}
|
382
|
+
*/
|
383
|
+
weekdaysMin(date, format, isUTC) {
|
384
|
+
return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;
|
385
|
+
}
|
386
|
+
/**
|
387
|
+
* @param {?=} date
|
388
|
+
* @param {?=} format
|
389
|
+
* @param {?=} isUTC
|
390
|
+
* @return {?}
|
391
|
+
*/
|
392
|
+
weekdaysShort(date, format, isUTC) {
|
393
|
+
return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;
|
394
|
+
}
|
395
|
+
/**
|
396
|
+
* @param {?=} weekdayName
|
397
|
+
* @param {?=} format
|
398
|
+
* @param {?=} strict
|
399
|
+
* @return {?}
|
400
|
+
*/
|
401
|
+
weekdaysParse(weekdayName, format, strict) {
|
402
|
+
let /** @type {?} */ i;
|
403
|
+
let /** @type {?} */ regex;
|
404
|
+
if (this._weekdaysParseExact) {
|
405
|
+
return this.handleWeekStrictParse(weekdayName, format, strict);
|
406
|
+
}
|
407
|
+
if (!this._weekdaysParse) {
|
408
|
+
this._weekdaysParse = [];
|
409
|
+
this._minWeekdaysParse = [];
|
410
|
+
this._shortWeekdaysParse = [];
|
411
|
+
this._fullWeekdaysParse = [];
|
412
|
+
}
|
413
|
+
for (i = 0; i < 7; i++) {
|
414
|
+
// make the regex if we don't have it already
|
415
|
+
// fix: here is the issue
|
416
|
+
const /** @type {?} */ date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);
|
417
|
+
if (strict && !this._fullWeekdaysParse[i]) {
|
418
|
+
this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\.?')}$`, 'i');
|
419
|
+
this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\.?')}$`, 'i');
|
420
|
+
this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\.?')}$`, 'i');
|
421
|
+
}
|
422
|
+
if (!this._weekdaysParse[i]) {
|
423
|
+
regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;
|
424
|
+
this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
|
425
|
+
}
|
426
|
+
if (!isArray(this._fullWeekdaysParse)
|
427
|
+
|| !isArray(this._shortWeekdaysParse)
|
428
|
+
|| !isArray(this._minWeekdaysParse)
|
429
|
+
|| !isArray(this._weekdaysParse)) {
|
430
|
+
return;
|
431
|
+
}
|
432
|
+
// test the regex
|
433
|
+
if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
|
434
|
+
return i;
|
435
|
+
}
|
436
|
+
else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
|
437
|
+
return i;
|
438
|
+
}
|
439
|
+
else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
|
440
|
+
return i;
|
441
|
+
}
|
442
|
+
else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
|
443
|
+
return i;
|
444
|
+
}
|
445
|
+
}
|
446
|
+
}
|
447
|
+
/**
|
448
|
+
* @param {?} isStrict
|
449
|
+
* @return {?}
|
450
|
+
*/
|
451
|
+
weekdaysRegex(isStrict) {
|
452
|
+
if (this._weekdaysParseExact) {
|
453
|
+
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
454
|
+
this.computeWeekdaysParse();
|
455
|
+
}
|
456
|
+
if (isStrict) {
|
457
|
+
return this._weekdaysStrictRegex;
|
458
|
+
}
|
459
|
+
else {
|
460
|
+
return this._weekdaysRegex;
|
461
|
+
}
|
462
|
+
}
|
463
|
+
else {
|
464
|
+
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
465
|
+
this._weekdaysRegex = matchWord;
|
466
|
+
}
|
467
|
+
return this._weekdaysStrictRegex && isStrict ?
|
468
|
+
this._weekdaysStrictRegex : this._weekdaysRegex;
|
469
|
+
}
|
470
|
+
}
|
471
|
+
/**
|
472
|
+
* @param {?=} isStrict
|
473
|
+
* @return {?}
|
474
|
+
*/
|
475
|
+
weekdaysShortRegex(isStrict) {
|
476
|
+
if (this._weekdaysParseExact) {
|
477
|
+
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
478
|
+
this.computeWeekdaysParse();
|
479
|
+
}
|
480
|
+
if (isStrict) {
|
481
|
+
return this._weekdaysShortStrictRegex;
|
482
|
+
}
|
483
|
+
else {
|
484
|
+
return this._weekdaysShortRegex;
|
485
|
+
}
|
486
|
+
}
|
487
|
+
else {
|
488
|
+
if (!hasOwnProp(this, '_weekdaysShortRegex')) {
|
489
|
+
this._weekdaysShortRegex = matchWord;
|
490
|
+
}
|
491
|
+
return this._weekdaysShortStrictRegex && isStrict ?
|
492
|
+
this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
|
493
|
+
}
|
494
|
+
}
|
495
|
+
/**
|
496
|
+
* @param {?=} isStrict
|
497
|
+
* @return {?}
|
498
|
+
*/
|
499
|
+
weekdaysMinRegex(isStrict) {
|
500
|
+
if (this._weekdaysParseExact) {
|
501
|
+
if (!hasOwnProp(this, '_weekdaysRegex')) {
|
502
|
+
this.computeWeekdaysParse();
|
503
|
+
}
|
504
|
+
if (isStrict) {
|
505
|
+
return this._weekdaysMinStrictRegex;
|
506
|
+
}
|
507
|
+
else {
|
508
|
+
return this._weekdaysMinRegex;
|
509
|
+
}
|
510
|
+
}
|
511
|
+
else {
|
512
|
+
if (!hasOwnProp(this, '_weekdaysMinRegex')) {
|
513
|
+
this._weekdaysMinRegex = matchWord;
|
514
|
+
}
|
515
|
+
return this._weekdaysMinStrictRegex && isStrict ?
|
516
|
+
this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
|
517
|
+
}
|
518
|
+
}
|
519
|
+
/**
|
520
|
+
* @param {?} input
|
521
|
+
* @return {?}
|
522
|
+
*/
|
523
|
+
isPM(input) {
|
524
|
+
// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
|
525
|
+
// Using charAt should be more compatible.
|
526
|
+
return input.toLowerCase().charAt(0) === 'p';
|
527
|
+
}
|
528
|
+
/**
|
529
|
+
* @param {?} hours
|
530
|
+
* @param {?} minutes
|
531
|
+
* @param {?} isLower
|
532
|
+
* @return {?}
|
533
|
+
*/
|
534
|
+
meridiem(hours, minutes, isLower) {
|
535
|
+
if (hours > 11) {
|
536
|
+
return isLower ? 'pm' : 'PM';
|
537
|
+
}
|
538
|
+
return isLower ? 'am' : 'AM';
|
539
|
+
}
|
540
|
+
/**
|
541
|
+
* @param {?} key
|
542
|
+
* @return {?}
|
543
|
+
*/
|
544
|
+
formatLongDate(key) {
|
545
|
+
this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;
|
546
|
+
const /** @type {?} */ format = this._longDateFormat[key];
|
547
|
+
const /** @type {?} */ formatUpper = this._longDateFormat[key.toUpperCase()];
|
548
|
+
if (format || !formatUpper) {
|
549
|
+
return format;
|
550
|
+
}
|
551
|
+
this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, (val) => {
|
552
|
+
return val.slice(1);
|
553
|
+
});
|
554
|
+
return this._longDateFormat[key];
|
555
|
+
}
|
556
|
+
/**
|
557
|
+
* @param {?} monthName
|
558
|
+
* @param {?} format
|
559
|
+
* @param {?=} strict
|
560
|
+
* @return {?}
|
561
|
+
*/
|
562
|
+
handleMonthStrictParse(monthName, format, strict) {
|
563
|
+
const /** @type {?} */ llc = monthName.toLocaleLowerCase();
|
564
|
+
let /** @type {?} */ i;
|
565
|
+
let /** @type {?} */ ii;
|
566
|
+
let /** @type {?} */ mom;
|
567
|
+
if (!this._monthsParse) {
|
568
|
+
// this is not used
|
569
|
+
this._monthsParse = [];
|
570
|
+
this._longMonthsParse = [];
|
571
|
+
this._shortMonthsParse = [];
|
572
|
+
for (i = 0; i < 12; ++i) {
|
573
|
+
mom = new Date(2000, i);
|
574
|
+
this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
|
575
|
+
this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
|
576
|
+
}
|
577
|
+
}
|
578
|
+
if (strict) {
|
579
|
+
if (format === 'MMM') {
|
580
|
+
ii = (/** @type {?} */ (this._shortMonthsParse)).indexOf(llc);
|
581
|
+
return ii !== -1 ? ii : null;
|
582
|
+
}
|
583
|
+
ii = (/** @type {?} */ (this._longMonthsParse)).indexOf(llc);
|
584
|
+
return ii !== -1 ? ii : null;
|
585
|
+
}
|
586
|
+
if (format === 'MMM') {
|
587
|
+
ii = (/** @type {?} */ (this._shortMonthsParse)).indexOf(llc);
|
588
|
+
if (ii !== -1) {
|
589
|
+
return ii;
|
590
|
+
}
|
591
|
+
ii = (/** @type {?} */ (this._longMonthsParse)).indexOf(llc);
|
592
|
+
return ii !== -1 ? ii : null;
|
593
|
+
}
|
594
|
+
ii = (/** @type {?} */ (this._longMonthsParse)).indexOf(llc);
|
595
|
+
if (ii !== -1) {
|
596
|
+
return ii;
|
597
|
+
}
|
598
|
+
ii = (/** @type {?} */ (this._shortMonthsParse)).indexOf(llc);
|
599
|
+
return ii !== -1 ? ii : null;
|
600
|
+
}
|
601
|
+
/**
|
602
|
+
* @param {?} weekdayName
|
603
|
+
* @param {?} format
|
604
|
+
* @param {?} strict
|
605
|
+
* @return {?}
|
606
|
+
*/
|
607
|
+
handleWeekStrictParse(weekdayName, format, strict) {
|
608
|
+
let /** @type {?} */ ii;
|
609
|
+
const /** @type {?} */ llc = weekdayName.toLocaleLowerCase();
|
610
|
+
if (!this._weekdaysParse) {
|
611
|
+
this._weekdaysParse = [];
|
612
|
+
this._shortWeekdaysParse = [];
|
613
|
+
this._minWeekdaysParse = [];
|
614
|
+
let /** @type {?} */ i;
|
615
|
+
for (i = 0; i < 7; ++i) {
|
616
|
+
const /** @type {?} */ date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);
|
617
|
+
this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();
|
618
|
+
this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();
|
619
|
+
this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();
|
620
|
+
}
|
621
|
+
}
|
622
|
+
if (!isArray(this._weekdaysParse)
|
623
|
+
|| !isArray(this._shortWeekdaysParse)
|
624
|
+
|| !isArray(this._minWeekdaysParse)) {
|
625
|
+
return;
|
626
|
+
}
|
627
|
+
if (strict) {
|
628
|
+
if (format === 'dddd') {
|
629
|
+
ii = this._weekdaysParse.indexOf(llc);
|
630
|
+
return ii !== -1 ? ii : null;
|
631
|
+
}
|
632
|
+
else if (format === 'ddd') {
|
633
|
+
ii = this._shortWeekdaysParse.indexOf(llc);
|
634
|
+
return ii !== -1 ? ii : null;
|
635
|
+
}
|
636
|
+
else {
|
637
|
+
ii = this._minWeekdaysParse.indexOf(llc);
|
638
|
+
return ii !== -1 ? ii : null;
|
639
|
+
}
|
640
|
+
}
|
641
|
+
else {
|
642
|
+
if (format === 'dddd') {
|
643
|
+
ii = this._weekdaysParse.indexOf(llc);
|
644
|
+
if (ii !== -1) {
|
645
|
+
return ii;
|
646
|
+
}
|
647
|
+
ii = this._shortWeekdaysParse.indexOf(llc);
|
648
|
+
if (ii !== -1) {
|
649
|
+
return ii;
|
650
|
+
}
|
651
|
+
ii = this._minWeekdaysParse.indexOf(llc);
|
652
|
+
return ii !== -1 ? ii : null;
|
653
|
+
}
|
654
|
+
else if (format === 'ddd') {
|
655
|
+
ii = this._shortWeekdaysParse.indexOf(llc);
|
656
|
+
if (ii !== -1) {
|
657
|
+
return ii;
|
658
|
+
}
|
659
|
+
ii = this._weekdaysParse.indexOf(llc);
|
660
|
+
if (ii !== -1) {
|
661
|
+
return ii;
|
662
|
+
}
|
663
|
+
ii = this._minWeekdaysParse.indexOf(llc);
|
664
|
+
return ii !== -1 ? ii : null;
|
665
|
+
}
|
666
|
+
else {
|
667
|
+
ii = this._minWeekdaysParse.indexOf(llc);
|
668
|
+
if (ii !== -1) {
|
669
|
+
return ii;
|
670
|
+
}
|
671
|
+
ii = this._weekdaysParse.indexOf(llc);
|
672
|
+
if (ii !== -1) {
|
673
|
+
return ii;
|
674
|
+
}
|
675
|
+
ii = this._shortWeekdaysParse.indexOf(llc);
|
676
|
+
return ii !== -1 ? ii : null;
|
677
|
+
}
|
678
|
+
}
|
679
|
+
}
|
680
|
+
/**
|
681
|
+
* @return {?}
|
682
|
+
*/
|
683
|
+
computeMonthsParse() {
|
684
|
+
const /** @type {?} */ shortPieces = [];
|
685
|
+
const /** @type {?} */ longPieces = [];
|
686
|
+
const /** @type {?} */ mixedPieces = [];
|
687
|
+
let /** @type {?} */ date;
|
688
|
+
let /** @type {?} */ i;
|
689
|
+
for (i = 0; i < 12; i++) {
|
690
|
+
// make the regex if we don't have it already
|
691
|
+
date = new Date(2000, i);
|
692
|
+
shortPieces.push(this.monthsShort(date, ''));
|
693
|
+
longPieces.push(this.months(date, ''));
|
694
|
+
mixedPieces.push(this.months(date, ''));
|
695
|
+
mixedPieces.push(this.monthsShort(date, ''));
|
696
|
+
}
|
697
|
+
// Sorting makes sure if one month (or abbr) is a prefix of another it
|
698
|
+
// will match the longer piece.
|
699
|
+
shortPieces.sort(cmpLenRev);
|
700
|
+
longPieces.sort(cmpLenRev);
|
701
|
+
mixedPieces.sort(cmpLenRev);
|
702
|
+
for (i = 0; i < 12; i++) {
|
703
|
+
shortPieces[i] = regexEscape(shortPieces[i]);
|
704
|
+
longPieces[i] = regexEscape(longPieces[i]);
|
705
|
+
}
|
706
|
+
for (i = 0; i < 24; i++) {
|
707
|
+
mixedPieces[i] = regexEscape(mixedPieces[i]);
|
708
|
+
}
|
709
|
+
this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');
|
710
|
+
this._monthsShortRegex = this._monthsRegex;
|
711
|
+
this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');
|
712
|
+
this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');
|
713
|
+
}
|
714
|
+
/**
|
715
|
+
* @return {?}
|
716
|
+
*/
|
717
|
+
computeWeekdaysParse() {
|
718
|
+
const /** @type {?} */ minPieces = [];
|
719
|
+
const /** @type {?} */ shortPieces = [];
|
720
|
+
const /** @type {?} */ longPieces = [];
|
721
|
+
const /** @type {?} */ mixedPieces = [];
|
722
|
+
let /** @type {?} */ i;
|
723
|
+
for (i = 0; i < 7; i++) {
|
724
|
+
// make the regex if we don't have it already
|
725
|
+
// let mom = createUTC([2000, 1]).day(i);
|
726
|
+
const /** @type {?} */ date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);
|
727
|
+
const /** @type {?} */ minp = this.weekdaysMin(date);
|
728
|
+
const /** @type {?} */ shortp = this.weekdaysShort(date);
|
729
|
+
const /** @type {?} */ longp = this.weekdays(date);
|
730
|
+
minPieces.push(minp);
|
731
|
+
shortPieces.push(shortp);
|
732
|
+
longPieces.push(longp);
|
733
|
+
mixedPieces.push(minp);
|
734
|
+
mixedPieces.push(shortp);
|
735
|
+
mixedPieces.push(longp);
|
736
|
+
}
|
737
|
+
// Sorting makes sure if one weekday (or abbr) is a prefix of another it
|
738
|
+
// will match the longer piece.
|
739
|
+
minPieces.sort(cmpLenRev);
|
740
|
+
shortPieces.sort(cmpLenRev);
|
741
|
+
longPieces.sort(cmpLenRev);
|
742
|
+
mixedPieces.sort(cmpLenRev);
|
743
|
+
for (i = 0; i < 7; i++) {
|
744
|
+
shortPieces[i] = regexEscape(shortPieces[i]);
|
745
|
+
longPieces[i] = regexEscape(longPieces[i]);
|
746
|
+
mixedPieces[i] = regexEscape(mixedPieces[i]);
|
747
|
+
}
|
748
|
+
this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');
|
749
|
+
this._weekdaysShortRegex = this._weekdaysRegex;
|
750
|
+
this._weekdaysMinRegex = this._weekdaysRegex;
|
751
|
+
this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');
|
752
|
+
this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');
|
753
|
+
this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');
|
754
|
+
}
|
755
|
+
}
|
756
|
+
function Locale_tsickle_Closure_declarations() {
|
757
|
+
/** @type {?} */
|
758
|
+
Locale.prototype.parentLocale;
|
759
|
+
/** @type {?} */
|
760
|
+
Locale.prototype._abbr;
|
761
|
+
/** @type {?} */
|
762
|
+
Locale.prototype._config;
|
763
|
+
/** @type {?} */
|
764
|
+
Locale.prototype.meridiemHour;
|
765
|
+
/** @type {?} */
|
766
|
+
Locale.prototype._invalidDate;
|
767
|
+
/** @type {?} */
|
768
|
+
Locale.prototype._week;
|
769
|
+
/** @type {?} */
|
770
|
+
Locale.prototype._dayOfMonthOrdinalParse;
|
771
|
+
/** @type {?} */
|
772
|
+
Locale.prototype._ordinalParse;
|
773
|
+
/** @type {?} */
|
774
|
+
Locale.prototype._meridiemParse;
|
775
|
+
/** @type {?} */
|
776
|
+
Locale.prototype._calendar;
|
777
|
+
/** @type {?} */
|
778
|
+
Locale.prototype._relativeTime;
|
779
|
+
/** @type {?} */
|
780
|
+
Locale.prototype._months;
|
781
|
+
/** @type {?} */
|
782
|
+
Locale.prototype._monthsShort;
|
783
|
+
/** @type {?} */
|
784
|
+
Locale.prototype._monthsRegex;
|
785
|
+
/** @type {?} */
|
786
|
+
Locale.prototype._monthsShortRegex;
|
787
|
+
/** @type {?} */
|
788
|
+
Locale.prototype._monthsStrictRegex;
|
789
|
+
/** @type {?} */
|
790
|
+
Locale.prototype._monthsShortStrictRegex;
|
791
|
+
/** @type {?} */
|
792
|
+
Locale.prototype._monthsParse;
|
793
|
+
/** @type {?} */
|
794
|
+
Locale.prototype._longMonthsParse;
|
795
|
+
/** @type {?} */
|
796
|
+
Locale.prototype._shortMonthsParse;
|
797
|
+
/** @type {?} */
|
798
|
+
Locale.prototype._monthsParseExact;
|
799
|
+
/** @type {?} */
|
800
|
+
Locale.prototype._weekdaysParseExact;
|
801
|
+
/** @type {?} */
|
802
|
+
Locale.prototype._weekdaysRegex;
|
803
|
+
/** @type {?} */
|
804
|
+
Locale.prototype._weekdaysShortRegex;
|
805
|
+
/** @type {?} */
|
806
|
+
Locale.prototype._weekdaysMinRegex;
|
807
|
+
/** @type {?} */
|
808
|
+
Locale.prototype._weekdaysStrictRegex;
|
809
|
+
/** @type {?} */
|
810
|
+
Locale.prototype._weekdaysShortStrictRegex;
|
811
|
+
/** @type {?} */
|
812
|
+
Locale.prototype._weekdaysMinStrictRegex;
|
813
|
+
/** @type {?} */
|
814
|
+
Locale.prototype._weekdays;
|
815
|
+
/** @type {?} */
|
816
|
+
Locale.prototype._weekdaysShort;
|
817
|
+
/** @type {?} */
|
818
|
+
Locale.prototype._weekdaysMin;
|
819
|
+
/** @type {?} */
|
820
|
+
Locale.prototype._weekdaysParse;
|
821
|
+
/** @type {?} */
|
822
|
+
Locale.prototype._minWeekdaysParse;
|
823
|
+
/** @type {?} */
|
824
|
+
Locale.prototype._shortWeekdaysParse;
|
825
|
+
/** @type {?} */
|
826
|
+
Locale.prototype._fullWeekdaysParse;
|
827
|
+
/** @type {?} */
|
828
|
+
Locale.prototype._longDateFormat;
|
829
|
+
/** @type {?} */
|
830
|
+
Locale.prototype._ordinal;
|
831
|
+
}
|
832
|
+
/**
|
833
|
+
* @param {?} a
|
834
|
+
* @param {?} b
|
835
|
+
* @return {?}
|
836
|
+
*/
|
837
|
+
function cmpLenRev(a, b) {
|
838
|
+
return b.length - a.length;
|
839
|
+
}
|
840
|
+
|
841
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9jaHJvbm9zLyIsInNvdXJjZXMiOlsibG9jYWxlL2xvY2FsZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVXBELHVCQUFNLGdCQUFnQixHQUFHLCtCQUErQixDQUFDO0FBQ3pELE1BQU0sQ0FBQyx1QkFBTSxtQkFBbUIsR0FBRyx1RkFBdUYsQ0FBQyxLQUFLLENBQzlILEdBQUcsQ0FDSixDQUFDO0FBQ0YsTUFBTSxDQUFDLHVCQUFNLHdCQUF3QixHQUFHLGlEQUFpRCxDQUFDLEtBQUssQ0FDN0YsR0FBRyxDQUNKLENBQUM7QUFDRixNQUFNLENBQUMsdUJBQU0scUJBQXFCLEdBQUcsMERBQTBELENBQUMsS0FBSyxDQUNuRyxHQUFHLENBQ0osQ0FBQztBQUNGLE1BQU0sQ0FBQyx1QkFBTSwwQkFBMEIsR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLENBQzNFLEdBQUcsQ0FDSixDQUFDO0FBQ0YsTUFBTSxDQUFDLHVCQUFNLHdCQUF3QixHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxRSxNQUFNLENBQUMsdUJBQU0scUJBQXFCLEdBQWdDO0lBQ2hFLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLEVBQUUsRUFBRSxRQUFRO0lBQ1osQ0FBQyxFQUFFLFlBQVk7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LWZpbGUtbGluZS1jb3VudCBtYXgtbGluZS1sZW5ndGggY3ljbG9tYXRpYy1jb21wbGV4aXR5XG5cbmltcG9ydCB7IHdlZWtPZlllYXIgfSBmcm9tICcuLi91bml0cy93ZWVrLWNhbGVuZGFyLXV0aWxzJztcbmltcG9ydCB7IGhhc093blByb3AsIGlzQXJyYXksIGlzRnVuY3Rpb24gfSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5pbXBvcnQgeyBnZXREYXksIGdldE1vbnRoIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcbmltcG9ydCB7IG1hdGNoV29yZCwgcmVnZXhFc2NhcGUgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBzZXREYXlPZldlZWsgfSBmcm9tICcuLi91bml0cy9kYXktb2Ytd2Vlayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxlT3B0aW9uc0Zvcm1hdCB7XG4gIGZvcm1hdDogc3RyaW5nW107XG4gIHN0YW5kYWxvbmU6IHN0cmluZ1tdO1xuICBpc0Zvcm1hdD86IFJlZ0V4cDtcbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxlT3B0aW9ucyA9IHN0cmluZ1tdIHwgTG9jYWxlT3B0aW9uc0Zvcm1hdDtcblxuY29uc3QgTU9OVEhTX0lOX0ZPUk1BVCA9IC9EW29EXT8oXFxbW15cXFtcXF1dKlxcXXxcXHMpK01NTU0/LztcbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9jYWxlTW9udGhzID0gJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KFxuICAnXydcbik7XG5leHBvcnQgY29uc3QgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0ID0gJ0phbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjJy5zcGxpdChcbiAgJ18nXG4pO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyA9ICdTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheScuc3BsaXQoXG4gICdfJ1xuKTtcbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydCA9ICdTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQnLnNwbGl0KFxuICAnXydcbik7XG5leHBvcnQgY29uc3QgZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluID0gJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb25nRGF0ZUZvcm1hdDogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBMVFM6ICdoOm1tOnNzIEEnLFxuICBMVDogJ2g6bW0gQScsXG4gIEw6ICdNTS9ERC9ZWVlZJyxcbiAgTEw6ICdNTU1NIEQsIFlZWVknLFxuICBMTEw6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgTExMTDogJ2RkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEnXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE9yZGluYWwgPSAnJWQnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHREYXlPZk1vbnRoT3JkaW5hbFBhcnNlID0gL1xcZHsxLDJ9LztcblxuY29uc3QgZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXggPSBtYXRjaFdvcmQ7XG5jb25zdCBkZWZhdWx0TW9udGhzUmVnZXggPSBtYXRjaFdvcmQ7XG5cbmV4cG9ydCB0eXBlIE9yZGluYWxEYXRlRm4gPSAobnVtOiBudW1iZXIsIHRva2VuPzogc3RyaW5nKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBQbHVyYWxpemVEYXRlRm4gPSAobnVtOiBudW1iZXIsIHdpdGhvdXRTdWZmaXg6IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5Pzogc3RyaW5nLCBpc0Z1dHVyZT86IGJvb2xlYW4pID0+IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbGVEYXRhIHtcbiAgYWJicj86IHN0cmluZztcbiAgcGFyZW50TG9jYWxlPzogc3RyaW5nO1xuXG4gIG1vbnRocz86IExvY2FsZU9wdGlvbnMgfCAoKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nLCBpc1VUQz86IGJvb2xlYW4pID0+IHN0cmluZyB8IHN0cmluZ1tdKTtcbiAgbW9udGhzU2hvcnQ/OiBMb2NhbGVPcHRpb25zIHwgKChkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZywgaXNVVEM/OiBib29sZWFuKSA9PiBzdHJpbmcgfCBzdHJpbmdbXSk7XG4gIG1vbnRoc1BhcnNlRXhhY3Q/OiBib29sZWFuO1xuXG4gIHdlZWtkYXlzPzogTG9jYWxlT3B0aW9ucyB8ICgoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbikgPT4gc3RyaW5nIHwgc3RyaW5nW10pO1xuICB3ZWVrZGF5c1Nob3J0Pzogc3RyaW5nW10gfCAoKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nLCBpc1VUQz86IGJvb2xlYW4pID0+IHN0cmluZyB8IHN0cmluZ1tdKTtcbiAgd2Vla2RheXNNaW4/OiBzdHJpbmdbXSB8ICgoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbikgPT4gc3RyaW5nIHwgc3RyaW5nW10pO1xuICB3ZWVrZGF5c1BhcnNlRXhhY3Q/OiBib29sZWFuO1xuXG4gIGxvbmdEYXRlRm9ybWF0PzogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICBjYWxlbmRhcj86IHtcbiAgICBba2V5OiBzdHJpbmddOiAoc3RyaW5nXG4gICAgICB8ICgoZGF0ZTogRGF0ZSwgbm93PzogRGF0ZSkgPT4gc3RyaW5nKVxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gICAgICB8ICgoZGF5T2ZXZWVrOiBudW1iZXIsIGlzTmV4dFdlZWs6IGJvb2xlYW4pID0+IHN0cmluZykpXG4gIH07XG4gIHJlbGF0aXZlVGltZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgUGx1cmFsaXplRGF0ZUZuIH07XG4gIGRheU9mTW9udGhPcmRpbmFsUGFyc2U/OiBSZWdFeHA7XG4gIG9yZGluYWw/OiBzdHJpbmcgfCBPcmRpbmFsRGF0ZUZuO1xuXG4gIHdlZWs/OiB7IGRvdz86IG51bWJlcjsgZG95PzogbnVtYmVyIH07XG5cbiAgaW52YWxpZERhdGU/OiBzdHJpbmc7XG5cbiAgbW9udGhzUmVnZXg/OiBSZWdFeHA7XG4gIG1vbnRoc1BhcnNlPzogUmVnRXhwW107XG4gIG1vbnRoc1Nob3J0UmVnZXg/OiBSZWdFeHA7XG4gIG1vbnRoc1N0cmljdFJlZ2V4PzogUmVnRXhwO1xuICBtb250aHNTaG9ydFN0cmljdFJlZ2V4PzogUmVnRXhwO1xuICBsb25nTW9udGhzUGFyc2U/OiBSZWdFeHBbXTtcbiAgc2hvcnRNb250aHNQYXJzZT86IFJlZ0V4cFtdO1xuXG4gIG1lcmlkaWVtUGFyc2U/OiBSZWdFeHA7XG5cbiAgbWVyaWRpZW1Ib3VyPyhob3VyOiBudW1iZXIsIG1lcmlkaWVtOiBzdHJpbmcpOiBudW1iZXI7XG5cbiAgcHJlcGFyc2U/KHN0cjogc3RyaW5nKTogc3RyaW5nO1xuXG4gIHBvc3Rmb3JtYXQ/KHN0cjogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nO1xuXG4gIG1lcmlkaWVtPyhob3VyOiBudW1iZXIsIG1pbnV0ZT86IG51bWJlciwgaXNMb3dlcj86IGJvb2xlYW4pOiBzdHJpbmc7XG5cbiAgaXNQTT8oaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMb2NhbGUge1xuICBwYXJlbnRMb2NhbGU/OiBMb2NhbGU7XG4gIF9hYmJyOiBzdHJpbmc7XG4gIF9jb25maWc6IExvY2FsZURhdGE7XG4gIG1lcmlkaWVtSG91cjogKGhvdXI6IG51bWJlciwgbWVyaWRpZW06IHN0cmluZykgPT4gbnVtYmVyO1xuXG4gIF9pbnZhbGlkRGF0ZTogc3RyaW5nO1xuICBfd2VlazogeyBkb3c6IG51bWJlcjsgZG95OiBudW1iZXIgfTtcbiAgX2RheU9mTW9udGhPcmRpbmFsUGFyc2U6IFJlZ0V4cDtcbiAgX29yZGluYWxQYXJzZTogUmVnRXhwO1xuICBfbWVyaWRpZW1QYXJzZTogUmVnRXhwO1xuXG4gIHByaXZhdGUgX2NhbGVuZGFyOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcml2YXRlIF9yZWxhdGl2ZVRpbWU6IHsgZnV0dXJlOiBzdHJpbmc7IHBhc3Q6IHN0cmluZyB9O1xuICBwcml2YXRlIF9tb250aHM6IExvY2FsZU9wdGlvbnM7XG4gIHByaXZhdGUgX21vbnRoc1Nob3J0OiBMb2NhbGVPcHRpb25zO1xuICBwcml2YXRlIF9tb250aHNSZWdleDogUmVnRXhwO1xuICBwcml2YXRlIF9tb250aHNTaG9ydFJlZ2V4OiBSZWdFeHA7XG4gIHByaXZhdGUgX21vbnRoc1N0cmljdFJlZ2V4OiBSZWdFeHA7XG4gIHByaXZhdGUgX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6IFJlZ0V4cDtcbiAgcHJpdmF0ZSBfbW9udGhzUGFyc2U6IFJlZ0V4cFtdO1xuICBwcml2YXRlIF9sb25nTW9udGhzUGFyc2U6IHN0cmluZ1tdIHwgUmVnRXhwW107XG4gIHByaXZhdGUgX3Nob3J0TW9udGhzUGFyc2U6IHN0cmluZ1tdIHwgUmVnRXhwW107XG4gIHByaXZhdGUgX21vbnRoc1BhcnNlRXhhY3Q6IFJlZ0V4cDtcbiAgcHJpdmF0ZSBfd2Vla2RheXNQYXJzZUV4YWN0OiBib29sZWFuO1xuICBwcml2YXRlIF93ZWVrZGF5c1JlZ2V4OiBSZWdFeHA7XG4gIHByaXZhdGUgX3dlZWtkYXlzU2hvcnRSZWdleDogUmVnRXhwO1xuICBwcml2YXRlIF93ZWVrZGF5c01pblJlZ2V4OiBSZWdFeHA7XG5cbiAgcHJpdmF0ZSBfd2Vla2RheXNTdHJpY3RSZWdleDogUmVnRXhwO1xuICBwcml2YXRlIF93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXg6IFJlZ0V4cDtcbiAgcHJpdmF0ZSBfd2Vla2RheXNNaW5TdHJpY3RSZWdleDogUmVnRXhwO1xuXG4gIHByaXZhdGUgX3dlZWtkYXlzOiBMb2NhbGVPcHRpb25zO1xuICBwcml2YXRlIF93ZWVrZGF5c1Nob3J0OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfd2Vla2RheXNNaW46IHN0cmluZ1tdO1xuICBwcml2YXRlIF93ZWVrZGF5c1BhcnNlOiBzdHJpbmdbXSB8IFJlZ0V4cFtdO1xuICBwcml2YXRlIF9taW5XZWVrZGF5c1BhcnNlOiBzdHJpbmdbXSB8IFJlZ0V4cFtdO1xuICBwcml2YXRlIF9zaG9ydFdlZWtkYXlzUGFyc2U6IHN0cmluZ1tdIHwgUmVnRXhwW107XG4gIHByaXZhdGUgX2Z1bGxXZWVrZGF5c1BhcnNlOiBSZWdFeHBbXTtcbiAgcHJpdmF0ZSBfbG9uZ0RhdGVGb3JtYXQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgcHJpdmF0ZSBfb3JkaW5hbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogTG9jYWxlRGF0YSkge1xuICAgIGlmICghIWNvbmZpZykge1xuICAgICAgdGhpcy5zZXQoY29uZmlnKTtcbiAgICB9XG4gIH1cblxuICBzZXQoY29uZmlnOiBMb2NhbGVEYXRhKTogdm9pZCB7XG4gICAgbGV0IGNvbmZLZXk7XG4gICAgZm9yIChjb25mS2V5IGluIGNvbmZpZykge1xuICAgICAgaWYgKCFjb25maWcuaGFzT3duUHJvcGVydHkoY29uZktleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9wID0gY29uZmlnW2NvbmZLZXkgYXMga2V5b2YgTG9jYWxlRGF0YV07XG4gICAgICBjb25zdCBrZXkgPSAoaXNGdW5jdGlvbihwcm9wKSA/IGNvbmZLZXkgOiBgXyR7Y29uZktleX1gKSBhcyBrZXlvZiBMb2NhbGU7XG5cbiAgICAgIHRoaXNba2V5XSA9IHByb3AgYXMgYW55O1xuICAgIH1cblxuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgfVxuXG4gIGNhbGVuZGFyKGtleTogc3RyaW5nLCBkYXRlOiBEYXRlLCBub3c6IERhdGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG91dHB1dCA9IHRoaXMuX2NhbGVuZGFyW2tleV0gfHwgdGhpcy5fY2FsZW5kYXIuc2FtZUVsc2U7XG5cbiAgICByZXR1cm4gaXNGdW5jdGlvbihvdXRwdXQpID8gb3V0cHV0LmNhbGwobnVsbCwgZGF0ZSwgbm93KSA6IG91dHB1dDtcbiAgfVxuXG4gIGxvbmdEYXRlRm9ybWF0KGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgZm9ybWF0ID0gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTtcbiAgICBjb25zdCBmb3JtYXRVcHBlciA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleS50b1VwcGVyQ2FzZSgpXTtcblxuICAgIGlmIChmb3JtYXQgfHwgIWZvcm1hdFVwcGVyKSB7XG4gICAgICByZXR1cm4gZm9ybWF0O1xuICAgIH1cblxuICAgIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV0gPSBmb3JtYXRVcHBlci5yZXBsYWNlKC9NTU1NfE1NfEREfGRkZGQvZywgZnVuY3Rpb24gKHZhbDogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gdmFsLnNsaWNlKDEpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gIH1cblxuICBnZXQgaW52YWxpZERhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faW52YWxpZERhdGU7XG4gIH1cblxuICBzZXQgaW52YWxpZERhdGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9pbnZhbGlkRGF0ZSA9IHZhbDtcbiAgfVxuXG4gIG9yZGluYWwobnVtOiBudW1iZXIsIHRva2VuPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCclZCcsIG51bS50b1N0cmluZygxMCkpO1xuICB9XG5cbiAgcHJlcGFyc2Uoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgcG9zdGZvcm1hdChzdHI6IHN0cmluZykge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICByZWxhdGl2ZVRpbWUobnVtOiBudW1iZXIsIHdpdGhvdXRTdWZmaXg6IGJvb2xlYW4sIHN0cjogJ2Z1dHVyZScgfCAncGFzdCcsIGlzRnV0dXJlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBjb25zdCBvdXRwdXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbc3RyXTtcblxuICAgIHJldHVybiAoaXNGdW5jdGlvbihvdXRwdXQpKSA/XG4gICAgICBvdXRwdXQobnVtLCB3aXRob3V0U3VmZml4LCBzdHIsIGlzRnV0dXJlKSA6XG4gICAgICBvdXRwdXQucmVwbGFjZSgvJWQvaSwgbnVtLnRvU3RyaW5nKDEwKSk7XG4gIH1cblxuICBwYXN0RnV0dXJlKGRpZmY6IG51bWJlciwgb3V0cHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX3JlbGF0aXZlVGltZVtkaWZmID4gMCA/ICdmdXR1cmUnIDogJ3Bhc3QnXTtcblxuICAgIHJldHVybiBpc0Z1bmN0aW9uKGZvcm1hdCkgPyBmb3JtYXQob3V0cHV0KSA6IGZvcm1hdC5yZXBsYWNlKC8lcy9pLCBvdXRwdXQpO1xuICB9XG5cbiAgLyoqIE1vbnRocyAqL1xuICBtb250aHMoKTogc3RyaW5nW107XG4gIG1vbnRocyhkYXRlOiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbik6IHN0cmluZztcbiAgbW9udGhzKGRhdGU/OiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDID0gZmFsc2UpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheTxzdHJpbmc+KHRoaXMuX21vbnRocylcbiAgICAgICAgPyB0aGlzLl9tb250aHNcbiAgICAgICAgOiB0aGlzLl9tb250aHMuc3RhbmRhbG9uZTtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJheTxzdHJpbmc+KHRoaXMuX21vbnRocykpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb250aHNbZ2V0TW9udGgoZGF0ZSwgaXNVVEMpXTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSAodGhpcy5fbW9udGhzLmlzRm9ybWF0IHx8IE1PTlRIU19JTl9GT1JNQVQpLnRlc3QoZm9ybWF0KVxuICAgICAgPyAnZm9ybWF0J1xuICAgICAgOiAnc3RhbmRhbG9uZSc7XG5cbiAgICByZXR1cm4gdGhpcy5fbW9udGhzW2tleV1bZ2V0TW9udGgoZGF0ZSwgaXNVVEMpXTtcbiAgfVxuXG4gIG1vbnRoc1Nob3J0KCk6IHN0cmluZ1tdO1xuICBtb250aHNTaG9ydChkYXRlPzogRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBpc1VUQz86IGJvb2xlYW4pOiBzdHJpbmc7XG4gIG1vbnRoc1Nob3J0KGRhdGU/OiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDID0gZmFsc2UpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gaXNBcnJheTxzdHJpbmc+KHRoaXMuX21vbnRoc1Nob3J0KVxuICAgICAgICA/IHRoaXMuX21vbnRoc1Nob3J0XG4gICAgICAgIDogdGhpcy5fbW9udGhzU2hvcnQuc3RhbmRhbG9uZTtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJheTxzdHJpbmc+KHRoaXMuX21vbnRoc1Nob3J0KSkge1xuICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0W2dldE1vbnRoKGRhdGUsIGlzVVRDKV07XG4gICAgfVxuICAgIGNvbnN0IGtleSA9IE1PTlRIU19JTl9GT1JNQVQudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSc7XG5cbiAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRba2V5XVtnZXRNb250aChkYXRlLCBpc1VUQyldO1xuICB9XG5cbiAgbW9udGhzUGFyc2UobW9udGhOYW1lOiBzdHJpbmcsIGZvcm1hdD86IHN0cmluZywgc3RyaWN0PzogYm9vbGVhbik6IG51bWJlciB7XG4gICAgbGV0IGRhdGU7XG4gICAgbGV0IHJlZ2V4O1xuXG4gICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZU1vbnRoU3RyaWN0UGFyc2UobW9udGhOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGFkZCBzb3J0aW5nXG4gICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgIC8vIHNlZSBzb3J0aW5nIGluIGNvbXB1dGVNb250aHNQYXJzZVxuICAgIGxldCBpO1xuICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQygyMDAwLCBpKSk7XG4gICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgY29uc3QgX21vbnRocyA9IHRoaXMubW9udGhzKGRhdGUsICcnLCB0cnVlKS5yZXBsYWNlKCcuJywgJycpO1xuICAgICAgICBjb25zdCBfc2hvcnRNb250aHMgPSB0aGlzLm1vbnRoc1Nob3J0KGRhdGUsICcnLCB0cnVlKS5yZXBsYWNlKCcuJywgJycpO1xuICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKGBeJHtfbW9udGhzfSRgLCAnaScpO1xuICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChgXiR7X3Nob3J0TW9udGhzfSRgLCAnaScpO1xuICAgICAgfVxuICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgIHJlZ2V4ID0gYF4ke3RoaXMubW9udGhzKGRhdGUsICcnLCB0cnVlKX18XiR7dGhpcy5tb250aHNTaG9ydChkYXRlLCAnJywgdHJ1ZSl9YDtcbiAgICAgICAgdGhpcy5fbW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKHJlZ2V4LnJlcGxhY2UoJy4nLCAnJyksICdpJyk7XG4gICAgICB9XG4gICAgICAvLyB0ZXN0IHRoZSByZWdleFxuICAgICAgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdNTU1NJyAmJiAodGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldIGFzIFJlZ0V4cCkudGVzdChtb250aE5hbWUpKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ01NTScgJiYgKHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gYXMgUmVnRXhwKS50ZXN0KG1vbnRoTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9XG5cbiAgICAgIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICByZXR1cm4gaTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBtb250aHNSZWdleChpc1N0cmljdDogYm9vbGVhbik6IFJlZ0V4cCB7XG4gICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgdGhpcy5jb21wdXRlTW9udGhzUGFyc2UoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9tb250aHNSZWdleDtcbiAgICB9XG5cbiAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICB0aGlzLl9tb250aHNSZWdleCA9IGRlZmF1bHRNb250aHNSZWdleDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggOiB0aGlzLl9tb250aHNSZWdleDtcbiAgfVxuXG4gIG1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3Q6IGJvb2xlYW4pOiBSZWdFeHAge1xuICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgIHRoaXMuY29tcHV0ZU1vbnRoc1BhcnNlKCk7XG4gICAgICB9XG4gICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFJlZ2V4O1xuICAgIH1cbiAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNTaG9ydFJlZ2V4JykpIHtcbiAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSBkZWZhdWx0TW9udGhzU2hvcnRSZWdleDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgfVxuXG4gIC8qKiBXZWVrICovXG4gIHdlZWsoZGF0ZTogRGF0ZSwgaXNVVEM/OiBib29sZWFuKTogbnVtYmVyIHtcbiAgICByZXR1cm4gd2Vla09mWWVhcihkYXRlLCB0aGlzLl93ZWVrLmRvdywgdGhpcy5fd2Vlay5kb3ksIGlzVVRDKS53ZWVrO1xuICB9XG5cbiAgZmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3c7XG4gIH1cblxuICBmaXJzdERheU9mWWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl93ZWVrLmRveTtcbiAgfVxuXG4gIC8qKiBEYXkgb2YgV2VlayAqL1xuICB3ZWVrZGF5cygpOiBzdHJpbmdbXTtcbiAgd2Vla2RheXMoZGF0ZTogRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBpc1VUQz86IGJvb2xlYW4pOiBzdHJpbmc7XG4gIHdlZWtkYXlzKGRhdGU/OiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbik6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBpc0FycmF5PHN0cmluZz4odGhpcy5fd2Vla2RheXMpXG4gICAgICAgID8gdGhpcy5fd2Vla2RheXNcbiAgICAgICAgOiB0aGlzLl93ZWVrZGF5cy5zdGFuZGFsb25lO1xuICAgIH1cblxuICAgIGlmIChpc0FycmF5PHN0cmluZz4odGhpcy5fd2Vla2RheXMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNbZ2V0RGF5KGRhdGUsIGlzVVRDKV07XG4gICAgfVxuXG4gICAgY29uc3QgX2tleSA9IHRoaXMuX3dlZWtkYXlzLmlzRm9ybWF0LnRlc3QoZm9ybWF0KVxuICAgICAgPyAnZm9ybWF0J1xuICAgICAgOiAnc3RhbmRhbG9uZSc7XG5cbiAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNbX2tleV1bZ2V0RGF5KGRhdGUsIGlzVVRDKV07XG4gIH1cblxuICB3ZWVrZGF5c01pbigpOiBzdHJpbmdbXTtcbiAgd2Vla2RheXNNaW4oZGF0ZTogRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBpc1VUQz86IGJvb2xlYW4pOiBzdHJpbmc7XG4gIHdlZWtkYXlzTWluKGRhdGU/OiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbik6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZGF0ZSA/IHRoaXMuX3dlZWtkYXlzTWluW2dldERheShkYXRlLCBpc1VUQyldIDogdGhpcy5fd2Vla2RheXNNaW47XG4gIH1cblxuICB3ZWVrZGF5c1Nob3J0KCk6IHN0cmluZ1tdO1xuICB3ZWVrZGF5c1Nob3J0KGRhdGU6IERhdGUsIGZvcm1hdD86IHN0cmluZywgaXNVVEM/OiBib29sZWFuKTogc3RyaW5nO1xuICB3ZWVrZGF5c1Nob3J0KGRhdGU/OiBEYXRlLCBmb3JtYXQ/OiBzdHJpbmcsIGlzVVRDPzogYm9vbGVhbik6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gZGF0ZSA/IHRoaXMuX3dlZWtkYXlzU2hvcnRbZ2V0RGF5KGRhdGUsIGlzVVRDKV0gOiB0aGlzLl93ZWVrZGF5c1Nob3J0O1xuICB9XG5cblxuICAvLyBwcm90by53ZWVrZGF5c1BhcnNlICA9ICAgICAgICBsb2NhbGVXZWVrZGF5c1BhcnNlO1xuICB3ZWVrZGF5c1BhcnNlKHdlZWtkYXlOYW1lPzogc3RyaW5nLCBmb3JtYXQ/OiBzdHJpbmcsIHN0cmljdD86IGJvb2xlYW4pOiBudW1iZXIge1xuICAgIGxldCBpO1xuICAgIGxldCByZWdleDtcblxuICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVdlZWtTdHJpY3RQYXJzZSh3ZWVrZGF5TmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fd2Vla2RheXNQYXJzZSkge1xuICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlID0gW107XG4gICAgICB0aGlzLl9mdWxsV2Vla2RheXNQYXJzZSA9IFtdO1xuICAgIH1cblxuICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgLy8gZml4OiBoZXJlIGlzIHRoZSBpc3N1ZVxuICAgICAgY29uc3QgZGF0ZSA9IHNldERheU9mV2VlayhuZXcgRGF0ZShEYXRlLlVUQygyMDAwLCAxKSksIGksIG51bGwsIHRydWUpO1xuICAgICAgaWYgKHN0cmljdCAmJiAhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKGBeJHt0aGlzLndlZWtkYXlzKGRhdGUsICcnLCB0cnVlKS5yZXBsYWNlKCcuJywgJ1xcLj8nKX0kYCwgJ2knKTtcbiAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChgXiR7dGhpcy53ZWVrZGF5c1Nob3J0KGRhdGUsICcnLCB0cnVlKS5yZXBsYWNlKCcuJywgJ1xcLj8nKX0kYCwgJ2knKTtcbiAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoYF4ke3RoaXMud2Vla2RheXNNaW4oZGF0ZSwgJycsIHRydWUpLnJlcGxhY2UoJy4nLCAnXFwuPycpfSRgLCAnaScpO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlW2ldKSB7XG4gICAgICAgIHJlZ2V4ID0gYF4ke3RoaXMud2Vla2RheXMoZGF0ZSwgJycsIHRydWUpfXxeJHt0aGlzLndlZWtkYXlzU2hvcnQoZGF0ZSwgJycsIHRydWUpfXxeJHt0aGlzLndlZWtkYXlzTWluKGRhdGUsICcnLCB0cnVlKX1gO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzQXJyYXk8UmVnRXhwPih0aGlzLl9mdWxsV2Vla2RheXNQYXJzZSlcbiAgICAgICAgfHwgIWlzQXJyYXk8UmVnRXhwPih0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UpXG4gICAgICAgIHx8ICFpc0FycmF5PFJlZ0V4cD4odGhpcy5fbWluV2Vla2RheXNQYXJzZSlcbiAgICAgICAgfHwgIWlzQXJyYXk8UmVnRXhwPih0aGlzLl93ZWVrZGF5c1BhcnNlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIHRlc3QgdGhlIHJlZ2V4XG4gICAgICBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkZGQnICYmIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGRkJyAmJiB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIGk7XG4gICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZCcgJiYgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICByZXR1cm4gaTtcbiAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgIHJldHVybiBpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHByb3RvLndlZWtkYXlzUmVnZXggICAgICAgPSAgICAgICAgd2Vla2RheXNSZWdleDtcbiAgd2Vla2RheXNSZWdleChpc1N0cmljdDogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl93ZWVrZGF5c1BhcnNlRXhhY3QpIHtcbiAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzUmVnZXgnKSkge1xuICAgICAgICB0aGlzLmNvbXB1dGVXZWVrZGF5c1BhcnNlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IG1hdGNoV29yZDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICB0aGlzLl93ZWVrZGF5c1N0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICB9XG4gIH1cblxuICAvLyBwcm90by53ZWVrZGF5c1Nob3J0UmVnZXggID0gICAgICAgIHdlZWtkYXlzU2hvcnRSZWdleDtcbiAgLy8gcHJvdG8ud2Vla2RheXNNaW5SZWdleCAgICA9ICAgICAgICB3ZWVrZGF5c01pblJlZ2V4O1xuXG5cbiAgd2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0PzogYm9vbGVhbik6IFJlZ0V4cCB7XG4gICAgaWYgKHRoaXMuX3dlZWtkYXlzUGFyc2VFeGFjdCkge1xuICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgIHRoaXMuY29tcHV0ZVdlZWtkYXlzUGFyc2UoKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNTaG9ydFJlZ2V4JykpIHtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4O1xuICAgIH1cbiAgfVxuXG4gIHdlZWtkYXlzTWluUmVnZXgoaXNTdHJpY3Q/OiBib29sZWFuKTogUmVnRXhwIHtcbiAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgdGhpcy5jb21wdXRlV2Vla2RheXNQYXJzZSgpO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluUmVnZXg7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzTWluUmVnZXgnKSkge1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gbWF0Y2hXb3JkO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggOiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgIH1cbiAgfVxuXG4gIGlzUE0oaW5wdXQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIElFOCBRdWlya3MgTW9kZSAmIElFNyBTdGFuZGFyZHMgTW9kZSBkbyBub3QgYWxsb3cgYWNjZXNzaW5nIHN0cmluZ3MgbGlrZSBhcnJheXNcbiAgICAvLyBVc2luZyBjaGFyQXQgc2hvdWxkIGJlIG1vcmUgY29tcGF0aWJsZS5cbiAgICByZXR1cm4gaW5wdXQudG9Mb3dlckNhc2UoKS5jaGFyQXQoMCkgPT09ICdwJztcbiAgfVxuXG4gIG1lcmlkaWVtKGhvdXJzOiBudW1iZXIsIG1pbnV0ZXM6IG51bWJlciwgaXNMb3dlcjogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKGhvdXJzID4gMTEpIHtcbiAgICAgIHJldHVybiBpc0xvd2VyID8gJ3BtJyA6ICdQTSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzTG93ZXIgPyAnYW0nIDogJ0FNJztcbiAgfVxuXG4gIGZvcm1hdExvbmdEYXRlKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbG9uZ0RhdGVGb3JtYXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdCA/IHRoaXMuX2xvbmdEYXRlRm9ybWF0IDogZGVmYXVsdExvbmdEYXRlRm9ybWF0O1xuICAgIGNvbnN0IGZvcm1hdCA9IHRoaXMuX2xvbmdEYXRlRm9ybWF0W2tleV07XG4gICAgY29uc3QgZm9ybWF0VXBwZXIgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV07XG5cbiAgICBpZiAoZm9ybWF0IHx8ICFmb3JtYXRVcHBlcikge1xuICAgICAgcmV0dXJuIGZvcm1hdDtcbiAgICB9XG5cbiAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtcbiAgICAgIGtleVxuICAgICAgXSA9IGZvcm1hdFVwcGVyLnJlcGxhY2UoL01NTU18TU18RER8ZGRkZC9nLCAodmFsOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB2YWwuc2xpY2UoMSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fbG9uZ0RhdGVGb3JtYXRba2V5XTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTW9udGhTdHJpY3RQYXJzZShtb250aE5hbWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHN0cmljdD86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBsbGMgPSBtb250aE5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICBsZXQgaTtcbiAgICBsZXQgaWk7XG4gICAgbGV0IG1vbTtcbiAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkXG4gICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7ICsraSkge1xuICAgICAgICBtb20gPSBuZXcgRGF0ZSgyMDAwLCBpKTtcbiAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IHRoaXMubW9udGhzU2hvcnQobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHMobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RyaWN0KSB7XG4gICAgICBpZiAoZm9ybWF0ID09PSAnTU1NJykge1xuICAgICAgICBpaSA9ICh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlIGFzIHN0cmluZ1tdKS5pbmRleE9mKGxsYyk7XG5cbiAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgIH1cbiAgICAgIGlpID0gKHRoaXMuX2xvbmdNb250aHNQYXJzZSBhcyBzdHJpbmdbXSkuaW5kZXhPZihsbGMpO1xuXG4gICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgIH1cblxuICAgIGlmIChmb3JtYXQgPT09ICdNTU0nKSB7XG4gICAgICBpaSA9ICh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlIGFzIHN0cmluZ1tdKS5pbmRleE9mKGxsYyk7XG4gICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgIHJldHVybiBpaTtcbiAgICAgIH1cblxuICAgICAgaWkgPSAodGhpcy5fbG9uZ01vbnRoc1BhcnNlIGFzIHN0cmluZ1tdKS5pbmRleE9mKGxsYyk7XG5cbiAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgfVxuXG4gICAgaWkgPSAodGhpcy5fbG9uZ01vbnRoc1BhcnNlIGFzIHN0cmluZ1tdKS5pbmRleE9mKGxsYyk7XG4gICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIGlpO1xuICAgIH1cbiAgICBpaSA9ICh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlIGFzIHN0cmluZ1tdKS5pbmRleE9mKGxsYyk7XG5cbiAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVXZWVrU3RyaWN0UGFyc2Uod2Vla2RheU5hbWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHN0cmljdDogYm9vbGVhbik6IG51bWJlciB7XG4gICAgbGV0IGlpO1xuICAgIGNvbnN0IGxsYyA9IHdlZWtkYXlOYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgaWYgKCF0aGlzLl93ZWVrZGF5c1BhcnNlKSB7XG4gICAgICB0aGlzLl93ZWVrZGF5c1BhcnNlID0gW107XG4gICAgICB0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcblxuICAgICAgbGV0IGk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgKytpKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBzZXREYXlPZldlZWsobmV3IERhdGUoRGF0ZS5VVEMoMjAwMCwgMSkpLCBpLCBudWxsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXNNaW4oZGF0ZSkudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c1Nob3J0KGRhdGUpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzKGRhdGUsICcnKS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNBcnJheTxzdHJpbmc+KHRoaXMuX3dlZWtkYXlzUGFyc2UpXG4gICAgICB8fCAhaXNBcnJheTxzdHJpbmc+KHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSlcbiAgICAgIHx8ICFpc0FycmF5PHN0cmluZz4odGhpcy5fbWluV2Vla2RheXNQYXJzZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc3RyaWN0KSB7XG4gICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgaWkgPSB0aGlzLl93ZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcblxuICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgIGlpID0gdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcblxuICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWkgPSB0aGlzLl9taW5XZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcblxuICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgaWkgPSB0aGlzLl93ZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcbiAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgfVxuICAgICAgICBpaSA9IHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZS5pbmRleE9mKGxsYyk7XG4gICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgIH1cbiAgICAgICAgaWkgPSB0aGlzLl9taW5XZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcblxuICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09ICdkZGQnKSB7XG4gICAgICAgIGlpID0gdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcbiAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgfVxuICAgICAgICBpaSA9IHRoaXMuX3dlZWtkYXlzUGFyc2UuaW5kZXhPZihsbGMpO1xuICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICB9XG4gICAgICAgIGlpID0gdGhpcy5fbWluV2Vla2RheXNQYXJzZS5pbmRleE9mKGxsYyk7XG5cbiAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlpID0gdGhpcy5fbWluV2Vla2RheXNQYXJzZS5pbmRleE9mKGxsYyk7XG4gICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgIH1cbiAgICAgICAgaWkgPSB0aGlzLl93ZWVrZGF5c1BhcnNlLmluZGV4T2YobGxjKTtcbiAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgfVxuICAgICAgICBpaSA9IHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZS5pbmRleE9mKGxsYyk7XG5cbiAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXB1dGVNb250aHNQYXJzZSgpIHtcbiAgICBjb25zdCBzaG9ydFBpZWNlczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBsb25nUGllY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IG1peGVkUGllY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBkYXRlO1xuXG4gICAgbGV0IGk7XG4gICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgZGF0ZSA9IG5ldyBEYXRlKDIwMDAsIGkpO1xuICAgICAgc2hvcnRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KGRhdGUsICcnKSk7XG4gICAgICBsb25nUGllY2VzLnB1c2godGhpcy5tb250aHMoZGF0ZSwgJycpKTtcbiAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHMoZGF0ZSwgJycpKTtcbiAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChkYXRlLCAnJykpO1xuICAgIH1cbiAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIG1vbnRoIChvciBhYmJyKSBpcyBhIHByZWZpeCBvZiBhbm90aGVyIGl0XG4gICAgLy8gd2lsbCBtYXRjaCB0aGUgbG9uZ2VyIHBpZWNlLlxuICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBsb25nUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBtaXhlZFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgIH1cbiAgICBmb3IgKGkgPSAwOyBpIDwgMjQ7IGkrKykge1xuICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5fbW9udGhzUmVnZXggPSBuZXcgUmVnRXhwKGBeKCR7bWl4ZWRQaWVjZXMuam9pbignfCcpfSlgLCAnaScpO1xuICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSB0aGlzLl9tb250aHNSZWdleDtcbiAgICB0aGlzLl9tb250aHNTdHJpY3RSZWdleCA9IG5ldyBSZWdFeHAoYF4oJHtsb25nUGllY2VzLmpvaW4oJ3wnKX0pYCwgJ2knKTtcbiAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXigke3Nob3J0UGllY2VzLmpvaW4oJ3wnKX0pYCwgJ2knKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcHV0ZVdlZWtkYXlzUGFyc2UoKSB7XG4gICAgY29uc3QgbWluUGllY2VzID0gW107XG4gICAgY29uc3Qgc2hvcnRQaWVjZXMgPSBbXTtcbiAgICBjb25zdCBsb25nUGllY2VzID0gW107XG4gICAgY29uc3QgbWl4ZWRQaWVjZXMgPSBbXTtcblxuICAgIGxldCBpO1xuICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgLy8gbGV0IG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgIGNvbnN0IGRhdGUgPSBzZXREYXlPZldlZWsobmV3IERhdGUoRGF0ZS5VVEMoMjAwMCwgMSkpLCBpLCBudWxsLCB0cnVlKTtcbiAgICAgIGNvbnN0IG1pbnAgPSB0aGlzLndlZWtkYXlzTWluKGRhdGUpO1xuICAgICAgY29uc3Qgc2hvcnRwID0gdGhpcy53ZWVrZGF5c1Nob3J0KGRhdGUpO1xuICAgICAgY29uc3QgbG9uZ3AgPSB0aGlzLndlZWtkYXlzKGRhdGUpO1xuICAgICAgbWluUGllY2VzLnB1c2gobWlucCk7XG4gICAgICBzaG9ydFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICBsb25nUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgbWl4ZWRQaWVjZXMucHVzaChtaW5wKTtcbiAgICAgIG1peGVkUGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgIG1peGVkUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgIH1cbiAgICAvLyBTb3J0aW5nIG1ha2VzIHN1cmUgaWYgb25lIHdlZWtkYXkgKG9yIGFiYnIpIGlzIGEgcHJlZml4IG9mIGFub3RoZXIgaXRcbiAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgbWluUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICBzaG9ydFBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgbWl4ZWRQaWVjZXMuc29ydChjbXBMZW5SZXYpO1xuICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgICAgbWl4ZWRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShtaXhlZFBpZWNlc1tpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IG5ldyBSZWdFeHAoYF4oJHttaXhlZFBpZWNlcy5qb2luKCd8Jyl9KWAsICdpJyk7XG4gICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcbiAgICB0aGlzLl93ZWVrZGF5c01pblJlZ2V4ID0gdGhpcy5fd2Vla2RheXNSZWdleDtcblxuICAgIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKGBeKCR7bG9uZ1BpZWNlcy5qb2luKCd8Jyl9KWAsICdpJyk7XG4gICAgdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXigke3Nob3J0UGllY2VzLmpvaW4oJ3wnKX0pYCwgJ2knKTtcbiAgICB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXigke21pblBpZWNlcy5qb2luKCd8Jyl9KWAsICdpJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY21wTGVuUmV2KGE6IHN0cmluZywgYjogc3RyaW5nKTogbnVtYmVyIHtcbiAgcmV0dXJuIGIubGVuZ3RoIC0gYS5sZW5ndGg7XG59XG4iXX0=
|