@anglr/datetime 2.0.0-beta.20220221103100 → 2.0.0-beta.20220221120606
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 +12 -0
- package/date-fns/datetime-date-fns.d.ts +64 -0
- package/date-fns/datetime-date-fns.internal.d.ts +64 -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/date-fns/temp/datetime-date-fns.api.md +47 -0
- package/datetime.d.ts +1913 -5
- package/datetime.internal.d.ts +2090 -0
- 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/datetime-moment.d.ts +47 -0
- package/moment/datetime-moment.internal.d.ts +47 -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/moment/temp/datetime-moment.api.md +36 -0
- package/package.json +91 -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.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,808 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/selector/components/inputDateTime/inputDateTime.component.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Component, ChangeDetectionStrategy, Inject, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
8
|
-
import { DATE_API } from '../../../misc/tokens';
|
|
9
|
-
import { DatePositionParserService } from '../../../services/datePositionParser.service';
|
|
10
|
-
import { DateValueProvider } from '../../../services/dateValueProvider.service';
|
|
11
|
-
/**
|
|
12
|
-
* Component used as datetime selector with input
|
|
13
|
-
* @template TDate
|
|
14
|
-
*/
|
|
15
|
-
var InputDateTimeSelectorComponent = /** @class */ (function () {
|
|
16
|
-
//######################### constructor #########################
|
|
17
|
-
function InputDateTimeSelectorComponent(_dateApi, _parserSvc, _valueProvider, _changeDetector) {
|
|
18
|
-
this._dateApi = _dateApi;
|
|
19
|
-
this._parserSvc = _parserSvc;
|
|
20
|
-
this._valueProvider = _valueProvider;
|
|
21
|
-
this._changeDetector = _changeDetector;
|
|
22
|
-
//######################### protected fields #########################
|
|
23
|
-
/**
|
|
24
|
-
* Occurs when value changes
|
|
25
|
-
*/
|
|
26
|
-
this._valueChange = new Subject();
|
|
27
|
-
/**
|
|
28
|
-
* Occurs when selector is touched by user
|
|
29
|
-
*/
|
|
30
|
-
this._touched = new Subject();
|
|
31
|
-
/**
|
|
32
|
-
* Occurs when selector requires picker to be displayed or hidden
|
|
33
|
-
*/
|
|
34
|
-
this._pickerRequest = new Subject();
|
|
35
|
-
/**
|
|
36
|
-
* Instance of parser created for specific format
|
|
37
|
-
*/
|
|
38
|
-
this._parser = null;
|
|
39
|
-
/**
|
|
40
|
-
* Currently used format for displaying data
|
|
41
|
-
*/
|
|
42
|
-
this._format = '';
|
|
43
|
-
/**
|
|
44
|
-
* Current value representation as date api wrapper
|
|
45
|
-
*/
|
|
46
|
-
this._dateApiValue = null;
|
|
47
|
-
/**
|
|
48
|
-
* Indication whether is current value valid value
|
|
49
|
-
*/
|
|
50
|
-
this._isValid = true;
|
|
51
|
-
/**
|
|
52
|
-
* Minimal possible value that can be picked
|
|
53
|
-
*/
|
|
54
|
-
this._minValue = null;
|
|
55
|
-
/**
|
|
56
|
-
* Maximal possible value that can be picked
|
|
57
|
-
*/
|
|
58
|
-
this._maxValue = null;
|
|
59
|
-
//######################### public properties - template bindings #########################
|
|
60
|
-
/**
|
|
61
|
-
* Indication whether is input disabled
|
|
62
|
-
* \@internal
|
|
63
|
-
*/
|
|
64
|
-
this.disabled = false;
|
|
65
|
-
}
|
|
66
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "format", {
|
|
67
|
-
//######################### public properties - implementation of DateTimeSelector #########################
|
|
68
|
-
/**
|
|
69
|
-
* Gets or sets currently used format for displaying data
|
|
70
|
-
*/
|
|
71
|
-
get:
|
|
72
|
-
//######################### public properties - implementation of DateTimeSelector #########################
|
|
73
|
-
/**
|
|
74
|
-
* Gets or sets currently used format for displaying data
|
|
75
|
-
* @return {?}
|
|
76
|
-
*/
|
|
77
|
-
function () {
|
|
78
|
-
return this._format;
|
|
79
|
-
},
|
|
80
|
-
set: /**
|
|
81
|
-
* @param {?} value
|
|
82
|
-
* @return {?}
|
|
83
|
-
*/
|
|
84
|
-
function (value) {
|
|
85
|
-
//only if format changes
|
|
86
|
-
if (this._format != value) {
|
|
87
|
-
this._parser = this._parserSvc.createParser(this._dateApi.getFormat(value));
|
|
88
|
-
}
|
|
89
|
-
this._format = value;
|
|
90
|
-
},
|
|
91
|
-
enumerable: false,
|
|
92
|
-
configurable: true
|
|
93
|
-
});
|
|
94
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "value", {
|
|
95
|
-
/**
|
|
96
|
-
* Gets current value of datetime
|
|
97
|
-
*/
|
|
98
|
-
get: /**
|
|
99
|
-
* Gets current value of datetime
|
|
100
|
-
* @return {?}
|
|
101
|
-
*/
|
|
102
|
-
function () {
|
|
103
|
-
if (!this._dateApiValue || !this._isValid) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
return this._valueProvider.getValue(this._dateApiValue.value, this._format);
|
|
107
|
-
},
|
|
108
|
-
enumerable: false,
|
|
109
|
-
configurable: true
|
|
110
|
-
});
|
|
111
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "formattedValue", {
|
|
112
|
-
/**
|
|
113
|
-
* Gets formatted value
|
|
114
|
-
*/
|
|
115
|
-
get: /**
|
|
116
|
-
* Gets formatted value
|
|
117
|
-
* @return {?}
|
|
118
|
-
*/
|
|
119
|
-
function () {
|
|
120
|
-
if (!this._isValid) {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
return this.currentValue;
|
|
124
|
-
},
|
|
125
|
-
enumerable: false,
|
|
126
|
-
configurable: true
|
|
127
|
-
});
|
|
128
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "valid", {
|
|
129
|
-
/**
|
|
130
|
-
* Gets indication whether is current value valid
|
|
131
|
-
*/
|
|
132
|
-
get: /**
|
|
133
|
-
* Gets indication whether is current value valid
|
|
134
|
-
* @return {?}
|
|
135
|
-
*/
|
|
136
|
-
function () {
|
|
137
|
-
return this._isValid;
|
|
138
|
-
},
|
|
139
|
-
enumerable: false,
|
|
140
|
-
configurable: true
|
|
141
|
-
});
|
|
142
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "valueChange", {
|
|
143
|
-
/**
|
|
144
|
-
* Occurs when value changes
|
|
145
|
-
*/
|
|
146
|
-
get: /**
|
|
147
|
-
* Occurs when value changes
|
|
148
|
-
* @return {?}
|
|
149
|
-
*/
|
|
150
|
-
function () {
|
|
151
|
-
return this._valueChange.asObservable();
|
|
152
|
-
},
|
|
153
|
-
enumerable: false,
|
|
154
|
-
configurable: true
|
|
155
|
-
});
|
|
156
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "touched", {
|
|
157
|
-
/**
|
|
158
|
-
* Occurs when selector is touched by user
|
|
159
|
-
*/
|
|
160
|
-
get: /**
|
|
161
|
-
* Occurs when selector is touched by user
|
|
162
|
-
* @return {?}
|
|
163
|
-
*/
|
|
164
|
-
function () {
|
|
165
|
-
return this._touched.asObservable();
|
|
166
|
-
},
|
|
167
|
-
enumerable: false,
|
|
168
|
-
configurable: true
|
|
169
|
-
});
|
|
170
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "pickerRequest", {
|
|
171
|
-
/**
|
|
172
|
-
* Occurs when selector requires picker to be displayed
|
|
173
|
-
*/
|
|
174
|
-
get: /**
|
|
175
|
-
* Occurs when selector requires picker to be displayed
|
|
176
|
-
* @return {?}
|
|
177
|
-
*/
|
|
178
|
-
function () {
|
|
179
|
-
return this._pickerRequest.asObservable();
|
|
180
|
-
},
|
|
181
|
-
enumerable: false,
|
|
182
|
-
configurable: true
|
|
183
|
-
});
|
|
184
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "currentValue", {
|
|
185
|
-
//######################### protected properties #########################
|
|
186
|
-
/**
|
|
187
|
-
* Gets or sets string representation current of value
|
|
188
|
-
*/
|
|
189
|
-
get:
|
|
190
|
-
//######################### protected properties #########################
|
|
191
|
-
/**
|
|
192
|
-
* Gets or sets string representation current of value
|
|
193
|
-
* @protected
|
|
194
|
-
* @return {?}
|
|
195
|
-
*/
|
|
196
|
-
function () {
|
|
197
|
-
return this.input.value || null;
|
|
198
|
-
},
|
|
199
|
-
set: /**
|
|
200
|
-
* @protected
|
|
201
|
-
* @param {?} value
|
|
202
|
-
* @return {?}
|
|
203
|
-
*/
|
|
204
|
-
function (value) {
|
|
205
|
-
if (this.input) {
|
|
206
|
-
this.input.value = value !== null && value !== void 0 ? value : '';
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
enumerable: false,
|
|
210
|
-
configurable: true
|
|
211
|
-
});
|
|
212
|
-
Object.defineProperty(InputDateTimeSelectorComponent.prototype, "input", {
|
|
213
|
-
/**
|
|
214
|
-
* Gets input element used for handling date time value
|
|
215
|
-
*/
|
|
216
|
-
get: /**
|
|
217
|
-
* Gets input element used for handling date time value
|
|
218
|
-
* @protected
|
|
219
|
-
* @return {?}
|
|
220
|
-
*/
|
|
221
|
-
function () {
|
|
222
|
-
return (/** @type {?} */ (this.inputElement)).nativeElement;
|
|
223
|
-
},
|
|
224
|
-
enumerable: false,
|
|
225
|
-
configurable: true
|
|
226
|
-
});
|
|
227
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
228
|
-
/**
|
|
229
|
-
* Sets minimal possible value for picker, that can be picked
|
|
230
|
-
* @param value - Minimal possible value that can be picked
|
|
231
|
-
*/
|
|
232
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
233
|
-
/**
|
|
234
|
-
* Sets minimal possible value for picker, that can be picked
|
|
235
|
-
* @param {?} value - Minimal possible value that can be picked
|
|
236
|
-
* @return {?}
|
|
237
|
-
*/
|
|
238
|
-
InputDateTimeSelectorComponent.prototype.setMinValue =
|
|
239
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
240
|
-
/**
|
|
241
|
-
* Sets minimal possible value for picker, that can be picked
|
|
242
|
-
* @param {?} value - Minimal possible value that can be picked
|
|
243
|
-
* @return {?}
|
|
244
|
-
*/
|
|
245
|
-
function (value) {
|
|
246
|
-
this._minValue = value;
|
|
247
|
-
};
|
|
248
|
-
/**
|
|
249
|
-
* Sets maximal possible value for picker, that can be picked
|
|
250
|
-
* @param value - Maximal possible value that can be picked
|
|
251
|
-
*/
|
|
252
|
-
/**
|
|
253
|
-
* Sets maximal possible value for picker, that can be picked
|
|
254
|
-
* @param {?} value - Maximal possible value that can be picked
|
|
255
|
-
* @return {?}
|
|
256
|
-
*/
|
|
257
|
-
InputDateTimeSelectorComponent.prototype.setMaxValue = /**
|
|
258
|
-
* Sets maximal possible value for picker, that can be picked
|
|
259
|
-
* @param {?} value - Maximal possible value that can be picked
|
|
260
|
-
* @return {?}
|
|
261
|
-
*/
|
|
262
|
-
function (value) {
|
|
263
|
-
this._maxValue = value;
|
|
264
|
-
};
|
|
265
|
-
/**
|
|
266
|
-
* Sets value of datetime selector
|
|
267
|
-
* @param value - Value to be set to this selector
|
|
268
|
-
*/
|
|
269
|
-
/**
|
|
270
|
-
* Sets value of datetime selector
|
|
271
|
-
* @param {?} value - Value to be set to this selector
|
|
272
|
-
* @return {?}
|
|
273
|
-
*/
|
|
274
|
-
InputDateTimeSelectorComponent.prototype.setValue = /**
|
|
275
|
-
* Sets value of datetime selector
|
|
276
|
-
* @param {?} value - Value to be set to this selector
|
|
277
|
-
* @return {?}
|
|
278
|
-
*/
|
|
279
|
-
function (value) {
|
|
280
|
-
if (value === null || value === void 0 ? void 0 : value.from) {
|
|
281
|
-
this._dateApiValue = this._dateApi.getValue(value === null || value === void 0 ? void 0 : value.from, this._format);
|
|
282
|
-
this._isValid = this._dateApiValue.isValid();
|
|
283
|
-
this._show();
|
|
284
|
-
}
|
|
285
|
-
else {
|
|
286
|
-
this._clearValue();
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
/**
|
|
290
|
-
* Sets as 'control' disabled
|
|
291
|
-
* @param disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
292
|
-
*/
|
|
293
|
-
/**
|
|
294
|
-
* Sets as 'control' disabled
|
|
295
|
-
* @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
296
|
-
* @return {?}
|
|
297
|
-
*/
|
|
298
|
-
InputDateTimeSelectorComponent.prototype.setDisabled = /**
|
|
299
|
-
* Sets as 'control' disabled
|
|
300
|
-
* @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
301
|
-
* @return {?}
|
|
302
|
-
*/
|
|
303
|
-
function (disabled) {
|
|
304
|
-
if (disabled === void 0) { disabled = true; }
|
|
305
|
-
this.disabled = disabled;
|
|
306
|
-
};
|
|
307
|
-
/**
|
|
308
|
-
* Explicitly runs invalidation of content (change detection)
|
|
309
|
-
*/
|
|
310
|
-
/**
|
|
311
|
-
* Explicitly runs invalidation of content (change detection)
|
|
312
|
-
* @return {?}
|
|
313
|
-
*/
|
|
314
|
-
InputDateTimeSelectorComponent.prototype.invalidateVisuals = /**
|
|
315
|
-
* Explicitly runs invalidation of content (change detection)
|
|
316
|
-
* @return {?}
|
|
317
|
-
*/
|
|
318
|
-
function () {
|
|
319
|
-
this._changeDetector.detectChanges();
|
|
320
|
-
};
|
|
321
|
-
//######################### public methods - template bindings #########################
|
|
322
|
-
/**
|
|
323
|
-
* Handles gaining of focus
|
|
324
|
-
* @internal
|
|
325
|
-
*/
|
|
326
|
-
//######################### public methods - template bindings #########################
|
|
327
|
-
/**
|
|
328
|
-
* Handles gaining of focus
|
|
329
|
-
* \@internal
|
|
330
|
-
* @return {?}
|
|
331
|
-
*/
|
|
332
|
-
InputDateTimeSelectorComponent.prototype.handleFocus =
|
|
333
|
-
//######################### public methods - template bindings #########################
|
|
334
|
-
/**
|
|
335
|
-
* Handles gaining of focus
|
|
336
|
-
* \@internal
|
|
337
|
-
* @return {?}
|
|
338
|
-
*/
|
|
339
|
-
function () {
|
|
340
|
-
this._pickerRequest.next(true);
|
|
341
|
-
//no value
|
|
342
|
-
if (!this._dateApiValue) {
|
|
343
|
-
this._dateApiValue = this._dateApi.now();
|
|
344
|
-
this._isValid = this._dateApiValue.isValid();
|
|
345
|
-
if (this._minMaxConstraintTest()) {
|
|
346
|
-
this._clearValue();
|
|
347
|
-
}
|
|
348
|
-
else {
|
|
349
|
-
this._valueChange.next();
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
if (!this._isValid) {
|
|
353
|
-
return;
|
|
354
|
-
}
|
|
355
|
-
this._show();
|
|
356
|
-
/** @type {?} */
|
|
357
|
-
var result = (/** @type {?} */ (this._parser)).parse((/** @type {?} */ (this.currentValue)), (/** @type {?} */ (this.input.selectionStart)));
|
|
358
|
-
this.input.selectionStart = result.positionFrom;
|
|
359
|
-
this.input.selectionEnd = result.positionTo;
|
|
360
|
-
};
|
|
361
|
-
/**
|
|
362
|
-
* Handles blur on input
|
|
363
|
-
* @internal
|
|
364
|
-
*/
|
|
365
|
-
/**
|
|
366
|
-
* Handles blur on input
|
|
367
|
-
* \@internal
|
|
368
|
-
* @return {?}
|
|
369
|
-
*/
|
|
370
|
-
InputDateTimeSelectorComponent.prototype.handleBlur = /**
|
|
371
|
-
* Handles blur on input
|
|
372
|
-
* \@internal
|
|
373
|
-
* @return {?}
|
|
374
|
-
*/
|
|
375
|
-
function () {
|
|
376
|
-
this._pickerRequest.next(false);
|
|
377
|
-
};
|
|
378
|
-
/**
|
|
379
|
-
* Handles user input
|
|
380
|
-
* @internal
|
|
381
|
-
*/
|
|
382
|
-
/**
|
|
383
|
-
* Handles user input
|
|
384
|
-
* \@internal
|
|
385
|
-
* @return {?}
|
|
386
|
-
*/
|
|
387
|
-
InputDateTimeSelectorComponent.prototype.handleInput = /**
|
|
388
|
-
* Handles user input
|
|
389
|
-
* \@internal
|
|
390
|
-
* @return {?}
|
|
391
|
-
*/
|
|
392
|
-
function () {
|
|
393
|
-
//empty value
|
|
394
|
-
if (!this.currentValue) {
|
|
395
|
-
this._clearValue();
|
|
396
|
-
this._valueChange.next();
|
|
397
|
-
return;
|
|
398
|
-
}
|
|
399
|
-
this._dateApiValue = this._dateApi.getValue(this.currentValue, this._format);
|
|
400
|
-
this._isValid = this._dateApiValue.isValid();
|
|
401
|
-
this._valueChange.next();
|
|
402
|
-
};
|
|
403
|
-
/**
|
|
404
|
-
* Handles selection of text inside of input
|
|
405
|
-
* @internal
|
|
406
|
-
*/
|
|
407
|
-
/**
|
|
408
|
-
* Handles selection of text inside of input
|
|
409
|
-
* \@internal
|
|
410
|
-
* @return {?}
|
|
411
|
-
*/
|
|
412
|
-
InputDateTimeSelectorComponent.prototype.handleSelect = /**
|
|
413
|
-
* Handles selection of text inside of input
|
|
414
|
-
* \@internal
|
|
415
|
-
* @return {?}
|
|
416
|
-
*/
|
|
417
|
-
function () {
|
|
418
|
-
//handles when all text is selected
|
|
419
|
-
if (this.currentValue && this.input.selectionStart == 0 && this.input.selectionEnd == this.input.value.length) {
|
|
420
|
-
/** @type {?} */
|
|
421
|
-
var result = (/** @type {?} */ (this._parser)).parse(this.input.value, (/** @type {?} */ (this.input.selectionStart)));
|
|
422
|
-
this.input.selectionStart = result.positionFrom;
|
|
423
|
-
this.input.selectionEnd = result.positionTo;
|
|
424
|
-
}
|
|
425
|
-
};
|
|
426
|
-
/**
|
|
427
|
-
* Handles click event inside of input
|
|
428
|
-
* @internal
|
|
429
|
-
*/
|
|
430
|
-
/**
|
|
431
|
-
* Handles click event inside of input
|
|
432
|
-
* \@internal
|
|
433
|
-
* @return {?}
|
|
434
|
-
*/
|
|
435
|
-
InputDateTimeSelectorComponent.prototype.handleClick = /**
|
|
436
|
-
* Handles click event inside of input
|
|
437
|
-
* \@internal
|
|
438
|
-
* @return {?}
|
|
439
|
-
*/
|
|
440
|
-
function () {
|
|
441
|
-
this._pickerRequest.next(true);
|
|
442
|
-
if (!this._dateApiValue) {
|
|
443
|
-
return;
|
|
444
|
-
}
|
|
445
|
-
/** @type {?} */
|
|
446
|
-
var result = (/** @type {?} */ (this._parser)).parse(this.input.value, (/** @type {?} */ (this.input.selectionStart)));
|
|
447
|
-
this.input.selectionStart = result.positionFrom;
|
|
448
|
-
this.input.selectionEnd = result.positionTo;
|
|
449
|
-
};
|
|
450
|
-
/**
|
|
451
|
-
* Handles keyboard events
|
|
452
|
-
* @param event - Keyboard event that occured
|
|
453
|
-
* @param input - Html input element that holds current value and selection
|
|
454
|
-
* @internal
|
|
455
|
-
*/
|
|
456
|
-
/**
|
|
457
|
-
* Handles keyboard events
|
|
458
|
-
* \@internal
|
|
459
|
-
* @param {?} event - Keyboard event that occured
|
|
460
|
-
* @return {?}
|
|
461
|
-
*/
|
|
462
|
-
InputDateTimeSelectorComponent.prototype.handleKeyboard = /**
|
|
463
|
-
* Handles keyboard events
|
|
464
|
-
* \@internal
|
|
465
|
-
* @param {?} event - Keyboard event that occured
|
|
466
|
-
* @return {?}
|
|
467
|
-
*/
|
|
468
|
-
function (event) {
|
|
469
|
-
var _a;
|
|
470
|
-
if (!((_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.isValid())) {
|
|
471
|
-
return;
|
|
472
|
-
}
|
|
473
|
-
switch (event.key) {
|
|
474
|
-
case 'ArrowRight':
|
|
475
|
-
case 'ArrowLeft':
|
|
476
|
-
{
|
|
477
|
-
event.preventDefault();
|
|
478
|
-
event.stopPropagation();
|
|
479
|
-
/** @type {?} */
|
|
480
|
-
var result = event.key == 'ArrowLeft' ? (/** @type {?} */ (this._parser)).previous(this.input.value, (/** @type {?} */ (this.input.selectionStart))) : (/** @type {?} */ (this._parser)).next(this.input.value, (/** @type {?} */ (this.input.selectionStart)));
|
|
481
|
-
if (result) {
|
|
482
|
-
this.input.selectionStart = result.positionFrom;
|
|
483
|
-
this.input.selectionEnd = result.positionTo;
|
|
484
|
-
}
|
|
485
|
-
break;
|
|
486
|
-
}
|
|
487
|
-
case 'ArrowUp':
|
|
488
|
-
case 'ArrowDown':
|
|
489
|
-
{
|
|
490
|
-
event.preventDefault();
|
|
491
|
-
event.stopPropagation();
|
|
492
|
-
/** @type {?} */
|
|
493
|
-
var result = (/** @type {?} */ (this._parser)).parse(this.input.value, (/** @type {?} */ (this.input.selectionStart)));
|
|
494
|
-
/** @type {?} */
|
|
495
|
-
var selectionStart = result.positionFrom;
|
|
496
|
-
this._stepChangeValue(result.part, event.key == 'ArrowUp');
|
|
497
|
-
this._show();
|
|
498
|
-
result = (/** @type {?} */ (this._parser)).parse(this.input.value, selectionStart);
|
|
499
|
-
this.input.selectionStart = result.positionFrom;
|
|
500
|
-
this.input.selectionEnd = result.positionTo;
|
|
501
|
-
break;
|
|
502
|
-
}
|
|
503
|
-
case 'Tab':
|
|
504
|
-
{
|
|
505
|
-
/** @type {?} */
|
|
506
|
-
var result = event.shiftKey ? (/** @type {?} */ (this._parser)).previous(this.input.value, (/** @type {?} */ (this.input.selectionStart))) : (/** @type {?} */ (this._parser)).next(this.input.value, (/** @type {?} */ (this.input.selectionStart)));
|
|
507
|
-
if (result) {
|
|
508
|
-
event.preventDefault();
|
|
509
|
-
event.stopPropagation();
|
|
510
|
-
this.input.selectionStart = result.positionFrom;
|
|
511
|
-
this.input.selectionEnd = result.positionTo;
|
|
512
|
-
}
|
|
513
|
-
break;
|
|
514
|
-
}
|
|
515
|
-
case 'a':
|
|
516
|
-
{
|
|
517
|
-
if (event.ctrlKey) {
|
|
518
|
-
event.preventDefault();
|
|
519
|
-
event.stopPropagation();
|
|
520
|
-
}
|
|
521
|
-
break;
|
|
522
|
-
}
|
|
523
|
-
case 'Backspace':
|
|
524
|
-
{
|
|
525
|
-
this._clearValue();
|
|
526
|
-
this._valueChange.next();
|
|
527
|
-
break;
|
|
528
|
-
}
|
|
529
|
-
case 'Escape':
|
|
530
|
-
{
|
|
531
|
-
this._pickerRequest.next(false);
|
|
532
|
-
break;
|
|
533
|
-
}
|
|
534
|
-
case ' ':
|
|
535
|
-
{
|
|
536
|
-
if (event.ctrlKey) {
|
|
537
|
-
this._pickerRequest.next(true);
|
|
538
|
-
}
|
|
539
|
-
break;
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
};
|
|
543
|
-
//######################### protected methods #########################
|
|
544
|
-
/**
|
|
545
|
-
* Shows current value in input
|
|
546
|
-
*/
|
|
547
|
-
//######################### protected methods #########################
|
|
548
|
-
/**
|
|
549
|
-
* Shows current value in input
|
|
550
|
-
* @protected
|
|
551
|
-
* @return {?}
|
|
552
|
-
*/
|
|
553
|
-
InputDateTimeSelectorComponent.prototype._show =
|
|
554
|
-
//######################### protected methods #########################
|
|
555
|
-
/**
|
|
556
|
-
* Shows current value in input
|
|
557
|
-
* @protected
|
|
558
|
-
* @return {?}
|
|
559
|
-
*/
|
|
560
|
-
function () {
|
|
561
|
-
var _a, _b;
|
|
562
|
-
if (this._isValid) {
|
|
563
|
-
this.currentValue = (_b = (_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.format(this._format)) !== null && _b !== void 0 ? _b : null;
|
|
564
|
-
}
|
|
565
|
-
};
|
|
566
|
-
/**
|
|
567
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
568
|
-
*/
|
|
569
|
-
/**
|
|
570
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
571
|
-
* @protected
|
|
572
|
-
* @return {?}
|
|
573
|
-
*/
|
|
574
|
-
InputDateTimeSelectorComponent.prototype._minMaxConstraintTest = /**
|
|
575
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
576
|
-
* @protected
|
|
577
|
-
* @return {?}
|
|
578
|
-
*/
|
|
579
|
-
function () {
|
|
580
|
-
return (!!this._minValue && (/** @type {?} */ (this._dateApiValue)).isBefore(this._minValue)) ||
|
|
581
|
-
(!!this._maxValue && (/** @type {?} */ (this._dateApiValue)).isAfter(this._maxValue));
|
|
582
|
-
};
|
|
583
|
-
/**
|
|
584
|
-
* Runs code with check whether min max constrains was broken
|
|
585
|
-
* @param code - Code that should be executed which can change current value
|
|
586
|
-
*/
|
|
587
|
-
/**
|
|
588
|
-
* Runs code with check whether min max constrains was broken
|
|
589
|
-
* @protected
|
|
590
|
-
* @param {?} code - Code that should be executed which can change current value
|
|
591
|
-
* @return {?}
|
|
592
|
-
*/
|
|
593
|
-
InputDateTimeSelectorComponent.prototype._withMinMaxConstraint = /**
|
|
594
|
-
* Runs code with check whether min max constrains was broken
|
|
595
|
-
* @protected
|
|
596
|
-
* @param {?} code - Code that should be executed which can change current value
|
|
597
|
-
* @return {?}
|
|
598
|
-
*/
|
|
599
|
-
function (code) {
|
|
600
|
-
var _a;
|
|
601
|
-
(/** @type {?} */ (this._dateApiValue)).updateOriginal();
|
|
602
|
-
code();
|
|
603
|
-
//min value constraint failure
|
|
604
|
-
if (this._minMaxConstraintTest()) {
|
|
605
|
-
(_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.resetOriginal();
|
|
606
|
-
return;
|
|
607
|
-
}
|
|
608
|
-
this._valueChange.next();
|
|
609
|
-
};
|
|
610
|
-
/**
|
|
611
|
-
* Clears current value
|
|
612
|
-
*/
|
|
613
|
-
/**
|
|
614
|
-
* Clears current value
|
|
615
|
-
* @protected
|
|
616
|
-
* @return {?}
|
|
617
|
-
*/
|
|
618
|
-
InputDateTimeSelectorComponent.prototype._clearValue = /**
|
|
619
|
-
* Clears current value
|
|
620
|
-
* @protected
|
|
621
|
-
* @return {?}
|
|
622
|
-
*/
|
|
623
|
-
function () {
|
|
624
|
-
this._dateApiValue = null;
|
|
625
|
-
this._isValid = true;
|
|
626
|
-
this.currentValue = null;
|
|
627
|
-
};
|
|
628
|
-
/**
|
|
629
|
-
* Changes current value of date for for specified part by single step
|
|
630
|
-
* @param part - Part of date that should be changed
|
|
631
|
-
* @param increment - Indication whether value should be incremented or decremented
|
|
632
|
-
*/
|
|
633
|
-
/**
|
|
634
|
-
* Changes current value of date for for specified part by single step
|
|
635
|
-
* @protected
|
|
636
|
-
* @param {?} part - Part of date that should be changed
|
|
637
|
-
* @param {?} increment - Indication whether value should be incremented or decremented
|
|
638
|
-
* @return {?}
|
|
639
|
-
*/
|
|
640
|
-
InputDateTimeSelectorComponent.prototype._stepChangeValue = /**
|
|
641
|
-
* Changes current value of date for for specified part by single step
|
|
642
|
-
* @protected
|
|
643
|
-
* @param {?} part - Part of date that should be changed
|
|
644
|
-
* @param {?} increment - Indication whether value should be incremented or decremented
|
|
645
|
-
* @return {?}
|
|
646
|
-
*/
|
|
647
|
-
function (part, increment) {
|
|
648
|
-
var _this = this;
|
|
649
|
-
var _a;
|
|
650
|
-
if (!((_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.isValid())) {
|
|
651
|
-
return;
|
|
652
|
-
}
|
|
653
|
-
switch (part) {
|
|
654
|
-
case 'y':
|
|
655
|
-
case 'Y':
|
|
656
|
-
{
|
|
657
|
-
this._withMinMaxConstraint((/**
|
|
658
|
-
* @return {?}
|
|
659
|
-
*/
|
|
660
|
-
function () { return increment ? (/** @type {?} */ (_this._dateApiValue)).addYears(1) : (/** @type {?} */ (_this._dateApiValue)).subtractYears(1); }));
|
|
661
|
-
break;
|
|
662
|
-
}
|
|
663
|
-
case 'Q':
|
|
664
|
-
{
|
|
665
|
-
break;
|
|
666
|
-
}
|
|
667
|
-
case 'M':
|
|
668
|
-
{
|
|
669
|
-
this._withMinMaxConstraint((/**
|
|
670
|
-
* @return {?}
|
|
671
|
-
*/
|
|
672
|
-
function () { return increment ? (/** @type {?} */ (_this._dateApiValue)).addMonths(1) : (/** @type {?} */ (_this._dateApiValue)).subtractMonths(1); }));
|
|
673
|
-
break;
|
|
674
|
-
}
|
|
675
|
-
case 'w':
|
|
676
|
-
{
|
|
677
|
-
this._withMinMaxConstraint((/**
|
|
678
|
-
* @return {?}
|
|
679
|
-
*/
|
|
680
|
-
function () { return increment ? (/** @type {?} */ (_this._dateApiValue)).addWeeks(1) : (/** @type {?} */ (_this._dateApiValue)).subtractWeeks(1); }));
|
|
681
|
-
break;
|
|
682
|
-
}
|
|
683
|
-
case 'd':
|
|
684
|
-
case 'D':
|
|
685
|
-
{
|
|
686
|
-
this._withMinMaxConstraint((/**
|
|
687
|
-
* @return {?}
|
|
688
|
-
*/
|
|
689
|
-
function () { return increment ? (/** @type {?} */ (_this._dateApiValue)).addDays(1) : (/** @type {?} */ (_this._dateApiValue)).subtractDays(1); }));
|
|
690
|
-
break;
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
};
|
|
694
|
-
InputDateTimeSelectorComponent.decorators = [
|
|
695
|
-
{ type: Component, args: [{
|
|
696
|
-
selector: 'input-date-time-selector',
|
|
697
|
-
template: "<input type=\"text\"\r\n #input\r\n (focus)=\"handleFocus()\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"handleInput()\"\r\n (click)=\"handleClick()\"\r\n (select)=\"handleSelect()\"\r\n (keydown)=\"handleKeyboard($any($event))\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\">",
|
|
698
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
699
|
-
styles: [":host\r\n{\r\n display: block;\r\n}\r\n\r\ninput\r\n{\r\n width: 100%;\r\n}"]
|
|
700
|
-
},] }
|
|
701
|
-
];
|
|
702
|
-
/** @nocollapse */
|
|
703
|
-
InputDateTimeSelectorComponent.ctorParameters = function () { return [
|
|
704
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DATE_API,] }] },
|
|
705
|
-
{ type: DatePositionParserService },
|
|
706
|
-
{ type: DateValueProvider },
|
|
707
|
-
{ type: ChangeDetectorRef }
|
|
708
|
-
]; };
|
|
709
|
-
InputDateTimeSelectorComponent.propDecorators = {
|
|
710
|
-
inputElement: [{ type: ViewChild, args: ['input', { static: true },] }]
|
|
711
|
-
};
|
|
712
|
-
return InputDateTimeSelectorComponent;
|
|
713
|
-
}());
|
|
714
|
-
export { InputDateTimeSelectorComponent };
|
|
715
|
-
if (false) {
|
|
716
|
-
/**
|
|
717
|
-
* Occurs when value changes
|
|
718
|
-
* @type {?}
|
|
719
|
-
* @protected
|
|
720
|
-
*/
|
|
721
|
-
InputDateTimeSelectorComponent.prototype._valueChange;
|
|
722
|
-
/**
|
|
723
|
-
* Occurs when selector is touched by user
|
|
724
|
-
* @type {?}
|
|
725
|
-
* @protected
|
|
726
|
-
*/
|
|
727
|
-
InputDateTimeSelectorComponent.prototype._touched;
|
|
728
|
-
/**
|
|
729
|
-
* Occurs when selector requires picker to be displayed or hidden
|
|
730
|
-
* @type {?}
|
|
731
|
-
* @protected
|
|
732
|
-
*/
|
|
733
|
-
InputDateTimeSelectorComponent.prototype._pickerRequest;
|
|
734
|
-
/**
|
|
735
|
-
* Instance of parser created for specific format
|
|
736
|
-
* @type {?}
|
|
737
|
-
* @protected
|
|
738
|
-
*/
|
|
739
|
-
InputDateTimeSelectorComponent.prototype._parser;
|
|
740
|
-
/**
|
|
741
|
-
* Currently used format for displaying data
|
|
742
|
-
* @type {?}
|
|
743
|
-
* @protected
|
|
744
|
-
*/
|
|
745
|
-
InputDateTimeSelectorComponent.prototype._format;
|
|
746
|
-
/**
|
|
747
|
-
* Current value representation as date api wrapper
|
|
748
|
-
* @type {?}
|
|
749
|
-
* @protected
|
|
750
|
-
*/
|
|
751
|
-
InputDateTimeSelectorComponent.prototype._dateApiValue;
|
|
752
|
-
/**
|
|
753
|
-
* Indication whether is current value valid value
|
|
754
|
-
* @type {?}
|
|
755
|
-
* @protected
|
|
756
|
-
*/
|
|
757
|
-
InputDateTimeSelectorComponent.prototype._isValid;
|
|
758
|
-
/**
|
|
759
|
-
* Minimal possible value that can be picked
|
|
760
|
-
* @type {?}
|
|
761
|
-
* @protected
|
|
762
|
-
*/
|
|
763
|
-
InputDateTimeSelectorComponent.prototype._minValue;
|
|
764
|
-
/**
|
|
765
|
-
* Maximal possible value that can be picked
|
|
766
|
-
* @type {?}
|
|
767
|
-
* @protected
|
|
768
|
-
*/
|
|
769
|
-
InputDateTimeSelectorComponent.prototype._maxValue;
|
|
770
|
-
/**
|
|
771
|
-
* Gets or sets placeholder that is displayed when there is no value selected
|
|
772
|
-
* @type {?}
|
|
773
|
-
*/
|
|
774
|
-
InputDateTimeSelectorComponent.prototype.placeholder;
|
|
775
|
-
/**
|
|
776
|
-
* Indication whether is input disabled
|
|
777
|
-
* \@internal
|
|
778
|
-
* @type {?}
|
|
779
|
-
*/
|
|
780
|
-
InputDateTimeSelectorComponent.prototype.disabled;
|
|
781
|
-
/**
|
|
782
|
-
* Instance of html input element
|
|
783
|
-
* \@internal
|
|
784
|
-
* @type {?}
|
|
785
|
-
*/
|
|
786
|
-
InputDateTimeSelectorComponent.prototype.inputElement;
|
|
787
|
-
/**
|
|
788
|
-
* @type {?}
|
|
789
|
-
* @protected
|
|
790
|
-
*/
|
|
791
|
-
InputDateTimeSelectorComponent.prototype._dateApi;
|
|
792
|
-
/**
|
|
793
|
-
* @type {?}
|
|
794
|
-
* @protected
|
|
795
|
-
*/
|
|
796
|
-
InputDateTimeSelectorComponent.prototype._parserSvc;
|
|
797
|
-
/**
|
|
798
|
-
* @type {?}
|
|
799
|
-
* @protected
|
|
800
|
-
*/
|
|
801
|
-
InputDateTimeSelectorComponent.prototype._valueProvider;
|
|
802
|
-
/**
|
|
803
|
-
* @type {?}
|
|
804
|
-
* @protected
|
|
805
|
-
*/
|
|
806
|
-
InputDateTimeSelectorComponent.prototype._changeDetector;
|
|
807
|
-
}
|
|
808
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXREYXRlVGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VsZWN0b3IvY29tcG9uZW50cy9pbnB1dERhdGVUaW1lL2lucHV0RGF0ZVRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFNOUU7SUFxTEksaUVBQWlFO0lBQ2pFLHdDQUF3QyxRQUF3QixFQUMxQyxVQUFxQyxFQUNyQyxjQUF3QyxFQUN4QyxlQUFrQztRQUhoQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUEyQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1COzs7OztRQTNLOUMsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQzs7OztRQUtsRCxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7Ozs7UUFLOUMsbUJBQWMsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7OztRQUsxRCxZQUFPLEdBQTRCLElBQUksQ0FBQzs7OztRQUt4QyxZQUFPLEdBQVcsRUFBRSxDQUFDOzs7O1FBS3JCLGtCQUFhLEdBQThCLElBQUksQ0FBQzs7OztRQUtoRCxhQUFRLEdBQVksSUFBSSxDQUFDOzs7O1FBS3pCLGNB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TGdCLE1BQU0sU0FBQyxRQUFRO2dCQTdMeEIseUJBQXlCO2dCQUN6QixpQkFBaUI7Z0JBUDJCLGlCQUFpQjs7OytCQXNLaEUsU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7O0lBMFl0QyxxQ0FBQztDQUFBLEFBbmlCRCxJQW1pQkM7U0E1aEJZLDhCQUE4Qjs7Ozs7OztJQU92QyxzREFBNEQ7Ozs7OztJQUs1RCxrREFBd0Q7Ozs7OztJQUt4RCx3REFBb0U7Ozs7OztJQUtwRSxpREFBa0Q7Ozs7OztJQUtsRCxpREFBK0I7Ozs7OztJQUsvQix1REFBMEQ7Ozs7OztJQUsxRCxrREFBbUM7Ozs7OztJQUtuQyxtREFBdUM7Ozs7OztJQUt2QyxtREFBdUM7Ozs7O0lBeUJ2QyxxREFBcUM7Ozs7OztJQWtFckMsa0RBQWlDOzs7Ozs7SUFRakMsc0RBQ21EOzs7OztJQTRCdkMsa0RBQW9EOzs7OztJQUNwRCxvREFBK0M7Ozs7O0lBQy9DLHdEQUFrRDs7Ozs7SUFDbEQseURBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbmplY3QsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtEYXRlVGltZVZhbHVlfSBmcm9tICcuLi8uLi8uLi9taXNjL2RhdGV0aW1lLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9BUEl9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlQXBpLCBEYXRlQXBpT2JqZWN0LCBEYXRlUG9zaXRpb25QYXJzZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtEYXRlUG9zaXRpb25QYXJzZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRlUG9zaXRpb25QYXJzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7RGF0ZVZhbHVlUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RhdGVWYWx1ZVByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RhdGVUaW1lU2VsZWN0b3J9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVTZWxlY3Rvci5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGFzIGRhdGV0aW1lIHNlbGVjdG9yIHdpdGggaW5wdXRcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiAnaW5wdXQtZGF0ZS10aW1lLXNlbGVjdG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnaW5wdXREYXRlVGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnaW5wdXREYXRlVGltZS5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlID0gYW55PiBpbXBsZW1lbnRzIERhdGVUaW1lU2VsZWN0b3I8VERhdGU+XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgZmllbGRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUNoYW5nZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIHJlcXVpcmVzIHBpY2tlciB0byBiZSBkaXNwbGF5ZWQgb3IgaGlkZGVuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcGlja2VyUmVxdWVzdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBwYXJzZXIgY3JlYXRlZCBmb3Igc3BlY2lmaWMgZm9ybWF0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcGFyc2VyOiBEYXRlUG9zaXRpb25QYXJzZXJ8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50bHkgdXNlZCBmb3JtYXQgZm9yIGRpc3BsYXlpbmcgZGF0YVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Zvcm1hdDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIHJlcHJlc2VudGF0aW9uIGFzIGRhdGUgYXBpIHdyYXBwZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9kYXRlQXBpVmFsdWU6IG51bGx8RGF0ZUFwaU9iamVjdDxURGF0ZT4gPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGlvbiB3aGV0aGVyIGlzIGN1cnJlbnQgdmFsdWUgdmFsaWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9pc1ZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1pbmltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbWluVmFsdWU6IFREYXRlfG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9tYXhWYWx1ZTogVERhdGV8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW1wbGVtZW50YXRpb24gb2YgRGF0ZVRpbWVTZWxlY3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgY3VycmVudGx5IHVzZWQgZm9ybWF0IGZvciBkaXNwbGF5aW5nIGRhdGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBmb3JtYXQoKTogc3RyaW5nXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpXHJcbiAgICB7XHJcbiAgICAgICAgLy9vbmx5IGlmIGZvcm1hdCBjaGFuZ2VzXHJcbiAgICAgICAgaWYodGhpcy5fZm9ybWF0ICE9IHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fcGFyc2VyID0gdGhpcy5fcGFyc2VyU3ZjLmNyZWF0ZVBhcnNlcih0aGlzLl9kYXRlQXBpLmdldEZvcm1hdCh2YWx1ZSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgcGxhY2Vob2xkZXIgdGhhdCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZ3x1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX2RhdGVBcGlWYWx1ZSB8fCAhdGhpcy5faXNWYWxpZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlUHJvdmlkZXIuZ2V0VmFsdWUodGhpcy5fZGF0ZUFwaVZhbHVlLnZhbHVlLCB0aGlzLl9mb3JtYXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBmb3JtYXR0ZWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmd8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIGlmKCF0aGlzLl9pc1ZhbGlkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZGljYXRpb24gd2hldGhlciBpcyBjdXJyZW50IHZhbHVlIHZhbGlkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIHJlcXVpcmVzIHBpY2tlciB0byBiZSBkaXNwbGF5ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBwaWNrZXJSZXF1ZXN0KCk6IE9ic2VydmFibGU8Ym9vbGVhbj5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGlja2VyUmVxdWVzdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgaW5wdXQgZGlzYWJsZWRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBjaGlsZHJlbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBodG1sIGlucHV0IGVsZW1lbnRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KVxyXG4gICAgcHVibGljIGlucHV0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBwcm9wZXJ0aWVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBzdHJpbmcgcmVwcmVzZW50YXRpb24gY3VycmVudCBvZiB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBzdHJpbmd8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0LnZhbHVlIHx8IG51bGw7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgc2V0IGN1cnJlbnRWYWx1ZSh2YWx1ZTogc3RyaW5nfG51bGwpXHJcbiAgICB7XHJcbiAgICAgICAgaWYodGhpcy5pbnB1dClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGlucHV0IGVsZW1lbnQgdXNlZCBmb3IgaGFuZGxpbmcgZGF0ZSB0aW1lIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgaW5wdXQoKTogSFRNTElucHV0RWxlbWVudFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0RWxlbWVudCEubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChEQVRFX0FQSSkgcHJvdGVjdGVkIF9kYXRlQXBpOiBEYXRlQXBpPFREYXRlPixcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfcGFyc2VyU3ZjOiBEYXRlUG9zaXRpb25QYXJzZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlVGltZVNlbGVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE1pbmltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNaW5WYWx1ZSh2YWx1ZTogVERhdGV8bnVsbCk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gTWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldE1heFZhbHVlKHZhbHVlOiBURGF0ZXxudWxsKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHZhbHVlIG9mIGRhdGV0aW1lIHNlbGVjdG9yXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSBzZXQgdG8gdGhpcyBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYodmFsdWU/LmZyb20pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlPy5mcm9tLCB0aGlzLl9mb3JtYXQpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJWYWx1ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYXMgJ2NvbnRyb2wnIGRpc2FibGVkXHJcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBJbmRpY2F0aW9uIHdoZXRoZXIgc2V0cyB2YWx1ZSBhcyBkaXNhYmxlZCwgaWYgb21pdHRlZCBpdCBpcyBzYW1lIGFzIGRpc2FibGVkIHNldCB0byB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwbGljaXRseSBydW5zIGludmFsaWRhdGlvbiBvZiBjb250ZW50IChjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW52YWxpZGF0ZVZpc3VhbHMoKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGdhaW5pbmcgb2YgZm9jdXNcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9jdXMoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dCh0cnVlKTtcclxuXHJcbiAgICAgICAgLy9ubyB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVmFsdWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX2lzVmFsaWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zaG93KCk7XHJcblxyXG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9wYXJzZXIhLnBhcnNlKHRoaXMuY3VycmVudFZhbHVlISwgdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydCEpO1xyXG5cclxuICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0ID0gcmVzdWx0LnBvc2l0aW9uRnJvbTtcclxuICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZCA9IHJlc3VsdC5wb3NpdGlvblRvO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBibHVyIG9uIGlucHV0XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUJsdXIoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHVzZXIgaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlSW5wdXQoKVxyXG4gICAge1xyXG4gICAgICAgIC8vZW1wdHkgdmFsdWVcclxuICAgICAgICBpZighdGhpcy5jdXJyZW50VmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9jbGVhclZhbHVlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2RhdGVBcGlWYWx1ZSA9IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodGhpcy5jdXJyZW50VmFsdWUsIHRoaXMuX2Zvcm1hdCk7XHJcbiAgICAgICAgdGhpcy5faXNWYWxpZCA9IHRoaXMuX2RhdGVBcGlWYWx1ZS5pc1ZhbGlkKCk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBzZWxlY3Rpb24gb2YgdGV4dCBpbnNpZGUgb2YgaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlU2VsZWN0KClcclxuICAgIHtcclxuICAgICAgICAvL2hhbmRsZXMgd2hlbiBhbGwgdGV4dCBpcyBzZWxlY3RlZFxyXG4gICAgICAgIGlmKHRoaXMuY3VycmVudFZhbHVlICYmIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT0gMCAmJiB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZCA9PSB0aGlzLmlucHV0LnZhbHVlLmxlbmd0aClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9wYXJzZXIhLnBhcnNlKHRoaXMuaW5wdXQudmFsdWUsIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQhKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQgPSByZXN1bHQucG9zaXRpb25Gcm9tO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZCA9IHJlc3VsdC5wb3NpdGlvblRvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY2xpY2sgZXZlbnQgaW5zaWRlIG9mIGlucHV0XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUNsaWNrKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9waWNrZXJSZXF1ZXN0Lm5leHQodHJ1ZSk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fcGFyc2VyIS5wYXJzZSh0aGlzLmlucHV0LnZhbHVlLCB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0ISk7XHJcblxyXG4gICAgICAgIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQgPSByZXN1bHQucG9zaXRpb25Gcm9tO1xyXG4gICAgICAgIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kID0gcmVzdWx0LnBvc2l0aW9uVG87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50c1xyXG4gICAgICogQHBhcmFtIGV2ZW50IC0gS2V5Ym9hcmQgZXZlbnQgdGhhdCBvY2N1cmVkXHJcbiAgICAgKiBAcGFyYW0gaW5wdXQgLSBIdG1sIGlucHV0IGVsZW1lbnQgdGhhdCBob2xkcyBjdXJyZW50IHZhbHVlIGFuZCBzZWxlY3Rpb25cclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlS2V5Ym9hcmQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX2RhdGVBcGlWYWx1ZT8uaXNWYWxpZCgpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoKGV2ZW50LmtleSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGV2ZW50LmtleSA9PSAnQXJyb3dMZWZ0JyA/IHRoaXMuX3BhcnNlciEucHJldmlvdXModGhpcy5pbnB1dC52YWx1ZSwgdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydCEpIDogdGhpcy5fcGFyc2VyIS5uZXh0KHRoaXMuaW5wdXQudmFsdWUsIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQhKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZihyZXN1bHQpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydCA9IHJlc3VsdC5wb3NpdGlvbkZyb207XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmQgPSByZXN1bHQucG9zaXRpb25UbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9wYXJzZXIhLnBhcnNlKHRoaXMuaW5wdXQudmFsdWUsIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQhKTtcclxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3Rpb25TdGFydCA9IHJlc3VsdC5wb3NpdGlvbkZyb207XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3RlcENoYW5nZVZhbHVlKHJlc3VsdC5wYXJ0LCBldmVudC5rZXkgPT0gJ0Fycm93VXAnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLl9wYXJzZXIhLnBhcnNlKHRoaXMuaW5wdXQudmFsdWUsIHNlbGVjdGlvblN0YXJ0KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0ID0gcmVzdWx0LnBvc2l0aW9uRnJvbTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kID0gcmVzdWx0LnBvc2l0aW9uVG87XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGV2ZW50LnNoaWZ0S2V5ID8gdGhpcy5fcGFyc2VyIS5wcmV2aW91cyh0aGlzLmlucHV0LnZhbHVlLCB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0ISkgOiB0aGlzLl9wYXJzZXIhLm5leHQodGhpcy5pbnB1dC52YWx1ZSwgdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydCEpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmKHJlc3VsdClcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0ID0gcmVzdWx0LnBvc2l0aW9uRnJvbTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZCA9IHJlc3VsdC5wb3NpdGlvblRvO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ2EnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZihldmVudC5jdHJsS2V5KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnQmFja3NwYWNlJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2xlYXJWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UubmV4dCgpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dChmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnICc6XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGlmKGV2ZW50LmN0cmxLZXkpXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGlja2VyUmVxdWVzdC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBjdXJyZW50IHZhbHVlIGluIGlucHV0XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfc2hvdygpXHJcbiAgICB7XHJcbiAgICAgICAgaWYodGhpcy5faXNWYWxpZClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gdGhpcy5fZGF0ZUFwaVZhbHVlPy5mb3JtYXQodGhpcy5fZm9ybWF0KSA/PyBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlc3RzIHdoZXRoZXIgYXJlIG1pbiBvciBtYXggY29uc3RyYWludCBicm9rZW4sIHJldHVybnMgdHJ1ZSBpZiBjb25zdHJhaW50IGlzIGJyb2tlblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pbk1heENvbnN0cmFpbnRUZXN0KCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gKCEhdGhpcy5fbWluVmFsdWUgJiYgdGhpcy5fZGF0ZUFwaVZhbHVlIS5pc0JlZm9yZSh0aGlzLl9taW5WYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICghIXRoaXMuX21heFZhbHVlICYmIHRoaXMuX2RhdGVBcGlWYWx1ZSEuaXNBZnRlcih0aGlzLl9tYXhWYWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUnVucyBjb2RlIHdpdGggY2hlY2sgd2hldGhlciBtaW4gbWF4IGNvbnN0cmFpbnMgd2FzIGJyb2tlblxyXG4gICAgICogQHBhcmFtIGNvZGUgLSBDb2RlIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHdoaWNoIGNhbiBjaGFuZ2UgY3VycmVudCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3dpdGhNaW5NYXhDb25zdHJhaW50KGNvZGU6ICgpID0+IHZvaWQpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlIS51cGRhdGVPcmlnaW5hbCgpO1xyXG5cclxuICAgICAgICBjb2RlKCk7XHJcblxyXG4gICAgICAgIC8vbWluIHZhbHVlIGNvbnN0cmFpbnQgZmFpbHVyZVxyXG4gICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWU/LnJlc2V0T3JpZ2luYWwoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENsZWFycyBjdXJyZW50IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfY2xlYXJWYWx1ZSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGFuZ2VzIGN1cnJlbnQgdmFsdWUgb2YgZGF0ZSBmb3IgZm9yIHNwZWNpZmllZCBwYXJ0IGJ5IHNpbmdsZSBzdGVwXHJcbiAgICAgKiBAcGFyYW0gcGFydCAtIFBhcnQgb2YgZGF0ZSB0aGF0IHNob3VsZCBiZSBjaGFuZ2VkXHJcbiAgICAgKiBAcGFyYW0gaW5jcmVtZW50IC0gSW5kaWNhdGlvbiB3aGV0aGVyIHZhbHVlIHNob3VsZCBiZSBpbmNyZW1lbnRlZCBvciBkZWNyZW1lbnRlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3N0ZXBDaGFuZ2VWYWx1ZShwYXJ0OiBzdHJpbmcsIGluY3JlbWVudDogYm9vbGVhbilcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fZGF0ZUFwaVZhbHVlPy5pc1ZhbGlkKCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzd2l0Y2gocGFydClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3knOlxyXG4gICAgICAgICAgICBjYXNlICdZJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fd2l0aE1pbk1heENvbnN0cmFpbnQoKCkgPT4gaW5jcmVtZW50ID8gdGhpcy5fZGF0ZUFwaVZhbHVlIS5hZGRZZWFycygxKSA6IHRoaXMuX2RhdGVBcGlWYWx1ZSEuc3VidHJhY3RZZWFycygxKSk7XHJcblxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnUSc6XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ00nOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl93aXRoTWluTWF4Q29uc3RyYWludCgoKSA9PiBpbmNyZW1lbnQgPyB0aGlzLl9kYXRlQXBpVmFsdWUhLmFkZE1vbnRocygxKSA6IHRoaXMuX2RhdGVBcGlWYWx1ZSEuc3VidHJhY3RNb250aHMoMSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3cnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl93aXRoTWluTWF4Q29uc3RyYWludCgoKSA9PiBpbmNyZW1lbnQgPyB0aGlzLl9kYXRlQXBpVmFsdWUhLmFkZFdlZWtzKDEpIDogdGhpcy5fZGF0ZUFwaVZhbHVlIS5zdWJ0cmFjdFdlZWtzKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdkJzpcclxuICAgICAgICAgICAgY2FzZSAnRCc6XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3dpdGhNaW5NYXhDb25zdHJhaW50KCgpID0+IGluY3JlbWVudCA/IHRoaXMuX2RhdGVBcGlWYWx1ZSEuYWRkRGF5cygxKSA6IHRoaXMuX2RhdGVBcGlWYWx1ZSEuc3VidHJhY3REYXlzKDEpKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|