@esfaenza/material-dayjs-adapter 15.2.2 → 16.2.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.
@@ -383,13 +383,13 @@ export class DayJsDateAdapter extends DateAdapter {
383
383
  valuesArray[i] = valueFunction(i);
384
384
  return valuesArray;
385
385
  }
386
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable }); }
387
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter }); }
386
388
  }
387
- DayJsDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
388
- DayJsDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter });
389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, decorators: [{
389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter, decorators: [{
390
390
  type: Injectable
391
391
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
392
392
  type: Inject,
393
393
  args: [MAT_DATE_LOCALE]
394
394
  }] }]; } });
395
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF5anNEYXRlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWRheWpzLWFkYXB0ZXIvc3JjL2xpYi9hZGFwdGVyL0RheWpzRGF0ZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBV3RFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrQjtJQWVwRDs7OztPQUlHO0lBQ0gsWUFBcUMsVUFBa0I7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLE1BQWM7UUFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4Qiw0SUFBNEk7UUFDNUksUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDMUIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU07WUFDcEcseUlBQXlJO1lBQ3pJLDZFQUE2RTtZQUM3RSxLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFB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O0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLEtBQUssQ0FBSSxNQUFjLEVBQUUsYUFBbUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs7NkdBOWFRLGdCQUFnQixrQkFvQkwsZUFBZTtpSEFwQjFCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFxQk0sTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuXHJcbi8vIERheWpzXHJcbmltcG9ydCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcblxyXG4vKipcclxuICogRGljaGlhcmF6aW9uZSBkZWxsYSB2YXJpYWJpbGUgZ2xvYmFsZSBkYXlqcy4gTCdvbmVyZSBkaSBcImNyZWFybGFcIiDDqCBhZmZpZGF0byBhbGwnYXBwbGljYXppb25lIGNoZSB1dGlsaXp6YSBxdWVzdGEgbGlicmVyaWEsIFxyXG4gKiBjaGUgZG92csOgIGltcG9ydGFyZSBsbyBzY3JpcHQgZ2xvYmFsZSBkaSBkYXlqcyBuZWxsYSBDTElcclxuICovXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcblxyXG4vKipcclxuICogQWRhcHRlciBwZXIgcGVybWV0dGVyZSBhIE1hdGVyaWFsIGRpIGZ1bnppb25hcmUgc2VuemEgcHJvYmxlbWkgY29uIERheUpzLiBQZXIgYWx0cmkgcHJvdmlkZXIgZGkgZGF0ZSAoZXMuIG1vbWVudCkgbCdhZGFwdGVyIHZpZW5lIGZvcm5pdG8gXHJcbiAqIG5hdGl2YW1lbnRlIGRhIEFuZ3VsYXIuIFBlciBEYXlKcyBpbnZlY2UgYmlzb2duYSByZWltcGxlbWVudGFyc2Vsb1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF5SnNEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERheWpzPntcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRlaSBkYXRpIGRlbCBsb2NhbGUgSXRhbGlhbm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xyXG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXIsXHJcbiAgICAgICAgbG9uZ01vbnRoczogc3RyaW5nW10sXHJcbiAgICAgICAgc2hvcnRNb250aHM6IHN0cmluZ1tdLFxyXG4gICAgICAgIGRhdGVzOiBzdHJpbmdbXSxcclxuICAgICAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW10sXHJcbiAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXSxcclxuICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChNQVRfREFURV9MT0NBTEUpIGRhdGVMb2NhbGU6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0TG9jYWxlKGRhdGVMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpbCBsb2NhbGUgdXRpbGl6emF0byBwZXIgdHV0dGUgbGUgZGF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxlIExvY2FsZSBkYSBpbXBvc3RhcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xyXG5cclxuICAgICAgICAvLyBpbCBsb2NhbGVEYXRhIHNpIHBvdHJlYmJlIHByZW5kZXJlIGRhIHRoaXMuZGF5SnMoKS5sb2NhbGVEYXRhKCk7IG1hIGlvIHZvZ2xpbyB1c2FyZSBsZSBkYXRlIHNvbG8gbmVsIGZvcm1hdG8gaXRhbGlhbm8gcXVpbmRpIGNhYmxvIHF1ZWxsb1xyXG4gICAgICAgIHN3aXRjaCAobG9jYWxlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgY2FzZSAnaXQtaXQnOlxyXG4gICAgICAgICAgICBjYXNlICdpdCc6IGltcG9ydChcImRheWpzL2xvY2FsZS9pdFwiKS50aGVuKG1vZCA9PiB7IHRoaXMubG9hZExvYWNsZURhdGFNb2R1bGUobW9kLmRlZmF1bHQpIH0pOyBicmVhaztcclxuICAgICAgICAgICAgLy8gSW4gZGF5anMsIG5lbCBsb2NhbGUgXCJlblwiIGUgYmFzdGEgbm9uIGVzaXN0b25vIGkgMy80IGRlbGxlIGluZm8gcGVyY2jDqSBzb25vIGxlIGNvc2UgZ2VuZXJpY2hlIGVyZWRpdGF0ZSBkYWkgbG9jYWxpIGVuLWdiLCBlbi1hdSBlY2MuLi5cclxuICAgICAgICAgICAgLy8gcXVpbmRpIG1pIGJhc28gc3VsIGxvY2FsZSBpbmdsZXNlIEJyaXRhbm5pY28sIG1hIGNvbXVucXVlIEkndHMgQ29taW5nIFJvbWVcclxuICAgICAgICAgICAgY2FzZSAnZW4tdXMnOlxyXG4gICAgICAgICAgICBjYXNlICdlbi1nYic6XHJcbiAgICAgICAgICAgIGNhc2UgJ2VuJzogaW1wb3J0KFwiZGF5anMvbG9jYWxlL2VuLWdiXCIpLnRoZW4obW9kID0+IHsgdGhpcy5sb2FkTG9hY2xlRGF0YU1vZHVsZShtb2QuZGVmYXVsdCkgfSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBgTG9jYWxlIG5vbiByaWNvbm9zaWN1dG8gJyR7bG9jYWxlfScuIExvY2FsaSBjb25zZW50aXRpOiAnaXQnLCAnZW4nYDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCBjYXJpY2FtZW50byBkZWwgbG9jYWxlRGF0YSBjb2kgbm9taSBkZWkgbWVzaSwgZ2lvcm5pIGVjYyBwYXJ0ZW5kbyBkYWwgbW9kdWxvIGltcG9ydGF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbW9kIE1vZHVsbyBjYXJpY2F0byBjb250ZW5lbnRlIGlsIGxvY2FsZSBkZXNpZGVyYXRvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZExvYWNsZURhdGFNb2R1bGUobW9kOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogbW9kLndlZWtTdGFydCxcclxuICAgICAgICAgICAgbG9uZ01vbnRoczogbW9kLm1vbnRocyxcclxuICAgICAgICAgICAgc2hvcnRNb250aHM6IG1vZC5tb250aHNTaG9ydCxcclxuICAgICAgICAgICAgZGF0ZXM6IHRoaXMucmFuZ2UoMzEsIChpKSA9PiB0aGlzLmNyZWF0ZURhdGUoMjAxNywgMCwgaSArIDEpLmZvcm1hdCgnRCcpKSxcclxuICAgICAgICAgICAgbG9uZ0RheXNPZldlZWs6IG1vZC53ZWVrZGF5cyxcclxuICAgICAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBtb2Qud2Vla2RheXNTaG9ydCxcclxuICAgICAgICAgICAgbmFycm93RGF5c09mV2VlazogbW9kLndlZWtkYXlzTWluLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGxlIG9yZSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gT3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRIb3VyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXQoXCJob3VyXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzZXJpYWxpenphIHVuYSBkYXRhIGluIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBWYWxvcmUgZGkgZGF0YSBhIGNhc29cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBkYXRhIGluIGRheWpzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZSkge1xyXG4gICAgICAgIGlmICghdmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICB2YXIgdmFsdWVDb252ZXJ0ZWQgPSBkYXlqcyh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZUNvbnZlcnRlZCA9PSBudWxsIHx8IHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWVDb252ZXJ0ZWQpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZUNvbnZlcnRlZCkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZUNvbnZlcnRlZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG1pbnV0aSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTWludXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNaW51dGUoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcIm1pbnV0ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaSBzZWNvbmRpIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBTZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTZWNvbmQoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcInNlY29uZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGUgb3JlIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBtb2RpZmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVmFsb3JlIGRhIGltcG9zdGFyZSBwZXIgbGUgb3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRIb3VyKGRhdGU6IERheWpzLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgKDxhbnk+ZGF0ZSkuJEggPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaSBtaW51dGkgZGkgdW5hIGRhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIG1vZGlmaWNhcmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBWYWxvcmUgZGEgaW1wb3N0YXJlIHBlciBpIG1pbnV0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0TWludXRlKGRhdGU6IERheWpzLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgKDxhbnk+ZGF0ZSkuJG0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaSBzZWNvbmRpIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBtb2RpZmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVmFsb3JlIGRhIGltcG9zdGFyZSBwZXIgaSBzZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRTZWNvbmQoZGF0ZTogRGF5anMsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAoPGFueT5kYXRlKS4kcyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBsJ2Fubm8gZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEFubm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFllYXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcInllYXJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIG1lc2UgZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IE1lc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXQoXCJtb250aFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgZ2lvcm5vIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBHaW9ybm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGUoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcImRhdGVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGdpb3JubyBkZWxsYSBzZXR0aW1hbmEgZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEdpb3JubyBkZWxsYSBzZXR0aW1hbmEgZGEgMSBhIDdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwiZGF5XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIG1lc2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCJ9IHN0eWxlIFN0aWxlIGRlaSBub21pIHJpY2hpZXN0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBtZXNpIGVzcHJlc3NpIGluIGJhc2UgYWwgcGFyYW1ldHJvICoqc3R5bGUqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogXCJsb25nXCIgfCBcInNob3J0XCIgfCBcIm5hcnJvd1wiKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBzdHlsZSA9PSAnbG9uZycgPyB0aGlzLl9sb2NhbGVEYXRhLmxvbmdNb250aHMgOiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0TW9udGhzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIGdpb3JuaSBkZWwgbWVzZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBnaW9ybmkgZGVsIG1lc2UgKGRhICcxJyBhICczMScpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIGdpb3JuaSBkZWxsYSBzZXR0aW1hbmFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCJ9IHN0eWxlIFN0aWxlIGRlaSBub21pIHJpY2hpZXN0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBnaW9ybmkgZGVsbGEgc2V0dGltYW5hIGVzcHJlc3NpIGluIGJhc2UgYWwgcGFyYW1ldHJvICoqc3R5bGUqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAoc3R5bGUgPT0gJ2xvbmcnKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcclxuICAgICAgICBlbHNlIGlmIChzdHlsZSA9PSAnc2hvcnQnKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydERheXNPZldlZWs7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd0RheXNPZldlZWs7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIG5vbWUgZGVsbCdhbm5vXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBbm5vXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRZZWFyTmFtZShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0WWVhcihkYXRlKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpbCBwcmltbyBnaW9ybm8gZGVsbGEgc2V0dGltYW5hXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEluZGljZSBkZWwgcHJpbW8gZ2lvcm5vIGRlbGxhIHNldHRpbWFuYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBuZWwgbWVzZSBjb3JyZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTnVtZXJvIGRpIGdpb3JuaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmRheXNJbk1vbnRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGNsb25lIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IERhdGEgZGEgY2xvbmFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IENsb25lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbG9uZShkYXRlOiBEYXlqcyk6IERheWpzIHtcclxuICAgICAgICAvLyBWaXN0byBjaGUgaG8gbW9kaWZpY2F0byBsJ2lzdGFuemEgb3JpZ2luYWxlIGEgbWFuYXp6YSAodmVkaSBzZXRIb3VyLCBzZXRNaW51dGUsIHNldFNlY29uZCkgbCdvZ2dldHRvIMOoIGRhbm5lZ2dpYXRvIGUgcGVyIHJlc3RpdHVpcmUgdW4gY2xvbmUgYnVvbm9cclxuICAgICAgICAvLyBkZXZvIHJpY3JlYXJsbyBwcmVuZGVuZG8gcGV6em8gcGVyIHBlenpvXHJcbiAgICAgICAgLy8gSWwgbWVzZSDDqCB1biBpbmRpY2UgMC0xMSBxdWluZGkgZGV2byBkYXJnbGkgdW4gKzEgcXVhXHJcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3RoaXMuZ2V0WWVhcihkYXRlKX0tJHt0aGlzLmdldE1vbnRoKGRhdGUpICsgMX0tJHt0aGlzLmdldERhdGUoZGF0ZSl9ICR7dGhpcy5nZXRIb3VyKGRhdGUpfToke3RoaXMuZ2V0TWludXRlKGRhdGUpfToke3RoaXMuZ2V0U2Vjb25kKGRhdGUpfWApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYSB1bmEgZGF0YSBwYXJ0ZW5kbyBkYSBhbm5vLCBtZXNlIGUgZ2lvcm5vXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5ZWFyIEFubm9cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtb250aCBNZXNlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGF0ZSBHaW9ybm9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBPZ2dldHRvIGdlbmVyYXRvIGluIGJhc2UgYWkgcGFyYW1ldHJpICoqeWVhcioqLCAqKm1vbnRoKiosIGUgKipkYXRlKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXlqcyB7XHJcbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCBcIiR7bW9udGh9XCIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZSA8IDEpXHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xyXG5cclxuICAgICAgICAvL0lsIG1lc2Ugw6ggdW4gaW5kaWNlIDAtMTEgcXVpbmRpIGRldm8gZGFyZ2xpIHVuICsxIHF1YVxyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGRheWpzKGAke3llYXJ9LSR7bW9udGggKyAxfS0ke2RhdGV9YClcclxuXHJcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RpdHVpc2NlIGxhIGRhdGEgY2hlIHJhcHByZXNlbnRhIGxhIGdpb3JuYXRhIGRpIG9nZ2lcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBPZ2dpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b2RheSgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRheWpzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCBwYXJzZSBkaSB1bmEgZGF0YSwgZXZlbnR1YWxtZW50ZSBpbiBiYXNlIGFsIGZvcm1hdG8gc3BlY2lmaWNhdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBkYSBwYXJzYXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyc2VGb3JtYXQgRm9ybWF0byBpbiBjdWkgbGVnZ2VyZSBpbCB2YWxvcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBEYXRhIGdlbmVyYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nKTogRGF5anMge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKCh2YWx1ZSBhcyBzdHJpbmcpLmxlbmd0aCA9PSBwYXJzZUZvcm1hdC5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF5anModmFsdWUsIHBhcnNlRm9ybWF0KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyBkYXlqcyh2YWx1ZSkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0dGEgdW5hIGRhdGEgaW4gYmFzZSBhbCBmb3JtYXRvIHNwZWNpZmljYXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBmb3JtYXR0YXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGlzcGxheUZvcm1hdCBGb3JtYXRvIGluIGN1aSBtb3N0cmFyZSBsYSBkYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IERhdGEgZm9ybWF0dGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRGF0ZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLicpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoZGlzcGxheUZvcm1hdClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFnZ2l1bmdlIGFkIHVuYSBkYXRhIGlsIG51bWVybyBzcGVjaWZpY2F0byBkaSBhbm5pXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBhIGN1aSBhZ2dpdW5nZXJlIGdsaSBhbm5pXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geWVhcnMgQW5uaSBkYSBhZ2dpdW5nZXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtEYXlqc30gRGF0YSBjb24gbCdhZ2dpdW50YSBkZWdsaSBhbm5pIHNwZWNpZmljYXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRDYWxlbmRhclllYXJzKGRhdGU6IERheWpzLCB5ZWFyczogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZCh5ZWFycywgXCJ5ZWFyXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWdnaXVuZ2UgYWQgdW5hIGRhdGEgaWwgbnVtZXJvIHNwZWNpZmljYXRvIGRpIG1lc2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGEgY3VpIGFnZ2l1bmdlcmUgaSBtZXNpXHJcbiAgICAgKiBAcGFyYW0ge21vbnRoc30gbW9udGhzIE1lc2kgZGEgYWdnaXVuZ2VyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IERhdGEgY29uIGwnYWdnaXVudGEgZGVpIG1lc2kgc3BlY2lmaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERheWpzLCBtb250aHM6IG51bWJlcik6IERheWpzIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5hZGQobW9udGhzLCBcIm1vbnRoXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWdnaXVuZ2UgYWQgdW5hIGRhdGEgaWwgbnVtZXJvIHNwZWNpZmljYXRvIGRpIGdpb3JuaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgYSBjdWkgYWdnaXVuZ2VyZSBpIGdpb3JuaVxyXG4gICAgICogQHBhcmFtIHttb250aHN9IGRheXMgR2lvcm5pIGRhIGFnZ2l1bmdlcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBEYXRhIGNvbiBsJ2FnZ2l1bnRhIGRlaSBnaW9ybmkgc3BlY2lmaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCBcImRheVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYXNmb3JtYSBsYSBkYXRhIHNwZWNpZmljYXRhIGluIHVuYSBzdHJpbmdhIElTTzg2MDFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJhcHByZXNlbnRhemlvbmUgaW4gSVNPODYwMVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9Jc284NjAxKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbGxhIHNlIGwnb2dnZXR0byBwYXNzYXRvIMOoIGVmZmV0dGl2YW1lbnRlIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBvYmogT2dnZXR0byBkYSB2ZXJpZmljYXJlIHNlIMOoIHVuYSBkYXRhIG8gbWVub1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgbCdvZ2dldHRvIMOoIHVuIERheUpzLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF5anMuaXNEYXlqcyhvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbGxhIGlsIERheUpzIHBhc3NhdG8gZSB2ZXJpZmljYSBzZSDDqCB2YWxpZG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIHZlcmlmaWNhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIGlsIERheUpzIMOoIHZhbGlkbywgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF5anMpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5pc1ZhbGlkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0aXR1aXNjZSB1biBEYXlKcyBpbnZhbGlkb1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5SnN9IERhdGEgSW52YWxpZGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGludmFsaWQoKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXlqcyhcIkludmFsaWQgRGF0ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWEgdW4gcmFuZ2UgZGkgdW5hIGx1bmdoZXp6YSBzcGVjaWZpY2EgZSBwZXIgb2duaSBpbmRpY2UgZGVsIHJhbmdlIHJpY2hpYW1hIHVuIGNhbGxiYWNrIGNoZSB2YWxvcml6emEgbCdlbGVtZW50byBkaSBxdWVsbCdpbmRpY2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCBMdW5naGV6emEgZGVsIHJhbmdlXHJcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB2YWx1ZUZ1bmN0aW9uIENhbGxiYWNrIGNoZSBkZXZlIGdlbmVyYXJlIGlsIHZhbG9yZSBkZXNpZGVyYXRvIHBlciBvZ25pIGluZGljZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7VFtdfSBBcnJheSBkZWkgdmFsb3JpIGdlbmVyYXRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcclxuICAgICAgICBjb25zdCB2YWx1ZXNBcnJheSA9IEFycmF5KGxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgdmFsdWVzQXJyYXlbaV0gPSB2YWx1ZUZ1bmN0aW9uKGkpO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZXNBcnJheTtcclxuICAgIH1cclxufSJdfQ==
395
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF5anNEYXRlQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWRheWpzLWFkYXB0ZXIvc3JjL2xpYi9hZGFwdGVyL0RheWpzRGF0ZUFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBV3RFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFrQjtJQWVwRDs7OztPQUlHO0lBQ0gsWUFBcUMsVUFBa0I7UUFDbkQsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLE1BQWM7UUFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4Qiw0SUFBNEk7UUFDNUksUUFBUSxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDMUIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLE1BQU07WUFDcEcseUlBQXlJO1lBQ3pJLDZFQUE2RTtZQUM3RSxLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxJQUFJO2dCQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFB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O0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLEtBQUssQ0FBSSxNQUFjLEVBQUUsYUFBbUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzsrR0E5YVEsZ0JBQWdCLGtCQW9CTCxlQUFlO21IQXBCMUIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFxQk0sTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuXHJcbi8vIERheWpzXHJcbmltcG9ydCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcblxyXG4vKipcclxuICogRGljaGlhcmF6aW9uZSBkZWxsYSB2YXJpYWJpbGUgZ2xvYmFsZSBkYXlqcy4gTCdvbmVyZSBkaSBcImNyZWFybGFcIiDDqCBhZmZpZGF0byBhbGwnYXBwbGljYXppb25lIGNoZSB1dGlsaXp6YSBxdWVzdGEgbGlicmVyaWEsIFxyXG4gKiBjaGUgZG92csOgIGltcG9ydGFyZSBsbyBzY3JpcHQgZ2xvYmFsZSBkaSBkYXlqcyBuZWxsYSBDTElcclxuICovXHJcbmRlY2xhcmUgdmFyIGRheWpzOiBhbnk7XHJcblxyXG4vKipcclxuICogQWRhcHRlciBwZXIgcGVybWV0dGVyZSBhIE1hdGVyaWFsIGRpIGZ1bnppb25hcmUgc2VuemEgcHJvYmxlbWkgY29uIERheUpzLiBQZXIgYWx0cmkgcHJvdmlkZXIgZGkgZGF0ZSAoZXMuIG1vbWVudCkgbCdhZGFwdGVyIHZpZW5lIGZvcm5pdG8gXHJcbiAqIG5hdGl2YW1lbnRlIGRhIEFuZ3VsYXIuIFBlciBEYXlKcyBpbnZlY2UgYmlzb2duYSByZWltcGxlbWVudGFyc2Vsb1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGF5SnNEYXRlQWRhcHRlciBleHRlbmRzIERhdGVBZGFwdGVyPERheWpzPntcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRlaSBkYXRpIGRlbCBsb2NhbGUgSXRhbGlhbm9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9jYWxlRGF0YToge1xyXG4gICAgICAgIGZpcnN0RGF5T2ZXZWVrOiBudW1iZXIsXHJcbiAgICAgICAgbG9uZ01vbnRoczogc3RyaW5nW10sXHJcbiAgICAgICAgc2hvcnRNb250aHM6IHN0cmluZ1tdLFxyXG4gICAgICAgIGRhdGVzOiBzdHJpbmdbXSxcclxuICAgICAgICBsb25nRGF5c09mV2Vlazogc3RyaW5nW10sXHJcbiAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBzdHJpbmdbXSxcclxuICAgICAgICBuYXJyb3dEYXlzT2ZXZWVrOiBzdHJpbmdbXVxyXG4gICAgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChNQVRfREFURV9MT0NBTEUpIGRhdGVMb2NhbGU6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0TG9jYWxlKGRhdGVMb2NhbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBpbCBsb2NhbGUgdXRpbGl6emF0byBwZXIgdHV0dGUgbGUgZGF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxlIExvY2FsZSBkYSBpbXBvc3RhcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xyXG4gICAgICAgIHN1cGVyLnNldExvY2FsZShsb2NhbGUpO1xyXG5cclxuICAgICAgICAvLyBpbCBsb2NhbGVEYXRhIHNpIHBvdHJlYmJlIHByZW5kZXJlIGRhIHRoaXMuZGF5SnMoKS5sb2NhbGVEYXRhKCk7IG1hIGlvIHZvZ2xpbyB1c2FyZSBsZSBkYXRlIHNvbG8gbmVsIGZvcm1hdG8gaXRhbGlhbm8gcXVpbmRpIGNhYmxvIHF1ZWxsb1xyXG4gICAgICAgIHN3aXRjaCAobG9jYWxlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgY2FzZSAnaXQtaXQnOlxyXG4gICAgICAgICAgICBjYXNlICdpdCc6IGltcG9ydChcImRheWpzL2xvY2FsZS9pdFwiKS50aGVuKG1vZCA9PiB7IHRoaXMubG9hZExvYWNsZURhdGFNb2R1bGUobW9kLmRlZmF1bHQpIH0pOyBicmVhaztcclxuICAgICAgICAgICAgLy8gSW4gZGF5anMsIG5lbCBsb2NhbGUgXCJlblwiIGUgYmFzdGEgbm9uIGVzaXN0b25vIGkgMy80IGRlbGxlIGluZm8gcGVyY2jDqSBzb25vIGxlIGNvc2UgZ2VuZXJpY2hlIGVyZWRpdGF0ZSBkYWkgbG9jYWxpIGVuLWdiLCBlbi1hdSBlY2MuLi5cclxuICAgICAgICAgICAgLy8gcXVpbmRpIG1pIGJhc28gc3VsIGxvY2FsZSBpbmdsZXNlIEJyaXRhbm5pY28sIG1hIGNvbXVucXVlIEkndHMgQ29taW5nIFJvbWVcclxuICAgICAgICAgICAgY2FzZSAnZW4tdXMnOlxyXG4gICAgICAgICAgICBjYXNlICdlbi1nYic6XHJcbiAgICAgICAgICAgIGNhc2UgJ2VuJzogaW1wb3J0KFwiZGF5anMvbG9jYWxlL2VuLWdiXCIpLnRoZW4obW9kID0+IHsgdGhpcy5sb2FkTG9hY2xlRGF0YU1vZHVsZShtb2QuZGVmYXVsdCkgfSk7IGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBgTG9jYWxlIG5vbiByaWNvbm9zaWN1dG8gJyR7bG9jYWxlfScuIExvY2FsaSBjb25zZW50aXRpOiAnaXQnLCAnZW4nYDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCBjYXJpY2FtZW50byBkZWwgbG9jYWxlRGF0YSBjb2kgbm9taSBkZWkgbWVzaSwgZ2lvcm5pIGVjYyBwYXJ0ZW5kbyBkYWwgbW9kdWxvIGltcG9ydGF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbW9kIE1vZHVsbyBjYXJpY2F0byBjb250ZW5lbnRlIGlsIGxvY2FsZSBkZXNpZGVyYXRvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZExvYWNsZURhdGFNb2R1bGUobW9kOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9sb2NhbGVEYXRhID0ge1xyXG4gICAgICAgICAgICBmaXJzdERheU9mV2VlazogbW9kLndlZWtTdGFydCxcclxuICAgICAgICAgICAgbG9uZ01vbnRoczogbW9kLm1vbnRocyxcclxuICAgICAgICAgICAgc2hvcnRNb250aHM6IG1vZC5tb250aHNTaG9ydCxcclxuICAgICAgICAgICAgZGF0ZXM6IHRoaXMucmFuZ2UoMzEsIChpKSA9PiB0aGlzLmNyZWF0ZURhdGUoMjAxNywgMCwgaSArIDEpLmZvcm1hdCgnRCcpKSxcclxuICAgICAgICAgICAgbG9uZ0RheXNPZldlZWs6IG1vZC53ZWVrZGF5cyxcclxuICAgICAgICAgICAgc2hvcnREYXlzT2ZXZWVrOiBtb2Qud2Vla2RheXNTaG9ydCxcclxuICAgICAgICAgICAgbmFycm93RGF5c09mV2VlazogbW9kLndlZWtkYXlzTWluLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGxlIG9yZSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gT3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRIb3VyKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXQoXCJob3VyXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzZXJpYWxpenphIHVuYSBkYXRhIGluIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSB2YWx1ZSBWYWxvcmUgZGkgZGF0YSBhIGNhc29cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBkYXRhIGluIGRheWpzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXNlcmlhbGl6ZSh2YWx1ZSkge1xyXG4gICAgICAgIGlmICghdmFsdWUpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICB2YXIgdmFsdWVDb252ZXJ0ZWQgPSBkYXlqcyh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZUNvbnZlcnRlZCA9PSBudWxsIHx8IHRoaXMuaXNEYXRlSW5zdGFuY2UodmFsdWVDb252ZXJ0ZWQpICYmIHRoaXMuaXNWYWxpZCh2YWx1ZUNvbnZlcnRlZCkpXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZUNvbnZlcnRlZDtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG1pbnV0aSBkYSB1biBEYXlKc1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTWludXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNaW51dGUoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcIm1pbnV0ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaSBzZWNvbmRpIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBTZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTZWNvbmQoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcInNlY29uZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGUgb3JlIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBtb2RpZmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVmFsb3JlIGRhIGltcG9zdGFyZSBwZXIgbGUgb3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRIb3VyKGRhdGU6IERheWpzLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgKDxhbnk+ZGF0ZSkuJEggPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaSBtaW51dGkgZGkgdW5hIGRhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIG1vZGlmaWNhcmVcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSBWYWxvcmUgZGEgaW1wb3N0YXJlIHBlciBpIG1pbnV0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0TWludXRlKGRhdGU6IERheWpzLCB2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgKDxhbnk+ZGF0ZSkuJG0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgaSBzZWNvbmRpIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBtb2RpZmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUgVmFsb3JlIGRhIGltcG9zdGFyZSBwZXIgaSBzZWNvbmRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRTZWNvbmQoZGF0ZTogRGF5anMsIHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICAoPGFueT5kYXRlKS4kcyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBsJ2Fubm8gZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEFubm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFllYXIoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcInllYXJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIG1lc2UgZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IE1lc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldE1vbnRoKGRhdGU6IERheWpzKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXQoXCJtb250aFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgZ2lvcm5vIGRhIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBHaW9ybm9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERhdGUoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmdldChcImRhdGVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGdpb3JubyBkZWxsYSBzZXR0aW1hbmEgZGEgdW4gRGF5SnNcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEdpb3JubyBkZWxsYSBzZXR0aW1hbmEgZGEgMSBhIDdcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldERheU9mV2VlayhkYXRlOiBEYXlqcyk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0KFwiZGF5XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIG1lc2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCJ9IHN0eWxlIFN0aWxlIGRlaSBub21pIHJpY2hpZXN0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBtZXNpIGVzcHJlc3NpIGluIGJhc2UgYWwgcGFyYW1ldHJvICoqc3R5bGUqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TW9udGhOYW1lcyhzdHlsZTogXCJsb25nXCIgfCBcInNob3J0XCIgfCBcIm5hcnJvd1wiKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBzdHlsZSA9PSAnbG9uZycgPyB0aGlzLl9sb2NhbGVEYXRhLmxvbmdNb250aHMgOiB0aGlzLl9sb2NhbGVEYXRhLnNob3J0TW9udGhzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIGdpb3JuaSBkZWwgbWVzZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBnaW9ybmkgZGVsIG1lc2UgKGRhICcxJyBhICczMScpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXREYXRlTmFtZXMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLmRhdGVzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpIG5vbWkgZGVpIGdpb3JuaSBkZWxsYSBzZXR0aW1hbmFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtcImxvbmdcIiB8IFwic2hvcnRcIiB8IFwibmFycm93XCJ9IHN0eWxlIFN0aWxlIGRlaSBub21pIHJpY2hpZXN0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nW119IExpc3RhIGRlaSBnaW9ybmkgZGVsbGEgc2V0dGltYW5hIGVzcHJlc3NpIGluIGJhc2UgYWwgcGFyYW1ldHJvICoqc3R5bGUqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0RGF5T2ZXZWVrTmFtZXMoc3R5bGU6ICdsb25nJyB8ICdzaG9ydCcgfCAnbmFycm93Jyk6IHN0cmluZ1tdIHtcclxuICAgICAgICBpZiAoc3R5bGUgPT0gJ2xvbmcnKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5sb25nRGF5c09mV2VlaztcclxuICAgICAgICBlbHNlIGlmIChzdHlsZSA9PSAnc2hvcnQnKVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5zaG9ydERheXNPZldlZWs7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGVEYXRhLm5hcnJvd0RheXNPZldlZWs7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIG5vbWUgZGVsbCdhbm5vXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBEYXlqc1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBBbm5vXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRZZWFyTmFtZShkYXRlOiBEYXlqcyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0WWVhcihkYXRlKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBpbCBwcmltbyBnaW9ybm8gZGVsbGEgc2V0dGltYW5hXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEluZGljZSBkZWwgcHJpbW8gZ2lvcm5vIGRlbGxhIHNldHRpbWFuYVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Rmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlRGF0YS5maXJzdERheU9mV2VlaztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgaWwgbnVtZXJvIGRpIGdpb3JuaSBuZWwgbWVzZSBjb3JyZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgRGF5anNcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge251bWJlcn0gTnVtZXJvIGRpIGdpb3JuaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TnVtRGF5c0luTW9udGgoZGF0ZTogRGF5anMpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmRheXNJbk1vbnRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGlsIGNsb25lIGRpIHVuYSBkYXRhIERheWpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IERhdGEgZGEgY2xvbmFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IENsb25lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbG9uZShkYXRlOiBEYXlqcyk6IERheWpzIHtcclxuICAgICAgICAvLyBWaXN0byBjaGUgaG8gbW9kaWZpY2F0byBsJ2lzdGFuemEgb3JpZ2luYWxlIGEgbWFuYXp6YSAodmVkaSBzZXRIb3VyLCBzZXRNaW51dGUsIHNldFNlY29uZCkgbCdvZ2dldHRvIMOoIGRhbm5lZ2dpYXRvIGUgcGVyIHJlc3RpdHVpcmUgdW4gY2xvbmUgYnVvbm9cclxuICAgICAgICAvLyBkZXZvIHJpY3JlYXJsbyBwcmVuZGVuZG8gcGV6em8gcGVyIHBlenpvXHJcbiAgICAgICAgLy8gSWwgbWVzZSDDqCB1biBpbmRpY2UgMC0xMSBxdWluZGkgZGV2byBkYXJnbGkgdW4gKzEgcXVhXHJcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3RoaXMuZ2V0WWVhcihkYXRlKX0tJHt0aGlzLmdldE1vbnRoKGRhdGUpICsgMX0tJHt0aGlzLmdldERhdGUoZGF0ZSl9ICR7dGhpcy5nZXRIb3VyKGRhdGUpfToke3RoaXMuZ2V0TWludXRlKGRhdGUpfToke3RoaXMuZ2V0U2Vjb25kKGRhdGUpfWApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYSB1bmEgZGF0YSBwYXJ0ZW5kbyBkYSBhbm5vLCBtZXNlIGUgZ2lvcm5vXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5ZWFyIEFubm9cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtb250aCBNZXNlXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZGF0ZSBHaW9ybm9cclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBPZ2dldHRvIGdlbmVyYXRvIGluIGJhc2UgYWkgcGFyYW1ldHJpICoqeWVhcioqLCAqKm1vbnRoKiosIGUgKipkYXRlKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNyZWF0ZURhdGUoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXRlOiBudW1iZXIpOiBEYXlqcyB7XHJcbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCBtb250aCA+IDExKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBtb250aCBpbmRleCBcIiR7bW9udGh9XCIuIE1vbnRoIGluZGV4IGhhcyB0byBiZSBiZXR3ZWVuIDAgYW5kIDExLmApO1xyXG5cclxuICAgICAgICBpZiAoZGF0ZSA8IDEpXHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGRhdGUgXCIke2RhdGV9XCIuIERhdGUgaGFzIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLmApO1xyXG5cclxuICAgICAgICAvL0lsIG1lc2Ugw6ggdW4gaW5kaWNlIDAtMTEgcXVpbmRpIGRldm8gZGFyZ2xpIHVuICsxIHF1YVxyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGRheWpzKGAke3llYXJ9LSR7bW9udGggKyAxfS0ke2RhdGV9YClcclxuXHJcbiAgICAgICAgaWYgKCFyZXN1bHQuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBkYXRlIFwiJHtkYXRlfVwiIGZvciBtb250aCB3aXRoIGluZGV4IFwiJHttb250aH1cIi5gKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlc3RpdHVpc2NlIGxhIGRhdGEgY2hlIHJhcHByZXNlbnRhIGxhIGdpb3JuYXRhIGRpIG9nZ2lcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBPZ2dpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0b2RheSgpOiBEYXlqcyB7XHJcbiAgICAgICAgcmV0dXJuIGRheWpzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCBwYXJzZSBkaSB1bmEgZGF0YSwgZXZlbnR1YWxtZW50ZSBpbiBiYXNlIGFsIGZvcm1hdG8gc3BlY2lmaWNhdG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnl9IHZhbHVlIFZhbG9yZSBkYSBwYXJzYXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyc2VGb3JtYXQgRm9ybWF0byBpbiBjdWkgbGVnZ2VyZSBpbCB2YWxvcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBEYXRhIGdlbmVyYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXJzZSh2YWx1ZTogYW55LCBwYXJzZUZvcm1hdDogc3RyaW5nKTogRGF5anMge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKCh2YWx1ZSBhcyBzdHJpbmcpLmxlbmd0aCA9PSBwYXJzZUZvcm1hdC5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF5anModmFsdWUsIHBhcnNlRm9ybWF0KTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUgPyBkYXlqcyh2YWx1ZSkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0dGEgdW5hIGRhdGEgaW4gYmFzZSBhbCBmb3JtYXRvIHNwZWNpZmljYXRvXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBkYSBmb3JtYXR0YXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGlzcGxheUZvcm1hdCBGb3JtYXRvIGluIGN1aSBtb3N0cmFyZSBsYSBkYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IERhdGEgZm9ybWF0dGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9ybWF0KGRhdGU6IERheWpzLCBkaXNwbGF5Rm9ybWF0OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKGRhdGUpKVxyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcignRGF0ZUFkYXB0ZXI6IENhbm5vdCBmb3JtYXQgaW52YWxpZCBkYXRlLicpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICByZXR1cm4gZGF0ZS5mb3JtYXQoZGlzcGxheUZvcm1hdClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFnZ2l1bmdlIGFkIHVuYSBkYXRhIGlsIG51bWVybyBzcGVjaWZpY2F0byBkaSBhbm5pXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7RGF5anN9IGRhdGUgRGF0YSBhIGN1aSBhZ2dpdW5nZXJlIGdsaSBhbm5pXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geWVhcnMgQW5uaSBkYSBhZ2dpdW5nZXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtEYXlqc30gRGF0YSBjb24gbCdhZ2dpdW50YSBkZWdsaSBhbm5pIHNwZWNpZmljYXRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRDYWxlbmRhclllYXJzKGRhdGU6IERheWpzLCB5ZWFyczogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZCh5ZWFycywgXCJ5ZWFyXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWdnaXVuZ2UgYWQgdW5hIGRhdGEgaWwgbnVtZXJvIHNwZWNpZmljYXRvIGRpIG1lc2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGEgY3VpIGFnZ2l1bmdlcmUgaSBtZXNpXHJcbiAgICAgKiBAcGFyYW0ge21vbnRoc30gbW9udGhzIE1lc2kgZGEgYWdnaXVuZ2VyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5anN9IERhdGEgY29uIGwnYWdnaXVudGEgZGVpIG1lc2kgc3BlY2lmaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZENhbGVuZGFyTW9udGhzKGRhdGU6IERheWpzLCBtb250aHM6IG51bWJlcik6IERheWpzIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5hZGQobW9udGhzLCBcIm1vbnRoXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWdnaXVuZ2UgYWQgdW5hIGRhdGEgaWwgbnVtZXJvIHNwZWNpZmljYXRvIGRpIGdpb3JuaVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge0RheWpzfSBkYXRlIERhdGEgYSBjdWkgYWdnaXVuZ2VyZSBpIGdpb3JuaVxyXG4gICAgICogQHBhcmFtIHttb250aHN9IGRheXMgR2lvcm5pIGRhIGFnZ2l1bmdlcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge0RheWpzfSBEYXRhIGNvbiBsJ2FnZ2l1bnRhIGRlaSBnaW9ybmkgc3BlY2lmaWNhdGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZENhbGVuZGFyRGF5cyhkYXRlOiBEYXlqcywgZGF5czogbnVtYmVyKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXRlLmFkZChkYXlzLCBcImRheVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRyYXNmb3JtYSBsYSBkYXRhIHNwZWNpZmljYXRhIGluIHVuYSBzdHJpbmdhIElTTzg2MDFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFJhcHByZXNlbnRhemlvbmUgaW4gSVNPODYwMVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9Jc284NjAxKGRhdGU6IERheWpzKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbGxhIHNlIGwnb2dnZXR0byBwYXNzYXRvIMOoIGVmZmV0dGl2YW1lbnRlIHVuIERheUpzXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7YW55fSBvYmogT2dnZXR0byBkYSB2ZXJpZmljYXJlIHNlIMOoIHVuYSBkYXRhIG8gbWVub1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgbCdvZ2dldHRvIMOoIHVuIERheUpzLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNEYXRlSW5zdGFuY2Uob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF5anMuaXNEYXlqcyhvYmopO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbGxhIGlsIERheUpzIHBhc3NhdG8gZSB2ZXJpZmljYSBzZSDDqCB2YWxpZG9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtEYXlqc30gZGF0ZSBEYXRhIGRhIHZlcmlmaWNhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59ICoqdHJ1ZSoqIHNlIGlsIERheUpzIMOoIHZhbGlkbywgKipmYWxzZSoqIGFsdHJpbWVudGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzVmFsaWQoZGF0ZTogRGF5anMpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZGF0ZS5pc1ZhbGlkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXN0aXR1aXNjZSB1biBEYXlKcyBpbnZhbGlkb1xyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7RGF5SnN9IERhdGEgSW52YWxpZGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGludmFsaWQoKTogRGF5anMge1xyXG4gICAgICAgIHJldHVybiBkYXlqcyhcIkludmFsaWQgRGF0ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWEgdW4gcmFuZ2UgZGkgdW5hIGx1bmdoZXp6YSBzcGVjaWZpY2EgZSBwZXIgb2duaSBpbmRpY2UgZGVsIHJhbmdlIHJpY2hpYW1hIHVuIGNhbGxiYWNrIGNoZSB2YWxvcml6emEgbCdlbGVtZW50byBkaSBxdWVsbCdpbmRpY2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCBMdW5naGV6emEgZGVsIHJhbmdlXHJcbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSB2YWx1ZUZ1bmN0aW9uIENhbGxiYWNrIGNoZSBkZXZlIGdlbmVyYXJlIGlsIHZhbG9yZSBkZXNpZGVyYXRvIHBlciBvZ25pIGluZGljZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7VFtdfSBBcnJheSBkZWkgdmFsb3JpIGdlbmVyYXRpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmFuZ2U8VD4obGVuZ3RoOiBudW1iZXIsIHZhbHVlRnVuY3Rpb246IChpbmRleDogbnVtYmVyKSA9PiBUKTogVFtdIHtcclxuICAgICAgICBjb25zdCB2YWx1ZXNBcnJheSA9IEFycmF5KGxlbmd0aCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKylcclxuICAgICAgICAgICAgdmFsdWVzQXJyYXlbaV0gPSB2YWx1ZUZ1bmN0aW9uKGkpO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZXNBcnJheTtcclxuICAgIH1cclxufSJdfQ==
@@ -16,14 +16,14 @@ export const MAT_DAYJS_DATE_FORMATS = {
16
16
  }
17
17
  };
18
18
  export class MatDayjsDateModule {
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, providers: [
22
+ { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
23
+ { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
24
+ ] }); }
19
25
  }
20
- MatDayjsDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- MatDayjsDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule });
22
- MatDayjsDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, providers: [
23
- { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
24
- { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
25
- ] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, decorators: [{
27
27
  type: NgModule,
28
28
  args: [{
29
29
  providers: [
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
32
32
  ],
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0RGF5anNEYXRlTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtZGF5anMtYWRhcHRlci9zcmMvbGliL2FkYXB0ZXIvTWF0RGF5anNEYXRlTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtQjtJQUNwRCxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQ2xDLE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGFBQWEsRUFBRSxZQUFZO1FBQzNCLGtCQUFrQixFQUFFLFNBQVM7S0FDaEM7Q0FDRixDQUFDO0FBUUYsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsYUFMbEI7UUFDVCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7UUFDL0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQztLQUM3RTsyRkFFVSxrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTt3QkFDL0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQztxQkFDN0U7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXlKc0RhdGVBZGFwdGVyIH0gZnJvbSAnLi9EYXlqc0RhdGVBZGFwdGVyJztcclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRpIGRpIGRlZmF1bHQgcGVyIGxhIHByZXNlbnRhemlvbmUgZGVnbGkgaW5wdXQgcXVhbGkgaWwgRGF0ZVBpY2tlciBkaSBBbmd1bGFyIE1hdGVyaWFsLiBcclxuICogQ2FibGF0aSBhIHF1ZWxsaSBpdGFsaWFuaSBpZ25vcmFuZG8gcXVlbGxpIGRpIEJ1cmdlckxhbmQgcGVyIG5vbiBpbXBhenppcmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBNQVRfREFZSlNfREFURV9GT1JNQVRTOiBNYXREYXRlRm9ybWF0cyA9IHtcclxuICBwYXJzZTogeyBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScsXHJcbiAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU0gWVlZWScsXHJcbiAgICAgIGRhdGVBMTF5TGFiZWw6ICdERC9NTS9ZWVlZJyxcclxuICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU0gWVlZWScsXHJcbiAgfVxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1BVF9EQVlKU19EQVRFX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXlKc0RhdGVBZGFwdGVyLCBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXX1cclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0RGF5anNEYXRlTW9kdWxlIHt9XHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0RGF5anNEYXRlTW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtZGF5anMtYWRhcHRlci9zcmMvbGliL2FkYXB0ZXIvTWF0RGF5anNEYXRlTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDeEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFtQjtJQUNwRCxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO0lBQ2xDLE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLGFBQWEsRUFBRSxZQUFZO1FBQzNCLGtCQUFrQixFQUFFLFNBQVM7S0FDaEM7Q0FDRixDQUFDO0FBUUYsTUFBTSxPQUFPLGtCQUFrQjsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixhQUxsQjtZQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTtZQUMvRCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFDO1NBQzdFOzs0RkFFVSxrQkFBa0I7a0JBTjlCLFFBQVE7bUJBQUM7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRTt3QkFDL0QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBQztxQkFDN0U7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFLCBNYXREYXRlRm9ybWF0cyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXlKc0RhdGVBZGFwdGVyIH0gZnJvbSAnLi9EYXlqc0RhdGVBZGFwdGVyJztcclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRpIGRpIGRlZmF1bHQgcGVyIGxhIHByZXNlbnRhemlvbmUgZGVnbGkgaW5wdXQgcXVhbGkgaWwgRGF0ZVBpY2tlciBkaSBBbmd1bGFyIE1hdGVyaWFsLiBcclxuICogQ2FibGF0aSBhIHF1ZWxsaSBpdGFsaWFuaSBpZ25vcmFuZG8gcXVlbGxpIGRpIEJ1cmdlckxhbmQgcGVyIG5vbiBpbXBhenppcmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBNQVRfREFZSlNfREFURV9GT1JNQVRTOiBNYXREYXRlRm9ybWF0cyA9IHtcclxuICBwYXJzZTogeyBkYXRlSW5wdXQ6ICdERC9NTS9ZWVlZJyB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgICAgZGF0ZUlucHV0OiAnREQvTU0vWVlZWScsXHJcbiAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU0gWVlZWScsXHJcbiAgICAgIGRhdGVBMTF5TGFiZWw6ICdERC9NTS9ZWVlZJyxcclxuICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU0gWVlZWScsXHJcbiAgfVxyXG59O1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1BVF9EQVlKU19EQVRFX0ZPUk1BVFMgfSxcclxuICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXlKc0RhdGVBZGFwdGVyLCBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFXX1cclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0RGF5anNEYXRlTW9kdWxlIHt9XHJcbiJdfQ==
@@ -384,10 +384,10 @@ class DayJsDateAdapter extends DateAdapter {
384
384
  valuesArray[i] = valueFunction(i);
385
385
  return valuesArray;
386
386
  }
387
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable }); }
388
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter }); }
387
389
  }
388
- DayJsDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
389
- DayJsDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter });
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, decorators: [{
390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayJsDateAdapter, decorators: [{
391
391
  type: Injectable
392
392
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
393
393
  type: Inject,
@@ -408,14 +408,14 @@ const MAT_DAYJS_DATE_FORMATS = {
408
408
  }
409
409
  };
410
410
  class MatDayjsDateModule {
411
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
412
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule }); }
413
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, providers: [
414
+ { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
415
+ { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
416
+ ] }); }
411
417
  }
412
- MatDayjsDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
413
- MatDayjsDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule });
414
- MatDayjsDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, providers: [
415
- { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
416
- { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
417
- ] });
418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, decorators: [{
418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MatDayjsDateModule, decorators: [{
419
419
  type: NgModule,
420
420
  args: [{
421
421
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"esfaenza-material-dayjs-adapter.mjs","sources":["../../../projects/material-dayjs-adapter/src/lib/adapter/DayjsDateAdapter.ts","../../../projects/material-dayjs-adapter/src/lib/adapter/MatDayjsDateModule.ts","../../../projects/material-dayjs-adapter/src/public-api.ts","../../../projects/material-dayjs-adapter/src/esfaenza-material-dayjs-adapter.ts"],"sourcesContent":["// Angular\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { DateAdapter, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\n\r\n// Dayjs\r\nimport { Dayjs } from \"dayjs\";\r\n\r\n/**\r\n * Dichiarazione della variabile globale dayjs. L'onere di \"crearla\" è affidato all'applicazione che utilizza questa libreria, \r\n * che dovrà importare lo script globale di dayjs nella CLI\r\n */\r\ndeclare var dayjs: any;\r\n\r\n/**\r\n * Adapter per permettere a Material di funzionare senza problemi con DayJs. Per altri provider di date (es. moment) l'adapter viene fornito \r\n * nativamente da Angular. Per DayJs invece bisogna reimplementarselo\r\n */\r\n@Injectable()\r\nexport class DayJsDateAdapter extends DateAdapter<Dayjs>{\r\n\r\n /**\r\n * Cache dei dati del locale Italiano\r\n */\r\n private _localeData: {\r\n firstDayOfWeek: number,\r\n longMonths: string[],\r\n shortMonths: string[],\r\n dates: string[],\r\n longDaysOfWeek: string[],\r\n shortDaysOfWeek: string[],\r\n narrowDaysOfWeek: string[]\r\n };\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor(@Inject(MAT_DATE_LOCALE) dateLocale: string) {\r\n super();\r\n\r\n this.setLocale(dateLocale);\r\n }\r\n\r\n /**\r\n * Imposta il locale utilizzato per tutte le date\r\n * \r\n * @param {string} locale Locale da impostare\r\n */\r\n public setLocale(locale: string) {\r\n super.setLocale(locale);\r\n\r\n // il localeData si potrebbe prendere da this.dayJs().localeData(); ma io voglio usare le date solo nel formato italiano quindi cablo quello\r\n switch (locale.toLowerCase()) {\r\n case 'it-it':\r\n case 'it': import(\"dayjs/locale/it\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n // In dayjs, nel locale \"en\" e basta non esistono i 3/4 delle info perché sono le cose generiche ereditate dai locali en-gb, en-au ecc...\r\n // quindi mi baso sul locale inglese Britannico, ma comunque I'ts Coming Rome\r\n case 'en-us':\r\n case 'en-gb':\r\n case 'en': import(\"dayjs/locale/en-gb\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n default: throw `Locale non riconosicuto '${locale}'. Locali consentiti: 'it', 'en'`;\r\n }\r\n }\r\n\r\n /**\r\n * Effettua il caricamento del localeData coi nomi dei mesi, giorni ecc partendo dal modulo importato\r\n * \r\n * @param {any} mod Modulo caricato contenente il locale desiderato\r\n */\r\n private loadLoacleDataModule(mod: any) {\r\n this._localeData = {\r\n firstDayOfWeek: mod.weekStart,\r\n longMonths: mod.months,\r\n shortMonths: mod.monthsShort,\r\n dates: this.range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: mod.weekdays,\r\n shortDaysOfWeek: mod.weekdaysShort,\r\n narrowDaysOfWeek: mod.weekdaysMin,\r\n };\r\n }\r\n\r\n /**\r\n * Ottiene le ore da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Ore\r\n */\r\n public getHour(date: Dayjs): number {\r\n return date.get(\"hour\");\r\n }\r\n\r\n /**\r\n * Deserializza una data in DayJs\r\n * \r\n * @param {any} value Valore di data a caso\r\n * \r\n * @returns {Dayjs} data in dayjs\r\n */\r\n public deserialize(value) {\r\n if (!value)\r\n return null;\r\n\r\n var valueConverted = dayjs(value);\r\n\r\n if (valueConverted == null || this.isDateInstance(valueConverted) && this.isValid(valueConverted))\r\n return valueConverted;\r\n\r\n return this.invalid();\r\n }\r\n\r\n /**\r\n * Ottiene i minuti da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Minuti\r\n */\r\n public getMinute(date: Dayjs): number {\r\n return date.get(\"minute\");\r\n }\r\n\r\n /**\r\n * Ottiene i secondi da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Secondi\r\n */\r\n public getSecond(date: Dayjs): number {\r\n return date.get(\"second\");\r\n }\r\n\r\n /**\r\n * Imposta le ore di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per le ore\r\n */\r\n public setHour(date: Dayjs, value: number): void {\r\n (<any>date).$H = value;\r\n }\r\n\r\n /**\r\n * Imposta i minuti di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i minuti\r\n */\r\n public setMinute(date: Dayjs, value: number): void {\r\n (<any>date).$m = value;\r\n }\r\n\r\n /**\r\n * Imposta i secondi di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i secondi\r\n */\r\n public setSecond(date: Dayjs, value: number): void {\r\n (<any>date).$s = value;\r\n }\r\n\r\n /**\r\n * Ottiene l'anno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Anno\r\n */\r\n public getYear(date: Dayjs): number {\r\n return date.get(\"year\");\r\n }\r\n\r\n /**\r\n * Ottiene il mese da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Mese\r\n */\r\n public getMonth(date: Dayjs): number {\r\n return date.get(\"month\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno\r\n */\r\n public getDate(date: Dayjs): number {\r\n return date.get(\"date\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno della settimana da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno della settimana da 1 a 7\r\n */\r\n public getDayOfWeek(date: Dayjs): number {\r\n return date.get(\"day\");\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei mesi\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei mesi espressi in base al parametro **style**\r\n */\r\n public getMonthNames(style: \"long\" | \"short\" | \"narrow\"): string[] {\r\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni del mese\r\n * \r\n * @returns {string[]} Lista dei giorni del mese (da '1' a '31')\r\n */\r\n public getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni della settimana\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei giorni della settimana espressi in base al parametro **style**\r\n */\r\n public getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style == 'long')\r\n return this._localeData.longDaysOfWeek;\r\n else if (style == 'short')\r\n return this._localeData.shortDaysOfWeek;\r\n\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il nome dell'anno\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {string} Anno\r\n */\r\n public getYearName(date: Dayjs): string {\r\n return this.getYear(date).toString();\r\n }\r\n\r\n /**\r\n * Ottiene il primo giorno della settimana\r\n * \r\n * @returns {number} Indice del primo giorno della settimana\r\n */\r\n public getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il numero di giorni nel mese corrente\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Numero di giorni\r\n */\r\n public getNumDaysInMonth(date: Dayjs): number {\r\n return date.daysInMonth();\r\n }\r\n\r\n /**\r\n * Ottiene il clone di una data Dayjs\r\n * \r\n * @param {Dayjs} Data da clonare\r\n * \r\n * @returns {Dayjs} Clone\r\n */\r\n public clone(date: Dayjs): Dayjs {\r\n // Visto che ho modificato l'istanza originale a manazza (vedi setHour, setMinute, setSecond) l'oggetto è danneggiato e per restituire un clone buono\r\n // devo ricrearlo prendendo pezzo per pezzo\r\n // Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n return dayjs(`${this.getYear(date)}-${this.getMonth(date) + 1}-${this.getDate(date)} ${this.getHour(date)}:${this.getMinute(date)}:${this.getSecond(date)}`);\r\n }\r\n\r\n /**\r\n * Crea una data partendo da anno, mese e giorno\r\n * \r\n * @param {number} year Anno\r\n * @param {number} month Mese\r\n * @param {number} date Giorno\r\n * \r\n * @returns {Dayjs} Oggetto generato in base ai parametri **year**, **month**, e **date**\r\n */\r\n public createDate(year: number, month: number, date: number): Dayjs {\r\n if (month < 0 || month > 11)\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n\r\n if (date < 1)\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n\r\n //Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n const result = dayjs(`${year}-${month + 1}-${date}`)\r\n\r\n if (!result.isValid())\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Restituisce la data che rappresenta la giornata di oggi\r\n * \r\n * @returns {Dayjs} Oggi\r\n */\r\n public today(): Dayjs {\r\n return dayjs();\r\n }\r\n\r\n /**\r\n * Effettua il parse di una data, eventualmente in base al formato specificato\r\n * \r\n * @param {any} value Valore da parsare\r\n * @param {string} parseFormat Formato in cui leggere il valore\r\n * \r\n * @returns {Dayjs} Data generata\r\n */\r\n public parse(value: any, parseFormat: string): Dayjs {\r\n if (value && typeof value == 'string') {\r\n if ((value as string).length == parseFormat.length)\r\n return dayjs(value, parseFormat);\r\n else\r\n return null;\r\n }\r\n\r\n return value ? dayjs(value) : null;\r\n }\r\n\r\n /**\r\n * Formatta una data in base al formato specificato\r\n * \r\n * @param {Dayjs} date Data da formattare\r\n * @param {string} displayFormat Formato in cui mostrare la data\r\n * \r\n * @returns {string} Data formattata\r\n */\r\n public format(date: Dayjs, displayFormat: any): string {\r\n if (!this.isValid(date))\r\n throw Error('DateAdapter: Cannot format invalid date.');\r\n \r\n return date.format(displayFormat)\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di anni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere gli anni\r\n * @param {number} years Anni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta degli anni specificati\r\n */\r\n public addCalendarYears(date: Dayjs, years: number): Dayjs {\r\n return date.add(years, \"year\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di mesi\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i mesi\r\n * @param {months} months Mesi da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei mesi specificati\r\n */\r\n public addCalendarMonths(date: Dayjs, months: number): Dayjs {\r\n return date.add(months, \"month\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di giorni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i giorni\r\n * @param {months} days Giorni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei giorni specificati\r\n */\r\n public addCalendarDays(date: Dayjs, days: number): Dayjs {\r\n return date.add(days, \"day\");\r\n }\r\n\r\n /**\r\n * Trasforma la data specificata in una stringa ISO8601\r\n * \r\n * @param {Dayjs} date Data\r\n * \r\n * @returns {string} Rappresentazione in ISO8601\r\n */\r\n public toIso8601(date: Dayjs): string {\r\n return date.toISOString();\r\n }\r\n\r\n /**\r\n * Controlla se l'oggetto passato è effettivamente un DayJs\r\n * \r\n * @param {any} obj Oggetto da verificare se è una data o meno\r\n * \r\n * @returns {boolean} **true** se l'oggetto è un DayJs, **false** altrimenti\r\n */\r\n public isDateInstance(obj: any): boolean {\r\n return dayjs.isDayjs(obj);\r\n }\r\n\r\n /**\r\n * Controlla il DayJs passato e verifica se è valido\r\n * \r\n * @param {Dayjs} date Data da verificare\r\n * \r\n * @returns {boolean} **true** se il DayJs è valido, **false** altrimenti\r\n */\r\n public isValid(date: Dayjs): boolean {\r\n return date.isValid();\r\n }\r\n\r\n /**\r\n * Restituisce un DayJs invalido\r\n * \r\n * @returns {DayJs} Data Invalida\r\n */\r\n public invalid(): Dayjs {\r\n return dayjs(\"Invalid Date\");\r\n }\r\n\r\n /**\r\n * Crea un range di una lunghezza specifica e per ogni indice del range richiama un callback che valorizza l'elemento di quell'indice\r\n * \r\n * @param {number} length Lunghezza del range\r\n * @param {Function} valueFunction Callback che deve generare il valore desiderato per ogni indice\r\n * \r\n * @returns {T[]} Array dei valori generati\r\n */\r\n private range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length);\r\n for (let i = 0; i < length; i++)\r\n valuesArray[i] = valueFunction(i);\r\n return valuesArray;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatDateFormats } from '@angular/material/core';\r\nimport { DayJsDateAdapter } from './DayjsDateAdapter';\r\n\r\n/**\r\n * Formati di default per la presentazione degli input quali il DatePicker di Angular Material. \r\n * Cablati a quelli italiani ignorando quelli di BurgerLand per non impazzire\r\n */\r\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\r\n parse: { dateInput: 'DD/MM/YYYY' },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY',\r\n monthYearA11yLabel: 'MM YYYY',\r\n }\r\n};\r\n\r\n@NgModule({\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE]}\r\n ],\r\n})\r\nexport class MatDayjsDateModule {}\r\n","/*\r\n * Public API Surface of material-dayjs-adapter\r\n */\r\n\r\nexport * from './lib/adapter/DayjsDateAdapter';\r\nexport * from './lib/adapter/MatDayjsDateModule';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esfaenza-material-dayjs-adapter.mjs","sources":["../../../projects/material-dayjs-adapter/src/lib/adapter/DayjsDateAdapter.ts","../../../projects/material-dayjs-adapter/src/lib/adapter/MatDayjsDateModule.ts","../../../projects/material-dayjs-adapter/src/public-api.ts","../../../projects/material-dayjs-adapter/src/esfaenza-material-dayjs-adapter.ts"],"sourcesContent":["// Angular\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { DateAdapter, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\n\r\n// Dayjs\r\nimport { Dayjs } from \"dayjs\";\r\n\r\n/**\r\n * Dichiarazione della variabile globale dayjs. L'onere di \"crearla\" è affidato all'applicazione che utilizza questa libreria, \r\n * che dovrà importare lo script globale di dayjs nella CLI\r\n */\r\ndeclare var dayjs: any;\r\n\r\n/**\r\n * Adapter per permettere a Material di funzionare senza problemi con DayJs. Per altri provider di date (es. moment) l'adapter viene fornito \r\n * nativamente da Angular. Per DayJs invece bisogna reimplementarselo\r\n */\r\n@Injectable()\r\nexport class DayJsDateAdapter extends DateAdapter<Dayjs>{\r\n\r\n /**\r\n * Cache dei dati del locale Italiano\r\n */\r\n private _localeData: {\r\n firstDayOfWeek: number,\r\n longMonths: string[],\r\n shortMonths: string[],\r\n dates: string[],\r\n longDaysOfWeek: string[],\r\n shortDaysOfWeek: string[],\r\n narrowDaysOfWeek: string[]\r\n };\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor(@Inject(MAT_DATE_LOCALE) dateLocale: string) {\r\n super();\r\n\r\n this.setLocale(dateLocale);\r\n }\r\n\r\n /**\r\n * Imposta il locale utilizzato per tutte le date\r\n * \r\n * @param {string} locale Locale da impostare\r\n */\r\n public setLocale(locale: string) {\r\n super.setLocale(locale);\r\n\r\n // il localeData si potrebbe prendere da this.dayJs().localeData(); ma io voglio usare le date solo nel formato italiano quindi cablo quello\r\n switch (locale.toLowerCase()) {\r\n case 'it-it':\r\n case 'it': import(\"dayjs/locale/it\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n // In dayjs, nel locale \"en\" e basta non esistono i 3/4 delle info perché sono le cose generiche ereditate dai locali en-gb, en-au ecc...\r\n // quindi mi baso sul locale inglese Britannico, ma comunque I'ts Coming Rome\r\n case 'en-us':\r\n case 'en-gb':\r\n case 'en': import(\"dayjs/locale/en-gb\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n default: throw `Locale non riconosicuto '${locale}'. Locali consentiti: 'it', 'en'`;\r\n }\r\n }\r\n\r\n /**\r\n * Effettua il caricamento del localeData coi nomi dei mesi, giorni ecc partendo dal modulo importato\r\n * \r\n * @param {any} mod Modulo caricato contenente il locale desiderato\r\n */\r\n private loadLoacleDataModule(mod: any) {\r\n this._localeData = {\r\n firstDayOfWeek: mod.weekStart,\r\n longMonths: mod.months,\r\n shortMonths: mod.monthsShort,\r\n dates: this.range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: mod.weekdays,\r\n shortDaysOfWeek: mod.weekdaysShort,\r\n narrowDaysOfWeek: mod.weekdaysMin,\r\n };\r\n }\r\n\r\n /**\r\n * Ottiene le ore da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Ore\r\n */\r\n public getHour(date: Dayjs): number {\r\n return date.get(\"hour\");\r\n }\r\n\r\n /**\r\n * Deserializza una data in DayJs\r\n * \r\n * @param {any} value Valore di data a caso\r\n * \r\n * @returns {Dayjs} data in dayjs\r\n */\r\n public deserialize(value) {\r\n if (!value)\r\n return null;\r\n\r\n var valueConverted = dayjs(value);\r\n\r\n if (valueConverted == null || this.isDateInstance(valueConverted) && this.isValid(valueConverted))\r\n return valueConverted;\r\n\r\n return this.invalid();\r\n }\r\n\r\n /**\r\n * Ottiene i minuti da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Minuti\r\n */\r\n public getMinute(date: Dayjs): number {\r\n return date.get(\"minute\");\r\n }\r\n\r\n /**\r\n * Ottiene i secondi da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Secondi\r\n */\r\n public getSecond(date: Dayjs): number {\r\n return date.get(\"second\");\r\n }\r\n\r\n /**\r\n * Imposta le ore di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per le ore\r\n */\r\n public setHour(date: Dayjs, value: number): void {\r\n (<any>date).$H = value;\r\n }\r\n\r\n /**\r\n * Imposta i minuti di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i minuti\r\n */\r\n public setMinute(date: Dayjs, value: number): void {\r\n (<any>date).$m = value;\r\n }\r\n\r\n /**\r\n * Imposta i secondi di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i secondi\r\n */\r\n public setSecond(date: Dayjs, value: number): void {\r\n (<any>date).$s = value;\r\n }\r\n\r\n /**\r\n * Ottiene l'anno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Anno\r\n */\r\n public getYear(date: Dayjs): number {\r\n return date.get(\"year\");\r\n }\r\n\r\n /**\r\n * Ottiene il mese da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Mese\r\n */\r\n public getMonth(date: Dayjs): number {\r\n return date.get(\"month\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno\r\n */\r\n public getDate(date: Dayjs): number {\r\n return date.get(\"date\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno della settimana da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno della settimana da 1 a 7\r\n */\r\n public getDayOfWeek(date: Dayjs): number {\r\n return date.get(\"day\");\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei mesi\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei mesi espressi in base al parametro **style**\r\n */\r\n public getMonthNames(style: \"long\" | \"short\" | \"narrow\"): string[] {\r\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni del mese\r\n * \r\n * @returns {string[]} Lista dei giorni del mese (da '1' a '31')\r\n */\r\n public getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni della settimana\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei giorni della settimana espressi in base al parametro **style**\r\n */\r\n public getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style == 'long')\r\n return this._localeData.longDaysOfWeek;\r\n else if (style == 'short')\r\n return this._localeData.shortDaysOfWeek;\r\n\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il nome dell'anno\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {string} Anno\r\n */\r\n public getYearName(date: Dayjs): string {\r\n return this.getYear(date).toString();\r\n }\r\n\r\n /**\r\n * Ottiene il primo giorno della settimana\r\n * \r\n * @returns {number} Indice del primo giorno della settimana\r\n */\r\n public getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il numero di giorni nel mese corrente\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Numero di giorni\r\n */\r\n public getNumDaysInMonth(date: Dayjs): number {\r\n return date.daysInMonth();\r\n }\r\n\r\n /**\r\n * Ottiene il clone di una data Dayjs\r\n * \r\n * @param {Dayjs} Data da clonare\r\n * \r\n * @returns {Dayjs} Clone\r\n */\r\n public clone(date: Dayjs): Dayjs {\r\n // Visto che ho modificato l'istanza originale a manazza (vedi setHour, setMinute, setSecond) l'oggetto è danneggiato e per restituire un clone buono\r\n // devo ricrearlo prendendo pezzo per pezzo\r\n // Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n return dayjs(`${this.getYear(date)}-${this.getMonth(date) + 1}-${this.getDate(date)} ${this.getHour(date)}:${this.getMinute(date)}:${this.getSecond(date)}`);\r\n }\r\n\r\n /**\r\n * Crea una data partendo da anno, mese e giorno\r\n * \r\n * @param {number} year Anno\r\n * @param {number} month Mese\r\n * @param {number} date Giorno\r\n * \r\n * @returns {Dayjs} Oggetto generato in base ai parametri **year**, **month**, e **date**\r\n */\r\n public createDate(year: number, month: number, date: number): Dayjs {\r\n if (month < 0 || month > 11)\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n\r\n if (date < 1)\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n\r\n //Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n const result = dayjs(`${year}-${month + 1}-${date}`)\r\n\r\n if (!result.isValid())\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Restituisce la data che rappresenta la giornata di oggi\r\n * \r\n * @returns {Dayjs} Oggi\r\n */\r\n public today(): Dayjs {\r\n return dayjs();\r\n }\r\n\r\n /**\r\n * Effettua il parse di una data, eventualmente in base al formato specificato\r\n * \r\n * @param {any} value Valore da parsare\r\n * @param {string} parseFormat Formato in cui leggere il valore\r\n * \r\n * @returns {Dayjs} Data generata\r\n */\r\n public parse(value: any, parseFormat: string): Dayjs {\r\n if (value && typeof value == 'string') {\r\n if ((value as string).length == parseFormat.length)\r\n return dayjs(value, parseFormat);\r\n else\r\n return null;\r\n }\r\n\r\n return value ? dayjs(value) : null;\r\n }\r\n\r\n /**\r\n * Formatta una data in base al formato specificato\r\n * \r\n * @param {Dayjs} date Data da formattare\r\n * @param {string} displayFormat Formato in cui mostrare la data\r\n * \r\n * @returns {string} Data formattata\r\n */\r\n public format(date: Dayjs, displayFormat: any): string {\r\n if (!this.isValid(date))\r\n throw Error('DateAdapter: Cannot format invalid date.');\r\n \r\n return date.format(displayFormat)\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di anni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere gli anni\r\n * @param {number} years Anni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta degli anni specificati\r\n */\r\n public addCalendarYears(date: Dayjs, years: number): Dayjs {\r\n return date.add(years, \"year\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di mesi\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i mesi\r\n * @param {months} months Mesi da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei mesi specificati\r\n */\r\n public addCalendarMonths(date: Dayjs, months: number): Dayjs {\r\n return date.add(months, \"month\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di giorni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i giorni\r\n * @param {months} days Giorni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei giorni specificati\r\n */\r\n public addCalendarDays(date: Dayjs, days: number): Dayjs {\r\n return date.add(days, \"day\");\r\n }\r\n\r\n /**\r\n * Trasforma la data specificata in una stringa ISO8601\r\n * \r\n * @param {Dayjs} date Data\r\n * \r\n * @returns {string} Rappresentazione in ISO8601\r\n */\r\n public toIso8601(date: Dayjs): string {\r\n return date.toISOString();\r\n }\r\n\r\n /**\r\n * Controlla se l'oggetto passato è effettivamente un DayJs\r\n * \r\n * @param {any} obj Oggetto da verificare se è una data o meno\r\n * \r\n * @returns {boolean} **true** se l'oggetto è un DayJs, **false** altrimenti\r\n */\r\n public isDateInstance(obj: any): boolean {\r\n return dayjs.isDayjs(obj);\r\n }\r\n\r\n /**\r\n * Controlla il DayJs passato e verifica se è valido\r\n * \r\n * @param {Dayjs} date Data da verificare\r\n * \r\n * @returns {boolean} **true** se il DayJs è valido, **false** altrimenti\r\n */\r\n public isValid(date: Dayjs): boolean {\r\n return date.isValid();\r\n }\r\n\r\n /**\r\n * Restituisce un DayJs invalido\r\n * \r\n * @returns {DayJs} Data Invalida\r\n */\r\n public invalid(): Dayjs {\r\n return dayjs(\"Invalid Date\");\r\n }\r\n\r\n /**\r\n * Crea un range di una lunghezza specifica e per ogni indice del range richiama un callback che valorizza l'elemento di quell'indice\r\n * \r\n * @param {number} length Lunghezza del range\r\n * @param {Function} valueFunction Callback che deve generare il valore desiderato per ogni indice\r\n * \r\n * @returns {T[]} Array dei valori generati\r\n */\r\n private range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length);\r\n for (let i = 0; i < length; i++)\r\n valuesArray[i] = valueFunction(i);\r\n return valuesArray;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatDateFormats } from '@angular/material/core';\r\nimport { DayJsDateAdapter } from './DayjsDateAdapter';\r\n\r\n/**\r\n * Formati di default per la presentazione degli input quali il DatePicker di Angular Material. \r\n * Cablati a quelli italiani ignorando quelli di BurgerLand per non impazzire\r\n */\r\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\r\n parse: { dateInput: 'DD/MM/YYYY' },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY',\r\n monthYearA11yLabel: 'MM YYYY',\r\n }\r\n};\r\n\r\n@NgModule({\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE]}\r\n ],\r\n})\r\nexport class MatDayjsDateModule {}\r\n","/*\r\n * Public API Surface of material-dayjs-adapter\r\n */\r\n\r\nexport * from './lib/adapter/DayjsDateAdapter';\r\nexport * from './lib/adapter/MatDayjsDateModule';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,20 +1,16 @@
1
1
  {
2
2
  "name": "@esfaenza/material-dayjs-adapter",
3
- "version": "15.2.2",
3
+ "version": "16.2.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "^15.2.9",
9
- "@angular/core": "^15.2.9",
10
- "@angular/material": "15.2.9",
11
- "dayjs": "1.11.8"
8
+ "@angular/common": "^16.2.12",
9
+ "@angular/core": "^16.2.12",
10
+ "@angular/material": "16.2.14",
11
+ "dayjs": "1.11.13"
12
12
  },
13
- "module": "fesm2015/esfaenza-material-dayjs-adapter.mjs",
14
- "es2020": "fesm2020/esfaenza-material-dayjs-adapter.mjs",
15
- "esm2020": "esm2020/esfaenza-material-dayjs-adapter.mjs",
16
- "fesm2020": "fesm2020/esfaenza-material-dayjs-adapter.mjs",
17
- "fesm2015": "fesm2015/esfaenza-material-dayjs-adapter.mjs",
13
+ "module": "fesm2022/esfaenza-material-dayjs-adapter.mjs",
18
14
  "typings": "index.d.ts",
19
15
  "exports": {
20
16
  "./package.json": {
@@ -22,11 +18,9 @@
22
18
  },
23
19
  ".": {
24
20
  "types": "./index.d.ts",
25
- "esm2020": "./esm2020/esfaenza-material-dayjs-adapter.mjs",
26
- "es2020": "./fesm2020/esfaenza-material-dayjs-adapter.mjs",
27
- "es2015": "./fesm2015/esfaenza-material-dayjs-adapter.mjs",
28
- "node": "./fesm2015/esfaenza-material-dayjs-adapter.mjs",
29
- "default": "./fesm2020/esfaenza-material-dayjs-adapter.mjs"
21
+ "esm2022": "./esm2022/esfaenza-material-dayjs-adapter.mjs",
22
+ "esm": "./esm2022/esfaenza-material-dayjs-adapter.mjs",
23
+ "default": "./fesm2022/esfaenza-material-dayjs-adapter.mjs"
30
24
  }
31
25
  },
32
26
  "sideEffects": false
@@ -1,439 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Injectable, Inject, NgModule } from '@angular/core';
3
- import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS } from '@angular/material/core';
4
-
5
- // Angular
6
- /**
7
- * Adapter per permettere a Material di funzionare senza problemi con DayJs. Per altri provider di date (es. moment) l'adapter viene fornito
8
- * nativamente da Angular. Per DayJs invece bisogna reimplementarselo
9
- */
10
- class DayJsDateAdapter extends DateAdapter {
11
- /**
12
- * Costruttore
13
- *
14
- * @ignore
15
- */
16
- constructor(dateLocale) {
17
- super();
18
- this.setLocale(dateLocale);
19
- }
20
- /**
21
- * Imposta il locale utilizzato per tutte le date
22
- *
23
- * @param {string} locale Locale da impostare
24
- */
25
- setLocale(locale) {
26
- super.setLocale(locale);
27
- // il localeData si potrebbe prendere da this.dayJs().localeData(); ma io voglio usare le date solo nel formato italiano quindi cablo quello
28
- switch (locale.toLowerCase()) {
29
- case 'it-it':
30
- case 'it':
31
- import('dayjs/locale/it').then(mod => { this.loadLoacleDataModule(mod.default); });
32
- break;
33
- // In dayjs, nel locale "en" e basta non esistono i 3/4 delle info perché sono le cose generiche ereditate dai locali en-gb, en-au ecc...
34
- // quindi mi baso sul locale inglese Britannico, ma comunque I'ts Coming Rome
35
- case 'en-us':
36
- case 'en-gb':
37
- case 'en':
38
- import('dayjs/locale/en-gb').then(mod => { this.loadLoacleDataModule(mod.default); });
39
- break;
40
- default: throw `Locale non riconosicuto '${locale}'. Locali consentiti: 'it', 'en'`;
41
- }
42
- }
43
- /**
44
- * Effettua il caricamento del localeData coi nomi dei mesi, giorni ecc partendo dal modulo importato
45
- *
46
- * @param {any} mod Modulo caricato contenente il locale desiderato
47
- */
48
- loadLoacleDataModule(mod) {
49
- this._localeData = {
50
- firstDayOfWeek: mod.weekStart,
51
- longMonths: mod.months,
52
- shortMonths: mod.monthsShort,
53
- dates: this.range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),
54
- longDaysOfWeek: mod.weekdays,
55
- shortDaysOfWeek: mod.weekdaysShort,
56
- narrowDaysOfWeek: mod.weekdaysMin,
57
- };
58
- }
59
- /**
60
- * Ottiene le ore da un DayJs
61
- *
62
- * @param {Dayjs} date Data Dayjs
63
- *
64
- * @returns {number} Ore
65
- */
66
- getHour(date) {
67
- return date.get("hour");
68
- }
69
- /**
70
- * Deserializza una data in DayJs
71
- *
72
- * @param {any} value Valore di data a caso
73
- *
74
- * @returns {Dayjs} data in dayjs
75
- */
76
- deserialize(value) {
77
- if (!value)
78
- return null;
79
- var valueConverted = dayjs(value);
80
- if (valueConverted == null || this.isDateInstance(valueConverted) && this.isValid(valueConverted))
81
- return valueConverted;
82
- return this.invalid();
83
- }
84
- /**
85
- * Ottiene i minuti da un DayJs
86
- *
87
- * @param {Dayjs} date Data Dayjs
88
- *
89
- * @returns {number} Minuti
90
- */
91
- getMinute(date) {
92
- return date.get("minute");
93
- }
94
- /**
95
- * Ottiene i secondi da un DayJs
96
- *
97
- * @param {Dayjs} date Data Dayjs
98
- *
99
- * @returns {number} Secondi
100
- */
101
- getSecond(date) {
102
- return date.get("second");
103
- }
104
- /**
105
- * Imposta le ore di una data Dayjs
106
- *
107
- * @param {Dayjs} date Data da modificare
108
- * @param {number} value Valore da impostare per le ore
109
- */
110
- setHour(date, value) {
111
- date.$H = value;
112
- }
113
- /**
114
- * Imposta i minuti di una data Dayjs
115
- *
116
- * @param {Dayjs} date Data da modificare
117
- * @param {number} value Valore da impostare per i minuti
118
- */
119
- setMinute(date, value) {
120
- date.$m = value;
121
- }
122
- /**
123
- * Imposta i secondi di una data Dayjs
124
- *
125
- * @param {Dayjs} date Data da modificare
126
- * @param {number} value Valore da impostare per i secondi
127
- */
128
- setSecond(date, value) {
129
- date.$s = value;
130
- }
131
- /**
132
- * Ottiene l'anno da un DayJs
133
- *
134
- * @param {Dayjs} date Data Dayjs
135
- *
136
- * @returns {number} Anno
137
- */
138
- getYear(date) {
139
- return date.get("year");
140
- }
141
- /**
142
- * Ottiene il mese da un DayJs
143
- *
144
- * @param {Dayjs} date Data Dayjs
145
- *
146
- * @returns {number} Mese
147
- */
148
- getMonth(date) {
149
- return date.get("month");
150
- }
151
- /**
152
- * Ottiene il giorno da un DayJs
153
- *
154
- * @param {Dayjs} date Data Dayjs
155
- *
156
- * @returns {number} Giorno
157
- */
158
- getDate(date) {
159
- return date.get("date");
160
- }
161
- /**
162
- * Ottiene il giorno della settimana da un DayJs
163
- *
164
- * @param {Dayjs} date Data Dayjs
165
- *
166
- * @returns {number} Giorno della settimana da 1 a 7
167
- */
168
- getDayOfWeek(date) {
169
- return date.get("day");
170
- }
171
- /**
172
- * Ottiene i nomi dei mesi
173
- *
174
- * @param {"long" | "short" | "narrow"} style Stile dei nomi richiesto
175
- *
176
- * @returns {string[]} Lista dei mesi espressi in base al parametro **style**
177
- */
178
- getMonthNames(style) {
179
- return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;
180
- }
181
- /**
182
- * Ottiene i nomi dei giorni del mese
183
- *
184
- * @returns {string[]} Lista dei giorni del mese (da '1' a '31')
185
- */
186
- getDateNames() {
187
- return this._localeData.dates;
188
- }
189
- /**
190
- * Ottiene i nomi dei giorni della settimana
191
- *
192
- * @param {"long" | "short" | "narrow"} style Stile dei nomi richiesto
193
- *
194
- * @returns {string[]} Lista dei giorni della settimana espressi in base al parametro **style**
195
- */
196
- getDayOfWeekNames(style) {
197
- if (style == 'long')
198
- return this._localeData.longDaysOfWeek;
199
- else if (style == 'short')
200
- return this._localeData.shortDaysOfWeek;
201
- return this._localeData.narrowDaysOfWeek;
202
- }
203
- /**
204
- * Ottiene il nome dell'anno
205
- *
206
- * @param {Dayjs} date Data Dayjs
207
- *
208
- * @returns {string} Anno
209
- */
210
- getYearName(date) {
211
- return this.getYear(date).toString();
212
- }
213
- /**
214
- * Ottiene il primo giorno della settimana
215
- *
216
- * @returns {number} Indice del primo giorno della settimana
217
- */
218
- getFirstDayOfWeek() {
219
- return this._localeData.firstDayOfWeek;
220
- }
221
- /**
222
- * Ottiene il numero di giorni nel mese corrente
223
- *
224
- * @param {Dayjs} date Data Dayjs
225
- *
226
- * @returns {number} Numero di giorni
227
- */
228
- getNumDaysInMonth(date) {
229
- return date.daysInMonth();
230
- }
231
- /**
232
- * Ottiene il clone di una data Dayjs
233
- *
234
- * @param {Dayjs} Data da clonare
235
- *
236
- * @returns {Dayjs} Clone
237
- */
238
- clone(date) {
239
- // Visto che ho modificato l'istanza originale a manazza (vedi setHour, setMinute, setSecond) l'oggetto è danneggiato e per restituire un clone buono
240
- // devo ricrearlo prendendo pezzo per pezzo
241
- // Il mese è un indice 0-11 quindi devo dargli un +1 qua
242
- return dayjs(`${this.getYear(date)}-${this.getMonth(date) + 1}-${this.getDate(date)} ${this.getHour(date)}:${this.getMinute(date)}:${this.getSecond(date)}`);
243
- }
244
- /**
245
- * Crea una data partendo da anno, mese e giorno
246
- *
247
- * @param {number} year Anno
248
- * @param {number} month Mese
249
- * @param {number} date Giorno
250
- *
251
- * @returns {Dayjs} Oggetto generato in base ai parametri **year**, **month**, e **date**
252
- */
253
- createDate(year, month, date) {
254
- if (month < 0 || month > 11)
255
- throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
256
- if (date < 1)
257
- throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
258
- //Il mese è un indice 0-11 quindi devo dargli un +1 qua
259
- const result = dayjs(`${year}-${month + 1}-${date}`);
260
- if (!result.isValid())
261
- throw Error(`Invalid date "${date}" for month with index "${month}".`);
262
- return result;
263
- }
264
- /**
265
- * Restituisce la data che rappresenta la giornata di oggi
266
- *
267
- * @returns {Dayjs} Oggi
268
- */
269
- today() {
270
- return dayjs();
271
- }
272
- /**
273
- * Effettua il parse di una data, eventualmente in base al formato specificato
274
- *
275
- * @param {any} value Valore da parsare
276
- * @param {string} parseFormat Formato in cui leggere il valore
277
- *
278
- * @returns {Dayjs} Data generata
279
- */
280
- parse(value, parseFormat) {
281
- if (value && typeof value == 'string') {
282
- if (value.length == parseFormat.length)
283
- return dayjs(value, parseFormat);
284
- else
285
- return null;
286
- }
287
- return value ? dayjs(value) : null;
288
- }
289
- /**
290
- * Formatta una data in base al formato specificato
291
- *
292
- * @param {Dayjs} date Data da formattare
293
- * @param {string} displayFormat Formato in cui mostrare la data
294
- *
295
- * @returns {string} Data formattata
296
- */
297
- format(date, displayFormat) {
298
- if (!this.isValid(date))
299
- throw Error('DateAdapter: Cannot format invalid date.');
300
- return date.format(displayFormat);
301
- }
302
- /**
303
- * Aggiunge ad una data il numero specificato di anni
304
- *
305
- * @param {Dayjs} date Data a cui aggiungere gli anni
306
- * @param {number} years Anni da aggiungere
307
- *
308
- * @returns {Dayjs} Data con l'aggiunta degli anni specificati
309
- */
310
- addCalendarYears(date, years) {
311
- return date.add(years, "year");
312
- }
313
- /**
314
- * Aggiunge ad una data il numero specificato di mesi
315
- *
316
- * @param {Dayjs} date Data a cui aggiungere i mesi
317
- * @param {months} months Mesi da aggiungere
318
- *
319
- * @returns {Dayjs} Data con l'aggiunta dei mesi specificati
320
- */
321
- addCalendarMonths(date, months) {
322
- return date.add(months, "month");
323
- }
324
- /**
325
- * Aggiunge ad una data il numero specificato di giorni
326
- *
327
- * @param {Dayjs} date Data a cui aggiungere i giorni
328
- * @param {months} days Giorni da aggiungere
329
- *
330
- * @returns {Dayjs} Data con l'aggiunta dei giorni specificati
331
- */
332
- addCalendarDays(date, days) {
333
- return date.add(days, "day");
334
- }
335
- /**
336
- * Trasforma la data specificata in una stringa ISO8601
337
- *
338
- * @param {Dayjs} date Data
339
- *
340
- * @returns {string} Rappresentazione in ISO8601
341
- */
342
- toIso8601(date) {
343
- return date.toISOString();
344
- }
345
- /**
346
- * Controlla se l'oggetto passato è effettivamente un DayJs
347
- *
348
- * @param {any} obj Oggetto da verificare se è una data o meno
349
- *
350
- * @returns {boolean} **true** se l'oggetto è un DayJs, **false** altrimenti
351
- */
352
- isDateInstance(obj) {
353
- return dayjs.isDayjs(obj);
354
- }
355
- /**
356
- * Controlla il DayJs passato e verifica se è valido
357
- *
358
- * @param {Dayjs} date Data da verificare
359
- *
360
- * @returns {boolean} **true** se il DayJs è valido, **false** altrimenti
361
- */
362
- isValid(date) {
363
- return date.isValid();
364
- }
365
- /**
366
- * Restituisce un DayJs invalido
367
- *
368
- * @returns {DayJs} Data Invalida
369
- */
370
- invalid() {
371
- return dayjs("Invalid Date");
372
- }
373
- /**
374
- * Crea un range di una lunghezza specifica e per ogni indice del range richiama un callback che valorizza l'elemento di quell'indice
375
- *
376
- * @param {number} length Lunghezza del range
377
- * @param {Function} valueFunction Callback che deve generare il valore desiderato per ogni indice
378
- *
379
- * @returns {T[]} Array dei valori generati
380
- */
381
- range(length, valueFunction) {
382
- const valuesArray = Array(length);
383
- for (let i = 0; i < length; i++)
384
- valuesArray[i] = valueFunction(i);
385
- return valuesArray;
386
- }
387
- }
388
- DayJsDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, deps: [{ token: MAT_DATE_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable });
389
- DayJsDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter });
390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DayJsDateAdapter, decorators: [{
391
- type: Injectable
392
- }], ctorParameters: function () {
393
- return [{ type: undefined, decorators: [{
394
- type: Inject,
395
- args: [MAT_DATE_LOCALE]
396
- }] }];
397
- } });
398
-
399
- /**
400
- * Formati di default per la presentazione degli input quali il DatePicker di Angular Material.
401
- * Cablati a quelli italiani ignorando quelli di BurgerLand per non impazzire
402
- */
403
- const MAT_DAYJS_DATE_FORMATS = {
404
- parse: { dateInput: 'DD/MM/YYYY' },
405
- display: {
406
- dateInput: 'DD/MM/YYYY',
407
- monthYearLabel: 'MM YYYY',
408
- dateA11yLabel: 'DD/MM/YYYY',
409
- monthYearA11yLabel: 'MM YYYY',
410
- }
411
- };
412
- class MatDayjsDateModule {
413
- }
414
- MatDayjsDateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
415
- MatDayjsDateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule });
416
- MatDayjsDateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, providers: [
417
- { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
418
- { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
419
- ] });
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MatDayjsDateModule, decorators: [{
421
- type: NgModule,
422
- args: [{
423
- providers: [
424
- { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },
425
- { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE] }
426
- ],
427
- }]
428
- }] });
429
-
430
- /*
431
- * Public API Surface of material-dayjs-adapter
432
- */
433
-
434
- /**
435
- * Generated bundle index. Do not edit.
436
- */
437
-
438
- export { DayJsDateAdapter, MAT_DAYJS_DATE_FORMATS, MatDayjsDateModule };
439
- //# sourceMappingURL=esfaenza-material-dayjs-adapter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esfaenza-material-dayjs-adapter.mjs","sources":["../../../projects/material-dayjs-adapter/src/lib/adapter/DayjsDateAdapter.ts","../../../projects/material-dayjs-adapter/src/lib/adapter/MatDayjsDateModule.ts","../../../projects/material-dayjs-adapter/src/public-api.ts","../../../projects/material-dayjs-adapter/src/esfaenza-material-dayjs-adapter.ts"],"sourcesContent":["// Angular\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { DateAdapter, MAT_DATE_LOCALE } from \"@angular/material/core\";\r\n\r\n// Dayjs\r\nimport { Dayjs } from \"dayjs\";\r\n\r\n/**\r\n * Dichiarazione della variabile globale dayjs. L'onere di \"crearla\" è affidato all'applicazione che utilizza questa libreria, \r\n * che dovrà importare lo script globale di dayjs nella CLI\r\n */\r\ndeclare var dayjs: any;\r\n\r\n/**\r\n * Adapter per permettere a Material di funzionare senza problemi con DayJs. Per altri provider di date (es. moment) l'adapter viene fornito \r\n * nativamente da Angular. Per DayJs invece bisogna reimplementarselo\r\n */\r\n@Injectable()\r\nexport class DayJsDateAdapter extends DateAdapter<Dayjs>{\r\n\r\n /**\r\n * Cache dei dati del locale Italiano\r\n */\r\n private _localeData: {\r\n firstDayOfWeek: number,\r\n longMonths: string[],\r\n shortMonths: string[],\r\n dates: string[],\r\n longDaysOfWeek: string[],\r\n shortDaysOfWeek: string[],\r\n narrowDaysOfWeek: string[]\r\n };\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor(@Inject(MAT_DATE_LOCALE) dateLocale: string) {\r\n super();\r\n\r\n this.setLocale(dateLocale);\r\n }\r\n\r\n /**\r\n * Imposta il locale utilizzato per tutte le date\r\n * \r\n * @param {string} locale Locale da impostare\r\n */\r\n public setLocale(locale: string) {\r\n super.setLocale(locale);\r\n\r\n // il localeData si potrebbe prendere da this.dayJs().localeData(); ma io voglio usare le date solo nel formato italiano quindi cablo quello\r\n switch (locale.toLowerCase()) {\r\n case 'it-it':\r\n case 'it': import(\"dayjs/locale/it\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n // In dayjs, nel locale \"en\" e basta non esistono i 3/4 delle info perché sono le cose generiche ereditate dai locali en-gb, en-au ecc...\r\n // quindi mi baso sul locale inglese Britannico, ma comunque I'ts Coming Rome\r\n case 'en-us':\r\n case 'en-gb':\r\n case 'en': import(\"dayjs/locale/en-gb\").then(mod => { this.loadLoacleDataModule(mod.default) }); break;\r\n default: throw `Locale non riconosicuto '${locale}'. Locali consentiti: 'it', 'en'`;\r\n }\r\n }\r\n\r\n /**\r\n * Effettua il caricamento del localeData coi nomi dei mesi, giorni ecc partendo dal modulo importato\r\n * \r\n * @param {any} mod Modulo caricato contenente il locale desiderato\r\n */\r\n private loadLoacleDataModule(mod: any) {\r\n this._localeData = {\r\n firstDayOfWeek: mod.weekStart,\r\n longMonths: mod.months,\r\n shortMonths: mod.monthsShort,\r\n dates: this.range(31, (i) => this.createDate(2017, 0, i + 1).format('D')),\r\n longDaysOfWeek: mod.weekdays,\r\n shortDaysOfWeek: mod.weekdaysShort,\r\n narrowDaysOfWeek: mod.weekdaysMin,\r\n };\r\n }\r\n\r\n /**\r\n * Ottiene le ore da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Ore\r\n */\r\n public getHour(date: Dayjs): number {\r\n return date.get(\"hour\");\r\n }\r\n\r\n /**\r\n * Deserializza una data in DayJs\r\n * \r\n * @param {any} value Valore di data a caso\r\n * \r\n * @returns {Dayjs} data in dayjs\r\n */\r\n public deserialize(value) {\r\n if (!value)\r\n return null;\r\n\r\n var valueConverted = dayjs(value);\r\n\r\n if (valueConverted == null || this.isDateInstance(valueConverted) && this.isValid(valueConverted))\r\n return valueConverted;\r\n\r\n return this.invalid();\r\n }\r\n\r\n /**\r\n * Ottiene i minuti da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Minuti\r\n */\r\n public getMinute(date: Dayjs): number {\r\n return date.get(\"minute\");\r\n }\r\n\r\n /**\r\n * Ottiene i secondi da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Secondi\r\n */\r\n public getSecond(date: Dayjs): number {\r\n return date.get(\"second\");\r\n }\r\n\r\n /**\r\n * Imposta le ore di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per le ore\r\n */\r\n public setHour(date: Dayjs, value: number): void {\r\n (<any>date).$H = value;\r\n }\r\n\r\n /**\r\n * Imposta i minuti di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i minuti\r\n */\r\n public setMinute(date: Dayjs, value: number): void {\r\n (<any>date).$m = value;\r\n }\r\n\r\n /**\r\n * Imposta i secondi di una data Dayjs\r\n * \r\n * @param {Dayjs} date Data da modificare\r\n * @param {number} value Valore da impostare per i secondi\r\n */\r\n public setSecond(date: Dayjs, value: number): void {\r\n (<any>date).$s = value;\r\n }\r\n\r\n /**\r\n * Ottiene l'anno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Anno\r\n */\r\n public getYear(date: Dayjs): number {\r\n return date.get(\"year\");\r\n }\r\n\r\n /**\r\n * Ottiene il mese da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Mese\r\n */\r\n public getMonth(date: Dayjs): number {\r\n return date.get(\"month\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno\r\n */\r\n public getDate(date: Dayjs): number {\r\n return date.get(\"date\");\r\n }\r\n\r\n /**\r\n * Ottiene il giorno della settimana da un DayJs\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Giorno della settimana da 1 a 7\r\n */\r\n public getDayOfWeek(date: Dayjs): number {\r\n return date.get(\"day\");\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei mesi\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei mesi espressi in base al parametro **style**\r\n */\r\n public getMonthNames(style: \"long\" | \"short\" | \"narrow\"): string[] {\r\n return style == 'long' ? this._localeData.longMonths : this._localeData.shortMonths;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni del mese\r\n * \r\n * @returns {string[]} Lista dei giorni del mese (da '1' a '31')\r\n */\r\n public getDateNames(): string[] {\r\n return this._localeData.dates;\r\n }\r\n\r\n /**\r\n * Ottiene i nomi dei giorni della settimana\r\n * \r\n * @param {\"long\" | \"short\" | \"narrow\"} style Stile dei nomi richiesto\r\n * \r\n * @returns {string[]} Lista dei giorni della settimana espressi in base al parametro **style**\r\n */\r\n public getDayOfWeekNames(style: 'long' | 'short' | 'narrow'): string[] {\r\n if (style == 'long')\r\n return this._localeData.longDaysOfWeek;\r\n else if (style == 'short')\r\n return this._localeData.shortDaysOfWeek;\r\n\r\n return this._localeData.narrowDaysOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il nome dell'anno\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {string} Anno\r\n */\r\n public getYearName(date: Dayjs): string {\r\n return this.getYear(date).toString();\r\n }\r\n\r\n /**\r\n * Ottiene il primo giorno della settimana\r\n * \r\n * @returns {number} Indice del primo giorno della settimana\r\n */\r\n public getFirstDayOfWeek(): number {\r\n return this._localeData.firstDayOfWeek;\r\n }\r\n\r\n /**\r\n * Ottiene il numero di giorni nel mese corrente\r\n * \r\n * @param {Dayjs} date Data Dayjs\r\n * \r\n * @returns {number} Numero di giorni\r\n */\r\n public getNumDaysInMonth(date: Dayjs): number {\r\n return date.daysInMonth();\r\n }\r\n\r\n /**\r\n * Ottiene il clone di una data Dayjs\r\n * \r\n * @param {Dayjs} Data da clonare\r\n * \r\n * @returns {Dayjs} Clone\r\n */\r\n public clone(date: Dayjs): Dayjs {\r\n // Visto che ho modificato l'istanza originale a manazza (vedi setHour, setMinute, setSecond) l'oggetto è danneggiato e per restituire un clone buono\r\n // devo ricrearlo prendendo pezzo per pezzo\r\n // Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n return dayjs(`${this.getYear(date)}-${this.getMonth(date) + 1}-${this.getDate(date)} ${this.getHour(date)}:${this.getMinute(date)}:${this.getSecond(date)}`);\r\n }\r\n\r\n /**\r\n * Crea una data partendo da anno, mese e giorno\r\n * \r\n * @param {number} year Anno\r\n * @param {number} month Mese\r\n * @param {number} date Giorno\r\n * \r\n * @returns {Dayjs} Oggetto generato in base ai parametri **year**, **month**, e **date**\r\n */\r\n public createDate(year: number, month: number, date: number): Dayjs {\r\n if (month < 0 || month > 11)\r\n throw Error(`Invalid month index \"${month}\". Month index has to be between 0 and 11.`);\r\n\r\n if (date < 1)\r\n throw Error(`Invalid date \"${date}\". Date has to be greater than 0.`);\r\n\r\n //Il mese è un indice 0-11 quindi devo dargli un +1 qua\r\n const result = dayjs(`${year}-${month + 1}-${date}`)\r\n\r\n if (!result.isValid())\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Restituisce la data che rappresenta la giornata di oggi\r\n * \r\n * @returns {Dayjs} Oggi\r\n */\r\n public today(): Dayjs {\r\n return dayjs();\r\n }\r\n\r\n /**\r\n * Effettua il parse di una data, eventualmente in base al formato specificato\r\n * \r\n * @param {any} value Valore da parsare\r\n * @param {string} parseFormat Formato in cui leggere il valore\r\n * \r\n * @returns {Dayjs} Data generata\r\n */\r\n public parse(value: any, parseFormat: string): Dayjs {\r\n if (value && typeof value == 'string') {\r\n if ((value as string).length == parseFormat.length)\r\n return dayjs(value, parseFormat);\r\n else\r\n return null;\r\n }\r\n\r\n return value ? dayjs(value) : null;\r\n }\r\n\r\n /**\r\n * Formatta una data in base al formato specificato\r\n * \r\n * @param {Dayjs} date Data da formattare\r\n * @param {string} displayFormat Formato in cui mostrare la data\r\n * \r\n * @returns {string} Data formattata\r\n */\r\n public format(date: Dayjs, displayFormat: any): string {\r\n if (!this.isValid(date))\r\n throw Error('DateAdapter: Cannot format invalid date.');\r\n \r\n return date.format(displayFormat)\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di anni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere gli anni\r\n * @param {number} years Anni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta degli anni specificati\r\n */\r\n public addCalendarYears(date: Dayjs, years: number): Dayjs {\r\n return date.add(years, \"year\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di mesi\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i mesi\r\n * @param {months} months Mesi da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei mesi specificati\r\n */\r\n public addCalendarMonths(date: Dayjs, months: number): Dayjs {\r\n return date.add(months, \"month\");\r\n }\r\n\r\n /**\r\n * Aggiunge ad una data il numero specificato di giorni\r\n * \r\n * @param {Dayjs} date Data a cui aggiungere i giorni\r\n * @param {months} days Giorni da aggiungere\r\n * \r\n * @returns {Dayjs} Data con l'aggiunta dei giorni specificati\r\n */\r\n public addCalendarDays(date: Dayjs, days: number): Dayjs {\r\n return date.add(days, \"day\");\r\n }\r\n\r\n /**\r\n * Trasforma la data specificata in una stringa ISO8601\r\n * \r\n * @param {Dayjs} date Data\r\n * \r\n * @returns {string} Rappresentazione in ISO8601\r\n */\r\n public toIso8601(date: Dayjs): string {\r\n return date.toISOString();\r\n }\r\n\r\n /**\r\n * Controlla se l'oggetto passato è effettivamente un DayJs\r\n * \r\n * @param {any} obj Oggetto da verificare se è una data o meno\r\n * \r\n * @returns {boolean} **true** se l'oggetto è un DayJs, **false** altrimenti\r\n */\r\n public isDateInstance(obj: any): boolean {\r\n return dayjs.isDayjs(obj);\r\n }\r\n\r\n /**\r\n * Controlla il DayJs passato e verifica se è valido\r\n * \r\n * @param {Dayjs} date Data da verificare\r\n * \r\n * @returns {boolean} **true** se il DayJs è valido, **false** altrimenti\r\n */\r\n public isValid(date: Dayjs): boolean {\r\n return date.isValid();\r\n }\r\n\r\n /**\r\n * Restituisce un DayJs invalido\r\n * \r\n * @returns {DayJs} Data Invalida\r\n */\r\n public invalid(): Dayjs {\r\n return dayjs(\"Invalid Date\");\r\n }\r\n\r\n /**\r\n * Crea un range di una lunghezza specifica e per ogni indice del range richiama un callback che valorizza l'elemento di quell'indice\r\n * \r\n * @param {number} length Lunghezza del range\r\n * @param {Function} valueFunction Callback che deve generare il valore desiderato per ogni indice\r\n * \r\n * @returns {T[]} Array dei valori generati\r\n */\r\n private range<T>(length: number, valueFunction: (index: number) => T): T[] {\r\n const valuesArray = Array(length);\r\n for (let i = 0; i < length; i++)\r\n valuesArray[i] = valueFunction(i);\r\n return valuesArray;\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MatDateFormats } from '@angular/material/core';\r\nimport { DayJsDateAdapter } from './DayjsDateAdapter';\r\n\r\n/**\r\n * Formati di default per la presentazione degli input quali il DatePicker di Angular Material. \r\n * Cablati a quelli italiani ignorando quelli di BurgerLand per non impazzire\r\n */\r\nexport const MAT_DAYJS_DATE_FORMATS: MatDateFormats = {\r\n parse: { dateInput: 'DD/MM/YYYY' },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MM YYYY',\r\n dateA11yLabel: 'DD/MM/YYYY',\r\n monthYearA11yLabel: 'MM YYYY',\r\n }\r\n};\r\n\r\n@NgModule({\r\n providers: [\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_DAYJS_DATE_FORMATS },\r\n { provide: DateAdapter, useClass: DayJsDateAdapter, deps: [MAT_DATE_LOCALE]}\r\n ],\r\n})\r\nexport class MatDayjsDateModule {}\r\n","/*\r\n * Public API Surface of material-dayjs-adapter\r\n */\r\n\r\nexport * from './lib/adapter/DayjsDateAdapter';\r\nexport * from './lib/adapter/MatDayjsDateModule';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
File without changes