moment-timezone-picker
Version:
A simple angular moment timezone picker
1 lines • 15.1 kB
Source Map (JSON)
{"version":3,"file":"moment-timezone-picker.mjs","sources":["../../../projects/moment-timezone-picker/src/lib/core/defaults/_select-config.default.ts","../../../projects/moment-timezone-picker/src/lib/core/types/_tzone.model.ts","../../../projects/moment-timezone-picker/src/lib/core/utils/_format-zone.util.ts","../../../projects/moment-timezone-picker/src/lib/moment-timezone-picker.component.ts","../../../projects/moment-timezone-picker/src/lib/moment-timezone-picker.module.ts","../../../projects/moment-timezone-picker/src/public_api.ts","../../../projects/moment-timezone-picker/src/moment-timezone-picker.ts"],"sourcesContent":["import {SelectConfig} from '../types';\n\nexport const DEFAULT_SELECT_CONFIG: SelectConfig = {\n hideSelected: false,\n dropdownPosition: 'auto',\n appearance: 'underline',\n clearOnBackspace: true,\n closeOnSelect: true,\n appendTo: null,\n searchable: true,\n};\n","export class TZone {\n name: string;\n nameValue: string;\n timeValue: string;\n group: string;\n abbr: string;\n}\n","import {TZone} from '../types';\nimport * as momentZone from 'moment-timezone';\n\n/**\n * Make TZone object from simple string.\n */\nexport const formatZone = (zone: string): TZone => {\n const foundZone = momentZone.tz(zone);\n const utc: string = foundZone.format('Z');\n const abbr: string = foundZone.zoneAbbr();\n return {\n name: `${zone} (${utc})`,\n nameValue: zone,\n timeValue: utc,\n group: zone.split('/', 1)[0],\n abbr: abbr\n };\n};\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport * as momentZone from 'moment-timezone';\nimport {ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\nimport {DEFAULT_SELECT_CONFIG, formatZone, SelectConfig, TZone} from './core';\n\n@Component({\n selector: 'ng-moment-timezone-picker',\n template: `\n <div class=\"wrapper\" [formGroup]=\"form\">\n <ng-select [formControlName]=\"'timezone'\"\n [items]=\"timeZones\"\n [clearable]=\"clearable\"\n [virtualScroll]=\"virtualScroll\"\n [groupBy]=\"'group'\"\n bindLabel=\"name\"\n [placeholder]=\"customPlaceholderText\"\n [notFoundText]=\"customNotFoundText\"\n\n [appearance]=\"config.appearance\"\n [appendTo]=\"config.appendTo\"\n [clearOnBackspace]=\"config.clearOnBackspace\"\n [closeOnSelect]=\"config.closeOnSelect\"\n [dropdownPosition]=\"config.dropdownPosition\"\n [hideSelected]=\"config.hideSelected\"\n [searchable]=\"config.searchable\">\n </ng-select>\n </div>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MomentTimezonePickerComponent),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MomentTimezonePickerComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\n /**\n * Setup section.\n */\n @Input() getUserZone = false;\n @Input() customPlaceholderText = 'Choose...';\n @Input() customNotFoundText = 'No zone found';\n @Input() clearable = false;\n @Input() virtualScroll = true;\n @Input() disabled = false;\n @Input() valueTransformFN?: (obj: TZone | null) => any;\n\n @Input()\n set config(conf: SelectConfig) {\n this._config = conf;\n }\n\n private _config: SelectConfig = DEFAULT_SELECT_CONFIG;\n\n get config(): SelectConfig {\n return this._config;\n }\n\n /**\n * Internals section.\n */\n timeZones: Array<TZone>;\n form: UntypedFormGroup = this.fb.group({\n timezone: []\n });\n private propagateChange: (_: any) => {};\n private destroy$ = new Subject<void>();\n\n constructor(private fb: UntypedFormBuilder, private cdr: ChangeDetectorRef) {\n }\n\n /**\n * Lifecycle hooks\n */\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.getUserZone && changes.getUserZone.currentValue) {\n this.guessUserTimezone();\n }\n if (changes.disabled) {\n this.toggleTimezoneCtrl(changes.disabled.currentValue);\n }\n }\n\n public ngOnInit(): void {\n this.timeZones = momentZone.tz.names().map((zone: string) => formatZone(zone));\n this.setTimezoneChangeListener();\n }\n\n public ngAfterViewInit(): void {\n this.guessUserTimezone();\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Private\n */\n\n private toggleTimezoneCtrl(isDisabled: boolean): void {\n isDisabled\n ? this.form.get('timezone').disable()\n : this.form.get('timezone').enable();\n this.cdr.detectChanges();\n }\n\n private setTimezoneChangeListener(): void {\n this.form.get('timezone').valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.fireChanges());\n }\n\n private guessUserTimezone(): void {\n setTimeout(() => {\n if (!this.getUserZone) {\n console.warn('User zone guess turned off');\n return;\n }\n const guessedZone = momentZone.tz.guess(true);\n this.form.get('timezone').setValue(formatZone(guessedZone));\n });\n }\n\n /**\n * Propagate result to parent component.\n */\n private fireChanges() {\n if (!this.propagateChange) {\n return;\n }\n const timezone = this.form.get('timezone').value;\n const transformedValue = this.valueTransformFN\n ? this.valueTransformFN(timezone)\n : timezone;\n this.propagateChange(transformedValue);\n }\n\n private clearZone() {\n this.form.get('timezone').reset();\n }\n\n private validateZoneFromUpperLevels(zone: string | TZone): TZone | null {\n if (typeof zone === 'string' && zone.length > 0) {\n return this.timeZones.find(z => z.nameValue === zone) ?? null;\n }\n if (typeof zone === 'object') {\n return this.timeZones.find(z => z.nameValue === zone.nameValue) ?? null;\n }\n return null;\n }\n\n /**\n * Access controls\n */\n\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n // not used\n }\n\n writeValue(zone: string | TZone | null | undefined): void {\n if (!zone) {\n this.clearZone();\n console.warn('Invalid zone passed');\n return;\n }\n\n let _zone: TZone | null = this.validateZoneFromUpperLevels(zone);\n if (_zone) {\n this.form.get('timezone').setValue(_zone);\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { MomentTimezonePickerComponent } from './moment-timezone-picker.component';\nimport {NgSelectModule} from '@ng-select/ng-select';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\n\n@NgModule({\n declarations: [MomentTimezonePickerComponent],\n imports: [\n NgSelectModule,\n FormsModule,\n ReactiveFormsModule\n ],\n exports: [MomentTimezonePickerComponent]\n})\nexport class MomentTimezonePickerModule { }\n","/*\n * Public API Surface of moment-timezone-picker\n */\n\nexport * from './lib/core';\nexport * from './lib/moment-timezone-picker.component';\nexport * from './lib/moment-timezone-picker.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}