ngx-tethys 22.0.2 → 22.0.3
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/CHANGELOG.md +37 -0
- package/button/styles/button-group.scss +25 -18
- package/button/styles/button.scss +3 -1
- package/button/styles/mixin.scss +7 -2
- package/button/styles/theme.scss +3 -1
- package/cascader/styles/cascader.scss +5 -0
- package/date-picker/styles/index.scss +5 -0
- package/date-picker/styles/picker.scss +5 -0
- package/fesm2022/ngx-tethys-action.mjs +13 -4
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +2 -2
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +17 -6
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +11 -3
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +17 -5
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +39 -21
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +1 -3
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +36 -28
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +2 -2
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +30 -18
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +2 -2
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +193 -195
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +18 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +16 -5
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +447 -101
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +1 -1
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +10 -4
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +54 -13
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +36 -6
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-native-table.mjs +26 -11
- package/fesm2022/ngx-tethys-native-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +4 -2
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +1 -1
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +81 -55
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +32 -24
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +1 -0
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +0 -1
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +27 -9
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +16 -7
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +1 -1
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +38 -13
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +20 -10
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +9 -1
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +20 -11
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +28 -17
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +2 -2
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +10 -4
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +2 -8
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +11 -6
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +0 -1
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/form/styles/forms.scss +1 -0
- package/form/styles/mixin.scss +37 -0
- package/form/styles/theme.scss +1 -0
- package/input/styles/input.scss +28 -19
- package/input-number/styles/input-number.scss +22 -3
- package/menu/examples/variant/variant.component.scss +21 -0
- package/package.json +1 -1
- package/schematics/ng-update/update-22/badge-dot-hollow-migration.spec.js +4 -4
- package/schematics/ng-update/update-22/button-appearance-migration.js +2 -0
- package/schematics/ng-update/update-22/button-appearance-migration.spec.js +0 -4
- package/schematics/ng-update/update-22/button-group-appearance-migration.d.ts +6 -0
- package/schematics/ng-update/update-22/button-group-appearance-migration.js +157 -0
- package/schematics/ng-update/update-22/button-group-appearance-migration.spec.d.ts +1 -0
- package/schematics/ng-update/update-22/button-group-appearance-migration.spec.js +56 -0
- package/schematics/ng-update/update-22/class-name-migration.spec.js +135 -0
- package/schematics/ng-update/update-22/divider-deeper-migration.js +12 -5
- package/schematics/ng-update/update-22/divider-deeper-migration.spec.js +9 -1
- package/schematics/ng-update/update-22/index.js +9 -1
- package/schematics/ng-update/update-22/index.spec.js +581 -3
- package/schematics/ng-update/update-22/input-search-appearance-migration.d.ts +6 -0
- package/schematics/ng-update/update-22/input-search-appearance-migration.js +94 -0
- package/schematics/ng-update/update-22/input-search-appearance-migration.spec.d.ts +1 -0
- package/schematics/ng-update/update-22/input-search-appearance-migration.spec.js +41 -0
- package/schematics/ng-update/update-22/menu-theme-migration.d.ts +14 -0
- package/schematics/ng-update/update-22/menu-theme-migration.js +108 -0
- package/schematics/ng-update/update-22/menu-theme-migration.spec.d.ts +1 -0
- package/schematics/ng-update/update-22/menu-theme-migration.spec.js +42 -0
- package/schematics/ng-update/update-22/select-borderless-migration.d.ts +6 -0
- package/schematics/ng-update/update-22/select-borderless-migration.js +111 -0
- package/schematics/ng-update/update-22/select-borderless-migration.spec.d.ts +1 -0
- package/schematics/ng-update/update-22/select-borderless-migration.spec.js +49 -0
- package/schematics/ng-update/update-22/update-data.js +102 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/select/styles/custom-select.scss +5 -0
- package/select/styles/theme.scss +10 -0
- package/shared/select/select-control/select-control.scss +4 -3
- package/time-picker/styles/time-picker.scss +11 -2
- package/types/ngx-tethys-action.d.ts +14 -5
- package/types/ngx-tethys-alert.d.ts +2 -2
- package/types/ngx-tethys-arrow-switcher.d.ts +16 -5
- package/types/ngx-tethys-autocomplete.d.ts +8 -2
- package/types/ngx-tethys-badge.d.ts +14 -4
- package/types/ngx-tethys-button.d.ts +28 -9
- package/types/ngx-tethys-card.d.ts +3 -6
- package/types/ngx-tethys-cascader.d.ts +9 -3
- package/types/ngx-tethys-collapse.d.ts +3 -3
- package/types/ngx-tethys-core.d.ts +2 -1
- package/types/ngx-tethys-date-picker.d.ts +15 -3
- package/types/ngx-tethys-dialog.d.ts +1 -3
- package/types/ngx-tethys-divider.d.ts +20 -9
- package/types/ngx-tethys-dropdown.d.ts +16 -5
- package/types/ngx-tethys-form.d.ts +198 -55
- package/types/ngx-tethys-input-number.d.ts +8 -2
- package/types/ngx-tethys-input.d.ts +39 -8
- package/types/ngx-tethys-menu.d.ts +16 -4
- package/types/ngx-tethys-native-table.d.ts +21 -6
- package/types/ngx-tethys-nav.d.ts +2 -0
- package/types/ngx-tethys-progress.d.ts +42 -18
- package/types/ngx-tethys-property-operation.d.ts +6 -0
- package/types/ngx-tethys-segment.d.ts +0 -1
- package/types/ngx-tethys-select.d.ts +23 -5
- package/types/ngx-tethys-shared.d.ts +12 -3
- package/types/ngx-tethys-slider.d.ts +22 -8
- package/types/ngx-tethys-space.d.ts +3 -1
- package/types/ngx-tethys-statistic.d.ts +23 -9
- package/types/ngx-tethys-stepper.d.ts +1 -1
- package/types/ngx-tethys-strength.d.ts +5 -0
- package/types/ngx-tethys-switch.d.ts +15 -4
- package/types/ngx-tethys-table.d.ts +24 -8
- package/types/ngx-tethys-tabs.d.ts +3 -3
- package/types/ngx-tethys-time-picker.d.ts +8 -2
- package/types/ngx-tethys-timeline.d.ts +13 -14
- package/types/ngx-tethys-tree-select.d.ts +8 -3
- package/types/ngx-tethys-typography.d.ts +0 -1
- /package/action/examples/{type/type.component.scss → color/color.component.scss} +0 -0
- /package/badge/examples/{type/type.component.scss → color/color.component.scss} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ViewChild, TemplateRef, contentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n readonly titleTemplateRef = contentChild<TemplateRef<unknown>>('title');\n\n @ViewChild('content', { static: true }) content!: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string | undefined>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n TemplateRef,\n computed,\n contentChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabValue } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsVariant = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card';\n\n/** @deprecated use ThyTabsVariant */\nexport type ThyTabsType = ThyTabsVariant;\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly tabs = contentChildren(ThyTab, { descendants: true });\n\n /**\n * 标签形态\n * @type pulled | tabs | pills | lite | card\n * @default tabs\n */\n readonly thyVariant = input<ThyTabsVariant>();\n\n /**\n * 标签类型(已废弃),请使用 thyVariant\n * @deprecated please use thyVariant\n * @type pulled | tabs | pills | lite | card\n * @default tabs\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n readonly variant = computed(() => this.thyVariant() || this.thyType() || 'tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项,支持传入 tab id 或索引\n */\n readonly thyActiveTab = model<ThyActiveTabValue>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = computed(() => {\n const activeTab = this.thyActiveTab();\n const matchedIndex = this.tabs().findIndex(tab => tab.id() === activeTab);\n if (matchedIndex >= 0) {\n return matchedIndex;\n }\n return isNumber(activeTab) ? activeTab : 0;\n });\n\n transitionStarted: boolean = false;\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n this.thyActiveTab.set(this.getTabActiveValue(tab, index));\n }\n\n private getTabActiveValue(tab: ThyTab, index: number): ThyActiveTabValue {\n return tab.id() ?? index;\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyVariant]=\"variant()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef()) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef()\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <div thyTabContent [active]=\"i === activeTabIndex()\" [content]=\"tab.content\" [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ViewChild, TemplateRef, contentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n readonly titleTemplateRef = contentChild<TemplateRef<unknown>>('title');\n\n @ViewChild('content', { static: true }) content!: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string | undefined>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n TemplateRef,\n computed,\n contentChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabValue } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsVariant = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card';\n\n/** @deprecated use ThyTabsVariant, will be removed in v23 */\nexport type ThyTabsType = ThyTabsVariant;\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly tabs = contentChildren(ThyTab, { descendants: true });\n\n /**\n * 标签形态\n * @type pulled | tabs | pills | lite | card\n * @default tabs\n */\n readonly thyVariant = input<ThyTabsVariant>();\n\n /**\n * 标签类型(已废弃,将在 v23 中移除),请使用 thyVariant\n * @deprecated please use thyVariant, will be removed in v23\n * @type pulled | tabs | pills | lite | card\n * @default tabs\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n readonly variant = computed(() => this.thyVariant() || this.thyType() || 'tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项,支持传入 tab id 或索引\n */\n readonly thyActiveTab = model<ThyActiveTabValue>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = computed(() => {\n const activeTab = this.thyActiveTab();\n const matchedIndex = this.tabs().findIndex(tab => tab.id() === activeTab);\n if (matchedIndex >= 0) {\n return matchedIndex;\n }\n return isNumber(activeTab) ? activeTab : 0;\n });\n\n transitionStarted: boolean = false;\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n this.thyActiveTab.set(this.getTabActiveValue(tab, index));\n }\n\n private getTabActiveValue(tab: ThyTab, index: number): ThyActiveTabValue {\n return tab.id() ?? index;\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyVariant]=\"variant()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef()) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef()\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs(); track $index; let i = $index) {\n <div thyTabContent [active]=\"i === activeTabIndex()\" [content]=\"tab.content\" [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -978,6 +978,12 @@ class ThyTimePicker {
|
|
|
978
978
|
* @default md
|
|
979
979
|
*/
|
|
980
980
|
this.thySize = input('md', { ...(ngDevMode ? { debugName: "thySize" } : /* istanbul ignore next */ {}), transform: value => value ?? 'md' });
|
|
981
|
+
/**
|
|
982
|
+
* 选择框外观。`outline`: 灰色边框、白色底,hover/focus 时蓝色边框;`subtle`: 无边框,hover/focus 时蓝色边框;`ghost`: 无边框,hover/focus 时也无边框
|
|
983
|
+
* @type outline | subtle | ghost
|
|
984
|
+
* @default outline
|
|
985
|
+
*/
|
|
986
|
+
this.thyAppearance = input('outline', { ...(ngDevMode ? { debugName: "thyAppearance" } : /* istanbul ignore next */ {}), transform: value => value ?? 'outline' });
|
|
981
987
|
/**
|
|
982
988
|
* 输入框提示文字
|
|
983
989
|
* @type string
|
|
@@ -1299,13 +1305,13 @@ class ThyTimePicker {
|
|
|
1299
1305
|
return this.thyDisabled() || this.thyReadonly();
|
|
1300
1306
|
}
|
|
1301
1307
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1302
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: ThyTimePicker, isStandalone: true, selector: "thy-time-picker", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyPlacement: { classPropertyName: "thyPlacement", publicName: "thyPlacement", isSignal: true, isRequired: false, transformFunction: null }, thyFormat: { classPropertyName: "thyFormat", publicName: "thyFormat", isSignal: true, isRequired: false, transformFunction: null }, thyHourStep: { classPropertyName: "thyHourStep", publicName: "thyHourStep", isSignal: true, isRequired: false, transformFunction: null }, thyMinuteStep: { classPropertyName: "thyMinuteStep", publicName: "thyMinuteStep", isSignal: true, isRequired: false, transformFunction: null }, thySecondStep: { classPropertyName: "thySecondStep", publicName: "thySecondStep", isSignal: true, isRequired: false, transformFunction: null }, thyPopupClass: { classPropertyName: "thyPopupClass", publicName: "thyPopupClass", isSignal: true, isRequired: false, transformFunction: null }, thyBackdrop: { classPropertyName: "thyBackdrop", publicName: "thyBackdrop", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyReadonly: { classPropertyName: "thyReadonly", publicName: "thyReadonly", isSignal: true, isRequired: false, transformFunction: null }, thyShowSelectNow: { classPropertyName: "thyShowSelectNow", publicName: "thyShowSelectNow", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, showText: { classPropertyName: "showText", publicName: "showText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyDisabled: "thyDisabledChange", thyOpenChange: "thyOpenChange", showText: "showTextChange" }, host: { properties: { "class.thy-time-picker-disabled": "thyDisabled()", "class.thy-time-picker-readonly": "thyReadonly()" }, classAttribute: "thy-time-picker" }, providers: [
|
|
1308
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: ThyTimePicker, isStandalone: true, selector: "thy-time-picker", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyAppearance: { classPropertyName: "thyAppearance", publicName: "thyAppearance", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyPlacement: { classPropertyName: "thyPlacement", publicName: "thyPlacement", isSignal: true, isRequired: false, transformFunction: null }, thyFormat: { classPropertyName: "thyFormat", publicName: "thyFormat", isSignal: true, isRequired: false, transformFunction: null }, thyHourStep: { classPropertyName: "thyHourStep", publicName: "thyHourStep", isSignal: true, isRequired: false, transformFunction: null }, thyMinuteStep: { classPropertyName: "thyMinuteStep", publicName: "thyMinuteStep", isSignal: true, isRequired: false, transformFunction: null }, thySecondStep: { classPropertyName: "thySecondStep", publicName: "thySecondStep", isSignal: true, isRequired: false, transformFunction: null }, thyPopupClass: { classPropertyName: "thyPopupClass", publicName: "thyPopupClass", isSignal: true, isRequired: false, transformFunction: null }, thyBackdrop: { classPropertyName: "thyBackdrop", publicName: "thyBackdrop", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null }, thyReadonly: { classPropertyName: "thyReadonly", publicName: "thyReadonly", isSignal: true, isRequired: false, transformFunction: null }, thyShowSelectNow: { classPropertyName: "thyShowSelectNow", publicName: "thyShowSelectNow", isSignal: true, isRequired: false, transformFunction: null }, thyAllowClear: { classPropertyName: "thyAllowClear", publicName: "thyAllowClear", isSignal: true, isRequired: false, transformFunction: null }, showText: { classPropertyName: "showText", publicName: "showText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyDisabled: "thyDisabledChange", thyOpenChange: "thyOpenChange", showText: "showTextChange" }, host: { properties: { "class.thy-time-picker-disabled": "thyDisabled()", "class.thy-time-picker-readonly": "thyReadonly()" }, classAttribute: "thy-time-picker" }, providers: [
|
|
1303
1309
|
{
|
|
1304
1310
|
provide: NG_VALUE_ACCESSOR,
|
|
1305
1311
|
multi: true,
|
|
1306
1312
|
useExisting: forwardRef(() => ThyTimePicker)
|
|
1307
1313
|
}
|
|
1308
|
-
], viewQueries: [{ propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "origin", first: true, predicate: ["origin"], descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["pickerInput"], descendants: true, isSignal: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thySize]=\"thySize()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions()\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [animate.enter]=\"animateEnterClass()\"\n [animate.leave]=\"animateLeaveClass()\"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: ThyTimePanel, selector: "thy-time-picker-panel", inputs: ["thyFormat", "thyHourStep", "thyMinuteStep", "thySecondStep", "thyShowSelectNow", "thyShowOperations"], outputs: ["thyPickChange", "thyClosePanel"] }] }); }
|
|
1314
|
+
], viewQueries: [{ propertyName: "cdkConnectedOverlay", first: true, predicate: CdkConnectedOverlay, descendants: true, isSignal: true }, { propertyName: "origin", first: true, predicate: ["origin"], descendants: true, isSignal: true }, { propertyName: "inputRef", first: true, predicate: ["pickerInput"], descendants: true, isSignal: true }, { propertyName: "overlayContainer", first: true, predicate: ["overlayContainer"], descendants: true, isSignal: true }], ngImport: i0, template: "<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thySize]=\"thySize()\"\n [thyAppearance]=\"thyAppearance()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions()\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [animate.enter]=\"animateEnterClass()\"\n [animate.leave]=\"animateLeaveClass()\"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize", "thyAppearance"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: ThyTimePanel, selector: "thy-time-picker-panel", inputs: ["thyFormat", "thyHourStep", "thyMinuteStep", "thySecondStep", "thyShowSelectNow", "thyShowOperations"], outputs: ["thyPickChange", "thyClosePanel"] }] }); }
|
|
1309
1315
|
}
|
|
1310
1316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: ThyTimePicker, decorators: [{
|
|
1311
1317
|
type: Component,
|
|
@@ -1319,8 +1325,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
1319
1325
|
class: 'thy-time-picker',
|
|
1320
1326
|
'[class.thy-time-picker-disabled]': `thyDisabled()`,
|
|
1321
1327
|
'[class.thy-time-picker-readonly]': `thyReadonly()`
|
|
1322
|
-
}, imports: [CdkOverlayOrigin, ThyInputDirective, FormsModule, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay, ThyTimePanel], template: "<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thySize]=\"thySize()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions()\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [animate.enter]=\"animateEnterClass()\"\n [animate.leave]=\"animateLeaveClass()\"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n" }]
|
|
1323
|
-
}], ctorParameters: () => [], propDecorators: { cdkConnectedOverlay: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkConnectedOverlay), { isSignal: true }] }], origin: [{ type: i0.ViewChild, args: ['origin', { isSignal: true }] }], inputRef: [{ type: i0.ViewChild, args: ['pickerInput', { isSignal: true }] }], overlayContainer: [{ type: i0.ViewChild, args: ['overlayContainer', { isSignal: true }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPlaceholder", required: false }] }], thyPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPlacement", required: false }] }], thyFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyFormat", required: false }] }], thyHourStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyHourStep", required: false }] }], thyMinuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMinuteStep", required: false }] }], thySecondStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySecondStep", required: false }] }], thyPopupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPopupClass", required: false }] }], thyBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyBackdrop", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }, { type: i0.Output, args: ["thyDisabledChange"] }], thyReadonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyReadonly", required: false }] }], thyShowSelectNow: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowSelectNow", required: false }] }], thyAllowClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAllowClear", required: false }] }], thyOpenChange: [{ type: i0.Output, args: ["thyOpenChange"] }], showText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showText", required: false }] }, { type: i0.Output, args: ["showTextChange"] }] } });
|
|
1328
|
+
}, imports: [CdkOverlayOrigin, ThyInputDirective, FormsModule, NgTemplateOutlet, ThyIcon, NgClass, CdkConnectedOverlay, ThyTimePanel], template: "<span cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"onInputPickerClick()\" class=\"{{ prefixCls }}-wrapper\">\n <ng-container>\n <input\n #pickerInput\n thyInput\n class=\"form-control {{ prefixCls }}-input\"\n [class.thy-input-disabled]=\"thyDisabled()\"\n [class.thy-input-readonly]=\"thyReadonly()\"\n [class.thy-time-picker-panel-opened]=\"openState\"\n [(ngModel)]=\"showText\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thySize]=\"thySize()\"\n [thyAppearance]=\"thyAppearance()\"\n [disabled]=\"thyDisabled()\"\n [readonly]=\"thyReadonly()\"\n [placeholder]=\"thyPlaceholder()\"\n (blur)=\"onInputPickerBlur()\"\n (keyup.enter)=\"onKeyupEnter()\"\n (keyup.escape)=\"onKeyupEsc()\"\n (ngModelChange)=\"onCustomizeInput($event)\" />\n <ng-container *ngTemplateOutlet=\"rightIcon\"></ng-container>\n </ng-container>\n</span>\n\n<ng-template #rightIcon>\n @if (!thyDisabled() && thyAllowClear() && !thyReadonly() && showText()) {\n <span class=\"{{ prefixCls }}-clear\">\n <thy-icon\n thyIconName=\"close-circle-bold-fill\"\n (click)=\"onClearTime($event)\"\n ngClass=\"remove-link remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n }\n <span class=\"{{ prefixCls }}-icon\">\n <thy-icon [thyIconName]=\"'clock-circle-moment'\" ngClass=\"remove-link-{{ thySize() }}\"></thy-icon>\n </span>\n</ng-template>\n\n<!-- Overlay -->\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openState\"\n [cdkConnectedOverlayHasBackdrop]=\"thyBackdrop()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions()\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n cdkConnectedOverlayTransformOriginOn=\".thy-time-picker-container\"\n (positionChange)=\"onPositionChange($event)\"\n (backdropClick)=\"onClickBackdrop()\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n (detach)=\"onOverlayDetach()\"\n (attach)=\"onOverlayAttach()\">\n <div\n #overlayContainer\n style=\"position: relative\"\n [animate.enter]=\"animateEnterClass()\"\n [animate.leave]=\"animateLeaveClass()\"\n class=\"thy-time-picker-container\">\n <!-- Compatible for overlay that not support offset dynamically and immediately -->\n <thy-time-picker-panel\n [ngClass]=\"thyPopupClass()\"\n [(ngModel)]=\"value\"\n [ngModelOptions]=\"{ standalone: true }\"\n [thyFormat]=\"thyFormat()\"\n [thyHourStep]=\"thyHourStep()\"\n [thyMinuteStep]=\"thyMinuteStep()\"\n [thySecondStep]=\"thySecondStep()\"\n [thyShowSelectNow]=\"thyShowSelectNow()\"\n (ngModelChange)=\"onPickTimeConfirm($event)\"\n (thyPickChange)=\"onPickTime($event)\"\n (thyClosePanel)=\"closeOverlay()\"></thy-time-picker-panel>\n </div>\n</ng-template>\n" }]
|
|
1329
|
+
}], ctorParameters: () => [], propDecorators: { cdkConnectedOverlay: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkConnectedOverlay), { isSignal: true }] }], origin: [{ type: i0.ViewChild, args: ['origin', { isSignal: true }] }], inputRef: [{ type: i0.ViewChild, args: ['pickerInput', { isSignal: true }] }], overlayContainer: [{ type: i0.ViewChild, args: ['overlayContainer', { isSignal: true }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyAppearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAppearance", required: false }] }], thyPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPlaceholder", required: false }] }], thyPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPlacement", required: false }] }], thyFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyFormat", required: false }] }], thyHourStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyHourStep", required: false }] }], thyMinuteStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyMinuteStep", required: false }] }], thySecondStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySecondStep", required: false }] }], thyPopupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPopupClass", required: false }] }], thyBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyBackdrop", required: false }] }], thyDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyDisabled", required: false }] }, { type: i0.Output, args: ["thyDisabledChange"] }], thyReadonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyReadonly", required: false }] }], thyShowSelectNow: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyShowSelectNow", required: false }] }], thyAllowClear: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAllowClear", required: false }] }], thyOpenChange: [{ type: i0.Output, args: ["thyOpenChange"] }], showText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showText", required: false }] }, { type: i0.Output, args: ["showTextChange"] }] } });
|
|
1324
1330
|
|
|
1325
1331
|
const COMPONENTS = [ThyInnerTimePicker, ThyTimePicker, ThyTimePanel];
|
|
1326
1332
|
class ThyTimePickerModule {
|