@lucca-front/ng 21.1.0-rc.3 → 21.1.0

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 (52) hide show
  1. package/fesm2022/lucca-front-ng-box.mjs +1 -1
  2. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-core-select.mjs +5 -3
  4. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-data-table.mjs +4 -4
  6. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-date2.mjs +2 -2
  8. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-dialog.mjs +13 -4
  10. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-dropdown.mjs +9 -8
  12. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-file-upload.mjs +1 -1
  14. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-form-field.mjs +8 -8
  16. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +3 -3
  18. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +5 -5
  20. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-forms.mjs +22 -16
  22. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-highlight-data.mjs +2 -2
  24. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-index-table.mjs +2 -2
  26. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-modal.mjs +29 -18
  28. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-page-header.mjs +2 -2
  30. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-plg-push.mjs +1 -1
  32. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-popover2.mjs +7 -13
  34. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-simple-select.mjs +2 -2
  36. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-skeleton.mjs +6 -6
  38. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-tooltip.mjs +12 -0
  40. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  41. package/package.json +4 -4
  42. package/schematics/cdn-urls/migration.js +1 -1
  43. package/schematics/lib/html-ast.js +11 -3
  44. package/schematics/ng-add/file-content.js +6 -8
  45. package/schematics/ng-add/index.js +5 -5
  46. package/schematics/ng-add/tasks.js +22 -17
  47. package/types/lucca-front-ng-dialog.d.ts +6 -3
  48. package/types/lucca-front-ng-form-field.d.ts +3 -2
  49. package/types/lucca-front-ng-forms.d.ts +4 -2
  50. package/types/lucca-front-ng-modal.d.ts +3 -1
  51. package/types/lucca-front-ng-popover2.d.ts +3 -2
  52. package/types/lucca-front-ng-tooltip.d.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-skeleton.mjs","sources":["../../../packages/ng/skeleton/skeleton-button/skeleton-button.component.ts","../../../packages/ng/skeleton/skeleton-button/skeleton-button.component.html","../../../packages/ng/skeleton/skeleton-data-table/skeleton-data-table.component.ts","../../../packages/ng/skeleton/skeleton-data-table/skeleton-data-table.component.html","../../../packages/ng/skeleton/skeleton-field/skeleton-field.component.ts","../../../packages/ng/skeleton/skeleton-field/skeleton-field.component.html","../../../packages/ng/skeleton/skeleton-header/skeleton-header.component.ts","../../../packages/ng/skeleton/skeleton-header/skeleton-header.component.html","../../../packages/ng/skeleton/skeleton-index-table/skeleton-index-table.component.ts","../../../packages/ng/skeleton/skeleton-index-table/skeleton-index-table.component.html","../../../packages/ng/skeleton/skeleton-resource-card/skeleton-resource-card.component.ts","../../../packages/ng/skeleton/skeleton-resource-card/skeleton-resource-card.component.html","../../../packages/ng/skeleton/skeleton-table/skeleton-table.component.ts","../../../packages/ng/skeleton/skeleton-table/skeleton-table.component.html","../../../packages/ng/skeleton/lucca-front-ng-skeleton.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-button',\n\ttemplateUrl: './skeleton-button.component.html',\n\tstyleUrl: './skeleton-button.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonButtonComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Changes the size of the skeleton button\n\t */\n\treadonly size = input<'XS' | 'S' | 'M'>();\n}\n","<div class=\"skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t<div class=\"button\" [class.mod-dark]=\"dark()\" [class]=\"size() ? `mod-${size()}` : null\">\n\t\t<span class=\"skeleton-item\" [class]=\"size() ? `pr-u-body${size()}` : null\"></span>\n\t</div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignDataTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-data-table',\n\ttemplateUrl: './skeleton-data-table.component.html',\n\tstyleUrl: './skeleton-data-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonDataTableComponent {\n\t/**\n\t * Skeleton only show in data table body\n\t */\n\treadonly dataTableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignDataTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","@if (dataTableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<div class=\"dataTableWrapper\">\n\t\t<table class=\"dataTable mod-layoutFixed skeleton is-loading\" inert=\"inert\">\n\t\t\t<thead class=\"dataTable-head\">\n\t\t\t\t<tr class=\"dataTable-head-row\">\n\t\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t\t<th class=\"dataTable-head-row-cell\" scope=\"col\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t\t</table>\n\t</div>\n}\n<ng-template #tbody>\n\t<tbody class=\"dataTable-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"dataTable-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"dataTable-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-field',\n\ttemplateUrl: './skeleton-field.component.html',\n\tstyleUrl: './skeleton-field.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonFieldComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input<boolean, boolean | `${boolean}`>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Hide the field label skeleton\n\t */\n\treadonly hiddenLabel = input<boolean, boolean | `${boolean}`>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of row\n\t */\n\treadonly rows = input<number, number | `${number}`>(1, { transform: numberAttribute });\n\n\treadonly lines = computed(() => Array.from({ length: this.rows() }));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t@if (!hiddenLabel()) {\n\t\t<span class=\"skeleton-item\" [style.--components-skeleton-text-width.%]=\"getRandomPercent()\"></span>\n\t}\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t@for (line of lines(); track $index) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t[style.--components-skeleton-text-width.%]=\"$last ? getRandomPercent() : getRandomPercent(98, 100)\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-header',\n\ttemplateUrl: './skeleton-header.component.html',\n\tstyleUrl: './skeleton-header.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonHeaderComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input(false, { transform: booleanAttribute });\n}\n","<header class=\"pageHeader skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t<div class=\"pageHeader-content\">\n\t\t<div class=\"pageHeader-content-title pr-u-flexGrow1\">\n\t\t\t<h1 class=\"pr-u-margin0 skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></h1>\n\t\t</div>\n\t\t<div class=\"pageHeader-content-actions\">\n\t\t\t<span class=\"pr-u-h1 skeleton-item\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"pageHeader-description\">\n\t\t<p class=\"pr-u-marginBlockEnd0 skeleton-item\" style=\"--components-skeleton-text-width: 70%\"></p>\n\t\t<p class=\"pr-u-marginBlockEnd0 skeleton-item\" style=\"--components-skeleton-text-width: 40%\"></p>\n\t</div>\n</header>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignIndexTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-index-table',\n\ttemplateUrl: './skeleton-index-table.component.html',\n\tstyleUrl: './skeleton-index-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonIndexTableComponent {\n\t/**\n\t * Skeleton only show in index table body\n\t */\n\treadonly tableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignIndexTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","@if (tableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<table class=\"indexTable mod-layoutFixed skeleton is-loading\" inert=\"inert\">\n\t\t<thead class=\"indexTable-head\">\n\t\t\t<tr class=\"indexTable-head-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<th class=\"indexTable-head-row-cell\" scope=\"col\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item mod-dark\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t</table>\n}\n<ng-template #tbody>\n\t<tbody class=\"indexTable-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"indexTable-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"indexTable-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-resource-card',\n\ttemplateUrl: './skeleton-resource-card.component.html',\n\tstyleUrl: './skeleton-resource-card.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonResourceCardComponent {\n\t/**\n\t * Defines the number of description lines in resource card\n\t */\n\tdescriptionLines = input(0, { transform: numberAttribute });\n\n\treadonly lines = computed(() => Array.from({ length: this.descriptionLines() }));\n\n\tgetRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","<div class=\"resourceCard skeleton is-loading\" inert=\"inert\">\n\t<div class=\"resourceCard-layout\">\n\t\t<div class=\"resourceCard-layout-header\">\n\t\t\t<h3 class=\"skeleton-item\" [style.--components-skeleton-text-width]=\"getRandomPercent()\"></h3>\n\t\t</div>\n\t\t@if (descriptionLines() > 0) {\n\t\t\t<div class=\"resourceCard-layout-content\">\n\t\t\t\t@for (line of lines(); track $index) {\n\t\t\t\t\t<span class=\"skeleton-item\" [style.--components-skeleton-text-width]=\"getRandomPercent(98, 100)\"></span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-table',\n\ttemplateUrl: './skeleton-table.component.html',\n\tstyleUrl: './skeleton-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonTableComponent {\n\t/**\n\t * Skeleton only show in table body\n\t */\n\treadonly tableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\n\treadonly randomPercent: string = `${Math.floor(Math.random() * (66 - 33) + 33).toString()}%`;\n}\n","@if (tableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<table class=\"table skeleton is-loading\" inert=\"inert\">\n\t\t<thead class=\"table-head\">\n\t\t\t<tr class=\"table-head-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<th class=\"table-head-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item mod-dark pr-u-bodyS\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"randomPercent\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t</table>\n}\n<ng-template #tbody>\n\t<tbody class=\"table-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"table-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"table-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"randomPercent\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-skeleton.mjs","sources":["../../../packages/ng/skeleton/skeleton-button/skeleton-button.component.ts","../../../packages/ng/skeleton/skeleton-button/skeleton-button.component.html","../../../packages/ng/skeleton/skeleton-data-table/skeleton-data-table.component.ts","../../../packages/ng/skeleton/skeleton-data-table/skeleton-data-table.component.html","../../../packages/ng/skeleton/skeleton-field/skeleton-field.component.ts","../../../packages/ng/skeleton/skeleton-field/skeleton-field.component.html","../../../packages/ng/skeleton/skeleton-header/skeleton-header.component.ts","../../../packages/ng/skeleton/skeleton-header/skeleton-header.component.html","../../../packages/ng/skeleton/skeleton-index-table/skeleton-index-table.component.ts","../../../packages/ng/skeleton/skeleton-index-table/skeleton-index-table.component.html","../../../packages/ng/skeleton/skeleton-resource-card/skeleton-resource-card.component.ts","../../../packages/ng/skeleton/skeleton-resource-card/skeleton-resource-card.component.html","../../../packages/ng/skeleton/skeleton-table/skeleton-table.component.ts","../../../packages/ng/skeleton/skeleton-table/skeleton-table.component.html","../../../packages/ng/skeleton/lucca-front-ng-skeleton.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-button',\n\ttemplateUrl: './skeleton-button.component.html',\n\tstyleUrl: './skeleton-button.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonButtonComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Changes the size of the skeleton button\n\t */\n\treadonly size = input<'XS' | 'S' | 'M'>();\n}\n","<div class=\"skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t<div class=\"button\" [class.mod-dark]=\"dark()\" [class]=\"size() ? `mod-${size()}` : null\">\n\t\t<span class=\"skeleton-item\" [class]=\"size() ? `pr-u-body${size()}` : null\"></span>\n\t</div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignDataTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-data-table',\n\ttemplateUrl: './skeleton-data-table.component.html',\n\tstyleUrl: './skeleton-data-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonDataTableComponent {\n\t/**\n\t * Skeleton only show in data table body\n\t */\n\treadonly dataTableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignDataTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","@if (dataTableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<div class=\"dataTableWrapper\">\n\t\t<table class=\"dataTable mod-layoutFixed skeleton is-loading\" inert=\"inert\">\n\t\t\t<thead class=\"dataTable-head\">\n\t\t\t\t<tr class=\"dataTable-head-row\">\n\t\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t\t<th class=\"dataTable-head-row-cell\" scope=\"col\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t\t</table>\n\t</div>\n}\n<ng-template #tbody>\n\t<tbody class=\"dataTable-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"dataTable-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"dataTable-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-field',\n\ttemplateUrl: './skeleton-field.component.html',\n\tstyleUrl: './skeleton-field.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonFieldComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input<boolean, boolean | `${boolean}`>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Hide the field label skeleton\n\t */\n\treadonly hiddenLabel = input<boolean, boolean | `${boolean}`>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of row\n\t */\n\treadonly rows = input<number, number | `${number}`>(1, { transform: numberAttribute });\n\n\treadonly lines = computed(() => Array.from({ length: this.rows() }));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","<div class=\"form-field skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t@if (!hiddenLabel()) {\n\t\t<span class=\"skeleton-item\" [style.--components-skeleton-text-width]=\"getRandomPercent()\"></span>\n\t}\n\t<div class=\"textField\">\n\t\t<div class=\"textField-input\">\n\t\t\t<span class=\"textField-input-value\">\n\t\t\t\t@for (line of lines(); track $index) {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"$last ? getRandomPercent() : getRandomPercent(98, 100)\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t</span>\n\t\t</div>\n\t</div>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-header',\n\ttemplateUrl: './skeleton-header.component.html',\n\tstyleUrl: './skeleton-header.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonHeaderComponent {\n\t/**\n\t * Applies dark color for skeleton\n\t */\n\treadonly dark = input(false, { transform: booleanAttribute });\n}\n","<header class=\"pageHeader skeleton is-loading\" [class.mod-dark]=\"dark()\" inert=\"inert\">\n\t<div class=\"pageHeader-content\">\n\t\t<div class=\"pageHeader-content-title pr-u-flexGrow1\">\n\t\t\t<h1 class=\"pr-u-margin0 skeleton-item\" style=\"--components-skeleton-text-width: 80%\"></h1>\n\t\t</div>\n\t\t<div class=\"pageHeader-content-actions\">\n\t\t\t<span class=\"pr-u-h1 skeleton-item\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"pageHeader-description\">\n\t\t<p class=\"pr-u-marginBlockEnd0 skeleton-item\" style=\"--components-skeleton-text-width: 70%\"></p>\n\t\t<p class=\"pr-u-marginBlockEnd0 skeleton-item\" style=\"--components-skeleton-text-width: 40%\"></p>\n\t</div>\n</header>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignIndexTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-index-table',\n\ttemplateUrl: './skeleton-index-table.component.html',\n\tstyleUrl: './skeleton-index-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonIndexTableComponent {\n\t/**\n\t * Skeleton only show in index table body\n\t */\n\treadonly tableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignIndexTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\n\treadonly getRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","@if (tableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<table class=\"indexTable mod-layoutFixed skeleton is-loading\" inert=\"inert\">\n\t\t<thead class=\"indexTable-head\">\n\t\t\t<tr class=\"indexTable-head-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<th class=\"indexTable-head-row-cell\" scope=\"col\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item mod-dark\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t</table>\n}\n<ng-template #tbody>\n\t<tbody class=\"indexTable-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"indexTable-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"indexTable-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"getRandomPercent()\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\n@Component({\n\tselector: 'lu-skeleton-resource-card',\n\ttemplateUrl: './skeleton-resource-card.component.html',\n\tstyleUrl: './skeleton-resource-card.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SkeletonResourceCardComponent {\n\t/**\n\t * Defines the number of description lines in resource card\n\t */\n\tdescriptionLines = input(0, { transform: numberAttribute });\n\n\treadonly lines = computed(() => Array.from({ length: this.descriptionLines() }));\n\n\tgetRandomPercent = (min: number = 33, max: number = 66): string => `${Math.floor(Math.random() * (max - min) + min).toString()}%`;\n}\n","<div class=\"resourceCard skeleton is-loading\" inert=\"inert\">\n\t<div class=\"resourceCard-layout\">\n\t\t<div class=\"resourceCard-layout-header\">\n\t\t\t<h3 class=\"skeleton-item\" [style.--components-skeleton-text-width]=\"getRandomPercent()\"></h3>\n\t\t</div>\n\t\t@if (descriptionLines() > 0) {\n\t\t\t<div class=\"resourceCard-layout-content\">\n\t\t\t\t@for (line of lines(); track $index) {\n\t\t\t\t\t<span class=\"skeleton-item\" [style.--components-skeleton-text-width]=\"getRandomPercent(98, 100)\"></span>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColAlignTable = 'start' | 'center' | 'end';\n\n@Component({\n\tselector: 'lu-skeleton-table',\n\ttemplateUrl: './skeleton-table.component.html',\n\tstyleUrl: './skeleton-table.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [NgTemplateOutlet],\n})\nexport class SkeletonTableComponent {\n\t/**\n\t * Skeleton only show in table body\n\t */\n\treadonly tableBodyOnly = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Defines the number of cols (5 by default)\n\t */\n\treadonly cols = input<number>(5);\n\n\treadonly colsAlign = input<Record<number, ColAlignTable>>({});\n\n\t/**\n\t * Defines the number of row (8 by default)\n\t */\n\treadonly rows = input<number>(8);\n\n\treadonly colsNumber = computed<unknown[]>(() => new Array(this.cols()));\n\treadonly rowsNumber = computed<unknown[]>(() => new Array(this.rows()));\n\n\treadonly randomPercent: string = `${Math.floor(Math.random() * (66 - 33) + 33).toString()}%`;\n}\n","@if (tableBodyOnly()) {\n\t<ng-container *ngTemplateOutlet=\"tbody\" />\n} @else {\n\t<table class=\"table skeleton is-loading\" inert=\"inert\">\n\t\t<thead class=\"table-head\">\n\t\t\t<tr class=\"table-head-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<th class=\"table-head-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item mod-dark pr-u-bodyS\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"randomPercent\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</th>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t</thead>\n\t\t<ng-container *ngTemplateOutlet=\"tbody\" />\n\t</table>\n}\n<ng-template #tbody>\n\t<tbody class=\"table-body\">\n\t\t@for (row of rowsNumber(); track row) {\n\t\t\t<tr class=\"table-body-row\">\n\t\t\t\t@for (col of colsNumber(); track col; let i = $index) {\n\t\t\t\t\t<td class=\"table-body-row-cell\">\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclass=\"skeleton-item\"\n\t\t\t\t\t\t\t[class.mod-alignRight]=\"colsAlign()[i] === 'end'\"\n\t\t\t\t\t\t\t[class.mod-alignCenter]=\"colsAlign()[i] === 'center'\"\n\t\t\t\t\t\t\t[style.--components-skeleton-text-width]=\"randomPercent\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t</td>\n\t\t\t\t}\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -169,6 +169,8 @@ class LuTooltipTriggerDirective {
169
169
  #zone;
170
170
  #injector;
171
171
  #destroyRef;
172
+ #previousTickContent;
173
+ #innerTextChange$;
172
174
  #hasEllipsis$;
173
175
  #hasEllipsis;
174
176
  #action;
@@ -197,6 +199,7 @@ class LuTooltipTriggerDirective {
197
199
  this.#zone = inject(NgZone, { optional: true });
198
200
  this.#injector = inject(Injector);
199
201
  this.#destroyRef = inject(DestroyRef);
202
+ this.#previousTickContent = this.#host.nativeElement.innerText;
200
203
  this.luTooltipInput = input('', { ...(ngDevMode ? { debugName: "luTooltipInput" } : {}), alias: 'luTooltip' });
201
204
  this.luTooltip = linkedSignal(() => this.luTooltipInput(), ...(ngDevMode ? [{ debugName: "luTooltip" }] : []));
202
205
  this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : {}), transform: numberAttribute });
@@ -217,12 +220,15 @@ class LuTooltipTriggerDirective {
217
220
  resizeObserver.disconnect();
218
221
  };
219
222
  });
223
+ this.#innerTextChange$ = new Subject();
220
224
  this.#hasEllipsis$ = combineLatest([
221
225
  toObservable(
222
226
  // 1. Group necessary inputs
223
227
  computed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() }))),
224
228
  // Resend resize events to trigger the check
225
229
  this.resize$.pipe(debounceTime(150)),
230
+ // Include content changes
231
+ this.#innerTextChange$,
226
232
  ]).pipe(
227
233
  // 2. Keep only necessary inputs
228
234
  filter$1(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),
@@ -272,6 +278,12 @@ class LuTooltipTriggerDirective {
272
278
  }
273
279
  });
274
280
  }
281
+ ngAfterContentChecked() {
282
+ if (this.#previousTickContent != this.#host.nativeElement.innerText) {
283
+ this.#innerTextChange$.next();
284
+ this.#previousTickContent = this.#host.nativeElement.innerText;
285
+ }
286
+ }
275
287
  ngOnDestroy() {
276
288
  this.closeTooltip();
277
289
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-tooltip.mjs","sources":["../../../packages/ng/tooltip/animation/tooltip.animation.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.html","../../../packages/ng/tooltip/trigger/ellipsis.ruler.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/ng/tooltip/tooltip.module.ts","../../../packages/ng/tooltip/lucca-front-ng-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'[attr.id]': 'id',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\n\treadonly id = signal<string>(null);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { filter, firstValueFrom, shareReplay, timer } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EllipsisRuler {\n\t// As EllipsisRuler is a singleton, we can use shareReplay so the first subscriber starts the timer and the last one stops it\n\t// The timer allows us to alternate between read and write phases\n\t#interval = timer(100, 100).pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n\t#readPhase = this.#interval.pipe(filter((n) => n % 2 === 0));\n\t#writePhase = this.#interval.pipe(filter((n) => n % 2 === 1));\n\n\t#document = inject(DOCUMENT);\n\treadonly parentMasked = this.#document.createElement('div');\n\n\tconstructor() {\n\t\tthis.parentMasked.classList.add('pr-u-mask');\n\t\tthis.parentMasked.setAttribute('aria-hidden', 'true');\n\t\tthis.#document.body.appendChild(this.parentMasked);\n\t}\n\n\t/**\n\t * Hacky af but let's explain everything\n\t * This method checks for ellipsis by cloning the node and checking its width against original element.\n\t *\n\t * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,\n\t * you'd get true while it should be false and vice-versa, because of rounding.\n\t *\n\t * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,\n\t * which we then compare with its current size.\n\t *\n\t * To avoid doing multiple reflow per check, we wait for the next microtask on each key step of the process:\n\t * - After computing element style\n\t * - After cloning the element and appending it to the DOM\n\t * - After computing the width of the cloned element\n\t * - After removing the cloned element from the DOM\n\t *\n\t * This way, we have 2 reflows per check, no matter how many elements are checked in a row.\n\t */\n\tasync hasEllipsis(element: HTMLElement): Promise<boolean> {\n\t\tlet elementStyle: CSSStyleDeclaration;\n\t\tlet bodyStyle: CSSStyleDeclaration;\n\n\t\tawait this.#readOperation(() => {\n\t\t\telementStyle = getComputedStyle(element);\n\t\t\tbodyStyle = getComputedStyle(document.body);\n\t\t});\n\n\t\tif (elementStyle.textOverflow !== 'ellipsis') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;\n\n\t\tconst fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(bodyStyle.fontSize.replace('px', ''))).toString() + 'rem';\n\n\t\tlet elementCloned: HTMLDivElement;\n\n\t\tawait this.#writeOperation(() => {\n\t\t\telementCloned = this.#document.createElement('div');\n\n\t\t\tObject.assign(elementCloned.style, {\n\t\t\t\tinlineSize: 'fit-content',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tvisibility: 'hidden',\n\t\t\t\tpadding,\n\t\t\t\tborderWidth,\n\t\t\t\tborderStyle,\n\t\t\t\tboxSizing,\n\t\t\t\tfontFamily,\n\t\t\t\tfontWeight,\n\t\t\t\tfontStyle,\n\t\t\t\tfontSize,\n\t\t\t});\n\n\t\t\tthis.parentMasked.appendChild(elementCloned);\n\n\t\t\telementCloned.innerHTML = element.innerHTML;\n\t\t});\n\n\t\t// To avoid multiple reflows, we wait for the next microtask before calculating the width\n\n\t\ttry {\n\t\t\tlet clonedElementWidth: number;\n\t\t\tlet elementWidth: number;\n\n\t\t\tawait this.#readOperation(() => {\n\t\t\t\tclonedElementWidth = elementCloned.getBoundingClientRect().width;\n\t\t\t\telementWidth = element.getBoundingClientRect().width;\n\t\t\t});\n\n\t\t\treturn clonedElementWidth > elementWidth;\n\t\t} catch {\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tawait this.#writeOperation(() => {\n\t\t\t\tthis.parentMasked.removeChild(elementCloned);\n\t\t\t});\n\t\t}\n\t}\n\n\t// To avoid multiple reflows, we wait for the next read phase before computing/reading element style\n\tasync #readOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#readPhase);\n\t\toperation();\n\t}\n\n\t// To avoid multiple reflows, we wait for the next write before inserting/removing the cloned element\n\tasync #writeOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#writePhase);\n\t\toperation();\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tNgZone,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isNotNil, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuPopoverPosition } from '@lucca-front/ng/popover';\nimport { combineLatest, Observable, startWith, switchMap, timer } from 'rxjs';\nimport { debounce, debounceTime, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { EllipsisRuler } from './ellipsis.ruler';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #renderer = inject(Renderer2);\n\treadonly #ruler = inject(EllipsisRuler);\n\treadonly #zone = inject(NgZone, { optional: true });\n\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\n\treadonly luTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly luTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipPosition = input<LuPopoverPosition>('above');\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#host);\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly resize$ = new Observable<void>((observer) => {\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tobserver.next();\n\t\t});\n\t\tresizeObserver.observe(this.#host.nativeElement);\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t});\n\n\treadonly #hasEllipsis$ = combineLatest([\n\t\ttoObservable(\n\t\t\t// 1. Group necessary inputs\n\t\t\tcomputed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() })),\n\t\t),\n\t\t// Resend resize events to trigger the check\n\t\tthis.resize$.pipe(debounceTime(150)),\n\t]).pipe(\n\t\t// 2. Keep only necessary inputs\n\t\tfilter(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),\n\t\t// 3. Check for ellipsis\n\t\tswitchMap(() => this.runOutsideZoneJS(() => this.#ruler.hasEllipsis(this.#host.nativeElement))),\n\t);\n\n\treadonly #hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous) => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.luTooltipDisabled()) {\n\t\t\t\treturn previous?.value;\n\t\t\t}\n\n\t\t\t// If not disabled, let's check for ellipsis if needed\n\t\t\tif (this.luTooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : previous.value;\n\t\t\t}\n\n\t\t\t// If it's not disabled and is not triggered based on ellipsis, just return true\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\t#effectRef?: EffectRef;\n\t#idEffectRef?: EffectRef;\n\n\tconstructor() {\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())),\n\t\t\t\ttap((event) => {\n\t\t\t\t\tif (event === 'open') {\n\t\t\t\t\t\tthis.openTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.luTooltipDisabled() && (!this.luTooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t}\n\n\tprivate openTooltip(): void {\n\t\t// If tooltip is already opened, don't do anything\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy: position,\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.luTooltip()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.luTooltip],\n\t\t\t\t(luTooltip) => {\n\t\t\t\t\tref.instance.content.set(luTooltip);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.luTooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tthis.#idEffectRef = ɵeffectWithDeps(\n\t\t\t[this.ariaDescribedBy],\n\t\t\t(ariaDescribedBy) => {\n\t\t\t\tref.instance.id.set(ariaDescribedBy);\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\n\t\t// On tooltip leave => trigger close\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\t// On tooltip enter => trigger open to keep it opened\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t\tthis.#idEffectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\tprivate runOutsideZoneJS<T>(callback: () => T): T {\n\t\treturn this.#zone ? this.#zone.runOutsideAngular(callback) : callback();\n\t}\n\n\t/**********************\n\t *\n\t * LEGACY STUFF TO HANDLE EXISTING POSITIONS\n\t *\n\t ***********************/\n\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.luTooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.luTooltipAnchor())\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ɵeffectWithDeps"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-tooltip.mjs","sources":["../../../packages/ng/tooltip/animation/tooltip.animation.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.ts","../../../packages/ng/tooltip/panel/tooltip-panel.component.html","../../../packages/ng/tooltip/trigger/ellipsis.ruler.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/ng/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/ng/tooltip/tooltip.module.ts","../../../packages/ng/tooltip/lucca-front-ng-tooltip.ts"],"sourcesContent":["import { trigger, state, style, animate, transition, AnimationTriggerMetadata } from '@angular/animations';\n\nexport const luTransformTooltip: AnimationTriggerMetadata = trigger('transformTooltip', [\n\tstate(\n\t\t'enter',\n\t\tstyle({\n\t\t\topacity: 1,\n\t\t\ttransform: `scale(1)`,\n\t\t}),\n\t),\n\ttransition('void => *', [\n\t\tstyle({\n\t\t\topacity: 0,\n\t\t\ttransform: `scale(0)`,\n\t\t}),\n\t\tanimate(`150ms cubic-bezier(0.25, 0.8, 0.25, 1)`),\n\t]),\n\ttransition('* => void', [animate('50ms 100ms linear', style({ opacity: 0 }))]),\n]);\n","import { HorizontalConnectionPos, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, DestroyRef, inject, signal } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { Subject } from 'rxjs';\n\n@Component({\n\tselector: 'lu-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\n\t\t'[attr.id]': 'id',\n\t\t'(mouseenter)': 'mouseEnter$.next()',\n\t\t'(mouseleave)': 'mouseLeave$.next()',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LuTooltipPanelComponent {\n\treadonly destroyRef = inject(DestroyRef);\n\n\treadonly mouseEnter$ = new Subject<void>();\n\treadonly mouseLeave$ = new Subject<void>();\n\n\treadonly content = signal<string | SafeHtml | null>(null);\n\n\treadonly id = signal<string>(null);\n\n\treadonly contentPositionClasses = signal<Record<string, boolean>>({});\n\n\tsetPanelPosition(posX: HorizontalConnectionPos, posY: VerticalConnectionPos): void {\n\t\tthis.contentPositionClasses.set({\n\t\t\t'is-before': posX === 'end',\n\t\t\t'is-after': posX === 'start',\n\t\t\t'is-above': posY === 'bottom',\n\t\t\t'is-below': posY === 'top',\n\t\t});\n\t}\n}\n","@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n","import { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { filter, firstValueFrom, shareReplay, timer } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EllipsisRuler {\n\t// As EllipsisRuler is a singleton, we can use shareReplay so the first subscriber starts the timer and the last one stops it\n\t// The timer allows us to alternate between read and write phases\n\t#interval = timer(100, 100).pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n\t#readPhase = this.#interval.pipe(filter((n) => n % 2 === 0));\n\t#writePhase = this.#interval.pipe(filter((n) => n % 2 === 1));\n\n\t#document = inject(DOCUMENT);\n\treadonly parentMasked = this.#document.createElement('div');\n\n\tconstructor() {\n\t\tthis.parentMasked.classList.add('pr-u-mask');\n\t\tthis.parentMasked.setAttribute('aria-hidden', 'true');\n\t\tthis.#document.body.appendChild(this.parentMasked);\n\t}\n\n\t/**\n\t * Hacky af but let's explain everything\n\t * This method checks for ellipsis by cloning the node and checking its width against original element.\n\t *\n\t * We used to do this using scrollWidth but the thing is, it's a rounded value. Sometimes,\n\t * you'd get true while it should be false and vice-versa, because of rounding.\n\t *\n\t * So we duplicate the properties we're interested in on the element to be tested to calculate its ideal size,\n\t * which we then compare with its current size.\n\t *\n\t * To avoid doing multiple reflow per check, we wait for the next microtask on each key step of the process:\n\t * - After computing element style\n\t * - After cloning the element and appending it to the DOM\n\t * - After computing the width of the cloned element\n\t * - After removing the cloned element from the DOM\n\t *\n\t * This way, we have 2 reflows per check, no matter how many elements are checked in a row.\n\t */\n\tasync hasEllipsis(element: HTMLElement): Promise<boolean> {\n\t\tlet elementStyle: CSSStyleDeclaration;\n\t\tlet bodyStyle: CSSStyleDeclaration;\n\n\t\tawait this.#readOperation(() => {\n\t\t\telementStyle = getComputedStyle(element);\n\t\t\tbodyStyle = getComputedStyle(document.body);\n\t\t});\n\n\t\tif (elementStyle.textOverflow !== 'ellipsis') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle } = elementStyle;\n\n\t\tconst fontSize = (Number(elementStyle.fontSize.replace('px', '')) / Number(bodyStyle.fontSize.replace('px', ''))).toString() + 'rem';\n\n\t\tlet elementCloned: HTMLDivElement;\n\n\t\tawait this.#writeOperation(() => {\n\t\t\telementCloned = this.#document.createElement('div');\n\n\t\t\tObject.assign(elementCloned.style, {\n\t\t\t\tinlineSize: 'fit-content',\n\t\t\t\twhiteSpace: 'nowrap',\n\t\t\t\tposition: 'absolute',\n\t\t\t\tvisibility: 'hidden',\n\t\t\t\tpadding,\n\t\t\t\tborderWidth,\n\t\t\t\tborderStyle,\n\t\t\t\tboxSizing,\n\t\t\t\tfontFamily,\n\t\t\t\tfontWeight,\n\t\t\t\tfontStyle,\n\t\t\t\tfontSize,\n\t\t\t});\n\n\t\t\tthis.parentMasked.appendChild(elementCloned);\n\n\t\t\telementCloned.innerHTML = element.innerHTML;\n\t\t});\n\n\t\t// To avoid multiple reflows, we wait for the next microtask before calculating the width\n\n\t\ttry {\n\t\t\tlet clonedElementWidth: number;\n\t\t\tlet elementWidth: number;\n\n\t\t\tawait this.#readOperation(() => {\n\t\t\t\tclonedElementWidth = elementCloned.getBoundingClientRect().width;\n\t\t\t\telementWidth = element.getBoundingClientRect().width;\n\t\t\t});\n\n\t\t\treturn clonedElementWidth > elementWidth;\n\t\t} catch {\n\t\t\treturn false;\n\t\t} finally {\n\t\t\tawait this.#writeOperation(() => {\n\t\t\t\tthis.parentMasked.removeChild(elementCloned);\n\t\t\t});\n\t\t}\n\t}\n\n\t// To avoid multiple reflows, we wait for the next read phase before computing/reading element style\n\tasync #readOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#readPhase);\n\t\toperation();\n\t}\n\n\t// To avoid multiple reflows, we wait for the next write before inserting/removing the cloned element\n\tasync #writeOperation(operation: () => void): Promise<void> {\n\t\tawait firstValueFrom(this.#writePhase);\n\t\toperation();\n\t}\n}\n","import {\n\tFlexibleConnectedPositionStrategy,\n\tFlexibleConnectedPositionStrategyOrigin,\n\tHorizontalConnectionPos,\n\tOriginConnectionPosition,\n\tOverlay,\n\tOverlayConnectionPosition,\n\tOverlayRef,\n\tVerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tAfterContentChecked,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tNgZone,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { isNotNil, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { LuPopoverPosition } from '@lucca-front/ng/popover';\nimport { combineLatest, Observable, startWith, Subject, switchMap, timer } from 'rxjs';\nimport { debounce, debounceTime, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { EllipsisRuler } from './ellipsis.ruler';\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\t'(mouseenter)': 'onMouseEnter()',\n\t\t'(mouseleave)': 'onMouseLeave()',\n\t\t'(focus)': 'onFocus()',\n\t\t'(blur)': 'onBlur()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy, AfterContentChecked {\n\treadonly #overlay = inject(Overlay);\n\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #renderer = inject(Renderer2);\n\treadonly #ruler = inject(EllipsisRuler);\n\treadonly #zone = inject(NgZone, { optional: true });\n\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\n\t#previousTickContent: string = this.#host.nativeElement.innerText;\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\n\treadonly luTooltipEnterDelay = input(300, { transform: numberAttribute });\n\n\treadonly luTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\n\treadonly luTooltipPosition = input<LuPopoverPosition>('above');\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#host);\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly resize$ = new Observable<void>((observer) => {\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tobserver.next();\n\t\t});\n\t\tresizeObserver.observe(this.#host.nativeElement);\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t});\n\n\treadonly #innerTextChange$ = new Subject<void>();\n\n\treadonly #hasEllipsis$ = combineLatest([\n\t\ttoObservable(\n\t\t\t// 1. Group necessary inputs\n\t\t\tcomputed(() => ({ whenEllipsis: this.luTooltipWhenEllipsis(), disabled: this.luTooltipDisabled() })),\n\t\t),\n\t\t// Resend resize events to trigger the check\n\t\tthis.resize$.pipe(debounceTime(150)),\n\t\t// Include content changes\n\t\tthis.#innerTextChange$,\n\t]).pipe(\n\t\t// 2. Keep only necessary inputs\n\t\tfilter(([{ whenEllipsis, disabled }]) => !disabled && whenEllipsis),\n\t\t// 3. Check for ellipsis\n\t\tswitchMap(() => this.runOutsideZoneJS(() => this.#ruler.hasEllipsis(this.#host.nativeElement))),\n\t);\n\n\treadonly #hasEllipsis = toSignal(this.#hasEllipsis$, { initialValue: false });\n\n\treadonly #action = signal<'open' | 'close' | null>(null);\n\treadonly #realAction = linkedSignal<'open' | 'close' | null, 'open' | 'close' | null>({\n\t\tsource: this.#action,\n\t\tcomputation: (action, previous) => {\n\t\t\tif (!action || action === 'close') {\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\t// We only filter open events because even if it's disabled while opened,\n\t\t\t// we want the tooltip to be able to close itself no matter what\n\t\t\tif (this.luTooltipDisabled()) {\n\t\t\t\treturn previous?.value;\n\t\t\t}\n\n\t\t\t// If not disabled, let's check for ellipsis if needed\n\t\t\tif (this.luTooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : previous.value;\n\t\t\t}\n\n\t\t\t// If it's not disabled and is not triggered based on ellipsis, just return true\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\tonMouseEnter() {\n\t\tthis.#action.set('open');\n\t}\n\n\tonMouseLeave() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonFocus() {\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\t#effectRef?: EffectRef;\n\t#idEffectRef?: EffectRef;\n\n\tconstructor() {\n\t\ttoObservable(this.#realAction)\n\t\t\t.pipe(\n\t\t\t\tfilter(isNotNil),\n\t\t\t\tdebounce((action) => timer(action === 'open' ? this.luTooltipEnterDelay() : this.luTooltipLeaveDelay())),\n\t\t\t\ttap((event) => {\n\t\t\t\t\tif (event === 'open') {\n\t\t\t\t\t\tthis.openTooltip();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.closeTooltip();\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\teffect(() => {\n\t\t\tif (!this.luTooltipDisabled() && (!this.luTooltipWhenEllipsis() || this.#hasEllipsis())) {\n\t\t\t\tthis.setAccessibilityProperties(0);\n\t\t\t} else {\n\t\t\t\tthis.setAccessibilityProperties(null);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterContentChecked(): void {\n\t\tif (this.#previousTickContent != this.#host.nativeElement.innerText) {\n\t\t\tthis.#innerTextChange$.next();\n\t\t\tthis.#previousTickContent = this.#host.nativeElement.innerText;\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t}\n\n\tprivate openTooltip(): void {\n\t\t// If tooltip is already opened, don't do anything\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tpositionStrategy: position,\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tposition.positionChanges\n\t\t\t.pipe(\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t\tmap(({ connectionPair }) => connectionPair),\n\t\t\t\tstartWith(position.positions[0]),\n\t\t\t)\n\t\t\t.subscribe(({ overlayX, overlayY }) => {\n\t\t\t\tref.instance.setPanelPosition(overlayX, overlayY);\n\t\t\t});\n\n\t\tif (this.luTooltip()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.luTooltip],\n\t\t\t\t(luTooltip) => {\n\t\t\t\t\tref.instance.content.set(luTooltip);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.luTooltipWhenEllipsis()) {\n\t\t\tref.instance.content.set(this.#host.nativeElement.innerText);\n\t\t} else {\n\t\t\tref.instance.content.set('');\n\t\t}\n\n\t\tthis.#idEffectRef = ɵeffectWithDeps(\n\t\t\t[this.ariaDescribedBy],\n\t\t\t(ariaDescribedBy) => {\n\t\t\t\tref.instance.id.set(ariaDescribedBy);\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\n\t\t// On tooltip leave => trigger close\n\t\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\n\t\t// On tooltip enter => trigger open to keep it opened\n\t\tref.instance.mouseEnter$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('open'));\n\t}\n\n\tprivate closeTooltip(): void {\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.detach();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t\tthis.#effectRef?.destroy();\n\t\tthis.#idEffectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (tabindex === null) {\n\t\t\tthis.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');\n\t\t\treturn;\n\t\t}\n\n\t\tconst tag = this.#host.nativeElement.tagName.toLowerCase();\n\t\tconst nativelyFocusableTags = ['a', 'button', 'input', 'select', 'textarea'];\n\t\tconst isNativelyFocusableTag = nativelyFocusableTags.includes(tag);\n\n\t\tconst hasATabIndex = this.#host.nativeElement.getAttribute('tabindex') !== null;\n\n\t\tif (!isNativelyFocusableTag && !hasATabIndex) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'tabindex', tabindex.toString());\n\t\t}\n\n\t\tif (!isNativelyFocusableTag && !this.luTooltipWhenEllipsis() && !this.luTooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\tprivate runOutsideZoneJS<T>(callback: () => T): T {\n\t\treturn this.#zone ? this.#zone.runOutsideAngular(callback) : callback();\n\t}\n\n\t/**********************\n\t *\n\t * LEGACY STUFF TO HANDLE EXISTING POSITIONS\n\t *\n\t ***********************/\n\n\tprivate legacyPositionBuilder(): FlexibleConnectedPositionStrategy {\n\t\tconst connectionPosition: OriginConnectionPosition = {\n\t\t\toriginX: 'start',\n\t\t\toriginY: 'top',\n\t\t};\n\n\t\t// Position\n\t\tconst position = this.luTooltipPosition();\n\t\tif (position === 'above') {\n\t\t\tconnectionPosition.originY = 'top';\n\t\t} else if (position === 'below') {\n\t\t\tconnectionPosition.originY = 'bottom';\n\t\t} else if (position === 'before') {\n\t\t\tconnectionPosition.originX = 'start';\n\t\t} else if (position === 'after') {\n\t\t\tconnectionPosition.originX = 'end';\n\t\t}\n\n\t\t// Alignment\n\t\tif (position === 'above' || position === 'below') {\n\t\t\tconnectionPosition.originX = 'center';\n\t\t} else {\n\t\t\tconnectionPosition.originY = 'center';\n\t\t}\n\n\t\tconst overlayPosition: OverlayConnectionPosition = {\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'top',\n\t\t};\n\n\t\tif (position === 'above' || position === 'below') {\n\t\t\toverlayPosition.overlayX = connectionPosition.originX;\n\t\t\toverlayPosition.overlayY = position === 'above' ? 'bottom' : 'top';\n\t\t} else {\n\t\t\toverlayPosition.overlayX = position === 'before' ? 'end' : 'start';\n\t\t\toverlayPosition.overlayY = connectionPosition.originY;\n\t\t}\n\n\t\treturn this.#overlay\n\t\t\t.position()\n\t\t\t.flexibleConnectedTo(this.luTooltipAnchor())\n\t\t\t.withPositions([\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: connectionPosition.originX,\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: overlayPosition.overlayX,\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: connectionPosition.originY,\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: overlayPosition.overlayY,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\toriginX: this.invertHorizontalPos(connectionPosition.originX),\n\t\t\t\t\toriginY: this.invertVerticalPos(connectionPosition.originY),\n\t\t\t\t\toverlayX: this.invertHorizontalPos(overlayPosition.overlayX),\n\t\t\t\t\toverlayY: this.invertVerticalPos(overlayPosition.overlayY),\n\t\t\t\t},\n\t\t\t]);\n\t}\n\n\tprivate invertVerticalPos(y: VerticalConnectionPos): VerticalConnectionPos {\n\t\tif (y === 'top') {\n\t\t\treturn 'bottom';\n\t\t} else if (y === 'bottom') {\n\t\t\treturn 'top';\n\t\t}\n\t\treturn y;\n\t}\n\n\tprivate invertHorizontalPos(x: HorizontalConnectionPos): HorizontalConnectionPos {\n\t\tif (x === 'end') {\n\t\t\treturn 'start';\n\t\t} else if (x === 'start') {\n\t\t\treturn 'end';\n\t\t}\n\t\treturn x;\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerDirective, OverlayModule],\n\texports: [LuTooltipTriggerDirective],\n})\nexport class LuTooltipTriggerModule {}\n","import { NgModule } from '@angular/core';\nimport { LuTooltipPanelComponent } from './panel/index';\nimport { LuTooltipTriggerModule } from './trigger/index';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective, OverlayModule, LuTooltipPanelComponent` instead\n */\n@NgModule({\n\timports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n\texports: [LuTooltipTriggerModule, LuTooltipPanelComponent],\n})\nexport class LuTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ɵeffectWithDeps"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/ng",
3
- "version": "21.1.0-rc.3",
3
+ "version": "21.1.0",
4
4
  "description": "A library of icons made by the team @Lucca",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,9 +27,9 @@
27
27
  "@angular/core": "^21.0.0",
28
28
  "@angular/cdk": "^21.0.0",
29
29
  "@angular/animations": "^21.0.0",
30
- "@lucca-front/icons": "21.1.0-rc.3",
31
- "@lucca-front/scss": "21.1.0-rc.3",
32
- "@lucca/prisme": "21.1.0-rc.3",
30
+ "@lucca-front/icons": "21.1.0",
31
+ "@lucca-front/scss": "21.1.0",
32
+ "@lucca/prisme": "21.1.0",
33
33
  "@types/dompurify": "^3.0.0",
34
34
  "isomorphic-dompurify": "^2.17.0",
35
35
  "date-fns": "^3.6.0",
@@ -59,7 +59,7 @@ function migrateHTMLFile(content) {
59
59
  });
60
60
  node.inputs.forEach((input) => {
61
61
  if (input.value instanceof lib_1.currentSchematicContext.angularCompiler.ASTWithSource) {
62
- const match = findURLMatch(input.value?.source || '');
62
+ const match = findURLMatch(input.value?.source?.replace('\'', '') || '');
63
63
  if (input.value?.source && match) {
64
64
  lib_1.currentSchematicContext.logSuccess(`Replacing ${input.value.source} with ${input.value.source.replace(match, REPLACE_MAP[match])}`);
65
65
  updates.push({
@@ -77,9 +77,17 @@ class HtmlAstVisitor {
77
77
  }
78
78
  }
79
79
  else if (node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstSwitchBlock) {
80
- node.cases.forEach((caseNode) => {
81
- this.visit(cb, caseNode.children, node);
82
- });
80
+ if ('groups' in node) {
81
+ node.groups.forEach((groupNode) => {
82
+ this.visit(cb, groupNode.children, node);
83
+ });
84
+ }
85
+ // TODO Remove when Angular 21 is no longer supported
86
+ if ('cases' in node) {
87
+ node.cases.forEach((caseNode) => {
88
+ this.visit(cb, caseNode.children, node);
89
+ });
90
+ }
83
91
  }
84
92
  else if (node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstDeferredBlock || node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstElement || node instanceof lf_schematic_context_1.currentSchematicContext.angularCompiler.TmplAstTemplate) {
85
93
  // Visit @defer and classic AST elements
@@ -2,15 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.shameScss = exports.stylesScss = void 0;
4
4
  exports.stylesScss = `
5
- $noCssVar: true;
5
+ // Import styles
6
+ @forward '@lucca-front/icons/src/main';
7
+ @forward '@lucca-front/scss/src/main';
8
+ @forward '@lucca-front/ng/src/main';
6
9
 
7
- @import '~@lucca-front/scss/src/main.overridable'
8
- , '~@lucca-front/ng/src/main.overridable.scss'
9
- , 'scss/shame';
10
-
11
- :root {
12
- @include generateCSSVarsFromTheme($theme);
13
- }
10
+ // Import SCSS components
11
+ // @forward '@lucca-front/scss/src/components/button';
14
12
  `;
15
13
  exports.shameScss = `// 'My room is not messy; it is an obstable course designed to keep me fit'
16
14
  // Put here the CSS which will need a refactor, or some code that you want to see in Lucca Front.
@@ -7,13 +7,13 @@ function ngAdd() {
7
7
  return (tree, context) => {
8
8
  context.addTask(new tasks_1.NodePackageInstallTask({ packageName: '@lucca-front/icons' }));
9
9
  context.addTask(new tasks_1.NodePackageInstallTask({ packageName: '@lucca-front/scss' }));
10
+ const angularJson = (0, tasks_2.getAngularJson)(tree);
11
+ const project = (0, tasks_2.getProject)(angularJson);
10
12
  // Add LF @import and init css vars
11
- (0, tasks_2.updateStylesScss)(tree);
13
+ (0, tasks_2.updateStylesScss)(tree, project);
12
14
  // Add empty shame file
13
- (0, tasks_2.createShameScss)(tree);
14
- // Copy default palette in scss/overrides/_palettes.override.scss
15
- (0, tasks_2.createPalettesOverrideScss)(tree);
15
+ (0, tasks_2.createShameScss)(tree, project);
16
16
  // Add stylePreprocessorOptions
17
- (0, tasks_2.updateAngularJson)(tree);
17
+ (0, tasks_2.updateAngularJson)(tree, project, angularJson);
18
18
  };
19
19
  }
@@ -1,31 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProject = getProject;
4
+ exports.getAngularJson = getAngularJson;
3
5
  exports.updateStylesScss = updateStylesScss;
4
6
  exports.updateAngularJson = updateAngularJson;
5
- exports.createPalettesOverrideScss = createPalettesOverrideScss;
6
7
  exports.createShameScss = createShameScss;
7
8
  const file_content_1 = require("./file-content");
8
9
  const files = {
9
- globalStyles: 'src/styles.scss',
10
- shameStyles: 'src/scss/_shame.scss',
11
- palettesOverride: 'src/scss/overrides/_palettes.override.scss',
10
+ globalStyles: 'styles.scss',
11
+ shameStyles: 'scss/_shame.scss',
12
12
  };
13
- function updateStylesScss(tree) {
14
- const existingLength = tree.read(files.globalStyles)?.toString().length ?? 0;
15
- const styleUpdateRecord = tree.beginUpdate(files.globalStyles).insertRight(existingLength, file_content_1.stylesScss);
13
+ function getProject(angularJson) {
14
+ const { defaultProject, projects } = angularJson;
15
+ const project = defaultProject ?? Object.keys(projects)[0];
16
+ return projects[project];
17
+ }
18
+ function getAngularJson(tree) {
19
+ return JSON.parse(tree.read('angular.json')?.toString() ?? '{}');
20
+ }
21
+ function updateStylesScss(tree, project) {
22
+ const path = `${project.sourceRoot ?? 'src'}/${files.globalStyles}`;
23
+ const existingLength = tree.read(path)?.toString().length ?? 0;
24
+ const styleUpdateRecord = tree.beginUpdate(path).insertRight(existingLength, file_content_1.stylesScss);
16
25
  tree.commitUpdate(styleUpdateRecord);
17
26
  }
18
- function updateAngularJson(tree) {
19
- const angularJson = JSON.parse(tree.read('angular.json')?.toString() ?? '{}');
20
- const { defaultProject, projects } = angularJson;
21
- projects[defaultProject].architect.build.options.stylePreprocessorOptions = {
22
- includePaths: ['src/scss/overrides', 'src/scss', 'node_modules/@lucca-front/ng/src'],
27
+ function updateAngularJson(tree, project, angularJson) {
28
+ project.architect.build.options.stylePreprocessorOptions = {
29
+ includePaths: ['src/scss', 'node_modules'],
23
30
  };
24
31
  tree.overwrite('angular.json', JSON.stringify(angularJson, undefined, ' ') + '\n');
25
32
  }
26
- function createPalettesOverrideScss(tree) {
27
- tree.create(files.palettesOverride, tree.read('node_modules/@lucca-front/scss/src/theming/_palettes.scss') ?? '');
28
- }
29
- function createShameScss(tree) {
30
- tree.create(files.shameStyles, file_content_1.shameScss);
33
+ function createShameScss(tree, project) {
34
+ const path = `${project.sourceRoot ?? 'src'}/${files.shameStyles}`;
35
+ tree.create(path, file_content_1.shameScss);
31
36
  }
@@ -143,7 +143,7 @@ type BaseLuDialogConfig<C, TData = LuDialogData<C>> = {
143
143
  /**
144
144
  * The size of the panel used for the dialog
145
145
  */
146
- size?: 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL' | 'fitContent' | `maxContent` | 'fullScreen';
146
+ size?: LuDialogSize;
147
147
  /**
148
148
  * Should it be a modal (default), a drawer? a drawer from bottom?
149
149
  */
@@ -154,6 +154,7 @@ type BaseLuDialogConfig<C, TData = LuDialogData<C>> = {
154
154
  panelClasses?: string[];
155
155
  };
156
156
  type LuDialogConfig<T, TData = LuDialogData<T>> = [TData] extends [never] ? Omit<BaseLuDialogConfig<T, TData>, 'data'> : BaseLuDialogConfig<T, TData>;
157
+ type LuDialogSize = 'XS' | 'S' | 'M' | 'L' | 'XL' | 'XXL' | 'fitContent' | `maxContent` | 'fullScreen';
157
158
 
158
159
  declare const DISMISSED_VALUE: {};
159
160
  declare class LuDialogRef<C = unknown, TData = LuDialogData<C>> {
@@ -185,10 +186,12 @@ declare class LuDialogRef<C = unknown, TData = LuDialogData<C>> {
185
186
  constructor(cdkRef: DialogRef<LuDialogResult<C> | typeof DISMISSED_VALUE, C>, config: LuDialogConfig<C, TData>);
186
187
  dismiss(): void;
187
188
  close(res: LuDialogResult<C>): void;
189
+ resize(size: LuDialogSize): void;
188
190
  }
189
191
  type LuDialogSelfRef<R> = {
190
192
  dismiss(): void;
191
193
  close(res: R): void;
194
+ resize(size: LuDialogSize): void;
192
195
  };
193
196
 
194
197
  declare function injectDialogData<TData>(): TData & ɵDialogDataFlag;
@@ -291,7 +294,7 @@ declare class DialogOpenDirective {
291
294
  cdkConfigOverride?: _angular_cdk_dialog.DialogConfig<unknown, unknown, _angular_cdk_portal.BasePortalOutlet>;
292
295
  canClose?: (comp: unknown) => boolean | rxjs.Observable<boolean>;
293
296
  canCloseWithBackdrop?: boolean;
294
- size?: "XS" | "S" | "M" | "L" | "XL" | "XXL" | "fitContent" | `maxContent` | "fullScreen";
297
+ size?: _lucca_front_ng_dialog.LuDialogSize;
295
298
  mode?: "default" | "drawer" | "drawer-from-bottom";
296
299
  panelClasses?: string[];
297
300
  }, "data">>;
@@ -301,4 +304,4 @@ declare class DialogOpenDirective {
301
304
  }
302
305
 
303
306
  export { DIALOG_ROUTE_CLOSE_TRIGGER, DIALOG_ROUTE_CONFIG, DIALOG_ROUTE_DISMISS_TRIGGER, DialogCloseDirective, DialogComponent, DialogContentComponent, DialogDismissDirective, DialogFooterComponent, DialogHeaderAction, DialogHeaderComponent, DialogOpenDirective, DialogRoutingContainerComponent, LU_DIALOG_HEADER_TRANSLATIONS, LuDialogRef, LuDialogService, LuccaDialogRoutingReuseStrategy, configureLuDialog, createDialogRoute, defaultOnClosedFn, dialogLazyRouteFactory, dialogRouteFactory, injectDialogData, injectDialogRef, luDialogHeaderTranslations, provideDialogRoutingReuseStrategy, provideLuDialog };
304
- export type { DialogFactoryConfig, DialogFactoryResult, DialogFactoryResultOptions, DialogRouteCloseTrigger, DialogRouteConfig, DialogRouteDialogConfig, DialogRouteDismissTrigger, LuDialogConfig, LuDialogData, LuDialogHeaderTranslations, LuDialogResult, LuDialogSelfRef, ɵDialogDataFlag, ɵDialogResultFlag };
307
+ export type { DialogFactoryConfig, DialogFactoryResult, DialogFactoryResultOptions, DialogRouteCloseTrigger, DialogRouteConfig, DialogRouteDialogConfig, DialogRouteDismissTrigger, LuDialogConfig, LuDialogData, LuDialogHeaderTranslations, LuDialogResult, LuDialogSelfRef, LuDialogSize, ɵDialogDataFlag, ɵDialogResultFlag };
@@ -74,10 +74,10 @@ declare class FormFieldComponent implements OnDestroy, DoCheck {
74
74
  * Max amount of characters allowed, defaults to 0, which means hidden, no maximum
75
75
  */
76
76
  readonly counter: _angular_core.InputSignal<number>;
77
+ readonly contentLength: _angular_core.WritableSignal<number>;
77
78
  readonly presentation: _angular_core.InputSignalWithTransform<boolean, unknown>;
78
79
  readonly presentationMode: _angular_core.Signal<boolean>;
79
80
  readonly presentationDisplayTpl: _angular_core.WritableSignal<TemplateRef<unknown>>;
80
- get contentLength(): number;
81
81
  addInput(input: InputDirective): void;
82
82
  get inputs(): InputDirective[];
83
83
  id: _angular_core.WritableSignal<string>;
@@ -132,8 +132,9 @@ declare class ɵPresentationDisplayDefaultDirective {
132
132
 
133
133
  declare class DataPresentationComponent {
134
134
  readonly label: _angular_core.InputSignal<PortalContent>;
135
+ readonly noValue: _angular_core.InputSignalWithTransform<boolean, unknown>;
135
136
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataPresentationComponent, never>;
136
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataPresentationComponent, "lu-data-presentation", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
137
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DataPresentationComponent, "lu-data-presentation", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "noValue": { "alias": "noValue"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
137
138
  }
138
139
 
139
140
  export { DataPresentationComponent, FORM_FIELD_INSTANCE, FormFieldComponent, INPUT_FRAMED_INSTANCE, InputDirective, InputFramedComponent, LU_FORM_FIELD_TRANSLATIONS, PresentationDisplayDirective, luFormFieldTranslations, ɵPresentationDisplayDefaultDirective };
@@ -307,13 +307,15 @@ declare class ColorInputComponent {
307
307
  intl: _angular_core.InputSignalWithTransform<LuColorLabel, Partial<LuColorLabel>>;
308
308
  mouseHighlighted: _angular_core.WritableSignal<string>;
309
309
  keyboardHighlighted: _angular_core.WritableSignal<string>;
310
- highlighted: _angular_core.Signal<string>;
310
+ highlighted: Signal<string>;
311
311
  clue: _angular_core.WritableSignal<string>;
312
312
  colors: _angular_core.InputSignal<ColorOption[]>;
313
313
  clearable: _angular_core.InputSignalWithTransform<boolean, unknown>;
314
314
  compact: _angular_core.InputSignalWithTransform<boolean, unknown>;
315
315
  ngControl: _angular_forms.NgModel | _angular_forms.FormControlDirective | _angular_forms.FormControlName;
316
- filteredColors: _angular_core.Signal<ColorOption[]>;
316
+ currentColorPresentation: Signal<ColorOption | null>;
317
+ constructor();
318
+ filteredColors: Signal<ColorOption[]>;
317
319
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ColorInputComponent, never>;
318
320
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ColorInputComponent, "lu-color-input", never, { "intl": { "alias": "intl"; "required": false; "isSignal": true; }; "colors": { "alias": "colors"; "required": true; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof NoopValueAccessorDirective; inputs: {}; outputs: {}; }]>;
319
321
  }