@sebgroup/green-angular 7.2.0-rc.20260112142904472 → 7.2.0-rc.20260113120917716

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 (87) hide show
  1. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
  2. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  3. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +7 -7
  4. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  5. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
  6. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  7. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +13 -13
  8. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  9. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +7 -7
  10. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  11. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +7 -7
  12. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  13. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +13 -13
  14. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  15. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
  16. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  17. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +22 -22
  18. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
  20. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
  22. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +7 -7
  24. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +34 -34
  26. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
  28. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
  30. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +7 -7
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +7 -7
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +7 -7
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +7 -7
  42. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  43. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +7 -7
  44. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  45. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +7 -7
  46. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  47. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
  48. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  49. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +34 -34
  50. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  51. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +13 -13
  52. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
  53. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +26 -26
  54. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  55. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +7 -7
  56. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  57. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +14 -14
  58. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  59. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
  60. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  61. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +10 -10
  62. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  63. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +7 -7
  64. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  65. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +16 -16
  66. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  67. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +7 -7
  68. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
  69. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +13 -13
  70. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  71. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
  72. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  73. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +22 -22
  74. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
  75. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +10 -10
  76. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
  77. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -7
  78. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  79. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +10 -10
  80. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
  81. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +7 -7
  82. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  83. package/fesm2022/sebgroup-green-angular-v-angular.mjs +281 -281
  84. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  85. package/fesm2022/sebgroup-green-angular.mjs +166 -166
  86. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  87. package/package.json +1 -1
@@ -304,10 +304,10 @@ class NggvTooltipDirective {
304
304
  const remValue = value / fontSize;
305
305
  return `${remValue}rem`;
306
306
  }
307
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
308
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.9", type: NggvTooltipDirective, isStandalone: false, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", tooltipId: "tooltipId", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "focus": "onMouseEnter()", "mouseleave": "onMouseLeave()", "blur": "onMouseLeave()", "keyup.escape": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
307
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
308
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.18", type: NggvTooltipDirective, isStandalone: false, selector: "[nggvTooltip]", inputs: { nggvTooltip: "nggvTooltip", thook: "thook", placement: "placement", shown: "shown", offset: "offset", resizeThrottle: "resizeThrottle", tooltipId: "tooltipId", maxWidth: "maxWidth" }, outputs: { nggvShow: "nggvShow", nggvHide: "nggvHide" }, host: { listeners: { "mouseenter": "onMouseEnter()", "focus": "onMouseEnter()", "mouseleave": "onMouseLeave()", "blur": "onMouseLeave()", "keyup.escape": "onMouseLeave()", "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0 }); }
309
309
  }
310
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipDirective, decorators: [{
310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipDirective, decorators: [{
311
311
  type: Directive,
312
312
  args: [{
313
313
  selector: '[nggvTooltip]',
@@ -354,11 +354,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
354
354
  }] } });
355
355
 
356
356
  class NggvTooltipModule {
357
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
358
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipModule, declarations: [NggvTooltipDirective], imports: [NggvI18nModule], exports: [NggvTooltipDirective] }); }
359
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipModule, imports: [NggvI18nModule] }); }
357
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
358
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipModule, declarations: [NggvTooltipDirective], imports: [NggvI18nModule], exports: [NggvTooltipDirective] }); }
359
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipModule, imports: [NggvI18nModule] }); }
360
360
  }
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: NggvTooltipModule, decorators: [{
361
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvTooltipModule, decorators: [{
362
362
  type: NgModule,
363
363
  args: [{
364
364
  declarations: [NggvTooltipDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.styles.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["export const tooltipBoxStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['z-index', '1045'],\n ['border-radius', '.25rem'],\n ['padding', '.5rem 1rem'],\n ['background-color', '#1a1a1a'],\n ['color', '#fff'],\n ['font-size', '0.875rem'],\n ['font-weight', '400'],\n ['line-height', '1.5'],\n ['padding', '0.5rem'],\n ['pointer-events', 'none'],\n])\n\nexport const tooltipArrowTopStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['bottom', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', '#1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowBottomStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['top', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', 'transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowLeftStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['right', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowRightStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['left', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent #1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowStyles = {\n top: tooltipArrowTopStyles,\n bottom: tooltipArrowBottomStyles,\n left: tooltipArrowLeftStyles,\n right: tooltipArrowRightStyles,\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nimport { tooltipArrowStyles, tooltipBoxStyles } from './tooltip.styles'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n standalone: false\n})\nexport class NggvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Id of tooltip element. */\n @Input() tooltipId?: string\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NggvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NggvTooltipDirective.shouldUpdate(changes.placement) ||\n NggvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n @HostListener('focus')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n @HostListener('blur')\n @HostListener('keyup.escape')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement)) {\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n }\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setAttribute(this.tooltipElement, 'role', 'tooltip')\n if (this.tooltipId) {\n this.renderer.setAttribute(this.tooltipElement, 'id', this.tooltipId)\n }\n // set styling\n Array.from(tooltipBoxStyles.entries()).forEach(([style, value]) => {\n this.renderer.setStyle(this.tooltipElement, style, value)\n })\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n\n Array.from(tooltipArrowStyles[this.placement].entries()).forEach(\n ([style, value]) => {\n this.renderer.setStyle(this.arrowElement, style, value)\n },\n )\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NggvTooltipDirective],\n exports: [NggvTooltipDirective],\n imports: [NggvI18nModule],\n})\nexport class NggvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-tooltip.mjs","sources":["../../../../libs/angular/src/v-angular/tooltip/tooltip.styles.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.directive.ts","../../../../libs/angular/src/v-angular/tooltip/tooltip.module.ts","../../../../libs/angular/src/v-angular/tooltip/sebgroup-green-angular-src-v-angular-tooltip.ts"],"sourcesContent":["export const tooltipBoxStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['z-index', '1045'],\n ['border-radius', '.25rem'],\n ['padding', '.5rem 1rem'],\n ['background-color', '#1a1a1a'],\n ['color', '#fff'],\n ['font-size', '0.875rem'],\n ['font-weight', '400'],\n ['line-height', '1.5'],\n ['padding', '0.5rem'],\n ['pointer-events', 'none'],\n])\n\nexport const tooltipArrowTopStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['bottom', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', '#1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowBottomStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['top', '-1rem'],\n ['left', '50%'],\n ['transform', 'translateX(-50%)'],\n ['border-color', 'transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowLeftStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['right', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent transparent transparent #1a1a1a'],\n])\n\nexport const tooltipArrowRightStyles = new Map<string, any>([\n ['position', 'absolute'],\n ['width', '0'],\n ['height', '0'],\n ['border', '0.5rem solid transparent'],\n ['left', '-1rem'],\n ['top', '50%'],\n ['transform', 'translateY(-50%)'],\n ['border-color', 'transparent #1a1a1a transparent transparent'],\n])\n\nexport const tooltipArrowStyles = {\n top: tooltipArrowTopStyles,\n bottom: tooltipArrowBottomStyles,\n left: tooltipArrowLeftStyles,\n right: tooltipArrowRightStyles,\n}\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChange,\n SimpleChanges,\n} from '@angular/core'\n\nimport { tooltipArrowStyles, tooltipBoxStyles } from './tooltip.styles'\n\nexport type Placement = 'top' | 'right' | 'bottom' | 'left'\n\ntype Position = {\n top?: number\n right?: number\n bottom?: number\n left?: number\n}\n\n/**\n * A tooltip is a text label that acts as a helper to a specific item.\n * Recommended to use value `top` or `bottom` with `placement` for responsive design.\n * Dynamic resizing and tooltip position are a work in progress.\n * https://designlibrary.sebgroup.com/components/component-tooltip\n */\n@Directive({\n selector: '[nggvTooltip]',\n standalone: false\n})\nexport class NggvTooltipDirective\n implements AfterViewInit, OnChanges, OnDestroy\n{\n /** The text that will be shown in the tooltip. */\n @Input() nggvTooltip?: string\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'tooltip'\n /** The side of the anchor which the tooltip will be rendered.\n * Recommended `top` and `bottom` for responsive designs as these are more stable.\n */\n @Input() placement: Placement = 'top'\n /** Initial state and subsequent updates on wether the tooltip is visible. */\n @Input() shown = false\n /** How far off from the text the tooltip will be rendered. */\n @Input() offset = 10\n /** How frequently the tooltip will be re-rendered when the page size changes. */\n @Input() resizeThrottle = 50\n /** Id of tooltip element. */\n @Input() tooltipId?: string\n /** Numeric max-width for tooltip. */\n @Input() maxWidth = 343\n\n /** Emits a show event triggered changing visibility state of the tooltip. */\n @Output() nggvShow = new EventEmitter<HTMLElement>()\n /** Emits a hide event triggered changing visibility state of the tooltip. */\n @Output() nggvHide = new EventEmitter<HTMLElement>()\n\n /** @internal */\n protected timeout = 0\n\n /** @internal */\n protected parentElement: HTMLElement\n\n /** @internal */\n protected anchorElement: HTMLElement\n\n /** @internal */\n protected tooltipElement: HTMLElement | undefined\n\n /** @internal */\n protected arrowElement: HTMLElement | undefined\n\n /** @internal Check if changes should trigger a re-render */\n static shouldUpdate(change: SimpleChange) {\n return (\n change &&\n !change.firstChange &&\n change.previousValue !== change.currentValue\n )\n }\n\n constructor(\n private anchorElementRef: ElementRef,\n private renderer: Renderer2,\n ) {\n this.anchorElement = this.anchorElementRef.nativeElement\n this.parentElement = document.body\n }\n\n ngAfterViewInit() {\n // Set a timeout to allow view to fully render before creating tooltip.\n setTimeout(() => (this.shown ? this.show(true) : this.hide(true)))\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n NggvTooltipDirective.shouldUpdate(changes.nggvTooltip) ||\n NggvTooltipDirective.shouldUpdate(changes.placement) ||\n NggvTooltipDirective.shouldUpdate(changes.thook)\n ) {\n this.shown ? this.show(true) : this.hide(true)\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.shown)) {\n this.shown ? this.show() : this.hide()\n }\n\n if (NggvTooltipDirective.shouldUpdate(changes.offset)) {\n this.updatePosition()\n }\n }\n\n ngOnDestroy() {\n this.hide(true)\n }\n\n /** @internal */\n @HostListener('mouseenter')\n @HostListener('focus')\n onMouseEnter() {\n this.show()\n }\n\n /** @internal */\n @HostListener('mouseleave')\n @HostListener('blur')\n @HostListener('keyup.escape')\n onMouseLeave() {\n this.hide()\n }\n\n /** @internal */\n @HostListener('window:resize')\n resize() {\n if (this.timeout) return\n this.timeout = window.setTimeout(() => {\n this.timeout = 0\n this.updatePosition()\n }, this.resizeThrottle)\n }\n\n /**\n * Sets the visibility state of the tooltip to true and creates a new tooltip if it doesn't exist or `recreate` is set.\n * @param recreate if set to true, destroy any existing tooltip and create a new one.\n */\n show(recreate = false) {\n // Require tooltip text to create\n if (!this.nggvTooltip || this.nggvTooltip.length === 0) return\n\n if (recreate || !this.tooltipElement) {\n this.hide(true)\n this.create(this.nggvTooltip)\n } else {\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n }\n\n this.updatePosition()\n this.shown = true\n this.nggvShow.emit(this.tooltipElement)\n }\n\n /**\n * Sets the visibility state of the tooltip to false and destroys an existing tooltip if `destroy` is set.\n * @param destroy if set to true, destroy any existing tooltip.\n */\n hide(destroy = false) {\n if (!this.tooltipElement) return\n if (this.parentElement.contains(this.tooltipElement)) {\n this.renderer.removeChild(this.parentElement, this.tooltipElement)\n }\n if (destroy) this.destroy()\n this.shown = false\n this.nggvHide.emit(this.tooltipElement)\n }\n\n /**\n * @internal\n * Creates a new tooltip with the set placement and a given text as its body.\n * @param text the string to be displayed in the tooltip body.\n */\n create(text: string) {\n this.tooltipElement = this.renderer.createElement('div')\n this.renderer.addClass(this.tooltipElement, 'gds-tooltip')\n this.renderer.setAttribute(this.tooltipElement, 'data-thook', this.thook)\n this.renderer.setAttribute(this.tooltipElement, 'role', 'tooltip')\n if (this.tooltipId) {\n this.renderer.setAttribute(this.tooltipElement, 'id', this.tooltipId)\n }\n // set styling\n Array.from(tooltipBoxStyles.entries()).forEach(([style, value]) => {\n this.renderer.setStyle(this.tooltipElement, style, value)\n })\n const relativeMaxWidth = this.pxToRem(this.maxWidth)\n this.renderer.setStyle(this.tooltipElement, 'max-width', relativeMaxWidth)\n this.renderer.appendChild(\n this.tooltipElement,\n this.renderer.createText(text),\n )\n\n // add tooltip to DOM\n this.renderer.appendChild(this.parentElement, this.tooltipElement)\n\n this.arrowElement = this.renderer.createElement('div')\n this.renderer.addClass(\n this.arrowElement,\n `gds-tooltip__arrow-${this.placement}`,\n )\n\n // add arrow to tooltip element\n this.renderer.appendChild(this.tooltipElement, this.arrowElement)\n }\n\n /**\n * @internal\n * Destroys the current tooltip by un-setting variables, should only be used after detaching elements from the DOM.\n */\n destroy() {\n this.tooltipElement = undefined\n this.arrowElement = undefined\n }\n\n /**\n * @internal\n * Recalculates the position of the tooltip.\n */\n updatePosition() {\n if (!this.tooltipElement || !this.arrowElement) return\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n this.parentElement.scrollTop ||\n 0\n const anchorRect = this.anchorElement.getBoundingClientRect()\n const tooltipRect = this.tooltipElement.getBoundingClientRect()\n const arrowRect = this.arrowElement.getBoundingClientRect()\n\n switch (this.placement) {\n case 'top':\n this.alignVertical(\n true,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'bottom':\n this.alignVertical(\n false,\n scrollPos,\n anchorRect,\n tooltipRect.width,\n tooltipRect.height,\n arrowRect.width,\n )\n break\n\n case 'left':\n this.alignHorizontal(true, scrollPos, anchorRect, tooltipRect.height)\n break\n\n case 'right':\n this.alignHorizontal(false, scrollPos, anchorRect, tooltipRect.height)\n break\n\n default:\n return\n }\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `top` or `bottom`.\n */\n alignVertical(\n above: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipWidth: number,\n tooltipHeight: number,\n arrowWidth: number,\n ) {\n const width = this.parentElement.clientWidth\n const anchorMidX = anchor.left + anchor.width / 2\n const tooltip: Position = {}\n const arrow: Position = {}\n\n if (above)\n tooltip.top = anchor.top - tooltipHeight - this.offset + scrollPos\n else tooltip.top = anchor.bottom + this.offset + scrollPos\n\n if (anchorMidX < width / 2) {\n tooltip.left = Math.max(0, anchorMidX - tooltipWidth / 2)\n arrow.left = anchorMidX - tooltip.left\n } else {\n tooltip.right = Math.max(0, width - (anchorMidX + tooltipWidth / 2))\n arrow.right = width - anchorMidX - tooltip.right - arrowWidth\n }\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Calculates and set the position of the tooltip when the placement is `left` or `right`.\n */\n alignHorizontal(\n before: boolean,\n scrollPos: number,\n anchor: DOMRect,\n tooltipHeight: number,\n ) {\n const width = this.parentElement.clientWidth\n const top = anchor.top + (anchor.height - tooltipHeight) / 2 + scrollPos\n const tooltip: Position = { top }\n const arrow: Position = { top: tooltipHeight / 2 }\n\n if (before) tooltip.right = width - anchor.left + this.offset\n else tooltip.left = anchor.right + this.offset\n\n this.setStyle(tooltip, arrow)\n }\n\n /**\n * @internal\n * Updates the CSS properties for the tooltip position.\n */\n setStyle(tooltip: Position, arrow: Position) {\n // Tooltip\n Object.entries(tooltip).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.tooltipElement, prop, position)\n })\n\n // Arrow\n Object.entries(arrow).forEach(([prop, value]) => {\n const position = this.pxToRem(value)\n this.renderer.setStyle(this.arrowElement, prop, position)\n })\n\n Array.from(tooltipArrowStyles[this.placement].entries()).forEach(\n ([style, value]) => {\n this.renderer.setStyle(this.arrowElement, style, value)\n },\n )\n }\n\n private pxToRem(value: number): string {\n const fontSizePx = window\n ?.getComputedStyle(this.parentElement)\n ?.getPropertyValue('font-size')\n const fontSizeNumberMatch = fontSizePx?.match(/\\d{1,}/)\n const fontSize = fontSizeNumberMatch ? +fontSizeNumberMatch[0] : 16\n const remValue = value / fontSize\n return `${remValue}rem`\n }\n}\n","import { NgModule } from '@angular/core'\n\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvTooltipDirective } from './tooltip.directive'\n\n@NgModule({\n declarations: [NggvTooltipDirective],\n exports: [NggvTooltipDirective],\n imports: [NggvI18nModule],\n})\nexport class NggvTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}