ngb-date-native-adapter.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /**
  2. * @fileoverview added by tsickle
  3. * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  4. */
  5. import * as tslib_1 from "tslib";
  6. import { Injectable } from '@angular/core';
  7. import { NgbDateAdapter } from './ngb-date-adapter';
  8. import { isInteger } from '../../util/util';
  9. /**
  10. * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses
  11. * native javascript dates as a user date model.
  12. */
  13. var NgbDateNativeAdapter = /** @class */ (function (_super) {
  14. tslib_1.__extends(NgbDateNativeAdapter, _super);
  15. function NgbDateNativeAdapter() {
  16. return _super !== null && _super.apply(this, arguments) || this;
  17. }
  18. /**
  19. * Converts a native `Date` to a `NgbDateStruct`.
  20. */
  21. /**
  22. * Converts a native `Date` to a `NgbDateStruct`.
  23. * @param {?} date
  24. * @return {?}
  25. */
  26. NgbDateNativeAdapter.prototype.fromModel = /**
  27. * Converts a native `Date` to a `NgbDateStruct`.
  28. * @param {?} date
  29. * @return {?}
  30. */
  31. function (date) {
  32. return (date instanceof Date && !isNaN(date.getTime())) ? this._fromNativeDate(date) : null;
  33. };
  34. /**
  35. * Converts a `NgbDateStruct` to a native `Date`.
  36. */
  37. /**
  38. * Converts a `NgbDateStruct` to a native `Date`.
  39. * @param {?} date
  40. * @return {?}
  41. */
  42. NgbDateNativeAdapter.prototype.toModel = /**
  43. * Converts a `NgbDateStruct` to a native `Date`.
  44. * @param {?} date
  45. * @return {?}
  46. */
  47. function (date) {
  48. return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) :
  49. null;
  50. };
  51. /**
  52. * @protected
  53. * @param {?} date
  54. * @return {?}
  55. */
  56. NgbDateNativeAdapter.prototype._fromNativeDate = /**
  57. * @protected
  58. * @param {?} date
  59. * @return {?}
  60. */
  61. function (date) {
  62. return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };
  63. };
  64. /**
  65. * @protected
  66. * @param {?} date
  67. * @return {?}
  68. */
  69. NgbDateNativeAdapter.prototype._toNativeDate = /**
  70. * @protected
  71. * @param {?} date
  72. * @return {?}
  73. */
  74. function (date) {
  75. /** @type {?} */
  76. var jsDate = new Date(date.year, date.month - 1, date.day, 12);
  77. // avoid 30 -> 1930 conversion
  78. jsDate.setFullYear(date.year);
  79. return jsDate;
  80. };
  81. NgbDateNativeAdapter.decorators = [
  82. { type: Injectable }
  83. ];
  84. return NgbDateNativeAdapter;
  85. }(NgbDateAdapter));
  86. export { NgbDateNativeAdapter };
  87. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdiLWRhdGUtbmF0aXZlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcC8iLCJzb3VyY2VzIjpbImRhdGVwaWNrZXIvYWRhcHRlcnMvbmdiLWRhdGUtbmF0aXZlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBTTFDO0lBQzBDLGdEQUFvQjtJQUQ5RDs7SUEyQkEsQ0FBQztJQXpCQzs7T0FFRzs7Ozs7O0lBQ0gsd0NBQVM7Ozs7O0lBQVQsVUFBVSxJQUFVO1FBQ2xCLE9BQU8sQ0FBQyxJQUFJLFlBQVksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM5RixDQUFDO0lBRUQ7O09BRUc7Ozs7OztJQUNILHNDQUFPOzs7OztJQUFQLFVBQVEsSUFBbUI7UUFDekIsT0FBTyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUM7SUFDN0YsQ0FBQzs7Ozs7O0lBRVMsOENBQWU7Ozs7O0lBQXpCLFVBQTBCLElBQVU7UUFDbEMsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDO0lBQ3JGLENBQUM7Ozs7OztJQUVTLDRDQUFhOzs7OztJQUF2QixVQUF3QixJQUFtQjs7WUFDbkMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDaEUsOEJBQThCO1FBQzlCLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O2dCQTFCRixVQUFVOztJQTJCWCwyQkFBQztDQUFBLEFBM0JELENBQzBDLGNBQWMsR0EwQnZEO1NBMUJZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nYkRhdGVBZGFwdGVyfSBmcm9tICcuL25nYi1kYXRlLWFkYXB0ZXInO1xuaW1wb3J0IHtOZ2JEYXRlU3RydWN0fSBmcm9tICcuLi9uZ2ItZGF0ZS1zdHJ1Y3QnO1xuaW1wb3J0IHtpc0ludGVnZXJ9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5cbi8qKlxuICogW2BOZ2JEYXRlQWRhcHRlcmBdKCMvY29tcG9uZW50cy9kYXRlcGlja2VyL2FwaSNOZ2JEYXRlQWRhcHRlcikgaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzXG4gKiBuYXRpdmUgamF2YXNjcmlwdCBkYXRlcyBhcyBhIHVzZXIgZGF0ZSBtb2RlbC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5nYkRhdGVOYXRpdmVBZGFwdGVyIGV4dGVuZHMgTmdiRGF0ZUFkYXB0ZXI8RGF0ZT4ge1xuICAvKipcbiAgICogQ29udmVydHMgYSBuYXRpdmUgYERhdGVgIHRvIGEgYE5nYkRhdGVTdHJ1Y3RgLlxuICAgKi9cbiAgZnJvbU1vZGVsKGRhdGU6IERhdGUpOiBOZ2JEYXRlU3RydWN0IHtcbiAgICByZXR1cm4gKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpID8gdGhpcy5fZnJvbU5hdGl2ZURhdGUoZGF0ZSkgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgYE5nYkRhdGVTdHJ1Y3RgIHRvIGEgbmF0aXZlIGBEYXRlYC5cbiAgICovXG4gIHRvTW9kZWwoZGF0ZTogTmdiRGF0ZVN0cnVjdCk6IERhdGUge1xuICAgIHJldHVybiBkYXRlICYmIGlzSW50ZWdlcihkYXRlLnllYXIpICYmIGlzSW50ZWdlcihkYXRlLm1vbnRoKSAmJiBpc0ludGVnZXIoZGF0ZS5kYXkpID8gdGhpcy5fdG9OYXRpdmVEYXRlKGRhdGUpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2Zyb21OYXRpdmVEYXRlKGRhdGU6IERhdGUpOiBOZ2JEYXRlU3RydWN0IHtcbiAgICByZXR1cm4ge3llYXI6IGRhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGg6IGRhdGUuZ2V0TW9udGgoKSArIDEsIGRheTogZGF0ZS5nZXREYXRlKCl9O1xuICB9XG5cbiAgcHJvdGVjdGVkIF90b05hdGl2ZURhdGUoZGF0ZTogTmdiRGF0ZVN0cnVjdCk6IERhdGUge1xuICAgIGNvbnN0IGpzRGF0ZSA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5LCAxMik7XG4gICAgLy8gYXZvaWQgMzAgLT4gMTkzMCBjb252ZXJzaW9uXG4gICAganNEYXRlLnNldEZ1bGxZZWFyKGRhdGUueWVhcik7XG4gICAgcmV0dXJuIGpzRGF0ZTtcbiAgfVxufVxuIl19