@lucca/prisme 22.0.5-rc.1 → 22.0.6-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-prisme-icon.mjs.map +1 -1
- package/fesm2022/lucca-prisme-numeric-badge.mjs +1 -1
- package/fesm2022/lucca-prisme-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-prisme-tag.mjs +1 -1
- package/fesm2022/lucca-prisme-tag.mjs.map +1 -1
- package/fesm2022/lucca-prisme-tooltip.mjs +124 -54
- package/fesm2022/lucca-prisme-tooltip.mjs.map +1 -1
- package/package.json +3 -3
- package/types/lucca-prisme-icon.d.ts +1 -1
- package/types/lucca-prisme-tooltip.d.ts +4 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-prisme-icon.mjs","sources":["../../../packages/prisme/icon/icon.type.ts","../../../packages/prisme/icon/icon.component.ts","../../../packages/prisme/icon/icon.component.html","../../../packages/prisme/icon/icons.ts","../../../packages/prisme/icon/lucca-prisme-icon.ts"],"sourcesContent":["/**\n * Available IconComponent types\n */\n\nexport const ICON_SIZE = ['XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL'] as const;\nexport type IconSize = (typeof ICON_SIZE)[number];\n\nexport const ICON_COLOR = ['product', 'error', 'warning', 'success', 'light', 'placeholder', 'inherit'] as const;\nexport type IconColor = (typeof ICON_COLOR)[number];\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { IconColor, IconSize } from './icon.type';\nimport type { LuccaIcon } from './icons';\n\n@Component({\n\tselector: 'lu-icon, pr-icon',\n\timports: [NgClass],\n\ttemplateUrl: './icon.component.html',\n\tstyleUrl: './icon.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent {\n\t/**\n\t * Defines icon to display\n\t */\n\treadonly icon = input.required<LuccaIcon>();\n\n\t/**\n\t * Information conveyed by the screen reader\n\t */\n\treadonly alt = input<string>();\n\n\t/**\n\t * Which size should the icon be? XXS to XXL\n\t */\n\treadonly size = input<IconSize>();\n\n\t/**\n\t * Changes the color of the icon (inherit by default)\n\t */\n\treadonly color = input<IconColor>('inherit');\n\n\t/**\n\t * Display icon in AI mode\n\t */\n\treadonly AI = input<boolean, boolean | `${boolean}` | ''>(false, { transform: booleanAttribute });\n\n\treadonly iconClasses = computed(() => {\n\t\tconst size = this.size();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t};\n\t});\n}\n","<span\n\taria-hidden=\"true\"\n\t[class.mod-AI]=\"AI()\"\n\tclass=\"lucca-icon icon-{{ icon() }} icon-color-{{ color() }}\"\n\t[ngClass]=\"iconClasses()\"\n></span>\n@if (alt()) {\n\t<span class=\"pr-u-mask\">{{ alt() }}</span>\n}\n","// *******************************************\n// *** THIS FILE IS GENERATED, DO NOT EDIT ***\n// *** The generator is update-icons.js\t\t ***\n// *******************************************\n\nexport type LuccaIcon =\n\t| 'app'\n\t| 'apps'\n\t| 'nineTiles'\n\t| 'mosaic'\n\t| 'tiles'\n\t| 'appWidget'\n\t| 'arrowBackspace'\n\t| 'arrowBackward'\n\t| 'backward'\n\t| 'arrowBottom'\n\t| 'arrowFullSouth'\n\t| 'arrowBottomLeft'\n\t| 'arrowBottomRight'\n\t| 'arrowCenterReduce'\n\t| 'arrowChevronBottom'\n\t| 'arrowSouth'\n\t| 'southArrow'\n\t| 'southThinArrow'\n\t| 'chevronSouth'\n\t| 'chevronBottom'\n\t| 'arrowChevronLeft'\n\t| 'arrowWest'\n\t| 'westArrow'\n\t| 'westThinArrow'\n\t| 'chevronWest'\n\t| 'chevronLeft'\n\t| 'arrowChevronRight'\n\t| 'arrowEast'\n\t| 'eastArrow'\n\t| 'eastThinArrow'\n\t| 'chevronEast'\n\t| 'chevronRight'\n\t| 'arrowChevronTop'\n\t| 'arrowNorth'\n\t| 'northArrow'\n\t| 'northThinArrow'\n\t| 'chevronNorth'\n\t| 'chevronTop'\n\t| 'arrowCorner'\n\t| 'distribute'\n\t| 'arrowCornerExpand'\n\t| 'arrowCurvedDownRight'\n\t| 'arrowDownload'\n\t| 'download'\n\t| 'arrowExternal'\n\t| 'outside'\n\t| 'arrowForward'\n\t| 'arrowDouble'\n\t| 'forward'\n\t| 'arrowLeft'\n\t| 'arrowFullWest'\n\t| 'arrowLineBottom'\n\t| 'arrowLineTop'\n\t| 'arrowLogin'\n\t| 'login'\n\t| 'arrowLogout'\n\t| 'logout'\n\t| 'arrowOppositeLeftRight'\n\t| 'arrowOppositeHorizontal'\n\t| 'swap'\n\t| 'arrowOppositeRightLeft'\n\t| 'arrowOppositeTopBottom'\n\t| 'arrowOppositeVertical'\n\t| 'creditDebit'\n\t| 'arrowRedo'\n\t| 'arrowReply'\n\t| 'reply'\n\t| 'arrowReset'\n\t| 'refresh'\n\t| 'update'\n\t| 'arrowRight'\n\t| 'arrowFullEast'\n\t| 'arrowSync'\n\t| 'sync'\n\t| 'arrowSyncStrikethrough'\n\t| 'syncDisabled'\n\t| 'arrowTop'\n\t| 'arrowFullNorth'\n\t| 'arrowTopLeft'\n\t| 'arrowTopRight'\n\t| 'arrowUndo'\n\t| 'arrowUnfoldLess'\n\t| 'collapse'\n\t| 'arrowUnfoldMore'\n\t| 'expand'\n\t| 'arrowUpload'\n\t| 'upload'\n\t| 'cloudUpload'\n\t| 'bell'\n\t| 'notification'\n\t| 'bellStrikethrough'\n\t| 'book'\n\t| 'bookmark'\n\t| 'bookmarkFilled'\n\t| 'boxArchive'\n\t| 'archive'\n\t| 'boxUnarchive'\n\t| 'unarchive'\n\t| 'branch'\n\t| 'bubbleAnswer'\n\t| 'answer'\n\t| 'bubbleConversation'\n\t| 'messenger'\n\t| 'bubbleSpeech'\n\t| 'chat'\n\t| 'talk'\n\t| 'dialog'\n\t| 'bubbleSpeechStrikethrough'\n\t| 'bubbleStars'\n\t| 'buildingCompany'\n\t| 'building'\n\t| 'establishment'\n\t| 'buildingHouse'\n\t| 'house'\n\t| 'home'\n\t| 'buildingHouseFilled'\n\t| 'houseFilled'\n\t| 'homeFill'\n\t| 'buildingHouseStarred'\n\t| 'houseStarred'\n\t| 'homeStarred'\n\t| 'buildingStore'\n\t| 'store'\n\t| 'bulb'\n\t| 'lightBulb'\n\t| 'calendarChecked'\n\t| 'calendarDate'\n\t| 'calendar'\n\t| 'planning'\n\t| 'calendarEdit'\n\t| 'planningEdit'\n\t| 'calendarPlanning'\n\t| 'payPeriod'\n\t| 'calendarSettings'\n\t| 'planningManage'\n\t| 'calendarStrikethrough'\n\t| 'calendarOff'\n\t| 'capCrown'\n\t| 'crown'\n\t| 'capCrownFilled'\n\t| 'capGraduate'\n\t| 'graduate'\n\t| 'school'\n\t| 'certificationFailed'\n\t| 'certifKo'\n\t| 'certificationSuccess'\n\t| 'certifOk'\n\t| 'certificationWaiting'\n\t| 'certifWaiting'\n\t| 'chartDonut'\n\t| 'donut'\n\t| 'donutChart'\n\t| 'chartFlow'\n\t| 'familyTree'\n\t| 'orgTree'\n\t| 'chartHorizontalBar'\n\t| 'horizontalBarChart'\n\t| 'chartLevels'\n\t| 'level'\n\t| 'chartPie'\n\t| 'dashboard'\n\t| 'chartSpider'\n\t| 'chartTree'\n\t| 'chartVerticalBar'\n\t| 'analytics'\n\t| 'charts'\n\t| 'clipboard'\n\t| 'paste'\n\t| 'completion'\n\t| 'cornersFocus'\n\t| 'cornersFullscreenExit'\n\t| 'fullscreenExit'\n\t| 'cornersFullscreenOpen'\n\t| 'fullscreen'\n\t| 'dataTable'\n\t| 'table'\n\t| 'database'\n\t| 'databaseArrow'\n\t| 'apiSync'\n\t| 'deviceCamera'\n\t| 'camera'\n\t| 'deviceComputer'\n\t| 'computer'\n\t| 'deviceLaptop'\n\t| 'laptop'\n\t| 'deviceMobile'\n\t| 'deviceMouse'\n\t| 'computerMouse'\n\t| 'devicePrinter'\n\t| 'print'\n\t| 'deviceTablet'\n\t| 'deviceVideo'\n\t| 'dotsDrag'\n\t| 'drag'\n\t| 'emojiSmile'\n\t| 'eye'\n\t| 'watch'\n\t| 'eyeStrikethrough'\n\t| 'unwatch'\n\t| 'fileContract'\n\t| 'contract'\n\t| 'fileCopy'\n\t| 'copy'\n\t| 'fileDocument'\n\t| 'file'\n\t| 'files'\n\t| 'fileExport'\n\t| 'fileFolder'\n\t| 'folder'\n\t| 'fileImport'\n\t| 'importDirty'\n\t| 'importPristine'\n\t| 'filePlus'\n\t| 'fileSign'\n\t| 'sign'\n\t| 'filtersDescending'\n\t| 'filterAbstract'\n\t| 'filtersFunnel'\n\t| 'funnel'\n\t| 'filter'\n\t| 'filtersSort'\n\t| 'sort'\n\t| 'reorder'\n\t| 'flag'\n\t| 'floppyDiskSave'\n\t| 'save'\n\t| 'foodBirthdayCake'\n\t| 'birthday'\n\t| 'foodBobun'\n\t| 'lunchAlternative'\n\t| 'foodBurger'\n\t| 'lunch'\n\t| 'foodChefHat'\n\t| 'restaurant'\n\t| 'foodClocheDish'\n\t| 'diner'\n\t| 'foodCocktail'\n\t| 'drink'\n\t| 'foodCoffee'\n\t| 'coffee'\n\t| 'breaktime'\n\t| 'foodCroissant'\n\t| 'breakfast'\n\t| 'foodCutlery'\n\t| 'meal'\n\t| 'foodSandwich'\n\t| 'snack'\n\t| 'formatBulletedList'\n\t| 'list'\n\t| 'formatClipperAttachment'\n\t| 'attach'\n\t| 'formatCornerUpLeft'\n\t| 'formatUndo'\n\t| 'formatCornerUpRight'\n\t| 'formatRedo'\n\t| 'formatLink'\n\t| 'formatNumberedList'\n\t| 'formatListNb'\n\t| 'formatText'\n\t| 'formatJustify'\n\t| 'formatTextBold'\n\t| 'formatBold'\n\t| 'formatTextClear'\n\t| 'formatClear'\n\t| 'formatTextItalic'\n\t| 'formatItalic'\n\t| 'formatTextSize'\n\t| 'formatSize'\n\t| 'formatTextStrikethrough'\n\t| 'formatStrikethrough'\n\t| 'formatTextUnderline'\n\t| 'formatUnderlined'\n\t| 'formatUnlink'\n\t| 'unlink'\n\t| 'gift'\n\t| 'present'\n\t| 'heart'\n\t| 'heartFilled'\n\t| 'heartStrikethrough'\n\t| 'brokenHeart'\n\t| 'hotelBed'\n\t| 'bed'\n\t| 'hotel'\n\t| 'hotelHanger'\n\t| 'hanger'\n\t| 'hotelIron'\n\t| 'iron'\n\t| 'pressing'\n\t| 'hotelLuggage'\n\t| 'luggage'\n\t| 'jigsawPuzzle'\n\t| 'puzzle'\n\t| 'journey'\n\t| 'milestone'\n\t| 'jumpingCc'\n\t| 'lucca'\n\t| 'laboratoryTestFlask'\n\t| 'test'\n\t| 'layers'\n\t| 'floor'\n\t| 'listChecked'\n\t| 'listChecklist'\n\t| 'listTodo'\n\t| 'listMultipleChoices'\n\t| 'lockClose'\n\t| 'lock'\n\t| 'lockKey'\n\t| 'key'\n\t| 'lockOpen'\n\t| 'unlock'\n\t| 'mailEnvelope'\n\t| 'mail'\n\t| 'mailMailbox'\n\t| 'mailbox'\n\t| 'stamp'\n\t| 'postage'\n\t| 'mailPaperPlane'\n\t| 'send'\n\t| 'mapGlobe'\n\t| 'globe'\n\t| 'mapLocation'\n\t| 'location'\n\t| 'mapPin'\n\t| 'pin'\n\t| 'mapPlan'\n\t| 'mapTripStep'\n\t| 'mathsDivide'\n\t| 'divide'\n\t| 'mathsEquals'\n\t| 'mathsMinus'\n\t| 'minus'\n\t| 'partial'\n\t| 'minimize'\n\t| 'mathsMultiplicate'\n\t| 'close'\n\t| 'thinCross'\n\t| 'cross'\n\t| 'crossBold'\n\t| 'mathsNotEqual'\n\t| 'mathsPlus'\n\t| 'plus'\n\t| 'plusBold'\n\t| 'medicalDoctor'\n\t| 'menuBurger'\n\t| 'menu'\n\t| 'hamburgerMenu'\n\t| 'menuDots'\n\t| 'menuEllipsis'\n\t| 'ellipsis'\n\t| 'moneyBag'\n\t| 'moneybag'\n\t| 'moneyBagStrikethrough'\n\t| 'noMoney'\n\t| 'moneyBankImport'\n\t| 'moneyBanknoteStrikethrough'\n\t| 'moneyBill'\n\t| 'bill'\n\t| 'moneyBuildingBank'\n\t| 'bank'\n\t| 'moneyCardCheck'\n\t| 'moneyCardImport'\n\t| 'importCb'\n\t| 'moneyCheck'\n\t| 'moneyCoins'\n\t| 'money'\n\t| 'payment'\n\t| 'moneyCurrencyDollar'\n\t| 'dollar'\n\t| 'moneyCurrencyEuro'\n\t| 'euro'\n\t| 'moneyIban'\n\t| 'moneyPaymentCard'\n\t| 'bankingCard'\n\t| 'moneyPaymentCards'\n\t| 'moneyPiggyBank'\n\t| 'piggyBank'\n\t| 'moneyShoppingBag'\n\t| 'moneyWallet'\n\t| 'wallet'\n\t| 'officeBriefcase'\n\t| 'officeChair'\n\t| 'chair'\n\t| 'officeCompass'\n\t| 'compass'\n\t| 'officeElectricalPlug'\n\t| 'officeFirstAid'\n\t| 'officeMicrophone'\n\t| 'officePen'\n\t| 'edit'\n\t| 'editMini'\n\t| 'officePenStar'\n\t| 'officePenWriting'\n\t| 'editWrite'\n\t| 'editFrame'\n\t| 'officePhone'\n\t| 'telephone'\n\t| 'officeScissors'\n\t| 'cut'\n\t| 'officeSupplies'\n\t| 'supplies'\n\t| 'peopleAccessibility'\n\t| 'peopleAdd'\n\t| 'userAdd'\n\t| 'adduser'\n\t| 'peopleArrowUp'\n\t| 'peopleEdit'\n\t| 'peopleFolder'\n\t| 'peopleGroup'\n\t| 'userGroup'\n\t| 'group'\n\t| 'peopleHouse'\n\t| 'peopleId'\n\t| 'identityCard'\n\t| 'userFile'\n\t| 'dossierRh'\n\t| 'peopleLocked'\n\t| 'userRoles'\n\t| 'peoplePerson'\n\t| 'user'\n\t| 'face'\n\t| 'peopleRemove'\n\t| 'userRemove'\n\t| 'peopleSwitch'\n\t| 'send2user'\n\t| 'userSendTo'\n\t| 'peopleTeacher'\n\t| 'teacher'\n\t| 'pictureGallery'\n\t| 'gallery'\n\t| 'pictureImage'\n\t| 'image'\n\t| 'picturePalette'\n\t| 'palette'\n\t| 'playerPauseCircle'\n\t| 'pause'\n\t| 'playerPlay'\n\t| 'playFull'\n\t| 'playerPlayCircle'\n\t| 'play'\n\t| 'playerRecording'\n\t| 'playerStopCircle'\n\t| 'stop'\n\t| 'priceTag'\n\t| 'pricetag'\n\t| 'priorityHigh'\n\t| 'high'\n\t| 'priorityHigher'\n\t| 'higher'\n\t| 'priorityHighest'\n\t| 'highest'\n\t| 'priorityLow'\n\t| 'low'\n\t| 'priorityLower'\n\t| 'lower'\n\t| 'priorityLowest'\n\t| 'lowest'\n\t| 'priorityMedium'\n\t| 'medium'\n\t| 'rotationLeft'\n\t| 'rotate'\n\t| 'rotationRight'\n\t| 'rotateRight'\n\t| 'searchMagnifyingGlass'\n\t| 'search'\n\t| 'searchZoomIn'\n\t| 'searchZoomOut'\n\t| 'settingsEqualizer'\n\t| 'sliders'\n\t| 'settingsGear'\n\t| 'settings'\n\t| 'settingsTools'\n\t| 'tools'\n\t| 'share'\n\t| 'signAt'\n\t| 'signBan'\n\t| 'forbidden'\n\t| 'signCancel'\n\t| 'cancel'\n\t| 'signCheckbox'\n\t| 'signClose'\n\t| 'signConfirm'\n\t| 'confirm'\n\t| 'tick'\n\t| 'tickThin'\n\t| 'tickBold'\n\t| 'signConstruction'\n\t| 'build'\n\t| 'signDecimal'\n\t| 'signDiscount'\n\t| 'discount'\n\t| 'signError'\n\t| 'error'\n\t| 'signHelp'\n\t| 'help'\n\t| 'helpOutline'\n\t| 'signInfo'\n\t| 'info'\n\t| 'signParking'\n\t| 'parking'\n\t| 'signRating'\n\t| 'signShieldCancel'\n\t| 'signShieldError'\n\t| 'signShieldSuccess'\n\t| 'signShieldWarning'\n\t| 'signSimpleChoice'\n\t| 'signSuccess'\n\t| 'success'\n\t| 'signTag'\n\t| 'signTranslation'\n\t| 'signWarning'\n\t| 'warning'\n\t| 'signWebhook'\n\t| 'soundMegaphone'\n\t| 'star'\n\t| 'unstared'\n\t| 'starFilled'\n\t| 'target'\n\t| 'thumbDown'\n\t| 'thumbDownFilled'\n\t| 'thumbUp'\n\t| 'thumbUpFilled'\n\t| 'thumbnail'\n\t| 'timeAlarm'\n\t| 'alarm'\n\t| 'timeClock'\n\t| 'clock'\n\t| 'timeFuture'\n\t| 'postpone'\n\t| 'timeHourglass'\n\t| 'timer'\n\t| 'timePast'\n\t| 'history'\n\t| 'timeTimer'\n\t| 'chronoOn'\n\t| 'timeTimerStrikethrough'\n\t| 'overplanned'\n\t| 'timeTimesheet'\n\t| 'timesheet'\n\t| 'transportBus'\n\t| 'bus'\n\t| 'transportCar'\n\t| 'car'\n\t| 'transportCarElectric'\n\t| 'transportCarwashStation'\n\t| 'cleanCar'\n\t| 'transportGazStation'\n\t| 'gasoline'\n\t| 'transportMotocycle'\n\t| 'transportMotocycleElectric'\n\t| 'transportPlane'\n\t| 'plane'\n\t| 'transportRocket'\n\t| 'rocket'\n\t| 'transportScooter'\n\t| 'transportScooterElectric'\n\t| 'transportSpeedometer'\n\t| 'speedometer'\n\t| 'mileage'\n\t| 'transportSubway'\n\t| 'subway'\n\t| 'transportTaxi'\n\t| 'taxi'\n\t| 'transportToll'\n\t| 'toll'\n\t| 'tollDollar'\n\t| 'tollEuro'\n\t| 'transportTrain'\n\t| 'train'\n\t| 'transportTruck'\n\t| 'truck'\n\t| 'trashDelete'\n\t| 'trash'\n\t| 'trendingGrowth'\n\t| 'evolution'\n\t| 'trendingLoss'\n\t| 'evolutionDown'\n\t| 'weatherCloudy'\n\t| 'weatherLightning'\n\t| 'weatherStars'\n\t| 'weatherStormy'\n\t| 'weatherStorm'\n\t| 'weatherSunny'\n\t| 'weatherSun'\n\t| 'weight'\n\t| 'window'\n\t| 'windowAside'\n\t| 'windowAsideLarge'\n\t| 'windowCornerBottom'\n\t| 'windowCornerTop'\n\t| 'windowSplit';\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-prisme-icon.mjs","sources":["../../../packages/prisme/icon/icon.type.ts","../../../packages/prisme/icon/icon.component.ts","../../../packages/prisme/icon/icon.component.html","../../../packages/prisme/icon/icons.ts","../../../packages/prisme/icon/lucca-prisme-icon.ts"],"sourcesContent":["/**\n * Available IconComponent types\n */\n\nexport const ICON_SIZE = ['XXS', 'XS', 'S', 'M', 'L', 'XL', 'XXL'] as const;\nexport type IconSize = (typeof ICON_SIZE)[number];\n\nexport const ICON_COLOR = ['product', 'error', 'warning', 'success', 'light', 'placeholder', 'inherit'] as const;\nexport type IconColor = (typeof ICON_COLOR)[number];\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { IconColor, IconSize } from './icon.type';\nimport type { LuccaIcon } from './icons';\n\n@Component({\n\tselector: 'lu-icon, pr-icon',\n\timports: [NgClass],\n\ttemplateUrl: './icon.component.html',\n\tstyleUrl: './icon.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent {\n\t/**\n\t * Defines icon to display\n\t */\n\treadonly icon = input.required<LuccaIcon>();\n\n\t/**\n\t * Information conveyed by the screen reader\n\t */\n\treadonly alt = input<string>();\n\n\t/**\n\t * Which size should the icon be? XXS to XXL\n\t */\n\treadonly size = input<IconSize>();\n\n\t/**\n\t * Changes the color of the icon (inherit by default)\n\t */\n\treadonly color = input<IconColor>('inherit');\n\n\t/**\n\t * Display icon in AI mode\n\t */\n\treadonly AI = input<boolean, boolean | `${boolean}` | ''>(false, { transform: booleanAttribute });\n\n\treadonly iconClasses = computed(() => {\n\t\tconst size = this.size();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t};\n\t});\n}\n","<span\n\taria-hidden=\"true\"\n\t[class.mod-AI]=\"AI()\"\n\tclass=\"lucca-icon icon-{{ icon() }} icon-color-{{ color() }}\"\n\t[ngClass]=\"iconClasses()\"\n></span>\n@if (alt()) {\n\t<span class=\"pr-u-mask\">{{ alt() }}</span>\n}\n","// *******************************************\n// *** THIS FILE IS GENERATED, DO NOT EDIT ***\n// *** The generator is update-icons.js\t\t ***\n// *******************************************\n\nexport type LuccaIcon =\n\t| 'app'\n\t| 'apps'\n\t| 'nineTiles'\n\t| 'mosaic'\n\t| 'tiles'\n\t| 'appWidget'\n\t| 'arrowBackspace'\n\t| 'arrowBackward'\n\t| 'backward'\n\t| 'arrowBottom'\n\t| 'arrowFullSouth'\n\t| 'arrowBottomLeft'\n\t| 'arrowBottomRight'\n\t| 'arrowCenterReduce'\n\t| 'arrowChevronBottom'\n\t| 'arrowSouth'\n\t| 'southArrow'\n\t| 'southThinArrow'\n\t| 'chevronSouth'\n\t| 'chevronBottom'\n\t| 'arrowChevronLeft'\n\t| 'arrowWest'\n\t| 'westArrow'\n\t| 'westThinArrow'\n\t| 'chevronWest'\n\t| 'chevronLeft'\n\t| 'arrowChevronRight'\n\t| 'arrowEast'\n\t| 'eastArrow'\n\t| 'eastThinArrow'\n\t| 'chevronEast'\n\t| 'chevronRight'\n\t| 'arrowChevronTop'\n\t| 'arrowNorth'\n\t| 'northArrow'\n\t| 'northThinArrow'\n\t| 'chevronNorth'\n\t| 'chevronTop'\n\t| 'arrowCorner'\n\t| 'distribute'\n\t| 'arrowCornerExpand'\n\t| 'arrowCurvedDownRight'\n\t| 'arrowDownload'\n\t| 'download'\n\t| 'arrowExternal'\n\t| 'outside'\n\t| 'arrowForward'\n\t| 'arrowDouble'\n\t| 'forward'\n\t| 'arrowLeft'\n\t| 'arrowFullWest'\n\t| 'arrowLineBottom'\n\t| 'arrowLineTop'\n\t| 'arrowLogin'\n\t| 'login'\n\t| 'arrowLogout'\n\t| 'logout'\n\t| 'arrowOppositeLeftRight'\n\t| 'arrowOppositeHorizontal'\n\t| 'swap'\n\t| 'arrowOppositeRightLeft'\n\t| 'arrowOppositeTopBottom'\n\t| 'arrowOppositeVertical'\n\t| 'creditDebit'\n\t| 'arrowRedo'\n\t| 'arrowReply'\n\t| 'reply'\n\t| 'arrowReset'\n\t| 'refresh'\n\t| 'update'\n\t| 'arrowRight'\n\t| 'arrowFullEast'\n\t| 'arrowSync'\n\t| 'sync'\n\t| 'arrowSyncStrikethrough'\n\t| 'syncDisabled'\n\t| 'arrowTop'\n\t| 'arrowFullNorth'\n\t| 'arrowTopLeft'\n\t| 'arrowTopRight'\n\t| 'arrowUndo'\n\t| 'arrowUnfoldLess'\n\t| 'collapse'\n\t| 'arrowUnfoldMore'\n\t| 'expand'\n\t| 'arrowUpload'\n\t| 'upload'\n\t| 'cloudUpload'\n\t| 'bell'\n\t| 'notification'\n\t| 'bellStrikethrough'\n\t| 'book'\n\t| 'bookmark'\n\t| 'bookmarkFilled'\n\t| 'boxArchive'\n\t| 'archive'\n\t| 'boxUnarchive'\n\t| 'unarchive'\n\t| 'branch'\n\t| 'bubbleAnswer'\n\t| 'answer'\n\t| 'bubbleConversation'\n\t| 'messenger'\n\t| 'bubbleSpeech'\n\t| 'chat'\n\t| 'talk'\n\t| 'dialog'\n\t| 'bubbleSpeechStrikethrough'\n\t| 'bubbleStars'\n\t| 'buildingCompany'\n\t| 'building'\n\t| 'establishment'\n\t| 'buildingHouse'\n\t| 'house'\n\t| 'home'\n\t| 'buildingHouseFilled'\n\t| 'houseFilled'\n\t| 'homeFill'\n\t| 'buildingHouseStarred'\n\t| 'houseStarred'\n\t| 'homeStarred'\n\t| 'buildingStore'\n\t| 'store'\n\t| 'bulb'\n\t| 'lightBulb'\n\t| 'calendarChecked'\n\t| 'calendarDate'\n\t| 'calendar'\n\t| 'planning'\n\t| 'calendarEdit'\n\t| 'planningEdit'\n\t| 'calendarPlanning'\n\t| 'payPeriod'\n\t| 'calendarSettings'\n\t| 'planningManage'\n\t| 'calendarStrikethrough'\n\t| 'calendarOff'\n\t| 'capCrown'\n\t| 'crown'\n\t| 'capCrownFilled'\n\t| 'capGraduate'\n\t| 'graduate'\n\t| 'school'\n\t| 'certificationFailed'\n\t| 'certifKo'\n\t| 'certificationSuccess'\n\t| 'certifOk'\n\t| 'certificationWaiting'\n\t| 'certifWaiting'\n\t| 'chartDonut'\n\t| 'donut'\n\t| 'donutChart'\n\t| 'chartFlow'\n\t| 'familyTree'\n\t| 'orgTree'\n\t| 'chartHorizontalBar'\n\t| 'horizontalBarChart'\n\t| 'chartLevels'\n\t| 'level'\n\t| 'chartPie'\n\t| 'dashboard'\n\t| 'chartSpider'\n\t| 'chartTree'\n\t| 'chartVerticalBar'\n\t| 'analytics'\n\t| 'charts'\n\t| 'circleHalf'\n\t| 'clipboard'\n\t| 'paste'\n\t| 'completion'\n\t| 'cornersFocus'\n\t| 'cornersFullscreenExit'\n\t| 'fullscreenExit'\n\t| 'cornersFullscreenOpen'\n\t| 'fullscreen'\n\t| 'dataTable'\n\t| 'table'\n\t| 'database'\n\t| 'databaseArrow'\n\t| 'apiSync'\n\t| 'deviceCamera'\n\t| 'camera'\n\t| 'deviceComputer'\n\t| 'computer'\n\t| 'deviceLaptop'\n\t| 'laptop'\n\t| 'deviceMobile'\n\t| 'deviceMouse'\n\t| 'computerMouse'\n\t| 'devicePrinter'\n\t| 'print'\n\t| 'deviceTablet'\n\t| 'deviceVideo'\n\t| 'dotsDrag'\n\t| 'drag'\n\t| 'emojiSmile'\n\t| 'eye'\n\t| 'watch'\n\t| 'eyeStrikethrough'\n\t| 'unwatch'\n\t| 'fileContract'\n\t| 'contract'\n\t| 'fileCopy'\n\t| 'copy'\n\t| 'fileDocument'\n\t| 'file'\n\t| 'files'\n\t| 'fileExport'\n\t| 'fileFolder'\n\t| 'folder'\n\t| 'fileImport'\n\t| 'importDirty'\n\t| 'importPristine'\n\t| 'filePlus'\n\t| 'fileSign'\n\t| 'sign'\n\t| 'filtersDescending'\n\t| 'filterAbstract'\n\t| 'filtersFunnel'\n\t| 'funnel'\n\t| 'filter'\n\t| 'filtersSort'\n\t| 'sort'\n\t| 'reorder'\n\t| 'flag'\n\t| 'floppyDiskSave'\n\t| 'save'\n\t| 'foodBirthdayCake'\n\t| 'birthday'\n\t| 'foodBobun'\n\t| 'lunchAlternative'\n\t| 'foodBurger'\n\t| 'lunch'\n\t| 'foodChefHat'\n\t| 'restaurant'\n\t| 'foodClocheDish'\n\t| 'diner'\n\t| 'foodCocktail'\n\t| 'drink'\n\t| 'foodCoffee'\n\t| 'coffee'\n\t| 'breaktime'\n\t| 'foodCroissant'\n\t| 'breakfast'\n\t| 'foodCutlery'\n\t| 'meal'\n\t| 'foodSandwich'\n\t| 'snack'\n\t| 'formatBulletedList'\n\t| 'list'\n\t| 'formatClipperAttachment'\n\t| 'attach'\n\t| 'formatCornerUpLeft'\n\t| 'formatUndo'\n\t| 'formatCornerUpRight'\n\t| 'formatRedo'\n\t| 'formatLink'\n\t| 'formatNumberedList'\n\t| 'formatListNb'\n\t| 'formatText'\n\t| 'formatJustify'\n\t| 'formatTextBold'\n\t| 'formatBold'\n\t| 'formatTextClear'\n\t| 'formatClear'\n\t| 'formatTextItalic'\n\t| 'formatItalic'\n\t| 'formatTextSize'\n\t| 'formatSize'\n\t| 'formatTextStrikethrough'\n\t| 'formatStrikethrough'\n\t| 'formatTextUnderline'\n\t| 'formatUnderlined'\n\t| 'formatUnlink'\n\t| 'unlink'\n\t| 'gift'\n\t| 'present'\n\t| 'heart'\n\t| 'heartFilled'\n\t| 'heartStrikethrough'\n\t| 'brokenHeart'\n\t| 'hotelBed'\n\t| 'bed'\n\t| 'hotel'\n\t| 'hotelHanger'\n\t| 'hanger'\n\t| 'hotelIron'\n\t| 'iron'\n\t| 'pressing'\n\t| 'hotelLuggage'\n\t| 'luggage'\n\t| 'jigsawPuzzle'\n\t| 'puzzle'\n\t| 'journey'\n\t| 'milestone'\n\t| 'jumpingCc'\n\t| 'lucca'\n\t| 'laboratoryTestFlask'\n\t| 'test'\n\t| 'layers'\n\t| 'floor'\n\t| 'listChecked'\n\t| 'listChecklist'\n\t| 'listTodo'\n\t| 'listMultipleChoices'\n\t| 'lockClose'\n\t| 'lock'\n\t| 'lockKey'\n\t| 'key'\n\t| 'lockOpen'\n\t| 'unlock'\n\t| 'mailEnvelope'\n\t| 'mail'\n\t| 'mailMailbox'\n\t| 'mailbox'\n\t| 'stamp'\n\t| 'postage'\n\t| 'mailPaperPlane'\n\t| 'send'\n\t| 'mapGlobe'\n\t| 'globe'\n\t| 'mapLocation'\n\t| 'location'\n\t| 'mapPin'\n\t| 'pin'\n\t| 'mapPlan'\n\t| 'mapTripStep'\n\t| 'mathsDivide'\n\t| 'divide'\n\t| 'mathsEquals'\n\t| 'mathsMinus'\n\t| 'minus'\n\t| 'partial'\n\t| 'minimize'\n\t| 'mathsMultiplicate'\n\t| 'close'\n\t| 'thinCross'\n\t| 'cross'\n\t| 'crossBold'\n\t| 'mathsNotEqual'\n\t| 'mathsPlus'\n\t| 'plus'\n\t| 'plusBold'\n\t| 'medicalDoctor'\n\t| 'menuBurger'\n\t| 'menu'\n\t| 'hamburgerMenu'\n\t| 'menuDots'\n\t| 'menuEllipsis'\n\t| 'ellipsis'\n\t| 'moneyBag'\n\t| 'moneybag'\n\t| 'moneyBagStrikethrough'\n\t| 'noMoney'\n\t| 'moneyBankImport'\n\t| 'moneyBanknoteStrikethrough'\n\t| 'moneyBill'\n\t| 'bill'\n\t| 'moneyBuildingBank'\n\t| 'bank'\n\t| 'moneyCardCheck'\n\t| 'moneyCardImport'\n\t| 'importCb'\n\t| 'moneyCheck'\n\t| 'moneyCoins'\n\t| 'money'\n\t| 'payment'\n\t| 'moneyCurrencyDollar'\n\t| 'dollar'\n\t| 'moneyCurrencyEuro'\n\t| 'euro'\n\t| 'moneyIban'\n\t| 'moneyPaymentCard'\n\t| 'bankingCard'\n\t| 'moneyPaymentCards'\n\t| 'moneyPiggyBank'\n\t| 'piggyBank'\n\t| 'moneyShoppingBag'\n\t| 'moneyWallet'\n\t| 'wallet'\n\t| 'officeBriefcase'\n\t| 'officeChair'\n\t| 'chair'\n\t| 'officeCompass'\n\t| 'compass'\n\t| 'officeElectricalPlug'\n\t| 'officeFirstAid'\n\t| 'officeMicrophone'\n\t| 'officePen'\n\t| 'edit'\n\t| 'editMini'\n\t| 'officePenStar'\n\t| 'officePenWriting'\n\t| 'editWrite'\n\t| 'editFrame'\n\t| 'officePhone'\n\t| 'telephone'\n\t| 'officeScissors'\n\t| 'cut'\n\t| 'officeSupplies'\n\t| 'supplies'\n\t| 'peopleAccessibility'\n\t| 'peopleAdd'\n\t| 'userAdd'\n\t| 'adduser'\n\t| 'peopleArrowUp'\n\t| 'peopleEdit'\n\t| 'peopleFolder'\n\t| 'peopleGroup'\n\t| 'userGroup'\n\t| 'group'\n\t| 'peopleHouse'\n\t| 'peopleId'\n\t| 'identityCard'\n\t| 'userFile'\n\t| 'dossierRh'\n\t| 'peopleLocked'\n\t| 'userRoles'\n\t| 'peoplePerson'\n\t| 'user'\n\t| 'face'\n\t| 'peopleRemove'\n\t| 'userRemove'\n\t| 'peopleSwitch'\n\t| 'send2user'\n\t| 'userSendTo'\n\t| 'peopleTeacher'\n\t| 'teacher'\n\t| 'pictureGallery'\n\t| 'gallery'\n\t| 'pictureImage'\n\t| 'image'\n\t| 'picturePalette'\n\t| 'palette'\n\t| 'playerPauseCircle'\n\t| 'pause'\n\t| 'playerPlay'\n\t| 'playFull'\n\t| 'playerPlayCircle'\n\t| 'play'\n\t| 'playerRecording'\n\t| 'playerStopCircle'\n\t| 'stop'\n\t| 'priceTag'\n\t| 'pricetag'\n\t| 'priorityHigh'\n\t| 'high'\n\t| 'priorityHigher'\n\t| 'higher'\n\t| 'priorityHighest'\n\t| 'highest'\n\t| 'priorityLow'\n\t| 'low'\n\t| 'priorityLower'\n\t| 'lower'\n\t| 'priorityLowest'\n\t| 'lowest'\n\t| 'priorityMedium'\n\t| 'medium'\n\t| 'rotationLeft'\n\t| 'rotate'\n\t| 'rotationRight'\n\t| 'rotateRight'\n\t| 'searchMagnifyingGlass'\n\t| 'search'\n\t| 'searchZoomIn'\n\t| 'searchZoomOut'\n\t| 'settingsEqualizer'\n\t| 'sliders'\n\t| 'settingsGear'\n\t| 'settings'\n\t| 'settingsTools'\n\t| 'tools'\n\t| 'share'\n\t| 'signAt'\n\t| 'signBan'\n\t| 'forbidden'\n\t| 'signCancel'\n\t| 'cancel'\n\t| 'signCheckbox'\n\t| 'signClose'\n\t| 'signConfirm'\n\t| 'confirm'\n\t| 'tick'\n\t| 'tickThin'\n\t| 'tickBold'\n\t| 'signConstruction'\n\t| 'build'\n\t| 'signDecimal'\n\t| 'signDiscount'\n\t| 'discount'\n\t| 'signError'\n\t| 'error'\n\t| 'signHelp'\n\t| 'help'\n\t| 'helpOutline'\n\t| 'signInfo'\n\t| 'info'\n\t| 'signParking'\n\t| 'parking'\n\t| 'signRating'\n\t| 'signShieldCancel'\n\t| 'signShieldError'\n\t| 'signShieldSuccess'\n\t| 'signShieldWarning'\n\t| 'signSimpleChoice'\n\t| 'signSuccess'\n\t| 'success'\n\t| 'signTag'\n\t| 'signTranslation'\n\t| 'signWarning'\n\t| 'warning'\n\t| 'signWebhook'\n\t| 'soundMegaphone'\n\t| 'star'\n\t| 'unstared'\n\t| 'starFilled'\n\t| 'target'\n\t| 'thumbDown'\n\t| 'thumbDownFilled'\n\t| 'thumbUp'\n\t| 'thumbUpFilled'\n\t| 'thumbnail'\n\t| 'timeAlarm'\n\t| 'alarm'\n\t| 'timeClock'\n\t| 'clock'\n\t| 'timeFuture'\n\t| 'postpone'\n\t| 'timeHourglass'\n\t| 'timer'\n\t| 'timePast'\n\t| 'history'\n\t| 'timeTimer'\n\t| 'chronoOn'\n\t| 'timeTimerStrikethrough'\n\t| 'overplanned'\n\t| 'timeTimesheet'\n\t| 'timesheet'\n\t| 'transportBus'\n\t| 'bus'\n\t| 'transportCar'\n\t| 'car'\n\t| 'transportCarElectric'\n\t| 'transportCarwashStation'\n\t| 'cleanCar'\n\t| 'transportGazStation'\n\t| 'gasoline'\n\t| 'transportMotocycle'\n\t| 'transportMotocycleElectric'\n\t| 'transportPlane'\n\t| 'plane'\n\t| 'transportRocket'\n\t| 'rocket'\n\t| 'transportScooter'\n\t| 'transportScooterElectric'\n\t| 'transportSpeedometer'\n\t| 'speedometer'\n\t| 'mileage'\n\t| 'transportSubway'\n\t| 'subway'\n\t| 'transportTaxi'\n\t| 'taxi'\n\t| 'transportToll'\n\t| 'toll'\n\t| 'tollDollar'\n\t| 'tollEuro'\n\t| 'transportTrain'\n\t| 'train'\n\t| 'transportTruck'\n\t| 'truck'\n\t| 'trashDelete'\n\t| 'trash'\n\t| 'trendingGrowth'\n\t| 'evolution'\n\t| 'trendingLoss'\n\t| 'evolutionDown'\n\t| 'weatherCloudy'\n\t| 'weatherLightning'\n\t| 'weatherStars'\n\t| 'weatherStormy'\n\t| 'weatherStorm'\n\t| 'weatherSunny'\n\t| 'weatherSun'\n\t| 'weight'\n\t| 'window'\n\t| 'windowAside'\n\t| 'windowAsideLarge'\n\t| 'windowCornerBottom'\n\t| 'windowCornerTop'\n\t| 'windowSplit';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ class NumericBadgeComponent {
|
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NumericBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge,pr-numeric-badge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, disableTooltip: { classPropertyName: "disableTooltip", publicName: "disableTooltip", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-loading": "loading()", "attr.aria-hidden": "ariaHidden()" }, classAttribute: "numericBadge" }, providers: [PrClass], ngImport: i0, template: "<span class=\"numericBadge-value\" [luTooltip]=\"value()\" [luTooltipDisabled]=\"isDisabled()\">{{ displayValue() }}</span>\n", styles: ["@charset \"UTF-8\";@layer components{.numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-neutral-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-neutral-700));--components-numericBadge-loadingColor: var(--palettes-500, var(--palettes-neutral-500));--components-numericBadge-size: 1.5rem;--components-numericBadge-font: var(--pr-t-font-body-S);--components-numericBadge-borderRadius: var(--pr-t-border-radius-default);display:inline-flex;align-items:center;justify-content:center;block-size:var(--components-numericBadge-size);min-inline-size:var(--components-numericBadge-size);padding:var(--pr-t-spacings-50);font:var(--components-numericBadge-font);font-weight:var(--pr-t-font-fontWeight-semibold);background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-timing-function:ease;white-space:nowrap;position:relative;transition-duration:var(--commons-animations-durations-fast);transition-property:color}.numericBadge:empty:before{content:\"\\a0\"/\"\"}.numericBadge-value{outline:none}}@layer mods{.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS)}.numericBadge.is-loading{--commons-loading-frontground: var(--components-numericBadge-loadingColor);--commons-loading-borderWidth: 2px;--components-numericBadge-color: transparent}.numericBadge.is-loading:after{content:\"\";inline-size:calc(var(--components-numericBadge-size) - var(--pr-t-spacings-100));block-size:calc(var(--components-numericBadge-size) - var(--pr-t-spacings-100));border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.numericBadge.is-loading.mod-S{--commons-loading-borderWidth: 1.5px}.numericBadge.is-loading.mod-XS{--commons-loading-borderWidth: 1px}.numericBadge:focus-within{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}}@layer base{lu-numeric-badge{display:inline-flex}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "id"], exportAs: ["luTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
76
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: NumericBadgeComponent, isStandalone: true, selector: "lu-numeric-badge,pr-numeric-badge", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, disableTooltip: { classPropertyName: "disableTooltip", publicName: "disableTooltip", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-loading": "loading()", "attr.aria-hidden": "ariaHidden()" }, classAttribute: "numericBadge" }, providers: [PrClass], ngImport: i0, template: "<span class=\"numericBadge-value\" [luTooltip]=\"value()\" [luTooltipDisabled]=\"isDisabled()\">{{ displayValue() }}</span>\n", styles: ["@charset \"UTF-8\";@layer components{.numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-neutral-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-neutral-700));--components-numericBadge-loadingColor: var(--palettes-500, var(--palettes-neutral-500));--components-numericBadge-size: 1.5rem;--components-numericBadge-font: var(--pr-t-font-body-S);--components-numericBadge-borderRadius: var(--pr-t-border-radius-default);display:inline-flex;align-items:center;justify-content:center;block-size:var(--components-numericBadge-size);min-inline-size:var(--components-numericBadge-size);padding:var(--pr-t-spacings-50);font:var(--components-numericBadge-font);font-weight:var(--pr-t-font-fontWeight-semibold);background-color:var(--components-numericBadge-background);color:var(--components-numericBadge-color);border-radius:var(--components-numericBadge-borderRadius);transition-timing-function:ease;white-space:nowrap;position:relative;transition-duration:var(--commons-animations-durations-fast);transition-property:color}.numericBadge:empty:before{content:\"\\a0\"/\"\"}.numericBadge-value{outline:none}}@layer mods{.numericBadge.mod-S{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS)}.numericBadge.mod-XS{--components-numericBadge-size: 1rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS)}.numericBadge.is-loading{--commons-loading-frontground: var(--components-numericBadge-loadingColor);--commons-loading-borderWidth: 2px;--components-numericBadge-color: transparent}.numericBadge.is-loading:after{content:\"\";inline-size:calc(var(--components-numericBadge-size) - var(--pr-t-spacings-100));block-size:calc(var(--components-numericBadge-size) - var(--pr-t-spacings-100));border-radius:var(--pr-t-border-radius-full);line-height:.8rem;border-width:var(--commons-loading-borderWidth);inset:0;margin:auto;position:absolute;border-style:solid;animation-name:rotate;animation-duration:var(--commons-loading-speed);animation-timing-function:linear;animation-iteration-count:infinite;border-color:var(--commons-loading-frontground);border-block-start-color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.numericBadge.is-loading.mod-S{--commons-loading-borderWidth: 1.5px}.numericBadge.is-loading.mod-XS{--commons-loading-borderWidth: 1px}.numericBadge:focus-within{outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}}@layer base{lu-numeric-badge{display:inline-flex}}\n"], dependencies: [{ kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "luTooltipTriggerAnchor", "prTooltipTriggerAnchor", "id"], exportAs: ["luTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
77
77
|
}
|
|
78
78
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NumericBadgeComponent, decorators: [{
|
|
79
79
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-prisme-numeric-badge.mjs","sources":["../../../packages/prisme/numeric-badge/numeric-badge.type.ts","../../../packages/prisme/numeric-badge/numeric-badge.component.ts","../../../packages/prisme/numeric-badge/numeric-badge.component.html","../../../packages/prisme/numeric-badge/lucca-prisme-numeric-badge.ts"],"sourcesContent":["/**\n * Available NumericBadgeComponent Types\n */\n\nexport const NUMERIC_BADGE_SIZE = ['XS', 'S', 'M'] as const;\nexport type NumericBadgeSize = (typeof NUMERIC_BADGE_SIZE)[number];\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, HostAttributeToken, inject, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { PrClass, Palette, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { LuTooltipModule } from '@lucca/prisme/tooltip';\nimport { NumericBadgeSize } from './numeric-badge.type';\n\n@Component({\n\tselector: 'lu-numeric-badge,pr-numeric-badge',\n\ttemplateUrl: './numeric-badge.component.html',\n\tstyleUrl: './numeric-badge.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuTooltipModule],\n\tproviders: [PrClass],\n\thost: {\n\t\tclass: 'numericBadge',\n\t\t'[class.is-loading]': 'loading()',\n\t\t'[attr.aria-hidden]': 'ariaHidden()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NumericBadgeComponent {\n\t#luClass = inject(PrClass);\n\n\t/**\n\t * The value to display, number or string contains number only.\n\t */\n\treadonly value = input.required<number | string>();\n\n\t/**\n\t * The size of the badge\n\t */\n\treadonly size = input<NumericBadgeSize>();\n\n\t/**\n\t * The palette to use for this badge. Defaults to 'none' (inherits parent palette)\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Applies the loading state\n\t */\n\treadonly loading = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Indicates the maximum value of number for the numeric badge\n\t */\n\treadonly maxValue = input(999, { transform: numberAttribute });\n\n\t/**\n\t * Disabled tooltip on numeric badge\n\t */\n\treadonly disableTooltip = input(false, { transform: booleanAttribute });\n\n\treadonly #initialAriaHidden = inject(new HostAttributeToken('aria-hidden'), { optional: true });\n\n\treadonly ariaHidden = computed(() => (this.loading() ? 'true' : this.#initialAriaHidden));\n\n\treadonly numericBadgeClasses = computed(() => {\n\t\tconst palette = this.palette();\n\t\tconst size = this.size();\n\t\treturn { [`palette-${palette}`]: !!palette, [`mod-${size}`]: !!size };\n\t});\n\n\treadonly displayValue = computed(() => {\n\t\tconst value = this.value();\n\t\tconst maxValue = this.maxValue();\n\t\tif (typeof value === 'number') {\n\t\t\treturn +value > maxValue ? `${maxValue}+` : value;\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t});\n\n\treadonly isDisabled = computed<boolean>(() => {\n\t\tconst value = this.value();\n\t\treturn this.disableTooltip() || typeof value !== 'number' || this.loading() || this.maxValue() >= +value;\n\t});\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.numericBadgeClasses], (numericBadgeClasses) => {\n\t\t\tif (numericBadgeClasses) {\n\t\t\t\tthis.#luClass.setState(numericBadgeClasses);\n\t\t\t}\n\t\t});\n\t}\n}\n","<span class=\"numericBadge-value\" [luTooltip]=\"value()\" [luTooltipDisabled]=\"isDisabled()\">{{ displayValue() }}</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-prisme-numeric-badge.mjs","sources":["../../../packages/prisme/numeric-badge/numeric-badge.type.ts","../../../packages/prisme/numeric-badge/numeric-badge.component.ts","../../../packages/prisme/numeric-badge/numeric-badge.component.html","../../../packages/prisme/numeric-badge/lucca-prisme-numeric-badge.ts"],"sourcesContent":["/**\n * Available NumericBadgeComponent Types\n */\n\nexport const NUMERIC_BADGE_SIZE = ['XS', 'S', 'M'] as const;\nexport type NumericBadgeSize = (typeof NUMERIC_BADGE_SIZE)[number];\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, HostAttributeToken, inject, input, numberAttribute, ViewEncapsulation } from '@angular/core';\nimport { PrClass, Palette, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { LuTooltipModule } from '@lucca/prisme/tooltip';\nimport { NumericBadgeSize } from './numeric-badge.type';\n\n@Component({\n\tselector: 'lu-numeric-badge,pr-numeric-badge',\n\ttemplateUrl: './numeric-badge.component.html',\n\tstyleUrl: './numeric-badge.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuTooltipModule],\n\tproviders: [PrClass],\n\thost: {\n\t\tclass: 'numericBadge',\n\t\t'[class.is-loading]': 'loading()',\n\t\t'[attr.aria-hidden]': 'ariaHidden()',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NumericBadgeComponent {\n\t#luClass = inject(PrClass);\n\n\t/**\n\t * The value to display, number or string contains number only.\n\t */\n\treadonly value = input.required<number | string>();\n\n\t/**\n\t * The size of the badge\n\t */\n\treadonly size = input<NumericBadgeSize>();\n\n\t/**\n\t * The palette to use for this badge. Defaults to 'none' (inherits parent palette)\n\t */\n\treadonly palette = input<Palette>('none');\n\n\t/**\n\t * Applies the loading state\n\t */\n\treadonly loading = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Indicates the maximum value of number for the numeric badge\n\t */\n\treadonly maxValue = input(999, { transform: numberAttribute });\n\n\t/**\n\t * Disabled tooltip on numeric badge\n\t */\n\treadonly disableTooltip = input(false, { transform: booleanAttribute });\n\n\treadonly #initialAriaHidden = inject(new HostAttributeToken('aria-hidden'), { optional: true });\n\n\treadonly ariaHidden = computed(() => (this.loading() ? 'true' : this.#initialAriaHidden));\n\n\treadonly numericBadgeClasses = computed(() => {\n\t\tconst palette = this.palette();\n\t\tconst size = this.size();\n\t\treturn { [`palette-${palette}`]: !!palette, [`mod-${size}`]: !!size };\n\t});\n\n\treadonly displayValue = computed(() => {\n\t\tconst value = this.value();\n\t\tconst maxValue = this.maxValue();\n\t\tif (typeof value === 'number') {\n\t\t\treturn +value > maxValue ? `${maxValue}+` : value;\n\t\t} else {\n\t\t\treturn value;\n\t\t}\n\t});\n\n\treadonly isDisabled = computed<boolean>(() => {\n\t\tconst value = this.value();\n\t\treturn this.disableTooltip() || typeof value !== 'number' || this.loading() || this.maxValue() >= +value;\n\t});\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.numericBadgeClasses], (numericBadgeClasses) => {\n\t\t\tif (numericBadgeClasses) {\n\t\t\t\tthis.#luClass.setState(numericBadgeClasses);\n\t\t\t}\n\t\t});\n\t}\n}\n","<span class=\"numericBadge-value\" [luTooltip]=\"value()\" [luTooltipDisabled]=\"isDisabled()\">{{ displayValue() }}</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@ class TagComponent {
|
|
|
62
62
|
...(ngDevMode ? [{ debugName: "tagClasses" }] : /* istanbul ignore next */ []));
|
|
63
63
|
}
|
|
64
64
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: TagComponent, isStandalone: true, selector: "lu-tag,pr-tag", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, withEllipsis: { classPropertyName: "withEllipsis", publicName: "withEllipsis", isSignal: true, isRequired: false, transformFunction: null }, AI: { classPropertyName: "AI", publicName: "AI", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (link()) {\n\t<a [routerLink]=\"link()\" class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t</a>\n} @else {\n\t<span class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t@if (withEllipsis()) {\n\t\t\t<span class=\"tag-content pr-u-ellipsis\" prTooltip prTooltipWhenEllipsis>{{ label() }}</span>\n\t\t} @else {\n\t\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t\t}\n\t</span>\n}\n", styles: ["@charset \"UTF-8\";@layer components{.tag{--components-tag-background: var(--palettes-100, var(--palettes-neutral-100));--components-tag-color: var(--palettes-800, var(--palettes-neutral-800));--components-tag-shadow: transparent;--components-tag-font: var(--pr-t-font-body-S);--components-tag-gap: var(--pr-t-spacings-50);--components-tag-decoration: none;--components-tag-cursor: inherit;--components-tag-boxShadow: 0 0 0 1px var(--components-tag-shadow);--components-tag-position: static;--components-tag-before-content: none;--components-tag-fontSize: var(--pr-t-font-body-S-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-tag-background);border-radius:var(--pr-t-border-radius-small);padding-block:0;padding-inline:var(--pr-t-spacings-50);text-decoration:var(--components-tag-decoration);box-shadow:0 0 0 1px var(--components-tag-shadow);gap:var(--components-tag-gap);cursor:var(--components-tag-cursor);display:inline-flex;align-items:center;text-align:center;vertical-align:baseline;white-space:nowrap;border:0;font:var(--components-tag-font);font-size:var(--components-tag-fontSize);line-height:var(--components-tag-lineHeight);max-inline-size:100%;position:var(--components-tag-position)}.tag:before{content:var(--components-tag-before-content);inline-size:0;margin-inline-start:calc(var(--components-tag-gap) * -1)}.tag,.tag:is(a,button){color:var(--components-tag-color)}.tag .lucca-icon{--icon-size: 1rem}.tag-content{outline:none;text-decoration:var(--components-tag-decoration)}}@layer mods{.tag.mod-S{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.tag.mod-S .lucca-icon{--icon-size: .75rem}.tag.mod-S{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.tag.mod-L{--components-tag-font: var(--pr-t-font-body-M)}.tag.mod-L .lucca-icon{--icon-size: 1.25rem}.tag.mod-L{--components-tag-fontSize: var(--pr-t-font-body-M-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-M-lineHeight)}.tag:is(a,button),.tag.mod-clickable{--components-tag-cursor: pointer}.tag:is(a,button):hover,.tag:is(a,button):focus,.tag.mod-clickable:hover,.tag.mod-clickable:focus{--components-tag-decoration: underline}.tag:is(a,button):has(.tag-content):hover,.tag:is(a,button):has(.tag-content):focus,.tag.mod-clickable:has(.tag-content):hover,.tag.mod-clickable:has(.tag-content):focus{--components-tag-decoration: none}.tag:is(a,button):has(.tag-content):hover .tag-content,.tag:is(a,button):has(.tag-content):focus .tag-content,.tag.mod-clickable:has(.tag-content):hover .tag-content,.tag.mod-clickable:has(.tag-content):focus .tag-content{--components-tag-decoration: underline}.tag.mod-outlined,.tag.mod-AI{--components-tag-shadow: var(--palettes-300, var(--palettes-neutral-300));--components-tag-background: transparent}.tag.mod-AI:not(:disabled){--components-tag-boxShadow: none;--components-tag-position: relative}.tag.mod-AI:not(:disabled):after{content:\"\";pointer-events:none;position:absolute;inset:calc(var(--commons-divider-width) * -1);padding:var(--commons-divider-width);background-image:var(--pr-t-color-border-ai);border-radius:calc(var(--pr-t-border-radius-small) + var(--commons-divider-width));-webkit-mask:linear-gradient(var(--palettes-neutral-0)) content-box,linear-gradient(var(--palettes-neutral-0));mask:linear-gradient(var(--palettes-neutral-0)) content-box,linear-gradient(var(--palettes-neutral-0));-webkit-mask-composite:xor;mask-composite:exclude}.tag.mod-AI:not(:disabled) .lucca-icon{background-image:var(--pr-t-color-icon-ai);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tag.mod-disabled{--components-tag-background: var(--commons-disabled-background);--components-tag-color: var(--commons-disabled-color)}.tag:has(.tag-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.tag:has(.lucca-icon){--components-tag-before-content: \"\\a0\"}}lu-tag,pr-tag{display:inline-flex}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "id"], exportAs: ["luTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
65
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: TagComponent, isStandalone: true, selector: "lu-tag,pr-tag", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, palette: { classPropertyName: "palette", publicName: "palette", isSignal: true, isRequired: false, transformFunction: null }, outlined: { classPropertyName: "outlined", publicName: "outlined", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, withEllipsis: { classPropertyName: "withEllipsis", publicName: "withEllipsis", isSignal: true, isRequired: false, transformFunction: null }, AI: { classPropertyName: "AI", publicName: "AI", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (link()) {\n\t<a [routerLink]=\"link()\" class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t</a>\n} @else {\n\t<span class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t@if (withEllipsis()) {\n\t\t\t<span class=\"tag-content pr-u-ellipsis\" prTooltip prTooltipWhenEllipsis>{{ label() }}</span>\n\t\t} @else {\n\t\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t\t}\n\t</span>\n}\n", styles: ["@charset \"UTF-8\";@layer components{.tag{--components-tag-background: var(--palettes-100, var(--palettes-neutral-100));--components-tag-color: var(--palettes-800, var(--palettes-neutral-800));--components-tag-shadow: transparent;--components-tag-font: var(--pr-t-font-body-S);--components-tag-gap: var(--pr-t-spacings-50);--components-tag-decoration: none;--components-tag-cursor: inherit;--components-tag-boxShadow: 0 0 0 1px var(--components-tag-shadow);--components-tag-position: static;--components-tag-before-content: none;--components-tag-fontSize: var(--pr-t-font-body-S-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-S-lineHeight);background-color:var(--components-tag-background);border-radius:var(--pr-t-border-radius-small);padding-block:0;padding-inline:var(--pr-t-spacings-50);text-decoration:var(--components-tag-decoration);box-shadow:0 0 0 1px var(--components-tag-shadow);gap:var(--components-tag-gap);cursor:var(--components-tag-cursor);display:inline-flex;align-items:center;text-align:center;vertical-align:baseline;white-space:nowrap;border:0;font:var(--components-tag-font);font-size:var(--components-tag-fontSize);line-height:var(--components-tag-lineHeight);max-inline-size:100%;position:var(--components-tag-position)}.tag:before{content:var(--components-tag-before-content);inline-size:0;margin-inline-start:calc(var(--components-tag-gap) * -1)}.tag,.tag:is(a,button){color:var(--components-tag-color)}.tag .lucca-icon{--icon-size: 1rem}.tag-content{outline:none;text-decoration:var(--components-tag-decoration)}}@layer mods{.tag.mod-S{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.tag.mod-S .lucca-icon{--icon-size: .75rem}.tag.mod-S{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.tag.mod-L{--components-tag-font: var(--pr-t-font-body-M)}.tag.mod-L .lucca-icon{--icon-size: 1.25rem}.tag.mod-L{--components-tag-fontSize: var(--pr-t-font-body-M-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-M-lineHeight)}.tag:is(a,button),.tag.mod-clickable{--components-tag-cursor: pointer}.tag:is(a,button):hover,.tag:is(a,button):focus,.tag.mod-clickable:hover,.tag.mod-clickable:focus{--components-tag-decoration: underline}.tag:is(a,button):has(.tag-content):hover,.tag:is(a,button):has(.tag-content):focus,.tag.mod-clickable:has(.tag-content):hover,.tag.mod-clickable:has(.tag-content):focus{--components-tag-decoration: none}.tag:is(a,button):has(.tag-content):hover .tag-content,.tag:is(a,button):has(.tag-content):focus .tag-content,.tag.mod-clickable:has(.tag-content):hover .tag-content,.tag.mod-clickable:has(.tag-content):focus .tag-content{--components-tag-decoration: underline}.tag.mod-outlined,.tag.mod-AI{--components-tag-shadow: var(--palettes-300, var(--palettes-neutral-300));--components-tag-background: transparent}.tag.mod-AI:not(:disabled){--components-tag-boxShadow: none;--components-tag-position: relative}.tag.mod-AI:not(:disabled):after{content:\"\";pointer-events:none;position:absolute;inset:calc(var(--commons-divider-width) * -1);padding:var(--commons-divider-width);background-image:var(--pr-t-color-border-ai);border-radius:calc(var(--pr-t-border-radius-small) + var(--commons-divider-width));-webkit-mask:linear-gradient(var(--palettes-neutral-0)) content-box,linear-gradient(var(--palettes-neutral-0));mask:linear-gradient(var(--palettes-neutral-0)) content-box,linear-gradient(var(--palettes-neutral-0));-webkit-mask-composite:xor;mask-composite:exclude}.tag.mod-AI:not(:disabled) .lucca-icon{background-image:var(--pr-t-color-icon-ai);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.tag.mod-disabled{--components-tag-background: var(--commons-disabled-background);--components-tag-color: var(--commons-disabled-color)}.tag:has(.tag-content:focus-visible){outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:2px}.tag:has(.lucca-icon){--components-tag-before-content: \"\\a0\"}}lu-tag,pr-tag{display:inline-flex}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: i1.LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "luTooltipTriggerAnchor", "prTooltipTriggerAnchor", "id"], exportAs: ["luTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
66
66
|
}
|
|
67
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: TagComponent, decorators: [{
|
|
68
68
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-prisme-tag.mjs","sources":["../../../packages/prisme/tag/tag.type.ts","../../../packages/prisme/tag/tag.component.ts","../../../packages/prisme/tag/tag.component.html","../../../packages/prisme/tag/lucca-prisme-tag.ts"],"sourcesContent":["/**\n * Available TagComponent Types\n */\n\nexport const TAG_SIZE = ['S', 'M', 'L'] as const;\nexport type TagSize = (typeof TAG_SIZE)[number];\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DecorativePalette, Palette } from '@lucca/prisme/core';\nimport { IconComponent, LuccaIcon } from '@lucca/prisme/icon';\nimport { LuTooltipModule } from '@lucca/prisme/tooltip';\nimport { TagSize } from './tag.type';\n\n@Component({\n\tselector: 'lu-tag,pr-tag',\n\ttemplateUrl: './tag.component.html',\n\tstyleUrl: './tag.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, RouterLink, LuTooltipModule],\n})\nexport class TagComponent {\n\t/**\n\t * Which text should the tag be? Defaults to medium\n\t */\n\treadonly label = input.required<string>();\n\n\t/**\n\t * Which size should the tag be? Defaults to medium\n\t */\n\treadonly size = input<TagSize>('M');\n\n\t/**\n\t * Which palette should be used for the entire tag.\n\t * Defaults to none (inherits parent palette)\n\t */\n\treadonly palette = input<Palette | DecorativePalette>('none');\n\n\t/**\n\t * Should display be outlined?\n\t */\n\treadonly outlined = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * For routerLink usage\n\t */\n\treadonly link = input<string>();\n\n\t/**\n\t * Which icon should we display in the tag if any?\n\t * Defaults to no icon.\n\t */\n\treadonly icon = input<LuccaIcon | null>(null);\n\n\t/**\n\t * Truncates the text with an ellipsis and adds a tooltip when the label is too long\n\t */\n\treadonly withEllipsis = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Applies AI colors\n\t */\n\treadonly AI = input(false, { transform: booleanAttribute });\n\n\treadonly tagClasses = computed(() => {\n\t\tconst size = this.size();\n\t\tconst palette = this.palette();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t\t[`palette-${palette}`]: !this.AI() && !!palette,\n\t\t};\n\t});\n}\n","@if (link()) {\n\t<a [routerLink]=\"link()\" class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t</a>\n} @else {\n\t<span class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t@if (withEllipsis()) {\n\t\t\t<span class=\"tag-content pr-u-ellipsis\" prTooltip prTooltipWhenEllipsis>{{ label() }}</span>\n\t\t} @else {\n\t\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t\t}\n\t</span>\n}\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-prisme-tag.mjs","sources":["../../../packages/prisme/tag/tag.type.ts","../../../packages/prisme/tag/tag.component.ts","../../../packages/prisme/tag/tag.component.html","../../../packages/prisme/tag/lucca-prisme-tag.ts"],"sourcesContent":["/**\n * Available TagComponent Types\n */\n\nexport const TAG_SIZE = ['S', 'M', 'L'] as const;\nexport type TagSize = (typeof TAG_SIZE)[number];\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { DecorativePalette, Palette } from '@lucca/prisme/core';\nimport { IconComponent, LuccaIcon } from '@lucca/prisme/icon';\nimport { LuTooltipModule } from '@lucca/prisme/tooltip';\nimport { TagSize } from './tag.type';\n\n@Component({\n\tselector: 'lu-tag,pr-tag',\n\ttemplateUrl: './tag.component.html',\n\tstyleUrl: './tag.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, RouterLink, LuTooltipModule],\n})\nexport class TagComponent {\n\t/**\n\t * Which text should the tag be? Defaults to medium\n\t */\n\treadonly label = input.required<string>();\n\n\t/**\n\t * Which size should the tag be? Defaults to medium\n\t */\n\treadonly size = input<TagSize>('M');\n\n\t/**\n\t * Which palette should be used for the entire tag.\n\t * Defaults to none (inherits parent palette)\n\t */\n\treadonly palette = input<Palette | DecorativePalette>('none');\n\n\t/**\n\t * Should display be outlined?\n\t */\n\treadonly outlined = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * For routerLink usage\n\t */\n\treadonly link = input<string>();\n\n\t/**\n\t * Which icon should we display in the tag if any?\n\t * Defaults to no icon.\n\t */\n\treadonly icon = input<LuccaIcon | null>(null);\n\n\t/**\n\t * Truncates the text with an ellipsis and adds a tooltip when the label is too long\n\t */\n\treadonly withEllipsis = input(false, { transform: booleanAttribute });\n\n\t/**\n\t * Applies AI colors\n\t */\n\treadonly AI = input(false, { transform: booleanAttribute });\n\n\treadonly tagClasses = computed(() => {\n\t\tconst size = this.size();\n\t\tconst palette = this.palette();\n\t\treturn {\n\t\t\t[`mod-${size}`]: !!size,\n\t\t\t[`palette-${palette}`]: !this.AI() && !!palette,\n\t\t};\n\t});\n}\n","@if (link()) {\n\t<a [routerLink]=\"link()\" class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t</a>\n} @else {\n\t<span class=\"tag\" [class]=\"tagClasses()\" [class.mod-outlined]=\"!AI() && outlined()\" [class.mod-AI]=\"AI()\">\n\t\t@if (icon(); as icon) {\n\t\t\t<pr-icon [icon]=\"icon\" />\n\t\t}\n\t\t@if (withEllipsis()) {\n\t\t\t<span class=\"tag-content pr-u-ellipsis\" prTooltip prTooltipWhenEllipsis>{{ label() }}</span>\n\t\t} @else {\n\t\t\t<span class=\"tag-content\">{{ label() }}</span>\n\t\t}\n\t</span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, DestroyRef, signal, ChangeDetectionStrategy, Component, Injectable, ElementRef, Renderer2, Injector, input, linkedSignal, computed, numberAttribute, booleanAttribute, effect, afterRenderEffect, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { inject, DestroyRef, signal, ChangeDetectionStrategy, Component, Injectable, ElementRef, Renderer2, Injector, input, linkedSignal, computed, numberAttribute, booleanAttribute, effect, untracked, afterRenderEffect, Directive, NgModule } from '@angular/core';
|
|
4
4
|
import { Subject, timer, startWith } from 'rxjs';
|
|
5
5
|
import { Overlay, OverlayModule } from '@angular/cdk/overlay';
|
|
6
6
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
@@ -119,6 +119,14 @@ class LuTooltipTriggerDirective {
|
|
|
119
119
|
#hasEllipsis;
|
|
120
120
|
// reusable hidden clone, one per directive, used to measure the unconstrained width
|
|
121
121
|
#clone;
|
|
122
|
+
// Each measurement phase hands over to the next one through these signals rather than through
|
|
123
|
+
// the value `afterRenderEffect` pipes between phases. A phase only receives that value when the
|
|
124
|
+
// phases before it ran in the same pass; a directive created while the after-render hooks are
|
|
125
|
+
// running starts mid-pipeline and gets Angular's `registerCleanupFn` as its first argument
|
|
126
|
+
// instead. Calling it then registers `undefined` as a cleanup function, which throws
|
|
127
|
+
// `fn is not a function` when the view is destroyed, far away from the cause.
|
|
128
|
+
#measurementRequest;
|
|
129
|
+
#preparedMeasurement;
|
|
122
130
|
#action;
|
|
123
131
|
#realAction;
|
|
124
132
|
#effectRef;
|
|
@@ -176,6 +184,12 @@ class LuTooltipTriggerDirective {
|
|
|
176
184
|
...(ngDevMode ? [{ debugName: "prTooltipAnchor" }] : /* istanbul ignore next */ []));
|
|
177
185
|
this.tooltipAnchor = computed(() => this.luTooltipAnchor() || this.prTooltipAnchor(), /* @ts-ignore */
|
|
178
186
|
...(ngDevMode ? [{ debugName: "tooltipAnchor" }] : /* istanbul ignore next */ []));
|
|
187
|
+
this.luTooltipTriggerAnchor = input(null, /* @ts-ignore */
|
|
188
|
+
...(ngDevMode ? [{ debugName: "luTooltipTriggerAnchor" }] : /* istanbul ignore next */ []));
|
|
189
|
+
this.prTooltipTriggerAnchor = input(null, /* @ts-ignore */
|
|
190
|
+
...(ngDevMode ? [{ debugName: "prTooltipTriggerAnchor" }] : /* istanbul ignore next */ []));
|
|
191
|
+
this.tooltipTriggerAnchor = computed(() => this.luTooltipTriggerAnchor() || this.prTooltipTriggerAnchor(), /* @ts-ignore */
|
|
192
|
+
...(ngDevMode ? [{ debugName: "tooltipTriggerAnchor" }] : /* istanbul ignore next */ []));
|
|
179
193
|
this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, /* @ts-ignore */
|
|
180
194
|
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
181
195
|
this.ariaDescribedBy = computed(() => {
|
|
@@ -198,6 +212,16 @@ class LuTooltipTriggerDirective {
|
|
|
198
212
|
// written only from the `read` phase of the afterRenderEffect below
|
|
199
213
|
this.#hasEllipsis = signal(false, /* @ts-ignore */
|
|
200
214
|
...(ngDevMode ? [{ debugName: "#hasEllipsis" }] : /* istanbul ignore next */ []));
|
|
215
|
+
// Each measurement phase hands over to the next one through these signals rather than through
|
|
216
|
+
// the value `afterRenderEffect` pipes between phases. A phase only receives that value when the
|
|
217
|
+
// phases before it ran in the same pass; a directive created while the after-render hooks are
|
|
218
|
+
// running starts mid-pipeline and gets Angular's `registerCleanupFn` as its first argument
|
|
219
|
+
// instead. Calling it then registers `undefined` as a cleanup function, which throws
|
|
220
|
+
// `fn is not a function` when the view is destroyed, far away from the cause.
|
|
221
|
+
this.#measurementRequest = signal(null, /* @ts-ignore */
|
|
222
|
+
...(ngDevMode ? [{ debugName: "#measurementRequest" }] : /* istanbul ignore next */ []));
|
|
223
|
+
this.#preparedMeasurement = signal(null, /* @ts-ignore */
|
|
224
|
+
...(ngDevMode ? [{ debugName: "#preparedMeasurement" }] : /* istanbul ignore next */ []));
|
|
201
225
|
this.#action = signal(null, /* @ts-ignore */
|
|
202
226
|
...(ngDevMode ? [{ debugName: "#action" }] : /* istanbul ignore next */ []));
|
|
203
227
|
this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : /* istanbul ignore next */ {}), source: this.#action,
|
|
@@ -237,6 +261,23 @@ class LuTooltipTriggerDirective {
|
|
|
237
261
|
this.setAccessibilityProperties(null);
|
|
238
262
|
}
|
|
239
263
|
});
|
|
264
|
+
effect((onCleanup) => {
|
|
265
|
+
const trigger = this.#resolveTriggerAnchorElement() ?? this.#host.nativeElement;
|
|
266
|
+
const listen = (eventName, callback) => this.#renderer.listen(trigger, eventName, (event) => untracked(() => callback(event)));
|
|
267
|
+
const unlisten = [
|
|
268
|
+
listen('mouseenter', () => this.onMouseEnter()),
|
|
269
|
+
listen('mouseleave', () => this.onMouseLeave()),
|
|
270
|
+
listen('focus', () => this.onFocus()),
|
|
271
|
+
listen('blur', () => this.onBlur()),
|
|
272
|
+
listen('focusout', (event) => this.onFocusOut(event)),
|
|
273
|
+
listen('keydown', (event) => {
|
|
274
|
+
if (event.key === 'Escape') {
|
|
275
|
+
this.onEscape(event);
|
|
276
|
+
}
|
|
277
|
+
}),
|
|
278
|
+
];
|
|
279
|
+
onCleanup(() => unlisten.forEach((fn) => fn()));
|
|
280
|
+
});
|
|
240
281
|
// Defer the first measurement until the element is near the viewport, then stop tracking
|
|
241
282
|
// visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.
|
|
242
283
|
// A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).
|
|
@@ -253,35 +294,27 @@ class LuTooltipTriggerDirective {
|
|
|
253
294
|
// This keeps the whole batch to a single forced reflow instead of one reflow per element.
|
|
254
295
|
afterRenderEffect({
|
|
255
296
|
earlyRead: () => {
|
|
256
|
-
|
|
257
|
-
const measured = this.#measureTrigger() > 0;
|
|
258
|
-
const shouldMeasure = measured && !this.tooltipDisabled() && this.tooltipWhenEllipsis();
|
|
259
|
-
if (!shouldMeasure) {
|
|
260
|
-
return { measure: false };
|
|
261
|
-
}
|
|
262
|
-
const host = this.#host.nativeElement;
|
|
263
|
-
const hostStyle = getComputedStyle(host);
|
|
264
|
-
// No need to run a test if the element is not truncated
|
|
265
|
-
// or if its `display` property is set to `inline`
|
|
266
|
-
// (especially for Safari, which still calculates a width, unlike other browsers)
|
|
267
|
-
if (hostStyle.textOverflow !== 'ellipsis' || hostStyle.display === 'inline') {
|
|
268
|
-
return { measure: false };
|
|
269
|
-
}
|
|
270
|
-
return { measure: true, host, hostStyle };
|
|
297
|
+
this.#measurementRequest.set(this.#readMeasurementRequest());
|
|
271
298
|
},
|
|
272
|
-
write: (
|
|
273
|
-
const
|
|
274
|
-
if (!
|
|
275
|
-
|
|
299
|
+
write: () => {
|
|
300
|
+
const request = this.#measurementRequest();
|
|
301
|
+
if (!request) {
|
|
302
|
+
this.#preparedMeasurement.set(null);
|
|
303
|
+
return;
|
|
276
304
|
}
|
|
277
305
|
const clone = (this.#clone ??= this.#createClone());
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
306
|
+
Object.assign(clone.style, request.cloneStyles);
|
|
307
|
+
const html = request.host.innerHTML;
|
|
308
|
+
// Writing the same markup back would invalidate layout for nothing, and every tooltip
|
|
309
|
+
// measured after this one would then pay for a new layout on its first geometry read.
|
|
310
|
+
if (clone.innerHTML !== html) {
|
|
311
|
+
clone.innerHTML = html;
|
|
312
|
+
}
|
|
313
|
+
this.#preparedMeasurement.set({ host: request.host, clone });
|
|
281
314
|
},
|
|
282
|
-
read: (
|
|
283
|
-
const measurement =
|
|
284
|
-
if (!measurement
|
|
315
|
+
read: () => {
|
|
316
|
+
const measurement = this.#preparedMeasurement();
|
|
317
|
+
if (!measurement) {
|
|
285
318
|
this.#hasEllipsis.set(false);
|
|
286
319
|
return;
|
|
287
320
|
}
|
|
@@ -306,6 +339,8 @@ class LuTooltipTriggerDirective {
|
|
|
306
339
|
this.#measurementObserversArmed = true;
|
|
307
340
|
const el = this.#host.nativeElement;
|
|
308
341
|
const bump = () => this.#measureTrigger.update((v) => v + 1);
|
|
342
|
+
// `observe` always delivers an initial notification, which doubles as the first measurement:
|
|
343
|
+
// asking for one here as well would measure every tooltip on the page twice.
|
|
309
344
|
const resizeObserver = new ResizeObserver(() => bump());
|
|
310
345
|
resizeObserver.observe(el);
|
|
311
346
|
const mutationObserver = new MutationObserver(() => bump());
|
|
@@ -314,8 +349,26 @@ class LuTooltipTriggerDirective {
|
|
|
314
349
|
resizeObserver.disconnect();
|
|
315
350
|
mutationObserver.disconnect();
|
|
316
351
|
});
|
|
317
|
-
|
|
318
|
-
|
|
352
|
+
}
|
|
353
|
+
// Reads everything the measurement needs from the host, in the read-only phase.
|
|
354
|
+
#readMeasurementRequest() {
|
|
355
|
+
// reading the trigger registers the dependency; 0 means "not measured yet"
|
|
356
|
+
const measured = this.#measureTrigger() > 0;
|
|
357
|
+
if (!measured || this.tooltipDisabled() || !this.tooltipWhenEllipsis()) {
|
|
358
|
+
return null;
|
|
359
|
+
}
|
|
360
|
+
const host = this.#host.nativeElement;
|
|
361
|
+
// A `CSSStyleDeclaration` is live: reading one property from it in the write phase, after
|
|
362
|
+
// another tooltip has already mutated the DOM, forces a full style recalculation — once per
|
|
363
|
+
// tooltip on the page. Every value is therefore copied out here.
|
|
364
|
+
const { textOverflow, display, padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = getComputedStyle(host);
|
|
365
|
+
// No need to run a test if the element is not truncated
|
|
366
|
+
// or if its `display` property is set to `inline`
|
|
367
|
+
// (especially for Safari, which still calculates a width, unlike other browsers)
|
|
368
|
+
if (textOverflow !== 'ellipsis' || display === 'inline') {
|
|
369
|
+
return null;
|
|
370
|
+
}
|
|
371
|
+
return { host, cloneStyles: { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } };
|
|
319
372
|
}
|
|
320
373
|
#createClone() {
|
|
321
374
|
const clone = this.#document.createElement('div');
|
|
@@ -335,10 +388,6 @@ class LuTooltipTriggerDirective {
|
|
|
335
388
|
this.#document.body.appendChild(clone);
|
|
336
389
|
return clone;
|
|
337
390
|
}
|
|
338
|
-
#applyClonedStyles(clone, hostStyle) {
|
|
339
|
-
const { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;
|
|
340
|
-
Object.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });
|
|
341
|
-
}
|
|
342
391
|
onMouseEnter() {
|
|
343
392
|
this.#action.set('open');
|
|
344
393
|
}
|
|
@@ -393,16 +442,33 @@ class LuTooltipTriggerDirective {
|
|
|
393
442
|
}
|
|
394
443
|
prepareOverlay() {
|
|
395
444
|
if (this.overlayRef) {
|
|
396
|
-
return;
|
|
445
|
+
return this.overlayRef;
|
|
397
446
|
}
|
|
398
|
-
|
|
447
|
+
const overlayRef = this.#overlay.create({
|
|
399
448
|
scrollStrategy: this.#overlay.scrollStrategies.close(),
|
|
400
449
|
disposeOnNavigation: true,
|
|
401
450
|
});
|
|
451
|
+
// `disposeOnNavigation` disposes the overlay on a history navigation (browser back/forward)
|
|
452
|
+
// while this directive may live on: forget it then, so the next opening creates a new one
|
|
453
|
+
// instead of attaching to a disposed overlay (`attach()` returns null).
|
|
454
|
+
overlayRef
|
|
455
|
+
.detachments()
|
|
456
|
+
.pipe(takeUntilDestroyed(this.#destroyRef))
|
|
457
|
+
.subscribe({
|
|
458
|
+
complete: () => {
|
|
459
|
+
if (this.overlayRef === overlayRef) {
|
|
460
|
+
delete this.overlayRef;
|
|
461
|
+
// the content effect writes to the disposed panel: a reopening would overwrite it without destroying it
|
|
462
|
+
this.#effectRef?.destroy();
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
});
|
|
402
466
|
const describedBy = this.ariaDescribedBy();
|
|
403
467
|
if (describedBy !== null) {
|
|
404
|
-
|
|
468
|
+
overlayRef.overlayElement.id = describedBy;
|
|
405
469
|
}
|
|
470
|
+
this.overlayRef = overlayRef;
|
|
471
|
+
return overlayRef;
|
|
406
472
|
}
|
|
407
473
|
attachTooltip() {
|
|
408
474
|
// A pending debounced 'open' is flushed when `toObservable(#realAction)` completes on
|
|
@@ -413,18 +479,10 @@ class LuTooltipTriggerDirective {
|
|
|
413
479
|
return;
|
|
414
480
|
}
|
|
415
481
|
const position = this.legacyPositionBuilder();
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
positionStrategy: position,
|
|
419
|
-
scrollStrategy: this.#overlay.scrollStrategies.close(),
|
|
420
|
-
disposeOnNavigation: true,
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
else {
|
|
424
|
-
this.overlayRef.updatePositionStrategy(position);
|
|
425
|
-
}
|
|
482
|
+
const overlayRef = this.prepareOverlay();
|
|
483
|
+
overlayRef.updatePositionStrategy(position);
|
|
426
484
|
const portal = new ComponentPortal(LuTooltipPanelComponent);
|
|
427
|
-
const ref =
|
|
485
|
+
const ref = overlayRef.attach(portal);
|
|
428
486
|
ref.instance.enterDelay.set(this.tooltipEnterDelay());
|
|
429
487
|
position.positionChanges
|
|
430
488
|
.pipe(takeUntilDestroyed(this.#destroyRef), map(({ connectionPair }) => connectionPair), startWith(position.positions[0]))
|
|
@@ -452,6 +510,9 @@ class LuTooltipTriggerDirective {
|
|
|
452
510
|
this.#effectRef?.destroy();
|
|
453
511
|
}
|
|
454
512
|
setAccessibilityProperties(tabindex) {
|
|
513
|
+
if (this.#resolveTriggerAnchorElement()) {
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
455
516
|
if (tabindex === null) {
|
|
456
517
|
this.#renderer.removeAttribute(this.#host.nativeElement, 'tabindex');
|
|
457
518
|
return;
|
|
@@ -552,6 +613,21 @@ class LuTooltipTriggerDirective {
|
|
|
552
613
|
return anchor;
|
|
553
614
|
}
|
|
554
615
|
}
|
|
616
|
+
#resolveTriggerAnchorElement() {
|
|
617
|
+
const triggerAnchor = this.tooltipTriggerAnchor();
|
|
618
|
+
if (isNil(triggerAnchor)) {
|
|
619
|
+
return null;
|
|
620
|
+
}
|
|
621
|
+
else if (triggerAnchor instanceof HTMLElement) {
|
|
622
|
+
return triggerAnchor;
|
|
623
|
+
}
|
|
624
|
+
else if ('getElementRef' in triggerAnchor) {
|
|
625
|
+
return triggerAnchor.getElementRef().nativeElement;
|
|
626
|
+
}
|
|
627
|
+
else {
|
|
628
|
+
return triggerAnchor.nativeElement;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
555
631
|
invertVerticalPos(y) {
|
|
556
632
|
if (y === 'top') {
|
|
557
633
|
return 'bottom';
|
|
@@ -571,7 +647,7 @@ class LuTooltipTriggerDirective {
|
|
|
571
647
|
return x;
|
|
572
648
|
}
|
|
573
649
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
574
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip],[prTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, prTooltipInput: { classPropertyName: "prTooltipInput", publicName: "prTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipEnterDelay: { classPropertyName: "prTooltipEnterDelay", publicName: "prTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipLeaveDelay: { classPropertyName: "prTooltipLeaveDelay", publicName: "prTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, prTooltipDisabled: { classPropertyName: "prTooltipDisabled", publicName: "prTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipOnlyForDisplay: { classPropertyName: "prTooltipOnlyForDisplay", publicName: "prTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, prTooltipPosition: { classPropertyName: "prTooltipPosition", publicName: "prTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, prTooltipWhenEllipsisInput: { classPropertyName: "prTooltipWhenEllipsisInput", publicName: "prTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, prTooltipAnchor: { classPropertyName: "prTooltipAnchor", publicName: "prTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null },
|
|
650
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip],[prTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, prTooltipInput: { classPropertyName: "prTooltipInput", publicName: "prTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipEnterDelay: { classPropertyName: "prTooltipEnterDelay", publicName: "prTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipLeaveDelay: { classPropertyName: "prTooltipLeaveDelay", publicName: "prTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, prTooltipDisabled: { classPropertyName: "prTooltipDisabled", publicName: "prTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, prTooltipOnlyForDisplay: { classPropertyName: "prTooltipOnlyForDisplay", publicName: "prTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, prTooltipPosition: { classPropertyName: "prTooltipPosition", publicName: "prTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, prTooltipWhenEllipsisInput: { classPropertyName: "prTooltipWhenEllipsisInput", publicName: "prTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, prTooltipAnchor: { classPropertyName: "prTooltipAnchor", publicName: "prTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, luTooltipTriggerAnchor: { classPropertyName: "luTooltipTriggerAnchor", publicName: "luTooltipTriggerAnchor", isSignal: true, isRequired: false, transformFunction: null }, prTooltipTriggerAnchor: { classPropertyName: "prTooltipTriggerAnchor", publicName: "prTooltipTriggerAnchor", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-describedby": "ariaDescribedBy()", "attr.id": "id()", "class.is-whenEllipsis": "luTooltipWhenEllipsis()" }, classAttribute: "tooltip_trigger" }, exportAs: ["luTooltip"], ngImport: i0 }); }
|
|
575
651
|
}
|
|
576
652
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
|
|
577
653
|
type: Directive,
|
|
@@ -581,17 +657,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
581
657
|
host: {
|
|
582
658
|
'[attr.aria-describedby]': 'ariaDescribedBy()',
|
|
583
659
|
'[attr.id]': 'id()',
|
|
584
|
-
'(mouseenter)': 'onMouseEnter()',
|
|
585
|
-
'(mouseleave)': 'onMouseLeave()',
|
|
586
|
-
'(focus)': 'onFocus()',
|
|
587
|
-
'(focusout)': 'onFocusOut($event)',
|
|
588
|
-
'(blur)': 'onBlur()',
|
|
589
|
-
'(keydown.escape)': 'onEscape($event)',
|
|
590
660
|
class: 'tooltip_trigger',
|
|
591
661
|
'[class.is-whenEllipsis]': 'luTooltipWhenEllipsis()',
|
|
592
662
|
},
|
|
593
663
|
}]
|
|
594
|
-
}], ctorParameters: () => [], propDecorators: { luTooltipInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltip", required: false }] }], prTooltipInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltip", required: false }] }], luTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipEnterDelay", required: false }] }], prTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipEnterDelay", required: false }] }], luTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipLeaveDelay", required: false }] }], prTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipLeaveDelay", required: false }] }], luTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipDisabled", required: false }] }], prTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipDisabled", required: false }] }], luTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipOnlyForDisplay", required: false }] }], prTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipOnlyForDisplay", required: false }] }], luTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipPosition", required: false }] }], prTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipPosition", required: false }] }], luTooltipWhenEllipsisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipWhenEllipsis", required: false }] }], prTooltipWhenEllipsisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipWhenEllipsis", required: false }] }], luTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipAnchor", required: false }] }], prTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipAnchor", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
664
|
+
}], ctorParameters: () => [], propDecorators: { luTooltipInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltip", required: false }] }], prTooltipInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltip", required: false }] }], luTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipEnterDelay", required: false }] }], prTooltipEnterDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipEnterDelay", required: false }] }], luTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipLeaveDelay", required: false }] }], prTooltipLeaveDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipLeaveDelay", required: false }] }], luTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipDisabled", required: false }] }], prTooltipDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipDisabled", required: false }] }], luTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipOnlyForDisplay", required: false }] }], prTooltipOnlyForDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipOnlyForDisplay", required: false }] }], luTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipPosition", required: false }] }], prTooltipPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipPosition", required: false }] }], luTooltipWhenEllipsisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipWhenEllipsis", required: false }] }], prTooltipWhenEllipsisInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipWhenEllipsis", required: false }] }], luTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipAnchor", required: false }] }], prTooltipAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipAnchor", required: false }] }], luTooltipTriggerAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "luTooltipTriggerAnchor", required: false }] }], prTooltipTriggerAnchor: [{ type: i0.Input, args: [{ isSignal: true, alias: "prTooltipTriggerAnchor", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
595
665
|
|
|
596
666
|
/**
|
|
597
667
|
* @deprecated use `LuTooltipTriggerDirective` instead
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-prisme-tooltip.mjs","sources":["../../../packages/prisme/tooltip/animation/tooltip.animation.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.html","../../../packages/prisme/tooltip/trigger/tooltip-visibility.observer.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/prisme/tooltip/tooltip.module.ts","../../../packages/prisme/tooltip/lucca-prisme-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,pr-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\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\treadonly enterDelay = signal(300);\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\n\t\tclass=\"tooltip\"\n\t\t[class]=\"contentPositionClasses()\"\n\t\t[innerHtml]=\"content\"\n\t\t[style.--components-tooltip-animationDelay]=\"enterDelay() + 'ms'\"\n\t></div>\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis\n * measurement until the host element is near the viewport.\n *\n * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when\n * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then\n * delivers a single batched callback instead of one per element.\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipVisibilityObserver {\n\t#observer?: IntersectionObserver;\n\treadonly #callbacks = new WeakMap<Element, () => void>();\n\n\t/** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */\n\tobserveOnce(element: Element, onVisible: () => void): void {\n\t\tthis.#callbacks.set(element, onVisible);\n\t\tthis.#getObserver().observe(element);\n\t}\n\n\tunobserve(element: Element): void {\n\t\tthis.#callbacks.delete(element);\n\t\tthis.#observer?.unobserve(element);\n\t}\n\n\t// Created lazily so the observer is only instantiated in the browser, on first use.\n\t#getObserver(): IntersectionObserver {\n\t\treturn (this.#observer ??= new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tif (!entry.isIntersecting) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst onVisible = this.#callbacks.get(entry.target);\n\t\t\t\t\tthis.unobserve(entry.target);\n\t\t\t\t\tonVisible?.();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ rootMargin: '100px' },\n\t\t));\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 { DOCUMENT } from '@angular/common';\nimport {\n\tafterRenderEffect,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getPushPanelViewportMargin, isNil, isNotNil, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { startWith, timer } from 'rxjs';\nimport { debounce, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { TooltipPosition } from './tooltip-position';\nimport { TooltipVisibilityObserver } from './tooltip-visibility.observer';\n\nexport interface LuTooltipAnchorRef {\n\tgetElementRef(): ElementRef;\n}\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip],[prTooltip]',\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'(focusout)': 'onFocusOut($event)',\n\t\t'(blur)': 'onBlur()',\n\t\t'(keydown.escape)': 'onEscape($event)',\n\t\tclass: 'tooltip_trigger',\n\t\t'[class.is-whenEllipsis]': 'luTooltipWhenEllipsis()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\treadonly #renderer = inject(Renderer2);\n\treadonly #document = inject(DOCUMENT);\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #visibilityObserver = inject(TooltipVisibilityObserver);\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\treadonly prTooltipInput = input<string | SafeHtml>('', { alias: 'prTooltip' });\n\treadonly prTooltip = linkedSignal<string | SafeHtml>(() => this.prTooltipInput());\n\treadonly tooltipContent = computed(() => this.luTooltip() || this.prTooltip());\n\n\treadonly luTooltipEnterDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly tooltipEnterDelay = computed(() => this.luTooltipEnterDelay() || this.prTooltipEnterDelay());\n\n\treadonly luTooltipLeaveDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\treadonly tooltipLeaveDelay = computed(() => this.luTooltipLeaveDelay() || this.prTooltipLeaveDelay());\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly prTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly tooltipDisabled = computed(() => this.prTooltipDisabled() || this.luTooltipDisabled());\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly prTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly tooltipOnlyForDisplay = computed(() => this.prTooltipOnlyForDisplay() || this.luTooltipOnlyForDisplay());\n\n\treadonly luTooltipPosition = input<TooltipPosition | null>(null);\n\treadonly prTooltipPosition = input<TooltipPosition>('above');\n\treadonly tooltipPosition = computed(() => this.luTooltipPosition() ?? this.prTooltipPosition());\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\treadonly prTooltipWhenEllipsisInput = input(false, { alias: 'prTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\treadonly prTooltipWhenEllipsis = linkedSignal(() => this.prTooltipWhenEllipsisInput());\n\treadonly tooltipWhenEllipsis = computed(() => this.prTooltipWhenEllipsis() || this.luTooltipWhenEllipsis());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(null);\n\treadonly prTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(this.#host);\n\treadonly tooltipAnchor = computed(() => this.luTooltipAnchor() || this.prTooltipAnchor());\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.tooltipDisabled() || this.tooltipWhenEllipsis() || this.tooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\n\t// 0 until the element first appears; bumped for the initial measurement and on every real\n\t// size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).\n\treadonly #measureTrigger = signal(0);\n\n\t// guards the one-time setup of the persistent resize/mutation observers\n\t#measurementObserversArmed = false;\n\n\t// the IntersectionObserver callback and a debounced 'open' action (see openTooltip) can\n\t// fire after the view is destroyed; avoid touching the destroyed injector (NG0911) or\n\t// recreating the overlay when that happens\n\t#destroyed = false;\n\n\t// written only from the `read` phase of the afterRenderEffect below\n\treadonly #hasEllipsis = signal(false);\n\n\t// reusable hidden clone, one per directive, used to measure the unconstrained width\n\t#clone?: HTMLDivElement;\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): 'open' | 'close' | null => {\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.tooltipDisabled()) {\n\t\t\t\treturn previous?.value ?? null;\n\t\t\t}\n\n\t\t\tif (this.tooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : (previous?.value ?? null);\n\t\t\t}\n\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\t#effectRef?: EffectRef;\n\n\t// pane the focus moved into when it last left this trigger, or null\n\t#focusLeftToPane: Element | null = null;\n\n\tconstructor() {\n\t\tthis.#destroyRef.onDestroy(() => (this.#destroyed = true));\n\n\t\t// content attach/detach — immediate on open, VoiceOver/Safari misses a late aria-describedby\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' ? 0 : this.tooltipLeaveDelay())),\n\t\t\t\ttap((action) => {\n\t\t\t\t\tif (action === 'open') {\n\t\t\t\t\t\tthis.attachTooltip();\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.tooltipDisabled() && (!this.tooltipWhenEllipsis() || 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\n\t\t// Defer the first measurement until the element is near the viewport, then stop tracking\n\t\t// visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.\n\t\t// A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).\n\t\teffect((onCleanup) => {\n\t\t\tif (!this.tooltipWhenEllipsis() || this.tooltipDisabled() || this.#measurementObserversArmed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst el = this.#host.nativeElement;\n\t\t\tthis.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());\n\n\t\t\tonCleanup(() => this.#visibilityObserver.unobserve(el));\n\t\t});\n\n\t\t// Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip\n\t\t// on the page — all DOM writes happen together, then all geometry reads happen together.\n\t\t// This keeps the whole batch to a single forced reflow instead of one reflow per element.\n\t\tafterRenderEffect({\n\t\t\tearlyRead: () => {\n\t\t\t\t// reading the trigger registers the dependency; 0 means \"not measured yet\"\n\t\t\t\tconst measured = this.#measureTrigger() > 0;\n\t\t\t\tconst shouldMeasure = measured && !this.tooltipDisabled() && this.tooltipWhenEllipsis();\n\t\t\t\tif (!shouldMeasure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst host = this.#host.nativeElement;\n\t\t\t\tconst hostStyle = getComputedStyle(host);\n\t\t\t\t// No need to run a test if the element is not truncated\n\t\t\t\t// or if its `display` property is set to `inline`\n\t\t\t\t// (especially for Safari, which still calculates a width, unlike other browsers)\n\t\t\t\tif (hostStyle.textOverflow !== 'ellipsis' || hostStyle.display === 'inline') {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\treturn { measure: true, host, hostStyle } as const;\n\t\t\t},\n\t\t\twrite: (earlyReadResult) => {\n\t\t\t\tconst snapshot = earlyReadResult();\n\t\t\t\tif (!snapshot.measure) {\n\t\t\t\t\treturn { measure: false } as const;\n\t\t\t\t}\n\t\t\t\tconst clone = (this.#clone ??= this.#createClone());\n\t\t\t\tthis.#applyClonedStyles(clone, snapshot.hostStyle);\n\t\t\t\tclone.innerHTML = snapshot.host.innerHTML;\n\t\t\t\treturn { measure: true, host: snapshot.host, clone } as const;\n\t\t\t},\n\t\t\tread: (writeResult) => {\n\t\t\t\tconst measurement = writeResult();\n\t\t\t\tif (!measurement.measure) {\n\t\t\t\t\tthis.#hasEllipsis.set(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Computed `width`, unlike `getBoundingClientRect`, ignores ancestor CSS transforms\n\t\t\t\t// (e.g. the popover's scale-in animation), so a mid-animation read can't mistake the\n\t\t\t\t// host for narrower than it is and get stuck with a false \"has ellipsis\".\n\t\t\t\tconst cloneWidth = parseFloat(getComputedStyle(measurement.clone).width);\n\t\t\t\tconst hostWidth = parseFloat(getComputedStyle(measurement.host).width);\n\t\t\t\t// rounded to 3 decimals to ignore sub-pixel noise\n\t\t\t\tthis.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));\n\t\t\t},\n\t\t});\n\n\t\tthis.#destroyRef.onDestroy(() => this.#clone?.remove());\n\t}\n\n\t// Set up — once — the observers that ask for a re-measurement on real size/content changes.\n\t// They stay connected for the directive lifetime (even off-screen), so scrolling never\n\t// re-measures; only an actual resize/mutation does.\n\t#armMeasurementObservers(): void {\n\t\tif (this.#measurementObserversArmed || this.#destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#measurementObserversArmed = true;\n\n\t\tconst el = this.#host.nativeElement;\n\t\tconst bump = () => this.#measureTrigger.update((v) => v + 1);\n\n\t\tconst resizeObserver = new ResizeObserver(() => bump());\n\t\tresizeObserver.observe(el);\n\n\t\tconst mutationObserver = new MutationObserver(() => bump());\n\t\tmutationObserver.observe(el, { characterData: true, subtree: true, childList: true });\n\n\t\tthis.#destroyRef.onDestroy(() => {\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t});\n\n\t\t// initial measurement now that the element has appeared\n\t\tbump();\n\t}\n\n\t#createClone(): HTMLDivElement {\n\t\tconst clone = this.#document.createElement('div');\n\t\tclone.setAttribute('aria-hidden', 'true');\n\t\tObject.assign(clone.style, {\n\t\t\tinlineSize: 'fit-content',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\t// `fixed` + pinned origin keeps the (potentially very wide) clone out of the\n\t\t\t// document's scrollable overflow, so measuring never flashes a scrollbar.\n\t\t\tposition: 'fixed',\n\t\t\tinsetBlockStart: '0',\n\t\t\tinsetInlineStart: '0',\n\t\t\tvisibility: 'hidden',\n\t\t\tpointerEvents: 'none',\n\t\t\tcontain: 'layout',\n\t\t});\n\t\tthis.#document.body.appendChild(clone);\n\t\treturn clone;\n\t}\n\n\t#applyClonedStyles(clone: HTMLDivElement, hostStyle: CSSStyleDeclaration): void {\n\t\tconst { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = hostStyle;\n\t\tObject.assign(clone.style, { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize });\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\tconst leftToPane = this.#focusLeftToPane;\n\t\tthis.#focusLeftToPane = null;\n\n\t\t// A closing overlay hands the focus back to its trigger.\n\t\t// That is not the user reaching the trigger, so the tooltip stays closed.\n\t\tif (this.#isForeignPane(leftToPane)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonFocusOut(event: FocusEvent) {\n\t\t// Captured on the way out.\n\t\t// Some overlays dispose their pane before handing the focus back, leaving nothing to inspect.\n\t\tthis.#focusLeftToPane = event.relatedTarget instanceof Element ? this.#paneOf(event.relatedTarget) : null;\n\t}\n\n\t#isForeignPane(pane: Element | null): boolean {\n\t\t// Panes, not the whole container.\n\t\t// A trigger inside an overlay keeps its tooltip when the focus moves within that same overlay.\n\t\treturn isNotNil(pane) && pane !== this.#paneOf(this.#host.nativeElement);\n\t}\n\n\t#paneOf(element: Element): Element | null {\n\t\treturn element.closest('.cdk-overlay-pane');\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonEscape(event: Event) {\n\t\tevent.stopPropagation();\n\t\tthis.#action.set(null);\n\t\tthis.closeTooltip();\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t}\n\n\tprivate prepareOverlay(): void {\n\t\tif (this.overlayRef) {\n\t\t\treturn;\n\t\t}\n\t\tthis.overlayRef = this.#overlay.create({\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\tconst describedBy = this.ariaDescribedBy();\n\t\tif (describedBy !== null) {\n\t\t\tthis.overlayRef.overlayElement.id = describedBy;\n\t\t}\n\t}\n\n\tprivate attachTooltip(): void {\n\t\t// A pending debounced 'open' is flushed when `toObservable(#realAction)` completes on\n\t\t// destroy (`debounce` re-emits the held value on completion), i.e. AFTER ngOnDestroy has\n\t\t// disposed the overlay. Opening then would recreate an overlay anchored to a detached\n\t\t// host — pinned to the viewport's top-left corner — that nothing would ever dispose.\n\t\tif (this.#destroyed || this.overlayRef?.hasAttached()) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tif (!this.overlayRef) {\n\t\t\tthis.overlayRef = this.#overlay.create({\n\t\t\t\tpositionStrategy: position,\n\t\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t} else {\n\t\t\tthis.overlayRef.updatePositionStrategy(position);\n\t\t}\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = this.overlayRef.attach(portal);\n\t\tref.instance.enterDelay.set(this.tooltipEnterDelay());\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.tooltipContent()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.tooltipContent],\n\t\t\t\t(content) => {\n\t\t\t\t\tref.instance.content.set(content);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.tooltipWhenEllipsis()) {\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\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\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}\n\t\tthis.#effectRef?.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\tif (!this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.prepareOverlay();\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.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\t// Legacy position builder to handle existing position API\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.tooltipPosition();\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.#resolveAnchor())\n\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.#host.nativeElement))\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\t#resolveAnchor(): FlexibleConnectedPositionStrategyOrigin {\n\t\tconst anchor = this.tooltipAnchor();\n\n\t\tif (isNil(anchor)) {\n\t\t\treturn this.#host;\n\t\t} else if ('getElementRef' in anchor) {\n\t\t\treturn anchor.getElementRef();\n\t\t} else {\n\t\t\treturn anchor;\n\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","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective` 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, 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":["ɵeffectWithDeps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-prisme-tooltip.mjs","sources":["../../../packages/prisme/tooltip/animation/tooltip.animation.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.ts","../../../packages/prisme/tooltip/panel/tooltip-panel.component.html","../../../packages/prisme/tooltip/trigger/tooltip-visibility.observer.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.directive.ts","../../../packages/prisme/tooltip/trigger/tooltip-trigger.module.ts","../../../packages/prisme/tooltip/tooltip.module.ts","../../../packages/prisme/tooltip/lucca-prisme-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,pr-tooltip-panel',\n\ttemplateUrl: './tooltip-panel.component.html',\n\tstyleUrl: './tooltip-panel.component.scss',\n\thost: {\n\t\trole: 'tooltip',\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\treadonly enterDelay = signal(300);\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\n\t\tclass=\"tooltip\"\n\t\t[class]=\"contentPositionClasses()\"\n\t\t[innerHtml]=\"content\"\n\t\t[style.--components-tooltip-animationDelay]=\"enterDelay() + 'ms'\"\n\t></div>\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Single, shared IntersectionObserver used by every tooltip to defer its first ellipsis\n * measurement until the host element is near the viewport.\n *\n * One observer for the whole page is far cheaper than one IntersectionObserver per tooltip when\n * many tooltips are created at once (e.g. a large table being (re)rendered): the browser then\n * delivers a single batched callback instead of one per element.\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipVisibilityObserver {\n\t#observer?: IntersectionObserver;\n\treadonly #callbacks = new WeakMap<Element, () => void>();\n\n\t/** Calls `onVisible` once — the first time `element` comes near the viewport — then stops observing it. */\n\tobserveOnce(element: Element, onVisible: () => void): void {\n\t\tthis.#callbacks.set(element, onVisible);\n\t\tthis.#getObserver().observe(element);\n\t}\n\n\tunobserve(element: Element): void {\n\t\tthis.#callbacks.delete(element);\n\t\tthis.#observer?.unobserve(element);\n\t}\n\n\t// Created lazily so the observer is only instantiated in the browser, on first use.\n\t#getObserver(): IntersectionObserver {\n\t\treturn (this.#observer ??= new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\tif (!entry.isIntersecting) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst onVisible = this.#callbacks.get(entry.target);\n\t\t\t\t\tthis.unobserve(entry.target);\n\t\t\t\t\tonVisible?.();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ rootMargin: '100px' },\n\t\t));\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 { DOCUMENT } from '@angular/common';\nimport {\n\tafterRenderEffect,\n\tbooleanAttribute,\n\tcomputed,\n\tDestroyRef,\n\tDirective,\n\teffect,\n\tEffectRef,\n\tElementRef,\n\tinject,\n\tInjector,\n\tinput,\n\tlinkedSignal,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getPushPanelViewportMargin, isNil, isNotNil, ɵeffectWithDeps } from '@lucca/prisme/core';\nimport { startWith, timer } from 'rxjs';\nimport { debounce, filter, map, tap } from 'rxjs/operators';\nimport { LuTooltipPanelComponent } from '../panel';\nimport { TooltipPosition } from './tooltip-position';\nimport { TooltipVisibilityObserver } from './tooltip-visibility.observer';\n\nexport interface LuTooltipAnchorRef {\n\tgetElementRef(): ElementRef;\n}\n\nlet nextId = 0;\n\n@Directive({\n\tselector: '[luTooltip],[prTooltip]',\n\texportAs: 'luTooltip',\n\thost: {\n\t\t'[attr.aria-describedby]': 'ariaDescribedBy()',\n\t\t'[attr.id]': 'id()',\n\t\tclass: 'tooltip_trigger',\n\t\t'[class.is-whenEllipsis]': 'luTooltipWhenEllipsis()',\n\t},\n})\nexport class LuTooltipTriggerDirective implements OnDestroy {\n\treadonly #overlay = inject(Overlay);\n\treadonly #host = inject<ElementRef<HTMLElement>>(ElementRef);\n\treadonly #renderer = inject(Renderer2);\n\treadonly #document = inject(DOCUMENT);\n\treadonly #injector = inject(Injector);\n\treadonly #destroyRef = inject(DestroyRef);\n\treadonly #visibilityObserver = inject(TooltipVisibilityObserver);\n\n\treadonly luTooltipInput = input<string | SafeHtml>('', { alias: 'luTooltip' });\n\treadonly luTooltip = linkedSignal<string | SafeHtml>(() => this.luTooltipInput());\n\treadonly prTooltipInput = input<string | SafeHtml>('', { alias: 'prTooltip' });\n\treadonly prTooltip = linkedSignal<string | SafeHtml>(() => this.prTooltipInput());\n\treadonly tooltipContent = computed(() => this.luTooltip() || this.prTooltip());\n\n\treadonly luTooltipEnterDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipEnterDelay = input(300, { transform: numberAttribute });\n\treadonly tooltipEnterDelay = computed(() => this.luTooltipEnterDelay() || this.prTooltipEnterDelay());\n\n\treadonly luTooltipLeaveDelay = input(0, { transform: numberAttribute });\n\treadonly prTooltipLeaveDelay = input(100, { transform: numberAttribute });\n\treadonly tooltipLeaveDelay = computed(() => this.luTooltipLeaveDelay() || this.prTooltipLeaveDelay());\n\n\treadonly luTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly prTooltipDisabled = input(false, { transform: booleanAttribute });\n\treadonly tooltipDisabled = computed(() => this.prTooltipDisabled() || this.luTooltipDisabled());\n\n\treadonly luTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly prTooltipOnlyForDisplay = input(false, { transform: booleanAttribute });\n\treadonly tooltipOnlyForDisplay = computed(() => this.prTooltipOnlyForDisplay() || this.luTooltipOnlyForDisplay());\n\n\treadonly luTooltipPosition = input<TooltipPosition | null>(null);\n\treadonly prTooltipPosition = input<TooltipPosition>('above');\n\treadonly tooltipPosition = computed(() => this.luTooltipPosition() ?? this.prTooltipPosition());\n\n\treadonly luTooltipWhenEllipsisInput = input(false, { alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });\n\treadonly prTooltipWhenEllipsisInput = input(false, { alias: 'prTooltipWhenEllipsis', transform: booleanAttribute });\n\n\treadonly luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput());\n\treadonly prTooltipWhenEllipsis = linkedSignal(() => this.prTooltipWhenEllipsisInput());\n\treadonly tooltipWhenEllipsis = computed(() => this.prTooltipWhenEllipsis() || this.luTooltipWhenEllipsis());\n\n\treadonly luTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(null);\n\treadonly prTooltipAnchor = input<FlexibleConnectedPositionStrategyOrigin | LuTooltipAnchorRef | null | undefined>(this.#host);\n\treadonly tooltipAnchor = computed(() => this.luTooltipAnchor() || this.prTooltipAnchor());\n\n\treadonly luTooltipTriggerAnchor = input<ElementRef<HTMLElement> | HTMLElement | LuTooltipAnchorRef | null | undefined>(null);\n\treadonly prTooltipTriggerAnchor = input<ElementRef<HTMLElement> | HTMLElement | LuTooltipAnchorRef | null | undefined>(null);\n\treadonly tooltipTriggerAnchor = computed(() => this.luTooltipTriggerAnchor() || this.prTooltipTriggerAnchor());\n\n\treadonly id = input<string>(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`);\n\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (this.tooltipDisabled() || this.tooltipWhenEllipsis() || this.tooltipOnlyForDisplay()) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.id()}-panel`;\n\t});\n\n\toverlayRef?: OverlayRef;\n\n\t// 0 until the element first appears; bumped for the initial measurement and on every real\n\t// size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).\n\treadonly #measureTrigger = signal(0);\n\n\t// guards the one-time setup of the persistent resize/mutation observers\n\t#measurementObserversArmed = false;\n\n\t// the IntersectionObserver callback and a debounced 'open' action (see openTooltip) can\n\t// fire after the view is destroyed; avoid touching the destroyed injector (NG0911) or\n\t// recreating the overlay when that happens\n\t#destroyed = false;\n\n\t// written only from the `read` phase of the afterRenderEffect below\n\treadonly #hasEllipsis = signal(false);\n\n\t// reusable hidden clone, one per directive, used to measure the unconstrained width\n\t#clone?: HTMLDivElement;\n\n\t// Each measurement phase hands over to the next one through these signals rather than through\n\t// the value `afterRenderEffect` pipes between phases. A phase only receives that value when the\n\t// phases before it ran in the same pass; a directive created while the after-render hooks are\n\t// running starts mid-pipeline and gets Angular's `registerCleanupFn` as its first argument\n\t// instead. Calling it then registers `undefined` as a cleanup function, which throws\n\t// `fn is not a function` when the view is destroyed, far away from the cause.\n\treadonly #measurementRequest = signal<{ host: HTMLElement; cloneStyles: Record<string, string> } | null>(null);\n\treadonly #preparedMeasurement = signal<{ host: HTMLElement; clone: HTMLDivElement } | null>(null);\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): 'open' | 'close' | null => {\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.tooltipDisabled()) {\n\t\t\t\treturn previous?.value ?? null;\n\t\t\t}\n\n\t\t\tif (this.tooltipWhenEllipsis()) {\n\t\t\t\treturn this.#hasEllipsis() ? 'open' : (previous?.value ?? null);\n\t\t\t}\n\n\t\t\treturn 'open';\n\t\t},\n\t});\n\n\t#effectRef?: EffectRef;\n\n\t// pane the focus moved into when it last left this trigger, or null\n\t#focusLeftToPane: Element | null = null;\n\n\tconstructor() {\n\t\tthis.#destroyRef.onDestroy(() => (this.#destroyed = true));\n\n\t\t// content attach/detach — immediate on open, VoiceOver/Safari misses a late aria-describedby\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' ? 0 : this.tooltipLeaveDelay())),\n\t\t\t\ttap((action) => {\n\t\t\t\t\tif (action === 'open') {\n\t\t\t\t\t\tthis.attachTooltip();\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.tooltipDisabled() && (!this.tooltipWhenEllipsis() || 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\n\t\teffect((onCleanup) => {\n\t\t\tconst trigger = this.#resolveTriggerAnchorElement() ?? this.#host.nativeElement;\n\n\t\t\tconst listen = <T>(eventName: string, callback: (event: T) => void) => this.#renderer.listen(trigger, eventName, (event: T) => untracked(() => callback(event)));\n\n\t\t\tconst unlisten = [\n\t\t\t\tlisten('mouseenter', () => this.onMouseEnter()),\n\t\t\t\tlisten('mouseleave', () => this.onMouseLeave()),\n\t\t\t\tlisten('focus', () => this.onFocus()),\n\t\t\t\tlisten('blur', () => this.onBlur()),\n\t\t\t\tlisten('focusout', (event: FocusEvent) => this.onFocusOut(event)),\n\t\t\t\tlisten('keydown', (event: KeyboardEvent) => {\n\t\t\t\t\tif (event.key === 'Escape') {\n\t\t\t\t\t\tthis.onEscape(event);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t];\n\t\t\tonCleanup(() => unlisten.forEach((fn) => fn()));\n\t\t});\n\n\t\t// Defer the first measurement until the element is near the viewport, then stop tracking\n\t\t// visibility: scrolling must not re-measure, so we arm the resize/mutation observers once.\n\t\t// A single shared IntersectionObserver handles every tooltip (see TooltipVisibilityObserver).\n\t\teffect((onCleanup) => {\n\t\t\tif (!this.tooltipWhenEllipsis() || this.tooltipDisabled() || this.#measurementObserversArmed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst el = this.#host.nativeElement;\n\t\t\tthis.#visibilityObserver.observeOnce(el, () => this.#armMeasurementObservers());\n\n\t\t\tonCleanup(() => this.#visibilityObserver.unobserve(el));\n\t\t});\n\n\t\t// Ellipsis measurement, split across afterRenderEffect phases so that — across every tooltip\n\t\t// on the page — all DOM writes happen together, then all geometry reads happen together.\n\t\t// This keeps the whole batch to a single forced reflow instead of one reflow per element.\n\t\tafterRenderEffect({\n\t\t\tearlyRead: () => {\n\t\t\t\tthis.#measurementRequest.set(this.#readMeasurementRequest());\n\t\t\t},\n\t\t\twrite: () => {\n\t\t\t\tconst request = this.#measurementRequest();\n\t\t\t\tif (!request) {\n\t\t\t\t\tthis.#preparedMeasurement.set(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst clone = (this.#clone ??= this.#createClone());\n\t\t\t\tObject.assign(clone.style, request.cloneStyles);\n\t\t\t\tconst html = request.host.innerHTML;\n\t\t\t\t// Writing the same markup back would invalidate layout for nothing, and every tooltip\n\t\t\t\t// measured after this one would then pay for a new layout on its first geometry read.\n\t\t\t\tif (clone.innerHTML !== html) {\n\t\t\t\t\tclone.innerHTML = html;\n\t\t\t\t}\n\t\t\t\tthis.#preparedMeasurement.set({ host: request.host, clone });\n\t\t\t},\n\t\t\tread: () => {\n\t\t\t\tconst measurement = this.#preparedMeasurement();\n\t\t\t\tif (!measurement) {\n\t\t\t\t\tthis.#hasEllipsis.set(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Computed `width`, unlike `getBoundingClientRect`, ignores ancestor CSS transforms\n\t\t\t\t// (e.g. the popover's scale-in animation), so a mid-animation read can't mistake the\n\t\t\t\t// host for narrower than it is and get stuck with a false \"has ellipsis\".\n\t\t\t\tconst cloneWidth = parseFloat(getComputedStyle(measurement.clone).width);\n\t\t\t\tconst hostWidth = parseFloat(getComputedStyle(measurement.host).width);\n\t\t\t\t// rounded to 3 decimals to ignore sub-pixel noise\n\t\t\t\tthis.#hasEllipsis.set(Math.round(cloneWidth * 1000) > Math.round(hostWidth * 1000));\n\t\t\t},\n\t\t});\n\n\t\tthis.#destroyRef.onDestroy(() => this.#clone?.remove());\n\t}\n\n\t// Set up — once — the observers that ask for a re-measurement on real size/content changes.\n\t// They stay connected for the directive lifetime (even off-screen), so scrolling never\n\t// re-measures; only an actual resize/mutation does.\n\t#armMeasurementObservers(): void {\n\t\tif (this.#measurementObserversArmed || this.#destroyed) {\n\t\t\treturn;\n\t\t}\n\t\tthis.#measurementObserversArmed = true;\n\n\t\tconst el = this.#host.nativeElement;\n\t\tconst bump = () => this.#measureTrigger.update((v) => v + 1);\n\n\t\t// `observe` always delivers an initial notification, which doubles as the first measurement:\n\t\t// asking for one here as well would measure every tooltip on the page twice.\n\t\tconst resizeObserver = new ResizeObserver(() => bump());\n\t\tresizeObserver.observe(el);\n\n\t\tconst mutationObserver = new MutationObserver(() => bump());\n\t\tmutationObserver.observe(el, { characterData: true, subtree: true, childList: true });\n\n\t\tthis.#destroyRef.onDestroy(() => {\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t});\n\t}\n\n\t// Reads everything the measurement needs from the host, in the read-only phase.\n\t#readMeasurementRequest(): { host: HTMLElement; cloneStyles: Record<string, string> } | null {\n\t\t// reading the trigger registers the dependency; 0 means \"not measured yet\"\n\t\tconst measured = this.#measureTrigger() > 0;\n\t\tif (!measured || this.tooltipDisabled() || !this.tooltipWhenEllipsis()) {\n\t\t\treturn null;\n\t\t}\n\t\tconst host = this.#host.nativeElement;\n\t\t// A `CSSStyleDeclaration` is live: reading one property from it in the write phase, after\n\t\t// another tooltip has already mutated the DOM, forces a full style recalculation — once per\n\t\t// tooltip on the page. Every value is therefore copied out here.\n\t\tconst { textOverflow, display, padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } = getComputedStyle(host);\n\t\t// No need to run a test if the element is not truncated\n\t\t// or if its `display` property is set to `inline`\n\t\t// (especially for Safari, which still calculates a width, unlike other browsers)\n\t\tif (textOverflow !== 'ellipsis' || display === 'inline') {\n\t\t\treturn null;\n\t\t}\n\t\treturn { host, cloneStyles: { padding, borderWidth, borderStyle, boxSizing, fontFamily, fontWeight, fontStyle, fontSize } };\n\t}\n\n\t#createClone(): HTMLDivElement {\n\t\tconst clone = this.#document.createElement('div');\n\t\tclone.setAttribute('aria-hidden', 'true');\n\t\tObject.assign(clone.style, {\n\t\t\tinlineSize: 'fit-content',\n\t\t\twhiteSpace: 'nowrap',\n\t\t\t// `fixed` + pinned origin keeps the (potentially very wide) clone out of the\n\t\t\t// document's scrollable overflow, so measuring never flashes a scrollbar.\n\t\t\tposition: 'fixed',\n\t\t\tinsetBlockStart: '0',\n\t\t\tinsetInlineStart: '0',\n\t\t\tvisibility: 'hidden',\n\t\t\tpointerEvents: 'none',\n\t\t\tcontain: 'layout',\n\t\t});\n\t\tthis.#document.body.appendChild(clone);\n\t\treturn clone;\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\tconst leftToPane = this.#focusLeftToPane;\n\t\tthis.#focusLeftToPane = null;\n\n\t\t// A closing overlay hands the focus back to its trigger.\n\t\t// That is not the user reaching the trigger, so the tooltip stays closed.\n\t\tif (this.#isForeignPane(leftToPane)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#host.nativeElement.getAttribute('aria-expanded') !== 'true') {\n\t\t\tthis.#action.set('open');\n\t\t}\n\t}\n\n\tonFocusOut(event: FocusEvent) {\n\t\t// Captured on the way out.\n\t\t// Some overlays dispose their pane before handing the focus back, leaving nothing to inspect.\n\t\tthis.#focusLeftToPane = event.relatedTarget instanceof Element ? this.#paneOf(event.relatedTarget) : null;\n\t}\n\n\t#isForeignPane(pane: Element | null): boolean {\n\t\t// Panes, not the whole container.\n\t\t// A trigger inside an overlay keeps its tooltip when the focus moves within that same overlay.\n\t\treturn isNotNil(pane) && pane !== this.#paneOf(this.#host.nativeElement);\n\t}\n\n\t#paneOf(element: Element): Element | null {\n\t\treturn element.closest('.cdk-overlay-pane');\n\t}\n\n\tonBlur() {\n\t\tthis.#action.set('close');\n\t}\n\n\tonEscape(event: Event) {\n\t\tevent.stopPropagation();\n\t\tthis.#action.set(null);\n\t\tthis.closeTooltip();\n\t}\n\n\trequestOpen() {\n\t\tthis.#action.set('open');\n\t}\n\n\trequestClose() {\n\t\tthis.#action.set('close');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closeTooltip();\n\t\tif (this.overlayRef) {\n\t\t\tthis.overlayRef.dispose();\n\t\t\tdelete this.overlayRef;\n\t\t}\n\t}\n\n\tprivate prepareOverlay(): OverlayRef {\n\t\tif (this.overlayRef) {\n\t\t\treturn this.overlayRef;\n\t\t}\n\t\tconst overlayRef = this.#overlay.create({\n\t\t\tscrollStrategy: this.#overlay.scrollStrategies.close(),\n\t\t\tdisposeOnNavigation: true,\n\t\t});\n\t\t// `disposeOnNavigation` disposes the overlay on a history navigation (browser back/forward)\n\t\t// while this directive may live on: forget it then, so the next opening creates a new one\n\t\t// instead of attaching to a disposed overlay (`attach()` returns null).\n\t\toverlayRef\n\t\t\t.detachments()\n\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t.subscribe({\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tif (this.overlayRef === overlayRef) {\n\t\t\t\t\t\tdelete this.overlayRef;\n\t\t\t\t\t\t// the content effect writes to the disposed panel: a reopening would overwrite it without destroying it\n\t\t\t\t\t\tthis.#effectRef?.destroy();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\tconst describedBy = this.ariaDescribedBy();\n\t\tif (describedBy !== null) {\n\t\t\toverlayRef.overlayElement.id = describedBy;\n\t\t}\n\t\tthis.overlayRef = overlayRef;\n\t\treturn overlayRef;\n\t}\n\n\tprivate attachTooltip(): void {\n\t\t// A pending debounced 'open' is flushed when `toObservable(#realAction)` completes on\n\t\t// destroy (`debounce` re-emits the held value on completion), i.e. AFTER ngOnDestroy has\n\t\t// disposed the overlay. Opening then would recreate an overlay anchored to a detached\n\t\t// host — pinned to the viewport's top-left corner — that nothing would ever dispose.\n\t\tif (this.#destroyed || this.overlayRef?.hasAttached()) {\n\t\t\treturn;\n\t\t}\n\t\tconst position = this.legacyPositionBuilder();\n\t\tconst overlayRef = this.prepareOverlay();\n\t\toverlayRef.updatePositionStrategy(position);\n\t\tconst portal = new ComponentPortal(LuTooltipPanelComponent);\n\t\tconst ref = overlayRef.attach(portal);\n\t\tref.instance.enterDelay.set(this.tooltipEnterDelay());\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.tooltipContent()) {\n\t\t\tthis.#effectRef = ɵeffectWithDeps(\n\t\t\t\t[this.tooltipContent],\n\t\t\t\t(content) => {\n\t\t\t\t\tref.instance.content.set(content);\n\t\t\t\t},\n\t\t\t\t{ injector: this.#injector },\n\t\t\t);\n\t\t} else if (this.tooltipWhenEllipsis()) {\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\tref.instance.mouseLeave$.pipe(takeUntilDestroyed(ref.instance.destroyRef)).subscribe(() => this.#action.set('close'));\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}\n\t\tthis.#effectRef?.destroy();\n\t}\n\n\tprivate setAccessibilityProperties(tabindex: number | null): void {\n\t\tif (this.#resolveTriggerAnchorElement()) {\n\t\t\treturn;\n\t\t}\n\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\tif (!this.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.prepareOverlay();\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.tooltipWhenEllipsis() && !this.tooltipOnlyForDisplay()) {\n\t\t\tthis.#renderer.setAttribute(this.#host.nativeElement, 'role', 'button');\n\t\t}\n\t}\n\n\t// Legacy position builder to handle existing position API\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.tooltipPosition();\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.#resolveAnchor())\n\t\t\t.withViewportMargin(getPushPanelViewportMargin(this.#host.nativeElement))\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\t#resolveAnchor(): FlexibleConnectedPositionStrategyOrigin {\n\t\tconst anchor = this.tooltipAnchor();\n\n\t\tif (isNil(anchor)) {\n\t\t\treturn this.#host;\n\t\t} else if ('getElementRef' in anchor) {\n\t\t\treturn anchor.getElementRef();\n\t\t} else {\n\t\t\treturn anchor;\n\t\t}\n\t}\n\n\t#resolveTriggerAnchorElement(): HTMLElement | null {\n\t\tconst triggerAnchor = this.tooltipTriggerAnchor();\n\n\t\tif (isNil(triggerAnchor)) {\n\t\t\treturn null;\n\t\t} else if (triggerAnchor instanceof HTMLElement) {\n\t\t\treturn triggerAnchor;\n\t\t} else if ('getElementRef' in triggerAnchor) {\n\t\t\treturn triggerAnchor.getElementRef().nativeElement as HTMLElement;\n\t\t} else {\n\t\t\treturn triggerAnchor.nativeElement;\n\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","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { LuTooltipTriggerDirective } from './tooltip-trigger.directive';\n\n/**\n * @deprecated use `LuTooltipTriggerDirective` 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, 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":["ɵeffectWithDeps"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucca/prisme",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.6-rc.1",
|
|
4
4
|
"description": "Design system made by @lucca",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"@angular/cdk": "^22.0.0",
|
|
22
22
|
"@angular/animations": "^22.0.0",
|
|
23
23
|
"@types/dompurify": "^3.0.0",
|
|
24
|
-
"@lucca-front/icons": "22.0.
|
|
25
|
-
"@lucca-front/scss": "22.0.
|
|
24
|
+
"@lucca-front/icons": "22.0.6-rc.1",
|
|
25
|
+
"@lucca-front/scss": "22.0.6-rc.1",
|
|
26
26
|
"isomorphic-dompurify": "^2.11.0",
|
|
27
27
|
"date-fns": "^3.6.0",
|
|
28
28
|
"rxjs": "^7.8.0"
|
|
@@ -8,7 +8,7 @@ type IconSize = (typeof ICON_SIZE)[number];
|
|
|
8
8
|
declare const ICON_COLOR: readonly ["product", "error", "warning", "success", "light", "placeholder", "inherit"];
|
|
9
9
|
type IconColor = (typeof ICON_COLOR)[number];
|
|
10
10
|
|
|
11
|
-
type LuccaIcon = 'app' | 'apps' | 'nineTiles' | 'mosaic' | 'tiles' | 'appWidget' | 'arrowBackspace' | 'arrowBackward' | 'backward' | 'arrowBottom' | 'arrowFullSouth' | 'arrowBottomLeft' | 'arrowBottomRight' | 'arrowCenterReduce' | 'arrowChevronBottom' | 'arrowSouth' | 'southArrow' | 'southThinArrow' | 'chevronSouth' | 'chevronBottom' | 'arrowChevronLeft' | 'arrowWest' | 'westArrow' | 'westThinArrow' | 'chevronWest' | 'chevronLeft' | 'arrowChevronRight' | 'arrowEast' | 'eastArrow' | 'eastThinArrow' | 'chevronEast' | 'chevronRight' | 'arrowChevronTop' | 'arrowNorth' | 'northArrow' | 'northThinArrow' | 'chevronNorth' | 'chevronTop' | 'arrowCorner' | 'distribute' | 'arrowCornerExpand' | 'arrowCurvedDownRight' | 'arrowDownload' | 'download' | 'arrowExternal' | 'outside' | 'arrowForward' | 'arrowDouble' | 'forward' | 'arrowLeft' | 'arrowFullWest' | 'arrowLineBottom' | 'arrowLineTop' | 'arrowLogin' | 'login' | 'arrowLogout' | 'logout' | 'arrowOppositeLeftRight' | 'arrowOppositeHorizontal' | 'swap' | 'arrowOppositeRightLeft' | 'arrowOppositeTopBottom' | 'arrowOppositeVertical' | 'creditDebit' | 'arrowRedo' | 'arrowReply' | 'reply' | 'arrowReset' | 'refresh' | 'update' | 'arrowRight' | 'arrowFullEast' | 'arrowSync' | 'sync' | 'arrowSyncStrikethrough' | 'syncDisabled' | 'arrowTop' | 'arrowFullNorth' | 'arrowTopLeft' | 'arrowTopRight' | 'arrowUndo' | 'arrowUnfoldLess' | 'collapse' | 'arrowUnfoldMore' | 'expand' | 'arrowUpload' | 'upload' | 'cloudUpload' | 'bell' | 'notification' | 'bellStrikethrough' | 'book' | 'bookmark' | 'bookmarkFilled' | 'boxArchive' | 'archive' | 'boxUnarchive' | 'unarchive' | 'branch' | 'bubbleAnswer' | 'answer' | 'bubbleConversation' | 'messenger' | 'bubbleSpeech' | 'chat' | 'talk' | 'dialog' | 'bubbleSpeechStrikethrough' | 'bubbleStars' | 'buildingCompany' | 'building' | 'establishment' | 'buildingHouse' | 'house' | 'home' | 'buildingHouseFilled' | 'houseFilled' | 'homeFill' | 'buildingHouseStarred' | 'houseStarred' | 'homeStarred' | 'buildingStore' | 'store' | 'bulb' | 'lightBulb' | 'calendarChecked' | 'calendarDate' | 'calendar' | 'planning' | 'calendarEdit' | 'planningEdit' | 'calendarPlanning' | 'payPeriod' | 'calendarSettings' | 'planningManage' | 'calendarStrikethrough' | 'calendarOff' | 'capCrown' | 'crown' | 'capCrownFilled' | 'capGraduate' | 'graduate' | 'school' | 'certificationFailed' | 'certifKo' | 'certificationSuccess' | 'certifOk' | 'certificationWaiting' | 'certifWaiting' | 'chartDonut' | 'donut' | 'donutChart' | 'chartFlow' | 'familyTree' | 'orgTree' | 'chartHorizontalBar' | 'horizontalBarChart' | 'chartLevels' | 'level' | 'chartPie' | 'dashboard' | 'chartSpider' | 'chartTree' | 'chartVerticalBar' | 'analytics' | 'charts' | 'clipboard' | 'paste' | 'completion' | 'cornersFocus' | 'cornersFullscreenExit' | 'fullscreenExit' | 'cornersFullscreenOpen' | 'fullscreen' | 'dataTable' | 'table' | 'database' | 'databaseArrow' | 'apiSync' | 'deviceCamera' | 'camera' | 'deviceComputer' | 'computer' | 'deviceLaptop' | 'laptop' | 'deviceMobile' | 'deviceMouse' | 'computerMouse' | 'devicePrinter' | 'print' | 'deviceTablet' | 'deviceVideo' | 'dotsDrag' | 'drag' | 'emojiSmile' | 'eye' | 'watch' | 'eyeStrikethrough' | 'unwatch' | 'fileContract' | 'contract' | 'fileCopy' | 'copy' | 'fileDocument' | 'file' | 'files' | 'fileExport' | 'fileFolder' | 'folder' | 'fileImport' | 'importDirty' | 'importPristine' | 'filePlus' | 'fileSign' | 'sign' | 'filtersDescending' | 'filterAbstract' | 'filtersFunnel' | 'funnel' | 'filter' | 'filtersSort' | 'sort' | 'reorder' | 'flag' | 'floppyDiskSave' | 'save' | 'foodBirthdayCake' | 'birthday' | 'foodBobun' | 'lunchAlternative' | 'foodBurger' | 'lunch' | 'foodChefHat' | 'restaurant' | 'foodClocheDish' | 'diner' | 'foodCocktail' | 'drink' | 'foodCoffee' | 'coffee' | 'breaktime' | 'foodCroissant' | 'breakfast' | 'foodCutlery' | 'meal' | 'foodSandwich' | 'snack' | 'formatBulletedList' | 'list' | 'formatClipperAttachment' | 'attach' | 'formatCornerUpLeft' | 'formatUndo' | 'formatCornerUpRight' | 'formatRedo' | 'formatLink' | 'formatNumberedList' | 'formatListNb' | 'formatText' | 'formatJustify' | 'formatTextBold' | 'formatBold' | 'formatTextClear' | 'formatClear' | 'formatTextItalic' | 'formatItalic' | 'formatTextSize' | 'formatSize' | 'formatTextStrikethrough' | 'formatStrikethrough' | 'formatTextUnderline' | 'formatUnderlined' | 'formatUnlink' | 'unlink' | 'gift' | 'present' | 'heart' | 'heartFilled' | 'heartStrikethrough' | 'brokenHeart' | 'hotelBed' | 'bed' | 'hotel' | 'hotelHanger' | 'hanger' | 'hotelIron' | 'iron' | 'pressing' | 'hotelLuggage' | 'luggage' | 'jigsawPuzzle' | 'puzzle' | 'journey' | 'milestone' | 'jumpingCc' | 'lucca' | 'laboratoryTestFlask' | 'test' | 'layers' | 'floor' | 'listChecked' | 'listChecklist' | 'listTodo' | 'listMultipleChoices' | 'lockClose' | 'lock' | 'lockKey' | 'key' | 'lockOpen' | 'unlock' | 'mailEnvelope' | 'mail' | 'mailMailbox' | 'mailbox' | 'stamp' | 'postage' | 'mailPaperPlane' | 'send' | 'mapGlobe' | 'globe' | 'mapLocation' | 'location' | 'mapPin' | 'pin' | 'mapPlan' | 'mapTripStep' | 'mathsDivide' | 'divide' | 'mathsEquals' | 'mathsMinus' | 'minus' | 'partial' | 'minimize' | 'mathsMultiplicate' | 'close' | 'thinCross' | 'cross' | 'crossBold' | 'mathsNotEqual' | 'mathsPlus' | 'plus' | 'plusBold' | 'medicalDoctor' | 'menuBurger' | 'menu' | 'hamburgerMenu' | 'menuDots' | 'menuEllipsis' | 'ellipsis' | 'moneyBag' | 'moneybag' | 'moneyBagStrikethrough' | 'noMoney' | 'moneyBankImport' | 'moneyBanknoteStrikethrough' | 'moneyBill' | 'bill' | 'moneyBuildingBank' | 'bank' | 'moneyCardCheck' | 'moneyCardImport' | 'importCb' | 'moneyCheck' | 'moneyCoins' | 'money' | 'payment' | 'moneyCurrencyDollar' | 'dollar' | 'moneyCurrencyEuro' | 'euro' | 'moneyIban' | 'moneyPaymentCard' | 'bankingCard' | 'moneyPaymentCards' | 'moneyPiggyBank' | 'piggyBank' | 'moneyShoppingBag' | 'moneyWallet' | 'wallet' | 'officeBriefcase' | 'officeChair' | 'chair' | 'officeCompass' | 'compass' | 'officeElectricalPlug' | 'officeFirstAid' | 'officeMicrophone' | 'officePen' | 'edit' | 'editMini' | 'officePenStar' | 'officePenWriting' | 'editWrite' | 'editFrame' | 'officePhone' | 'telephone' | 'officeScissors' | 'cut' | 'officeSupplies' | 'supplies' | 'peopleAccessibility' | 'peopleAdd' | 'userAdd' | 'adduser' | 'peopleArrowUp' | 'peopleEdit' | 'peopleFolder' | 'peopleGroup' | 'userGroup' | 'group' | 'peopleHouse' | 'peopleId' | 'identityCard' | 'userFile' | 'dossierRh' | 'peopleLocked' | 'userRoles' | 'peoplePerson' | 'user' | 'face' | 'peopleRemove' | 'userRemove' | 'peopleSwitch' | 'send2user' | 'userSendTo' | 'peopleTeacher' | 'teacher' | 'pictureGallery' | 'gallery' | 'pictureImage' | 'image' | 'picturePalette' | 'palette' | 'playerPauseCircle' | 'pause' | 'playerPlay' | 'playFull' | 'playerPlayCircle' | 'play' | 'playerRecording' | 'playerStopCircle' | 'stop' | 'priceTag' | 'pricetag' | 'priorityHigh' | 'high' | 'priorityHigher' | 'higher' | 'priorityHighest' | 'highest' | 'priorityLow' | 'low' | 'priorityLower' | 'lower' | 'priorityLowest' | 'lowest' | 'priorityMedium' | 'medium' | 'rotationLeft' | 'rotate' | 'rotationRight' | 'rotateRight' | 'searchMagnifyingGlass' | 'search' | 'searchZoomIn' | 'searchZoomOut' | 'settingsEqualizer' | 'sliders' | 'settingsGear' | 'settings' | 'settingsTools' | 'tools' | 'share' | 'signAt' | 'signBan' | 'forbidden' | 'signCancel' | 'cancel' | 'signCheckbox' | 'signClose' | 'signConfirm' | 'confirm' | 'tick' | 'tickThin' | 'tickBold' | 'signConstruction' | 'build' | 'signDecimal' | 'signDiscount' | 'discount' | 'signError' | 'error' | 'signHelp' | 'help' | 'helpOutline' | 'signInfo' | 'info' | 'signParking' | 'parking' | 'signRating' | 'signShieldCancel' | 'signShieldError' | 'signShieldSuccess' | 'signShieldWarning' | 'signSimpleChoice' | 'signSuccess' | 'success' | 'signTag' | 'signTranslation' | 'signWarning' | 'warning' | 'signWebhook' | 'soundMegaphone' | 'star' | 'unstared' | 'starFilled' | 'target' | 'thumbDown' | 'thumbDownFilled' | 'thumbUp' | 'thumbUpFilled' | 'thumbnail' | 'timeAlarm' | 'alarm' | 'timeClock' | 'clock' | 'timeFuture' | 'postpone' | 'timeHourglass' | 'timer' | 'timePast' | 'history' | 'timeTimer' | 'chronoOn' | 'timeTimerStrikethrough' | 'overplanned' | 'timeTimesheet' | 'timesheet' | 'transportBus' | 'bus' | 'transportCar' | 'car' | 'transportCarElectric' | 'transportCarwashStation' | 'cleanCar' | 'transportGazStation' | 'gasoline' | 'transportMotocycle' | 'transportMotocycleElectric' | 'transportPlane' | 'plane' | 'transportRocket' | 'rocket' | 'transportScooter' | 'transportScooterElectric' | 'transportSpeedometer' | 'speedometer' | 'mileage' | 'transportSubway' | 'subway' | 'transportTaxi' | 'taxi' | 'transportToll' | 'toll' | 'tollDollar' | 'tollEuro' | 'transportTrain' | 'train' | 'transportTruck' | 'truck' | 'trashDelete' | 'trash' | 'trendingGrowth' | 'evolution' | 'trendingLoss' | 'evolutionDown' | 'weatherCloudy' | 'weatherLightning' | 'weatherStars' | 'weatherStormy' | 'weatherStorm' | 'weatherSunny' | 'weatherSun' | 'weight' | 'window' | 'windowAside' | 'windowAsideLarge' | 'windowCornerBottom' | 'windowCornerTop' | 'windowSplit';
|
|
11
|
+
type LuccaIcon = 'app' | 'apps' | 'nineTiles' | 'mosaic' | 'tiles' | 'appWidget' | 'arrowBackspace' | 'arrowBackward' | 'backward' | 'arrowBottom' | 'arrowFullSouth' | 'arrowBottomLeft' | 'arrowBottomRight' | 'arrowCenterReduce' | 'arrowChevronBottom' | 'arrowSouth' | 'southArrow' | 'southThinArrow' | 'chevronSouth' | 'chevronBottom' | 'arrowChevronLeft' | 'arrowWest' | 'westArrow' | 'westThinArrow' | 'chevronWest' | 'chevronLeft' | 'arrowChevronRight' | 'arrowEast' | 'eastArrow' | 'eastThinArrow' | 'chevronEast' | 'chevronRight' | 'arrowChevronTop' | 'arrowNorth' | 'northArrow' | 'northThinArrow' | 'chevronNorth' | 'chevronTop' | 'arrowCorner' | 'distribute' | 'arrowCornerExpand' | 'arrowCurvedDownRight' | 'arrowDownload' | 'download' | 'arrowExternal' | 'outside' | 'arrowForward' | 'arrowDouble' | 'forward' | 'arrowLeft' | 'arrowFullWest' | 'arrowLineBottom' | 'arrowLineTop' | 'arrowLogin' | 'login' | 'arrowLogout' | 'logout' | 'arrowOppositeLeftRight' | 'arrowOppositeHorizontal' | 'swap' | 'arrowOppositeRightLeft' | 'arrowOppositeTopBottom' | 'arrowOppositeVertical' | 'creditDebit' | 'arrowRedo' | 'arrowReply' | 'reply' | 'arrowReset' | 'refresh' | 'update' | 'arrowRight' | 'arrowFullEast' | 'arrowSync' | 'sync' | 'arrowSyncStrikethrough' | 'syncDisabled' | 'arrowTop' | 'arrowFullNorth' | 'arrowTopLeft' | 'arrowTopRight' | 'arrowUndo' | 'arrowUnfoldLess' | 'collapse' | 'arrowUnfoldMore' | 'expand' | 'arrowUpload' | 'upload' | 'cloudUpload' | 'bell' | 'notification' | 'bellStrikethrough' | 'book' | 'bookmark' | 'bookmarkFilled' | 'boxArchive' | 'archive' | 'boxUnarchive' | 'unarchive' | 'branch' | 'bubbleAnswer' | 'answer' | 'bubbleConversation' | 'messenger' | 'bubbleSpeech' | 'chat' | 'talk' | 'dialog' | 'bubbleSpeechStrikethrough' | 'bubbleStars' | 'buildingCompany' | 'building' | 'establishment' | 'buildingHouse' | 'house' | 'home' | 'buildingHouseFilled' | 'houseFilled' | 'homeFill' | 'buildingHouseStarred' | 'houseStarred' | 'homeStarred' | 'buildingStore' | 'store' | 'bulb' | 'lightBulb' | 'calendarChecked' | 'calendarDate' | 'calendar' | 'planning' | 'calendarEdit' | 'planningEdit' | 'calendarPlanning' | 'payPeriod' | 'calendarSettings' | 'planningManage' | 'calendarStrikethrough' | 'calendarOff' | 'capCrown' | 'crown' | 'capCrownFilled' | 'capGraduate' | 'graduate' | 'school' | 'certificationFailed' | 'certifKo' | 'certificationSuccess' | 'certifOk' | 'certificationWaiting' | 'certifWaiting' | 'chartDonut' | 'donut' | 'donutChart' | 'chartFlow' | 'familyTree' | 'orgTree' | 'chartHorizontalBar' | 'horizontalBarChart' | 'chartLevels' | 'level' | 'chartPie' | 'dashboard' | 'chartSpider' | 'chartTree' | 'chartVerticalBar' | 'analytics' | 'charts' | 'circleHalf' | 'clipboard' | 'paste' | 'completion' | 'cornersFocus' | 'cornersFullscreenExit' | 'fullscreenExit' | 'cornersFullscreenOpen' | 'fullscreen' | 'dataTable' | 'table' | 'database' | 'databaseArrow' | 'apiSync' | 'deviceCamera' | 'camera' | 'deviceComputer' | 'computer' | 'deviceLaptop' | 'laptop' | 'deviceMobile' | 'deviceMouse' | 'computerMouse' | 'devicePrinter' | 'print' | 'deviceTablet' | 'deviceVideo' | 'dotsDrag' | 'drag' | 'emojiSmile' | 'eye' | 'watch' | 'eyeStrikethrough' | 'unwatch' | 'fileContract' | 'contract' | 'fileCopy' | 'copy' | 'fileDocument' | 'file' | 'files' | 'fileExport' | 'fileFolder' | 'folder' | 'fileImport' | 'importDirty' | 'importPristine' | 'filePlus' | 'fileSign' | 'sign' | 'filtersDescending' | 'filterAbstract' | 'filtersFunnel' | 'funnel' | 'filter' | 'filtersSort' | 'sort' | 'reorder' | 'flag' | 'floppyDiskSave' | 'save' | 'foodBirthdayCake' | 'birthday' | 'foodBobun' | 'lunchAlternative' | 'foodBurger' | 'lunch' | 'foodChefHat' | 'restaurant' | 'foodClocheDish' | 'diner' | 'foodCocktail' | 'drink' | 'foodCoffee' | 'coffee' | 'breaktime' | 'foodCroissant' | 'breakfast' | 'foodCutlery' | 'meal' | 'foodSandwich' | 'snack' | 'formatBulletedList' | 'list' | 'formatClipperAttachment' | 'attach' | 'formatCornerUpLeft' | 'formatUndo' | 'formatCornerUpRight' | 'formatRedo' | 'formatLink' | 'formatNumberedList' | 'formatListNb' | 'formatText' | 'formatJustify' | 'formatTextBold' | 'formatBold' | 'formatTextClear' | 'formatClear' | 'formatTextItalic' | 'formatItalic' | 'formatTextSize' | 'formatSize' | 'formatTextStrikethrough' | 'formatStrikethrough' | 'formatTextUnderline' | 'formatUnderlined' | 'formatUnlink' | 'unlink' | 'gift' | 'present' | 'heart' | 'heartFilled' | 'heartStrikethrough' | 'brokenHeart' | 'hotelBed' | 'bed' | 'hotel' | 'hotelHanger' | 'hanger' | 'hotelIron' | 'iron' | 'pressing' | 'hotelLuggage' | 'luggage' | 'jigsawPuzzle' | 'puzzle' | 'journey' | 'milestone' | 'jumpingCc' | 'lucca' | 'laboratoryTestFlask' | 'test' | 'layers' | 'floor' | 'listChecked' | 'listChecklist' | 'listTodo' | 'listMultipleChoices' | 'lockClose' | 'lock' | 'lockKey' | 'key' | 'lockOpen' | 'unlock' | 'mailEnvelope' | 'mail' | 'mailMailbox' | 'mailbox' | 'stamp' | 'postage' | 'mailPaperPlane' | 'send' | 'mapGlobe' | 'globe' | 'mapLocation' | 'location' | 'mapPin' | 'pin' | 'mapPlan' | 'mapTripStep' | 'mathsDivide' | 'divide' | 'mathsEquals' | 'mathsMinus' | 'minus' | 'partial' | 'minimize' | 'mathsMultiplicate' | 'close' | 'thinCross' | 'cross' | 'crossBold' | 'mathsNotEqual' | 'mathsPlus' | 'plus' | 'plusBold' | 'medicalDoctor' | 'menuBurger' | 'menu' | 'hamburgerMenu' | 'menuDots' | 'menuEllipsis' | 'ellipsis' | 'moneyBag' | 'moneybag' | 'moneyBagStrikethrough' | 'noMoney' | 'moneyBankImport' | 'moneyBanknoteStrikethrough' | 'moneyBill' | 'bill' | 'moneyBuildingBank' | 'bank' | 'moneyCardCheck' | 'moneyCardImport' | 'importCb' | 'moneyCheck' | 'moneyCoins' | 'money' | 'payment' | 'moneyCurrencyDollar' | 'dollar' | 'moneyCurrencyEuro' | 'euro' | 'moneyIban' | 'moneyPaymentCard' | 'bankingCard' | 'moneyPaymentCards' | 'moneyPiggyBank' | 'piggyBank' | 'moneyShoppingBag' | 'moneyWallet' | 'wallet' | 'officeBriefcase' | 'officeChair' | 'chair' | 'officeCompass' | 'compass' | 'officeElectricalPlug' | 'officeFirstAid' | 'officeMicrophone' | 'officePen' | 'edit' | 'editMini' | 'officePenStar' | 'officePenWriting' | 'editWrite' | 'editFrame' | 'officePhone' | 'telephone' | 'officeScissors' | 'cut' | 'officeSupplies' | 'supplies' | 'peopleAccessibility' | 'peopleAdd' | 'userAdd' | 'adduser' | 'peopleArrowUp' | 'peopleEdit' | 'peopleFolder' | 'peopleGroup' | 'userGroup' | 'group' | 'peopleHouse' | 'peopleId' | 'identityCard' | 'userFile' | 'dossierRh' | 'peopleLocked' | 'userRoles' | 'peoplePerson' | 'user' | 'face' | 'peopleRemove' | 'userRemove' | 'peopleSwitch' | 'send2user' | 'userSendTo' | 'peopleTeacher' | 'teacher' | 'pictureGallery' | 'gallery' | 'pictureImage' | 'image' | 'picturePalette' | 'palette' | 'playerPauseCircle' | 'pause' | 'playerPlay' | 'playFull' | 'playerPlayCircle' | 'play' | 'playerRecording' | 'playerStopCircle' | 'stop' | 'priceTag' | 'pricetag' | 'priorityHigh' | 'high' | 'priorityHigher' | 'higher' | 'priorityHighest' | 'highest' | 'priorityLow' | 'low' | 'priorityLower' | 'lower' | 'priorityLowest' | 'lowest' | 'priorityMedium' | 'medium' | 'rotationLeft' | 'rotate' | 'rotationRight' | 'rotateRight' | 'searchMagnifyingGlass' | 'search' | 'searchZoomIn' | 'searchZoomOut' | 'settingsEqualizer' | 'sliders' | 'settingsGear' | 'settings' | 'settingsTools' | 'tools' | 'share' | 'signAt' | 'signBan' | 'forbidden' | 'signCancel' | 'cancel' | 'signCheckbox' | 'signClose' | 'signConfirm' | 'confirm' | 'tick' | 'tickThin' | 'tickBold' | 'signConstruction' | 'build' | 'signDecimal' | 'signDiscount' | 'discount' | 'signError' | 'error' | 'signHelp' | 'help' | 'helpOutline' | 'signInfo' | 'info' | 'signParking' | 'parking' | 'signRating' | 'signShieldCancel' | 'signShieldError' | 'signShieldSuccess' | 'signShieldWarning' | 'signSimpleChoice' | 'signSuccess' | 'success' | 'signTag' | 'signTranslation' | 'signWarning' | 'warning' | 'signWebhook' | 'soundMegaphone' | 'star' | 'unstared' | 'starFilled' | 'target' | 'thumbDown' | 'thumbDownFilled' | 'thumbUp' | 'thumbUpFilled' | 'thumbnail' | 'timeAlarm' | 'alarm' | 'timeClock' | 'clock' | 'timeFuture' | 'postpone' | 'timeHourglass' | 'timer' | 'timePast' | 'history' | 'timeTimer' | 'chronoOn' | 'timeTimerStrikethrough' | 'overplanned' | 'timeTimesheet' | 'timesheet' | 'transportBus' | 'bus' | 'transportCar' | 'car' | 'transportCarElectric' | 'transportCarwashStation' | 'cleanCar' | 'transportGazStation' | 'gasoline' | 'transportMotocycle' | 'transportMotocycleElectric' | 'transportPlane' | 'plane' | 'transportRocket' | 'rocket' | 'transportScooter' | 'transportScooterElectric' | 'transportSpeedometer' | 'speedometer' | 'mileage' | 'transportSubway' | 'subway' | 'transportTaxi' | 'taxi' | 'transportToll' | 'toll' | 'tollDollar' | 'tollEuro' | 'transportTrain' | 'train' | 'transportTruck' | 'truck' | 'trashDelete' | 'trash' | 'trendingGrowth' | 'evolution' | 'trendingLoss' | 'evolutionDown' | 'weatherCloudy' | 'weatherLightning' | 'weatherStars' | 'weatherStormy' | 'weatherStorm' | 'weatherSunny' | 'weatherSun' | 'weight' | 'window' | 'windowAside' | 'windowAsideLarge' | 'windowCornerBottom' | 'windowCornerTop' | 'windowSplit';
|
|
12
12
|
|
|
13
13
|
declare class IconComponent {
|
|
14
14
|
/**
|
|
@@ -55,6 +55,9 @@ declare class LuTooltipTriggerDirective implements OnDestroy {
|
|
|
55
55
|
readonly luTooltipAnchor: _angular_core.InputSignal<LuTooltipAnchorRef | FlexibleConnectedPositionStrategyOrigin>;
|
|
56
56
|
readonly prTooltipAnchor: _angular_core.InputSignal<LuTooltipAnchorRef | FlexibleConnectedPositionStrategyOrigin>;
|
|
57
57
|
readonly tooltipAnchor: _angular_core.Signal<LuTooltipAnchorRef | FlexibleConnectedPositionStrategyOrigin>;
|
|
58
|
+
readonly luTooltipTriggerAnchor: _angular_core.InputSignal<LuTooltipAnchorRef | HTMLElement | ElementRef<HTMLElement>>;
|
|
59
|
+
readonly prTooltipTriggerAnchor: _angular_core.InputSignal<LuTooltipAnchorRef | HTMLElement | ElementRef<HTMLElement>>;
|
|
60
|
+
readonly tooltipTriggerAnchor: _angular_core.Signal<LuTooltipAnchorRef | HTMLElement | ElementRef<HTMLElement>>;
|
|
58
61
|
readonly id: _angular_core.InputSignal<string>;
|
|
59
62
|
readonly ariaDescribedBy: _angular_core.Signal<string>;
|
|
60
63
|
overlayRef?: OverlayRef;
|
|
@@ -76,7 +79,7 @@ declare class LuTooltipTriggerDirective implements OnDestroy {
|
|
|
76
79
|
private invertVerticalPos;
|
|
77
80
|
private invertHorizontalPos;
|
|
78
81
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuTooltipTriggerDirective, never>;
|
|
79
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuTooltipTriggerDirective, "[luTooltip],[prTooltip]", ["luTooltip"], { "luTooltipInput": { "alias": "luTooltip"; "required": false; "isSignal": true; }; "prTooltipInput": { "alias": "prTooltip"; "required": false; "isSignal": true; }; "luTooltipEnterDelay": { "alias": "luTooltipEnterDelay"; "required": false; "isSignal": true; }; "prTooltipEnterDelay": { "alias": "prTooltipEnterDelay"; "required": false; "isSignal": true; }; "luTooltipLeaveDelay": { "alias": "luTooltipLeaveDelay"; "required": false; "isSignal": true; }; "prTooltipLeaveDelay": { "alias": "prTooltipLeaveDelay"; "required": false; "isSignal": true; }; "luTooltipDisabled": { "alias": "luTooltipDisabled"; "required": false; "isSignal": true; }; "prTooltipDisabled": { "alias": "prTooltipDisabled"; "required": false; "isSignal": true; }; "luTooltipOnlyForDisplay": { "alias": "luTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "prTooltipOnlyForDisplay": { "alias": "prTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "luTooltipPosition": { "alias": "luTooltipPosition"; "required": false; "isSignal": true; }; "prTooltipPosition": { "alias": "prTooltipPosition"; "required": false; "isSignal": true; }; "luTooltipWhenEllipsisInput": { "alias": "luTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "prTooltipWhenEllipsisInput": { "alias": "prTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "luTooltipAnchor": { "alias": "luTooltipAnchor"; "required": false; "isSignal": true; }; "prTooltipAnchor": { "alias": "prTooltipAnchor"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
82
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuTooltipTriggerDirective, "[luTooltip],[prTooltip]", ["luTooltip"], { "luTooltipInput": { "alias": "luTooltip"; "required": false; "isSignal": true; }; "prTooltipInput": { "alias": "prTooltip"; "required": false; "isSignal": true; }; "luTooltipEnterDelay": { "alias": "luTooltipEnterDelay"; "required": false; "isSignal": true; }; "prTooltipEnterDelay": { "alias": "prTooltipEnterDelay"; "required": false; "isSignal": true; }; "luTooltipLeaveDelay": { "alias": "luTooltipLeaveDelay"; "required": false; "isSignal": true; }; "prTooltipLeaveDelay": { "alias": "prTooltipLeaveDelay"; "required": false; "isSignal": true; }; "luTooltipDisabled": { "alias": "luTooltipDisabled"; "required": false; "isSignal": true; }; "prTooltipDisabled": { "alias": "prTooltipDisabled"; "required": false; "isSignal": true; }; "luTooltipOnlyForDisplay": { "alias": "luTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "prTooltipOnlyForDisplay": { "alias": "prTooltipOnlyForDisplay"; "required": false; "isSignal": true; }; "luTooltipPosition": { "alias": "luTooltipPosition"; "required": false; "isSignal": true; }; "prTooltipPosition": { "alias": "prTooltipPosition"; "required": false; "isSignal": true; }; "luTooltipWhenEllipsisInput": { "alias": "luTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "prTooltipWhenEllipsisInput": { "alias": "prTooltipWhenEllipsis"; "required": false; "isSignal": true; }; "luTooltipAnchor": { "alias": "luTooltipAnchor"; "required": false; "isSignal": true; }; "prTooltipAnchor": { "alias": "prTooltipAnchor"; "required": false; "isSignal": true; }; "luTooltipTriggerAnchor": { "alias": "luTooltipTriggerAnchor"; "required": false; "isSignal": true; }; "prTooltipTriggerAnchor": { "alias": "prTooltipTriggerAnchor"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
/**
|