ngx-tethys 20.0.1 → 20.0.2
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 +17 -0
- package/action/index.d.ts +3 -3
- package/affix/index.d.ts +1 -1
- package/alert/index.d.ts +3 -3
- package/anchor/index.d.ts +3 -3
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +7 -7
- package/avatar/index.d.ts +9 -9
- package/back-top/index.d.ts +3 -3
- package/badge/index.d.ts +6 -6
- package/breadcrumb/index.d.ts +7 -7
- package/button/index.d.ts +19 -19
- package/calendar/index.d.ts +8 -8
- package/card/index.d.ts +6 -6
- package/carousel/index.d.ts +4 -4
- package/cascader/index.d.ts +24 -24
- package/collapse/index.d.ts +4 -4
- package/color-picker/index.d.ts +16 -16
- package/comment/index.d.ts +3 -3
- package/copy/index.d.ts +2 -2
- package/core/index.d.ts +22 -22
- package/date-picker/index.d.ts +111 -111
- package/date-range/index.d.ts +5 -5
- package/dialog/index.d.ts +18 -18
- package/divider/index.d.ts +3 -3
- package/drag-drop/index.d.ts +7 -7
- package/dropdown/index.d.ts +10 -10
- package/empty/index.d.ts +12 -12
- package/fesm2022/ngx-tethys-action.mjs +14 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +11 -11
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +23 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +41 -34
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +10 -10
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +30 -25
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +16 -16
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +24 -24
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +13 -13
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +64 -61
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +34 -33
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +25 -24
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +15 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +31 -29
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +17 -10
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +28 -27
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -63
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +21 -18
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +35 -31
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -26
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +27 -27
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +18 -18
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +22 -21
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +12 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +17 -17
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -12
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +11 -11
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +19 -16
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +60 -38
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +82 -79
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -36
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +11 -11
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +28 -28
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +14 -14
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +15 -15
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +50 -43
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +16 -16
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +26 -25
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +11 -5
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +18 -15
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +5 -5
- package/form/index.d.ts +26 -22
- package/fullscreen/index.d.ts +4 -4
- package/grid/index.d.ts +12 -12
- package/guider/index.d.ts +10 -10
- package/i18n/index.d.ts +1 -1
- package/icon/index.d.ts +3 -3
- package/image/index.d.ts +12 -12
- package/input/index.d.ts +22 -22
- package/input-number/index.d.ts +4 -4
- package/layout/index.d.ts +16 -16
- package/list/index.d.ts +16 -15
- package/mention/index.d.ts +4 -4
- package/menu/index.d.ts +7 -7
- package/message/index.d.ts +5 -5
- package/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/index.d.ts +21 -17
- package/popover/index.d.ts +8 -8
- package/progress/index.d.ts +18 -18
- package/property/index.d.ts +6 -6
- package/property-operation/index.d.ts +3 -3
- package/radio/index.d.ts +6 -6
- package/rate/index.d.ts +5 -5
- package/resizable/index.d.ts +2 -2
- package/result/index.d.ts +8 -8
- package/schematics/testing/test-workspace.js +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +9 -9
- package/select/index.d.ts +21 -21
- package/shared/index.d.ts +29 -29
- package/skeleton/index.d.ts +52 -52
- package/slide/index.d.ts +5 -5
- package/slider/index.d.ts +6 -6
- package/space/index.d.ts +1 -1
- package/statistic/index.d.ts +18 -18
- package/stepper/index.d.ts +8 -8
- package/switch/index.d.ts +2 -2
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +6 -6
- package/testing/index.d.ts +1 -1
- package/time-picker/index.d.ts +21 -21
- package/timeline/index.d.ts +8 -8
- package/tooltip/index.d.ts +12 -12
- package/transfer/index.d.ts +16 -16
- package/tree/index.d.ts +28 -28
- package/tree-select/index.d.ts +13 -13
- package/typography/index.d.ts +3 -3
- package/upload/index.d.ts +4 -4
- package/util/index.d.ts +17 -7
- package/vote/index.d.ts +2 -2
- package/watermark/index.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-watermark.mjs","sources":["../../../src/watermark/config.ts","../../../src/watermark/watermark.directive.ts","../../../src/watermark/watermark.module.ts","../../../src/watermark/ngx-tethys-watermark.ts"],"sourcesContent":["export const DEFAULT_WATERMARK_CONFIG = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: '0.8',\n 'background-repeat': 'repeat',\n 'pointer-events': 'none',\n 'z-index': 2147483647,\n 'background-image': ''\n};\n\nexport const DEFAULT_CANVAS_CONFIG = {\n degree: 15,\n color: ['rgba(51, 51, 51, 0.12)', 'rgb(60, 65, 74)'],\n fontSize: 12,\n textLineHeight: 20,\n gutter: [250, 200]\n};\n","import { Directive, ElementRef, OnInit, inject, DestroyRef, effect, input, computed } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DEFAULT_WATERMARK_CONFIG, DEFAULT_CANVAS_CONFIG } from './config';\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { ThyThemeStore } from 'ngx-tethys/core';\n\n/**\n * @public\n * 水印样式配置\n */\nexport interface ThyCanvasConfigType {\n /**\n * 偏移角度\n */\n degree?: number;\n /**\n * 字体颜色。如果传的是数组,第一个为默认主题的字体颜色,第二个为黑暗主题的字体颜色\n */\n color?: string | string[];\n /**\n * 字体大小\n */\n fontSize?: number | string;\n /**\n * 文本行高\n */\n textLineHeight?: number;\n /**\n * 横纵间距\n */\n gutter?: number[];\n}\n\n/**\n * 水印指令\n * @name thyWatermark\n */\n@Directive({\n selector: '[thyWatermark]'\n})\nexport class ThyWatermarkDirective implements OnInit {\n private el = inject(ElementRef);\n\n /**\n * 是否禁用,默认为 false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 水印内容\n */\n readonly thyWatermark = input<string>(undefined);\n\n /**\n * 水印样式配置\n */\n readonly thyCanvasConfig = input<ThyCanvasConfigType>(undefined);\n\n readonly content = computed(() => {\n const value = this.thyWatermark()?.replace(/^\\\"|\\\"$/g, '');\n return value || '';\n });\n\n private createWatermark$ = new Subject<string>();\n\n private observer: MutationObserver;\n\n private canvas: HTMLCanvasElement;\n\n private wmDiv: HTMLElement;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private thyThemeStore = inject(ThyThemeStore);\n\n constructor() {\n effect(() => {\n if (!this.thyDisabled() && this.thyThemeStore.theme()) {\n this.refreshWatermark();\n }\n });\n\n effect(() => {\n const thyWatermark = this.thyWatermark();\n if (thyWatermark) {\n this.refreshWatermark();\n }\n });\n\n effect(() => {\n const thyDisabled = this.thyDisabled();\n if (thyDisabled) {\n this.removeWatermark();\n } else {\n this.refreshWatermark();\n }\n });\n }\n\n ngOnInit() {\n if (!this.thyDisabled()) {\n this.createWatermark$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeAttributes()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {});\n });\n\n this.createWatermark();\n }\n }\n\n private refreshWatermark() {\n this.removeWatermark();\n this.createWatermark();\n }\n\n private removeWatermark() {\n if (this.wmDiv) {\n this.wmDiv.remove();\n this.wmDiv = null;\n }\n }\n\n createCanvas() {\n let { gutter, fontSize, color, degree, textLineHeight } = {\n ...DEFAULT_CANVAS_CONFIG,\n ...(this.thyCanvasConfig() || {})\n };\n color = this.thyThemeStore.normalizeColor(color);\n\n const [xGutter, yGutter] = gutter;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const getFakeSize = () => {\n const fakeBox = document.createElement('div');\n const fakeBoxStyle: Record<string, string | number> = {\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'inline-block',\n 'font-size': `${parseFloat('' + fontSize)}px`,\n 'word-wrap': 'break-word',\n 'font-family': 'inherit',\n 'white-space': 'pre-line'\n };\n const styleStr = Object.keys(fakeBoxStyle).reduce((pre, next) => ((pre += `${next}:${fakeBoxStyle[next]};`), pre), '');\n fakeBox.setAttribute('style', styleStr);\n\n fakeBox.innerHTML = this.content().replace(/(\\\\n)/gm, '</br>');\n document.querySelector('body').insertBefore(fakeBox, document.querySelector('body').firstChild);\n const { width, height } = fakeBox.getBoundingClientRect();\n fakeBox.remove();\n return { width, height };\n };\n const { width: fakeBoxWidth, height: fakeBoxHeight } = getFakeSize();\n\n const angle = (degree * Math.PI) / 180;\n const contentArr = this.content().split('\\\\n');\n const canvasHeight = Math.sin(angle) * fakeBoxWidth + fakeBoxHeight;\n\n let start = Math.ceil(Math.sin(angle) * fakeBoxWidth * Math.sin(angle));\n const canvasWidth = start + fakeBoxWidth;\n canvas.setAttribute('width', '' + (canvasWidth + xGutter));\n canvas.setAttribute('height', '' + (canvasHeight + yGutter));\n\n ctx.font = `${parseFloat('' + fontSize)}px microsoft yahei`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n ctx.fillStyle = color;\n ctx.rotate(0 - (degree * Math.PI) / 180);\n contentArr.map((k, i) => {\n ctx.fillText(k, -start + Math.ceil(canvasWidth / 2), Math.sin(angle) * canvasWidth + textLineHeight * i);\n start += Math.sin(angle) * textLineHeight;\n });\n this.canvas = canvas;\n return canvas;\n }\n\n private createWatermark(isRefresh = true) {\n const watermarkDiv = this.wmDiv || document.createElement('div');\n\n const background = !isRefresh ? this.canvas.toDataURL() : this.createCanvas().toDataURL();\n const watermarkStyle: Record<string, string | number> = {\n ...DEFAULT_WATERMARK_CONFIG,\n 'background-image': `url(${background})`\n };\n\n const styleStr = Object.keys(watermarkStyle).reduce((pre, next) => ((pre += `${next}:${watermarkStyle[next]};`), pre), '');\n watermarkDiv.setAttribute('style', styleStr);\n\n if (!this.wmDiv) {\n const parentNode = this.el.nativeElement;\n watermarkDiv.classList.add(`_vm`);\n this.wmDiv = watermarkDiv;\n parentNode.insertBefore(watermarkDiv, parentNode.firstChild);\n }\n this.createWatermark$.next('');\n }\n\n private observeAttributes() {\n this.observer?.disconnect();\n return new Observable(observe => {\n const stream = new Subject<MutationRecord[]>();\n this.observer = new MutationObserverFactory().create(mutations => stream.next(mutations));\n if (this.observer) {\n this.observer.observe(this.wmDiv, {\n attributes: true\n });\n }\n stream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.wmDiv) {\n this?.observer?.disconnect();\n this.createWatermark(false);\n }\n });\n observe.next(stream);\n return () => {\n this.observer?.disconnect();\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyWatermarkDirective } from './watermark.directive';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyWatermarkDirective],\n exports: [ThyWatermarkDirective],\n providers: []\n})\nexport class ThyWatermarkModule {}\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-watermark.mjs","sources":["../../../src/watermark/config.ts","../../../src/watermark/watermark.directive.ts","../../../src/watermark/watermark.module.ts","../../../src/watermark/ngx-tethys-watermark.ts"],"sourcesContent":["export const DEFAULT_WATERMARK_CONFIG = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: '0.8',\n 'background-repeat': 'repeat',\n 'pointer-events': 'none',\n 'z-index': 2147483647,\n 'background-image': ''\n};\n\nexport const DEFAULT_CANVAS_CONFIG = {\n degree: 15,\n color: ['rgba(51, 51, 51, 0.12)', 'rgb(60, 65, 74)'],\n fontSize: 12,\n textLineHeight: 20,\n gutter: [250, 200]\n};\n","import { Directive, ElementRef, OnInit, inject, DestroyRef, effect, input, computed } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DEFAULT_WATERMARK_CONFIG, DEFAULT_CANVAS_CONFIG } from './config';\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\nimport { ThyThemeStore } from 'ngx-tethys/core';\n\n/**\n * @public\n * 水印样式配置\n */\nexport interface ThyCanvasConfigType {\n /**\n * 偏移角度\n */\n degree?: number;\n /**\n * 字体颜色。如果传的是数组,第一个为默认主题的字体颜色,第二个为黑暗主题的字体颜色\n */\n color?: string | string[];\n /**\n * 字体大小\n */\n fontSize?: number | string;\n /**\n * 文本行高\n */\n textLineHeight?: number;\n /**\n * 横纵间距\n */\n gutter?: number[];\n}\n\n/**\n * 水印指令\n * @name thyWatermark\n */\n@Directive({\n selector: '[thyWatermark]'\n})\nexport class ThyWatermarkDirective implements OnInit {\n private el = inject(ElementRef);\n\n /**\n * 是否禁用,默认为 false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 水印内容\n */\n readonly thyWatermark = input<string>();\n\n /**\n * 水印样式配置\n */\n readonly thyCanvasConfig = input<ThyCanvasConfigType>();\n\n readonly content = computed(() => {\n // eslint-disable-next-line no-useless-escape\n const value = this.thyWatermark()?.replace(/^\\\"|\\\"$/g, '');\n return value || '';\n });\n\n private createWatermark$ = new Subject<string>();\n\n private observer: MutationObserver | null = null;\n\n private canvas!: HTMLCanvasElement;\n\n private wmDiv: HTMLElement | null = null;\n\n private readonly destroyRef = inject(DestroyRef);\n\n private thyThemeStore = inject(ThyThemeStore);\n\n constructor() {\n effect(() => {\n if (!this.thyDisabled() && this.thyThemeStore.theme()) {\n this.refreshWatermark();\n }\n });\n\n effect(() => {\n const thyWatermark = this.thyWatermark();\n if (thyWatermark) {\n this.refreshWatermark();\n }\n });\n\n effect(() => {\n const thyDisabled = this.thyDisabled();\n if (thyDisabled) {\n this.removeWatermark();\n } else {\n this.refreshWatermark();\n }\n });\n }\n\n ngOnInit() {\n if (!this.thyDisabled()) {\n this.createWatermark$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeAttributes()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {});\n });\n\n this.createWatermark();\n }\n }\n\n private refreshWatermark() {\n this.removeWatermark();\n this.createWatermark();\n }\n\n private removeWatermark() {\n if (this.wmDiv) {\n this.wmDiv.remove();\n this.wmDiv = null;\n }\n }\n\n createCanvas() {\n const { gutter, fontSize, degree, textLineHeight } = {\n ...DEFAULT_CANVAS_CONFIG,\n ...(this.thyCanvasConfig() || {})\n };\n\n const color = this.thyThemeStore.normalizeColor({ ...DEFAULT_CANVAS_CONFIG, ...(this.thyCanvasConfig() || {}) }.color);\n\n const [xGutter, yGutter] = gutter;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d')!;\n\n const getFakeSize = () => {\n const fakeBox = document.createElement('div');\n const fakeBoxStyle: Record<string, string | number> = {\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'inline-block',\n 'font-size': `${parseFloat(`${fontSize}`)}px`,\n 'word-wrap': 'break-word',\n 'font-family': 'inherit',\n 'white-space': 'pre-line'\n };\n const styleStr = Object.keys(fakeBoxStyle).reduce((pre, next) => ((pre += `${next}:${fakeBoxStyle[next]};`), pre), '');\n fakeBox.setAttribute('style', styleStr);\n\n fakeBox.innerHTML = this.content().replace(/(\\\\n)/gm, '</br>');\n document.querySelector('body')!.insertBefore(fakeBox, document.querySelector('body')!.firstChild);\n const { width, height } = fakeBox.getBoundingClientRect();\n fakeBox.remove();\n return { width, height };\n };\n const { width: fakeBoxWidth, height: fakeBoxHeight } = getFakeSize();\n\n const angle = (degree * Math.PI) / 180;\n const contentArr = this.content().split('\\\\n');\n const canvasHeight = Math.sin(angle) * fakeBoxWidth + fakeBoxHeight;\n\n let start = Math.ceil(Math.sin(angle) * fakeBoxWidth * Math.sin(angle));\n const canvasWidth = start + fakeBoxWidth;\n canvas.setAttribute('width', `${canvasWidth + xGutter}`);\n canvas.setAttribute('height', `${canvasHeight + yGutter}`);\n\n ctx.font = `${parseFloat(`${fontSize}`)}px microsoft yahei`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n ctx.fillStyle = color!;\n ctx.rotate(0 - (degree * Math.PI) / 180);\n contentArr.map((k, i) => {\n ctx.fillText(k, -start + Math.ceil(canvasWidth / 2), Math.sin(angle) * canvasWidth + textLineHeight * i);\n start += Math.sin(angle) * textLineHeight;\n });\n this.canvas = canvas;\n return canvas;\n }\n\n private createWatermark(isRefresh = true) {\n const watermarkDiv = this.wmDiv || document.createElement('div');\n\n const background = !isRefresh ? this.canvas.toDataURL() : this.createCanvas().toDataURL();\n const watermarkStyle: Record<string, string | number> = {\n ...DEFAULT_WATERMARK_CONFIG,\n 'background-image': `url(${background})`\n };\n\n const styleStr = Object.keys(watermarkStyle).reduce((pre, next) => ((pre += `${next}:${watermarkStyle[next]};`), pre), '');\n watermarkDiv.setAttribute('style', styleStr);\n\n if (!this.wmDiv) {\n const parentNode = this.el.nativeElement;\n watermarkDiv.classList.add(`_vm`);\n this.wmDiv = watermarkDiv;\n parentNode.insertBefore(watermarkDiv, parentNode.firstChild);\n }\n this.createWatermark$.next('');\n }\n\n private observeAttributes() {\n this.observer?.disconnect();\n return new Observable(observe => {\n const stream = new Subject<MutationRecord[]>();\n this.observer = new MutationObserverFactory().create(mutations => stream.next(mutations));\n if (this.observer) {\n this.observer.observe(this.wmDiv!, {\n attributes: true\n });\n }\n stream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.wmDiv) {\n this?.observer?.disconnect();\n this.createWatermark(false);\n }\n });\n observe.next(stream);\n return () => {\n this.observer?.disconnect();\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyWatermarkDirective } from './watermark.directive';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyWatermarkDirective],\n exports: [ThyWatermarkDirective],\n providers: []\n})\nexport class ThyWatermarkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('20.0.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('20.0.2');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
|
package/flexible-text/index.d.ts
CHANGED
|
@@ -23,26 +23,26 @@ declare class ThyFlexibleText implements AfterContentInit, OnDestroy {
|
|
|
23
23
|
* @type hover | focus | click
|
|
24
24
|
* @default hover
|
|
25
25
|
*/
|
|
26
|
-
readonly trigger: _angular_core.InputSignal<"focus" | "hover" | "click">;
|
|
26
|
+
readonly trigger: _angular_core.InputSignal<"focus" | "hover" | "click" | undefined>;
|
|
27
27
|
/**
|
|
28
28
|
* 自定义class类,如果不设置默认会包含 `flexible-text-container`
|
|
29
29
|
*/
|
|
30
|
-
readonly thyContainerClass: _angular_core.InputSignal<string>;
|
|
30
|
+
readonly thyContainerClass: _angular_core.InputSignal<string | undefined>;
|
|
31
31
|
/**
|
|
32
32
|
* 需要展示的全部内容
|
|
33
33
|
* @type string | TemplateRef<HTMLElement>
|
|
34
34
|
*/
|
|
35
|
-
readonly thyTooltipContent: _angular_core.InputSignal<string | TemplateRef<HTMLElement
|
|
35
|
+
readonly thyTooltipContent: _angular_core.InputSignal<string | TemplateRef<HTMLElement> | undefined>;
|
|
36
36
|
/**
|
|
37
37
|
* tooltip 的提示位置
|
|
38
38
|
* @type top | bottom | left | right
|
|
39
39
|
* @default top
|
|
40
40
|
*/
|
|
41
|
-
readonly thyTooltipPlacement: _angular_core.InputSignal<ThyPlacement>;
|
|
41
|
+
readonly thyTooltipPlacement: _angular_core.InputSignal<ThyPlacement | undefined>;
|
|
42
42
|
/**
|
|
43
43
|
* tooltip 偏移量
|
|
44
44
|
*/
|
|
45
|
-
readonly thyTooltipOffset: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
45
|
+
readonly thyTooltipOffset: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
|
|
46
46
|
private destroy$;
|
|
47
47
|
private hostRenderer;
|
|
48
48
|
static createResizeObserver(element: HTMLElement): Observable<unknown>;
|
package/form/index.d.ts
CHANGED
|
@@ -51,8 +51,8 @@ interface ThyControlValidationResult {
|
|
|
51
51
|
}
|
|
52
52
|
interface ThyValidateResult {
|
|
53
53
|
valid: boolean;
|
|
54
|
-
invalidControls
|
|
55
|
-
validControls
|
|
54
|
+
invalidControls?: ThyControlValidationResult[];
|
|
55
|
+
validControls?: ThyControlValidationResult[];
|
|
56
56
|
}
|
|
57
57
|
declare const THY_VALIDATOR_CONFIG: InjectionToken<ThyFormValidatorGlobalConfig>;
|
|
58
58
|
declare const THY_FORM_CONFIG: InjectionToken<ThyFormConfig>;
|
|
@@ -99,14 +99,18 @@ declare class ThyFormValidatorService implements OnDestroy {
|
|
|
99
99
|
private _getControls;
|
|
100
100
|
private _getControlByName;
|
|
101
101
|
validateControl(name: string): {
|
|
102
|
-
valid: boolean;
|
|
102
|
+
valid: boolean | null;
|
|
103
103
|
control: AbstractControl<any, any, any> | FormControlName;
|
|
104
|
-
element:
|
|
104
|
+
element: HTMLElement;
|
|
105
105
|
};
|
|
106
|
-
validateControls():
|
|
106
|
+
validateControls(): {
|
|
107
|
+
valid: boolean | null;
|
|
108
|
+
control: AbstractControl<any, any, any> | FormControlName;
|
|
109
|
+
element: HTMLElement;
|
|
110
|
+
}[];
|
|
107
111
|
addError(message: string): void;
|
|
108
112
|
validate($event?: Event): boolean;
|
|
109
|
-
validateWithDetail($event
|
|
113
|
+
validateWithDetail($event: Event): ThyValidateResult;
|
|
110
114
|
reset(): void;
|
|
111
115
|
setElementErrorMessage(name: string, message: string): void;
|
|
112
116
|
ngOnDestroy(): void;
|
|
@@ -137,7 +141,7 @@ declare class ThyFormDirective implements OnInit, AfterViewInit, OnDestroy {
|
|
|
137
141
|
* @type horizontal | vertical | inline
|
|
138
142
|
* @default horizontal
|
|
139
143
|
*/
|
|
140
|
-
readonly thyLayout: i0.InputSignal<ThyFormLayout>;
|
|
144
|
+
readonly thyLayout: i0.InputSignal<ThyFormLayout | undefined>;
|
|
141
145
|
get isHorizontal(): boolean;
|
|
142
146
|
private get layout();
|
|
143
147
|
/**
|
|
@@ -145,11 +149,11 @@ declare class ThyFormDirective implements OnInit, AfterViewInit, OnDestroy {
|
|
|
145
149
|
* @type submit | alwaysSubmit | forbidSubmit
|
|
146
150
|
* @default submit
|
|
147
151
|
*/
|
|
148
|
-
readonly thyEnterKeyMode: i0.InputSignal<ThyEnterKeyMode>;
|
|
152
|
+
readonly thyEnterKeyMode: i0.InputSignal<ThyEnterKeyMode | undefined>;
|
|
149
153
|
/**
|
|
150
154
|
* 表单验证规则配置项 (更多内容查看:thyFormValidatorConfig)
|
|
151
155
|
*/
|
|
152
|
-
readonly thyFormValidatorConfig: i0.InputSignal<ThyFormValidatorConfig>;
|
|
156
|
+
readonly thyFormValidatorConfig: i0.InputSignal<ThyFormValidatorConfig | undefined>;
|
|
153
157
|
wasValidated: boolean;
|
|
154
158
|
onSubmitSuccess: ($event: any) => void;
|
|
155
159
|
private _unsubscribe;
|
|
@@ -179,11 +183,11 @@ declare class ThyFormGroup implements OnInit {
|
|
|
179
183
|
/**
|
|
180
184
|
* Label 文本
|
|
181
185
|
*/
|
|
182
|
-
readonly thyLabelText: i0.InputSignal<string>;
|
|
186
|
+
readonly thyLabelText: i0.InputSignal<string | undefined>;
|
|
183
187
|
/**
|
|
184
188
|
* Label 文本多语言 Key
|
|
185
189
|
*/
|
|
186
|
-
readonly thyLabelTextTranslateKey: i0.InputSignal<string>;
|
|
190
|
+
readonly thyLabelTextTranslateKey: i0.InputSignal<string | undefined>;
|
|
187
191
|
protected labelTextSignal: i0.Signal<any>;
|
|
188
192
|
/**
|
|
189
193
|
* Label 是否显示必填项样式
|
|
@@ -221,11 +225,11 @@ declare class ThyFormGroup implements OnInit {
|
|
|
221
225
|
* 已废弃
|
|
222
226
|
* @deprecated please use content because formGroup is same name with angular formGroup directive
|
|
223
227
|
*/
|
|
224
|
-
contentTemplateRef
|
|
228
|
+
contentTemplateRef?: TemplateRef<any>;
|
|
225
229
|
/**
|
|
226
230
|
* 内容自定义模板,`<ng-template #content></ng-template>`
|
|
227
231
|
*/
|
|
228
|
-
contentTemplate
|
|
232
|
+
contentTemplate?: TemplateRef<any>;
|
|
229
233
|
constructor();
|
|
230
234
|
ngOnInit(): void;
|
|
231
235
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyFormGroup, never>;
|
|
@@ -259,7 +263,7 @@ declare class ThyFormSubmitDirective implements OnInit {
|
|
|
259
263
|
/**
|
|
260
264
|
* Form 验证通过的提交函数
|
|
261
265
|
*/
|
|
262
|
-
thyFormSubmit: i0.OutputEmitterRef<Event>;
|
|
266
|
+
readonly thyFormSubmit: i0.OutputEmitterRef<Event>;
|
|
263
267
|
ngOnInit(): void;
|
|
264
268
|
onSubmit($event: Event): void;
|
|
265
269
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyFormSubmitDirective, never>;
|
|
@@ -276,13 +280,13 @@ declare class ThyFormGroupFooter implements OnInit {
|
|
|
276
280
|
private defaultConfig;
|
|
277
281
|
_isFormGroup: boolean;
|
|
278
282
|
isHorizontal: boolean;
|
|
279
|
-
description
|
|
283
|
+
description?: TemplateRef<any>;
|
|
280
284
|
/**
|
|
281
285
|
* 对齐方式
|
|
282
286
|
* @type left | right | center
|
|
283
287
|
* @default left
|
|
284
288
|
*/
|
|
285
|
-
readonly thyAlign: i0.InputSignal<ThyFormGroupFooterAlign>;
|
|
289
|
+
readonly thyAlign: i0.InputSignal<ThyFormGroupFooterAlign | undefined>;
|
|
286
290
|
footerClassMap: {};
|
|
287
291
|
private get align();
|
|
288
292
|
ngOnInit(): void;
|
|
@@ -299,7 +303,7 @@ declare class ThyFormGroupFooter implements OnInit {
|
|
|
299
303
|
declare class ThyUniqueCheckValidator implements AsyncValidator {
|
|
300
304
|
private elementRef;
|
|
301
305
|
private thyForm;
|
|
302
|
-
readonly thyUniqueCheck: i0.InputSignal<(value: any) => Observable<boolean
|
|
306
|
+
readonly thyUniqueCheck: i0.InputSignal<((value: any) => Observable<boolean>) | undefined>;
|
|
303
307
|
validate(ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;
|
|
304
308
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyUniqueCheckValidator, never>;
|
|
305
309
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyUniqueCheckValidator, "[thyUniqueCheck]", never, { "thyUniqueCheck": { "alias": "thyUniqueCheck"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -334,7 +338,7 @@ declare class ThyMinDirective implements Validator {
|
|
|
334
338
|
set min(value: string);
|
|
335
339
|
validate(control: AbstractControl): {
|
|
336
340
|
[key: string]: any;
|
|
337
|
-
};
|
|
341
|
+
} | null;
|
|
338
342
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyMinDirective, never>;
|
|
339
343
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyMinDirective, "[min][formControlName],[min][formControl],[min][ngModel]", never, { "min": { "alias": "min"; "required": false; }; }, {}, never, never, true, never>;
|
|
340
344
|
}
|
|
@@ -348,7 +352,7 @@ declare class ThyMaxDirective implements Validator {
|
|
|
348
352
|
set max(value: string);
|
|
349
353
|
validate(control: AbstractControl): {
|
|
350
354
|
[key: string]: any;
|
|
351
|
-
};
|
|
355
|
+
} | null;
|
|
352
356
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyMaxDirective, never>;
|
|
353
357
|
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyMaxDirective, "[max][formControlName],[max][formControl],[max][ngModel]", never, { "max": { "alias": "max"; "required": false; }; }, {}, never, never, true, never>;
|
|
354
358
|
}
|
|
@@ -364,9 +368,9 @@ declare class ThyConfirmValidatorDirective implements Validator {
|
|
|
364
368
|
* 表单控件的校验值
|
|
365
369
|
*/
|
|
366
370
|
readonly confirm: i0.InputSignal<string>;
|
|
367
|
-
validate(control: AbstractControl): i2.ValidationErrors;
|
|
371
|
+
validate(control: AbstractControl): i2.ValidationErrors | null;
|
|
368
372
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyConfirmValidatorDirective, never>;
|
|
369
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyConfirmValidatorDirective, "[confirm]", never, { "confirm": { "alias": "confirm"; "required":
|
|
373
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyConfirmValidatorDirective, "[confirm]", never, { "confirm": { "alias": "confirm"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
370
374
|
}
|
|
371
375
|
|
|
372
376
|
declare class ThyFormModule {
|
|
@@ -387,7 +391,7 @@ declare class ThyFormValidatorLoader {
|
|
|
387
391
|
private getDefaultValidationMessage;
|
|
388
392
|
constructor();
|
|
389
393
|
get validationMessages(): ThyFormValidationMessages;
|
|
390
|
-
get validateOn(): ngx_tethys_form.ThyValidateOn;
|
|
394
|
+
get validateOn(): ngx_tethys_form.ThyValidateOn | undefined;
|
|
391
395
|
isElementInInputGroup(element: HTMLElement): boolean;
|
|
392
396
|
getErrorMessage(name: string, key: string): string;
|
|
393
397
|
getErrorMessages(name: string, validationErrors: ValidationErrors): string[];
|
package/fullscreen/index.d.ts
CHANGED
|
@@ -41,12 +41,12 @@ declare class ThyFullscreenComponent implements OnInit, OnDestroy {
|
|
|
41
41
|
/**
|
|
42
42
|
* 打开全屏时需要添加的类名
|
|
43
43
|
*/
|
|
44
|
-
readonly thyFullscreenClasses: i0.InputSignal<string>;
|
|
44
|
+
readonly thyFullscreenClasses: i0.InputSignal<string | undefined>;
|
|
45
45
|
/**
|
|
46
46
|
* 全屏之后的回调
|
|
47
47
|
*/
|
|
48
48
|
readonly thyFullscreenChange: i0.OutputEmitterRef<boolean>;
|
|
49
|
-
readonly fullscreenLaunch: i0.Signal<ElementRef<any
|
|
49
|
+
readonly fullscreenLaunch: i0.Signal<ElementRef<any> | undefined>;
|
|
50
50
|
private ngUnsubscribe$;
|
|
51
51
|
private fullscreenLaunch$;
|
|
52
52
|
constructor();
|
|
@@ -91,8 +91,8 @@ declare class ThyFullscreenRef<TResult = unknown> {
|
|
|
91
91
|
protected exitImmersiveFullscreen(): void;
|
|
92
92
|
launch(): void;
|
|
93
93
|
exit(): void;
|
|
94
|
-
afterLaunched(): Observable<TResult>;
|
|
95
|
-
afterExited(): Observable<TResult>;
|
|
94
|
+
afterLaunched(): Observable<TResult | undefined>;
|
|
95
|
+
afterExited(): Observable<TResult | undefined>;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
declare class ThyFullscreen {
|
package/grid/index.d.ts
CHANGED
|
@@ -125,7 +125,7 @@ declare class ThyRowDirective {
|
|
|
125
125
|
/**
|
|
126
126
|
* 栅格的间距
|
|
127
127
|
*/
|
|
128
|
-
readonly thyGutter: _angular_core.InputSignal<number | ThyGutterType>;
|
|
128
|
+
readonly thyGutter: _angular_core.InputSignal<number | ThyGutterType | undefined>;
|
|
129
129
|
actualGutter$: ReplaySubject<[number, number]>;
|
|
130
130
|
private hostRenderer;
|
|
131
131
|
constructor();
|
|
@@ -153,12 +153,12 @@ declare class ThyColDirective {
|
|
|
153
153
|
/**
|
|
154
154
|
* 栅格项的占位列数,thySpan 如果传递了值,以 thySpan 为准
|
|
155
155
|
*/
|
|
156
|
-
readonly thyCol: _angular_core.InputSignal<ThySpan>;
|
|
156
|
+
readonly thyCol: _angular_core.InputSignal<ThySpan | undefined>;
|
|
157
157
|
/**
|
|
158
158
|
* 栅格项的占位列数
|
|
159
159
|
*/
|
|
160
|
-
readonly thySpan: _angular_core.InputSignal<ThySpan>;
|
|
161
|
-
protected readonly span: _angular_core.Signal<
|
|
160
|
+
readonly thySpan: _angular_core.InputSignal<ThySpan | undefined>;
|
|
161
|
+
protected readonly span: _angular_core.Signal<number | "auto">;
|
|
162
162
|
private hostRenderer;
|
|
163
163
|
private takeUntilDestroyed;
|
|
164
164
|
constructor();
|
|
@@ -188,20 +188,20 @@ declare class ThyFlex {
|
|
|
188
188
|
* Flex Wrap
|
|
189
189
|
* @default nowrap
|
|
190
190
|
*/
|
|
191
|
-
readonly thyWrap: _angular_core.InputSignal<ThyFlexWrap>;
|
|
191
|
+
readonly thyWrap: _angular_core.InputSignal<ThyFlexWrap | undefined>;
|
|
192
192
|
/**
|
|
193
193
|
* Justify Content
|
|
194
194
|
*/
|
|
195
|
-
readonly thyJustifyContent: _angular_core.InputSignal<ThyFlexJustifyContent>;
|
|
195
|
+
readonly thyJustifyContent: _angular_core.InputSignal<ThyFlexJustifyContent | undefined>;
|
|
196
196
|
/**
|
|
197
197
|
* Align Items
|
|
198
198
|
*/
|
|
199
|
-
readonly thyAlignItems: _angular_core.InputSignal<ThyFlexAlignItems>;
|
|
199
|
+
readonly thyAlignItems: _angular_core.InputSignal<ThyFlexAlignItems | undefined>;
|
|
200
200
|
/**
|
|
201
201
|
* Flex Item 之间的间隙 Gap
|
|
202
202
|
* @default 0
|
|
203
203
|
*/
|
|
204
|
-
readonly thyGap: _angular_core.InputSignal<number>;
|
|
204
|
+
readonly thyGap: _angular_core.InputSignal<number | undefined>;
|
|
205
205
|
constructor();
|
|
206
206
|
private updateClasses;
|
|
207
207
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyFlex, never>;
|
|
@@ -224,21 +224,21 @@ declare class ThyFlexItem {
|
|
|
224
224
|
/**
|
|
225
225
|
* Flex Item 属性,表示 grow 、shrink 、basis
|
|
226
226
|
*/
|
|
227
|
-
readonly thyFlexItem: _angular_core.InputSignal<string>;
|
|
227
|
+
readonly thyFlexItem: _angular_core.InputSignal<string | undefined>;
|
|
228
228
|
/**
|
|
229
229
|
* Flew Grow,设置或检索弹性盒子的扩展比率,设置 1 为填充剩余区域
|
|
230
230
|
*/
|
|
231
|
-
readonly thyGrow: _angular_core.InputSignal<ThyFlexGrow>;
|
|
231
|
+
readonly thyGrow: _angular_core.InputSignal<ThyFlexGrow | undefined>;
|
|
232
232
|
/**
|
|
233
233
|
* Flex Shrink,设置或检索弹性盒收缩比例
|
|
234
234
|
* @default 1
|
|
235
235
|
*/
|
|
236
|
-
readonly thyShrink: _angular_core.InputSignal<ThyFlexShrink>;
|
|
236
|
+
readonly thyShrink: _angular_core.InputSignal<ThyFlexShrink | undefined>;
|
|
237
237
|
/**
|
|
238
238
|
* Flex Basis,设置或检索弹性盒伸缩基准值
|
|
239
239
|
* @default 1
|
|
240
240
|
*/
|
|
241
|
-
readonly thyBasis: _angular_core.InputSignal<string>;
|
|
241
|
+
readonly thyBasis: _angular_core.InputSignal<string | undefined>;
|
|
242
242
|
constructor();
|
|
243
243
|
private updateClasses;
|
|
244
244
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThyFlexItem, never>;
|
package/guider/index.d.ts
CHANGED
|
@@ -120,14 +120,14 @@ interface IThyGuiderRef {
|
|
|
120
120
|
close: () => void;
|
|
121
121
|
end: () => void;
|
|
122
122
|
}
|
|
123
|
-
interface IThyGuiderManager {
|
|
124
|
-
updateActive: (key: string, guiderRef
|
|
123
|
+
interface IThyGuiderManager<TthyGuiderRef = IThyGuiderRef> {
|
|
124
|
+
updateActive: (key: string, guiderRef?: TthyGuiderRef) => void;
|
|
125
125
|
addStepTarget: (key: string, el: HTMLElement) => void;
|
|
126
126
|
removeStepTarget: (key: string) => void;
|
|
127
127
|
getActiveTarget: (key: string) => HTMLElement;
|
|
128
128
|
getActive: () => {
|
|
129
129
|
key: string;
|
|
130
|
-
guiderRef:
|
|
130
|
+
guiderRef: TthyGuiderRef;
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -181,11 +181,11 @@ declare class ThyGuiderStepRef {
|
|
|
181
181
|
private document;
|
|
182
182
|
private renderer;
|
|
183
183
|
private lastPointerContainer;
|
|
184
|
-
private lastTargetElement
|
|
185
|
-
private targetElementObserver
|
|
184
|
+
private lastTargetElement?;
|
|
185
|
+
private targetElementObserver?;
|
|
186
186
|
private lastTipContainer;
|
|
187
187
|
private guiderRef;
|
|
188
|
-
private lastPopoverRef
|
|
188
|
+
private lastPopoverRef?;
|
|
189
189
|
constructor(step: ThyGuiderStep, stepIndex: number, rendererFactory: RendererFactory2, popover: ThyPopover, guiderManager: IThyGuiderManager, overlay: Overlay, document: Document);
|
|
190
190
|
show(guiderRef: IThyGuiderRef): void;
|
|
191
191
|
dispose(): void;
|
|
@@ -247,7 +247,7 @@ declare class ThyGuiderTargetDirective implements OnInit, OnDestroy, AfterViewIn
|
|
|
247
247
|
ngAfterViewInit(): void;
|
|
248
248
|
ngOnDestroy(): void;
|
|
249
249
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyGuiderTargetDirective, never>;
|
|
250
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyGuiderTargetDirective, "[thyGuiderTarget]", ["thyGuiderTarget"], { "target": { "alias": "thyGuiderTarget"; "required":
|
|
250
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyGuiderTargetDirective, "[thyGuiderTarget]", ["thyGuiderTarget"], { "target": { "alias": "thyGuiderTarget"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
declare class ThyGuiderModule {
|
|
@@ -283,12 +283,12 @@ declare class ThyGuider {
|
|
|
283
283
|
* @public
|
|
284
284
|
* @order 60
|
|
285
285
|
*/
|
|
286
|
-
declare class ThyGuiderManager implements IThyGuiderManager {
|
|
286
|
+
declare class ThyGuiderManager implements IThyGuiderManager<ThyGuiderRef> {
|
|
287
287
|
private targetListMap;
|
|
288
|
-
private thyGuiderRef
|
|
288
|
+
private thyGuiderRef?;
|
|
289
289
|
private activeStepKey;
|
|
290
290
|
constructor();
|
|
291
|
-
updateActive(key: string, guiderRef
|
|
291
|
+
updateActive(key: string, guiderRef?: ThyGuiderRef): void;
|
|
292
292
|
addStepTarget(key: string, el: HTMLElement): void;
|
|
293
293
|
removeStepTarget(key: string): void;
|
|
294
294
|
getActiveTarget(key: string): HTMLElement;
|
package/i18n/index.d.ts
CHANGED
|
@@ -1046,7 +1046,7 @@ declare const _default: {
|
|
|
1046
1046
|
};
|
|
1047
1047
|
};
|
|
1048
1048
|
|
|
1049
|
-
declare function normalizeLocale(localeId: string): ThyLocaleType;
|
|
1049
|
+
declare function normalizeLocale(localeId: string | null): ThyLocaleType;
|
|
1050
1050
|
declare function getDefaultLocaleId(): ThyLocaleType;
|
|
1051
1051
|
|
|
1052
1052
|
export { THY_I18N_DE_DE, THY_I18N_EN_US, THY_I18N_JA_JP, THY_I18N_LOCALE_ID, THY_I18N_ZH_HANS, THY_I18N_ZH_HANT, ThyI18nService, ThyLocaleType, _default as deDeLocale, _default$2 as enUsLocale, getDefaultLocaleId, injectLocale, _default$1 as jaJpLocale, normalizeLocale, _default$4 as zhHansLocale, _default$3 as zhHantLocale };
|
package/icon/index.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ declare class ThyIcon {
|
|
|
18
18
|
* @type outline | fill | twotone
|
|
19
19
|
*/
|
|
20
20
|
readonly thyIconType: _angular_core.InputSignal<"fill" | "outline" | "twotone">;
|
|
21
|
-
readonly thyTwotoneColor: _angular_core.InputSignal<string>;
|
|
21
|
+
readonly thyTwotoneColor: _angular_core.InputSignal<string | undefined>;
|
|
22
22
|
/**
|
|
23
23
|
* 图标的名字
|
|
24
24
|
*/
|
|
@@ -27,8 +27,8 @@ declare class ThyIcon {
|
|
|
27
27
|
* 图标的旋转角度
|
|
28
28
|
* @default 0
|
|
29
29
|
*/
|
|
30
|
-
readonly thyIconRotate: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
31
|
-
readonly thyIconSet: _angular_core.InputSignal<string>;
|
|
30
|
+
readonly thyIconRotate: _angular_core.InputSignalWithTransform<number | undefined, unknown>;
|
|
31
|
+
readonly thyIconSet: _angular_core.InputSignal<string | undefined>;
|
|
32
32
|
/**
|
|
33
33
|
* 图标打底色,镂空的图标,会透过颜色来
|
|
34
34
|
*/
|
package/image/index.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ interface ThyImagePreviewOptions {
|
|
|
50
50
|
interface ThyImagePreviewOperation {
|
|
51
51
|
icon: string;
|
|
52
52
|
name: string;
|
|
53
|
-
action?: (image
|
|
53
|
+
action?: (image: ThyImageInfo) => void;
|
|
54
54
|
type?: ThyImagePreviewOperationType;
|
|
55
55
|
}
|
|
56
56
|
type ThyImagePreviewMode = 'original-scale' | 'fit-screen';
|
|
@@ -58,10 +58,10 @@ type ThyImagePreviewOperationType = 'zoom-out' | 'zoom-in' | 'rotate-right' | 'd
|
|
|
58
58
|
|
|
59
59
|
interface IThyImageDirective {
|
|
60
60
|
previewable: boolean;
|
|
61
|
-
thySrc: InputSignal<string>;
|
|
62
|
-
thyPreviewSrc: InputSignal<string>;
|
|
63
|
-
thyOriginSrc: InputSignal<string>;
|
|
64
|
-
thyImageMeta: InputSignal<ThyImageMeta>;
|
|
61
|
+
thySrc: InputSignal<string | undefined>;
|
|
62
|
+
thyPreviewSrc: InputSignal<string | undefined>;
|
|
63
|
+
thyOriginSrc: InputSignal<string | undefined>;
|
|
64
|
+
thyImageMeta: InputSignal<ThyImageMeta | undefined>;
|
|
65
65
|
}
|
|
66
66
|
interface IThyImageGroupComponent {
|
|
67
67
|
injector: Injector;
|
|
@@ -117,24 +117,24 @@ declare class ThyImageDirective implements IThyImageDirective, OnInit, AfterView
|
|
|
117
117
|
/**
|
|
118
118
|
* 图片地址
|
|
119
119
|
*/
|
|
120
|
-
readonly thySrc: i0.InputSignal<string>;
|
|
120
|
+
readonly thySrc: i0.InputSignal<string | undefined>;
|
|
121
121
|
/**
|
|
122
122
|
* 预览图片地址
|
|
123
123
|
*/
|
|
124
|
-
readonly thyPreviewSrc: i0.InputSignal<string>;
|
|
124
|
+
readonly thyPreviewSrc: i0.InputSignal<string | undefined>;
|
|
125
125
|
/**
|
|
126
126
|
* 图片原图地址
|
|
127
127
|
*/
|
|
128
|
-
readonly thyOriginSrc: i0.InputSignal<string>;
|
|
128
|
+
readonly thyOriginSrc: i0.InputSignal<string | undefined>;
|
|
129
129
|
/**
|
|
130
130
|
* 图片附加信息,包含 { name: string, size?: string | number; }
|
|
131
131
|
*/
|
|
132
|
-
readonly thyImageMeta: i0.InputSignal<ThyImageMeta>;
|
|
132
|
+
readonly thyImageMeta: i0.InputSignal<ThyImageMeta | undefined>;
|
|
133
133
|
/**
|
|
134
134
|
* 是否禁止预览
|
|
135
135
|
* @default false
|
|
136
136
|
*/
|
|
137
|
-
readonly thyDisablePreview: i0.InputSignalWithTransform<boolean, unknown>;
|
|
137
|
+
readonly thyDisablePreview: i0.InputSignalWithTransform<boolean | undefined, unknown>;
|
|
138
138
|
/**
|
|
139
139
|
* 是否自动计算图片资源大小
|
|
140
140
|
*/
|
|
@@ -189,7 +189,7 @@ declare class ThyImagePreview implements OnInit {
|
|
|
189
189
|
private rotate;
|
|
190
190
|
get previewImage(): InternalImageInfo;
|
|
191
191
|
get previewImageOriginSrc(): string;
|
|
192
|
-
get defaultZoom(): number;
|
|
192
|
+
get defaultZoom(): number | undefined;
|
|
193
193
|
imageRef: ElementRef<HTMLImageElement>;
|
|
194
194
|
imagePreviewWrapper: ElementRef<HTMLElement>;
|
|
195
195
|
ngOnInit(): void;
|
|
@@ -198,7 +198,7 @@ declare class ThyImagePreview implements OnInit {
|
|
|
198
198
|
useDefaultZoomUpdate(isUpdateImageWrapper: boolean): void;
|
|
199
199
|
useCalculateZoomUpdate(isUpdateImageWrapper?: boolean): void;
|
|
200
200
|
updatePreviewImage(): void;
|
|
201
|
-
resolvePreviewImage(): Observable<
|
|
201
|
+
resolvePreviewImage(): Observable<boolean>;
|
|
202
202
|
initPreview(): void;
|
|
203
203
|
download(image: ThyImageInfo): void;
|
|
204
204
|
zoomIn(): void;
|