@skyux/datetime 5.1.4 → 5.5.0

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.
Files changed (198) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-datetime.umd.js +80 -80
  3. package/documentation.json +379 -22
  4. package/esm2015/index.js +28 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/date-pipe/date-format-utility.js +48 -0
  7. package/esm2015/lib/modules/date-pipe/date-format-utility.js.map +1 -0
  8. package/esm2015/lib/modules/date-pipe/date-pipe.module.js +21 -0
  9. package/esm2015/lib/modules/date-pipe/date-pipe.module.js.map +1 -0
  10. package/esm2015/lib/modules/date-pipe/date.pipe.js +65 -0
  11. package/esm2015/lib/modules/date-pipe/date.pipe.js.map +1 -0
  12. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js +47 -0
  13. package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js.map +1 -0
  14. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js +464 -0
  15. package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js.map +1 -0
  16. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js +47 -0
  17. package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js.map +1 -0
  18. package/esm2015/lib/modules/date-range-picker/date-range.service.js +97 -0
  19. package/esm2015/lib/modules/date-range-picker/date-range.service.js.map +1 -0
  20. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js +2 -0
  21. package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js.map +1 -0
  22. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js +2 -0
  23. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js.map +1 -0
  24. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js +2 -0
  25. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js.map +1 -0
  26. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js +118 -0
  27. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js.map +1 -0
  28. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js +23 -0
  29. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js.map +1 -0
  30. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js +2 -0
  31. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js.map +1 -0
  32. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js +56 -0
  33. package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js.map +1 -0
  34. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js +2 -0
  35. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js.map +1 -0
  36. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js +147 -0
  37. package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js.map +1 -0
  38. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js +252 -0
  39. package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js.map +1 -0
  40. package/esm2015/lib/modules/date-range-picker/types/date-range.js +2 -0
  41. package/esm2015/lib/modules/date-range-picker/types/date-range.js.map +1 -0
  42. package/esm2015/lib/modules/datepicker/date-formatter.js +38 -0
  43. package/esm2015/lib/modules/datepicker/date-formatter.js.map +1 -0
  44. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js +33 -0
  45. package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js.map +1 -0
  46. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js +2 -0
  47. package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js.map +1 -0
  48. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js +315 -0
  49. package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js.map +1 -0
  50. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js +109 -0
  51. package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js.map +1 -0
  52. package/esm2015/lib/modules/datepicker/datepicker-config.service.js +21 -0
  53. package/esm2015/lib/modules/datepicker/datepicker-config.service.js.map +1 -0
  54. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js +2 -0
  55. package/esm2015/lib/modules/datepicker/datepicker-custom-date.js.map +1 -0
  56. package/esm2015/lib/modules/datepicker/datepicker-date.js +2 -0
  57. package/esm2015/lib/modules/datepicker/datepicker-date.js.map +1 -0
  58. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js +457 -0
  59. package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js.map +1 -0
  60. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js +435 -0
  61. package/esm2015/lib/modules/datepicker/datepicker-input.directive.js.map +1 -0
  62. package/esm2015/lib/modules/datepicker/datepicker.component.js +333 -0
  63. package/esm2015/lib/modules/datepicker/datepicker.component.js.map +1 -0
  64. package/esm2015/lib/modules/datepicker/datepicker.module.js +95 -0
  65. package/esm2015/lib/modules/datepicker/datepicker.module.js.map +1 -0
  66. package/esm2015/lib/modules/datepicker/datepicker.service.js +21 -0
  67. package/esm2015/lib/modules/datepicker/datepicker.service.js.map +1 -0
  68. package/esm2015/lib/modules/datepicker/daypicker-button.component.js +26 -0
  69. package/esm2015/lib/modules/datepicker/daypicker-button.component.js.map +1 -0
  70. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js +130 -0
  71. package/esm2015/lib/modules/datepicker/daypicker-cell.component.js.map +1 -0
  72. package/esm2015/lib/modules/datepicker/daypicker.component.js +215 -0
  73. package/esm2015/lib/modules/datepicker/daypicker.component.js.map +1 -0
  74. package/esm2015/lib/modules/datepicker/fuzzy-date.js +2 -0
  75. package/esm2015/lib/modules/datepicker/fuzzy-date.js.map +1 -0
  76. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js +403 -0
  77. package/esm2015/lib/modules/datepicker/fuzzy-date.service.js.map +1 -0
  78. package/esm2015/lib/modules/datepicker/monthpicker.component.js +84 -0
  79. package/esm2015/lib/modules/datepicker/monthpicker.component.js.map +1 -0
  80. package/esm2015/lib/modules/datepicker/yearpicker.component.js +90 -0
  81. package/esm2015/lib/modules/datepicker/yearpicker.component.js.map +1 -0
  82. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js +131 -0
  83. package/esm2015/lib/modules/shared/sky-datetime-resources.module.js.map +1 -0
  84. package/esm2015/lib/modules/timepicker/timepicker.component.js +367 -0
  85. package/esm2015/lib/modules/timepicker/timepicker.component.js.map +1 -0
  86. package/esm2015/lib/modules/timepicker/timepicker.directive.js +229 -0
  87. package/esm2015/lib/modules/timepicker/timepicker.directive.js.map +1 -0
  88. package/esm2015/lib/modules/timepicker/timepicker.interface.js +2 -0
  89. package/esm2015/lib/modules/timepicker/timepicker.interface.js.map +1 -0
  90. package/esm2015/lib/modules/timepicker/timepicker.module.js +46 -0
  91. package/esm2015/lib/modules/timepicker/timepicker.module.js.map +1 -0
  92. package/esm2015/skyux-datetime.js +2 -2
  93. package/esm2015/skyux-datetime.js.map +1 -0
  94. package/esm2015/testing/datepicker-fixture.js +1 -1
  95. package/esm2015/testing/datepicker-fixture.js.map +1 -0
  96. package/esm2015/testing/public-api.js +1 -1
  97. package/esm2015/testing/public-api.js.map +1 -0
  98. package/esm2015/testing/skyux-datetime-testing.js +1 -1
  99. package/esm2015/testing/skyux-datetime-testing.js.map +1 -0
  100. package/esm2015/testing/timepicker-fixture.js +1 -1
  101. package/esm2015/testing/timepicker-fixture.js.map +1 -0
  102. package/fesm2015/skyux-datetime-testing.js.map +1 -1
  103. package/fesm2015/skyux-datetime.js +301 -301
  104. package/fesm2015/skyux-datetime.js.map +1 -1
  105. package/index.d.ts +25 -0
  106. package/{modules → lib/modules}/date-pipe/date-format-utility.d.ts +0 -0
  107. package/{modules → lib/modules}/date-pipe/date-pipe.module.d.ts +0 -0
  108. package/{modules → lib/modules}/date-pipe/date.pipe.d.ts +0 -0
  109. package/{modules → lib/modules}/date-pipe/fuzzy-date.pipe.d.ts +0 -0
  110. package/{modules → lib/modules}/date-range-picker/date-range-picker.component.d.ts +0 -0
  111. package/{modules → lib/modules}/date-range-picker/date-range-picker.module.d.ts +0 -0
  112. package/{modules → lib/modules}/date-range-picker/date-range.service.d.ts +0 -0
  113. package/{modules → lib/modules}/date-range-picker/types/date-range-calculation.d.ts +0 -0
  114. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-config.d.ts +0 -0
  115. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-date-range-function.d.ts +0 -0
  116. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-id.d.ts +0 -0
  117. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-type.d.ts +0 -0
  118. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-validate-function.d.ts +0 -0
  119. package/{modules → lib/modules}/date-range-picker/types/date-range-calculator.d.ts +0 -0
  120. package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-config.d.ts +0 -0
  121. package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-configs.d.ts +0 -0
  122. package/{modules → lib/modules}/date-range-picker/types/date-range-relative-value.d.ts +0 -0
  123. package/{modules → lib/modules}/date-range-picker/types/date-range.d.ts +0 -0
  124. package/{modules → lib/modules}/datepicker/date-formatter.d.ts +0 -0
  125. package/{modules → lib/modules}/datepicker/datepicker-adapter.service.d.ts +0 -0
  126. package/{modules → lib/modules}/datepicker/datepicker-calendar-change.d.ts +0 -0
  127. package/{modules → lib/modules}/datepicker/datepicker-calendar-inner.component.d.ts +0 -0
  128. package/{modules → lib/modules}/datepicker/datepicker-calendar.component.d.ts +0 -0
  129. package/{modules → lib/modules}/datepicker/datepicker-config.service.d.ts +0 -0
  130. package/{modules → lib/modules}/datepicker/datepicker-custom-date.d.ts +0 -0
  131. package/{modules → lib/modules}/datepicker/datepicker-date.d.ts +0 -0
  132. package/{modules → lib/modules}/datepicker/datepicker-input-fuzzy.directive.d.ts +0 -0
  133. package/{modules → lib/modules}/datepicker/datepicker-input.directive.d.ts +0 -0
  134. package/{modules → lib/modules}/datepicker/datepicker.component.d.ts +0 -0
  135. package/{modules → lib/modules}/datepicker/datepicker.module.d.ts +0 -0
  136. package/{modules → lib/modules}/datepicker/datepicker.service.d.ts +0 -0
  137. package/{modules → lib/modules}/datepicker/daypicker-button.component.d.ts +0 -0
  138. package/{modules → lib/modules}/datepicker/daypicker-cell.component.d.ts +0 -0
  139. package/{modules → lib/modules}/datepicker/daypicker.component.d.ts +0 -0
  140. package/{modules → lib/modules}/datepicker/fuzzy-date.d.ts +0 -0
  141. package/{modules → lib/modules}/datepicker/fuzzy-date.service.d.ts +0 -0
  142. package/{modules → lib/modules}/datepicker/monthpicker.component.d.ts +0 -0
  143. package/{modules → lib/modules}/datepicker/yearpicker.component.d.ts +0 -0
  144. package/{modules → lib/modules}/shared/sky-datetime-resources.module.d.ts +0 -0
  145. package/{modules → lib/modules}/timepicker/timepicker.component.d.ts +0 -0
  146. package/{modules → lib/modules}/timepicker/timepicker.directive.d.ts +0 -0
  147. package/{modules → lib/modules}/timepicker/timepicker.interface.d.ts +0 -0
  148. package/{modules → lib/modules}/timepicker/timepicker.module.d.ts +0 -0
  149. package/package.json +24 -10
  150. package/skyux-datetime.d.ts +1 -1
  151. package/LICENSE +0 -21
  152. package/bundles/skyux-datetime-testing.umd.js.map +0 -1
  153. package/bundles/skyux-datetime.umd.js.map +0 -1
  154. package/esm2015/modules/date-pipe/date-format-utility.js +0 -48
  155. package/esm2015/modules/date-pipe/date-pipe.module.js +0 -21
  156. package/esm2015/modules/date-pipe/date.pipe.js +0 -64
  157. package/esm2015/modules/date-pipe/fuzzy-date.pipe.js +0 -46
  158. package/esm2015/modules/date-range-picker/date-range-picker.component.js +0 -460
  159. package/esm2015/modules/date-range-picker/date-range-picker.module.js +0 -47
  160. package/esm2015/modules/date-range-picker/date-range.service.js +0 -96
  161. package/esm2015/modules/date-range-picker/types/date-range-calculation.js +0 -2
  162. package/esm2015/modules/date-range-picker/types/date-range-calculator-config.js +0 -2
  163. package/esm2015/modules/date-range-picker/types/date-range-calculator-date-range-function.js +0 -2
  164. package/esm2015/modules/date-range-picker/types/date-range-calculator-id.js +0 -118
  165. package/esm2015/modules/date-range-picker/types/date-range-calculator-type.js +0 -23
  166. package/esm2015/modules/date-range-picker/types/date-range-calculator-validate-function.js +0 -2
  167. package/esm2015/modules/date-range-picker/types/date-range-calculator.js +0 -56
  168. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-config.js +0 -2
  169. package/esm2015/modules/date-range-picker/types/date-range-default-calculator-configs.js +0 -147
  170. package/esm2015/modules/date-range-picker/types/date-range-relative-value.js +0 -252
  171. package/esm2015/modules/date-range-picker/types/date-range.js +0 -2
  172. package/esm2015/modules/datepicker/date-formatter.js +0 -38
  173. package/esm2015/modules/datepicker/datepicker-adapter.service.js +0 -33
  174. package/esm2015/modules/datepicker/datepicker-calendar-change.js +0 -2
  175. package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +0 -315
  176. package/esm2015/modules/datepicker/datepicker-calendar.component.js +0 -108
  177. package/esm2015/modules/datepicker/datepicker-config.service.js +0 -21
  178. package/esm2015/modules/datepicker/datepicker-custom-date.js +0 -2
  179. package/esm2015/modules/datepicker/datepicker-date.js +0 -2
  180. package/esm2015/modules/datepicker/datepicker-input-fuzzy.directive.js +0 -453
  181. package/esm2015/modules/datepicker/datepicker-input.directive.js +0 -432
  182. package/esm2015/modules/datepicker/datepicker.component.js +0 -331
  183. package/esm2015/modules/datepicker/datepicker.module.js +0 -95
  184. package/esm2015/modules/datepicker/datepicker.service.js +0 -21
  185. package/esm2015/modules/datepicker/daypicker-button.component.js +0 -25
  186. package/esm2015/modules/datepicker/daypicker-cell.component.js +0 -128
  187. package/esm2015/modules/datepicker/daypicker.component.js +0 -214
  188. package/esm2015/modules/datepicker/fuzzy-date.js +0 -2
  189. package/esm2015/modules/datepicker/fuzzy-date.service.js +0 -402
  190. package/esm2015/modules/datepicker/monthpicker.component.js +0 -83
  191. package/esm2015/modules/datepicker/yearpicker.component.js +0 -89
  192. package/esm2015/modules/shared/sky-datetime-resources.module.js +0 -131
  193. package/esm2015/modules/timepicker/timepicker.component.js +0 -365
  194. package/esm2015/modules/timepicker/timepicker.directive.js +0 -227
  195. package/esm2015/modules/timepicker/timepicker.interface.js +0 -2
  196. package/esm2015/modules/timepicker/timepicker.module.js +0 -46
  197. package/esm2015/public-api.js +0 -28
  198. package/public-api.d.ts +0 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timepicker.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/timepicker/timepicker.component.ts","../../../../../../../../libs/components/datetime/src/lib/modules/timepicker/timepicker.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n SkyAffixAutoFitContext,\n SkyAffixer,\n SkyAffixService,\n SkyCoreAdapterService,\n SkyOverlayInstance,\n SkyOverlayService,\n} from '@skyux/core';\n\nimport { SkyInputBoxHostService } from '@skyux/forms';\n\nimport { SkyThemeService } from '@skyux/theme';\n\nimport { fromEvent, Subject, Subscription } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTimepickerTimeOutput } from './timepicker.interface';\n\nimport moment from 'moment';\n\nlet nextId = 0;\n\n/**\n * Creates a SKY UX-themed replacement for the HTML `input` element with `type=\"time\"`.\n * The value that users select is driven through the `ngModel` attribute\n * specified on the `input` element. You must wrap this component around an `input`\n * with the `skyTimepickerInput` directive.\n */\n@Component({\n selector: 'sky-timepicker',\n templateUrl: './timepicker.component.html',\n styleUrls: ['./timepicker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkyTimepickerComponent implements OnInit, OnDestroy {\n /**\n * Fires when the value in the timepicker input changes.\n */\n @Output()\n public selectedTimeChanged: EventEmitter<SkyTimepickerTimeOutput> = new EventEmitter<SkyTimepickerTimeOutput>();\n\n public set disabled(value: boolean) {\n this._disabled = value;\n this.changeDetector.markForCheck();\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n\n public set selectedHour(setHour: number) {\n let hour: number;\n let hourOffset: number = 0;\n if (this.selectedMeridies === 'AM' && setHour === 12) {\n hourOffset = -12;\n }\n if (this.selectedMeridies === 'PM' && setHour !== 12) {\n hourOffset = 12;\n }\n if (this.is8601) {\n hourOffset = 0;\n }\n hour = moment({ hour: setHour }).add(hourOffset, 'hours').hour();\n\n this.activeTime = moment({\n hour: hour,\n minute: moment(this.activeTime).get('minute') + 0,\n }).toDate();\n this.selectedTimeChanged.emit(this.selectedTime);\n }\n\n public get selectedHour(): number {\n if (!this.is8601) {\n /* istanbul ignore next */\n return parseInt(moment(this.activeTime).format('h'), 0) || 1;\n }\n /* istanbul ignore else */\n if (this.is8601) {\n return moment(this.activeTime).hour() + 0;\n }\n }\n\n public set selectedMeridies(meridies: string) {\n /* istanbul ignore else */\n if (!this.is8601) {\n if (meridies.trim() !== this.selectedMeridies) {\n this.activeTime = moment(this.activeTime).add(12, 'hours').toDate();\n this.selectedTimeChanged.emit(this.selectedTime);\n }\n }\n }\n\n public get selectedMeridies(): string {\n if (this.activeTime) {\n return moment(this.activeTime).format('A');\n }\n return '';\n }\n\n public set selectedMinute(minute: number) {\n this.activeTime = moment({\n hour: moment(this.activeTime).get('hour') + 0,\n minute: minute,\n }).toDate();\n this.selectedTimeChanged.emit(this.selectedTime);\n }\n\n public get selectedMinute(): number {\n return moment(this.activeTime).minute() + 0;\n }\n\n public set selectedTime(newTime: SkyTimepickerTimeOutput) {\n if (typeof newTime !== 'undefined') {\n /* sanity check */\n /* istanbul ignore else */\n if (newTime.local !== 'Invalid date') {\n this.activeTime = newTime.iso8601;\n this.changeDetector.markForCheck();\n }\n }\n }\n\n public get selectedTime(): SkyTimepickerTimeOutput {\n const time: SkyTimepickerTimeOutput = {\n hour: moment(this.activeTime).hour(),\n minute: moment(this.activeTime).minute(),\n meridie: moment(this.activeTime).format('A'),\n timezone: parseInt(moment(this.activeTime).format('Z'), 10),\n iso8601: this.activeTime,\n local: moment(this.activeTime).format(this.localeFormat),\n customFormat:\n typeof this.returnFormat !== 'undefined'\n ? this.returnFormat\n : this.localeFormat,\n };\n\n return time;\n }\n\n public activeTime: Date;\n\n public hours: Array<number>;\n\n public is8601: boolean = false;\n\n public isOpen: boolean;\n\n public isVisible: boolean;\n\n public localeFormat: string;\n\n public minutes: Array<number>;\n\n public minuteMultiplier: number;\n\n public returnFormat: string;\n\n public timeFormat: string = 'hh';\n\n public timepickerId: string;\n\n public triggerButtonId: string;\n\n @ViewChild('timepickerRef', {\n read: ElementRef,\n })\n private set timepickerRef(value: ElementRef) {\n if (value) {\n this._timepickerRef = value;\n\n // Wait for the timepicker component to render before guaging dimensions.\n setTimeout(() => {\n this.destroyAffixer();\n this.createAffixer();\n\n setTimeout(() => {\n this.coreAdapter.getFocusableChildrenAndApplyFocus(\n this.timepickerRef,\n '.sky-timepicker-content',\n false\n );\n\n this.isVisible = true;\n this.changeDetector.markForCheck();\n });\n });\n }\n }\n\n private get timepickerRef(): ElementRef {\n return this._timepickerRef;\n }\n\n @ViewChild('timepickerTemplateRef', {\n read: TemplateRef,\n })\n private timepickerTemplateRef: TemplateRef<any>;\n\n @ViewChild('triggerButtonRef', {\n read: ElementRef,\n })\n private triggerButtonRef: ElementRef;\n\n @ViewChild('inputTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private inputTemplateRef: TemplateRef<any>;\n\n @ViewChild('triggerButtonTemplateRef', {\n read: TemplateRef,\n static: true,\n })\n private triggerButtonTemplateRef: TemplateRef<any>;\n\n private affixer: SkyAffixer;\n\n private timepickerUnsubscribe: Subject<void>;\n\n private ngUnsubscribe = new Subject();\n\n private overlay: SkyOverlayInstance;\n\n private overlayKeydownListner: Subscription;\n\n private _disabled: boolean;\n\n private _timepickerRef: ElementRef;\n\n constructor(\n private affixService: SkyAffixService,\n private changeDetector: ChangeDetectorRef,\n private coreAdapter: SkyCoreAdapterService,\n private overlayService: SkyOverlayService,\n @Optional() public inputBoxHostService?: SkyInputBoxHostService,\n @Optional() themeSvc?: SkyThemeService\n ) {\n const uniqueId = nextId++;\n this.timepickerId = `sky-timepicker-${uniqueId}`;\n this.triggerButtonId = `sky-timepicker-button-${uniqueId}`;\n\n // Update icons when theme changes.\n themeSvc?.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n this.setFormat(this.timeFormat);\n this.addKeydownListner();\n\n if (this.inputBoxHostService) {\n this.inputBoxHostService.populate({\n inputTemplate: this.inputTemplateRef,\n buttonsTemplate: this.triggerButtonTemplateRef,\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.removePickerEventListeners();\n this.destroyAffixer();\n this.destroyOverlay();\n }\n\n public setFormat(format: string): void {\n let h: number = 12;\n let m: number = 12;\n let minuteMultiplier: number = 5;\n let localeFormat: string = 'h:mm A';\n if (format === 'hh') {\n h = 12;\n m = 12;\n minuteMultiplier = 5;\n localeFormat = 'h:mm A';\n this.is8601 = false;\n }\n if (format === 'HH') {\n h = 24;\n m = 4;\n minuteMultiplier = 15;\n localeFormat = 'HH:mm';\n this.is8601 = true;\n }\n let data: {\n hours: Array<number>;\n minutes: Array<number>;\n localeFormat: string;\n minuteMultiplier: number;\n };\n\n data = {\n hours: Array.apply(undefined, Array(h)).map(function (\n x: number,\n i: number\n ) {\n if (format === 'hh') {\n return ++i;\n }\n /* istanbul ignore else */\n if (format === 'HH') {\n return i;\n }\n /* istanbul ignore next */\n /* sanity check */\n return 0;\n }),\n minutes: Array.apply(undefined, Array(m)).map(function (\n x: number,\n i: number\n ) {\n return i * minuteMultiplier;\n }),\n localeFormat: localeFormat,\n minuteMultiplier: minuteMultiplier,\n };\n\n this.hours = data.hours;\n this.minutes = data.minutes;\n this.localeFormat = data.localeFormat;\n this.minuteMultiplier = data.minuteMultiplier;\n }\n\n public onCloseButtonCick(): void {\n this.closePicker();\n }\n\n public setTime(event: any): void {\n /* istanbul ignore else */\n if (typeof event !== 'undefined') {\n /* istanbul ignore else */\n if (event.type === 'click') {\n event.stopPropagation();\n if (event.target.name === 'hour') {\n this.selectedHour = parseInt(event.target.innerHTML, 0);\n }\n if (event.target.name === 'minute') {\n this.selectedMinute = parseInt(event.target.innerHTML, 0);\n }\n if (event.target.name === 'meridie') {\n this.selectedMeridies = event.target.innerHTML;\n }\n }\n }\n }\n\n public onTriggerButtonClick(): void {\n this.openPicker();\n }\n\n private closePicker() {\n this.destroyAffixer();\n this.destroyOverlay();\n this.removePickerEventListeners();\n this.triggerButtonRef.nativeElement.focus();\n this.isOpen = false;\n }\n\n private openPicker(): void {\n this.isVisible = false;\n this.changeDetector.markForCheck();\n\n this.removePickerEventListeners();\n this.timepickerUnsubscribe = new Subject<void>();\n this.destroyOverlay();\n this.createOverlay();\n\n this.isOpen = true;\n this.changeDetector.markForCheck();\n }\n\n private createAffixer(): void {\n const affixer = this.affixService.createAffixer(this.timepickerRef);\n\n // Hide timepicker when trigger button is scrolled off screen.\n affixer.placementChange\n .pipe(takeUntil(this.timepickerUnsubscribe))\n .subscribe((change) => {\n this.isVisible = change.placement !== null;\n this.changeDetector.markForCheck();\n });\n\n affixer.affixTo(this.triggerButtonRef.nativeElement, {\n autoFitContext: SkyAffixAutoFitContext.Viewport,\n enableAutoFit: true,\n horizontalAlignment: 'right',\n isSticky: true,\n placement: 'below',\n });\n\n this.affixer = affixer;\n }\n\n private destroyAffixer(): void {\n /*istanbul ignore else*/\n if (this.affixer) {\n this.affixer.destroy();\n this.affixer = undefined;\n }\n }\n\n private createOverlay(): void {\n const overlay = this.overlayService.create({\n enableClose: false,\n enablePointerEvents: false,\n });\n\n overlay.backdropClick\n .pipe(takeUntil(this.timepickerUnsubscribe))\n .subscribe(() => {\n /* istanbul ignore else */\n if (this.isOpen) {\n this.closePicker();\n }\n });\n\n this.addKeydownListner();\n\n overlay.attachTemplate(this.timepickerTemplateRef);\n\n this.overlay = overlay;\n }\n\n private destroyOverlay(): void {\n /*istanbul ignore else*/\n if (this.overlay) {\n this.overlayService.close(this.overlay);\n this.overlay = undefined;\n }\n }\n\n private addKeydownListner(): void {\n this.overlayKeydownListner = fromEvent(window.document, 'keydown')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: KeyboardEvent) => {\n const key = event.key?.toLowerCase();\n /* istanbul ignore else */\n if (key === 'escape' && this.isOpen) {\n this.closePicker();\n }\n });\n }\n\n private removePickerEventListeners(): void {\n /* istanbul ignore else */\n if (this.timepickerUnsubscribe) {\n this.timepickerUnsubscribe.next();\n this.timepickerUnsubscribe.complete();\n this.timepickerUnsubscribe = undefined;\n }\n /* istanbul ignore next */\n this.overlayKeydownListner?.unsubscribe();\n }\n}\n","<div class=\"sky-timepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-timepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? timepickerId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"'skyux_timepicker_button_label' | skyLibResources\"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_timepicker_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"clock-o\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"clock\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #timepickerTemplateRef>\n <div\n class=\"sky-timepicker-container sky-shadow sky-box sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"timepickerId\"\n [class.sky-timepicker-hidden]=\"!isVisible\"\n #timepickerRef\n >\n <div class=\"sky-timepicker-content\">\n <section\n class=\"sky-timepicker-column\"\n [ngClass]=\"{ 'sky-timepicker-24hour': is8601 }\"\n >\n <ol>\n <li *ngFor=\"let hour of hours\">\n <button\n name=\"hour\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedHour === hour }\"\n (click)=\"setTime($event)\"\n >\n {{ hour }}\n </button>\n </li>\n </ol>\n </section>\n <section class=\"sky-timepicker-column\">\n <ol>\n <li *ngFor=\"let minute of minutes\">\n <button\n name=\"minute\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMinute === minute }\"\n (click)=\"setTime($event)\"\n >\n {{ '00'.substring(0, 2 - minute.toString().length) + minute }}\n </button>\n </li>\n </ol>\n </section>\n <section *ngIf=\"!is8601\" class=\"sky-timepicker-column\">\n <ol>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'AM' }\"\n (click)=\"setTime($event)\"\n >\n AM\n </button>\n </li>\n <li>\n <button\n name=\"meridie\"\n type=\"button\"\n [ngClass]=\"{ 'sky-btn-active': selectedMeridies === 'PM' }\"\n (click)=\"setTime($event)\"\n >\n PM\n </button>\n </li>\n </ol>\n </section>\n </div>\n <div class=\"sky-timepicker-footer\">\n <section class=\"sky-timepicker-column\">\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"onCloseButtonCick()\"\n >\n {{ 'skyux_timepicker_close' | skyLibResources }}\n </button>\n </section>\n </div>\n </div>\n</ng-template>\n"]}
@@ -0,0 +1,229 @@
1
+ import { ChangeDetectorRef, Directive, ElementRef, forwardRef, HostListener, Input, Renderer2, } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
+ import { SkyLibResourcesService } from '@skyux/i18n';
4
+ import { SkyTimepickerComponent } from './timepicker.component';
5
+ import moment from 'moment';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@skyux/i18n";
8
+ // tslint:disable:no-forward-ref no-use-before-declare
9
+ const SKY_TIMEPICKER_VALUE_ACCESSOR = {
10
+ provide: NG_VALUE_ACCESSOR,
11
+ useExisting: forwardRef(() => SkyTimepickerInputDirective),
12
+ multi: true,
13
+ };
14
+ const SKY_TIMEPICKER_VALIDATOR = {
15
+ provide: NG_VALIDATORS,
16
+ useExisting: forwardRef(() => SkyTimepickerInputDirective),
17
+ multi: true,
18
+ };
19
+ // tslint:enable
20
+ export class SkyTimepickerInputDirective {
21
+ constructor(renderer, elRef, resourcesService, changeDetector) {
22
+ this.renderer = renderer;
23
+ this.elRef = elRef;
24
+ this.resourcesService = resourcesService;
25
+ this.changeDetector = changeDetector;
26
+ this._timeFormat = 'hh';
27
+ /*istanbul ignore next */
28
+ this._onChange = (_) => { };
29
+ /*istanbul ignore next */
30
+ this._onTouched = () => { };
31
+ /* istanbul ignore next */
32
+ this._validatorChange = () => { };
33
+ }
34
+ /**
35
+ * Creates the timepicker input field and picker. Place this attribute on an `input` element,
36
+ * and wrap the input in a `sky-timepicker` component.
37
+ * This attribute must be set to the instance of the `sky-timepicker`.
38
+ * @required
39
+ */
40
+ get skyTimepickerInput() {
41
+ return this._skyTimepickerInput;
42
+ }
43
+ set skyTimepickerInput(value) {
44
+ this._skyTimepickerInput = value;
45
+ this.updateTimepickerInput();
46
+ }
47
+ /**
48
+ * Specifies the 12-hour `hh` or 24-hour `HH` time format for the input.
49
+ * @default "hh"
50
+ */
51
+ set timeFormat(value) {
52
+ this._timeFormat = value;
53
+ }
54
+ get timeFormat() {
55
+ return this._timeFormat || 'hh';
56
+ }
57
+ /**
58
+ * Indicates whether to disable the timepicker.
59
+ * @default false
60
+ */
61
+ get disabled() {
62
+ return this._disabled || false;
63
+ }
64
+ set disabled(value) {
65
+ this._disabled = value;
66
+ this.updateTimepickerInput();
67
+ this.renderer.setProperty(this.elRef.nativeElement, 'disabled', value);
68
+ }
69
+ get modelValue() {
70
+ return this._modelValue;
71
+ }
72
+ set modelValue(value) {
73
+ if (value !== this._modelValue) {
74
+ this._modelValue = value;
75
+ this.updateTimepickerInput();
76
+ this.setInputValue(value);
77
+ this._validatorChange();
78
+ this._onChange(value);
79
+ }
80
+ }
81
+ ngOnInit() {
82
+ this.renderer.addClass(this.elRef.nativeElement, 'sky-form-control');
83
+ this.pickerChangedSubscription =
84
+ this.skyTimepickerInput.selectedTimeChanged.subscribe((newTime) => {
85
+ this.writeValue(newTime);
86
+ this._onTouched();
87
+ });
88
+ /* istanbul ignore else */
89
+ if (!this.elRef.nativeElement.getAttribute('aria-label')) {
90
+ this.resourcesService
91
+ .getString('skyux_timepicker_input_default_label')
92
+ .subscribe((value) => {
93
+ this.renderer.setAttribute(this.elRef.nativeElement, 'aria-label', value);
94
+ });
95
+ }
96
+ }
97
+ ngAfterContentInit() {
98
+ // Watch for the control to be added and initialize the value immediately.
99
+ /* istanbul ignore else */
100
+ if (this.control && this.control.parent) {
101
+ this.control.setValue(this.modelValue, {
102
+ emitEvent: false,
103
+ });
104
+ this.changeDetector.markForCheck();
105
+ }
106
+ }
107
+ ngOnDestroy() {
108
+ this.pickerChangedSubscription.unsubscribe();
109
+ }
110
+ ngOnChanges() {
111
+ this.skyTimepickerInput.setFormat(this.timeFormat);
112
+ this.skyTimepickerInput.returnFormat = this.returnFormat;
113
+ }
114
+ onChange(event) {
115
+ this.writeValue(event.target.value);
116
+ }
117
+ /* istanbul ignore next */
118
+ onBlur() {
119
+ this._onTouched();
120
+ }
121
+ registerOnChange(fn) {
122
+ this._onChange = fn;
123
+ }
124
+ registerOnTouched(fn) {
125
+ this._onTouched = fn;
126
+ }
127
+ registerOnValidatorChange(fn) {
128
+ this._validatorChange = fn;
129
+ }
130
+ setDisabledState(isDisabled) {
131
+ this.disabled = isDisabled;
132
+ }
133
+ writeValue(value) {
134
+ this.modelValue = this.formatter(value);
135
+ }
136
+ validate(control) {
137
+ if (!this.control) {
138
+ this.control = control;
139
+ }
140
+ let value = control.value;
141
+ if (!value) {
142
+ return undefined;
143
+ }
144
+ /* istanbul ignore next */
145
+ if (value.local === 'Invalid date') {
146
+ return {
147
+ skyTime: {
148
+ invalid: control.value,
149
+ },
150
+ };
151
+ }
152
+ return undefined;
153
+ }
154
+ setInputValue(value) {
155
+ let formattedValue = '';
156
+ if (value) {
157
+ const output = moment(value).format(value.customFormat);
158
+ /* istanbul ignore else */
159
+ if (output !== 'Invalid date') {
160
+ formattedValue = output;
161
+ }
162
+ }
163
+ this.renderer.setProperty(this.elRef.nativeElement, 'value', formattedValue);
164
+ }
165
+ formatter(time) {
166
+ if (time && typeof time !== 'string' && 'local' in time) {
167
+ return time;
168
+ }
169
+ if (typeof time === 'string') {
170
+ if (time.length === 0) {
171
+ return '';
172
+ }
173
+ let currentFormat;
174
+ let formatTime;
175
+ if (this.timeFormat === 'hh') {
176
+ currentFormat = 'h:mm A';
177
+ }
178
+ if (this.timeFormat === 'HH') {
179
+ currentFormat = 'H:mm';
180
+ }
181
+ if (typeof this.returnFormat === 'undefined') {
182
+ this.returnFormat = currentFormat;
183
+ }
184
+ formatTime = {
185
+ hour: moment(time, currentFormat).hour(),
186
+ minute: moment(time, currentFormat).minute(),
187
+ meridie: moment(time, currentFormat).format('A'),
188
+ timezone: parseInt(moment(time, currentFormat).format('Z'), 10),
189
+ iso8601: moment(time, currentFormat).toDate(),
190
+ local: moment(time, currentFormat).format(currentFormat),
191
+ customFormat: this.returnFormat,
192
+ };
193
+ return formatTime;
194
+ }
195
+ }
196
+ updateTimepickerInput() {
197
+ if (this.skyTimepickerInput) {
198
+ this.skyTimepickerInput.disabled = this.disabled;
199
+ /* istanbul ignore else */
200
+ if (this.skyTimepickerInput.selectedTime !== this.modelValue) {
201
+ this.skyTimepickerInput.selectedTime = this.modelValue;
202
+ }
203
+ }
204
+ }
205
+ }
206
+ SkyTimepickerInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerInputDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.SkyLibResourcesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
207
+ SkyTimepickerInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyTimepickerInputDirective, selector: "[skyTimepickerInput]", inputs: { skyTimepickerInput: "skyTimepickerInput", timeFormat: "timeFormat", returnFormat: "returnFormat", disabled: "disabled" }, host: { listeners: { "change": "onChange($event)", "blur": "onBlur()" } }, providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR], usesOnChanges: true, ngImport: i0 });
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerInputDirective, decorators: [{
209
+ type: Directive,
210
+ args: [{
211
+ selector: '[skyTimepickerInput]',
212
+ providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR],
213
+ }]
214
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.SkyLibResourcesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { skyTimepickerInput: [{
215
+ type: Input
216
+ }], timeFormat: [{
217
+ type: Input
218
+ }], returnFormat: [{
219
+ type: Input
220
+ }], disabled: [{
221
+ type: Input
222
+ }], onChange: [{
223
+ type: HostListener,
224
+ args: ['change', ['$event']]
225
+ }], onBlur: [{
226
+ type: HostListener,
227
+ args: ['blur']
228
+ }] } });
229
+ //# sourceMappingURL=timepicker.directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timepicker.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/timepicker/timepicker.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterContentInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Renderer2,\n} from '@angular/core';\n\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n Validator,\n} from '@angular/forms';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subscription } from 'rxjs';\n\nimport { SkyTimepickerComponent } from './timepicker.component';\n\nimport { SkyTimepickerTimeOutput } from './timepicker.interface';\n\nimport moment from 'moment';\n\n// tslint:disable:no-forward-ref no-use-before-declare\nconst SKY_TIMEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SkyTimepickerInputDirective),\n multi: true,\n};\n\nconst SKY_TIMEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => SkyTimepickerInputDirective),\n multi: true,\n};\n\n// tslint:enable\n@Directive({\n selector: '[skyTimepickerInput]',\n providers: [SKY_TIMEPICKER_VALUE_ACCESSOR, SKY_TIMEPICKER_VALIDATOR],\n})\nexport class SkyTimepickerInputDirective\n implements\n OnInit,\n OnDestroy,\n ControlValueAccessor,\n Validator,\n OnChanges,\n AfterContentInit\n{\n public pickerChangedSubscription: Subscription;\n private _timeFormat: string = 'hh';\n\n /**\n * Creates the timepicker input field and picker. Place this attribute on an `input` element,\n * and wrap the input in a `sky-timepicker` component.\n * This attribute must be set to the instance of the `sky-timepicker`.\n * @required\n */\n @Input()\n public get skyTimepickerInput(): SkyTimepickerComponent {\n return this._skyTimepickerInput;\n }\n\n public set skyTimepickerInput(value: SkyTimepickerComponent) {\n this._skyTimepickerInput = value;\n this.updateTimepickerInput();\n }\n\n /**\n * Specifies the 12-hour `hh` or 24-hour `HH` time format for the input.\n * @default \"hh\"\n */\n @Input()\n public set timeFormat(value: string) {\n this._timeFormat = value;\n }\n\n public get timeFormat(): string {\n return this._timeFormat || 'hh';\n }\n\n /**\n * Specifies a custom time format. For examples,\n * see the [moment.js](https://momentjs.com/docs/#/displaying/format/) docs.\n */\n @Input()\n public returnFormat: string;\n\n /**\n * Indicates whether to disable the timepicker.\n * @default false\n */\n @Input()\n public get disabled(): boolean {\n return this._disabled || false;\n }\n\n public set disabled(value: boolean) {\n this._disabled = value;\n\n this.updateTimepickerInput();\n\n this.renderer.setProperty(this.elRef.nativeElement, 'disabled', value);\n }\n\n private get modelValue(): SkyTimepickerTimeOutput {\n return this._modelValue;\n }\n\n private set modelValue(value: SkyTimepickerTimeOutput) {\n if (value !== this._modelValue) {\n this._modelValue = value;\n this.updateTimepickerInput();\n this.setInputValue(value);\n this._validatorChange();\n this._onChange(value);\n }\n }\n\n private control: AbstractControl;\n\n private _disabled: boolean;\n private _modelValue: SkyTimepickerTimeOutput;\n private _skyTimepickerInput: SkyTimepickerComponent;\n\n constructor(\n private renderer: Renderer2,\n private elRef: ElementRef,\n private resourcesService: SkyLibResourcesService,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public ngOnInit() {\n this.renderer.addClass(this.elRef.nativeElement, 'sky-form-control');\n this.pickerChangedSubscription =\n this.skyTimepickerInput.selectedTimeChanged.subscribe(\n (newTime: String) => {\n this.writeValue(newTime);\n this._onTouched();\n }\n );\n\n /* istanbul ignore else */\n if (!this.elRef.nativeElement.getAttribute('aria-label')) {\n this.resourcesService\n .getString('skyux_timepicker_input_default_label')\n .subscribe((value: string) => {\n this.renderer.setAttribute(\n this.elRef.nativeElement,\n 'aria-label',\n value\n );\n });\n }\n }\n\n public ngAfterContentInit(): void {\n // Watch for the control to be added and initialize the value immediately.\n /* istanbul ignore else */\n if (this.control && this.control.parent) {\n this.control.setValue(this.modelValue, {\n emitEvent: false,\n });\n this.changeDetector.markForCheck();\n }\n }\n\n public ngOnDestroy() {\n this.pickerChangedSubscription.unsubscribe();\n }\n\n public ngOnChanges() {\n this.skyTimepickerInput.setFormat(this.timeFormat);\n this.skyTimepickerInput.returnFormat = this.returnFormat;\n }\n\n @HostListener('change', ['$event'])\n public onChange(event: any) {\n this.writeValue(event.target.value);\n }\n\n /* istanbul ignore next */\n @HostListener('blur')\n public onBlur() {\n this._onTouched();\n }\n\n public registerOnChange(fn: (value: any) => any): void {\n this._onChange = fn;\n }\n public registerOnTouched(fn: () => any): void {\n this._onTouched = fn;\n }\n public registerOnValidatorChange(fn: () => void): void {\n this._validatorChange = fn;\n }\n\n public setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public writeValue(value: any) {\n this.modelValue = this.formatter(value);\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n if (!this.control) {\n this.control = control;\n }\n\n let value = control.value;\n if (!value) {\n return undefined;\n }\n\n /* istanbul ignore next */\n if (value.local === 'Invalid date') {\n return {\n skyTime: {\n invalid: control.value,\n },\n };\n }\n\n return undefined;\n }\n\n private setInputValue(value: SkyTimepickerTimeOutput): void {\n let formattedValue = '';\n if (value) {\n const output = moment(value).format(value.customFormat);\n /* istanbul ignore else */\n if (output !== 'Invalid date') {\n formattedValue = output;\n }\n }\n\n this.renderer.setProperty(\n this.elRef.nativeElement,\n 'value',\n formattedValue\n );\n }\n\n private formatter(time: any) {\n if (time && typeof time !== 'string' && 'local' in time) {\n return time;\n }\n if (typeof time === 'string') {\n if (time.length === 0) {\n return '';\n }\n let currentFormat: string;\n let formatTime: SkyTimepickerTimeOutput;\n if (this.timeFormat === 'hh') {\n currentFormat = 'h:mm A';\n }\n if (this.timeFormat === 'HH') {\n currentFormat = 'H:mm';\n }\n if (typeof this.returnFormat === 'undefined') {\n this.returnFormat = currentFormat;\n }\n formatTime = {\n hour: moment(time, currentFormat).hour(),\n minute: moment(time, currentFormat).minute(),\n meridie: moment(time, currentFormat).format('A'),\n timezone: parseInt(moment(time, currentFormat).format('Z'), 10),\n iso8601: moment(time, currentFormat).toDate(),\n local: moment(time, currentFormat).format(currentFormat),\n customFormat: this.returnFormat,\n };\n return formatTime;\n }\n }\n\n private updateTimepickerInput(): void {\n if (this.skyTimepickerInput) {\n this.skyTimepickerInput.disabled = this.disabled;\n\n /* istanbul ignore else */\n if (this.skyTimepickerInput.selectedTime !== this.modelValue) {\n this.skyTimepickerInput.selectedTime = this.modelValue;\n }\n }\n }\n\n /*istanbul ignore next */\n private _onChange = (_: any) => {};\n /*istanbul ignore next */\n private _onTouched = () => {};\n /* istanbul ignore next */\n private _validatorChange = () => {};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=timepicker.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timepicker.interface.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/timepicker/timepicker.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyTimepickerTimeOutput {\n /**\n * Specifies the hour.\n */\n hour: number;\n\n /**\n * Specifies the minute.\n */\n minute: number;\n\n /**\n * Specifies the meridian (`AM` or `PM`).\n */\n meridie: string;\n\n /**\n * Specifies the time zone.\n */\n timezone: number;\n\n /**\n * Specifies the date in [iso8601 format](https://www.iso.org/iso-8601-date-and-time-format.html).\n */\n iso8601: Date;\n\n /**\n * Specifies the date in the current local time format.\n */\n local: string;\n\n /**\n * Specifies the time format string.\n */\n customFormat: string;\n}\n"]}
@@ -0,0 +1,46 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkyAffixModule, SkyOverlayModule } from '@skyux/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { SkyI18nModule } from '@skyux/i18n';
5
+ import { SkyIconModule } from '@skyux/indicators';
6
+ import { SkyThemeModule } from '@skyux/theme';
7
+ import { SkyTimepickerInputDirective } from './timepicker.directive';
8
+ import { SkyTimepickerComponent } from './timepicker.component';
9
+ import { SkyDatetimeResourcesModule } from '../shared/sky-datetime-resources.module';
10
+ import * as i0 from "@angular/core";
11
+ export class SkyTimepickerModule {
12
+ }
13
+ SkyTimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ SkyTimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerModule, declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent], imports: [CommonModule,
15
+ SkyI18nModule,
16
+ SkyIconModule,
17
+ SkyDatetimeResourcesModule,
18
+ SkyAffixModule,
19
+ SkyOverlayModule,
20
+ SkyThemeModule], exports: [SkyTimepickerInputDirective, SkyTimepickerComponent] });
21
+ SkyTimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerModule, imports: [[
22
+ CommonModule,
23
+ SkyI18nModule,
24
+ SkyIconModule,
25
+ SkyDatetimeResourcesModule,
26
+ SkyAffixModule,
27
+ SkyOverlayModule,
28
+ SkyThemeModule,
29
+ ]] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyTimepickerModule, decorators: [{
31
+ type: NgModule,
32
+ args: [{
33
+ declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent],
34
+ imports: [
35
+ CommonModule,
36
+ SkyI18nModule,
37
+ SkyIconModule,
38
+ SkyDatetimeResourcesModule,
39
+ SkyAffixModule,
40
+ SkyOverlayModule,
41
+ SkyThemeModule,
42
+ ],
43
+ exports: [SkyTimepickerInputDirective, SkyTimepickerComponent],
44
+ }]
45
+ }] });
46
+ //# sourceMappingURL=timepicker.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timepicker.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/datetime/src/lib/modules/timepicker/timepicker.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;;AAerF,MAAM,OAAO,mBAAmB;;iHAAnB,mBAAmB;kHAAnB,mBAAmB,iBAZf,2BAA2B,EAAE,sBAAsB,aAEhE,YAAY;QACZ,aAAa;QACb,aAAa;QACb,0BAA0B;QAC1B,cAAc;QACd,gBAAgB;QAChB,cAAc,aAEN,2BAA2B,EAAE,sBAAsB;kHAElD,mBAAmB,YAXrB;YACP,YAAY;YACZ,aAAa;YACb,aAAa;YACb,0BAA0B;YAC1B,cAAc;YACd,gBAAgB;YAChB,cAAc;SACf;4FAGU,mBAAmB;kBAb/B,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,2BAA2B,EAAE,sBAAsB,CAAC;oBACnE,OAAO,EAAE;wBACP,YAAY;wBACZ,aAAa;wBACb,aAAa;wBACb,0BAA0B;wBAC1B,cAAc;wBACd,gBAAgB;wBAChB,cAAc;qBACf;oBACD,OAAO,EAAE,CAAC,2BAA2B,EAAE,sBAAsB,CAAC;iBAC/D","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyTimepickerInputDirective } from './timepicker.directive';\n\nimport { SkyTimepickerComponent } from './timepicker.component';\nimport { SkyDatetimeResourcesModule } from '../shared/sky-datetime-resources.module';\n\n@NgModule({\n declarations: [SkyTimepickerInputDirective, SkyTimepickerComponent],\n imports: [\n CommonModule,\n SkyI18nModule,\n SkyIconModule,\n SkyDatetimeResourcesModule,\n SkyAffixModule,\n SkyOverlayModule,\n SkyThemeModule,\n ],\n exports: [SkyTimepickerInputDirective, SkyTimepickerComponent],\n})\nexport class SkyTimepickerModule {}\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kYXRldGltZS9zcmMvc2t5dXgtZGF0ZXRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
4
+ export * from './index';
5
+ //# sourceMappingURL=skyux-datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-datetime.js","sourceRoot":"","sources":["../../../../../libs/components/datetime/src/skyux-datetime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -51,4 +51,4 @@ export class SkyDatepickerFixture {
51
51
  return this.debugEl.query(By.css('.sky-datepicker input'));
52
52
  }
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvdGVzdGluZy9zcmMvZGF0ZXBpY2tlci1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBWSxPQUE4QixFQUFFLFNBQWlCO1FBQzNELElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3RELE9BQU8sRUFDUCxTQUFTLEVBQ1QsZ0JBQWdCLENBQ2pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQy9CLEVBQUUsQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FDMUQsQ0FBQyxhQUFhLENBQUM7UUFFaEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsOENBQThDO1lBQzlDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksK0JBQStCO1FBQ3BDLElBQUksQ0FBQyxPQUFPO2FBQ1QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQzthQUNoRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxRQUFnQjtRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFNUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixRQUFRLEdBQUcsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJ5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IFNreUFwcFRlc3RVdGlsaXR5IH0gZnJvbSAnQHNreXV4LXNkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBbGxvd3MgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBkYXRlcGlja2VyIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJGaXh0dXJlIHtcbiAgcHJpdmF0ZSBkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LCBza3lUZXN0SWQ6IHN0cmluZykge1xuICAgIHRoaXMuZGVidWdFbCA9IFNreUFwcFRlc3RVdGlsaXR5LmdldERlYnVnRWxlbWVudEJ5VGVzdElkKFxuICAgICAgZml4dHVyZSxcbiAgICAgIHNreVRlc3RJZCxcbiAgICAgICdza3ktZGF0ZXBpY2tlcidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlcGlja2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRlcGlja2VySW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIGlmIGRhdGVwaWNrZXIgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERhdGVwaWNrZXJJbnB1dEVsKCkubmF0aXZlRWxlbWVudC5kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZXBpY2tlcidzIGNhbGVuZGFyIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNhbGVuZGFyRWwoKTogYW55IHtcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmRlYnVnRWwucXVlcnkoXG4gICAgICBCeS5jc3MoJy5za3ktZGF0ZXBpY2tlciAuc2t5LWlucHV0LWdyb3VwLWRhdGVwaWNrZXItYnRuJylcbiAgICApLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBjYWxlbmRhcklkID0gYnV0dG9uLmdldEF0dHJpYnV0ZSgnYXJpYS1jb250cm9scycpO1xuICAgIGlmICghY2FsZW5kYXJJZCkge1xuICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW51bGwta2V5d29yZCAqL1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhbGVuZGFySWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIHRoZSBjYWxlbmRhciBidXR0b24gdG8gb3BlbiBvciBjbG9zZSBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBjbGlja0RhdGVwaWNrZXJDYWxlbmRlckJ1dHRvbkVsKCk6IHZvaWQge1xuICAgIHRoaXMuZGVidWdFbFxuICAgICAgLnF1ZXJ5KEJ5LmNzcygnLnNreS1kYXRlcGlja2VyIC5za3ktaW5wdXQtZ3JvdXAtZGF0ZXBpY2tlci1idG4nKSlcbiAgICAgIC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgY2xpY2tEYXlFbChkYXlJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZGF5RWxzID0gdGhpcy5jYWxlbmRhckVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5za3ktZGF0ZXBpY2tlci1idG4tZGF0ZScpO1xuXG4gICAgY29uc3QgZGF5RWwgPSBkYXlFbHNbZGF5SW5kZXhdO1xuXG4gICAgaWYgKCFkYXlFbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBkYXkgZXhpc3RzIGF0IGluZGV4ICR7ZGF5SW5kZXh9LmApO1xuICAgIH1cblxuICAgIGRheUVsLmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVwaWNrZXJJbnB1dEVsKCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktZGF0ZXBpY2tlciBpbnB1dCcpKTtcbiAgfVxufVxuIl19
54
+ //# sourceMappingURL=datepicker-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datepicker-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/datetime/testing/src/datepicker-fixture.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAG/B,YAAY,OAA8B,EAAE,SAAiB;QAC3D,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,OAAO,EACP,SAAS,EACT,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAC/B,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAC1D,CAAC,aAAa,CAAC;QAEhB,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,EAAE;YACf,8CAA8C;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,OAAO,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,+BAA+B;QACpC,IAAI,CAAC,OAAO;aACT,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;aAChE,aAAa,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEM,UAAU,CAAC,QAAgB;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;QAE5E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,GAAG,CAAC,CAAC;SACxD;QAED,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX datepicker component.\n */\nexport class SkyDatepickerFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-datepicker'\n );\n }\n\n /**\n * The datepicker's currently selected date.\n */\n public get date(): string {\n return this.getDatepickerInputEl().nativeElement.value;\n }\n\n /**\n * Flag indicating if datepicker input is disabled.\n */\n public get disabled(): boolean {\n return this.getDatepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * The datepicker's calendar element.\n */\n public get calendarEl(): any {\n const button = this.debugEl.query(\n By.css('.sky-datepicker .sky-input-group-datepicker-btn')\n ).nativeElement;\n\n const calendarId = button.getAttribute('aria-controls');\n if (!calendarId) {\n /* tslint:disable-next-line:no-null-keyword */\n return null;\n }\n\n return document.getElementById(calendarId);\n }\n\n /**\n * Click the calendar button to open or close calendar.\n */\n public clickDatepickerCalenderButtonEl(): void {\n this.debugEl\n .query(By.css('.sky-datepicker .sky-input-group-datepicker-btn'))\n .nativeElement.click();\n }\n\n public clickDayEl(dayIndex: number): void {\n const dayEls = this.calendarEl.querySelectorAll('.sky-datepicker-btn-date');\n\n const dayEl = dayEls[dayIndex];\n\n if (!dayEl) {\n throw new Error(`No day exists at index ${dayIndex}.`);\n }\n\n dayEl.click();\n }\n\n private getDatepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-datepicker input'));\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  export * from './datepicker-fixture';
2
2
  export * from './timepicker-fixture';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRlcGlja2VyLWZpeHR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lcGlja2VyLWZpeHR1cmUnO1xuIl19
3
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../../libs/components/datetime/testing/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC","sourcesContent":["export * from './datepicker-fixture';\nexport * from './timepicker-fixture';\n"]}
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZGF0ZXRpbWUtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGV0aW1lL3Rlc3Rpbmcvc3JjL3NreXV4LWRhdGV0aW1lLXRlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
5
+ //# sourceMappingURL=skyux-datetime-testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-datetime-testing.js","sourceRoot":"","sources":["../../../../../../libs/components/datetime/testing/src/skyux-datetime-testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"]}
@@ -47,4 +47,4 @@ export class SkyTimepickerFixture {
47
47
  return this.debugEl.query(By.css('.sky-timepicker input'));
48
48
  }
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvdGVzdGluZy9zcmMvdGltZXBpY2tlci1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFDVSxPQUE4QixFQUM5QixTQUFpQjtRQURqQixZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRXpCLElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQ3RELElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLFNBQVMsRUFDZCxnQkFBZ0IsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUssQ0FBQyxLQUFhO1FBQzVCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3BFLGlCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU3QixpQkFBaUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVSxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FDbEUsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5cbmltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQWxsb3dzIGludGVyYWN0aW9uIHdpdGggYSBTS1kgVVggdGltZXBpY2tlciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lUaW1lcGlja2VyRml4dHVyZSB7XG4gIHByaXZhdGUgZGVidWdFbDogRGVidWdFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LFxuICAgIHByaXZhdGUgc2t5VGVzdElkOiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICB0aGlzLmZpeHR1cmUsXG4gICAgICB0aGlzLnNreVRlc3RJZCxcbiAgICAgICdza3ktdGltZXBpY2tlcidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lcGlja2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZXBpY2tlcklucHV0RWwoKS5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdGltZXBpY2tlcidzIHNlbGVjdGVkIHRpbWUuXG4gICAqL1xuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0aW1lcGlja2VySW5wdXRFbCA9IHRoaXMuZ2V0VGltZXBpY2tlcklucHV0RWwoKS5uYXRpdmVFbGVtZW50O1xuICAgIHRpbWVwaWNrZXJJbnB1dEVsLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5maXh0dXJlLmRldGVjdENoYW5nZXMoKTtcblxuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudCh0aW1lcGlja2VySW5wdXRFbCwgJ2NoYW5nZScpO1xuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIGlmIHRpbWVwaWNrZXIgaW5wdXQgaXMgZGlzYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGltZXBpY2tlcklucHV0RWwoKS5uYXRpdmVFbGVtZW50LmRpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdGltZXBpY2tlcidzIGRpc2FibGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmdldFRpbWVwaWNrZXJJbnB1dEVsKCkubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aW1lcGlja2VyIGlucHV0IGlzIHZhbGlkLlxuICAgKi9cbiAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5nZXRUaW1lcGlja2VySW5wdXRFbCgpLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgJ25nLWludmFsaWQnXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGltZXBpY2tlcklucHV0RWwoKTogRGVidWdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5kZWJ1Z0VsLnF1ZXJ5KEJ5LmNzcygnLnNreS10aW1lcGlja2VyIGlucHV0JykpO1xuICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=timepicker-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timepicker-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/datetime/testing/src/timepicker-fixture.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAG/B,YACU,OAA8B,EAC9B,SAAiB;QADjB,YAAO,GAAP,OAAO,CAAuB;QAC9B,cAAS,GAAT,SAAS,CAAQ;QAEzB,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,uBAAuB,CACtD,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,SAAS,EACd,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,IAAW,KAAK,CAAC,KAAa;QAC5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC;QACpE,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAE7B,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,IAAW,UAAU,CAAC,KAAc;QAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAClE,YAAY,CACb,CAAC;IACJ,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX timepicker component.\n */\nexport class SkyTimepickerFixture {\n private debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n this.skyTestId,\n 'sky-timepicker'\n );\n }\n\n /**\n * The timepicker's currently selected time.\n */\n public get value(): string {\n return this.getTimepickerInputEl().nativeElement.value;\n }\n\n /**\n * Set the timepicker's selected time.\n */\n public set value(value: string) {\n const timepickerInputEl = this.getTimepickerInputEl().nativeElement;\n timepickerInputEl.value = value;\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(timepickerInputEl, 'change');\n this.fixture.detectChanges();\n }\n\n /**\n * Flag indicating if timepicker input is disabled.\n */\n public get isDisabled(): boolean {\n return this.getTimepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * Set the timepicker's disabled value\n */\n public set isDisabled(value: boolean) {\n this.getTimepickerInputEl().nativeElement.disabled = value;\n }\n\n /**\n * Flag indicating if timepicker input is valid.\n */\n public get isValid(): boolean {\n return !this.getTimepickerInputEl().nativeElement.classList.contains(\n 'ng-invalid'\n );\n }\n\n private getTimepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-timepicker input'));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-datetime-testing.js","sources":["../../../projects/datetime/testing/src/datepicker-fixture.ts","../../../projects/datetime/testing/src/timepicker-fixture.ts","../../../projects/datetime/testing/src/skyux-datetime-testing.ts"],"sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX datepicker component.\n */\nexport class SkyDatepickerFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-datepicker'\n );\n }\n\n /**\n * The datepicker's currently selected date.\n */\n public get date(): string {\n return this.getDatepickerInputEl().nativeElement.value;\n }\n\n /**\n * Flag indicating if datepicker input is disabled.\n */\n public get disabled(): boolean {\n return this.getDatepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * The datepicker's calendar element.\n */\n public get calendarEl(): any {\n const button = this.debugEl.query(\n By.css('.sky-datepicker .sky-input-group-datepicker-btn')\n ).nativeElement;\n\n const calendarId = button.getAttribute('aria-controls');\n if (!calendarId) {\n /* tslint:disable-next-line:no-null-keyword */\n return null;\n }\n\n return document.getElementById(calendarId);\n }\n\n /**\n * Click the calendar button to open or close calendar.\n */\n public clickDatepickerCalenderButtonEl(): void {\n this.debugEl\n .query(By.css('.sky-datepicker .sky-input-group-datepicker-btn'))\n .nativeElement.click();\n }\n\n public clickDayEl(dayIndex: number): void {\n const dayEls = this.calendarEl.querySelectorAll('.sky-datepicker-btn-date');\n\n const dayEl = dayEls[dayIndex];\n\n if (!dayEl) {\n throw new Error(`No day exists at index ${dayIndex}.`);\n }\n\n dayEl.click();\n }\n\n private getDatepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-datepicker input'));\n }\n}\n","import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX timepicker component.\n */\nexport class SkyTimepickerFixture {\n private debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n this.skyTestId,\n 'sky-timepicker'\n );\n }\n\n /**\n * The timepicker's currently selected time.\n */\n public get value(): string {\n return this.getTimepickerInputEl().nativeElement.value;\n }\n\n /**\n * Set the timepicker's selected time.\n */\n public set value(value: string) {\n const timepickerInputEl = this.getTimepickerInputEl().nativeElement;\n timepickerInputEl.value = value;\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(timepickerInputEl, 'change');\n this.fixture.detectChanges();\n }\n\n /**\n * Flag indicating if timepicker input is disabled.\n */\n public get isDisabled(): boolean {\n return this.getTimepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * Set the timepicker's disabled value\n */\n public set isDisabled(value: boolean) {\n this.getTimepickerInputEl().nativeElement.disabled = value;\n }\n\n /**\n * Flag indicating if timepicker input is valid.\n */\n public get isValid(): boolean {\n return !this.getTimepickerInputEl().nativeElement.classList.contains(\n 'ng-invalid'\n );\n }\n\n private getTimepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-timepicker input'));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skyux-datetime-testing.js","sources":["../../../../../libs/components/datetime/testing/src/datepicker-fixture.ts","../../../../../libs/components/datetime/testing/src/timepicker-fixture.ts","../../../../../libs/components/datetime/testing/src/skyux-datetime-testing.ts"],"sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX datepicker component.\n */\nexport class SkyDatepickerFixture {\n private debugEl: DebugElement;\n\n constructor(fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-datepicker'\n );\n }\n\n /**\n * The datepicker's currently selected date.\n */\n public get date(): string {\n return this.getDatepickerInputEl().nativeElement.value;\n }\n\n /**\n * Flag indicating if datepicker input is disabled.\n */\n public get disabled(): boolean {\n return this.getDatepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * The datepicker's calendar element.\n */\n public get calendarEl(): any {\n const button = this.debugEl.query(\n By.css('.sky-datepicker .sky-input-group-datepicker-btn')\n ).nativeElement;\n\n const calendarId = button.getAttribute('aria-controls');\n if (!calendarId) {\n /* tslint:disable-next-line:no-null-keyword */\n return null;\n }\n\n return document.getElementById(calendarId);\n }\n\n /**\n * Click the calendar button to open or close calendar.\n */\n public clickDatepickerCalenderButtonEl(): void {\n this.debugEl\n .query(By.css('.sky-datepicker .sky-input-group-datepicker-btn'))\n .nativeElement.click();\n }\n\n public clickDayEl(dayIndex: number): void {\n const dayEls = this.calendarEl.querySelectorAll('.sky-datepicker-btn-date');\n\n const dayEl = dayEls[dayIndex];\n\n if (!dayEl) {\n throw new Error(`No day exists at index ${dayIndex}.`);\n }\n\n dayEl.click();\n }\n\n private getDatepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-datepicker input'));\n }\n}\n","import { ComponentFixture } from '@angular/core/testing';\n\nimport { DebugElement } from '@angular/core';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX timepicker component.\n */\nexport class SkyTimepickerFixture {\n private debugEl: DebugElement;\n\n constructor(\n private fixture: ComponentFixture<any>,\n private skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n this.fixture,\n this.skyTestId,\n 'sky-timepicker'\n );\n }\n\n /**\n * The timepicker's currently selected time.\n */\n public get value(): string {\n return this.getTimepickerInputEl().nativeElement.value;\n }\n\n /**\n * Set the timepicker's selected time.\n */\n public set value(value: string) {\n const timepickerInputEl = this.getTimepickerInputEl().nativeElement;\n timepickerInputEl.value = value;\n this.fixture.detectChanges();\n\n SkyAppTestUtility.fireDomEvent(timepickerInputEl, 'change');\n this.fixture.detectChanges();\n }\n\n /**\n * Flag indicating if timepicker input is disabled.\n */\n public get isDisabled(): boolean {\n return this.getTimepickerInputEl().nativeElement.disabled;\n }\n\n /**\n * Set the timepicker's disabled value\n */\n public set isDisabled(value: boolean) {\n this.getTimepickerInputEl().nativeElement.disabled = value;\n }\n\n /**\n * Flag indicating if timepicker input is valid.\n */\n public get isValid(): boolean {\n return !this.getTimepickerInputEl().nativeElement.classList.contains(\n 'ng-invalid'\n );\n }\n\n private getTimepickerInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-timepicker input'));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}