@xui/timezone-select 2.0.0-alpha.20 → 2.0.0-alpha.21

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.
@@ -32,10 +32,12 @@ class XuiTimezoneSelect {
32
32
  /** The user-defined classes. Merged last so they win over the variant classes. */
33
33
  class = input('', /* @ts-ignore */
34
34
  ...(ngDevMode ? [{ debugName: "class" }] : /* istanbul ignore next */ []));
35
+ /** Text shown while no zone is chosen. */
35
36
  placeholder = input('Select a time zone…', /* @ts-ignore */
36
37
  ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
37
38
  /** Names the combobox; the placeholder is only shown until something is picked. */
38
39
  ariaLabel = input('Time zone', { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
40
+ /** Block interaction and dim the control. */
39
41
  disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
40
42
  computedClass = computed(() => xui('inline-block', this.class()), /* @ts-ignore */
41
43
  ...(ngDevMode ? [{ debugName: "computedClass" }] : /* istanbul ignore next */ []));
@@ -1 +1 @@
1
- {"version":3,"file":"xui-timezone-select.mjs","sources":["../../../../../../libs/ui/timezone-select/xui/src/lib/timezone-select.ts","../../../../../../libs/ui/timezone-select/xui/src/index.ts","../../../../../../libs/ui/timezone-select/xui/src/xui-timezone-select.ts"],"sourcesContent":["import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation\n} from '@angular/core';\nimport type { ControlValueAccessor } from '@angular/forms';\nimport { xui } from '@xui/core';\nimport { createXValueAccessor, provideXValueAccessor } from '@xui/core/forms';\nimport { XuiSelectImports } from '@xui/select';\nimport type { ClassValue } from 'clsx';\n\ninterface TimeZoneEntry {\n id: string;\n label: string;\n}\n\n/** All IANA time zones the runtime knows about, or a small fallback. */\nconst supportedTimeZones = (): string[] => {\n const intl = Intl as unknown as { supportedValuesOf?: (key: string) => string[] };\n if (typeof intl.supportedValuesOf === 'function') {\n return intl.supportedValuesOf('timeZone');\n }\n return ['UTC', 'America/New_York', 'Europe/London', 'Europe/Berlin', 'Asia/Tokyo', 'Australia/Sydney'];\n};\n\n/** The short GMT offset for a zone at the given instant, e.g. `GMT+2`. */\nconst offsetLabel = (zone: string, at: Date): string => {\n try {\n const parts = new Intl.DateTimeFormat('en-US', { timeZone: zone, timeZoneName: 'shortOffset' }).formatToParts(at);\n return parts.find(p => p.type === 'timeZoneName')?.value ?? '';\n } catch {\n return '';\n }\n};\n\n/**\n * A searchable time-zone picker: the runtime's IANA zones (via\n * `Intl.supportedValuesOf('timeZone')`) fed into `xui-select`, each labelled with\n * its current GMT offset. `[(value)]` holds the selected IANA id (a string).\n */\n@Component({\n selector: 'xui-timezone-select',\n imports: [XuiSelectImports],\n template: `\n <xui-select\n class=\"w-full\"\n [items]=\"entries()\"\n [itemText]=\"itemText\"\n [value]=\"selectedEntry()\"\n (valueChange)=\"onSelect($event)\"\n [placeholder]=\"placeholder()\"\n [aria-label]=\"ariaLabel()\"\n [disabled]=\"isDisabled()\"\n />\n `,\n host: {\n '[class]': 'computedClass()'\n },\n providers: [provideXValueAccessor(() => XuiTimezoneSelect)],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiTimezoneSelect implements ControlValueAccessor {\n /** The user-defined classes. Merged last so they win over the variant classes. */\n readonly class = input<ClassValue>('');\n readonly placeholder = input('Select a time zone…');\n /** Names the combobox; the placeholder is only shown until something is picked. */\n readonly ariaLabel = input<string>('Time zone', { alias: 'aria-label' });\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly computedClass = computed(() => xui('inline-block', this.class()));\n\n /** Reference instant used to compute offsets (defaults to \"now\" at first render). */\n readonly date = input<Date>(new Date(0));\n\n /** The selected IANA time-zone id. Two-way bindable with `[(value)]`, or via `formControl`/`ngModel`. */\n readonly value = model<string | null>(null);\n\n protected readonly cva = createXValueAccessor<string | null>({\n onWrite: value => this.value.set(value ?? null),\n disabled: this.disabled\n });\n protected readonly isDisabled = this.cva.disabled;\n\n private readonly at = computed(() => {\n const date = this.date();\n return date && date.getTime() !== 0 ? date : new Date();\n });\n\n protected readonly entries = computed<TimeZoneEntry[]>(() => {\n const at = this.at();\n return supportedTimeZones().map(id => {\n const offset = offsetLabel(id, at);\n return { id, label: offset ? `${id} (${offset})` : id };\n });\n });\n\n protected readonly selectedEntry = computed(() => this.entries().find(e => e.id === this.value()) ?? null);\n\n protected readonly itemText = (entry: TimeZoneEntry): string => entry.label;\n\n protected onSelect(entry: TimeZoneEntry | null): void {\n const id = entry?.id ?? null;\n this.value.set(id);\n this.cva.notifyChange(id);\n // Choosing a zone closes the inner select's panel, so this is the close/blur moment.\n this.cva.markTouched();\n }\n\n readonly writeValue = this.cva.writeValue;\n readonly registerOnChange = this.cva.registerOnChange;\n readonly registerOnTouched = this.cva.registerOnTouched;\n readonly setDisabledState = this.cva.setDisabledState;\n}\n","import { XuiTimezoneSelect } from './lib/timezone-select';\n\nexport * from './lib/timezone-select';\n\nexport const XuiTimezoneSelectImports = [XuiTimezoneSelect] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xui-timezone-select.mjs","sources":["../../../../../../libs/ui/timezone-select/xui/src/lib/timezone-select.ts","../../../../../../libs/ui/timezone-select/xui/src/index.ts","../../../../../../libs/ui/timezone-select/xui/src/xui-timezone-select.ts"],"sourcesContent":["import type { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n model,\n ViewEncapsulation\n} from '@angular/core';\nimport type { ControlValueAccessor } from '@angular/forms';\nimport { xui } from '@xui/core';\nimport { createXValueAccessor, provideXValueAccessor } from '@xui/core/forms';\nimport { XuiSelectImports } from '@xui/select';\nimport type { ClassValue } from 'clsx';\n\ninterface TimeZoneEntry {\n id: string;\n label: string;\n}\n\n/** All IANA time zones the runtime knows about, or a small fallback. */\nconst supportedTimeZones = (): string[] => {\n const intl = Intl as unknown as { supportedValuesOf?: (key: string) => string[] };\n if (typeof intl.supportedValuesOf === 'function') {\n return intl.supportedValuesOf('timeZone');\n }\n return ['UTC', 'America/New_York', 'Europe/London', 'Europe/Berlin', 'Asia/Tokyo', 'Australia/Sydney'];\n};\n\n/** The short GMT offset for a zone at the given instant, e.g. `GMT+2`. */\nconst offsetLabel = (zone: string, at: Date): string => {\n try {\n const parts = new Intl.DateTimeFormat('en-US', { timeZone: zone, timeZoneName: 'shortOffset' }).formatToParts(at);\n return parts.find(p => p.type === 'timeZoneName')?.value ?? '';\n } catch {\n return '';\n }\n};\n\n/**\n * A searchable time-zone picker: the runtime's IANA zones (via\n * `Intl.supportedValuesOf('timeZone')`) fed into `xui-select`, each labelled with\n * its current GMT offset. `[(value)]` holds the selected IANA id (a string).\n */\n@Component({\n selector: 'xui-timezone-select',\n imports: [XuiSelectImports],\n template: `\n <xui-select\n class=\"w-full\"\n [items]=\"entries()\"\n [itemText]=\"itemText\"\n [value]=\"selectedEntry()\"\n (valueChange)=\"onSelect($event)\"\n [placeholder]=\"placeholder()\"\n [aria-label]=\"ariaLabel()\"\n [disabled]=\"isDisabled()\"\n />\n `,\n host: {\n '[class]': 'computedClass()'\n },\n providers: [provideXValueAccessor(() => XuiTimezoneSelect)],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class XuiTimezoneSelect implements ControlValueAccessor {\n /** The user-defined classes. Merged last so they win over the variant classes. */\n readonly class = input<ClassValue>('');\n /** Text shown while no zone is chosen. */\n readonly placeholder = input('Select a time zone…');\n /** Names the combobox; the placeholder is only shown until something is picked. */\n readonly ariaLabel = input<string>('Time zone', { alias: 'aria-label' });\n /** Block interaction and dim the control. */\n readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n protected readonly computedClass = computed(() => xui('inline-block', this.class()));\n\n /** Reference instant used to compute offsets (defaults to \"now\" at first render). */\n readonly date = input<Date>(new Date(0));\n\n /** The selected IANA time-zone id. Two-way bindable with `[(value)]`, or via `formControl`/`ngModel`. */\n readonly value = model<string | null>(null);\n\n protected readonly cva = createXValueAccessor<string | null>({\n onWrite: value => this.value.set(value ?? null),\n disabled: this.disabled\n });\n protected readonly isDisabled = this.cva.disabled;\n\n private readonly at = computed(() => {\n const date = this.date();\n return date && date.getTime() !== 0 ? date : new Date();\n });\n\n protected readonly entries = computed<TimeZoneEntry[]>(() => {\n const at = this.at();\n return supportedTimeZones().map(id => {\n const offset = offsetLabel(id, at);\n return { id, label: offset ? `${id} (${offset})` : id };\n });\n });\n\n protected readonly selectedEntry = computed(() => this.entries().find(e => e.id === this.value()) ?? null);\n\n protected readonly itemText = (entry: TimeZoneEntry): string => entry.label;\n\n protected onSelect(entry: TimeZoneEntry | null): void {\n const id = entry?.id ?? null;\n this.value.set(id);\n this.cva.notifyChange(id);\n // Choosing a zone closes the inner select's panel, so this is the close/blur moment.\n this.cva.markTouched();\n }\n\n readonly writeValue = this.cva.writeValue;\n readonly registerOnChange = this.cva.registerOnChange;\n readonly registerOnTouched = this.cva.registerOnTouched;\n readonly setDisabledState = this.cva.setDisabledState;\n}\n","import { XuiTimezoneSelect } from './lib/timezone-select';\n\nexport * from './lib/timezone-select';\n\nexport const XuiTimezoneSelectImports = [XuiTimezoneSelect] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xui/timezone-select",
3
- "version": "2.0.0-alpha.20",
3
+ "version": "2.0.0-alpha.21",
4
4
  "description": "Modern Angular 22 UI Library based on TailwindCSS",
5
5
  "keywords": [
6
6
  "angular",
@@ -39,8 +39,8 @@
39
39
  "@angular/cdk": "22.0.6",
40
40
  "@angular/core": "22",
41
41
  "@angular/forms": "22",
42
- "@xui/core": "2.0.0-alpha.20",
43
- "@xui/select": "2.0.0-alpha.20",
42
+ "@xui/core": "2.0.0-alpha.21",
43
+ "@xui/select": "2.0.0-alpha.21",
44
44
  "clsx": "^2.1.1"
45
45
  },
46
46
  "publishConfig": {
@@ -16,9 +16,11 @@ interface TimeZoneEntry {
16
16
  declare class XuiTimezoneSelect implements ControlValueAccessor {
17
17
  /** The user-defined classes. Merged last so they win over the variant classes. */
18
18
  readonly class: _angular_core.InputSignal<ClassValue>;
19
+ /** Text shown while no zone is chosen. */
19
20
  readonly placeholder: _angular_core.InputSignal<string>;
20
21
  /** Names the combobox; the placeholder is only shown until something is picked. */
21
22
  readonly ariaLabel: _angular_core.InputSignal<string>;
23
+ /** Block interaction and dim the control. */
22
24
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
23
25
  protected readonly computedClass: _angular_core.Signal<string>;
24
26
  /** Reference instant used to compute offsets (defaults to "now" at first render). */