@shival99/z-ui 2.6.7 → 2.6.9
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.
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +2 -3
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +13 -13
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs +4 -7
- package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-modal.mjs +6 -7
- package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-qrcode.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-qrcode.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs +3 -9
- package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-show-more.mjs +9 -9
- package/fesm2022/shival99-z-ui-components-z-show-more.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +83 -149
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-toast.mjs +4 -4
- package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-button-group.d.ts +1 -1
- package/types/shival99-z-ui-components-z-drawer.d.ts +3 -6
- package/types/shival99-z-ui-components-z-scrollarea.d.ts +2 -0
- package/types/shival99-z-ui-components-z-table.d.ts +36 -64
- package/.npmignore +0 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-button-group.mjs","sources":["../../../../libs/core-ui/components/z-button-group/z-button-group.define.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-item.directive.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.variants.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-separator.component.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.component.ts","../../../../libs/core-ui/components/z-button-group/shival99-z-ui-components-z-button-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { ZButtonGroupHost } from './z-button-group.types';\n\nexport const Z_BUTTON_GROUP = new InjectionToken<ZButtonGroupHost>('Z_BUTTON_GROUP');\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport type { ZButtonGroupValue } from './z-button-group.types';\n\n@Directive({\n selector: '[z-button-group-item]',\n standalone: true,\n host: {\n '[class.z-button-group-item-active]': 'isActive()',\n '(click)': 'onClick()',\n },\n exportAs: 'zButtonGroupItem',\n})\nexport class ZButtonGroupItemDirective {\n private readonly _group = inject(Z_BUTTON_GROUP, { optional: true });\n private readonly _index = signal<number>(-1);\n\n /** Khóa ổn định tùy chọn, ưu tiên hơn index khi xác định active. */\n public readonly zValue = input<ZButtonGroupValue>();\n\n private readonly _value = computed<ZButtonGroupValue>(() => this.zValue() ?? this._index());\n\n public readonly isActive = computed(() => {\n if (!this._group) {\n return false;\n }\n return this._group._isItemActive(this._value());\n });\n\n public readonly index = this._index.asReadonly();\n public _setIndex(index: number): void {\n this._index.set(index);\n }\n\n protected onClick(): void {\n if (!this._group) {\n return;\n }\n this._group._selectItem(this._value(), this._index());\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zButtonGroupVariants = cva('inline-flex h-fit', {\n variants: {\n zOrientation: {\n horizontal: [\n 'flex-row',\n 'items-center',\n // First child - only left border radius\n '[&>*:first-child]:rounded-r-none!',\n // Last child - only right border radius\n '[&>*:last-child]:rounded-l-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-l-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-l!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n vertical: [\n 'flex-col',\n 'items-stretch',\n // First child - only top border radius\n '[&>*:first-child]:rounded-b-none!',\n // Last child - only bottom border radius\n '[&>*:last-child]:rounded-t-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-t-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-t!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n\nexport const zButtonGroupSeparatorVariants = cva('shrink-0 bg-border', {\n variants: {\n zOrientation: {\n horizontal: 'h-full w-px',\n vertical: 'w-full h-px',\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZButtonGroupSeparatorVariants } from './z-button-group.types';\nimport { zButtonGroupSeparatorVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group-separator',\n standalone: true,\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'separator',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroupSeparator',\n})\nexport class ZButtonGroupSeparatorComponent {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupSeparatorVariants['zOrientation']>('horizontal');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupSeparatorVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n input,\n model,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZButtonGroupItemDirective } from './z-button-group-item.directive';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport { type ZButtonGroupHost, type ZButtonGroupValue, type ZButtonGroupVariants } from './z-button-group.types';\nimport { zButtonGroupVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group',\n standalone: true,\n template: `\n <ng-content />\n `,\n providers: [\n {\n provide: Z_BUTTON_GROUP,\n useExisting: ZButtonGroupComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroup',\n})\nexport class ZButtonGroupComponent implements ZButtonGroupHost {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupVariants['zOrientation']>('horizontal');\n\n public readonly zActive = model<ZButtonGroupValue | null>(null);\n public readonly zActiveIndexChange = output<number | null>();\n public readonly zActiveValueChange = output<ZButtonGroupValue | null>();\n private readonly _items = contentChildren(ZButtonGroupItemDirective);\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n\n constructor() {\n effect(() => {\n const items = this._items();\n items.forEach((item, index) => {\n item._setIndex(index);\n });\n });\n }\n\n public _selectItem(value: ZButtonGroupValue, index: number): void {\n const newValue = this.zActive() === value ? null : value;\n this.zActive.set(newValue);\n this.zActiveIndexChange.emit(newValue === null ? null : index);\n this.zActiveValueChange.emit(newValue);\n }\n\n public _isItemActive(value: ZButtonGroupValue): boolean {\n return this.zActive() === value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-button-group.mjs","sources":["../../../../libs/core-ui/components/z-button-group/z-button-group.define.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-item.directive.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.variants.ts","../../../../libs/core-ui/components/z-button-group/z-button-group-separator.component.ts","../../../../libs/core-ui/components/z-button-group/z-button-group.component.ts","../../../../libs/core-ui/components/z-button-group/shival99-z-ui-components-z-button-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { ZButtonGroupHost } from './z-button-group.types';\n\nexport const Z_BUTTON_GROUP = new InjectionToken<ZButtonGroupHost>('Z_BUTTON_GROUP');\n","import { computed, Directive, inject, input, signal } from '@angular/core';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport type { ZButtonGroupValue } from './z-button-group.types';\n\n@Directive({\n selector: '[z-button-group-item]',\n standalone: true,\n host: {\n '[class.z-button-group-item-active]': 'isActive()',\n '(click)': 'onClick()',\n },\n exportAs: 'zButtonGroupItem',\n})\nexport class ZButtonGroupItemDirective {\n private readonly _group = inject(Z_BUTTON_GROUP, { optional: true });\n private readonly _index = signal<number>(-1);\n\n /** Stable option key; takes precedence over the index when resolving the active item. */\n public readonly zValue = input<ZButtonGroupValue>();\n\n private readonly _value = computed<ZButtonGroupValue>(() => this.zValue() ?? this._index());\n\n public readonly isActive = computed(() => {\n if (!this._group) {\n return false;\n }\n return this._group._isItemActive(this._value());\n });\n\n public readonly index = this._index.asReadonly();\n public _setIndex(index: number): void {\n this._index.set(index);\n }\n\n protected onClick(): void {\n if (!this._group) {\n return;\n }\n this._group._selectItem(this._value(), this._index());\n }\n}\n","import { cva } from 'class-variance-authority';\n\nexport const zButtonGroupVariants = cva('inline-flex h-fit', {\n variants: {\n zOrientation: {\n horizontal: [\n 'flex-row',\n 'items-center',\n // First child - only left border radius\n '[&>*:first-child]:rounded-r-none!',\n // Last child - only right border radius\n '[&>*:last-child]:rounded-l-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-l-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-l!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n vertical: [\n 'flex-col',\n 'items-stretch',\n // First child - only top border radius\n '[&>*:first-child]:rounded-b-none!',\n // Last child - only bottom border radius\n '[&>*:last-child]:rounded-t-none!',\n // Middle children - no border radius\n '[&>*:not(:first-child):not(:last-child)]:rounded-none!',\n // Remove double borders between buttons\n '[&>*:not(:first-child)]:border-t-0!',\n // Handle single child\n '[&>*:only-child]:rounded-lg!',\n '[&>*:only-child]:border-t!',\n // Active item styling - use primary color from theme\n '[&>*.z-button-group-item-active]:bg-primary',\n '[&>*.z-button-group-item-active]:text-primary-foreground',\n '[&>*.z-button-group-item-active]:border-primary',\n '[&>*.z-button-group-item-active]:z-[1]',\n ],\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n\nexport const zButtonGroupSeparatorVariants = cva('shrink-0 bg-border', {\n variants: {\n zOrientation: {\n horizontal: 'h-full w-px',\n vertical: 'w-full h-px',\n },\n },\n defaultVariants: {\n zOrientation: 'horizontal',\n },\n});\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport type { ZButtonGroupSeparatorVariants } from './z-button-group.types';\nimport { zButtonGroupSeparatorVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group-separator',\n standalone: true,\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'separator',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroupSeparator',\n})\nexport class ZButtonGroupSeparatorComponent {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupSeparatorVariants['zOrientation']>('horizontal');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupSeparatorVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n effect,\n input,\n model,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { ZButtonGroupItemDirective } from './z-button-group-item.directive';\nimport { Z_BUTTON_GROUP } from './z-button-group.define';\nimport { type ZButtonGroupHost, type ZButtonGroupValue, type ZButtonGroupVariants } from './z-button-group.types';\nimport { zButtonGroupVariants } from './z-button-group.variants';\n\n@Component({\n selector: 'z-button-group',\n standalone: true,\n template: `\n <ng-content />\n `,\n providers: [\n {\n provide: Z_BUTTON_GROUP,\n useExisting: ZButtonGroupComponent,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n '[class]': 'zClasses()',\n },\n exportAs: 'zButtonGroup',\n})\nexport class ZButtonGroupComponent implements ZButtonGroupHost {\n public readonly zClass = input<ClassValue>('');\n public readonly zOrientation = input<ZButtonGroupVariants['zOrientation']>('horizontal');\n\n public readonly zActive = model<ZButtonGroupValue | null>(null);\n public readonly zActiveIndexChange = output<number | null>();\n public readonly zActiveValueChange = output<ZButtonGroupValue | null>();\n private readonly _items = contentChildren(ZButtonGroupItemDirective);\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zButtonGroupVariants({\n zOrientation: this.zOrientation(),\n }),\n this.zClass()\n )\n );\n\n constructor() {\n effect(() => {\n const items = this._items();\n items.forEach((item, index) => {\n item._setIndex(index);\n });\n });\n }\n\n public _selectItem(value: ZButtonGroupValue, index: number): void {\n const newValue = this.zActive() === value ? null : value;\n this.zActive.set(newValue);\n this.zActiveIndexChange.emit(newValue === null ? null : index);\n this.zActiveValueChange.emit(newValue);\n }\n\n public _isItemActive(value: ZButtonGroupValue): boolean {\n return this.zActive() === value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1711,7 +1711,7 @@ class ZCalendarComponent {
|
|
|
1711
1711
|
let end = null;
|
|
1712
1712
|
const valStart = range['start'];
|
|
1713
1713
|
const valEnd = range['end'];
|
|
1714
|
-
//
|
|
1714
|
+
// Parse the start value when it is an ISO string or a supported date format.
|
|
1715
1715
|
if (valStart instanceof Date) {
|
|
1716
1716
|
start = valStart;
|
|
1717
1717
|
}
|
|
@@ -1725,7 +1725,7 @@ class ZCalendarComponent {
|
|
|
1725
1725
|
start = parseDate(valStart, this.zFormat(), this.zLocale());
|
|
1726
1726
|
}
|
|
1727
1727
|
}
|
|
1728
|
-
//
|
|
1728
|
+
// Parse the end value when it is an ISO string or a supported date format.
|
|
1729
1729
|
if (valEnd instanceof Date) {
|
|
1730
1730
|
end = valEnd;
|
|
1731
1731
|
}
|
|
@@ -1765,7 +1765,7 @@ class ZCalendarComponent {
|
|
|
1765
1765
|
if (value instanceof Date) {
|
|
1766
1766
|
date = value;
|
|
1767
1767
|
}
|
|
1768
|
-
//
|
|
1768
|
+
// Parse ISO strings in single mode when values come directly from an API.
|
|
1769
1769
|
if (!date && typeof value === 'string') {
|
|
1770
1770
|
const isIsoLike = /^\d{4}-\d{2}-\d{2}/.test(value);
|
|
1771
1771
|
date = valueType === 'iso' || isIsoLike ? fromISOString(value) : parseDate(value, this.zFormat(), this.zLocale());
|
|
@@ -2106,7 +2106,7 @@ class ZCalendarComponent {
|
|
|
2106
2106
|
}
|
|
2107
2107
|
}
|
|
2108
2108
|
if (matchedToken) {
|
|
2109
|
-
//
|
|
2109
|
+
// Classify each format token.
|
|
2110
2110
|
if (matchedToken === 'A' || matchedToken === 'a') {
|
|
2111
2111
|
segments.push({ type: 'period', value: matchedToken });
|
|
2112
2112
|
}
|
|
@@ -2129,12 +2129,12 @@ class ZCalendarComponent {
|
|
|
2129
2129
|
return segments;
|
|
2130
2130
|
}
|
|
2131
2131
|
_formatValueOnTyping(value, format) {
|
|
2132
|
-
//
|
|
2132
|
+
// Do not auto-format formats that contain month names.
|
|
2133
2133
|
if (format.includes('MMM') || format.includes('MMMM')) {
|
|
2134
2134
|
return value;
|
|
2135
2135
|
}
|
|
2136
2136
|
const digitsCount = value.replace(/\D/g, '').length;
|
|
2137
|
-
//
|
|
2137
|
+
// Keep non-numeric input intact so validation can report it instead of clearing the field.
|
|
2138
2138
|
if (digitsCount === 0) {
|
|
2139
2139
|
return value;
|
|
2140
2140
|
}
|
|
@@ -2147,7 +2147,7 @@ class ZCalendarComponent {
|
|
|
2147
2147
|
if (seg.type === 'digit') {
|
|
2148
2148
|
let group = userGroups[groupIndex] || '';
|
|
2149
2149
|
groupIndex++;
|
|
2150
|
-
//
|
|
2150
|
+
// Skip non-numeric groups when matching a numeric segment.
|
|
2151
2151
|
while (group && !/^\d+$/.test(group)) {
|
|
2152
2152
|
group = userGroups[groupIndex] || '';
|
|
2153
2153
|
groupIndex++;
|
|
@@ -2155,17 +2155,17 @@ class ZCalendarComponent {
|
|
|
2155
2155
|
if (!group) {
|
|
2156
2156
|
break;
|
|
2157
2157
|
}
|
|
2158
|
-
//
|
|
2158
|
+
// Limit the numeric group to the segment length.
|
|
2159
2159
|
const len = seg.value.length;
|
|
2160
2160
|
const clampedGroup = group.slice(0, len);
|
|
2161
2161
|
result += clampedGroup;
|
|
2162
|
-
//
|
|
2162
|
+
// Insert the next separator once the numeric segment is complete.
|
|
2163
2163
|
if (clampedGroup.length === len) {
|
|
2164
2164
|
const nextSeg = segments[i + 1];
|
|
2165
2165
|
if (nextSeg && nextSeg.type === 'literal') {
|
|
2166
2166
|
result += nextSeg.value;
|
|
2167
2167
|
i++;
|
|
2168
|
-
//
|
|
2168
|
+
// Do not duplicate a separator the user already typed.
|
|
2169
2169
|
const nextGroup = userGroups[groupIndex];
|
|
2170
2170
|
if (nextGroup && !/^[a-zA-Z0-9]+$/.test(nextGroup)) {
|
|
2171
2171
|
groupIndex++;
|
|
@@ -2282,13 +2282,13 @@ class ZCalendarComponent {
|
|
|
2282
2282
|
return false;
|
|
2283
2283
|
}
|
|
2284
2284
|
_clampInputDateString(value, format) {
|
|
2285
|
-
//
|
|
2285
|
+
// Do not clamp formats that contain month names.
|
|
2286
2286
|
if (format.includes('MMM') || format.includes('MMMM')) {
|
|
2287
2287
|
return value;
|
|
2288
2288
|
}
|
|
2289
2289
|
const trimmed = value.trim();
|
|
2290
2290
|
const digitsCount = trimmed.replace(/\D/g, '').length;
|
|
2291
|
-
//
|
|
2291
|
+
// Keep non-numeric input intact so validation can report and revert it.
|
|
2292
2292
|
if (digitsCount === 0) {
|
|
2293
2293
|
return value;
|
|
2294
2294
|
}
|
|
@@ -2407,7 +2407,7 @@ class ZCalendarComponent {
|
|
|
2407
2407
|
}
|
|
2408
2408
|
result += seg.value;
|
|
2409
2409
|
}
|
|
2410
|
-
//
|
|
2410
|
+
// Restore a trailing AM/PM marker if clamping removed it.
|
|
2411
2411
|
const isPM = /PM/i.test(trimmed);
|
|
2412
2412
|
const isAM = /AM/i.test(trimmed);
|
|
2413
2413
|
if ((isPM || isAM) && !/am|pm/i.test(result)) {
|