ngx-tethys 19.1.0-next.1 → 19.1.0-next.10

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/arrow-switcher/arrow-switcher.component.d.ts +5 -1
  3. package/badge/badge.component.d.ts +1 -1
  4. package/color-picker/coordinates.directive.d.ts +1 -2
  5. package/date-picker/abstract-picker.component.d.ts +50 -52
  6. package/date-picker/abstract-picker.directive.d.ts +15 -40
  7. package/date-picker/base-picker.component.d.ts +12 -40
  8. package/date-picker/date-picker.config.d.ts +3 -0
  9. package/date-picker/lib/calendar/calendar-footer.component.d.ts +24 -19
  10. package/date-picker/lib/calendar/calendar-header.component.d.ts +15 -15
  11. package/date-picker/lib/calendar/calendar-table.component.d.ts +15 -16
  12. package/date-picker/lib/date/date-table-cell.component.d.ts +6 -3
  13. package/date-picker/lib/date/date-table.component.d.ts +2 -3
  14. package/date-picker/lib/date-carousel/date-carousel.component.d.ts +2 -3
  15. package/date-picker/lib/decade/decade-header.component.d.ts +2 -5
  16. package/date-picker/lib/decade/decade-table.component.d.ts +3 -5
  17. package/date-picker/lib/month/month-table.component.d.ts +1 -2
  18. package/date-picker/lib/popups/date-popup.component.d.ts +33 -34
  19. package/date-picker/lib/popups/inner-popup.component.d.ts +22 -29
  20. package/date-picker/lib/quarter/quarter-table.component.d.ts +1 -4
  21. package/date-picker/lib/year/year-header.component.d.ts +2 -4
  22. package/date-picker/lib/year/year-table.component.d.ts +2 -4
  23. package/date-picker/month-picker.component.d.ts +2 -2
  24. package/date-picker/picker.component.d.ts +31 -36
  25. package/date-picker/picker.pipes.d.ts +4 -5
  26. package/date-picker/picker.util.d.ts +5 -5
  27. package/date-picker/picker.validators.d.ts +4 -8
  28. package/date-picker/quarter-picker.component.d.ts +2 -3
  29. package/date-picker/styles/range-picker.scss +1 -0
  30. package/date-picker/week-picker.component.d.ts +0 -1
  31. package/date-picker/year-picker.component.d.ts +2 -3
  32. package/dropdown/dropdown-menu.component.d.ts +1 -1
  33. package/dropdown/dropdown.directive.d.ts +4 -3
  34. package/empty/empty.component.d.ts +2 -1
  35. package/fesm2022/ngx-tethys-arrow-switcher.mjs +15 -3
  36. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-autocomplete.mjs +4 -4
  38. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  40. package/fesm2022/ngx-tethys-cascader.mjs +1 -1
  41. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  42. package/fesm2022/ngx-tethys-checkbox.mjs +2 -2
  43. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  44. package/fesm2022/ngx-tethys-color-picker.mjs +4 -6
  45. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  46. package/fesm2022/ngx-tethys-copy.mjs +2 -2
  47. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  48. package/fesm2022/ngx-tethys-date-picker.mjs +855 -1072
  49. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  50. package/fesm2022/ngx-tethys-divider.mjs +5 -5
  51. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  52. package/fesm2022/ngx-tethys-dropdown.mjs +9 -11
  53. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  54. package/fesm2022/ngx-tethys-empty.mjs +5 -2
  55. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  56. package/fesm2022/ngx-tethys-flexible-text.mjs +4 -5
  57. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  58. package/fesm2022/ngx-tethys-i18n.mjs +26 -6
  59. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  60. package/fesm2022/ngx-tethys-image.mjs +5 -7
  61. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  62. package/fesm2022/ngx-tethys-layout.mjs +291 -334
  63. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  64. package/fesm2022/ngx-tethys-list.mjs +183 -217
  65. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  66. package/fesm2022/ngx-tethys-message.mjs +29 -36
  67. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  68. package/fesm2022/ngx-tethys-notify.mjs +33 -41
  69. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  70. package/fesm2022/ngx-tethys-radio.mjs +4 -4
  71. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  72. package/fesm2022/ngx-tethys-resizable.mjs +20 -17
  73. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  74. package/fesm2022/ngx-tethys-select.mjs +164 -228
  75. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  76. package/fesm2022/ngx-tethys-shared.mjs +423 -587
  77. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  78. package/fesm2022/ngx-tethys-skeleton.mjs +1 -2
  79. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  80. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-table.mjs +1 -2
  82. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-time-picker.mjs +244 -271
  84. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-tooltip.mjs +109 -93
  86. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-tree-select.mjs +215 -281
  88. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-upload.mjs +2 -2
  90. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys.mjs +1 -1
  92. package/fesm2022/ngx-tethys.mjs.map +1 -1
  93. package/i18n/i18n.d.ts +7 -2
  94. package/i18n/locales/de-de.d.ts +5 -1
  95. package/i18n/locales/en-us.d.ts +5 -1
  96. package/i18n/locales/ja-jp.d.ts +5 -1
  97. package/i18n/locales/zh-hans.d.ts +5 -1
  98. package/i18n/locales/zh-hant.d.ts +5 -1
  99. package/image/preview/image-preview.component.d.ts +2 -2
  100. package/layout/header.component.d.ts +15 -19
  101. package/layout/layout.component.d.ts +3 -2
  102. package/layout/sidebar-header.component.d.ts +7 -8
  103. package/layout/sidebar.component.d.ts +32 -62
  104. package/list/list-item-meta.component.d.ts +7 -9
  105. package/list/list-item.component.d.ts +0 -2
  106. package/list/list.component.d.ts +2 -8
  107. package/list/selection/selection-list.d.ts +33 -46
  108. package/message/abstract/abstract-message.component.d.ts +2 -3
  109. package/message/message-container.component.d.ts +0 -1
  110. package/message/message.component.d.ts +1 -3
  111. package/notify/notify-container.component.d.ts +0 -1
  112. package/notify/notify.component.d.ts +7 -12
  113. package/package.json +1 -1
  114. package/resizable/resizable.directive.d.ts +2 -1
  115. package/schematics/version.d.ts +1 -1
  116. package/schematics/version.js +1 -1
  117. package/select/custom-select/custom-select.component.d.ts +33 -56
  118. package/select/native-select/native-select.component.d.ts +7 -13
  119. package/shared/base-form-check.component.d.ts +6 -8
  120. package/shared/directives/string-or-template-outlet.directive.d.ts +5 -6
  121. package/shared/directives/thy-autofocus.directive.d.ts +4 -6
  122. package/shared/directives/thy-contextmenu.directive.d.ts +2 -2
  123. package/shared/directives/thy-ctrl-enter.directive.d.ts +2 -2
  124. package/shared/directives/thy-enter.directive.d.ts +2 -2
  125. package/shared/directives/thy-scroll.directive.d.ts +5 -8
  126. package/shared/directives/thy-show.d.ts +5 -6
  127. package/shared/directives/thy-stop-propagation.directive.d.ts +4 -4
  128. package/shared/directives/view-outlet.directive.d.ts +6 -7
  129. package/shared/ng-transclude.directive.d.ts +2 -3
  130. package/shared/option/group/option-group.component.d.ts +5 -9
  131. package/shared/option/list-option/list-option.component.d.ts +9 -13
  132. package/shared/option/option.component.d.ts +10 -17
  133. package/shared/option/option.token.d.ts +4 -3
  134. package/shared/option/options-container.component.d.ts +1 -1
  135. package/shared/select/select-control/select-control.component.d.ts +38 -53
  136. package/stepper/stepper.component.d.ts +1 -1
  137. package/table/table-column.component.d.ts +15 -5
  138. package/time-picker/inner/inner-time-picker.class.d.ts +15 -13
  139. package/time-picker/inner/inner-time-picker.component.d.ts +26 -26
  140. package/time-picker/time-picker-panel.component.d.ts +18 -20
  141. package/time-picker/time-picker.component.d.ts +22 -30
  142. package/tooltip/tooltip.directive.d.ts +20 -22
  143. package/tree-select/tree-select.component.d.ts +53 -70
@@ -2,7 +2,7 @@ import { Overlay, ScrollDispatcher, OverlayModule } from '@angular/cdk/overlay';
2
2
  import { FocusMonitor, A11yModule } from '@angular/cdk/a11y';
3
3
  import { NgTemplateOutlet, CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { inject, ChangeDetectorRef, TemplateRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, NgZone, Injectable, ElementRef, ViewContainerRef, numberAttribute, Input, Directive, NgModule } from '@angular/core';
5
+ import { inject, ChangeDetectorRef, TemplateRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, NgZone, Injectable, ElementRef, ViewContainerRef, input, linkedSignal, numberAttribute, effect, Directive, NgModule } from '@angular/core';
6
6
  import { Platform } from '@angular/cdk/platform';
7
7
  import { AnimationDuration, AnimationCurves, getFlexiblePositions, ThyOverlayDirectiveBase } from 'ngx-tethys/core';
8
8
  import { coerceArray, isNumber, isString, coerceBooleanProperty } from 'ngx-tethys/util';
@@ -313,58 +313,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
313
313
  * @name thyTooltip
314
314
  */
315
315
  class ThyTooltipDirective extends ThyOverlayDirectiveBase {
316
- get content() {
317
- return this._content;
318
- }
319
- /**
320
- * 提示消息,可以是文本,也可以是一个模板
321
- * @type string | TemplateRef<T>
322
- */
323
- set content(value) {
316
+ getValidContent(value) {
324
317
  // If the content is not a string (e.g. number), convert it to a string and trim it.
325
- this._content = value && isString(value) ? `${value}`.trim() : value;
326
- if (!this._content && this.tooltipRef?.isTooltipVisible()) {
327
- this.tooltipRef.hide(0);
328
- }
329
- else {
330
- this.tooltipRef?.updateTooltipContent(value, this.data);
331
- }
318
+ const validValue = value && isString(value) ? `${value}`.trim() : value;
319
+ return validValue;
332
320
  }
333
- /**
334
- * 提示内容自定义样式
335
- */
336
- set thyTooltipClass(value) {
337
- this.tooltipClass = value;
338
- this.tooltipRef?.setTooltipClass(this.tooltipClass);
321
+ setDisabled(disabled) {
322
+ this.toolTipDisabled.set(disabled);
339
323
  }
340
- /**
341
- * 触发提示方式
342
- * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。
343
- * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。
344
- * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。
345
- *
346
- * @type hover | focus | click
347
- */
348
- set thyTooltipTrigger(value) {
349
- this.trigger = value;
324
+ setContent(content) {
325
+ const validValue = this.getValidContent(content);
326
+ this.content.set(validValue);
350
327
  }
351
- /**
352
- * 设置是否禁用提示
353
- * @default false
354
- */
355
- set thyTooltipDisabled(value) {
356
- this.disabled = value;
357
- // If tooltip is disabled, hide immediately.
358
- if (this.disabled) {
359
- this.hide(0);
360
- }
328
+ setOffset(offset) {
329
+ this.tooltipOffset.set(offset);
361
330
  }
362
- /**
363
- * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip
364
- * @default false
365
- */
366
- set tooltipPin(value) {
367
- this.overlayPin = value;
331
+ setPlacement(placement) {
332
+ this.placement.set(placement);
368
333
  }
369
334
  constructor() {
370
335
  const elementRef = inject(ElementRef);
@@ -376,80 +341,131 @@ class ThyTooltipDirective extends ThyOverlayDirectiveBase {
376
341
  this.thyTooltipService = inject(ThyTooltipService);
377
342
  this.touchendHideDelay = 1500;
378
343
  this.isAutoCloseOnMobileTouch = true;
344
+ /**
345
+ * 提示消息,可以是文本,也可以是一个模板
346
+ * @type string | TemplateRef<T>
347
+ */
348
+ this.thyTooltipContent = input(undefined, { alias: 'thyTooltip' });
349
+ this.content = linkedSignal(() => {
350
+ const value = this.thyTooltipContent();
351
+ return this.getValidContent(value);
352
+ });
379
353
  /**
380
354
  * 指定提示的位置
381
355
  * @type ThyPlacement
382
356
  */
383
- this.placement = 'top';
384
- this._trigger = 'hover';
357
+ this.thyPlacement = input('top', { alias: 'thyTooltipPlacement' });
358
+ this.placement = linkedSignal(() => {
359
+ return this.thyPlacement();
360
+ });
361
+ /**
362
+ * 提示内容自定义样式
363
+ */
364
+ this.thyTooltipClass = input();
365
+ /**
366
+ * 显示提示内容延迟毫秒
367
+ */
368
+ this.thyTooltipShowDelay = input(undefined, { transform: numberAttribute });
369
+ /**
370
+ * 隐藏提示内容延迟毫秒
371
+ */
372
+ this.thyTooltipHideDelay = input(undefined, { transform: numberAttribute });
373
+ /**
374
+ * 触发提示方式
375
+ * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。
376
+ * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。
377
+ * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。
378
+ *
379
+ * @type hover | focus | click
380
+ */
381
+ this.thyTooltipTrigger = input('hover');
382
+ /**
383
+ * 设置是否禁用提示
384
+ * @default false
385
+ */
386
+ this.thyTooltipDisabled = input(undefined, { transform: coerceBooleanProperty });
387
+ this.toolTipDisabled = linkedSignal(() => {
388
+ return this.thyTooltipDisabled();
389
+ });
390
+ /**
391
+ * 传入 template 时,需要注入给 template 的上下文数据
392
+ */
393
+ this.data = input(undefined, { alias: 'thyTooltipTemplateContext' });
394
+ /**
395
+ * 偏移量
396
+ */
397
+ this.thyTooltipOffset = input(undefined, { alias: 'thyTooltipOffset', transform: numberAttribute });
398
+ this.tooltipOffset = linkedSignal(() => {
399
+ return this.thyTooltipOffset();
400
+ });
401
+ /**
402
+ * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip
403
+ * @default false
404
+ */
405
+ this.tooltipPin = input(undefined, { alias: 'thyTooltipPin', transform: coerceBooleanProperty });
406
+ effect(() => {
407
+ const value = this.content();
408
+ if (!value && this.tooltipRef?.isTooltipVisible()) {
409
+ this.tooltipRef.hide(0);
410
+ }
411
+ else {
412
+ this.tooltipRef?.updateTooltipContent(value, this.data());
413
+ }
414
+ });
415
+ effect(() => {
416
+ const tooltipClass = this.thyTooltipClass();
417
+ this.tooltipRef?.setTooltipClass(tooltipClass);
418
+ });
419
+ effect(() => {
420
+ const trigger = this.thyTooltipTrigger();
421
+ this.trigger = trigger;
422
+ });
423
+ effect(() => {
424
+ const disabled = this.toolTipDisabled();
425
+ this.disabled = disabled;
426
+ if (disabled) {
427
+ this.hide(0);
428
+ }
429
+ });
430
+ effect(() => {
431
+ const overlayPin = this.tooltipPin();
432
+ this.overlayPin = overlayPin;
433
+ });
385
434
  }
386
435
  ngOnInit() {
387
436
  this.initialize();
388
437
  }
389
438
  /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */
390
- show(delay = this.showDelay) {
439
+ show(delay = this.thyTooltipShowDelay()) {
391
440
  if (this.disabled) {
392
441
  return;
393
442
  }
394
443
  if (!this.tooltipRef) {
395
444
  this.tooltipRef = this.thyTooltipService.create(this.elementRef, {
396
445
  viewContainerRef: this.viewContainerRef,
397
- placement: this.placement,
398
- contentClass: this.tooltipClass,
399
- offset: this.tooltipOffset,
400
- tooltipPin: this.tooltipPin,
446
+ placement: this.placement(),
447
+ contentClass: this.thyTooltipClass(),
448
+ offset: this.tooltipOffset(),
449
+ tooltipPin: this.tooltipPin(),
401
450
  hasBackdrop: this.trigger === 'click'
402
451
  });
403
452
  }
404
- this.tooltipRef.show(this.content, this.data, delay);
453
+ this.tooltipRef.show(this.content(), this.data(), delay);
405
454
  }
406
455
  /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */
407
- hide(delay = this.hideDelay) {
456
+ hide(delay = this.thyTooltipHideDelay()) {
408
457
  this.tooltipRef?.hide(delay);
409
458
  }
410
459
  ngOnDestroy() {
411
460
  this.tooltipRef?.dispose();
412
461
  }
413
462
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
414
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.2.8", type: ThyTooltipDirective, isStandalone: true, selector: "[thyTooltip],[thy-tooltip]", inputs: { content: ["thyTooltip", "content"], placement: ["thyTooltipPlacement", "placement"], thyTooltipClass: "thyTooltipClass", showDelay: ["thyTooltipShowDelay", "showDelay", numberAttribute], hideDelay: ["thyTooltipHideDelay", "hideDelay", numberAttribute], thyTooltipTrigger: "thyTooltipTrigger", thyTooltipDisabled: ["thyTooltipDisabled", "thyTooltipDisabled", coerceBooleanProperty], data: ["thyTooltipTemplateContext", "data"], tooltipOffset: ["thyTooltipOffset", "tooltipOffset", numberAttribute], tooltipPin: ["thyTooltipPin", "tooltipPin", coerceBooleanProperty] }, exportAs: ["thyTooltip"], usesInheritance: true, ngImport: i0 }); }
463
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.8", type: ThyTooltipDirective, isStandalone: true, selector: "[thyTooltip],[thy-tooltip]", inputs: { thyTooltipContent: { classPropertyName: "thyTooltipContent", publicName: "thyTooltip", isSignal: true, isRequired: false, transformFunction: null }, thyPlacement: { classPropertyName: "thyPlacement", publicName: "thyTooltipPlacement", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipClass: { classPropertyName: "thyTooltipClass", publicName: "thyTooltipClass", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipShowDelay: { classPropertyName: "thyTooltipShowDelay", publicName: "thyTooltipShowDelay", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipHideDelay: { classPropertyName: "thyTooltipHideDelay", publicName: "thyTooltipHideDelay", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipTrigger: { classPropertyName: "thyTooltipTrigger", publicName: "thyTooltipTrigger", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipDisabled: { classPropertyName: "thyTooltipDisabled", publicName: "thyTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "thyTooltipTemplateContext", isSignal: true, isRequired: false, transformFunction: null }, thyTooltipOffset: { classPropertyName: "thyTooltipOffset", publicName: "thyTooltipOffset", isSignal: true, isRequired: false, transformFunction: null }, tooltipPin: { classPropertyName: "tooltipPin", publicName: "thyTooltipPin", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["thyTooltip"], usesInheritance: true, ngImport: i0 }); }
415
464
  }
416
465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyTooltipDirective, decorators: [{
417
466
  type: Directive,
418
- args: [{
419
- selector: '[thyTooltip],[thy-tooltip]',
420
- exportAs: 'thyTooltip'
421
- }]
422
- }], ctorParameters: () => [], propDecorators: { content: [{
423
- type: Input,
424
- args: ['thyTooltip']
425
- }], placement: [{
426
- type: Input,
427
- args: ['thyTooltipPlacement']
428
- }], thyTooltipClass: [{
429
- type: Input,
430
- args: ['thyTooltipClass']
431
- }], showDelay: [{
432
- type: Input,
433
- args: [{ alias: 'thyTooltipShowDelay', transform: numberAttribute }]
434
- }], hideDelay: [{
435
- type: Input,
436
- args: [{ alias: 'thyTooltipHideDelay', transform: numberAttribute }]
437
- }], thyTooltipTrigger: [{
438
- type: Input,
439
- args: ['thyTooltipTrigger']
440
- }], thyTooltipDisabled: [{
441
- type: Input,
442
- args: [{ alias: 'thyTooltipDisabled', transform: coerceBooleanProperty }]
443
- }], data: [{
444
- type: Input,
445
- args: ['thyTooltipTemplateContext']
446
- }], tooltipOffset: [{
447
- type: Input,
448
- args: [{ alias: 'thyTooltipOffset', transform: numberAttribute }]
449
- }], tooltipPin: [{
450
- type: Input,
451
- args: [{ alias: 'thyTooltipPin', transform: coerceBooleanProperty }]
452
- }] } });
467
+ args: [{ selector: '[thyTooltip],[thy-tooltip]', exportAs: 'thyTooltip' }]
468
+ }], ctorParameters: () => [] });
453
469
 
454
470
  class ThyTooltipModule {
455
471
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content: string | TemplateRef<HTMLElement>;\n\n data: any;\n\n private readonly onHide: Subject<void> = new Subject();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId: number | null | any;\n\n hideTimeoutId: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef: OverlayRef;\n\n private tooltipInstance: ThyTooltip;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance.showTimeoutId && !this.tooltipInstance.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport { Directive, ElementRef, Input, NgZone, OnDestroy, OnInit, ViewContainerRef, numberAttribute, inject } from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({\n selector: '[thyTooltip],[thy-tooltip]',\n exportAs: 'thyTooltip'\n})\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipClass: string | string[];\n\n private tooltipRef: ThyTooltipRef;\n\n private _content: ThyTooltipContent;\n\n get content() {\n return this._content;\n }\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n @Input('thyTooltip') set content(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n this._content = value && isString(value) ? `${value}`.trim() : value;\n if (!this._content && this.tooltipRef?.isTooltipVisible()) {\n this.tooltipRef.hide(0);\n } else {\n this.tooltipRef?.updateTooltipContent(value, this.data);\n }\n }\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n @Input('thyTooltipPlacement') placement: ThyPlacement = 'top';\n\n /**\n * 提示内容自定义样式\n */\n @Input('thyTooltipClass')\n set thyTooltipClass(value: string | string[]) {\n this.tooltipClass = value;\n this.tooltipRef?.setTooltipClass(this.tooltipClass);\n }\n\n /**\n * 显示提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipShowDelay', transform: numberAttribute }) showDelay: number;\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n @Input({ alias: 'thyTooltipHideDelay', transform: numberAttribute }) hideDelay: number;\n\n _trigger: ThyOverlayTrigger = 'hover';\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n @Input('thyTooltipTrigger') set thyTooltipTrigger(value: ThyOverlayTrigger) {\n this.trigger = value;\n }\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n @Input({ alias: 'thyTooltipDisabled', transform: coerceBooleanProperty })\n set thyTooltipDisabled(value: boolean) {\n this.disabled = value;\n // If tooltip is disabled, hide immediately.\n if (this.disabled) {\n this.hide(0);\n }\n }\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n @Input('thyTooltipTemplateContext') data: SafeAny;\n\n /**\n * 偏移量\n */\n @Input({ alias: 'thyTooltipOffset', transform: numberAttribute }) tooltipOffset: number;\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n @Input({ alias: 'thyTooltipPin', transform: coerceBooleanProperty })\n set tooltipPin(value: boolean) {\n this.overlayPin = value;\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n\n super(elementRef, platform, focusMonitor, ngZone);\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number = this.showDelay): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement,\n contentClass: this.tooltipClass,\n offset: this.tooltipOffset,\n tooltipPin: this.tooltipPin,\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content, this.data, delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number = this.hideDelay): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\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-tooltip.mjs","sources":["../../../src/tooltip/tooltip-animations.ts","../../../src/tooltip/tooltip.component.ts","../../../src/tooltip/tooltip.component.html","../../../src/tooltip/tooltip-ref.ts","../../../src/tooltip/tooltip.config.ts","../../../src/tooltip/tooltip.service.ts","../../../src/tooltip/tooltip.directive.ts","../../../src/tooltip/tooltip.module.ts","../../../src/tooltip/ngx-tethys-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDuration } from 'ngx-tethys/core';\n\nexport const thyTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(1)' })),\n\n transition('* => visible', [\n style({ opacity: 0, transform: 'scale(0.9, 0.9)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 1,\n transform: 'scale(1, 1)'\n })\n )\n ]),\n transition('visible => *', [\n style({ opacity: 1, transform: 'scale(1, 1)' }),\n animate(\n `${AnimationDuration.BASE} ${AnimationCurves.EASE_IN_OUT_STANDARD}`,\n style({\n opacity: 0,\n transform: 'scale(0.9, 0.9)'\n })\n )\n ])\n ])\n};\n","import {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n OnInit,\n inject\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AnimationEvent } from '@angular/animations';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { ThyTooltipVisibility } from './interface';\nimport { thyTooltipAnimations } from './tooltip-animations';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-tooltip',\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [thyTooltipAnimations.tooltipState],\n host: {\n '[@state]': 'visibility',\n '(@state.start)': 'animationStart()',\n '(@state.done)': 'animationDone($event)'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTooltip implements OnInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n @HostBinding(`class.thy-tooltip`) addTooltipContainerClass = true;\n\n _content: string | TemplateRef<HTMLElement>;\n\n data: any;\n\n private readonly onHide: Subject<void> = new Subject();\n\n private closeOnInteraction = false;\n\n private hostRenderer = useHostRenderer();\n\n visibility: ThyTooltipVisibility = 'initial';\n\n showTimeoutId: number | null | any;\n\n hideTimeoutId: number | null | any;\n\n tooltipClasses: string[] = [];\n\n isTemplateRef = false;\n\n get content() {\n return this._content;\n }\n\n set content(value: string | TemplateRef<HTMLElement>) {\n this._content = value;\n this.isTemplateRef = value instanceof TemplateRef;\n }\n\n private updateClasses() {\n let classes: string[] = [];\n\n if (this.tooltipClasses) {\n classes = classes.concat(this.tooltipClasses);\n }\n\n this.hostRenderer.updateClass(classes);\n }\n\n ngOnInit() {}\n\n markForCheck(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n isVisible() {\n return this.visibility === 'visible';\n }\n\n show(delay: number): void {\n // Cancel the delayed hide if it is scheduled\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n // Body interactions should cancel the tooltip if there is a delay in showing.\n this.closeOnInteraction = true;\n this.showTimeoutId = setTimeout(() => {\n this.visibility = 'visible';\n this.showTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n hide(delay: number): void {\n // Cancel the delayed show if it is scheduled\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n this.visibility = 'hidden';\n this.hideTimeoutId = null;\n this.markForCheck();\n }, delay);\n }\n\n animationStart() {\n this.closeOnInteraction = false;\n }\n\n animationDone(event: AnimationEvent): void {\n const toState = event.toState as ThyTooltipVisibility;\n if (toState === 'hidden' && !this.isVisible()) {\n this.onHide.next();\n }\n if (toState === 'visible' || toState === 'hidden') {\n this.closeOnInteraction = true;\n }\n }\n\n afterHidden(): Observable<void> {\n return this.onHide.asObservable();\n }\n\n setTooltipClass(classes: string | string[]) {\n this.tooltipClasses = coerceArray(classes);\n this.updateClasses();\n // this.markForCheck();\n }\n}\n","<div class=\"thy-tooltip-arrow\"></div>\n<div class=\"thy-tooltip-content\">\n @if (isTemplateRef) {\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data }\"></ng-container>\n } @else {\n {{ content }}\n }\n</div>\n","import { FlexibleConnectedPositionStrategy, Overlay, OverlayRef, ScrollDispatcher, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, NgZone, TemplateRef } from '@angular/core';\nimport { isUndefinedOrNull } from '@tethys/cdk/is';\nimport { getFlexiblePositions } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { isNumber } from 'ngx-tethys/util';\nimport { Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltip } from './tooltip.component';\nimport { ThyTooltipConfig } from './tooltip.config';\n\nexport class ThyTooltipRef {\n private overlayRef: OverlayRef;\n\n private tooltipInstance: ThyTooltip;\n\n private scrollStrategy: ScrollStrategy;\n\n private portal: ComponentPortal<ThyTooltip>;\n\n private readonly dispose$ = new Subject<void>();\n\n constructor(\n private host: ElementRef<HTMLElement> | HTMLElement,\n private config: ThyTooltipConfig,\n private overlay: Overlay,\n private scrollDispatcher: ScrollDispatcher,\n private ngZone: NgZone\n ) {\n this.scrollStrategy = overlay.scrollStrategies.reposition({\n scrollThrottle: this.config.scrollThrottleSeconds\n });\n }\n\n /** Create the overlay config and position strategy */\n private createOverlay(): OverlayRef {\n if (this.overlayRef) {\n return this.overlayRef;\n }\n const scrollableAncestors = this.scrollDispatcher.getAncestorScrollContainers(this.host);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this.overlay\n .position()\n .flexibleConnectedTo(this.host)\n .withTransformOriginOn('.thy-tooltip-content')\n .withFlexibleDimensions(false)\n .withViewportMargin(8);\n\n strategy.withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this.dispose$)).subscribe(change => {\n if (this.tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this.tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this.ngZone.run(() => this.hide(0));\n }\n }\n });\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n panelClass: this.config.panelClass,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.config.hasBackdrop,\n backdropClass: 'thy-tooltip-backdrop'\n });\n\n this.updatePosition();\n\n this.overlayRef\n .detachments()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n\n this.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => {\n this.overlayRef.detachBackdrop();\n this.hide(0);\n });\n\n return this.overlayRef;\n }\n\n /** Updates the position of the current tooltip. */\n private updatePosition() {\n const position = this.overlayRef.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n const connectionPositions = getFlexiblePositions(this.config.placement, this.config.offset, 'thy-tooltip');\n position.withPositions(connectionPositions);\n }\n\n private detach() {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n }\n this.tooltipInstance = null;\n }\n\n show(content: ThyTooltipContent, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, data: T, delay?: number): void;\n show<T extends Record<SafeAny, SafeAny>>(content: ThyTooltipContent, dataOrDelay: T | number, delay?: number) {\n if (!content || (this.isTooltipVisible() && !this.tooltipInstance.showTimeoutId && !this.tooltipInstance.hideTimeoutId)) {\n return;\n }\n let showDelay = null;\n let initialState = null;\n if (isNumber(dataOrDelay)) {\n showDelay = dataOrDelay as number;\n } else {\n initialState = dataOrDelay;\n showDelay = delay;\n }\n const overlayRef = this.createOverlay();\n this.detach();\n this.portal = this.portal || new ComponentPortal(ThyTooltip, this.config.viewContainerRef);\n this.tooltipInstance = overlayRef.attach(this.portal).instance;\n this.tooltipInstance\n .afterHidden()\n .pipe(takeUntil(this.dispose$))\n .subscribe(() => this.detach());\n this.updateTooltipContent(content, initialState);\n this.setTooltipClass(this.config.contentClass);\n this.tooltipInstance.show(!isUndefinedOrNull(showDelay) ? showDelay : this.config.showDelay);\n }\n\n hide(delay: number = 0): void {\n if (this.overlayRef && this.overlayRef['_scrollStrategy']) {\n this.overlayRef['_scrollStrategy'].disable();\n }\n if (this.tooltipInstance) {\n this.tooltipInstance.hide(!isUndefinedOrNull(delay) ? delay : this.config.hideDelay);\n }\n }\n\n getOverlayRef() {\n return this.overlayRef;\n }\n\n setTooltipClass(tooltipClass: string | string[]) {\n if (this.tooltipInstance) {\n this.tooltipInstance.setTooltipClass(tooltipClass);\n }\n }\n\n updateTooltipContent(content: string | TemplateRef<any>, data?: any) {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this.tooltipInstance) {\n this.tooltipInstance.content = content;\n this.tooltipInstance.data = data;\n this.tooltipInstance.markForCheck();\n\n this.ngZone.onMicrotaskEmpty\n .asObservable()\n .pipe(take(1), takeUntil(this.dispose$))\n .subscribe(() => {\n if (this.tooltipInstance) {\n this.overlayRef.updatePosition();\n }\n });\n }\n }\n\n isTooltipVisible(): boolean {\n return !!this.tooltipInstance && this.tooltipInstance.isVisible();\n }\n\n dispose(): void {\n this.dispose$.next();\n this.dispose$.complete();\n this.hide(0);\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.tooltipInstance = null;\n }\n }\n}\n","import { InjectionToken, ViewContainerRef } from '@angular/core';\nimport { ThyPlacement } from 'ngx-tethys/core';\n\nexport interface ThyTooltipConfig {\n placement?: ThyPlacement;\n viewContainerRef?: ViewContainerRef;\n showDelay?: number;\n hideDelay?: number;\n touchendHideDelay?: number;\n offset?: number;\n contentClass?: string | string[];\n panelClass?: string | string[];\n hasBackdrop?: boolean;\n tooltipPin?: boolean;\n scrollThrottleSeconds?: number;\n}\n\nexport type ThyGlobalTooltipConfig = Pick<\n ThyTooltipConfig,\n 'placement' | 'offset' | 'scrollThrottleSeconds' | 'tooltipPin' | 'panelClass' | 'showDelay' | 'hideDelay' | 'touchendHideDelay'\n>;\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_TOKEN = new InjectionToken<ThyGlobalTooltipConfig>('thy-tooltip-default-config');\n\nexport const thyTooltipDefaultConfig: ThyGlobalTooltipConfig = {\n placement: 'top',\n showDelay: 200,\n hideDelay: 100,\n touchendHideDelay: 1500,\n offset: 4,\n panelClass: 'thy-tooltip-panel',\n tooltipPin: false,\n scrollThrottleSeconds: 20\n};\n\nexport const THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n useValue: thyTooltipDefaultConfig\n};\n","import { Overlay, ScrollDispatcher } from '@angular/cdk/overlay';\nimport { Injectable, NgZone, ElementRef, inject } from '@angular/core';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyGlobalTooltipConfig, ThyTooltipConfig, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN } from './tooltip.config';\n\n@Injectable({ providedIn: 'root' })\nexport class ThyTooltipService {\n private overlay = inject(Overlay);\n private scrollDispatcher = inject(ScrollDispatcher);\n private ngZone = inject(NgZone);\n private defaultTooltipConfig = inject(THY_TOOLTIP_DEFAULT_CONFIG_TOKEN);\n\n /**\n * 创建一个 Tooltip\n */\n create(host: ElementRef<HTMLElement> | HTMLElement, config: ThyTooltipConfig = {}) {\n config = Object.assign({}, this.defaultTooltipConfig, config);\n const tooltipRef = new ThyTooltipRef(host, config, this.overlay, this.scrollDispatcher, this.ngZone);\n return tooltipRef;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n Directive,\n ElementRef,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n ViewContainerRef,\n numberAttribute,\n inject,\n input,\n effect,\n linkedSignal\n} from '@angular/core';\nimport { ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { coerceBooleanProperty, isString } from 'ngx-tethys/util';\nimport { ThyTooltipContent } from './interface';\nimport { ThyTooltipRef } from './tooltip-ref';\nimport { ThyTooltipService } from './tooltip.service';\n\n/**\n * @name thyTooltip\n */\n@Directive({ selector: '[thyTooltip],[thy-tooltip]', exportAs: 'thyTooltip' })\nexport class ThyTooltipDirective extends ThyOverlayDirectiveBase implements OnInit, OnDestroy {\n private viewContainerRef = inject(ViewContainerRef);\n private thyTooltipService = inject(ThyTooltipService);\n\n touchendHideDelay = 1500;\n\n protected isAutoCloseOnMobileTouch: boolean = true;\n\n private tooltipRef: ThyTooltipRef;\n\n /**\n * 提示消息,可以是文本,也可以是一个模板\n * @type string | TemplateRef<T>\n */\n readonly thyTooltipContent = input<ThyTooltipContent>(undefined, { alias: 'thyTooltip' });\n\n getValidContent(value: ThyTooltipContent) {\n // If the content is not a string (e.g. number), convert it to a string and trim it.\n const validValue = value && isString(value) ? `${value}`.trim() : value;\n return validValue;\n }\n\n content = linkedSignal(() => {\n const value = this.thyTooltipContent();\n return this.getValidContent(value);\n });\n\n /**\n * 指定提示的位置\n * @type ThyPlacement\n */\n readonly thyPlacement = input<ThyPlacement>('top', { alias: 'thyTooltipPlacement' });\n\n placement = linkedSignal(() => {\n return this.thyPlacement();\n });\n\n /**\n * 提示内容自定义样式\n */\n readonly thyTooltipClass = input<string | string[]>();\n\n /**\n * 显示提示内容延迟毫秒\n */\n readonly thyTooltipShowDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 隐藏提示内容延迟毫秒\n */\n readonly thyTooltipHideDelay = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * 触发提示方式\n * <br/>`hover` 鼠标移入,显示提示;鼠标移出,隐藏提示;显示提示时,滚动页面,会隐藏提示。\n * <br/>`focus` 元素获取焦点,显示提示;元素失去焦点,隐藏提示;显示元素时,滚动页面,提示会跟随聚焦源一起移动。\n * <br/>`click` 点击元素,显示提示;点击backdrop,隐藏提示;显示提示时,页面的滚动行为会被阻止。\n *\n * @type hover | focus | click\n */\n readonly thyTooltipTrigger = input<ThyOverlayTrigger>('hover');\n\n /**\n * 设置是否禁用提示\n * @default false\n */\n readonly thyTooltipDisabled = input<boolean, unknown>(undefined, { transform: coerceBooleanProperty });\n\n toolTipDisabled = linkedSignal(() => {\n return this.thyTooltipDisabled();\n });\n\n /**\n * 传入 template 时,需要注入给 template 的上下文数据\n */\n readonly data = input<SafeAny>(undefined, { alias: 'thyTooltipTemplateContext' });\n\n /**\n * 偏移量\n */\n readonly thyTooltipOffset = input<number, unknown>(undefined, { alias: 'thyTooltipOffset', transform: numberAttribute });\n\n tooltipOffset = linkedSignal(() => {\n return this.thyTooltipOffset();\n });\n\n /**\n * hover 触发方式下 鼠标移入Tooltip是否固定 Tooltip\n * @default false\n */\n readonly tooltipPin = input<boolean, unknown>(undefined, { alias: 'thyTooltipPin', transform: coerceBooleanProperty });\n\n setDisabled(disabled: boolean) {\n this.toolTipDisabled.set(disabled);\n }\n\n setContent(content: ThyTooltipContent) {\n const validValue = this.getValidContent(content);\n this.content.set(validValue);\n }\n\n setOffset(offset: number) {\n this.tooltipOffset.set(offset);\n }\n\n setPlacement(placement: ThyPlacement) {\n this.placement.set(placement);\n }\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const ngZone = inject(NgZone);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n super(elementRef, platform, focusMonitor, ngZone);\n\n effect(() => {\n const value = this.content();\n if (!value && this.tooltipRef?.isTooltipVisible()) {\n this.tooltipRef.hide(0);\n } else {\n this.tooltipRef?.updateTooltipContent(value, this.data());\n }\n });\n\n effect(() => {\n const tooltipClass = this.thyTooltipClass();\n this.tooltipRef?.setTooltipClass(tooltipClass);\n });\n\n effect(() => {\n const trigger = this.thyTooltipTrigger();\n this.trigger = trigger;\n });\n\n effect(() => {\n const disabled = this.toolTipDisabled();\n this.disabled = disabled;\n if (disabled) {\n this.hide(0);\n }\n });\n\n effect(() => {\n const overlayPin = this.tooltipPin();\n this.overlayPin = overlayPin;\n });\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show 200ms */\n show(delay: number = this.thyTooltipShowDelay()): void {\n if (this.disabled) {\n return;\n }\n if (!this.tooltipRef) {\n this.tooltipRef = this.thyTooltipService.create(this.elementRef, {\n viewContainerRef: this.viewContainerRef,\n placement: this.placement(),\n contentClass: this.thyTooltipClass(),\n offset: this.tooltipOffset(),\n tooltipPin: this.tooltipPin(),\n hasBackdrop: this.trigger === 'click'\n });\n }\n this.tooltipRef.show(this.content(), this.data(), delay);\n }\n\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide 100ms */\n hide(delay: number = this.thyTooltipHideDelay()): void {\n this.tooltipRef?.hide(delay);\n }\n\n ngOnDestroy() {\n this.tooltipRef?.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyTooltipDirective } from './tooltip.directive';\nimport { ThyTooltip } from './tooltip.component';\nimport { THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER } from './tooltip.config';\n\n@NgModule({\n imports: [A11yModule, CommonModule, OverlayModule, ThyTooltipDirective, ThyTooltip],\n exports: [ThyTooltipDirective],\n providers: [THY_TOOLTIP_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThyTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}