@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
package/dist/es5/src/selector/components/simpleInputDateTime/simpleInputDateTime.component.js
DELETED
|
@@ -1,656 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/selector/components/simpleInputDateTime/simpleInputDateTime.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 { DateValueProvider } from '../../../services/dateValueProvider.service';
|
|
10
|
-
/**
|
|
11
|
-
* Component used as datetime selector with simple input
|
|
12
|
-
* @template TDate
|
|
13
|
-
*/
|
|
14
|
-
var SimpleInputDateTimeSelectorComponent = /** @class */ (function () {
|
|
15
|
-
//######################### constructor #########################
|
|
16
|
-
function SimpleInputDateTimeSelectorComponent(_dateApi, _valueProvider, _changeDetector) {
|
|
17
|
-
this._dateApi = _dateApi;
|
|
18
|
-
this._valueProvider = _valueProvider;
|
|
19
|
-
this._changeDetector = _changeDetector;
|
|
20
|
-
//######################### protected fields #########################
|
|
21
|
-
/**
|
|
22
|
-
* Occurs when value changes
|
|
23
|
-
*/
|
|
24
|
-
this._valueChange = new Subject();
|
|
25
|
-
/**
|
|
26
|
-
* Occurs when selector is touched by user
|
|
27
|
-
*/
|
|
28
|
-
this._touched = new Subject();
|
|
29
|
-
/**
|
|
30
|
-
* Occurs when selector requires picker to be displayed or hidden
|
|
31
|
-
*/
|
|
32
|
-
this._pickerRequest = new Subject();
|
|
33
|
-
/**
|
|
34
|
-
* Currently used format for displaying data
|
|
35
|
-
*/
|
|
36
|
-
this._format = '';
|
|
37
|
-
/**
|
|
38
|
-
* Current value representation as date api wrapper
|
|
39
|
-
*/
|
|
40
|
-
this._dateApiValue = null;
|
|
41
|
-
/**
|
|
42
|
-
* Indication whether is current value valid value
|
|
43
|
-
*/
|
|
44
|
-
this._isValid = true;
|
|
45
|
-
/**
|
|
46
|
-
* Minimal possible value that can be picked
|
|
47
|
-
*/
|
|
48
|
-
this._minValue = null;
|
|
49
|
-
/**
|
|
50
|
-
* Maximal possible value that can be picked
|
|
51
|
-
*/
|
|
52
|
-
this._maxValue = null;
|
|
53
|
-
//######################### public properties - template bindings #########################
|
|
54
|
-
/**
|
|
55
|
-
* Indication whether is input disabled
|
|
56
|
-
* \@internal
|
|
57
|
-
*/
|
|
58
|
-
this.disabled = false;
|
|
59
|
-
}
|
|
60
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "format", {
|
|
61
|
-
//######################### public properties - implementation of DateTimeSelector #########################
|
|
62
|
-
/**
|
|
63
|
-
* Gets or sets currently used format for displaying data
|
|
64
|
-
*/
|
|
65
|
-
get:
|
|
66
|
-
//######################### public properties - implementation of DateTimeSelector #########################
|
|
67
|
-
/**
|
|
68
|
-
* Gets or sets currently used format for displaying data
|
|
69
|
-
* @return {?}
|
|
70
|
-
*/
|
|
71
|
-
function () {
|
|
72
|
-
return this._format;
|
|
73
|
-
},
|
|
74
|
-
set: /**
|
|
75
|
-
* @param {?} value
|
|
76
|
-
* @return {?}
|
|
77
|
-
*/
|
|
78
|
-
function (value) {
|
|
79
|
-
this._format = value;
|
|
80
|
-
},
|
|
81
|
-
enumerable: false,
|
|
82
|
-
configurable: true
|
|
83
|
-
});
|
|
84
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "value", {
|
|
85
|
-
/**
|
|
86
|
-
* Gets current value of datetime
|
|
87
|
-
*/
|
|
88
|
-
get: /**
|
|
89
|
-
* Gets current value of datetime
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
|
-
function () {
|
|
93
|
-
if (!this._dateApiValue || !this._isValid) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
return this._valueProvider.getValue(this._dateApiValue.value, this._format);
|
|
97
|
-
},
|
|
98
|
-
enumerable: false,
|
|
99
|
-
configurable: true
|
|
100
|
-
});
|
|
101
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "formattedValue", {
|
|
102
|
-
/**
|
|
103
|
-
* Gets formatted value
|
|
104
|
-
*/
|
|
105
|
-
get: /**
|
|
106
|
-
* Gets formatted value
|
|
107
|
-
* @return {?}
|
|
108
|
-
*/
|
|
109
|
-
function () {
|
|
110
|
-
if (!this._isValid) {
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
return this.currentValue;
|
|
114
|
-
},
|
|
115
|
-
enumerable: false,
|
|
116
|
-
configurable: true
|
|
117
|
-
});
|
|
118
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "valid", {
|
|
119
|
-
/**
|
|
120
|
-
* Gets indication whether is current value valid
|
|
121
|
-
*/
|
|
122
|
-
get: /**
|
|
123
|
-
* Gets indication whether is current value valid
|
|
124
|
-
* @return {?}
|
|
125
|
-
*/
|
|
126
|
-
function () {
|
|
127
|
-
return this._isValid;
|
|
128
|
-
},
|
|
129
|
-
enumerable: false,
|
|
130
|
-
configurable: true
|
|
131
|
-
});
|
|
132
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "valueChange", {
|
|
133
|
-
/**
|
|
134
|
-
* Occurs when value changes
|
|
135
|
-
*/
|
|
136
|
-
get: /**
|
|
137
|
-
* Occurs when value changes
|
|
138
|
-
* @return {?}
|
|
139
|
-
*/
|
|
140
|
-
function () {
|
|
141
|
-
return this._valueChange.asObservable();
|
|
142
|
-
},
|
|
143
|
-
enumerable: false,
|
|
144
|
-
configurable: true
|
|
145
|
-
});
|
|
146
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "touched", {
|
|
147
|
-
/**
|
|
148
|
-
* Occurs when selector is touched by user
|
|
149
|
-
*/
|
|
150
|
-
get: /**
|
|
151
|
-
* Occurs when selector is touched by user
|
|
152
|
-
* @return {?}
|
|
153
|
-
*/
|
|
154
|
-
function () {
|
|
155
|
-
return this._touched.asObservable();
|
|
156
|
-
},
|
|
157
|
-
enumerable: false,
|
|
158
|
-
configurable: true
|
|
159
|
-
});
|
|
160
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "pickerRequest", {
|
|
161
|
-
/**
|
|
162
|
-
* Occurs when selector requires picker to be displayed
|
|
163
|
-
*/
|
|
164
|
-
get: /**
|
|
165
|
-
* Occurs when selector requires picker to be displayed
|
|
166
|
-
* @return {?}
|
|
167
|
-
*/
|
|
168
|
-
function () {
|
|
169
|
-
return this._pickerRequest.asObservable();
|
|
170
|
-
},
|
|
171
|
-
enumerable: false,
|
|
172
|
-
configurable: true
|
|
173
|
-
});
|
|
174
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "currentValue", {
|
|
175
|
-
//######################### protected properties #########################
|
|
176
|
-
/**
|
|
177
|
-
* Gets or sets string representation current of value
|
|
178
|
-
*/
|
|
179
|
-
get:
|
|
180
|
-
//######################### protected properties #########################
|
|
181
|
-
/**
|
|
182
|
-
* Gets or sets string representation current of value
|
|
183
|
-
* @protected
|
|
184
|
-
* @return {?}
|
|
185
|
-
*/
|
|
186
|
-
function () {
|
|
187
|
-
return this.input.value || null;
|
|
188
|
-
},
|
|
189
|
-
set: /**
|
|
190
|
-
* @protected
|
|
191
|
-
* @param {?} value
|
|
192
|
-
* @return {?}
|
|
193
|
-
*/
|
|
194
|
-
function (value) {
|
|
195
|
-
if (this.input) {
|
|
196
|
-
this.input.value = value !== null && value !== void 0 ? value : '';
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
enumerable: false,
|
|
200
|
-
configurable: true
|
|
201
|
-
});
|
|
202
|
-
Object.defineProperty(SimpleInputDateTimeSelectorComponent.prototype, "input", {
|
|
203
|
-
/**
|
|
204
|
-
* Gets input element used for handling date time value
|
|
205
|
-
*/
|
|
206
|
-
get: /**
|
|
207
|
-
* Gets input element used for handling date time value
|
|
208
|
-
* @protected
|
|
209
|
-
* @return {?}
|
|
210
|
-
*/
|
|
211
|
-
function () {
|
|
212
|
-
return (/** @type {?} */ (this.inputElement)).nativeElement;
|
|
213
|
-
},
|
|
214
|
-
enumerable: false,
|
|
215
|
-
configurable: true
|
|
216
|
-
});
|
|
217
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
218
|
-
/**
|
|
219
|
-
* Sets minimal possible value for picker, that can be picked
|
|
220
|
-
* @param value - Minimal possible value that can be picked
|
|
221
|
-
*/
|
|
222
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
223
|
-
/**
|
|
224
|
-
* Sets minimal possible value for picker, that can be picked
|
|
225
|
-
* @param {?} value - Minimal possible value that can be picked
|
|
226
|
-
* @return {?}
|
|
227
|
-
*/
|
|
228
|
-
SimpleInputDateTimeSelectorComponent.prototype.setMinValue =
|
|
229
|
-
//######################### public methods - implementation of DateTimeSelector #########################
|
|
230
|
-
/**
|
|
231
|
-
* Sets minimal possible value for picker, that can be picked
|
|
232
|
-
* @param {?} value - Minimal possible value that can be picked
|
|
233
|
-
* @return {?}
|
|
234
|
-
*/
|
|
235
|
-
function (value) {
|
|
236
|
-
this._minValue = value;
|
|
237
|
-
};
|
|
238
|
-
/**
|
|
239
|
-
* Sets maximal possible value for picker, that can be picked
|
|
240
|
-
* @param value - Maximal possible value that can be picked
|
|
241
|
-
*/
|
|
242
|
-
/**
|
|
243
|
-
* Sets maximal possible value for picker, that can be picked
|
|
244
|
-
* @param {?} value - Maximal possible value that can be picked
|
|
245
|
-
* @return {?}
|
|
246
|
-
*/
|
|
247
|
-
SimpleInputDateTimeSelectorComponent.prototype.setMaxValue = /**
|
|
248
|
-
* Sets maximal possible value for picker, that can be picked
|
|
249
|
-
* @param {?} value - Maximal possible value that can be picked
|
|
250
|
-
* @return {?}
|
|
251
|
-
*/
|
|
252
|
-
function (value) {
|
|
253
|
-
this._maxValue = value;
|
|
254
|
-
};
|
|
255
|
-
/**
|
|
256
|
-
* Sets value of datetime selector
|
|
257
|
-
* @param value - Value to be set to this selector
|
|
258
|
-
*/
|
|
259
|
-
/**
|
|
260
|
-
* Sets value of datetime selector
|
|
261
|
-
* @param {?} value - Value to be set to this selector
|
|
262
|
-
* @return {?}
|
|
263
|
-
*/
|
|
264
|
-
SimpleInputDateTimeSelectorComponent.prototype.setValue = /**
|
|
265
|
-
* Sets value of datetime selector
|
|
266
|
-
* @param {?} value - Value to be set to this selector
|
|
267
|
-
* @return {?}
|
|
268
|
-
*/
|
|
269
|
-
function (value) {
|
|
270
|
-
if (value === null || value === void 0 ? void 0 : value.from) {
|
|
271
|
-
this._dateApiValue = this._dateApi.getValue(value === null || value === void 0 ? void 0 : value.from, this._format);
|
|
272
|
-
this._isValid = this._dateApiValue.isValid();
|
|
273
|
-
this._show();
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
this._clearValue();
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
|
-
/**
|
|
280
|
-
* Sets as 'control' disabled
|
|
281
|
-
* @param disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
282
|
-
*/
|
|
283
|
-
/**
|
|
284
|
-
* Sets as 'control' disabled
|
|
285
|
-
* @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
286
|
-
* @return {?}
|
|
287
|
-
*/
|
|
288
|
-
SimpleInputDateTimeSelectorComponent.prototype.setDisabled = /**
|
|
289
|
-
* Sets as 'control' disabled
|
|
290
|
-
* @param {?=} disabled - Indication whether sets value as disabled, if omitted it is same as disabled set to true
|
|
291
|
-
* @return {?}
|
|
292
|
-
*/
|
|
293
|
-
function (disabled) {
|
|
294
|
-
if (disabled === void 0) { disabled = true; }
|
|
295
|
-
this.disabled = disabled;
|
|
296
|
-
};
|
|
297
|
-
/**
|
|
298
|
-
* Explicitly runs invalidation of content (change detection)
|
|
299
|
-
*/
|
|
300
|
-
/**
|
|
301
|
-
* Explicitly runs invalidation of content (change detection)
|
|
302
|
-
* @return {?}
|
|
303
|
-
*/
|
|
304
|
-
SimpleInputDateTimeSelectorComponent.prototype.invalidateVisuals = /**
|
|
305
|
-
* Explicitly runs invalidation of content (change detection)
|
|
306
|
-
* @return {?}
|
|
307
|
-
*/
|
|
308
|
-
function () {
|
|
309
|
-
this._changeDetector.detectChanges();
|
|
310
|
-
};
|
|
311
|
-
//######################### public methods - template bindings #########################
|
|
312
|
-
/**
|
|
313
|
-
* Handles gaining of focus
|
|
314
|
-
* @internal
|
|
315
|
-
*/
|
|
316
|
-
//######################### public methods - template bindings #########################
|
|
317
|
-
/**
|
|
318
|
-
* Handles gaining of focus
|
|
319
|
-
* \@internal
|
|
320
|
-
* @return {?}
|
|
321
|
-
*/
|
|
322
|
-
SimpleInputDateTimeSelectorComponent.prototype.handleFocus =
|
|
323
|
-
//######################### public methods - template bindings #########################
|
|
324
|
-
/**
|
|
325
|
-
* Handles gaining of focus
|
|
326
|
-
* \@internal
|
|
327
|
-
* @return {?}
|
|
328
|
-
*/
|
|
329
|
-
function () {
|
|
330
|
-
this._pickerRequest.next(true);
|
|
331
|
-
//no value
|
|
332
|
-
if (!this._dateApiValue) {
|
|
333
|
-
this._dateApiValue = this._dateApi.now();
|
|
334
|
-
this._isValid = this._dateApiValue.isValid();
|
|
335
|
-
if (this._minMaxConstraintTest()) {
|
|
336
|
-
this._clearValue();
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
this._valueChange.next();
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
if (!this._isValid) {
|
|
343
|
-
return;
|
|
344
|
-
}
|
|
345
|
-
this._show();
|
|
346
|
-
};
|
|
347
|
-
/**
|
|
348
|
-
* Handles blur on input
|
|
349
|
-
* @internal
|
|
350
|
-
*/
|
|
351
|
-
/**
|
|
352
|
-
* Handles blur on input
|
|
353
|
-
* \@internal
|
|
354
|
-
* @return {?}
|
|
355
|
-
*/
|
|
356
|
-
SimpleInputDateTimeSelectorComponent.prototype.handleBlur = /**
|
|
357
|
-
* Handles blur on input
|
|
358
|
-
* \@internal
|
|
359
|
-
* @return {?}
|
|
360
|
-
*/
|
|
361
|
-
function () {
|
|
362
|
-
this._pickerRequest.next(false);
|
|
363
|
-
};
|
|
364
|
-
/**
|
|
365
|
-
* Handles user input
|
|
366
|
-
* @internal
|
|
367
|
-
*/
|
|
368
|
-
/**
|
|
369
|
-
* Handles user input
|
|
370
|
-
* \@internal
|
|
371
|
-
* @return {?}
|
|
372
|
-
*/
|
|
373
|
-
SimpleInputDateTimeSelectorComponent.prototype.handleInput = /**
|
|
374
|
-
* Handles user input
|
|
375
|
-
* \@internal
|
|
376
|
-
* @return {?}
|
|
377
|
-
*/
|
|
378
|
-
function () {
|
|
379
|
-
//empty value
|
|
380
|
-
if (!this.currentValue) {
|
|
381
|
-
this._clearValue();
|
|
382
|
-
this._valueChange.next();
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
this._dateApiValue = this._dateApi.getValue(this.currentValue, this._format);
|
|
386
|
-
this._isValid = this._dateApiValue.isValid();
|
|
387
|
-
this._valueChange.next();
|
|
388
|
-
};
|
|
389
|
-
/**
|
|
390
|
-
* Handles click event inside of input
|
|
391
|
-
* @internal
|
|
392
|
-
*/
|
|
393
|
-
/**
|
|
394
|
-
* Handles click event inside of input
|
|
395
|
-
* \@internal
|
|
396
|
-
* @return {?}
|
|
397
|
-
*/
|
|
398
|
-
SimpleInputDateTimeSelectorComponent.prototype.handleClick = /**
|
|
399
|
-
* Handles click event inside of input
|
|
400
|
-
* \@internal
|
|
401
|
-
* @return {?}
|
|
402
|
-
*/
|
|
403
|
-
function () {
|
|
404
|
-
this._pickerRequest.next(true);
|
|
405
|
-
};
|
|
406
|
-
/**
|
|
407
|
-
* Handles keyboard events
|
|
408
|
-
* @param event - Keyboard event that occured
|
|
409
|
-
* @param input - Html input element that holds current value and selection
|
|
410
|
-
* @internal
|
|
411
|
-
*/
|
|
412
|
-
/**
|
|
413
|
-
* Handles keyboard events
|
|
414
|
-
* \@internal
|
|
415
|
-
* @param {?} event - Keyboard event that occured
|
|
416
|
-
* @return {?}
|
|
417
|
-
*/
|
|
418
|
-
SimpleInputDateTimeSelectorComponent.prototype.handleKeyboard = /**
|
|
419
|
-
* Handles keyboard events
|
|
420
|
-
* \@internal
|
|
421
|
-
* @param {?} event - Keyboard event that occured
|
|
422
|
-
* @return {?}
|
|
423
|
-
*/
|
|
424
|
-
function (event) {
|
|
425
|
-
var _this = this;
|
|
426
|
-
var _a;
|
|
427
|
-
if (!((_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.isValid())) {
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
switch (event.key) {
|
|
431
|
-
case 'ArrowRight':
|
|
432
|
-
case 'ArrowLeft':
|
|
433
|
-
{
|
|
434
|
-
event.preventDefault();
|
|
435
|
-
event.stopPropagation();
|
|
436
|
-
this._withMinMaxConstraint((/**
|
|
437
|
-
* @return {?}
|
|
438
|
-
*/
|
|
439
|
-
function () { return event.key == 'ArrowLeft' ? (/** @type {?} */ (_this._dateApiValue)).subtractDays(1) : (/** @type {?} */ (_this._dateApiValue)).addDays(1); }));
|
|
440
|
-
this._show();
|
|
441
|
-
break;
|
|
442
|
-
}
|
|
443
|
-
case 'ArrowUp':
|
|
444
|
-
case 'ArrowDown':
|
|
445
|
-
{
|
|
446
|
-
event.preventDefault();
|
|
447
|
-
event.stopPropagation();
|
|
448
|
-
this._withMinMaxConstraint((/**
|
|
449
|
-
* @return {?}
|
|
450
|
-
*/
|
|
451
|
-
function () { return event.key == 'ArrowUp' ? (/** @type {?} */ (_this._dateApiValue)).subtractWeeks(1) : (/** @type {?} */ (_this._dateApiValue)).addWeeks(1); }));
|
|
452
|
-
this._show();
|
|
453
|
-
break;
|
|
454
|
-
}
|
|
455
|
-
case 'Escape':
|
|
456
|
-
{
|
|
457
|
-
this._pickerRequest.next(false);
|
|
458
|
-
break;
|
|
459
|
-
}
|
|
460
|
-
case ' ':
|
|
461
|
-
{
|
|
462
|
-
if (event.ctrlKey) {
|
|
463
|
-
this._pickerRequest.next(true);
|
|
464
|
-
}
|
|
465
|
-
break;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
//######################### protected methods #########################
|
|
470
|
-
/**
|
|
471
|
-
* Clears current value
|
|
472
|
-
*/
|
|
473
|
-
//######################### protected methods #########################
|
|
474
|
-
/**
|
|
475
|
-
* Clears current value
|
|
476
|
-
* @protected
|
|
477
|
-
* @return {?}
|
|
478
|
-
*/
|
|
479
|
-
SimpleInputDateTimeSelectorComponent.prototype._clearValue =
|
|
480
|
-
//######################### protected methods #########################
|
|
481
|
-
/**
|
|
482
|
-
* Clears current value
|
|
483
|
-
* @protected
|
|
484
|
-
* @return {?}
|
|
485
|
-
*/
|
|
486
|
-
function () {
|
|
487
|
-
this._dateApiValue = null;
|
|
488
|
-
this._isValid = true;
|
|
489
|
-
this.currentValue = null;
|
|
490
|
-
};
|
|
491
|
-
/**
|
|
492
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
493
|
-
*/
|
|
494
|
-
/**
|
|
495
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
496
|
-
* @protected
|
|
497
|
-
* @return {?}
|
|
498
|
-
*/
|
|
499
|
-
SimpleInputDateTimeSelectorComponent.prototype._minMaxConstraintTest = /**
|
|
500
|
-
* Tests whether are min or max constraint broken, returns true if constraint is broken
|
|
501
|
-
* @protected
|
|
502
|
-
* @return {?}
|
|
503
|
-
*/
|
|
504
|
-
function () {
|
|
505
|
-
return (!!this._minValue && (/** @type {?} */ (this._dateApiValue)).isBefore(this._minValue)) ||
|
|
506
|
-
(!!this._maxValue && (/** @type {?} */ (this._dateApiValue)).isAfter(this._maxValue));
|
|
507
|
-
};
|
|
508
|
-
/**
|
|
509
|
-
* Runs code with check whether min max constrains was broken
|
|
510
|
-
* @param code - Code that should be executed which can change current value
|
|
511
|
-
*/
|
|
512
|
-
/**
|
|
513
|
-
* Runs code with check whether min max constrains was broken
|
|
514
|
-
* @protected
|
|
515
|
-
* @param {?} code - Code that should be executed which can change current value
|
|
516
|
-
* @return {?}
|
|
517
|
-
*/
|
|
518
|
-
SimpleInputDateTimeSelectorComponent.prototype._withMinMaxConstraint = /**
|
|
519
|
-
* Runs code with check whether min max constrains was broken
|
|
520
|
-
* @protected
|
|
521
|
-
* @param {?} code - Code that should be executed which can change current value
|
|
522
|
-
* @return {?}
|
|
523
|
-
*/
|
|
524
|
-
function (code) {
|
|
525
|
-
var _a;
|
|
526
|
-
(/** @type {?} */ (this._dateApiValue)).updateOriginal();
|
|
527
|
-
code();
|
|
528
|
-
//min value constraint failure
|
|
529
|
-
if (this._minMaxConstraintTest()) {
|
|
530
|
-
(_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.resetOriginal();
|
|
531
|
-
return;
|
|
532
|
-
}
|
|
533
|
-
this._valueChange.next();
|
|
534
|
-
};
|
|
535
|
-
/**
|
|
536
|
-
* Shows current value in input
|
|
537
|
-
*/
|
|
538
|
-
/**
|
|
539
|
-
* Shows current value in input
|
|
540
|
-
* @protected
|
|
541
|
-
* @return {?}
|
|
542
|
-
*/
|
|
543
|
-
SimpleInputDateTimeSelectorComponent.prototype._show = /**
|
|
544
|
-
* Shows current value in input
|
|
545
|
-
* @protected
|
|
546
|
-
* @return {?}
|
|
547
|
-
*/
|
|
548
|
-
function () {
|
|
549
|
-
var _a, _b;
|
|
550
|
-
if (this._isValid) {
|
|
551
|
-
this.currentValue = (_b = (_a = this._dateApiValue) === null || _a === void 0 ? void 0 : _a.format(this._format)) !== null && _b !== void 0 ? _b : null;
|
|
552
|
-
}
|
|
553
|
-
};
|
|
554
|
-
SimpleInputDateTimeSelectorComponent.decorators = [
|
|
555
|
-
{ type: Component, args: [{
|
|
556
|
-
selector: 'simple-input-date-time-selector',
|
|
557
|
-
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 (keydown)=\"handleKeyboard($any($event))\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\">",
|
|
558
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
559
|
-
styles: [":host\r\n{\r\n display: block;\r\n}\r\n\r\ninput\r\n{\r\n width: 100%;\r\n}"]
|
|
560
|
-
},] }
|
|
561
|
-
];
|
|
562
|
-
/** @nocollapse */
|
|
563
|
-
SimpleInputDateTimeSelectorComponent.ctorParameters = function () { return [
|
|
564
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DATE_API,] }] },
|
|
565
|
-
{ type: DateValueProvider },
|
|
566
|
-
{ type: ChangeDetectorRef }
|
|
567
|
-
]; };
|
|
568
|
-
SimpleInputDateTimeSelectorComponent.propDecorators = {
|
|
569
|
-
inputElement: [{ type: ViewChild, args: ['input', { static: true },] }]
|
|
570
|
-
};
|
|
571
|
-
return SimpleInputDateTimeSelectorComponent;
|
|
572
|
-
}());
|
|
573
|
-
export { SimpleInputDateTimeSelectorComponent };
|
|
574
|
-
if (false) {
|
|
575
|
-
/**
|
|
576
|
-
* Occurs when value changes
|
|
577
|
-
* @type {?}
|
|
578
|
-
* @protected
|
|
579
|
-
*/
|
|
580
|
-
SimpleInputDateTimeSelectorComponent.prototype._valueChange;
|
|
581
|
-
/**
|
|
582
|
-
* Occurs when selector is touched by user
|
|
583
|
-
* @type {?}
|
|
584
|
-
* @protected
|
|
585
|
-
*/
|
|
586
|
-
SimpleInputDateTimeSelectorComponent.prototype._touched;
|
|
587
|
-
/**
|
|
588
|
-
* Occurs when selector requires picker to be displayed or hidden
|
|
589
|
-
* @type {?}
|
|
590
|
-
* @protected
|
|
591
|
-
*/
|
|
592
|
-
SimpleInputDateTimeSelectorComponent.prototype._pickerRequest;
|
|
593
|
-
/**
|
|
594
|
-
* Currently used format for displaying data
|
|
595
|
-
* @type {?}
|
|
596
|
-
* @protected
|
|
597
|
-
*/
|
|
598
|
-
SimpleInputDateTimeSelectorComponent.prototype._format;
|
|
599
|
-
/**
|
|
600
|
-
* Current value representation as date api wrapper
|
|
601
|
-
* @type {?}
|
|
602
|
-
* @protected
|
|
603
|
-
*/
|
|
604
|
-
SimpleInputDateTimeSelectorComponent.prototype._dateApiValue;
|
|
605
|
-
/**
|
|
606
|
-
* Indication whether is current value valid value
|
|
607
|
-
* @type {?}
|
|
608
|
-
* @protected
|
|
609
|
-
*/
|
|
610
|
-
SimpleInputDateTimeSelectorComponent.prototype._isValid;
|
|
611
|
-
/**
|
|
612
|
-
* Minimal possible value that can be picked
|
|
613
|
-
* @type {?}
|
|
614
|
-
* @protected
|
|
615
|
-
*/
|
|
616
|
-
SimpleInputDateTimeSelectorComponent.prototype._minValue;
|
|
617
|
-
/**
|
|
618
|
-
* Maximal possible value that can be picked
|
|
619
|
-
* @type {?}
|
|
620
|
-
* @protected
|
|
621
|
-
*/
|
|
622
|
-
SimpleInputDateTimeSelectorComponent.prototype._maxValue;
|
|
623
|
-
/**
|
|
624
|
-
* Gets or sets placeholder that is displayed when there is no value selected
|
|
625
|
-
* @type {?}
|
|
626
|
-
*/
|
|
627
|
-
SimpleInputDateTimeSelectorComponent.prototype.placeholder;
|
|
628
|
-
/**
|
|
629
|
-
* Indication whether is input disabled
|
|
630
|
-
* \@internal
|
|
631
|
-
* @type {?}
|
|
632
|
-
*/
|
|
633
|
-
SimpleInputDateTimeSelectorComponent.prototype.disabled;
|
|
634
|
-
/**
|
|
635
|
-
* Instance of html input element
|
|
636
|
-
* \@internal
|
|
637
|
-
* @type {?}
|
|
638
|
-
*/
|
|
639
|
-
SimpleInputDateTimeSelectorComponent.prototype.inputElement;
|
|
640
|
-
/**
|
|
641
|
-
* @type {?}
|
|
642
|
-
* @protected
|
|
643
|
-
*/
|
|
644
|
-
SimpleInputDateTimeSelectorComponent.prototype._dateApi;
|
|
645
|
-
/**
|
|
646
|
-
* @type {?}
|
|
647
|
-
* @protected
|
|
648
|
-
*/
|
|
649
|
-
SimpleInputDateTimeSelectorComponent.prototype._valueProvider;
|
|
650
|
-
/**
|
|
651
|
-
* @type {?}
|
|
652
|
-
* @protected
|
|
653
|
-
*/
|
|
654
|
-
SimpleInputDateTimeSelectorComponent.prototype._changeDetector;
|
|
655
|
-
}
|
|
656
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlSW5wdXREYXRlVGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvc2VsZWN0b3IvY29tcG9uZW50cy9zaW1wbGVJbnB1dERhdGVUaW1lL3NpbXBsZUlucHV0RGF0ZVRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFNOUU7SUEwS0ksaUVBQWlFO0lBQ2pFLDhDQUF3QyxRQUF3QixFQUMxQyxjQUF3QyxFQUN4QyxlQUFrQztRQUZoQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQW1COzs7OztRQS9KOUMsaUJBQVksR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQzs7OztRQUtsRCxhQUFRLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7Ozs7UUFLOUMsbUJBQWMsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQzs7OztRQUsxRCxZQUFPLEdBQVcsRUFBRSxDQUFDOzs7O1FBS3JCLGtCQUFhLEdBQThCLElBQUksQ0FBQzs7OztRQUtoRCxhQUFRLEdBQVksSUFBSSxDQUFDOzs7O1FBS3pCLGNBQVMsR0FBZSxJQUFJLENBQUM7Ozs7UUFLN0IsY0FBUyxHQUFlLElBQUksQ0FBQzs7Ozs7O1FBcUZoQyxhQUFRLEdBQVksS0FBSyxDQUFDO0lBeUNqQyxDQUFDO0lBdkhE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LFNBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQzs7SUE4UXRDLDJDQUFDO0NBQUEsQUE1WkQsSUE0WkM7U0FyWlksb0NBQW9DOzs7Ozs7O0lBTzdDLDREQUE0RDs7Ozs7O0lBSzVELHdEQUF3RDs7Ozs7O0lBS3hELDhEQUFvRTs7Ozs7O0lBS3BFLHVEQUErQjs7Ozs7O0lBSy9CLDZEQUEwRDs7Ozs7O0lBSzFELHdEQUFtQzs7Ozs7O0lBS25DLHlEQUF1Qzs7Ozs7O0lBS3ZDLHlEQUF1Qzs7Ozs7SUFtQnZDLDJEQUFxQzs7Ozs7O0lBa0VyQyx3REFBaUM7Ozs7OztJQVFqQyw0REFDbUQ7Ozs7O0lBNEJ2Qyx3REFBb0Q7Ozs7O0lBQ3BELDhEQUFrRDs7Ozs7SUFDbEQsK0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbmplY3QsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtEYXRlVGltZVZhbHVlfSBmcm9tICcuLi8uLi8uLi9taXNjL2RhdGV0aW1lLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9BUEl9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlQXBpLCBEYXRlQXBpT2JqZWN0fSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7RGF0ZVZhbHVlUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RhdGVWYWx1ZVByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RhdGVUaW1lU2VsZWN0b3J9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVTZWxlY3Rvci5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGFzIGRhdGV0aW1lIHNlbGVjdG9yIHdpdGggc2ltcGxlIGlucHV0XHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogJ3NpbXBsZS1pbnB1dC1kYXRlLXRpbWUtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdzaW1wbGVJbnB1dERhdGVUaW1lLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydzaW1wbGVJbnB1dERhdGVUaW1lLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGUgPSBhbnk+IGltcGxlbWVudHMgRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT5cclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgcmVxdWlyZXMgcGlja2VyIHRvIGJlIGRpc3BsYXllZCBvciBoaWRkZW5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9waWNrZXJSZXF1ZXN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnRseSB1c2VkIGZvcm1hdCBmb3IgZGlzcGxheWluZyBkYXRhXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfZm9ybWF0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgcmVwcmVzZW50YXRpb24gYXMgZGF0ZSBhcGkgd3JhcHBlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2RhdGVBcGlWYWx1ZTogbnVsbHxEYXRlQXBpT2JqZWN0PFREYXRlPiA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgY3VycmVudCB2YWx1ZSB2YWxpZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWluaW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZTogVERhdGV8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbWFsIHBvc3NpYmxlIHZhbHVlIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlVGltZVNlbGVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBjdXJyZW50bHkgdXNlZCBmb3JtYXQgZm9yIGRpc3BsYXlpbmcgZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBzdHJpbmdcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBmb3JtYXQodmFsdWU6IHN0cmluZylcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBwbGFjZWhvbGRlciB0aGF0IGlzIGRpc3BsYXllZCB3aGVuIHRoZXJlIGlzIG5vIHZhbHVlIHNlbGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nfHVuZGVmaW5lZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgY3VycmVudCB2YWx1ZSBvZiBkYXRldGltZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fZGF0ZUFwaVZhbHVlIHx8ICF0aGlzLl9pc1ZhbGlkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVQcm92aWRlci5nZXRWYWx1ZSh0aGlzLl9kYXRlQXBpVmFsdWUudmFsdWUsIHRoaXMuX2Zvcm1hdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGZvcm1hdHRlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZ3xudWxsXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX2lzVmFsaWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGlzIGN1cnJlbnQgdmFsdWUgdmFsaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgcmVxdWlyZXMgcGlja2VyIHRvIGJlIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHBpY2tlclJlcXVlc3QoKTogT2JzZXJ2YWJsZTxib29sZWFuPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9waWNrZXJSZXF1ZXN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gd2hldGhlciBpcyBpbnB1dCBkaXNhYmxlZFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGNoaWxkcmVuICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIGh0bWwgaW5wdXQgZWxlbWVudFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pXHJcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHN0cmluZyByZXByZXNlbnRhdGlvbiBjdXJyZW50IG9mIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgY3VycmVudFZhbHVlKCk6IHN0cmluZ3xudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQudmFsdWUgfHwgbnVsbDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBzZXQgY3VycmVudFZhbHVlKHZhbHVlOiBzdHJpbmd8bnVsbClcclxuICAgIHtcclxuICAgICAgICBpZih0aGlzLmlucHV0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlID8/ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5wdXQgZWxlbWVudCB1c2VkIGZvciBoYW5kbGluZyBkYXRlIHRpbWUgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBpbnB1dCgpOiBIVE1MSW5wdXRFbGVtZW50XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50IS5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERBVEVfQVBJKSBwcm90ZWN0ZWQgX2RhdGVBcGk6IERhdGVBcGk8VERhdGU+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBEYXRlVGltZVNlbGVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE1pbmltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNaW5WYWx1ZSh2YWx1ZTogVERhdGV8bnVsbCk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gTWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldE1heFZhbHVlKHZhbHVlOiBURGF0ZXxudWxsKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHZhbHVlIG9mIGRhdGV0aW1lIHNlbGVjdG9yXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSBzZXQgdG8gdGhpcyBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYodmFsdWU/LmZyb20pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlPy5mcm9tLCB0aGlzLl9mb3JtYXQpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJWYWx1ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYXMgJ2NvbnRyb2wnIGRpc2FibGVkXHJcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBJbmRpY2F0aW9uIHdoZXRoZXIgc2V0cyB2YWx1ZSBhcyBkaXNhYmxlZCwgaWYgb21pdHRlZCBpdCBpcyBzYW1lIGFzIGRpc2FibGVkIHNldCB0byB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwbGljaXRseSBydW5zIGludmFsaWRhdGlvbiBvZiBjb250ZW50IChjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW52YWxpZGF0ZVZpc3VhbHMoKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGdhaW5pbmcgb2YgZm9jdXNcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlRm9jdXMoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dCh0cnVlKTtcclxuXHJcbiAgICAgICAgLy9ubyB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSB0aGlzLl9kYXRlQXBpLm5vdygpO1xyXG4gICAgICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVmFsdWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoIXRoaXMuX2lzVmFsaWQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zaG93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGJsdXIgb24gaW5wdXRcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGFuZGxlQmx1cigpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyUmVxdWVzdC5uZXh0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdXNlciBpbnB1dFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dCgpXHJcbiAgICB7XHJcbiAgICAgICAgLy9lbXB0eSB2YWx1ZVxyXG4gICAgICAgIGlmKCF0aGlzLmN1cnJlbnRWYWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyVmFsdWUoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UubmV4dCgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlID0gdGhpcy5fZGF0ZUFwaS5nZXRWYWx1ZSh0aGlzLmN1cnJlbnRWYWx1ZSwgdGhpcy5fZm9ybWF0KTtcclxuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gdGhpcy5fZGF0ZUFwaVZhbHVlLmlzVmFsaWQoKTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGNsaWNrIGV2ZW50IGluc2lkZSBvZiBpbnB1dFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoYW5kbGVDbGljaygpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyUmVxdWVzdC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBrZXlib2FyZCBldmVudHNcclxuICAgICAqIEBwYXJhbSBldmVudCAtIEtleWJvYXJkIGV2ZW50IHRoYXQgb2NjdXJlZFxyXG4gICAgICogQHBhcmFtIGlucHV0IC0gSHRtbCBpbnB1dCBlbGVtZW50IHRoYXQgaG9sZHMgY3VycmVudCB2YWx1ZSBhbmQgc2VsZWN0aW9uXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhhbmRsZUtleWJvYXJkKGV2ZW50OiBLZXlib2FyZEV2ZW50KVxyXG4gICAge1xyXG4gICAgICAgIGlmKCF0aGlzLl9kYXRlQXBpVmFsdWU/LmlzVmFsaWQoKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaChldmVudC5rZXkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcclxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3dpdGhNaW5NYXhDb25zdHJhaW50KCgpID0+IGV2ZW50LmtleSA9PSAnQXJyb3dMZWZ0JyA/IHRoaXMuX2RhdGVBcGlWYWx1ZSEuc3VidHJhY3REYXlzKDEpIDogdGhpcy5fZGF0ZUFwaVZhbHVlIS5hZGREYXlzKDEpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3dpdGhNaW5NYXhDb25zdHJhaW50KCgpID0+IGV2ZW50LmtleSA9PSAnQXJyb3dVcCcgPyB0aGlzLl9kYXRlQXBpVmFsdWUhLnN1YnRyYWN0V2Vla3MoMSkgOiB0aGlzLl9kYXRlQXBpVmFsdWUhLmFkZFdlZWtzKDEpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3coKTtcclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICdFc2NhcGUnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9waWNrZXJSZXF1ZXN0Lm5leHQoZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJyAnOlxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZihldmVudC5jdHJsS2V5KVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3BpY2tlclJlcXVlc3QubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYXJzIGN1cnJlbnQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9jbGVhclZhbHVlKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuX2lzVmFsaWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlc3RzIHdoZXRoZXIgYXJlIG1pbiBvciBtYXggY29uc3RyYWludCBicm9rZW4sIHJldHVybnMgdHJ1ZSBpZiBjb25zdHJhaW50IGlzIGJyb2tlblxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pbk1heENvbnN0cmFpbnRUZXN0KCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gKCEhdGhpcy5fbWluVmFsdWUgJiYgdGhpcy5fZGF0ZUFwaVZhbHVlIS5pc0JlZm9yZSh0aGlzLl9taW5WYWx1ZSkpIHx8XHJcbiAgICAgICAgICAgICAgICghIXRoaXMuX21heFZhbHVlICYmIHRoaXMuX2RhdGVBcGlWYWx1ZSEuaXNBZnRlcih0aGlzLl9tYXhWYWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUnVucyBjb2RlIHdpdGggY2hlY2sgd2hldGhlciBtaW4gbWF4IGNvbnN0cmFpbnMgd2FzIGJyb2tlblxyXG4gICAgICogQHBhcmFtIGNvZGUgLSBDb2RlIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHdoaWNoIGNhbiBjaGFuZ2UgY3VycmVudCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3dpdGhNaW5NYXhDb25zdHJhaW50KGNvZGU6ICgpID0+IHZvaWQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGF0ZUFwaVZhbHVlIS51cGRhdGVPcmlnaW5hbCgpO1xyXG5cclxuICAgICAgICBjb2RlKCk7XHJcblxyXG4gICAgICAgIC8vbWluIHZhbHVlIGNvbnN0cmFpbnQgZmFpbHVyZVxyXG4gICAgICAgIGlmKHRoaXMuX21pbk1heENvbnN0cmFpbnRUZXN0KCkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kYXRlQXBpVmFsdWU/LnJlc2V0T3JpZ2luYWwoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIGN1cnJlbnQgdmFsdWUgaW4gaW5wdXRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9zaG93KClcclxuICAgIHtcclxuICAgICAgICBpZih0aGlzLl9pc1ZhbGlkKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLl9kYXRlQXBpVmFsdWU/LmZvcm1hdCh0aGlzLl9mb3JtYXQpID8/IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|