@anglr/datetime 1.0.0 → 2.0.1-beta.20220222061608
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 +19 -0
- package/date-fns/package.json +7 -7
- package/date-fns/src/{date-fns.d.ts → index.d.ts} +4 -4
- package/date-fns/src/index.d.ts.map +1 -0
- package/date-fns/src/misc/tokens.d.ts +10 -10
- package/date-fns/src/services/dateFnsDateApi.service.d.ts +36 -33
- package/date-fns/src/services/dateFnsDateApi.service.d.ts.map +1 -1
- package/date-fns/src/services/dateFnsLocale.service.d.ts +10 -10
- package/es2015/date-fns/src/index.js +4 -0
- package/es2015/date-fns/src/index.js.map +1 -0
- package/es2015/date-fns/src/misc/tokens.js +20 -0
- package/es2015/date-fns/src/misc/tokens.js.map +1 -0
- package/es2015/date-fns/src/services/dateFnsDateApi.service.js +438 -0
- package/es2015/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
- package/es2015/date-fns/src/services/dateFnsLocale.service.js +2 -0
- package/es2015/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
- package/es2015/karma.conf.js +57 -0
- package/es2015/karma.conf.js.map +1 -0
- package/{moment/src/moment.d.ts → es2015/moment/src/index.js} +3 -3
- package/es2015/moment/src/index.js.map +1 -0
- package/es2015/moment/src/misc/tokens.js +15 -0
- package/es2015/moment/src/misc/tokens.js.map +1 -0
- package/es2015/moment/src/services/momentDateApi.service.js +398 -0
- package/es2015/moment/src/services/momentDateApi.service.js.map +1 -0
- package/{src/datetime.d.ts → es2015/src/index.js} +19 -19
- package/es2015/src/index.js.map +1 -0
- package/es2015/src/misc/constants.js +33 -0
- package/es2015/src/misc/constants.js.map +1 -0
- package/es2015/src/misc/datetime.interface.js +2 -0
- package/es2015/src/misc/datetime.interface.js.map +1 -0
- package/es2015/src/misc/tokens.js +19 -0
- package/es2015/src/misc/tokens.js.map +1 -0
- package/es2015/src/misc/validators.js +58 -0
- package/es2015/src/misc/validators.js.map +1 -0
- package/es2015/src/modules/datePipes.module.js +33 -0
- package/es2015/src/modules/datePipes.module.js.map +1 -0
- package/es2015/src/picker/components/dayPicker/dayPicker.component.js +172 -0
- package/es2015/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
- package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
- package/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
- package/es2015/src/picker/components/monthPicker/monthPicker.component.js +114 -0
- package/es2015/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
- package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
- package/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
- package/es2015/src/picker/components/picker/picker.component.animations.js +71 -0
- package/es2015/src/picker/components/picker/picker.component.animations.js.map +1 -0
- package/es2015/src/picker/components/picker/picker.component.js +241 -0
- package/es2015/src/picker/components/picker/picker.component.js.map +1 -0
- package/es2015/src/picker/components/pickerBase.component.js +243 -0
- package/es2015/src/picker/components/pickerBase.component.js.map +1 -0
- package/es2015/src/picker/components/yearPicker/yearPicker.component.js +126 -0
- package/es2015/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
- package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
- package/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
- package/es2015/src/picker/interfaces.js +5 -0
- package/es2015/src/picker/interfaces.js.map +1 -0
- package/es2015/src/picker/misc/datetimePicker.interface.js +2 -0
- package/es2015/src/picker/misc/datetimePicker.interface.js.map +1 -0
- package/es2015/src/picker/misc/tokens.js +6 -0
- package/es2015/src/picker/misc/tokens.js.map +1 -0
- package/es2015/src/picker/modules/picker.module.js +46 -0
- package/es2015/src/picker/modules/picker.module.js.map +1 -0
- package/es2015/src/picker/types.js +8 -0
- package/es2015/src/picker/types.js.map +1 -0
- package/es2015/src/pipes/asRequiredType.js +22 -0
- package/es2015/src/pipes/asRequiredType.js.map +1 -0
- package/es2015/src/pipes/dateConvert.pipe.js +35 -0
- package/es2015/src/pipes/dateConvert.pipe.js.map +1 -0
- package/es2015/src/pipes/dateFormat.pipe.js +45 -0
- package/es2015/src/pipes/dateFormat.pipe.js.map +1 -0
- package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +421 -0
- package/es2015/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
- package/es2015/src/selector/components/selector/selector.component.animations.js +15 -0
- package/es2015/src/selector/components/selector/selector.component.animations.js.map +1 -0
- package/es2015/src/selector/components/selector/selector.component.js +344 -0
- package/es2015/src/selector/components/selector/selector.component.js.map +1 -0
- package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +317 -0
- package/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
- package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
- package/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
- package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
- package/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
- package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
- package/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
- package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +119 -0
- package/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
- package/es2015/src/selector/interfaces.js +2 -0
- package/es2015/src/selector/interfaces.js.map +1 -0
- package/es2015/src/selector/misc/datetimeSelector.interface.js +2 -0
- package/es2015/src/selector/misc/datetimeSelector.interface.js.map +1 -0
- package/es2015/src/selector/misc/tokens.js +6 -0
- package/es2015/src/selector/misc/tokens.js.map +1 -0
- package/es2015/src/selector/modules/basicSelector.module.js +20 -0
- package/es2015/src/selector/modules/basicSelector.module.js.map +1 -0
- package/es2015/src/selector/modules/selector.module.js +60 -0
- package/es2015/src/selector/modules/selector.module.js.map +1 -0
- package/es2015/src/selector/types.js +10 -0
- package/es2015/src/selector/types.js.map +1 -0
- package/es2015/src/services/dateApi.interface.js +2 -0
- package/es2015/src/services/dateApi.interface.js.map +1 -0
- package/es2015/src/services/datePositionParser.interface.js +2 -0
- package/es2015/src/services/datePositionParser.interface.js.map +1 -0
- package/es2015/src/services/datePositionParser.service.js +227 -0
- package/es2015/src/services/datePositionParser.service.js.map +1 -0
- package/es2015/src/services/dateTimeRelativeParser.service.js +66 -0
- package/es2015/src/services/dateTimeRelativeParser.service.js.map +1 -0
- package/es2015/src/services/dateValueProvider.service.js +58 -0
- package/es2015/src/services/dateValueProvider.service.js.map +1 -0
- package/es2015/src/services/formatProvider.interface.js +2 -0
- package/es2015/src/services/formatProvider.interface.js.map +1 -0
- package/es2015/src/services/index.js +4 -0
- package/es2015/src/services/index.js.map +1 -0
- package/es2020/date-fns/src/index.js +4 -0
- package/es2020/date-fns/src/index.js.map +1 -0
- package/es2020/date-fns/src/misc/tokens.js +20 -0
- package/es2020/date-fns/src/misc/tokens.js.map +1 -0
- package/es2020/date-fns/src/services/dateFnsDateApi.service.js +437 -0
- package/es2020/date-fns/src/services/dateFnsDateApi.service.js.map +1 -0
- package/es2020/date-fns/src/services/dateFnsLocale.service.js +2 -0
- package/es2020/date-fns/src/services/dateFnsLocale.service.js.map +1 -0
- package/es2020/karma.conf.js +57 -0
- package/es2020/karma.conf.js.map +1 -0
- package/es2020/moment/src/index.js +3 -0
- package/es2020/moment/src/index.js.map +1 -0
- package/es2020/moment/src/misc/tokens.js +15 -0
- package/es2020/moment/src/misc/tokens.js.map +1 -0
- package/es2020/moment/src/services/momentDateApi.service.js +398 -0
- package/es2020/moment/src/services/momentDateApi.service.js.map +1 -0
- package/es2020/src/index.js +19 -0
- package/es2020/src/index.js.map +1 -0
- package/es2020/src/misc/constants.js +33 -0
- package/es2020/src/misc/constants.js.map +1 -0
- package/es2020/src/misc/datetime.interface.js +2 -0
- package/es2020/src/misc/datetime.interface.js.map +1 -0
- package/es2020/src/misc/tokens.js +19 -0
- package/es2020/src/misc/tokens.js.map +1 -0
- package/es2020/src/misc/validators.js +58 -0
- package/es2020/src/misc/validators.js.map +1 -0
- package/es2020/src/modules/datePipes.module.js +33 -0
- package/es2020/src/modules/datePipes.module.js.map +1 -0
- package/es2020/src/picker/components/dayPicker/dayPicker.component.js +172 -0
- package/es2020/src/picker/components/dayPicker/dayPicker.component.js.map +1 -0
- package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js +2 -0
- package/es2020/src/picker/components/dayPicker/dayPicker.interfaces.js.map +1 -0
- package/es2020/src/picker/components/monthPicker/monthPicker.component.js +114 -0
- package/es2020/src/picker/components/monthPicker/monthPicker.component.js.map +1 -0
- package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js +2 -0
- package/es2020/src/picker/components/monthPicker/monthPicker.interfaces.js.map +1 -0
- package/es2020/src/picker/components/picker/picker.component.animations.js +71 -0
- package/es2020/src/picker/components/picker/picker.component.animations.js.map +1 -0
- package/es2020/src/picker/components/picker/picker.component.js +236 -0
- package/es2020/src/picker/components/picker/picker.component.js.map +1 -0
- package/es2020/src/picker/components/pickerBase.component.js +243 -0
- package/es2020/src/picker/components/pickerBase.component.js.map +1 -0
- package/es2020/src/picker/components/yearPicker/yearPicker.component.js +126 -0
- package/es2020/src/picker/components/yearPicker/yearPicker.component.js.map +1 -0
- package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js +2 -0
- package/es2020/src/picker/components/yearPicker/yearPicker.interfaces.js.map +1 -0
- package/es2020/src/picker/interfaces.js +5 -0
- package/es2020/src/picker/interfaces.js.map +1 -0
- package/es2020/src/picker/misc/datetimePicker.interface.js +2 -0
- package/es2020/src/picker/misc/datetimePicker.interface.js.map +1 -0
- package/es2020/src/picker/misc/tokens.js +6 -0
- package/es2020/src/picker/misc/tokens.js.map +1 -0
- package/es2020/src/picker/modules/picker.module.js +46 -0
- package/es2020/src/picker/modules/picker.module.js.map +1 -0
- package/es2020/src/picker/types.js +8 -0
- package/es2020/src/picker/types.js.map +1 -0
- package/es2020/src/pipes/asRequiredType.js +22 -0
- package/es2020/src/pipes/asRequiredType.js.map +1 -0
- package/es2020/src/pipes/dateConvert.pipe.js +35 -0
- package/es2020/src/pipes/dateConvert.pipe.js.map +1 -0
- package/es2020/src/pipes/dateFormat.pipe.js +45 -0
- package/es2020/src/pipes/dateFormat.pipe.js.map +1 -0
- package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js +417 -0
- package/es2020/src/selector/components/inputDateTime/inputDateTime.component.js.map +1 -0
- package/es2020/src/selector/components/selector/selector.component.animations.js +15 -0
- package/es2020/src/selector/components/selector/selector.component.animations.js.map +1 -0
- package/es2020/src/selector/components/selector/selector.component.js +334 -0
- package/es2020/src/selector/components/selector/selector.component.js.map +1 -0
- package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +314 -0
- package/es2020/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js.map +1 -0
- package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +51 -0
- package/es2020/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js.map +1 -0
- package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +51 -0
- package/es2020/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js.map +1 -0
- package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +47 -0
- package/es2020/src/selector/directives/datetimeValidator/datetimeValidator.directive.js.map +1 -0
- package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +118 -0
- package/es2020/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js.map +1 -0
- package/es2020/src/selector/interfaces.js +2 -0
- package/es2020/src/selector/interfaces.js.map +1 -0
- package/es2020/src/selector/misc/datetimeSelector.interface.js +2 -0
- package/es2020/src/selector/misc/datetimeSelector.interface.js.map +1 -0
- package/es2020/src/selector/misc/tokens.js +6 -0
- package/es2020/src/selector/misc/tokens.js.map +1 -0
- package/es2020/src/selector/modules/basicSelector.module.js +20 -0
- package/es2020/src/selector/modules/basicSelector.module.js.map +1 -0
- package/es2020/src/selector/modules/selector.module.js +60 -0
- package/es2020/src/selector/modules/selector.module.js.map +1 -0
- package/es2020/src/selector/types.js +10 -0
- package/es2020/src/selector/types.js.map +1 -0
- package/es2020/src/services/dateApi.interface.js +2 -0
- package/es2020/src/services/dateApi.interface.js.map +1 -0
- package/es2020/src/services/datePositionParser.interface.js +2 -0
- package/es2020/src/services/datePositionParser.interface.js.map +1 -0
- package/es2020/src/services/datePositionParser.service.js +227 -0
- package/es2020/src/services/datePositionParser.service.js.map +1 -0
- package/es2020/src/services/dateTimeRelativeParser.service.js +65 -0
- package/es2020/src/services/dateTimeRelativeParser.service.js.map +1 -0
- package/es2020/src/services/dateValueProvider.service.js +58 -0
- package/es2020/src/services/dateValueProvider.service.js.map +1 -0
- package/es2020/src/services/formatProvider.interface.js +2 -0
- package/es2020/src/services/formatProvider.interface.js.map +1 -0
- package/es2020/src/services/index.js +4 -0
- package/es2020/src/services/index.js.map +1 -0
- package/karma.conf.d.ts +2 -0
- package/karma.conf.d.ts.map +1 -0
- package/moment/package.json +7 -7
- package/moment/src/index.d.ts +3 -0
- package/moment/src/index.d.ts.map +1 -0
- package/moment/src/misc/tokens.d.ts +5 -5
- package/moment/src/services/momentDateApi.service.d.ts +35 -32
- package/moment/src/services/momentDateApi.service.d.ts.map +1 -1
- package/package.json +100 -48
- package/src/index.d.ts +19 -0
- package/src/index.d.ts.map +1 -0
- package/src/misc/constants.d.ts +32 -32
- package/src/misc/datetime.interface.d.ts +34 -34
- package/src/misc/tokens.d.ts +10 -10
- package/src/misc/validators.d.ts +25 -25
- package/src/modules/datePipes.module.d.ts +12 -5
- package/src/modules/datePipes.module.d.ts.map +1 -1
- package/src/picker/components/dayPicker/dayPicker.component.d.ts +68 -65
- package/src/picker/components/dayPicker/dayPicker.component.d.ts.map +1 -1
- package/src/picker/components/dayPicker/dayPicker.component.html +7 -7
- package/src/picker/components/dayPicker/dayPicker.interfaces.d.ts +10 -10
- package/src/picker/components/monthPicker/monthPicker.component.d.ts +52 -49
- package/src/picker/components/monthPicker/monthPicker.component.d.ts.map +1 -1
- package/src/picker/components/monthPicker/monthPicker.component.html +6 -6
- package/src/picker/components/monthPicker/monthPicker.interfaces.d.ts +6 -6
- package/src/picker/components/picker/picker.component.animations.d.ts +4 -4
- package/src/picker/components/picker/picker.component.d.ts +104 -101
- package/src/picker/components/picker/picker.component.d.ts.map +1 -1
- package/src/picker/components/pickerBase.component.d.ts +169 -166
- package/src/picker/components/pickerBase.component.d.ts.map +1 -1
- package/src/picker/components/yearPicker/yearPicker.component.d.ts +57 -54
- package/src/picker/components/yearPicker/yearPicker.component.d.ts.map +1 -1
- package/src/picker/components/yearPicker/yearPicker.component.html +6 -6
- package/src/picker/components/yearPicker/yearPicker.interfaces.d.ts +6 -6
- package/src/picker/interfaces.d.ts +4 -4
- package/src/picker/misc/datetimePicker.interface.d.ts +188 -188
- package/src/picker/misc/tokens.d.ts +6 -6
- package/src/picker/modules/picker.module.d.ts +16 -5
- package/src/picker/modules/picker.module.d.ts.map +1 -1
- package/src/picker/types.d.ts +7 -7
- package/src/pipes/asRequiredType.d.ts +21 -0
- package/src/pipes/asRequiredType.d.ts.map +1 -0
- package/src/pipes/dateConvert.pipe.d.ts +18 -15
- package/src/pipes/dateConvert.pipe.d.ts.map +1 -1
- package/src/pipes/dateFormat.pipe.d.ts +20 -17
- package/src/pipes/dateFormat.pipe.d.ts.map +1 -1
- package/src/selector/components/inputDateTime/inputDateTime.component.d.ts +187 -184
- package/src/selector/components/inputDateTime/inputDateTime.component.d.ts.map +1 -1
- package/src/selector/components/selector/selector.component.animations.d.ts +4 -4
- package/src/selector/components/selector/selector.component.d.ts +155 -152
- package/src/selector/components/selector/selector.component.d.ts.map +1 -1
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts +170 -167
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.d.ts.map +1 -1
- package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts +22 -19
- package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.d.ts.map +1 -1
- package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts +22 -19
- package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.d.ts.map +1 -1
- package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts +21 -18
- package/src/selector/directives/datetimeValidator/datetimeValidator.directive.d.ts.map +1 -1
- package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts +53 -50
- package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.d.ts.map +1 -1
- package/src/selector/interfaces.d.ts +1 -1
- package/src/selector/misc/datetimeSelector.interface.d.ts +82 -82
- package/src/selector/misc/tokens.d.ts +6 -6
- package/src/selector/modules/basicSelector.module.d.ts +10 -5
- package/src/selector/modules/basicSelector.module.d.ts.map +1 -1
- package/src/selector/modules/selector.module.d.ts +18 -5
- package/src/selector/modules/selector.module.d.ts.map +1 -1
- package/src/selector/types.d.ts +9 -9
- package/src/services/dateApi.interface.d.ts +275 -275
- package/src/services/datePositionParser.interface.d.ts +40 -40
- package/src/services/datePositionParser.service.d.ts +60 -57
- package/src/services/datePositionParser.service.d.ts.map +1 -1
- package/src/services/dateTimeRelativeParser.service.d.ts +21 -18
- package/src/services/dateTimeRelativeParser.service.d.ts.map +1 -1
- package/src/services/dateValueProvider.service.d.ts +18 -15
- package/src/services/dateValueProvider.service.d.ts.map +1 -1
- package/src/services/formatProvider.interface.d.ts +17 -17
- package/src/services/index.d.ts +3 -3
- package/tsconfig.karma.json +5 -6
- package/version.bak +1 -1
- package/appveyor.yml +0 -70
- package/date-fns/dist/es2015/date-fns/index.js +0 -10
- package/date-fns/dist/es2015/date-fns/public_api.js +0 -7
- package/date-fns/dist/es2015/date-fns/src/date-fns.js +0 -9
- package/date-fns/dist/es2015/date-fns/src/misc/tokens.js +0 -32
- package/date-fns/dist/es2015/date-fns/src/services/dateFnsDateApi.service.js +0 -512
- package/date-fns/dist/es2015/date-fns/src/services/dateFnsLocale.service.js +0 -18
- package/date-fns/dist/es5/date-fns/index.js +0 -10
- package/date-fns/dist/es5/date-fns/public_api.js +0 -7
- package/date-fns/dist/es5/date-fns/src/date-fns.js +0 -9
- package/date-fns/dist/es5/date-fns/src/misc/tokens.js +0 -32
- package/date-fns/dist/es5/date-fns/src/services/dateFnsDateApi.service.js +0 -902
- package/date-fns/dist/es5/date-fns/src/services/dateFnsLocale.service.js +0 -18
- package/date-fns/index.d.ts +0 -5
- package/date-fns/index.d.ts.map +0 -1
- package/date-fns/index.metadata.json +0 -1
- package/date-fns/public_api.d.ts +0 -2
- package/date-fns/public_api.d.ts.map +0 -1
- package/date-fns/src/date-fns.d.ts.map +0 -1
- package/date-fns/src/services/dateFnsDateApi.service.ngfactory.d.ts.map +0 -1
- package/datetime.d.ts +0 -7
- package/datetime.d.ts.map +0 -1
- package/datetime.metadata.json +0 -1
- package/dist/es2015/datetime.js +0 -10
- package/dist/es2015/public_api.js +0 -7
- package/dist/es2015/src/datetime.js +0 -24
- package/dist/es2015/src/misc/constants.js +0 -46
- package/dist/es2015/src/misc/datetime.interface.js +0 -52
- package/dist/es2015/src/misc/tokens.js +0 -29
- package/dist/es2015/src/misc/validators.js +0 -80
- package/dist/es2015/src/modules/datePipes.module.js +0 -26
- package/dist/es2015/src/picker/components/dayPicker/dayPicker.component.js +0 -215
- package/dist/es2015/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
- package/dist/es2015/src/picker/components/monthPicker/monthPicker.component.js +0 -138
- package/dist/es2015/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
- package/dist/es2015/src/picker/components/picker/picker.component.animations.js +0 -77
- package/dist/es2015/src/picker/components/picker/picker.component.js +0 -386
- package/dist/es2015/src/picker/components/pickerBase.component.js +0 -406
- package/dist/es2015/src/picker/components/yearPicker/yearPicker.component.js +0 -158
- package/dist/es2015/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
- package/dist/es2015/src/picker/interfaces.js +0 -10
- package/dist/es2015/src/picker/misc/datetimePicker.interface.js +0 -245
- package/dist/es2015/src/picker/misc/tokens.js +0 -12
- package/dist/es2015/src/picker/modules/picker.module.js +0 -35
- package/dist/es2015/src/picker/types.js +0 -13
- package/dist/es2015/src/pipes/dateConvert.pipe.js +0 -50
- package/dist/es2015/src/pipes/dateFormat.pipe.js +0 -64
- package/dist/es2015/src/selector/components/inputDateTime/inputDateTime.component.js +0 -588
- package/dist/es2015/src/selector/components/selector/selector.component.animations.js +0 -21
- package/dist/es2015/src/selector/components/selector/selector.component.js +0 -514
- package/dist/es2015/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -456
- package/dist/es2015/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -73
- package/dist/es2015/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -73
- package/dist/es2015/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -70
- package/dist/es2015/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -171
- package/dist/es2015/src/selector/interfaces.js +0 -7
- package/dist/es2015/src/selector/misc/datetimeSelector.interface.js +0 -106
- package/dist/es2015/src/selector/misc/tokens.js +0 -12
- package/dist/es2015/src/selector/modules/basicSelector.module.js +0 -20
- package/dist/es2015/src/selector/modules/selector.module.js +0 -45
- package/dist/es2015/src/selector/types.js +0 -15
- package/dist/es2015/src/services/dateApi.interface.js +0 -316
- package/dist/es2015/src/services/datePositionParser.interface.js +0 -56
- package/dist/es2015/src/services/datePositionParser.service.js +0 -297
- package/dist/es2015/src/services/dateTimeRelativeParser.service.js +0 -97
- package/dist/es2015/src/services/dateValueProvider.service.js +0 -79
- package/dist/es2015/src/services/formatProvider.interface.js +0 -28
- package/dist/es2015/src/services/index.js +0 -9
- package/dist/es5/datetime.js +0 -10
- package/dist/es5/public_api.js +0 -7
- package/dist/es5/src/datetime.js +0 -24
- package/dist/es5/src/misc/constants.js +0 -46
- package/dist/es5/src/misc/datetime.interface.js +0 -52
- package/dist/es5/src/misc/tokens.js +0 -29
- package/dist/es5/src/misc/validators.js +0 -124
- package/dist/es5/src/modules/datePipes.module.js +0 -30
- package/dist/es5/src/picker/components/dayPicker/dayPicker.component.js +0 -323
- package/dist/es5/src/picker/components/dayPicker/dayPicker.interfaces.js +0 -18
- package/dist/es5/src/picker/components/monthPicker/monthPicker.component.js +0 -233
- package/dist/es5/src/picker/components/monthPicker/monthPicker.interfaces.js +0 -11
- package/dist/es5/src/picker/components/picker/picker.component.animations.js +0 -77
- package/dist/es5/src/picker/components/picker/picker.component.js +0 -460
- package/dist/es5/src/picker/components/pickerBase.component.js +0 -561
- package/dist/es5/src/picker/components/yearPicker/yearPicker.component.js +0 -253
- package/dist/es5/src/picker/components/yearPicker/yearPicker.interfaces.js +0 -11
- package/dist/es5/src/picker/interfaces.js +0 -10
- package/dist/es5/src/picker/misc/datetimePicker.interface.js +0 -245
- package/dist/es5/src/picker/misc/tokens.js +0 -12
- package/dist/es5/src/picker/modules/picker.module.js +0 -39
- package/dist/es5/src/picker/types.js +0 -13
- package/dist/es5/src/pipes/dateConvert.pipe.js +0 -63
- package/dist/es5/src/pipes/dateFormat.pipe.js +0 -79
- package/dist/es5/src/selector/components/inputDateTime/inputDateTime.component.js +0 -808
- package/dist/es5/src/selector/components/selector/selector.component.animations.js +0 -21
- package/dist/es5/src/selector/components/selector/selector.component.js +0 -653
- package/dist/es5/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js +0 -656
- package/dist/es5/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.js +0 -84
- package/dist/es5/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.js +0 -84
- package/dist/es5/src/selector/directives/datetimeValidator/datetimeValidator.directive.js +0 -82
- package/dist/es5/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.js +0 -230
- package/dist/es5/src/selector/interfaces.js +0 -7
- package/dist/es5/src/selector/misc/datetimeSelector.interface.js +0 -106
- package/dist/es5/src/selector/misc/tokens.js +0 -12
- package/dist/es5/src/selector/modules/basicSelector.module.js +0 -24
- package/dist/es5/src/selector/modules/selector.module.js +0 -49
- package/dist/es5/src/selector/types.js +0 -15
- package/dist/es5/src/services/dateApi.interface.js +0 -316
- package/dist/es5/src/services/datePositionParser.interface.js +0 -56
- package/dist/es5/src/services/datePositionParser.service.js +0 -366
- package/dist/es5/src/services/dateTimeRelativeParser.service.js +0 -108
- package/dist/es5/src/services/dateValueProvider.service.js +0 -92
- package/dist/es5/src/services/formatProvider.interface.js +0 -28
- package/dist/es5/src/services/index.js +0 -9
- package/moment/dist/es2015/moment/index.js +0 -10
- package/moment/dist/es2015/moment/public_api.js +0 -7
- package/moment/dist/es2015/moment/src/misc/tokens.js +0 -26
- package/moment/dist/es2015/moment/src/moment.js +0 -8
- package/moment/dist/es2015/moment/src/services/momentDateApi.service.js +0 -466
- package/moment/dist/es5/moment/index.js +0 -10
- package/moment/dist/es5/moment/public_api.js +0 -7
- package/moment/dist/es5/moment/src/misc/tokens.js +0 -26
- package/moment/dist/es5/moment/src/moment.js +0 -8
- package/moment/dist/es5/moment/src/services/momentDateApi.service.js +0 -858
- package/moment/index.d.ts +0 -5
- package/moment/index.d.ts.map +0 -1
- package/moment/index.metadata.json +0 -1
- package/moment/public_api.d.ts +0 -2
- package/moment/public_api.d.ts.map +0 -1
- package/moment/src/moment.d.ts.map +0 -1
- package/moment/src/services/momentDateApi.service.ngfactory.d.ts.map +0 -1
- package/public_api.d.ts +0 -2
- package/public_api.d.ts.map +0 -1
- package/src/datetime.d.ts.map +0 -1
- package/src/modules/datePipes.module.ngfactory.d.ts.map +0 -1
- package/src/picker/components/dayPicker/dayPicker.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/picker/components/dayPicker/dayPicker.component.ngfactory.d.ts.map +0 -1
- package/src/picker/components/monthPicker/monthPicker.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/picker/components/monthPicker/monthPicker.component.ngfactory.d.ts.map +0 -1
- package/src/picker/components/picker/picker.component.ngfactory.d.ts.map +0 -1
- package/src/picker/components/yearPicker/yearPicker.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/picker/components/yearPicker/yearPicker.component.ngfactory.d.ts.map +0 -1
- package/src/picker/modules/picker.module.ngfactory.d.ts.map +0 -1
- package/src/pipes/dateConvert.pipe.ngfactory.d.ts.map +0 -1
- package/src/pipes/dateFormat.pipe.ngfactory.d.ts.map +0 -1
- package/src/selector/components/inputDateTime/inputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/selector/components/inputDateTime/inputDateTime.component.ngfactory.d.ts.map +0 -1
- package/src/selector/components/selector/selector.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/selector/components/selector/selector.component.ngfactory.d.ts.map +0 -1
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.css.shim.ngstyle.d.ts.map +0 -1
- package/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.ngfactory.d.ts.map +0 -1
- package/src/selector/directives/datetimeMaxValidator/datetimeMaxValidator.directive.ngfactory.d.ts.map +0 -1
- package/src/selector/directives/datetimeMinValidator/datetimeMinValidator.directive.ngfactory.d.ts.map +0 -1
- package/src/selector/directives/datetimeValidator/datetimeValidator.directive.ngfactory.d.ts.map +0 -1
- package/src/selector/directives/selectorControlValueAccessor/selectorControlValueAccessor.directive.ngfactory.d.ts.map +0 -1
- package/src/selector/modules/basicSelector.module.ngfactory.d.ts.map +0 -1
- package/src/selector/modules/selector.module.ngfactory.d.ts.map +0 -1
- package/src/services/datePositionParser.service.ngfactory.d.ts.map +0 -1
- package/src/services/dateTimeRelativeParser.service.ngfactory.d.ts.map +0 -1
- package/src/services/dateValueProvider.service.ngfactory.d.ts.map +0 -1
|
@@ -1,902 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: date-fns/src/services/dateFnsDateApi.service.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Inject, Injectable } from '@angular/core';
|
|
7
|
-
import { DateTimeRelativeParser } from '@anglr/datetime';
|
|
8
|
-
import { isBlank, isPresent, isString } from '@jscrpt/common';
|
|
9
|
-
import { toDate, getDate, setDate, isAfter, isBefore, differenceInCalendarDays, format, startOfMonth, endOfMonth, startOfWeek, endOfWeek, startOfDay, endOfDay, addMonths, addWeeks, addDays, subMonths, subWeeks, subDays, getDaysInMonth, isSameDay, isSameWeek, isSameMonth, isValid, parse, parseISO, addYears, subYears, startOfYear, endOfYear, isWeekend, setYear, getYear, isSameYear, startOfDecade, endOfDecade, setMonth, getMonth, setISODay, getISODay } from 'date-fns';
|
|
10
|
-
import { DATE_FNS_LOCALE } from '../misc/tokens';
|
|
11
|
-
/**
|
|
12
|
-
* Instance of object wrapping TDate, allowing manipulation with it
|
|
13
|
-
*/
|
|
14
|
-
var /**
|
|
15
|
-
* Instance of object wrapping TDate, allowing manipulation with it
|
|
16
|
-
*/
|
|
17
|
-
DateFnsDateApiObject = /** @class */ (function () {
|
|
18
|
-
//######################### constructor #########################
|
|
19
|
-
function DateFnsDateApiObject(value, _localeSvc, format) {
|
|
20
|
-
this._localeSvc = _localeSvc;
|
|
21
|
-
if (isString(value)) {
|
|
22
|
-
//ISO string
|
|
23
|
-
if (/^\d+-\d+-\d+(T\d+:\d+:\d+)?/.test(value)) {
|
|
24
|
-
this._value = this._originalValue = parseISO(value);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
if (isBlank(format)) {
|
|
28
|
-
throw new Error("date-fns requires format parameter to be set for parsing non ISO string date!");
|
|
29
|
-
}
|
|
30
|
-
this._value = this._originalValue = parse(value, format, new Date(1970, 0));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this._value = this._originalValue = toDate(value);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
Object.defineProperty(DateFnsDateApiObject.prototype, "originalValue", {
|
|
38
|
-
//######################### public properties - implementation of DateApiObject #########################
|
|
39
|
-
/**
|
|
40
|
-
* Original value that is not changed unless 'updateOriginal' is called
|
|
41
|
-
*/
|
|
42
|
-
get:
|
|
43
|
-
//######################### public properties - implementation of DateApiObject #########################
|
|
44
|
-
/**
|
|
45
|
-
* Original value that is not changed unless 'updateOriginal' is called
|
|
46
|
-
* @return {?}
|
|
47
|
-
*/
|
|
48
|
-
function () {
|
|
49
|
-
return this._originalValue;
|
|
50
|
-
},
|
|
51
|
-
enumerable: false,
|
|
52
|
-
configurable: true
|
|
53
|
-
});
|
|
54
|
-
Object.defineProperty(DateFnsDateApiObject.prototype, "value", {
|
|
55
|
-
/**
|
|
56
|
-
* Instance of date
|
|
57
|
-
*/
|
|
58
|
-
get: /**
|
|
59
|
-
* Instance of date
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
function () {
|
|
63
|
-
return this._value;
|
|
64
|
-
},
|
|
65
|
-
enumerable: false,
|
|
66
|
-
configurable: true
|
|
67
|
-
});
|
|
68
|
-
//######################### public methods - implementation of DateApiObject #########################
|
|
69
|
-
/**
|
|
70
|
-
* Gets indication whether provided instance of date is valid
|
|
71
|
-
*/
|
|
72
|
-
//######################### public methods - implementation of DateApiObject #########################
|
|
73
|
-
/**
|
|
74
|
-
* Gets indication whether provided instance of date is valid
|
|
75
|
-
* @return {?}
|
|
76
|
-
*/
|
|
77
|
-
DateFnsDateApiObject.prototype.isValid =
|
|
78
|
-
//######################### public methods - implementation of DateApiObject #########################
|
|
79
|
-
/**
|
|
80
|
-
* Gets indication whether provided instance of date is valid
|
|
81
|
-
* @return {?}
|
|
82
|
-
*/
|
|
83
|
-
function () {
|
|
84
|
-
return isValid(this._value);
|
|
85
|
-
};
|
|
86
|
-
/**
|
|
87
|
-
* Gets indication whether provided instance of date is weekend day
|
|
88
|
-
*/
|
|
89
|
-
/**
|
|
90
|
-
* Gets indication whether provided instance of date is weekend day
|
|
91
|
-
* @return {?}
|
|
92
|
-
*/
|
|
93
|
-
DateFnsDateApiObject.prototype.isWeekend = /**
|
|
94
|
-
* Gets indication whether provided instance of date is weekend day
|
|
95
|
-
* @return {?}
|
|
96
|
-
*/
|
|
97
|
-
function () {
|
|
98
|
-
return isWeekend(this._value);
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Formats date value
|
|
102
|
-
* @param formatString - Format token used for creating formatted string
|
|
103
|
-
*/
|
|
104
|
-
/**
|
|
105
|
-
* Formats date value
|
|
106
|
-
* @param {?} formatString - Format token used for creating formatted string
|
|
107
|
-
* @return {?}
|
|
108
|
-
*/
|
|
109
|
-
DateFnsDateApiObject.prototype.format = /**
|
|
110
|
-
* Formats date value
|
|
111
|
-
* @param {?} formatString - Format token used for creating formatted string
|
|
112
|
-
* @return {?}
|
|
113
|
-
*/
|
|
114
|
-
function (formatString) {
|
|
115
|
-
return format(this._value, formatString, { locale: this._localeSvc.locale });
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Updates value to start date and time of current decade
|
|
119
|
-
* @returns Itself for fluent API
|
|
120
|
-
*/
|
|
121
|
-
/**
|
|
122
|
-
* Updates value to start date and time of current decade
|
|
123
|
-
* @return {?} Itself for fluent API
|
|
124
|
-
*/
|
|
125
|
-
DateFnsDateApiObject.prototype.startOfDecade = /**
|
|
126
|
-
* Updates value to start date and time of current decade
|
|
127
|
-
* @return {?} Itself for fluent API
|
|
128
|
-
*/
|
|
129
|
-
function () {
|
|
130
|
-
this._value = startOfDecade(this._value);
|
|
131
|
-
return this;
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* Updates value to end date and time of current decade
|
|
135
|
-
* @returns Itself for fluent API
|
|
136
|
-
*/
|
|
137
|
-
/**
|
|
138
|
-
* Updates value to end date and time of current decade
|
|
139
|
-
* @return {?} Itself for fluent API
|
|
140
|
-
*/
|
|
141
|
-
DateFnsDateApiObject.prototype.endOfDecade = /**
|
|
142
|
-
* Updates value to end date and time of current decade
|
|
143
|
-
* @return {?} Itself for fluent API
|
|
144
|
-
*/
|
|
145
|
-
function () {
|
|
146
|
-
this._value = endOfDecade(this._value);
|
|
147
|
-
return this;
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* Updates value to start date and time of current year
|
|
151
|
-
* @returns Itself for fluent API
|
|
152
|
-
*/
|
|
153
|
-
/**
|
|
154
|
-
* Updates value to start date and time of current year
|
|
155
|
-
* @return {?} Itself for fluent API
|
|
156
|
-
*/
|
|
157
|
-
DateFnsDateApiObject.prototype.startOfYear = /**
|
|
158
|
-
* Updates value to start date and time of current year
|
|
159
|
-
* @return {?} Itself for fluent API
|
|
160
|
-
*/
|
|
161
|
-
function () {
|
|
162
|
-
this._value = startOfYear(this._value);
|
|
163
|
-
return this;
|
|
164
|
-
};
|
|
165
|
-
/**
|
|
166
|
-
* Updates value to end date and time of current year
|
|
167
|
-
* @returns Itself for fluent API
|
|
168
|
-
*/
|
|
169
|
-
/**
|
|
170
|
-
* Updates value to end date and time of current year
|
|
171
|
-
* @return {?} Itself for fluent API
|
|
172
|
-
*/
|
|
173
|
-
DateFnsDateApiObject.prototype.endOfYear = /**
|
|
174
|
-
* Updates value to end date and time of current year
|
|
175
|
-
* @return {?} Itself for fluent API
|
|
176
|
-
*/
|
|
177
|
-
function () {
|
|
178
|
-
this._value = endOfYear(this._value);
|
|
179
|
-
return this;
|
|
180
|
-
};
|
|
181
|
-
/**
|
|
182
|
-
* Add years, if count not specified adds 1 year
|
|
183
|
-
* @param count - Number of years count
|
|
184
|
-
* @returns Itself for fluent API
|
|
185
|
-
*/
|
|
186
|
-
/**
|
|
187
|
-
* Add years, if count not specified adds 1 year
|
|
188
|
-
* @param {?=} count - Number of years count
|
|
189
|
-
* @return {?} Itself for fluent API
|
|
190
|
-
*/
|
|
191
|
-
DateFnsDateApiObject.prototype.addYears = /**
|
|
192
|
-
* Add years, if count not specified adds 1 year
|
|
193
|
-
* @param {?=} count - Number of years count
|
|
194
|
-
* @return {?} Itself for fluent API
|
|
195
|
-
*/
|
|
196
|
-
function (count) {
|
|
197
|
-
this._value = addYears(this._value, count !== null && count !== void 0 ? count : 1);
|
|
198
|
-
return this;
|
|
199
|
-
};
|
|
200
|
-
/**
|
|
201
|
-
* Subtract years, if count not specified subtract 1 year
|
|
202
|
-
* @param count - Number of years count
|
|
203
|
-
* @returns Itself for fluent API
|
|
204
|
-
*/
|
|
205
|
-
/**
|
|
206
|
-
* Subtract years, if count not specified subtract 1 year
|
|
207
|
-
* @param {?=} count - Number of years count
|
|
208
|
-
* @return {?} Itself for fluent API
|
|
209
|
-
*/
|
|
210
|
-
DateFnsDateApiObject.prototype.subtractYears = /**
|
|
211
|
-
* Subtract years, if count not specified subtract 1 year
|
|
212
|
-
* @param {?=} count - Number of years count
|
|
213
|
-
* @return {?} Itself for fluent API
|
|
214
|
-
*/
|
|
215
|
-
function (count) {
|
|
216
|
-
this._value = subYears(this._value, count !== null && count !== void 0 ? count : 1);
|
|
217
|
-
return this;
|
|
218
|
-
};
|
|
219
|
-
/**
|
|
220
|
-
* Updates value to start date and time of current month
|
|
221
|
-
* @returns Itself for fluent API
|
|
222
|
-
*/
|
|
223
|
-
/**
|
|
224
|
-
* Updates value to start date and time of current month
|
|
225
|
-
* @return {?} Itself for fluent API
|
|
226
|
-
*/
|
|
227
|
-
DateFnsDateApiObject.prototype.startOfMonth = /**
|
|
228
|
-
* Updates value to start date and time of current month
|
|
229
|
-
* @return {?} Itself for fluent API
|
|
230
|
-
*/
|
|
231
|
-
function () {
|
|
232
|
-
this._value = startOfMonth(this._value);
|
|
233
|
-
return this;
|
|
234
|
-
};
|
|
235
|
-
/**
|
|
236
|
-
* Updates value to end date and time of current month
|
|
237
|
-
* @returns Itself for fluent API
|
|
238
|
-
*/
|
|
239
|
-
/**
|
|
240
|
-
* Updates value to end date and time of current month
|
|
241
|
-
* @return {?} Itself for fluent API
|
|
242
|
-
*/
|
|
243
|
-
DateFnsDateApiObject.prototype.endOfMonth = /**
|
|
244
|
-
* Updates value to end date and time of current month
|
|
245
|
-
* @return {?} Itself for fluent API
|
|
246
|
-
*/
|
|
247
|
-
function () {
|
|
248
|
-
this._value = endOfMonth(this._value);
|
|
249
|
-
return this;
|
|
250
|
-
};
|
|
251
|
-
/**
|
|
252
|
-
* Add months, if count not specified adds 1 month
|
|
253
|
-
* @param count - Number of months count
|
|
254
|
-
* @returns Itself for fluent API
|
|
255
|
-
*/
|
|
256
|
-
/**
|
|
257
|
-
* Add months, if count not specified adds 1 month
|
|
258
|
-
* @param {?=} count - Number of months count
|
|
259
|
-
* @return {?} Itself for fluent API
|
|
260
|
-
*/
|
|
261
|
-
DateFnsDateApiObject.prototype.addMonths = /**
|
|
262
|
-
* Add months, if count not specified adds 1 month
|
|
263
|
-
* @param {?=} count - Number of months count
|
|
264
|
-
* @return {?} Itself for fluent API
|
|
265
|
-
*/
|
|
266
|
-
function (count) {
|
|
267
|
-
this._value = addMonths(this._value, count !== null && count !== void 0 ? count : 1);
|
|
268
|
-
return this;
|
|
269
|
-
};
|
|
270
|
-
/**
|
|
271
|
-
* Subtract months, if count not specified subtract 1 month
|
|
272
|
-
* @param count - Number of months count
|
|
273
|
-
* @returns Itself for fluent API
|
|
274
|
-
*/
|
|
275
|
-
/**
|
|
276
|
-
* Subtract months, if count not specified subtract 1 month
|
|
277
|
-
* @param {?=} count - Number of months count
|
|
278
|
-
* @return {?} Itself for fluent API
|
|
279
|
-
*/
|
|
280
|
-
DateFnsDateApiObject.prototype.subtractMonths = /**
|
|
281
|
-
* Subtract months, if count not specified subtract 1 month
|
|
282
|
-
* @param {?=} count - Number of months count
|
|
283
|
-
* @return {?} Itself for fluent API
|
|
284
|
-
*/
|
|
285
|
-
function (count) {
|
|
286
|
-
this._value = subMonths(this._value, count !== null && count !== void 0 ? count : 1);
|
|
287
|
-
return this;
|
|
288
|
-
};
|
|
289
|
-
/**
|
|
290
|
-
* Updates value to start date and time of current week
|
|
291
|
-
* @returns Itself for fluent API
|
|
292
|
-
*/
|
|
293
|
-
/**
|
|
294
|
-
* Updates value to start date and time of current week
|
|
295
|
-
* @return {?} Itself for fluent API
|
|
296
|
-
*/
|
|
297
|
-
DateFnsDateApiObject.prototype.startOfWeek = /**
|
|
298
|
-
* Updates value to start date and time of current week
|
|
299
|
-
* @return {?} Itself for fluent API
|
|
300
|
-
*/
|
|
301
|
-
function () {
|
|
302
|
-
this._value = startOfWeek(this._value, { locale: this._localeSvc.locale });
|
|
303
|
-
return this;
|
|
304
|
-
};
|
|
305
|
-
/**
|
|
306
|
-
* Updates value to end date and time of current week
|
|
307
|
-
* @returns Itself for fluent API
|
|
308
|
-
*/
|
|
309
|
-
/**
|
|
310
|
-
* Updates value to end date and time of current week
|
|
311
|
-
* @return {?} Itself for fluent API
|
|
312
|
-
*/
|
|
313
|
-
DateFnsDateApiObject.prototype.endOfWeek = /**
|
|
314
|
-
* Updates value to end date and time of current week
|
|
315
|
-
* @return {?} Itself for fluent API
|
|
316
|
-
*/
|
|
317
|
-
function () {
|
|
318
|
-
this._value = endOfWeek(this._value, { locale: this._localeSvc.locale });
|
|
319
|
-
return this;
|
|
320
|
-
};
|
|
321
|
-
/**
|
|
322
|
-
* Add weeks, if count not specified adds 1 week
|
|
323
|
-
* @param count - Number of weeks count
|
|
324
|
-
* @returns Itself for fluent API
|
|
325
|
-
*/
|
|
326
|
-
/**
|
|
327
|
-
* Add weeks, if count not specified adds 1 week
|
|
328
|
-
* @param {?=} count - Number of weeks count
|
|
329
|
-
* @return {?} Itself for fluent API
|
|
330
|
-
*/
|
|
331
|
-
DateFnsDateApiObject.prototype.addWeeks = /**
|
|
332
|
-
* Add weeks, if count not specified adds 1 week
|
|
333
|
-
* @param {?=} count - Number of weeks count
|
|
334
|
-
* @return {?} Itself for fluent API
|
|
335
|
-
*/
|
|
336
|
-
function (count) {
|
|
337
|
-
this._value = addWeeks(this._value, count !== null && count !== void 0 ? count : 1);
|
|
338
|
-
return this;
|
|
339
|
-
};
|
|
340
|
-
/**
|
|
341
|
-
* Subtract weeks, if count not specified subtract 1 week
|
|
342
|
-
* @param count - Number of weeks count
|
|
343
|
-
* @returns Itself for fluent API
|
|
344
|
-
*/
|
|
345
|
-
/**
|
|
346
|
-
* Subtract weeks, if count not specified subtract 1 week
|
|
347
|
-
* @param {?=} count - Number of weeks count
|
|
348
|
-
* @return {?} Itself for fluent API
|
|
349
|
-
*/
|
|
350
|
-
DateFnsDateApiObject.prototype.subtractWeeks = /**
|
|
351
|
-
* Subtract weeks, if count not specified subtract 1 week
|
|
352
|
-
* @param {?=} count - Number of weeks count
|
|
353
|
-
* @return {?} Itself for fluent API
|
|
354
|
-
*/
|
|
355
|
-
function (count) {
|
|
356
|
-
this._value = subWeeks(this._value, count !== null && count !== void 0 ? count : 1);
|
|
357
|
-
return this;
|
|
358
|
-
};
|
|
359
|
-
/**
|
|
360
|
-
* Updates value to start date and time of current day
|
|
361
|
-
* @returns Itself for fluent API
|
|
362
|
-
*/
|
|
363
|
-
/**
|
|
364
|
-
* Updates value to start date and time of current day
|
|
365
|
-
* @return {?} Itself for fluent API
|
|
366
|
-
*/
|
|
367
|
-
DateFnsDateApiObject.prototype.startOfDay = /**
|
|
368
|
-
* Updates value to start date and time of current day
|
|
369
|
-
* @return {?} Itself for fluent API
|
|
370
|
-
*/
|
|
371
|
-
function () {
|
|
372
|
-
this._value = startOfDay(this._value);
|
|
373
|
-
return this;
|
|
374
|
-
};
|
|
375
|
-
/**
|
|
376
|
-
* Updates value to end date and time of current day
|
|
377
|
-
* @returns Itself for fluent API
|
|
378
|
-
*/
|
|
379
|
-
/**
|
|
380
|
-
* Updates value to end date and time of current day
|
|
381
|
-
* @return {?} Itself for fluent API
|
|
382
|
-
*/
|
|
383
|
-
DateFnsDateApiObject.prototype.endOfDay = /**
|
|
384
|
-
* Updates value to end date and time of current day
|
|
385
|
-
* @return {?} Itself for fluent API
|
|
386
|
-
*/
|
|
387
|
-
function () {
|
|
388
|
-
this._value = endOfDay(this._value);
|
|
389
|
-
return this;
|
|
390
|
-
};
|
|
391
|
-
/**
|
|
392
|
-
* Add days, if count not specified adds 1 day
|
|
393
|
-
* @param count - Number of days count
|
|
394
|
-
* @returns Itself for fluent API
|
|
395
|
-
*/
|
|
396
|
-
/**
|
|
397
|
-
* Add days, if count not specified adds 1 day
|
|
398
|
-
* @param {?=} count - Number of days count
|
|
399
|
-
* @return {?} Itself for fluent API
|
|
400
|
-
*/
|
|
401
|
-
DateFnsDateApiObject.prototype.addDays = /**
|
|
402
|
-
* Add days, if count not specified adds 1 day
|
|
403
|
-
* @param {?=} count - Number of days count
|
|
404
|
-
* @return {?} Itself for fluent API
|
|
405
|
-
*/
|
|
406
|
-
function (count) {
|
|
407
|
-
this._value = addDays(this._value, count !== null && count !== void 0 ? count : 1);
|
|
408
|
-
return this;
|
|
409
|
-
};
|
|
410
|
-
/**
|
|
411
|
-
* Subtract days, if count not specified subtract 1 day
|
|
412
|
-
* @param count - Number of days count
|
|
413
|
-
* @returns Itself for fluent API
|
|
414
|
-
*/
|
|
415
|
-
/**
|
|
416
|
-
* Subtract days, if count not specified subtract 1 day
|
|
417
|
-
* @param {?=} count - Number of days count
|
|
418
|
-
* @return {?} Itself for fluent API
|
|
419
|
-
*/
|
|
420
|
-
DateFnsDateApiObject.prototype.subtractDays = /**
|
|
421
|
-
* Subtract days, if count not specified subtract 1 day
|
|
422
|
-
* @param {?=} count - Number of days count
|
|
423
|
-
* @return {?} Itself for fluent API
|
|
424
|
-
*/
|
|
425
|
-
function (count) {
|
|
426
|
-
this._value = subDays(this._value, count !== null && count !== void 0 ? count : 1);
|
|
427
|
-
return this;
|
|
428
|
-
};
|
|
429
|
-
/**
|
|
430
|
-
* Gets number of days in month
|
|
431
|
-
*/
|
|
432
|
-
/**
|
|
433
|
-
* Gets number of days in month
|
|
434
|
-
* @return {?}
|
|
435
|
-
*/
|
|
436
|
-
DateFnsDateApiObject.prototype.daysInMonth = /**
|
|
437
|
-
* Gets number of days in month
|
|
438
|
-
* @return {?}
|
|
439
|
-
*/
|
|
440
|
-
function () {
|
|
441
|
-
return getDaysInMonth(this._value);
|
|
442
|
-
};
|
|
443
|
-
/**
|
|
444
|
-
* Gets or sets year
|
|
445
|
-
* @param year - If specified, sets year
|
|
446
|
-
*/
|
|
447
|
-
/**
|
|
448
|
-
* Gets or sets year
|
|
449
|
-
* @param {?=} year - If specified, sets year
|
|
450
|
-
* @return {?}
|
|
451
|
-
*/
|
|
452
|
-
DateFnsDateApiObject.prototype.year = /**
|
|
453
|
-
* Gets or sets year
|
|
454
|
-
* @param {?=} year - If specified, sets year
|
|
455
|
-
* @return {?}
|
|
456
|
-
*/
|
|
457
|
-
function (year) {
|
|
458
|
-
if (isPresent(year)) {
|
|
459
|
-
this._value = setYear(this._value, (/** @type {?} */ (year)));
|
|
460
|
-
return this;
|
|
461
|
-
}
|
|
462
|
-
return getYear(this._value);
|
|
463
|
-
};
|
|
464
|
-
/**
|
|
465
|
-
* Gets or sets month
|
|
466
|
-
* @param month - If specified, sets month
|
|
467
|
-
*/
|
|
468
|
-
/**
|
|
469
|
-
* Gets or sets month
|
|
470
|
-
* @param {?=} month - If specified, sets month
|
|
471
|
-
* @return {?}
|
|
472
|
-
*/
|
|
473
|
-
DateFnsDateApiObject.prototype.month = /**
|
|
474
|
-
* Gets or sets month
|
|
475
|
-
* @param {?=} month - If specified, sets month
|
|
476
|
-
* @return {?}
|
|
477
|
-
*/
|
|
478
|
-
function (month) {
|
|
479
|
-
if (isPresent(month)) {
|
|
480
|
-
this._value = setMonth(this._value, (/** @type {?} */ (month)));
|
|
481
|
-
return this;
|
|
482
|
-
}
|
|
483
|
-
return getMonth(this._value);
|
|
484
|
-
};
|
|
485
|
-
/**
|
|
486
|
-
* Gets or sets day of month one based
|
|
487
|
-
* @param day - If specified, sets day of month
|
|
488
|
-
*/
|
|
489
|
-
/**
|
|
490
|
-
* Gets or sets day of month one based
|
|
491
|
-
* @param {?=} day - If specified, sets day of month
|
|
492
|
-
* @return {?}
|
|
493
|
-
*/
|
|
494
|
-
DateFnsDateApiObject.prototype.dayOfMonth = /**
|
|
495
|
-
* Gets or sets day of month one based
|
|
496
|
-
* @param {?=} day - If specified, sets day of month
|
|
497
|
-
* @return {?}
|
|
498
|
-
*/
|
|
499
|
-
function (day) {
|
|
500
|
-
if (isPresent(day)) {
|
|
501
|
-
this._value = setDate(this._value, (/** @type {?} */ (day)));
|
|
502
|
-
return this;
|
|
503
|
-
}
|
|
504
|
-
return getDate(this._value);
|
|
505
|
-
};
|
|
506
|
-
/**
|
|
507
|
-
* Gets or sets day of week zero based, first is monday
|
|
508
|
-
* @param day - If specified, sets day of week
|
|
509
|
-
*/
|
|
510
|
-
/**
|
|
511
|
-
* Gets or sets day of week zero based, first is monday
|
|
512
|
-
* @param {?=} day - If specified, sets day of week
|
|
513
|
-
* @return {?}
|
|
514
|
-
*/
|
|
515
|
-
DateFnsDateApiObject.prototype.dayOfWeek = /**
|
|
516
|
-
* Gets or sets day of week zero based, first is monday
|
|
517
|
-
* @param {?=} day - If specified, sets day of week
|
|
518
|
-
* @return {?}
|
|
519
|
-
*/
|
|
520
|
-
function (day) {
|
|
521
|
-
if (isPresent(day)) {
|
|
522
|
-
this._value = setISODay(this._value, day + (/** @type {?} */ (1)));
|
|
523
|
-
return this;
|
|
524
|
-
}
|
|
525
|
-
return getISODay(this._value) - 1;
|
|
526
|
-
};
|
|
527
|
-
/**
|
|
528
|
-
* Gets indication whether current value is before 'date'
|
|
529
|
-
* @param date - Date which is this date compared to
|
|
530
|
-
*/
|
|
531
|
-
/**
|
|
532
|
-
* Gets indication whether current value is before 'date'
|
|
533
|
-
* @param {?} date - Date which is this date compared to
|
|
534
|
-
* @return {?}
|
|
535
|
-
*/
|
|
536
|
-
DateFnsDateApiObject.prototype.isBefore = /**
|
|
537
|
-
* Gets indication whether current value is before 'date'
|
|
538
|
-
* @param {?} date - Date which is this date compared to
|
|
539
|
-
* @return {?}
|
|
540
|
-
*/
|
|
541
|
-
function (date) {
|
|
542
|
-
return isBefore(this._value, date);
|
|
543
|
-
};
|
|
544
|
-
/**
|
|
545
|
-
* Gets indication whether current value is after 'date'
|
|
546
|
-
* @param date - Date which is this date compared to
|
|
547
|
-
*/
|
|
548
|
-
/**
|
|
549
|
-
* Gets indication whether current value is after 'date'
|
|
550
|
-
* @param {?} date - Date which is this date compared to
|
|
551
|
-
* @return {?}
|
|
552
|
-
*/
|
|
553
|
-
DateFnsDateApiObject.prototype.isAfter = /**
|
|
554
|
-
* Gets indication whether current value is after 'date'
|
|
555
|
-
* @param {?} date - Date which is this date compared to
|
|
556
|
-
* @return {?}
|
|
557
|
-
*/
|
|
558
|
-
function (date) {
|
|
559
|
-
return isAfter(this._value, date);
|
|
560
|
-
};
|
|
561
|
-
/**
|
|
562
|
-
* Gets number of days between this and provided date
|
|
563
|
-
* @param date - Date which is used for computation of diff against
|
|
564
|
-
*/
|
|
565
|
-
/**
|
|
566
|
-
* Gets number of days between this and provided date
|
|
567
|
-
* @param {?} date - Date which is used for computation of diff against
|
|
568
|
-
* @return {?}
|
|
569
|
-
*/
|
|
570
|
-
DateFnsDateApiObject.prototype.diffDays = /**
|
|
571
|
-
* Gets number of days between this and provided date
|
|
572
|
-
* @param {?} date - Date which is used for computation of diff against
|
|
573
|
-
* @return {?}
|
|
574
|
-
*/
|
|
575
|
-
function (date) {
|
|
576
|
-
return differenceInCalendarDays(this._value, date);
|
|
577
|
-
};
|
|
578
|
-
/**
|
|
579
|
-
* Compares whether this date is same week as provided date
|
|
580
|
-
* @param date - Date which is used for comparison of same week
|
|
581
|
-
*/
|
|
582
|
-
/**
|
|
583
|
-
* Compares whether this date is same week as provided date
|
|
584
|
-
* @param {?} date - Date which is used for comparison of same week
|
|
585
|
-
* @return {?}
|
|
586
|
-
*/
|
|
587
|
-
DateFnsDateApiObject.prototype.isSameWeek = /**
|
|
588
|
-
* Compares whether this date is same week as provided date
|
|
589
|
-
* @param {?} date - Date which is used for comparison of same week
|
|
590
|
-
* @return {?}
|
|
591
|
-
*/
|
|
592
|
-
function (date) {
|
|
593
|
-
return isSameWeek(this._value, date, { locale: this._localeSvc.locale });
|
|
594
|
-
};
|
|
595
|
-
/**
|
|
596
|
-
* Compares whether this date is same decade as provided date
|
|
597
|
-
* @param date - Date which is used for comparison of same decade
|
|
598
|
-
*/
|
|
599
|
-
/**
|
|
600
|
-
* Compares whether this date is same decade as provided date
|
|
601
|
-
* @param {?} date - Date which is used for comparison of same decade
|
|
602
|
-
* @return {?}
|
|
603
|
-
*/
|
|
604
|
-
DateFnsDateApiObject.prototype.isSameDecade = /**
|
|
605
|
-
* Compares whether this date is same decade as provided date
|
|
606
|
-
* @param {?} date - Date which is used for comparison of same decade
|
|
607
|
-
* @return {?}
|
|
608
|
-
*/
|
|
609
|
-
function (date) {
|
|
610
|
-
/** @type {?} */
|
|
611
|
-
var year = getYear(this._value);
|
|
612
|
-
/** @type {?} */
|
|
613
|
-
var start = year - (year % 10);
|
|
614
|
-
/** @type {?} */
|
|
615
|
-
var end = start + 10;
|
|
616
|
-
return getYear(date) >= start && getYear(date) < end;
|
|
617
|
-
};
|
|
618
|
-
/**
|
|
619
|
-
* Compares whether this date is same year as provided date
|
|
620
|
-
* @param date - Date which is used for comparison of same year
|
|
621
|
-
*/
|
|
622
|
-
/**
|
|
623
|
-
* Compares whether this date is same year as provided date
|
|
624
|
-
* @param {?} date - Date which is used for comparison of same year
|
|
625
|
-
* @return {?}
|
|
626
|
-
*/
|
|
627
|
-
DateFnsDateApiObject.prototype.isSameYear = /**
|
|
628
|
-
* Compares whether this date is same year as provided date
|
|
629
|
-
* @param {?} date - Date which is used for comparison of same year
|
|
630
|
-
* @return {?}
|
|
631
|
-
*/
|
|
632
|
-
function (date) {
|
|
633
|
-
return isSameYear(this._value, date);
|
|
634
|
-
};
|
|
635
|
-
/**
|
|
636
|
-
* Compares whether this date is same month as provided date
|
|
637
|
-
* @param date - Date which is used for comparison of same month
|
|
638
|
-
*/
|
|
639
|
-
/**
|
|
640
|
-
* Compares whether this date is same month as provided date
|
|
641
|
-
* @param {?} date - Date which is used for comparison of same month
|
|
642
|
-
* @return {?}
|
|
643
|
-
*/
|
|
644
|
-
DateFnsDateApiObject.prototype.isSameMonth = /**
|
|
645
|
-
* Compares whether this date is same month as provided date
|
|
646
|
-
* @param {?} date - Date which is used for comparison of same month
|
|
647
|
-
* @return {?}
|
|
648
|
-
*/
|
|
649
|
-
function (date) {
|
|
650
|
-
return isSameMonth(this._value, date);
|
|
651
|
-
};
|
|
652
|
-
/**
|
|
653
|
-
* Compares whether this date is same day as provided date
|
|
654
|
-
* @param date - Date which is used for comparison of same day
|
|
655
|
-
*/
|
|
656
|
-
/**
|
|
657
|
-
* Compares whether this date is same day as provided date
|
|
658
|
-
* @param {?} date - Date which is used for comparison of same day
|
|
659
|
-
* @return {?}
|
|
660
|
-
*/
|
|
661
|
-
DateFnsDateApiObject.prototype.isSameDay = /**
|
|
662
|
-
* Compares whether this date is same day as provided date
|
|
663
|
-
* @param {?} date - Date which is used for comparison of same day
|
|
664
|
-
* @return {?}
|
|
665
|
-
*/
|
|
666
|
-
function (date) {
|
|
667
|
-
return isSameDay(this._value, date);
|
|
668
|
-
};
|
|
669
|
-
/**
|
|
670
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from value
|
|
671
|
-
*/
|
|
672
|
-
/**
|
|
673
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from value
|
|
674
|
-
* @return {?}
|
|
675
|
-
*/
|
|
676
|
-
DateFnsDateApiObject.prototype.clone = /**
|
|
677
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from value
|
|
678
|
-
* @return {?}
|
|
679
|
-
*/
|
|
680
|
-
function () {
|
|
681
|
-
return new DateFnsDateApiObject(new Date(this._value), this._localeSvc);
|
|
682
|
-
};
|
|
683
|
-
/**
|
|
684
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from originalValue
|
|
685
|
-
*/
|
|
686
|
-
/**
|
|
687
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from originalValue
|
|
688
|
-
* @return {?}
|
|
689
|
-
*/
|
|
690
|
-
DateFnsDateApiObject.prototype.cloneOriginal = /**
|
|
691
|
-
* Creates clone of this instance, value and originalValue have same value and are cloned from originalValue
|
|
692
|
-
* @return {?}
|
|
693
|
-
*/
|
|
694
|
-
function () {
|
|
695
|
-
return new DateFnsDateApiObject(new Date(this._originalValue), this._localeSvc);
|
|
696
|
-
};
|
|
697
|
-
/**
|
|
698
|
-
* Updates originalValue, if value is not provided originalValue is set to value
|
|
699
|
-
* @param value - Value to be set as original, or null (value will be used as value)
|
|
700
|
-
* @returns Itself for fluent API
|
|
701
|
-
*/
|
|
702
|
-
/**
|
|
703
|
-
* Updates originalValue, if value is not provided originalValue is set to value
|
|
704
|
-
* @param {?=} value - Value to be set as original, or null (value will be used as value)
|
|
705
|
-
* @return {?} Itself for fluent API
|
|
706
|
-
*/
|
|
707
|
-
DateFnsDateApiObject.prototype.updateOriginal = /**
|
|
708
|
-
* Updates originalValue, if value is not provided originalValue is set to value
|
|
709
|
-
* @param {?=} value - Value to be set as original, or null (value will be used as value)
|
|
710
|
-
* @return {?} Itself for fluent API
|
|
711
|
-
*/
|
|
712
|
-
function (value) {
|
|
713
|
-
if (isBlank(value)) {
|
|
714
|
-
this._originalValue = this._value;
|
|
715
|
-
}
|
|
716
|
-
else {
|
|
717
|
-
this._value = this._originalValue = (/** @type {?} */ (value));
|
|
718
|
-
}
|
|
719
|
-
return this;
|
|
720
|
-
};
|
|
721
|
-
/**
|
|
722
|
-
* Changes value to same value as originalValue
|
|
723
|
-
* @returns Itself for fluent API
|
|
724
|
-
*/
|
|
725
|
-
/**
|
|
726
|
-
* Changes value to same value as originalValue
|
|
727
|
-
* @return {?} Itself for fluent API
|
|
728
|
-
*/
|
|
729
|
-
DateFnsDateApiObject.prototype.resetOriginal = /**
|
|
730
|
-
* Changes value to same value as originalValue
|
|
731
|
-
* @return {?} Itself for fluent API
|
|
732
|
-
*/
|
|
733
|
-
function () {
|
|
734
|
-
this._value = this._originalValue;
|
|
735
|
-
return this;
|
|
736
|
-
};
|
|
737
|
-
return DateFnsDateApiObject;
|
|
738
|
-
}());
|
|
739
|
-
if (false) {
|
|
740
|
-
/**
|
|
741
|
-
* Original value that is not changed unless 'updateOriginal' is called
|
|
742
|
-
* @type {?}
|
|
743
|
-
* @private
|
|
744
|
-
*/
|
|
745
|
-
DateFnsDateApiObject.prototype._originalValue;
|
|
746
|
-
/**
|
|
747
|
-
* Instance of date
|
|
748
|
-
* @type {?}
|
|
749
|
-
* @private
|
|
750
|
-
*/
|
|
751
|
-
DateFnsDateApiObject.prototype._value;
|
|
752
|
-
/**
|
|
753
|
-
* @type {?}
|
|
754
|
-
* @protected
|
|
755
|
-
*/
|
|
756
|
-
DateFnsDateApiObject.prototype._localeSvc;
|
|
757
|
-
}
|
|
758
|
-
/**
|
|
759
|
-
* Date api using DateFnsJS, used for obtaining DateApi wrapper object
|
|
760
|
-
*/
|
|
761
|
-
var DateFnsDateApi = /** @class */ (function () {
|
|
762
|
-
//######################### constructor #########################
|
|
763
|
-
function DateFnsDateApi(_localeSvc, _relativeParser) {
|
|
764
|
-
this._localeSvc = _localeSvc;
|
|
765
|
-
this._relativeParser = _relativeParser;
|
|
766
|
-
}
|
|
767
|
-
//######################### public methods - implementation of DateApi #########################
|
|
768
|
-
/**
|
|
769
|
-
* Gets wrapping object used for manipulation
|
|
770
|
-
* @param value - Value to be converted (parsed) and used for manipulation
|
|
771
|
-
* @param format - Format string used for parsing string value
|
|
772
|
-
*/
|
|
773
|
-
//######################### public methods - implementation of DateApi #########################
|
|
774
|
-
/**
|
|
775
|
-
* Gets wrapping object used for manipulation
|
|
776
|
-
* @param {?} value - Value to be converted (parsed) and used for manipulation
|
|
777
|
-
* @param {?=} format - Format string used for parsing string value
|
|
778
|
-
* @return {?}
|
|
779
|
-
*/
|
|
780
|
-
DateFnsDateApi.prototype.getValue =
|
|
781
|
-
//######################### public methods - implementation of DateApi #########################
|
|
782
|
-
/**
|
|
783
|
-
* Gets wrapping object used for manipulation
|
|
784
|
-
* @param {?} value - Value to be converted (parsed) and used for manipulation
|
|
785
|
-
* @param {?=} format - Format string used for parsing string value
|
|
786
|
-
* @return {?}
|
|
787
|
-
*/
|
|
788
|
-
function (value, format) {
|
|
789
|
-
return new DateFnsDateApiObject(this._relativeParser.parse(value), this._localeSvc, format);
|
|
790
|
-
};
|
|
791
|
-
/**
|
|
792
|
-
* Gets wrapping object used for manipulation instantiated to current date and time
|
|
793
|
-
*/
|
|
794
|
-
/**
|
|
795
|
-
* Gets wrapping object used for manipulation instantiated to current date and time
|
|
796
|
-
* @return {?}
|
|
797
|
-
*/
|
|
798
|
-
DateFnsDateApi.prototype.now = /**
|
|
799
|
-
* Gets wrapping object used for manipulation instantiated to current date and time
|
|
800
|
-
* @return {?}
|
|
801
|
-
*/
|
|
802
|
-
function () {
|
|
803
|
-
return new DateFnsDateApiObject(new Date(), this._localeSvc);
|
|
804
|
-
};
|
|
805
|
-
/**
|
|
806
|
-
* Gets format string using pseudo format
|
|
807
|
-
* @param pseudoFormat - Pseudo format token, used for obtaining 'date' or 'time' format string
|
|
808
|
-
*/
|
|
809
|
-
/**
|
|
810
|
-
* Gets format string using pseudo format
|
|
811
|
-
* @param {?} pseudoFormat - Pseudo format token, used for obtaining 'date' or 'time' format string
|
|
812
|
-
* @return {?}
|
|
813
|
-
*/
|
|
814
|
-
DateFnsDateApi.prototype.getFormat = /**
|
|
815
|
-
* Gets format string using pseudo format
|
|
816
|
-
* @param {?} pseudoFormat - Pseudo format token, used for obtaining 'date' or 'time' format string
|
|
817
|
-
* @return {?}
|
|
818
|
-
*/
|
|
819
|
-
function (pseudoFormat) {
|
|
820
|
-
if (/^p+$/i.test(pseudoFormat)) {
|
|
821
|
-
/** @type {?} */
|
|
822
|
-
var widths = {
|
|
823
|
-
1: 'short',
|
|
824
|
-
2: 'medium',
|
|
825
|
-
3: 'long',
|
|
826
|
-
4: 'full'
|
|
827
|
-
};
|
|
828
|
-
//date time format
|
|
829
|
-
if (pseudoFormat.indexOf('Pp') >= 0 && pseudoFormat.length <= 8) {
|
|
830
|
-
return (/** @type {?} */ (this._localeSvc.locale.formatLong)).dateTime({ width: widths[pseudoFormat.length / 2] });
|
|
831
|
-
}
|
|
832
|
-
//date format
|
|
833
|
-
else if (pseudoFormat.indexOf('P') >= 0 && pseudoFormat.length <= 4) {
|
|
834
|
-
return (/** @type {?} */ (this._localeSvc.locale.formatLong)).date({ width: widths[pseudoFormat.length] });
|
|
835
|
-
}
|
|
836
|
-
//time format
|
|
837
|
-
else if (pseudoFormat.indexOf('p') >= 0 && pseudoFormat.length <= 4) {
|
|
838
|
-
return (/** @type {?} */ (this._localeSvc.locale.formatLong)).time({ width: widths[pseudoFormat.length] });
|
|
839
|
-
}
|
|
840
|
-
}
|
|
841
|
-
return pseudoFormat;
|
|
842
|
-
};
|
|
843
|
-
/**
|
|
844
|
-
* Gets information
|
|
845
|
-
*/
|
|
846
|
-
/**
|
|
847
|
-
* Gets information
|
|
848
|
-
* @return {?}
|
|
849
|
-
*/
|
|
850
|
-
DateFnsDateApi.prototype.weekStartsOnMonday = /**
|
|
851
|
-
* Gets information
|
|
852
|
-
* @return {?}
|
|
853
|
-
*/
|
|
854
|
-
function () {
|
|
855
|
-
var _a;
|
|
856
|
-
return ((_a = this._localeSvc.locale.options) === null || _a === void 0 ? void 0 : _a.weekStartsOn) === 1;
|
|
857
|
-
};
|
|
858
|
-
/**
|
|
859
|
-
* Gets array of weekday names in short format, order of days is dependent on locale
|
|
860
|
-
*/
|
|
861
|
-
/**
|
|
862
|
-
* Gets array of weekday names in short format, order of days is dependent on locale
|
|
863
|
-
* @return {?}
|
|
864
|
-
*/
|
|
865
|
-
DateFnsDateApi.prototype.weekdaysShort = /**
|
|
866
|
-
* Gets array of weekday names in short format, order of days is dependent on locale
|
|
867
|
-
* @return {?}
|
|
868
|
-
*/
|
|
869
|
-
function () {
|
|
870
|
-
/** @type {?} */
|
|
871
|
-
var startIndex = (/** @type {?} */ ((/** @type {?} */ (this._localeSvc.locale.options)).weekStartsOn));
|
|
872
|
-
/** @type {?} */
|
|
873
|
-
var weekdays = [];
|
|
874
|
-
for (var x = 0; x < 7; x++) {
|
|
875
|
-
weekdays.push((/** @type {?} */ (this._localeSvc.locale.localize)).day(startIndex++ % 7, { width: 'short' }));
|
|
876
|
-
}
|
|
877
|
-
return weekdays;
|
|
878
|
-
};
|
|
879
|
-
DateFnsDateApi.decorators = [
|
|
880
|
-
{ type: Injectable }
|
|
881
|
-
];
|
|
882
|
-
/** @nocollapse */
|
|
883
|
-
DateFnsDateApi.ctorParameters = function () { return [
|
|
884
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DATE_FNS_LOCALE,] }] },
|
|
885
|
-
{ type: DateTimeRelativeParser }
|
|
886
|
-
]; };
|
|
887
|
-
return DateFnsDateApi;
|
|
888
|
-
}());
|
|
889
|
-
export { DateFnsDateApi };
|
|
890
|
-
if (false) {
|
|
891
|
-
/**
|
|
892
|
-
* @type {?}
|
|
893
|
-
* @protected
|
|
894
|
-
*/
|
|
895
|
-
DateFnsDateApi.prototype._localeSvc;
|
|
896
|
-
/**
|
|
897
|
-
* @type {?}
|
|
898
|
-
* @protected
|
|
899
|
-
*/
|
|
900
|
-
DateFnsDateApi.prototype._relativeParser;
|
|
901
|
-
}
|
|
902
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZUZuc0RhdGVBcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9kYXRlRm5zRGF0ZUFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFvQyxzQkFBc0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUVwZCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNL0M7Ozs7SUFnQ0ksaUVBQWlFO0lBQ2pFLDhCQUFZLEtBQXFCLEVBQ1gsVUFBeUIsRUFDbkMsTUFBZTtRQURMLGVBQVUsR0FBVixVQUFVLENBQWU7UUFHM0MsSUFBRyxRQUFR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QUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUM7YUFDeEY7U0FDSjtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRzs7Ozs7SUFDSSwyQ0FBa0I7Ozs7SUFBekI7O1FBRUksT0FBTyxPQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sMENBQUUsWUFBWSxNQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksc0NBQWE7Ozs7SUFBcEI7O1lBRVEsVUFBVSxHQUFHLG1CQUFBLG1CQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBQyxDQUFDLFlBQVksRUFBQzs7WUFDMUQsUUFBUSxHQUFhLEVBQUU7UUFFM0IsS0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFDekI7WUFDSSxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFBLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNGO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7Z0JBdkZKLFVBQVU7Ozs7Z0RBSU0sTUFBTSxTQUFDLGVBQWU7Z0JBN2hCSSxzQkFBc0I7O0lBaW5CakUscUJBQUM7Q0FBQSxBQXhGRCxJQXdGQztTQXZGWSxjQUFjOzs7Ozs7SUFHWCxvQ0FBNEQ7Ozs7O0lBQzVELHlDQUF1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEYXRlQXBpLCBEYXRlVmFsdWUsIERhdGVBcGlPYmplY3QsIERhdGVUaW1lUmVsYXRpdmVQYXJzZXJ9IGZyb20gJ0Bhbmdsci9kYXRldGltZSc7XHJcbmltcG9ydCB7aXNCbGFuaywgaXNQcmVzZW50LCBpc1N0cmluZ30gZnJvbSAnQGpzY3JwdC9jb21tb24nO1xyXG5pbXBvcnQge3RvRGF0ZSwgZ2V0RGF0ZSwgc2V0RGF0ZSwgaXNBZnRlciwgaXNCZWZvcmUsIGRpZmZlcmVuY2VJbkNhbGVuZGFyRGF5cywgZm9ybWF0LCBzdGFydE9mTW9udGgsIGVuZE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBlbmRPZldlZWssIHN0YXJ0T2ZEYXksIGVuZE9mRGF5LCBhZGRNb250aHMsIGFkZFdlZWtzLCBhZGREYXlzLCBzdWJNb250aHMsIHN1YldlZWtzLCBzdWJEYXlzLCBnZXREYXlzSW5Nb250aCwgaXNTYW1lRGF5LCBpc1NhbWVXZWVrLCBpc1NhbWVNb250aCwgaXNWYWxpZCwgcGFyc2UsIHBhcnNlSVNPLCBhZGRZZWFycywgc3ViWWVhcnMsIHN0YXJ0T2ZZZWFyLCBlbmRPZlllYXIsIGlzV2Vla2VuZCwgc2V0WWVhciwgZ2V0WWVhciwgaXNTYW1lWWVhciwgc3RhcnRPZkRlY2FkZSwgZW5kT2ZEZWNhZGUsIHNldE1vbnRoLCBnZXRNb250aCwgc2V0SVNPRGF5LCBnZXRJU09EYXl9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbmltcG9ydCB7REFURV9GTlNfTE9DQUxFfSBmcm9tICcuLi9taXNjL3Rva2Vucyc7XHJcbmltcG9ydCB7RGF0ZUZuc0xvY2FsZX0gZnJvbSAnLi9kYXRlRm5zTG9jYWxlLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEluc3RhbmNlIG9mIG9iamVjdCB3cmFwcGluZyBURGF0ZSwgYWxsb3dpbmcgbWFuaXB1bGF0aW9uIHdpdGggaXRcclxuICovXHJcbmNsYXNzIERhdGVGbnNEYXRlQXBpT2JqZWN0IGltcGxlbWVudHMgRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJpdmF0ZSBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3JpZ2luYWwgdmFsdWUgdGhhdCBpcyBub3QgY2hhbmdlZCB1bmxlc3MgJ3VwZGF0ZU9yaWdpbmFsJyBpcyBjYWxsZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfb3JpZ2luYWxWYWx1ZTogRGF0ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIGRhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IERhdGU7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW1wbGVtZW50YXRpb24gb2YgRGF0ZUFwaU9iamVjdCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcmlnaW5hbCB2YWx1ZSB0aGF0IGlzIG5vdCBjaGFuZ2VkIHVubGVzcyAndXBkYXRlT3JpZ2luYWwnIGlzIGNhbGxlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9yaWdpbmFsVmFsdWUoKTogRGF0ZVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgZGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGVcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGNvbnN0cnVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIGNvbnN0cnVjdG9yKHZhbHVlOiBEYXRlVmFsdWV8RGF0ZSxcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9jYWxlU3ZjOiBEYXRlRm5zTG9jYWxlLFxyXG4gICAgICAgICAgICAgICAgZm9ybWF0Pzogc3RyaW5nKVxyXG4gICAge1xyXG4gICAgICAgIGlmKGlzU3RyaW5nKHZhbHVlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vSVNPIHN0cmluZ1xyXG4gICAgICAgICAgICBpZigvXlxcZCstXFxkKy1cXGQrKFRcXGQrOlxcZCs6XFxkKyk/Ly50ZXN0KHZhbHVlKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9vcmlnaW5hbFZhbHVlID0gcGFyc2VJU08odmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWYoaXNCbGFuayhmb3JtYXQpKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZGF0ZS1mbnMgcmVxdWlyZXMgZm9ybWF0IHBhcmFtZXRlciB0byBiZSBzZXQgZm9yIHBhcnNpbmcgbm9uIElTTyBzdHJpbmcgZGF0ZSFgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX29yaWdpbmFsVmFsdWUgPSBwYXJzZSh2YWx1ZSwgZm9ybWF0LCBuZXcgRGF0ZSgxOTcwLCAwKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9vcmlnaW5hbFZhbHVlID0gdG9EYXRlKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgRGF0ZUFwaU9iamVjdCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZGljYXRpb24gd2hldGhlciBwcm92aWRlZCBpbnN0YW5jZSBvZiBkYXRlIGlzIHZhbGlkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1ZhbGlkKCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZGljYXRpb24gd2hldGhlciBwcm92aWRlZCBpbnN0YW5jZSBvZiBkYXRlIGlzIHdlZWtlbmQgZGF5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc1dlZWtlbmQoKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1dlZWtlbmQodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0cyBkYXRlIHZhbHVlXHJcbiAgICAgKiBAcGFyYW0gZm9ybWF0U3RyaW5nIC0gRm9ybWF0IHRva2VuIHVzZWQgZm9yIGNyZWF0aW5nIGZvcm1hdHRlZCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcm1hdChmb3JtYXRTdHJpbmc6IHN0cmluZyk6IHN0cmluZ1xyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBmb3JtYXQodGhpcy5fdmFsdWUsIGZvcm1hdFN0cmluZywge2xvY2FsZTogdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB2YWx1ZSB0byBzdGFydCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgZGVjYWRlXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXJ0T2ZEZWNhZGUoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3RhcnRPZkRlY2FkZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIGVuZCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgZGVjYWRlXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZE9mRGVjYWRlKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGVuZE9mRGVjYWRlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIHN0YXJ0IGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCB5ZWFyXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXJ0T2ZZZWFyKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHN0YXJ0T2ZZZWFyKHRoaXMuX3ZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIGVuZCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgeWVhclxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbmRPZlllYXIoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZW5kT2ZZZWFyKHRoaXMuX3ZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgeWVhcnMsIGlmIGNvdW50IG5vdCBzcGVjaWZpZWQgYWRkcyAxIHllYXJcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiB5ZWFycyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRZZWFycyhjb3VudD86IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGFkZFllYXJzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJ0cmFjdCB5ZWFycywgaWYgY291bnQgbm90IHNwZWNpZmllZCBzdWJ0cmFjdCAxIHllYXJcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiB5ZWFycyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJ0cmFjdFllYXJzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3ViWWVhcnModGhpcy5fdmFsdWUsIGNvdW50ID8/IDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gc3RhcnQgZGF0ZSBhbmQgdGltZSBvZiBjdXJyZW50IG1vbnRoXHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXJ0T2ZNb250aCgpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdGFydE9mTW9udGgodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gZW5kIGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCBtb250aFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbmRPZk1vbnRoKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGVuZE9mTW9udGgodGhpcy5fdmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBtb250aHMsIGlmIGNvdW50IG5vdCBzcGVjaWZpZWQgYWRkcyAxIG1vbnRoXHJcbiAgICAgKiBAcGFyYW0gY291bnQgLSBOdW1iZXIgb2YgbW9udGhzIGNvdW50XHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZE1vbnRocyhjb3VudD86IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGFkZE1vbnRocyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VidHJhY3QgbW9udGhzLCBpZiBjb3VudCBub3Qgc3BlY2lmaWVkIHN1YnRyYWN0IDEgbW9udGhcclxuICAgICAqIEBwYXJhbSBjb3VudCAtIE51bWJlciBvZiBtb250aHMgY291bnRcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VidHJhY3RNb250aHMoY291bnQ/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdWJNb250aHModGhpcy5fdmFsdWUsIGNvdW50ID8/IDEpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdmFsdWUgdG8gc3RhcnQgZGF0ZSBhbmQgdGltZSBvZiBjdXJyZW50IHdlZWtcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhcnRPZldlZWsoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3RhcnRPZldlZWsodGhpcy5fdmFsdWUsIHtsb2NhbGU6IHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGV9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIGVuZCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgd2Vla1xyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbmRPZldlZWsoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gZW5kT2ZXZWVrKHRoaXMuX3ZhbHVlLCB7bG9jYWxlOiB0aGlzLl9sb2NhbGVTdmMubG9jYWxlfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIHdlZWtzLCBpZiBjb3VudCBub3Qgc3BlY2lmaWVkIGFkZHMgMSB3ZWVrXHJcbiAgICAgKiBAcGFyYW0gY291bnQgLSBOdW1iZXIgb2Ygd2Vla3MgY291bnRcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWRkV2Vla3MoY291bnQ/OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBhZGRXZWVrcyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VidHJhY3Qgd2Vla3MsIGlmIGNvdW50IG5vdCBzcGVjaWZpZWQgc3VidHJhY3QgMSB3ZWVrXHJcbiAgICAgKiBAcGFyYW0gY291bnQgLSBOdW1iZXIgb2Ygd2Vla3MgY291bnRcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VidHJhY3RXZWVrcyhjb3VudD86IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHN1YldlZWtzKHRoaXMuX3ZhbHVlLCBjb3VudCA/PyAxKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIHN0YXJ0IGRhdGUgYW5kIHRpbWUgb2YgY3VycmVudCBkYXlcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhcnRPZkRheSgpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBzdGFydE9mRGF5KHRoaXMuX3ZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHZhbHVlIHRvIGVuZCBkYXRlIGFuZCB0aW1lIG9mIGN1cnJlbnQgZGF5XHJcbiAgICAgKiBAcmV0dXJucyBJdHNlbGYgZm9yIGZsdWVudCBBUElcclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZE9mRGF5KCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IGVuZE9mRGF5KHRoaXMuX3ZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGQgZGF5cywgaWYgY291bnQgbm90IHNwZWNpZmllZCBhZGRzIDEgZGF5XHJcbiAgICAgKiBAcGFyYW0gY291bnQgLSBOdW1iZXIgb2YgZGF5cyBjb3VudFxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGREYXlzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gYWRkRGF5cyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3VidHJhY3QgZGF5cywgaWYgY291bnQgbm90IHNwZWNpZmllZCBzdWJ0cmFjdCAxIGRheVxyXG4gICAgICogQHBhcmFtIGNvdW50IC0gTnVtYmVyIG9mIGRheXMgY291bnRcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VidHJhY3REYXlzKGNvdW50PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gc3ViRGF5cyh0aGlzLl92YWx1ZSwgY291bnQgPz8gMSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBudW1iZXIgb2YgZGF5cyBpbiBtb250aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5c0luTW9udGgoKTogbnVtYmVyXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGdldERheXNJbk1vbnRoKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgeWVhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgeWVhcigpOiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIFNldHMgeWVhclxyXG4gICAgICogQHBhcmFtIHllYXIgLSBZZWFyIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgeWVhcih5ZWFyOiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgeWVhclxyXG4gICAgICogQHBhcmFtIHllYXIgLSBJZiBzcGVjaWZpZWQsIHNldHMgeWVhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgeWVhcih5ZWFyPzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPnxudW1iZXJcclxuICAgIHtcclxuICAgICAgICBpZihpc1ByZXNlbnQoeWVhcikpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHNldFllYXIodGhpcy5fdmFsdWUsIHllYXIhKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdldFllYXIodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBtb250aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9udGgoKTogbnVtYmVyXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbW9udGhcclxuICAgICAqIEBwYXJhbSBtb250aCAtIE1vbnRoIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9udGgobW9udGg6IG51bWJlcik6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIG1vbnRoXHJcbiAgICAgKiBAcGFyYW0gbW9udGggLSBJZiBzcGVjaWZpZWQsIHNldHMgbW9udGhcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1vbnRoKG1vbnRoPzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPnxudW1iZXJcclxuICAgIHtcclxuICAgICAgICBpZihpc1ByZXNlbnQobW9udGgpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBzZXRNb250aCh0aGlzLl92YWx1ZSwgbW9udGghKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGdldE1vbnRoKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgZGF5IG9mIG1vbnRoIG9uZSBiYXNlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5T2ZNb250aCgpOiBudW1iZXI7XHJcbiAgICAvKipcclxuICAgICAqIFNldHMgZGF5IG9mIG1vbnRoIG9uZSBiYXNlZFxyXG4gICAgICogQHBhcmFtIGRheSAtIERheSBvZiBtb250aCB0byBiZSBzZXRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRheU9mTW9udGgoZGF5OiBudW1iZXIpOiBEYXRlQXBpT2JqZWN0PERhdGU+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgZGF5IG9mIG1vbnRoIG9uZSBiYXNlZFxyXG4gICAgICogQHBhcmFtIGRheSAtIElmIHNwZWNpZmllZCwgc2V0cyBkYXkgb2YgbW9udGhcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRheU9mTW9udGgoZGF5PzogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPnxudW1iZXJcclxuICAgIHtcclxuICAgICAgICBpZihpc1ByZXNlbnQoZGF5KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2V0RGF0ZSh0aGlzLl92YWx1ZSwgZGF5ISk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBnZXREYXRlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgZGF5IG9mIHdlZWsgemVybyBiYXNlZCwgZmlyc3QgaXMgbW9uZGF5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkYXlPZldlZWsoKTogbnVtYmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGRheSBvZiB3ZWVrIHplcm8gYmFzZWQsIGZpcnN0IGlzIG1vbmRheVxyXG4gICAgICogQHBhcmFtIGRheSAtIERheSBvZiB3ZWVrIHRvIGJlIHNldFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5T2ZXZWVrKGRheTogbnVtYmVyKTogRGF0ZUFwaU9iamVjdDxEYXRlPjtcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIGRheSBvZiB3ZWVrIHplcm8gYmFzZWQsIGZpcnN0IGlzIG1vbmRheVxyXG4gICAgICogQHBhcmFtIGRheSAtIElmIHNwZWNpZmllZCwgc2V0cyBkYXkgb2Ygd2Vla1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF5T2ZXZWVrKGRheT86IG51bWJlcik6IG51bWJlcnxEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgaWYoaXNQcmVzZW50KGRheSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHNldElTT0RheSh0aGlzLl92YWx1ZSwgZGF5ICsgMSEpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZ2V0SVNPRGF5KHRoaXMuX3ZhbHVlKSAtIDE7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZGljYXRpb24gd2hldGhlciBjdXJyZW50IHZhbHVlIGlzIGJlZm9yZSAnZGF0ZSdcclxuICAgICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB3aGljaCBpcyB0aGlzIGRhdGUgY29tcGFyZWQgdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzQmVmb3JlKGRhdGU6IERhdGUpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGlzQmVmb3JlKHRoaXMuX3ZhbHVlLCBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGN1cnJlbnQgdmFsdWUgaXMgYWZ0ZXIgJ2RhdGUnXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgd2hpY2ggaXMgdGhpcyBkYXRlIGNvbXBhcmVkIHRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpc0FmdGVyKGRhdGU6IERhdGUpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGlzQWZ0ZXIodGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBudW1iZXIgb2YgZGF5cyBiZXR3ZWVuIHRoaXMgYW5kIHByb3ZpZGVkIGRhdGVcclxuICAgICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB3aGljaCBpcyB1c2VkIGZvciBjb21wdXRhdGlvbiBvZiBkaWZmIGFnYWluc3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIGRpZmZEYXlzKGRhdGU6IERhdGUpOiBudW1iZXJcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gZGlmZmVyZW5jZUluQ2FsZW5kYXJEYXlzKHRoaXMuX3ZhbHVlLCBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmVzIHdoZXRoZXIgdGhpcyBkYXRlIGlzIHNhbWUgd2VlayBhcyBwcm92aWRlZCBkYXRlXHJcbiAgICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgd2hpY2ggaXMgdXNlZCBmb3IgY29tcGFyaXNvbiBvZiBzYW1lIHdlZWtcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzU2FtZVdlZWsoZGF0ZTogRGF0ZSk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXNTYW1lV2Vlayh0aGlzLl92YWx1ZSwgZGF0ZSwge2xvY2FsZTogdGhpcy5fbG9jYWxlU3ZjLmxvY2FsZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZXMgd2hldGhlciB0aGlzIGRhdGUgaXMgc2FtZSBkZWNhZGUgYXMgcHJvdmlkZWQgZGF0ZVxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2Ygc2FtZSBkZWNhZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzU2FtZURlY2FkZShkYXRlOiBEYXRlKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIGxldCB5ZWFyID0gZ2V0WWVhcih0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgbGV0IHN0YXJ0ID0geWVhciAtICh5ZWFyICUgMTApO1xyXG4gICAgICAgIGxldCBlbmQgPSBzdGFydCArIDEwO1xyXG5cclxuICAgICAgICByZXR1cm4gZ2V0WWVhcihkYXRlKSA+PSBzdGFydCAmJiBnZXRZZWFyKGRhdGUpIDwgZW5kO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZXMgd2hldGhlciB0aGlzIGRhdGUgaXMgc2FtZSB5ZWFyIGFzIHByb3ZpZGVkIGRhdGVcclxuICAgICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSB3aGljaCBpcyB1c2VkIGZvciBjb21wYXJpc29uIG9mIHNhbWUgeWVhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNTYW1lWWVhcihkYXRlOiBEYXRlKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1NhbWVZZWFyKHRoaXMuX3ZhbHVlLCBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhcmVzIHdoZXRoZXIgdGhpcyBkYXRlIGlzIHNhbWUgbW9udGggYXMgcHJvdmlkZWQgZGF0ZVxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2Ygc2FtZSBtb250aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNTYW1lTW9udGgoZGF0ZTogRGF0ZSk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gaXNTYW1lTW9udGgodGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyZXMgd2hldGhlciB0aGlzIGRhdGUgaXMgc2FtZSBkYXkgYXMgcHJvdmlkZWQgZGF0ZVxyXG4gICAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHdoaWNoIGlzIHVzZWQgZm9yIGNvbXBhcmlzb24gb2Ygc2FtZSBkYXlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzU2FtZURheShkYXRlOiBEYXRlKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBpc1NhbWVEYXkodGhpcy5fdmFsdWUsIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBjbG9uZSBvZiB0aGlzIGluc3RhbmNlLCB2YWx1ZSBhbmQgb3JpZ2luYWxWYWx1ZSBoYXZlIHNhbWUgdmFsdWUgYW5kIGFyZSBjbG9uZWQgZnJvbSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xvbmUoKTogRGF0ZUFwaU9iamVjdDxEYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZUZuc0RhdGVBcGlPYmplY3QobmV3IERhdGUodGhpcy5fdmFsdWUpLCB0aGlzLl9sb2NhbGVTdmMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBjbG9uZSBvZiB0aGlzIGluc3RhbmNlLCB2YWx1ZSBhbmQgb3JpZ2luYWxWYWx1ZSBoYXZlIHNhbWUgdmFsdWUgYW5kIGFyZSBjbG9uZWQgZnJvbSBvcmlnaW5hbFZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbG9uZU9yaWdpbmFsKCk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGVGbnNEYXRlQXBpT2JqZWN0KG5ldyBEYXRlKHRoaXMuX29yaWdpbmFsVmFsdWUpLCB0aGlzLl9sb2NhbGVTdmMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyBvcmlnaW5hbFZhbHVlLCBpZiB2YWx1ZSBpcyBub3QgcHJvdmlkZWQgb3JpZ2luYWxWYWx1ZSBpcyBzZXQgdG8gdmFsdWVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIGJlIHNldCBhcyBvcmlnaW5hbCwgb3IgbnVsbCAodmFsdWUgd2lsbCBiZSB1c2VkIGFzIHZhbHVlKVxyXG4gICAgICogQHJldHVybnMgSXRzZWxmIGZvciBmbHVlbnQgQVBJXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB1cGRhdGVPcmlnaW5hbCh2YWx1ZT86IERhdGUpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9vcmlnaW5hbFZhbHVlID0gdGhpcy5fdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fb3JpZ2luYWxWYWx1ZSA9IHZhbHVlITtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2hhbmdlcyB2YWx1ZSB0byBzYW1lIHZhbHVlIGFzIG9yaWdpbmFsVmFsdWVcclxuICAgICAqIEByZXR1cm5zIEl0c2VsZiBmb3IgZmx1ZW50IEFQSVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVzZXRPcmlnaW5hbCgpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9vcmlnaW5hbFZhbHVlO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGUgYXBpIHVzaW5nIERhdGVGbnNKUywgdXNlZCBmb3Igb2J0YWluaW5nIERhdGVBcGkgd3JhcHBlciBvYmplY3RcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERhdGVGbnNEYXRlQXBpIGltcGxlbWVudHMgRGF0ZUFwaTxEYXRlPlxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEQVRFX0ZOU19MT0NBTEUpIHByb3RlY3RlZCBfbG9jYWxlU3ZjOiBEYXRlRm5zTG9jYWxlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9yZWxhdGl2ZVBhcnNlcjogRGF0ZVRpbWVSZWxhdGl2ZVBhcnNlcjxEYXRlPilcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlQXBpICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgd3JhcHBpbmcgb2JqZWN0IHVzZWQgZm9yIG1hbmlwdWxhdGlvblxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gYmUgY29udmVydGVkIChwYXJzZWQpIGFuZCB1c2VkIGZvciBtYW5pcHVsYXRpb25cclxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBGb3JtYXQgc3RyaW5nIHVzZWQgZm9yIHBhcnNpbmcgc3RyaW5nIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRWYWx1ZSh2YWx1ZTogRGF0ZVZhbHVlfERhdGUsIGZvcm1hdD86IHN0cmluZyk6IERhdGVBcGlPYmplY3Q8RGF0ZT5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGVGbnNEYXRlQXBpT2JqZWN0KHRoaXMuX3JlbGF0aXZlUGFyc2VyLnBhcnNlKHZhbHVlKSwgdGhpcy5fbG9jYWxlU3ZjLCBmb3JtYXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB3cmFwcGluZyBvYmplY3QgdXNlZCBmb3IgbWFuaXB1bGF0aW9uIGluc3RhbnRpYXRlZCB0byBjdXJyZW50IGRhdGUgYW5kIHRpbWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5vdygpOiBEYXRlQXBpT2JqZWN0PERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlRm5zRGF0ZUFwaU9iamVjdChuZXcgRGF0ZSgpLCB0aGlzLl9sb2NhbGVTdmMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBmb3JtYXQgc3RyaW5nIHVzaW5nIHBzZXVkbyBmb3JtYXRcclxuICAgICAqIEBwYXJhbSBwc2V1ZG9Gb3JtYXQgLSBQc2V1ZG8gZm9ybWF0IHRva2VuLCB1c2VkIGZvciBvYnRhaW5pbmcgJ2RhdGUnIG9yICd0aW1lJyBmb3JtYXQgc3RyaW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGb3JtYXQocHNldWRvRm9ybWF0OiBzdHJpbmcpOiBzdHJpbmdcclxuICAgIHtcclxuICAgICAgICBpZigvXnArJC9pLnRlc3QocHNldWRvRm9ybWF0KSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCB3aWR0aHM6IHtbaW5kZXg6IG51bWJlcl06IHN0cmluZ30gPVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAxOiAnc2hvcnQnLFxyXG4gICAgICAgICAgICAgICAgMjogJ21lZGl1bScsXHJcbiAgICAgICAgICAgICAgICAzOiAnbG9uZycsXHJcbiAgICAgICAgICAgICAgICA0OiAnZnVsbCdcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIC8vZGF0ZSB0aW1lIGZvcm1hdFxyXG4gICAgICAgICAgICBpZihwc2V1ZG9Gb3JtYXQuaW5kZXhPZignUHAnKSA+PSAwICYmIHBzZXVkb0Zvcm1hdC5sZW5ndGggPD0gOClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUuZm9ybWF0TG9uZyEuZGF0ZVRpbWUoe3dpZHRoOiB3aWR0aHNbcHNldWRvRm9ybWF0Lmxlbmd0aCAvIDJdfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy9kYXRlIGZvcm1hdFxyXG4gICAgICAgICAgICBlbHNlIGlmKHBzZXVkb0Zvcm1hdC5pbmRleE9mKCdQJykgPj0gMCAmJiBwc2V1ZG9Gb3JtYXQubGVuZ3RoIDw9IDQpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVTdmMubG9jYWxlLmZvcm1hdExvbmchLmRhdGUoe3dpZHRoOiB3aWR0aHNbcHNldWRvRm9ybWF0Lmxlbmd0aF19KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvL3RpbWUgZm9ybWF0XHJcbiAgICAgICAgICAgIGVsc2UgaWYocHNldWRvRm9ybWF0LmluZGV4T2YoJ3AnKSA+PSAwICYmIHBzZXVkb0Zvcm1hdC5sZW5ndGggPD0gNClcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUuZm9ybWF0TG9uZyEudGltZSh7d2lkdGg6IHdpZHRoc1twc2V1ZG9Gb3JtYXQubGVuZ3RoXX0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcHNldWRvRm9ybWF0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBpbmZvcm1hdGlvbiBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlZWtTdGFydHNPbk1vbmRheSgpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZVN2Yy5sb2NhbGUub3B0aW9ucz8ud2Vla1N0YXJ0c09uID09PSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBhcnJheSBvZiB3ZWVrZGF5IG5hbWVzIGluIHNob3J0IGZvcm1hdCwgb3JkZXIgb2YgZGF5cyBpcyBkZXBlbmRlbnQgb24gbG9jYWxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3ZWVrZGF5c1Nob3J0KCk6IHN0cmluZ1tdXHJcbiAgICB7XHJcbiAgICAgICAgbGV0IHN0YXJ0SW5kZXggPSB0aGlzLl9sb2NhbGVTdmMubG9jYWxlLm9wdGlvbnMhLndlZWtTdGFydHNPbiE7XHJcbiAgICAgICAgbGV0IHdlZWtkYXlzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgICAgICBmb3IobGV0IHggPSAwOyB4IDwgNzsgeCsrKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgd2Vla2RheXMucHVzaCh0aGlzLl9sb2NhbGVTdmMubG9jYWxlLmxvY2FsaXplIS5kYXkoc3RhcnRJbmRleCsrICUgNywge3dpZHRoOiAnc2hvcnQnfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHdlZWtkYXlzO1xyXG4gICAgfVxyXG59Il19
|