@lucca-front/ng 20.3.0-rc.1 → 20.3.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/index.d.ts +3 -4
- package/callout/index.d.ts +10 -2
- package/comment/index.d.ts +7 -1
- package/core-select/department/index.d.ts +1 -0
- package/core-select/index.d.ts +4 -2
- package/core-select/user/index.d.ts +1 -0
- package/date2/index.d.ts +8 -3
- package/dialog/index.d.ts +2 -2
- package/fesm2022/lucca-front-ng-api.mjs +6 -6
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs +2 -2
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-button.mjs +9 -13
- package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +35 -12
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-comment.mjs +10 -4
- package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs +10 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +1 -0
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +5 -1
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +4 -4
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +44 -12
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +2 -2
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +5 -5
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +4 -4
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +4 -4
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +6 -6
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-footer.mjs +2 -2
- package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +10 -6
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +30 -30
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +6 -2
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs +4 -0
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-markdown.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +42 -0
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +40 -31
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +19 -26
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-gauge.mjs +50 -0
- package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-icon.mjs +4 -3
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +2 -2
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +3 -3
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +6 -6
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +27 -13
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +8 -8
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-page-header.mjs +2 -2
- package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-pagination.mjs +3 -3
- package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover.mjs +5 -5
- package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +2 -2
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-read-more.mjs +2 -2
- package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-segmentedControl.mjs +72 -0
- package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +99 -0
- package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +4 -4
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +12 -12
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +8 -5
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +2 -2
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs +3 -2
- package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +77 -74
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +16 -11
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/form-field/index.d.ts +6 -2
- package/forms/index.d.ts +5 -2
- package/forms/rich-text-input/formatters/html/index.d.ts +3 -2
- package/forms/rich-text-input/formatters/markdown/index.d.ts +1 -0
- package/forms/rich-text-input/formatters/plain-text/index.d.ts +15 -0
- package/forms/rich-text-input/index.d.ts +9 -6
- package/gauge/index.d.ts +28 -0
- package/icon/index.d.ts +3 -2
- package/package.json +36 -15
- package/schematics/class-prefix/index.js +11 -0
- package/schematics/lib/angular-component-ast.js +11 -1
- package/segmentedControl/index.d.ts +28 -0
- package/segmentedControlTabs/index.d.ts +34 -0
- package/src/components/_picker.scss +1 -2
- package/tag/index.d.ts +6 -4
- package/tree-select/index.d.ts +2 -1
- package/user/index.d.ts +2 -1
- package/user-popover/index.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-popover2.mjs","sources":["../../../packages/ng/popover2/popover-focus-trap.ts","../../../packages/ng/popover2/popover-tokens.ts","../../../packages/ng/popover2/translations.ts","../../../packages/ng/popover2/popover.translate.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.html","../../../packages/ng/popover2/popover2.translate.ts","../../../packages/ng/popover2/popover.directive.ts","../../../packages/ng/popover2/popover.providers.ts","../../../packages/ng/popover2/lucca-front-ng-popover2.ts"],"sourcesContent":["import { FocusTrap, InteractivityChecker } from '@angular/cdk/a11y';\nimport { inject, Injectable, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class PopoverFocusTrap extends FocusTrap {\n\toverride startAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\toverride endAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\tconstructor(\n\t\telement: HTMLElement,\n\t\tprivate triggerElement: HTMLElement,\n\t) {\n\t\tsuper(element, inject(InteractivityChecker), inject(NgZone), inject(DOCUMENT), true);\n\t}\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { OverlayRef } from '@angular/cdk/overlay';\n\nexport interface PopoverConfig {\n\ttriggerElement: HTMLElement;\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\tref: OverlayRef;\n\tcontentId: string;\n\tdisableCloseButtonFocus: boolean;\n\tdisableInitialTriggerFocus: boolean;\n\tnoCloseButton: boolean;\n}\n\nexport const POPOVER_CONFIG = new InjectionToken<PopoverConfig>('Popover:Config');\n","export const Translations = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopoverTranslations,\n});\n\nexport interface ILuPopover2Label {\n\tclose: string;\n}\n\nexport const luPopoverTranslations: LuTranslation<ILuPopover2Label> = Translations;\n","import { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, HostListener, inject, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverFocusTrap } from '../../popover-focus-trap';\nimport { Subject } from 'rxjs';\nimport { POPOVER_CONFIG } from '../../popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from '../../popover.translate';\nimport { getIntl, PortalDirective } from '@lucca-front/ng/core';\nimport { CdkObserveContent } from '@angular/cdk/observers';\n\n@Component({\n\tselector: 'lu-popover-content',\n\tstandalone: true,\n\timports: [ButtonComponent, IconComponent, CdkObserveContent, PortalDirective],\n\ttemplateUrl: './popover-content.component.html',\n\tstyleUrl: './popover-content.component.scss',\n\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopoverContentComponent implements AfterViewInit {\n\tintl = getIntl(LU_POPOVER2_TRANSLATIONS);\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tconfig = inject(POPOVER_CONFIG);\n\n\tdestroyRef = inject(DestroyRef);\n\n\t@HostBinding('attr.id')\n\tcontentId = this.config.contentId;\n\n\tcontent = this.config.content;\n\n\t#focusManager = new PopoverFocusTrap(this.#elementRef.nativeElement, this.config.triggerElement);\n\n\tclosed$ = new Subject<void>();\n\n\tcontentChangedDebounceTime = 100;\n\n\tmouseEnter$ = new Subject<void>();\n\n\t@HostListener('mouseenter')\n\tmouseEnter(): void {\n\t\tthis.mouseEnter$.next();\n\t}\n\n\tmouseLeave$ = new Subject<void>();\n\n\t@HostListener('mouseleave')\n\tmouseLeave(): void {\n\t\tthis.mouseLeave$.next();\n\t}\n\n\tcontentChanged() {\n\t\tthis.config.ref.updatePosition();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.#focusManager.attachAnchors();\n\t\tif (!this.config.disableCloseButtonFocus) {\n\t\t\tvoid this.#focusManager.focusInitialElementWhenReady();\n\t\t}\n\t}\n\n\tgrabFocus(): void {\n\t\tthis.#focusManager.focusInitialElement();\n\t}\n\n\t@HostListener('window:keydown.escape')\n\tclose(): void {\n\t\tif (!this.config.disableInitialTriggerFocus) {\n\t\t\t// Focus initial trigger element\n\t\t\tthis.config.triggerElement.focus();\n\t\t}\n\t\t// Tell the directive we're closed now\n\t\tthis.closed$.next();\n\t\tthis.closed$.complete();\n\t\tthis.mouseEnter$.complete();\n\t\tthis.mouseLeave$.complete();\n\t\t// Detach overlay\n\t\tthis.config.ref.dispose();\n\t}\n}\n","<div class=\"popover\" (cdkObserveContent)=\"contentChanged()\" [debounce]=\"contentChangedDebounceTime\">\n\t@if (!config.noCloseButton) {\n\t\t<div>\n\t\t\t<button type=\"button\" luButton class=\"popover-close button\" (click)=\"close()\">\n\t\t\t\t<lu-icon icon=\"signClose\" />\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n\t<ng-container *luPortal=\"content\"></ng-container>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopover2Translations,\n});\n\nexport interface LuCalloutLabel {\n\tscreenReaderDescription: string;\n}\n\nexport const luPopover2Translations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tscreenReaderDescription: '(Tab key to enter panel.)',\n\t},\n\tfr: {\n\t\tscreenReaderDescription: '(Touche de tabulation pour entrer dans le panneau.)',\n\t},\n\tes: {\n\t\tscreenReaderDescription: '(Tabulador para entrar en el panel.)',\n\t},\n\tde: {\n\t\tscreenReaderDescription: '(Tabulatortaste, um in das Panel zu gelangen.)',\n\t},\n};\n","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tbooleanAttribute,\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\tInput,\n\tInputSignal,\n\tmodel,\n\tOnDestroy,\n\toutput,\n\tProvider,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { combineLatest, debounce, filter, map, merge, Subject, switchMap, timer } from 'rxjs';\nimport { PopoverContentComponent } from './content/popover-content/popover-content.component';\nimport { POPOVER_CONFIG, PopoverConfig } from './popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from './popover2.translate';\n\nexport type PopoverPosition = 'above' | 'below' | 'before' | 'after';\n\nlet nextId = 0;\n\nconst defaultPositionPairs: Record<PopoverPosition, ConnectionPositionPair> = {\n\tabove: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'top' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t),\n\tbelow: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'bottom' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t},\n\t),\n\tbefore: new ConnectionPositionPair(\n\t\t{ originX: 'start', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n\tafter: new ConnectionPositionPair(\n\t\t{ originX: 'end', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n};\n\n@Directive({\n\tselector: '[luPopover2]',\n\thost: {\n\t\t'[attr.aria-expanded]': 'opened()',\n\t},\n\texportAs: 'luPopover2',\n\tstandalone: true,\n})\nexport class PopoverDirective implements OnDestroy {\n\t#overlay = inject(Overlay);\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#vcr = inject(ViewContainerRef);\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#renderer = inject(Renderer2);\n\n\tintl = getIntl(LU_POPOVER2_TRANSLATIONS);\n\n\t@Input({\n\t\talias: 'luPopover2',\n\t})\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\n\t@Input()\n\tluPopoverPosition: PopoverPosition = 'above';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tluPopoverDisabled = false;\n\n\tluPopoverTrigger = model<'click' | 'click+hover' | 'hover+focus'>('click');\n\n\t@Input()\n\tcustomPositions?: ConnectionPositionPair[];\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Removes close button entirely, this is bad for a11y but sometimes we want it.\n\t */\n\tluPopoverNoCloseButton = false;\n\n\t/**\n\t * Allows to anchor the popover to another element instead of the trigger one\n\t * for placement purpose\n\t */\n\tluPopoverAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#elementRef);\n\n\t// We have to type these two for Compodoc to find the right type and tell Storybook these aren't strings\n\tluPopoverOpenDelay: InputSignal<number> = input<number>(300);\n\n\tluPopoverCloseDelay: InputSignal<number> = input<number>(100);\n\n\topen$ = new Subject<'focus' | 'click' | 'hover'>();\n\n\tclose$ = new Subject<void>();\n\n\tluPopoverClosed = output<void>();\n\n\tluPopoverOpened = output<void>();\n\n\t#listenToMouseLeave = false;\n\t#listenToMouseEnter = true;\n\t#skipNextFocus = false;\n\n\t#overlayRef: OverlayRef;\n\n\t#componentRef?: PopoverContentComponent;\n\n\tpositionPairs: Record<PopoverPosition, ConnectionPositionPair> = defaultPositionPairs;\n\n\topened = signal(false);\n\n\t@HostBinding('attr.aria-controls')\n\tariaControls = `popover-content-${nextId++}`;\n\n\t#screenReaderDescription?: HTMLSpanElement;\n\n\t// For when we need to extend this popover and add some extra providers to the panel\n\tprotected additionalProviders: Provider[] = [];\n\n\tconstructor() {\n\t\tcombineLatest([toObservable(this.luPopoverOpenDelay), toObservable(this.luPopoverCloseDelay), toObservable(this.luPopoverTrigger)])\n\t\t\t.pipe(\n\t\t\t\tfilter(([, , trigger]) => {\n\t\t\t\t\treturn trigger.includes('hover') || trigger.includes('focus');\n\t\t\t\t}),\n\t\t\t\tswitchMap(([openDelay, closeDelay]) => {\n\t\t\t\t\treturn merge(this.open$.pipe(map((type) => ['open', type])), this.close$.pipe(map(() => ['close']))).pipe(\n\t\t\t\t\t\tdebounce(([event]) => {\n\t\t\t\t\t\t\treturn timer(event === 'open' ? openDelay : closeDelay);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(([event, type]: ['open' | 'close', 'focus' | 'click' | 'hover']) => {\n\t\t\t\tif (event === 'open') {\n\t\t\t\t\tthis.openPopover(type === 'focus', true, type === 'hover');\n\t\t\t\t\tthis.#listenToMouseLeave = type !== 'click';\n\t\t\t\t\tif (type === 'focus' && !this.#screenReaderDescription) {\n\t\t\t\t\t\tthis.#screenReaderDescription = this.#renderer.createElement('span') as HTMLSpanElement;\n\t\t\t\t\t\tthis.#screenReaderDescription.innerText = this.intl.screenReaderDescription;\n\t\t\t\t\t\tthis.#renderer.addClass(this.#screenReaderDescription, 'pr-u-mask');\n\t\t\t\t\t\tthis.#renderer.appendChild(this.#elementRef.nativeElement, this.#screenReaderDescription);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.opened()) {\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseEnter = true;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#componentRef?.close();\n\t}\n\n\t@HostListener('mouseenter')\n\tonMouseEnter() {\n\t\tif (this.#listenToMouseEnter && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.open$.next('hover');\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\t@HostListener('focus')\n\tonFocus() {\n\t\tif (this.luPopoverTrigger().includes('focus')) {\n\t\t\tif (this.#skipNextFocus) {\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t} else {\n\t\t\t\tthis.open$.next('focus');\n\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\tthis.#skipNextFocus = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonMouseLeave() {\n\t\tif (this.#listenToMouseLeave && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.close$.next();\n\t\t\tthis.#listenToMouseEnter = true;\n\t\t}\n\t}\n\n\t@HostListener('click')\n\tclick(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t} else {\n\t\t\tthis.openPopover(true);\n\t\t\tthis.#listenToMouseLeave = false;\n\t\t\tthis.#listenToMouseEnter = false;\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\topenPopover(withBackdrop = false, disableCloseButtonFocus = false, disableInitialTriggerFocus = false): void {\n\t\tif (!this.opened() && !this.luPopoverDisabled) {\n\t\t\tthis.opened.set(true);\n\t\t\tthis.luPopoverOpened.emit();\n\t\t\tthis.#overlayRef = this.#overlay.create({\n\t\t\t\tpositionStrategy: this.#overlay\n\t\t\t\t\t.position()\n\t\t\t\t\t.flexibleConnectedTo(this.luPopoverAnchor())\n\t\t\t\t\t.withPositions(this.customPositions || this.#buildPositions()),\n\t\t\t\tscrollStrategy: this.#overlay.scrollStrategies.reposition(),\n\t\t\t\thasBackdrop: withBackdrop,\n\t\t\t\tbackdropClass: '',\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t\t// Close on backdrop click even if backdrop is invisible\n\t\t\tthis.#overlayRef\n\t\t\t\t.backdropClick()\n\t\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tthis.#componentRef.close();\n\t\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\t});\n\t\t\tconst config: PopoverConfig = {\n\t\t\t\tcontent: this.content,\n\t\t\t\tref: this.#overlayRef,\n\t\t\t\tcontentId: this.ariaControls,\n\t\t\t\ttriggerElement: this.#elementRef.nativeElement,\n\t\t\t\tdisableCloseButtonFocus: disableCloseButtonFocus,\n\t\t\t\tdisableInitialTriggerFocus: disableInitialTriggerFocus,\n\t\t\t\tnoCloseButton: this.luPopoverNoCloseButton,\n\t\t\t};\n\t\t\tthis.#componentRef = this.#overlayRef.attach(\n\t\t\t\tnew ComponentPortal(\n\t\t\t\t\tPopoverContentComponent,\n\t\t\t\t\tthis.#vcr,\n\t\t\t\t\tInjector.create({\n\t\t\t\t\t\tproviders: [{ provide: POPOVER_CONFIG, useValue: config }, ...this.additionalProviders],\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t).instance;\n\t\t\t// On tooltip leave => trigger close\n\t\t\tthis.#componentRef.mouseLeave$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.close$.next());\n\t\t\t// On tooltip enter => trigger open to keep it opened\n\t\t\tthis.#componentRef.mouseEnter$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.open$.next('hover'));\n\t\t\tthis.#componentRef.closed$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\t\tthis.opened.set(false);\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t\tthis.luPopoverClosed.emit();\n\t\t\t\tthis.#listenToMouseLeave = false;\n\t\t\t\tif (this.#screenReaderDescription) {\n\t\t\t\t\tthis.#screenReaderDescription.remove();\n\t\t\t\t\tthis.#screenReaderDescription = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t@HostListener('keydown.Tab', ['$event'])\n\tfocusBackToContent(event: Event): void {\n\t\tif (this.opened()) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.#componentRef.grabFocus();\n\t\t}\n\t}\n\n\t@HostListener('keydown.Shift.Tab', ['$event'])\n\tfocusOutBefore(): void {\n\t\tif (this.opened() && this.luPopoverTrigger().includes('focus')) {\n\t\t\tthis.#componentRef.close();\n\t\t}\n\t}\n\n\tupdatePosition() {\n\t\tthis.#overlayRef?.updatePosition();\n\t}\n\n\t#buildPositions(): ConnectedPosition[] {\n\t\tconst opposite: Record<PopoverPosition, PopoverPosition> = {\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before',\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t};\n\t\t// Once we have opposite, what's remaining?\n\t\tconst remaining: Record<PopoverPosition, PopoverPosition[]> = {\n\t\t\tbefore: ['above', 'below'],\n\t\t\tafter: ['above', 'below'],\n\t\t\tabove: ['before', 'after'],\n\t\t\tbelow: ['before', 'after'],\n\t\t};\n\t\treturn [this.positionPairs[this.luPopoverPosition], this.positionPairs[opposite[this.luPopoverPosition]], ...remaining[this.luPopoverPosition].map((r) => this.positionPairs[r])];\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nexport function configureLuPopover(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(OverlayModule)]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["LU_POPOVER2_TRANSLATIONS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-popover2.mjs","sources":["../../../packages/ng/popover2/popover-focus-trap.ts","../../../packages/ng/popover2/popover-tokens.ts","../../../packages/ng/popover2/translations.ts","../../../packages/ng/popover2/popover.translate.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.ts","../../../packages/ng/popover2/content/popover-content/popover-content.component.html","../../../packages/ng/popover2/popover2.translate.ts","../../../packages/ng/popover2/popover.directive.ts","../../../packages/ng/popover2/popover.providers.ts","../../../packages/ng/popover2/lucca-front-ng-popover2.ts"],"sourcesContent":["import { FocusTrap, InteractivityChecker } from '@angular/cdk/a11y';\nimport { inject, Injectable, NgZone } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable()\nexport class PopoverFocusTrap extends FocusTrap {\n\toverride startAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\toverride endAnchorListener = () => {\n\t\tthis.triggerElement.focus();\n\t\treturn true;\n\t};\n\n\tconstructor(\n\t\telement: HTMLElement,\n\t\tprivate triggerElement: HTMLElement,\n\t) {\n\t\tsuper(element, inject(InteractivityChecker), inject(NgZone), inject(DOCUMENT), true);\n\t}\n}\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { OverlayRef } from '@angular/cdk/overlay';\n\nexport interface PopoverConfig {\n\ttriggerElement: HTMLElement;\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\tref: OverlayRef;\n\tcontentId: string;\n\tdisableCloseButtonFocus: boolean;\n\tdisableInitialTriggerFocus: boolean;\n\tnoCloseButton: boolean;\n}\n\nexport const POPOVER_CONFIG = new InjectionToken<PopoverConfig>('Popover:Config');\n","export const Translations = {\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopoverTranslations,\n});\n\nexport interface ILuPopover2Label {\n\tclose: string;\n}\n\nexport const luPopoverTranslations: LuTranslation<ILuPopover2Label> = Translations;\n","import { AfterViewInit, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, HostBinding, HostListener, inject, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverFocusTrap } from '../../popover-focus-trap';\nimport { Subject } from 'rxjs';\nimport { POPOVER_CONFIG } from '../../popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from '../../popover.translate';\nimport { getIntl, PortalDirective } from '@lucca-front/ng/core';\nimport { CdkObserveContent } from '@angular/cdk/observers';\n\n@Component({\n\tselector: 'lu-popover-content',\n\tstandalone: true,\n\timports: [ButtonComponent, IconComponent, CdkObserveContent, PortalDirective],\n\ttemplateUrl: './popover-content.component.html',\n\tstyleUrl: './popover-content.component.scss',\n\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PopoverContentComponent implements AfterViewInit {\n\tintl = getIntl(LU_POPOVER2_TRANSLATIONS);\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tconfig = inject(POPOVER_CONFIG);\n\n\tdestroyRef = inject(DestroyRef);\n\n\t@HostBinding('attr.id')\n\tcontentId = this.config.contentId;\n\n\tcontent = this.config.content;\n\n\t#focusManager = new PopoverFocusTrap(this.#elementRef.nativeElement, this.config.triggerElement);\n\n\tclosed$ = new Subject<void>();\n\n\tcontentChangedDebounceTime = 100;\n\n\tmouseEnter$ = new Subject<void>();\n\n\t@HostListener('mouseenter')\n\tmouseEnter(): void {\n\t\tthis.mouseEnter$.next();\n\t}\n\n\tmouseLeave$ = new Subject<void>();\n\n\t@HostListener('mouseleave')\n\tmouseLeave(): void {\n\t\tthis.mouseLeave$.next();\n\t}\n\n\tcontentChanged() {\n\t\tthis.config.ref.updatePosition();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.#focusManager.attachAnchors();\n\t\tif (!this.config.disableCloseButtonFocus) {\n\t\t\tvoid this.#focusManager.focusInitialElementWhenReady();\n\t\t}\n\t}\n\n\tgrabFocus(): void {\n\t\tthis.#focusManager.focusInitialElement();\n\t}\n\n\t@HostListener('window:keydown.escape')\n\tclose(): void {\n\t\tif (!this.config.disableInitialTriggerFocus) {\n\t\t\t// Focus initial trigger element\n\t\t\tthis.config.triggerElement.focus();\n\t\t}\n\t\t// Tell the directive we're closed now\n\t\tthis.closed$.next();\n\t\tthis.closed$.complete();\n\t\tthis.mouseEnter$.complete();\n\t\tthis.mouseLeave$.complete();\n\t\t// Detach overlay\n\t\tthis.config.ref.dispose();\n\t}\n}\n","<div class=\"popover\" (cdkObserveContent)=\"contentChanged()\" [debounce]=\"contentChangedDebounceTime\">\n\t@if (!config.noCloseButton) {\n\t\t<div>\n\t\t\t<button type=\"button\" luButton class=\"popover-close button\" (click)=\"close()\">\n\t\t\t\t<lu-icon icon=\"signClose\" />\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.close }}</span>\n\t\t\t</button>\n\t\t</div>\n\t}\n\t<ng-container *luPortal=\"content\" />\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_POPOVER2_TRANSLATIONS = new InjectionToken('LuPopover2Translations', {\n\tfactory: () => luPopover2Translations,\n});\n\nexport interface LuCalloutLabel {\n\tscreenReaderDescription: string;\n}\n\nexport const luPopover2Translations: ILuTranslation<LuCalloutLabel> = {\n\ten: {\n\t\tscreenReaderDescription: '(Tab key to enter panel.)',\n\t},\n\tfr: {\n\t\tscreenReaderDescription: '(Touche de tabulation pour entrer dans le panneau.)',\n\t},\n\tes: {\n\t\tscreenReaderDescription: '(Tabulador para entrar en el panel.)',\n\t},\n\tde: {\n\t\tscreenReaderDescription: '(Tabulatortaste, um in das Panel zu gelangen.)',\n\t},\n};\n","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n\tbooleanAttribute,\n\tDestroyRef,\n\tDirective,\n\tElementRef,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tInjector,\n\tinput,\n\tInput,\n\tInputSignal,\n\tmodel,\n\tOnDestroy,\n\toutput,\n\tProvider,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tViewContainerRef,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { combineLatest, debounce, filter, map, merge, Subject, switchMap, timer } from 'rxjs';\nimport { PopoverContentComponent } from './content/popover-content/popover-content.component';\nimport { POPOVER_CONFIG, PopoverConfig } from './popover-tokens';\nimport { LU_POPOVER2_TRANSLATIONS } from './popover2.translate';\n\nexport type PopoverPosition = 'above' | 'below' | 'before' | 'after';\n\nlet nextId = 0;\n\nconst defaultPositionPairs: Record<PopoverPosition, ConnectionPositionPair> = {\n\tabove: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'top' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'bottom',\n\t\t},\n\t),\n\tbelow: new ConnectionPositionPair(\n\t\t{ originX: 'center', originY: 'bottom' },\n\t\t{\n\t\t\toverlayX: 'center',\n\t\t\toverlayY: 'top',\n\t\t},\n\t),\n\tbefore: new ConnectionPositionPair(\n\t\t{ originX: 'start', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'end',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n\tafter: new ConnectionPositionPair(\n\t\t{ originX: 'end', originY: 'center' },\n\t\t{\n\t\t\toverlayX: 'start',\n\t\t\toverlayY: 'center',\n\t\t},\n\t),\n};\n\n@Directive({\n\tselector: '[luPopover2]',\n\thost: {\n\t\t'[attr.aria-expanded]': 'opened()',\n\t},\n\texportAs: 'luPopover2',\n\tstandalone: true,\n})\nexport class PopoverDirective implements OnDestroy {\n\t#overlay = inject(Overlay);\n\n\t#elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\t#vcr = inject(ViewContainerRef);\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#renderer = inject(Renderer2);\n\n\tintl = getIntl(LU_POPOVER2_TRANSLATIONS);\n\n\t@Input({\n\t\talias: 'luPopover2',\n\t})\n\tcontent: TemplateRef<unknown> | Type<unknown>;\n\n\t@Input()\n\tluPopoverPosition: PopoverPosition = 'above';\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\tluPopoverDisabled = false;\n\n\tluPopoverTrigger = model<'click' | 'click+hover' | 'hover+focus'>('click');\n\n\t@Input()\n\tcustomPositions?: ConnectionPositionPair[];\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Removes close button entirely, this is bad for a11y but sometimes we want it.\n\t */\n\tluPopoverNoCloseButton = false;\n\n\t/**\n\t * Allows to anchor the popover to another element instead of the trigger one\n\t * for placement purpose\n\t */\n\tluPopoverAnchor = input<FlexibleConnectedPositionStrategyOrigin>(this.#elementRef);\n\n\t// We have to type these two for Compodoc to find the right type and tell Storybook these aren't strings\n\tluPopoverOpenDelay: InputSignal<number> = input<number>(300);\n\n\tluPopoverCloseDelay: InputSignal<number> = input<number>(100);\n\n\topen$ = new Subject<'focus' | 'click' | 'hover'>();\n\n\tclose$ = new Subject<void>();\n\n\tluPopoverClosed = output<void>();\n\n\tluPopoverOpened = output<void>();\n\n\t#listenToMouseLeave = false;\n\t#listenToMouseEnter = true;\n\t#skipNextFocus = false;\n\n\t#overlayRef: OverlayRef;\n\n\t#componentRef?: PopoverContentComponent;\n\n\tpositionPairs: Record<PopoverPosition, ConnectionPositionPair> = defaultPositionPairs;\n\n\topened = signal(false);\n\n\t@HostBinding('attr.aria-controls')\n\tariaControls = `popover-content-${nextId++}`;\n\n\t#screenReaderDescription?: HTMLSpanElement;\n\n\t// For when we need to extend this popover and add some extra providers to the panel\n\tprotected additionalProviders: Provider[] = [];\n\n\tconstructor() {\n\t\tcombineLatest([toObservable(this.luPopoverOpenDelay), toObservable(this.luPopoverCloseDelay), toObservable(this.luPopoverTrigger)])\n\t\t\t.pipe(\n\t\t\t\tfilter(([, , trigger]) => {\n\t\t\t\t\treturn trigger.includes('hover') || trigger.includes('focus');\n\t\t\t\t}),\n\t\t\t\tswitchMap(([openDelay, closeDelay]) => {\n\t\t\t\t\treturn merge(this.open$.pipe(map((type) => ['open', type])), this.close$.pipe(map(() => ['close']))).pipe(\n\t\t\t\t\t\tdebounce(([event]) => {\n\t\t\t\t\t\t\treturn timer(event === 'open' ? openDelay : closeDelay);\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(([event, type]: ['open' | 'close', 'focus' | 'click' | 'hover']) => {\n\t\t\t\tif (event === 'open') {\n\t\t\t\t\tthis.openPopover(type === 'focus', true, type === 'hover');\n\t\t\t\t\tthis.#listenToMouseLeave = type !== 'click';\n\t\t\t\t\tif (type === 'focus' && !this.#screenReaderDescription) {\n\t\t\t\t\t\tthis.#screenReaderDescription = this.#renderer.createElement('span') as HTMLSpanElement;\n\t\t\t\t\t\tthis.#screenReaderDescription.innerText = this.intl.screenReaderDescription;\n\t\t\t\t\t\tthis.#renderer.addClass(this.#screenReaderDescription, 'pr-u-mask');\n\t\t\t\t\t\tthis.#renderer.appendChild(this.#elementRef.nativeElement, this.#screenReaderDescription);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.opened()) {\n\t\t\t\t\tthis.#componentRef?.close();\n\t\t\t\t\tthis.#listenToMouseEnter = true;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#componentRef?.close();\n\t}\n\n\t@HostListener('mouseenter')\n\tonMouseEnter() {\n\t\tif (this.#listenToMouseEnter && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.open$.next('hover');\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\t@HostListener('focus')\n\tonFocus() {\n\t\tif (this.luPopoverTrigger().includes('focus')) {\n\t\t\tif (this.#skipNextFocus) {\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t} else {\n\t\t\t\tthis.open$.next('focus');\n\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\tthis.#skipNextFocus = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t@HostListener('mouseleave')\n\tonMouseLeave() {\n\t\tif (this.#listenToMouseLeave && this.luPopoverTrigger().includes('hover')) {\n\t\t\tthis.close$.next();\n\t\t\tthis.#listenToMouseEnter = true;\n\t\t}\n\t}\n\n\t@HostListener('click')\n\tclick(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t} else {\n\t\t\tthis.openPopover(true);\n\t\t\tthis.#listenToMouseLeave = false;\n\t\t\tthis.#listenToMouseEnter = false;\n\t\t}\n\t}\n\n\tclose(): void {\n\t\tif (this.opened()) {\n\t\t\tthis.#componentRef?.close();\n\t\t\tthis.#listenToMouseLeave = true;\n\t\t}\n\t}\n\n\topenPopover(withBackdrop = false, disableCloseButtonFocus = false, disableInitialTriggerFocus = false): void {\n\t\tif (!this.opened() && !this.luPopoverDisabled) {\n\t\t\tthis.opened.set(true);\n\t\t\tthis.luPopoverOpened.emit();\n\t\t\tthis.#overlayRef = this.#overlay.create({\n\t\t\t\tpositionStrategy: this.#overlay\n\t\t\t\t\t.position()\n\t\t\t\t\t.flexibleConnectedTo(this.luPopoverAnchor())\n\t\t\t\t\t.withPositions(this.customPositions || this.#buildPositions()),\n\t\t\t\tscrollStrategy: this.#overlay.scrollStrategies.reposition(),\n\t\t\t\thasBackdrop: withBackdrop,\n\t\t\t\tbackdropClass: '',\n\t\t\t\tdisposeOnNavigation: true,\n\t\t\t});\n\t\t\t// Close on backdrop click even if backdrop is invisible\n\t\t\tthis.#overlayRef\n\t\t\t\t.backdropClick()\n\t\t\t\t.pipe(takeUntilDestroyed(this.#destroyRef))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tthis.#componentRef.close();\n\t\t\t\t\tthis.#listenToMouseLeave = true;\n\t\t\t\t});\n\t\t\tconst config: PopoverConfig = {\n\t\t\t\tcontent: this.content,\n\t\t\t\tref: this.#overlayRef,\n\t\t\t\tcontentId: this.ariaControls,\n\t\t\t\ttriggerElement: this.#elementRef.nativeElement,\n\t\t\t\tdisableCloseButtonFocus: disableCloseButtonFocus,\n\t\t\t\tdisableInitialTriggerFocus: disableInitialTriggerFocus,\n\t\t\t\tnoCloseButton: this.luPopoverNoCloseButton,\n\t\t\t};\n\t\t\tthis.#componentRef = this.#overlayRef.attach(\n\t\t\t\tnew ComponentPortal(\n\t\t\t\t\tPopoverContentComponent,\n\t\t\t\t\tthis.#vcr,\n\t\t\t\t\tInjector.create({\n\t\t\t\t\t\tproviders: [{ provide: POPOVER_CONFIG, useValue: config }, ...this.additionalProviders],\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t).instance;\n\t\t\t// On tooltip leave => trigger close\n\t\t\tthis.#componentRef.mouseLeave$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.close$.next());\n\t\t\t// On tooltip enter => trigger open to keep it opened\n\t\t\tthis.#componentRef.mouseEnter$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => this.open$.next('hover'));\n\t\t\tthis.#componentRef.closed$.pipe(takeUntilDestroyed(this.#componentRef.destroyRef), takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\t\tthis.opened.set(false);\n\t\t\t\tthis.#skipNextFocus = false;\n\t\t\t\tthis.luPopoverClosed.emit();\n\t\t\t\tthis.#listenToMouseLeave = false;\n\t\t\t\tif (this.#screenReaderDescription) {\n\t\t\t\t\tthis.#screenReaderDescription.remove();\n\t\t\t\t\tthis.#screenReaderDescription = undefined;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t@HostListener('keydown.Tab', ['$event'])\n\tfocusBackToContent(event: Event): void {\n\t\tif (this.opened()) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.#componentRef.grabFocus();\n\t\t}\n\t}\n\n\t@HostListener('keydown.Shift.Tab', ['$event'])\n\tfocusOutBefore(): void {\n\t\tif (this.opened() && this.luPopoverTrigger().includes('focus')) {\n\t\t\tthis.#componentRef.close();\n\t\t}\n\t}\n\n\tupdatePosition() {\n\t\tthis.#overlayRef?.updatePosition();\n\t}\n\n\t#buildPositions(): ConnectedPosition[] {\n\t\tconst opposite: Record<PopoverPosition, PopoverPosition> = {\n\t\t\tbefore: 'after',\n\t\t\tafter: 'before',\n\t\t\tabove: 'below',\n\t\t\tbelow: 'above',\n\t\t};\n\t\t// Once we have opposite, what's remaining?\n\t\tconst remaining: Record<PopoverPosition, PopoverPosition[]> = {\n\t\t\tbefore: ['above', 'below'],\n\t\t\tafter: ['above', 'below'],\n\t\t\tabove: ['before', 'after'],\n\t\t\tbelow: ['before', 'after'],\n\t\t};\n\t\treturn [this.positionPairs[this.luPopoverPosition], this.positionPairs[opposite[this.luPopoverPosition]], ...remaining[this.luPopoverPosition].map((r) => this.positionPairs[r])];\n\t}\n}\n","import { EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nexport function configureLuPopover(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([importProvidersFrom(OverlayModule)]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["LU_POPOVER2_TRANSLATIONS"],"mappings":"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"}
|
|
@@ -96,13 +96,13 @@ class ReadMoreComponent {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ReadMoreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.2", type: ReadMoreComponent, isStandalone: true, selector: "lu-read-more", inputs: { lineClamp: { classPropertyName: "lineClamp", publicName: "lineClamp", isSignal: true, isRequired: false, transformFunction: null }, openOnly: { classPropertyName: "openOnly", publicName: "openOnly", isSignal: true, isRequired: false, transformFunction: null }, textFlow: { classPropertyName: "textFlow", publicName: "textFlow", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--components-readMore-lineClamp": "this.lines", "style.--components-readMore-content-lastChild-content": "this.labelText", "class.is-disabled": "this.isDisabled", "class.mod-openOnly": "this.isOpenOnly", "class.mod-sunken": "this.surfaceSunken", "class.mod-default": "this.surfaceRaised", "style.--components-readMore-link-backgroudColor": "this.backgroundColor" }, classAttribute: "readMore" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.readMore{--components-readMore-lineClamp: 5;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-raised);--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-500);position:relative;display:block}.readMore-link.link{position:absolute;display:flex;inset:auto 0 var(--pr-t-spacings-50) auto;flex-direction:column;z-index:1;line-height:var(--pr-t-font-body-M-lineHeight);background-image:linear-gradient(to right,transparent,var(--components-readMore-link-backgroudColor) calc(var(--components-readMore-link-paddingInlineStart) - var(--pr-t-spacings-100)));padding-inline-start:var(--components-readMore-link-paddingInlineStart);font-weight:600;text-decoration:none}.readMore-link.link:before{content:\"\";position:absolute;inset:0;inset-inline-start:var(--components-readMore-link-paddingInlineStart);border-radius:var(--pr-t-border-radius-default)}.readMore-link.link:focus-visible{outline:none}.readMore-link.link:focus-visible:before{outline:2px solid var(--palettes-product-700);outline-offset:2px}.readMore-content:has(>p)>*:last-child:after,.readMore-content:not(:has(>p)):after{content:var(--components-readMore-content-lastChild-content)/\"\";visibility:hidden;white-space:nowrap;font-weight:
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.2", type: ReadMoreComponent, isStandalone: true, selector: "lu-read-more", inputs: { lineClamp: { classPropertyName: "lineClamp", publicName: "lineClamp", isSignal: true, isRequired: false, transformFunction: null }, openOnly: { classPropertyName: "openOnly", publicName: "openOnly", isSignal: true, isRequired: false, transformFunction: null }, textFlow: { classPropertyName: "textFlow", publicName: "textFlow", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--components-readMore-lineClamp": "this.lines", "style.--components-readMore-content-lastChild-content": "this.labelText", "class.is-disabled": "this.isDisabled", "class.mod-openOnly": "this.isOpenOnly", "class.mod-sunken": "this.surfaceSunken", "class.mod-default": "this.surfaceRaised", "style.--components-readMore-link-backgroudColor": "this.backgroundColor" }, classAttribute: "readMore" }, viewQueries: [{ propertyName: "contentRef", first: true, predicate: ["content"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.readMore{--components-readMore-lineClamp: 5;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-raised);--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-500);position:relative;display:block}.readMore-link.link{position:absolute;display:flex;inset:auto 0 var(--pr-t-spacings-50) auto;flex-direction:column;z-index:1;line-height:var(--pr-t-font-body-M-lineHeight);background-image:linear-gradient(to right,transparent,var(--components-readMore-link-backgroudColor) calc(var(--components-readMore-link-paddingInlineStart) - var(--pr-t-spacings-100)));padding-inline-start:var(--components-readMore-link-paddingInlineStart);font-weight:600;text-decoration:none}.readMore-link.link:before{content:\"\";position:absolute;inset:0;inset-inline-start:var(--components-readMore-link-paddingInlineStart);border-radius:var(--pr-t-border-radius-default)}.readMore-link.link:focus-visible{outline:none}.readMore-link.link:focus-visible:before{outline:2px solid var(--palettes-product-700);outline-offset:2px}.readMore-content:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)>*:last-child:is(ol,ul)>*:last-child:after,.readMore-content:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)>*:last-child:not(ol,ul):after,.readMore-content:not(:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)):after{content:var(--components-readMore-content-lastChild-content)/\"\";visibility:hidden;white-space:nowrap;font:var(--pr-t-font-body-M);font-weight:var(--pr-t-font-fontWeight-semibold);padding-inline-start:var(--components-readMore-link-paddingInlineStart)}.readMore-content{display:-webkit-box;-webkit-line-clamp:var(--components-readMore-lineClamp);-webkit-box-orient:vertical;overflow:hidden;padding:var(--pr-t-spacings-50);margin:calc(var(--pr-t-spacings-50) * -1)}}@layer states{.readMore:has(.readMore-link[aria-expanded=true],.readMore-content:focus-within){--components-readMore-lineClamp: 9999 !important;--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-100)}.readMore.is-disabled{--components-readMore-content-lastChild-content: none !important}.readMore.is-disabled .readMore-link.link{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}}@layer mods{.readMore.mod-openOnly:has(.readMore-link[aria-expanded=true]){--components-readMore-content-lastChild-content: none !important}.readMore.mod-openOnly:has(.readMore-link[aria-expanded=true]) .readMore-link.link{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.readMore.mod-default{--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-default)}.readMore.mod-sunken{--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer components{.textFlow h1{margin-block:var(--pr-t-spacings-300)}.textFlow h2{margin-block:var(--pr-t-spacings-300) var(--pr-t-spacings-150)}.textFlow h3{margin-block:var(--pr-t-spacings-200) var(--pr-t-spacings-150)}.textFlow h4{margin-block:var(--pr-t-spacings-150)}.textFlow p,.textFlow ul,.textFlow ol{margin-block:var(--pr-t-spacings-100)}.textFlow li{margin-block:var(--pr-t-spacings-50)}.textFlow>:first-child{margin-block-start:0}.textFlow>:last-child{margin-block-end:0}.textFlow>:last-child:is(ul,ol)>:last-child{margin-block-end:0}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: ReadMoreComponent, decorators: [{
|
|
102
102
|
type: Component,
|
|
103
103
|
args: [{ selector: 'lu-read-more', standalone: true, encapsulation: ViewEncapsulation.None, host: {
|
|
104
104
|
class: 'readMore',
|
|
105
|
-
}, template: "<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.readMore{--components-readMore-lineClamp: 5;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-raised);--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-500);position:relative;display:block}.readMore-link.link{position:absolute;display:flex;inset:auto 0 var(--pr-t-spacings-50) auto;flex-direction:column;z-index:1;line-height:var(--pr-t-font-body-M-lineHeight);background-image:linear-gradient(to right,transparent,var(--components-readMore-link-backgroudColor) calc(var(--components-readMore-link-paddingInlineStart) - var(--pr-t-spacings-100)));padding-inline-start:var(--components-readMore-link-paddingInlineStart);font-weight:600;text-decoration:none}.readMore-link.link:before{content:\"\";position:absolute;inset:0;inset-inline-start:var(--components-readMore-link-paddingInlineStart);border-radius:var(--pr-t-border-radius-default)}.readMore-link.link:focus-visible{outline:none}.readMore-link.link:focus-visible:before{outline:2px solid var(--palettes-product-700);outline-offset:2px}.readMore-content:has(>p)>*:last-child:after,.readMore-content:not(:has(>p)):after{content:var(--components-readMore-content-lastChild-content)/\"\";visibility:hidden;white-space:nowrap;font-weight:
|
|
105
|
+
}, template: "<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.readMore{--components-readMore-lineClamp: 5;--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-raised);--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-500);position:relative;display:block}.readMore-link.link{position:absolute;display:flex;inset:auto 0 var(--pr-t-spacings-50) auto;flex-direction:column;z-index:1;line-height:var(--pr-t-font-body-M-lineHeight);background-image:linear-gradient(to right,transparent,var(--components-readMore-link-backgroudColor) calc(var(--components-readMore-link-paddingInlineStart) - var(--pr-t-spacings-100)));padding-inline-start:var(--components-readMore-link-paddingInlineStart);font-weight:600;text-decoration:none}.readMore-link.link:before{content:\"\";position:absolute;inset:0;inset-inline-start:var(--components-readMore-link-paddingInlineStart);border-radius:var(--pr-t-border-radius-default)}.readMore-link.link:focus-visible{outline:none}.readMore-link.link:focus-visible:before{outline:2px solid var(--palettes-product-700);outline-offset:2px}.readMore-content:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)>*:last-child:is(ol,ul)>*:last-child:after,.readMore-content:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)>*:last-child:not(ol,ul):after,.readMore-content:not(:has(>p,>ul,>ol,>h1,>h2,>h3,>h4,>h5,>h6)):after{content:var(--components-readMore-content-lastChild-content)/\"\";visibility:hidden;white-space:nowrap;font:var(--pr-t-font-body-M);font-weight:var(--pr-t-font-fontWeight-semibold);padding-inline-start:var(--components-readMore-link-paddingInlineStart)}.readMore-content{display:-webkit-box;-webkit-line-clamp:var(--components-readMore-lineClamp);-webkit-box-orient:vertical;overflow:hidden;padding:var(--pr-t-spacings-50);margin:calc(var(--pr-t-spacings-50) * -1)}}@layer states{.readMore:has(.readMore-link[aria-expanded=true],.readMore-content:focus-within){--components-readMore-lineClamp: 9999 !important;--components-readMore-link-paddingInlineStart: var(--pr-t-spacings-100)}.readMore.is-disabled{--components-readMore-content-lastChild-content: none !important}.readMore.is-disabled .readMore-link.link{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}}@layer mods{.readMore.mod-openOnly:has(.readMore-link[aria-expanded=true]){--components-readMore-content-lastChild-content: none !important}.readMore.mod-openOnly:has(.readMore-link[aria-expanded=true]) .readMore-link.link{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.readMore.mod-default{--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-default)}.readMore.mod-sunken{--components-readMore-link-backgroudColor: var(--pr-t-elevation-surface-sunken)}}@layer components{.textFlow h1{margin-block:var(--pr-t-spacings-300)}.textFlow h2{margin-block:var(--pr-t-spacings-300) var(--pr-t-spacings-150)}.textFlow h3{margin-block:var(--pr-t-spacings-200) var(--pr-t-spacings-150)}.textFlow h4{margin-block:var(--pr-t-spacings-150)}.textFlow p,.textFlow ul,.textFlow ol{margin-block:var(--pr-t-spacings-100)}.textFlow li{margin-block:var(--pr-t-spacings-50)}.textFlow>:first-child{margin-block-start:0}.textFlow>:last-child{margin-block-end:0}.textFlow>:last-child:is(ul,ol)>:last-child{margin-block-end:0}}\n"] }]
|
|
106
106
|
}], propDecorators: { lines: [{
|
|
107
107
|
type: HostBinding,
|
|
108
108
|
args: ['style.--components-readMore-lineClamp']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-read-more.mjs","sources":["../../../packages/ng/read-more/translations.ts","../../../packages/ng/read-more/read-more.translate.ts","../../../packages/ng/read-more/read-more.component.ts","../../../packages/ng/read-more/read-more.component.html","../../../packages/ng/read-more/lucca-front-ng-read-more.ts"],"sourcesContent":["export const Translations = {\n\ten: {\n\t\treadMore: 'Read more',\n\t\treadLess: 'Read less',\n\t},\n\tde: {\n\t\treadMore: 'Lesen Sie mehr',\n\t\treadLess: 'Weniger lesen',\n\t},\n\tfr: {\n\t\treadMore: 'Lire plus',\n\t\treadLess: 'Lire moins',\n\t},\n\tit: {\n\t\treadMore: 'Per saperne di più',\n\t\treadLess: 'Leggi di più',\n\t},\n\tnl: {\n\t\treadMore: 'Meer lezen',\n\t\treadLess: 'Minder lezen',\n\t},\n\t'nl-BE': {\n\t\treadMore: 'Meer lezen',\n\t\treadLess: 'Minder lezen',\n\t},\n\tes: {\n\t\treadMore: 'Seguir leyendo',\n\t\treadLess: 'Leer menos',\n\t},\n\tpt: {\n\t\treadMore: 'Ler mais',\n\t\treadLess: 'Ler menos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_READMORE_TRANSLATIONS = new InjectionToken('luReadMoreTranslations', {\n\tfactory: () => luReadMoreTranslations,\n});\n\nexport interface ReadMoreTranslate {\n\treadMore: string;\n\treadLess: string;\n}\n\nexport const luReadMoreTranslations: LuTranslation<ReadMoreTranslate> = Translations;\n","import { booleanAttribute, Component, ElementRef, HostBinding, input, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_READMORE_TRANSLATIONS } from './read-more.translate';\n\n@Component({\n\tselector: 'lu-read-more',\n\tstandalone: true,\n\ttemplateUrl: './read-more.component.html',\n\tstyleUrls: ['./read-more.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\n\thost: {\n\t\tclass: 'readMore',\n\t},\n})\nexport class ReadMoreComponent implements OnInit {\n\tintl = getIntl(LU_READMORE_TRANSLATIONS);\n\n\tlineClamp = input<number>(5);\n\topenOnly = input(false, { transform: booleanAttribute });\n\ttextFlow = input(false, { transform: booleanAttribute });\n\tsurface = input<null | 'sunken' | 'default' | string>(null);\n\n\tlabelReadMore = this.intl.readMore;\n\tlabelReadLess = this.intl.readLess;\n\n\tlabel = signal<string>(this.labelReadMore);\n\n\tcontentRef = viewChild<ElementRef<HTMLDivElement>>('content');\n\n\texpanded = signal(false);\n\tisClamped = signal(false);\n\n\t@HostBinding('style.--components-readMore-lineClamp') get lines() {\n\t\treturn this.lineClamp();\n\t}\n\n\t@HostBinding('style.--components-readMore-content-lastChild-content') get labelText() {\n\t\treturn `'${this.labelReadLess}'`;\n\t}\n\n\t@HostBinding('class.is-disabled') get isDisabled() {\n\t\treturn !this.expanded() && !this.isClamped();\n\t}\n\n\t@HostBinding('class.mod-openOnly') get isOpenOnly() {\n\t\treturn this.openOnly();\n\t}\n\n\t@HostBinding('class.mod-sunken') get surfaceSunken() {\n\t\treturn this.surface() === 'sunken';\n\t}\n\n\t@HostBinding('class.mod-default') get surfaceRaised() {\n\t\treturn this.surface() === 'default';\n\t}\n\n\t@HostBinding('style.--components-readMore-link-backgroudColor') get backgroundColor() {\n\t\tif (this.surface() === 'sunken' || this.surface() === 'default' || this.surface() === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.surface()}`;\n\t}\n\n\tngOnInit(): void {\n\t\tnew ResizeObserver(() => {\n\t\t\tconst contentElement = this.contentRef()?.nativeElement;\n\n\t\t\tthis.isClamped.set(contentElement.scrollHeight > contentElement.clientHeight);\n\t\t}).observe(this.contentRef().nativeElement);\n\t}\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\n\t\tif (this.expanded()) {\n\t\t\tthis.label.set(this.labelReadLess);\n\t\t} else {\n\t\t\tthis.label.set(this.labelReadMore);\n\t\t}\n\t}\n}\n","<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-read-more.mjs","sources":["../../../packages/ng/read-more/translations.ts","../../../packages/ng/read-more/read-more.translate.ts","../../../packages/ng/read-more/read-more.component.ts","../../../packages/ng/read-more/read-more.component.html","../../../packages/ng/read-more/lucca-front-ng-read-more.ts"],"sourcesContent":["export const Translations = {\n\ten: {\n\t\treadMore: 'Read more',\n\t\treadLess: 'Read less',\n\t},\n\tde: {\n\t\treadMore: 'Lesen Sie mehr',\n\t\treadLess: 'Weniger lesen',\n\t},\n\tfr: {\n\t\treadMore: 'Lire plus',\n\t\treadLess: 'Lire moins',\n\t},\n\tit: {\n\t\treadMore: 'Per saperne di più',\n\t\treadLess: 'Leggi di più',\n\t},\n\tnl: {\n\t\treadMore: 'Meer lezen',\n\t\treadLess: 'Minder lezen',\n\t},\n\t'nl-BE': {\n\t\treadMore: 'Meer lezen',\n\t\treadLess: 'Minder lezen',\n\t},\n\tes: {\n\t\treadMore: 'Seguir leyendo',\n\t\treadLess: 'Leer menos',\n\t},\n\tpt: {\n\t\treadMore: 'Ler mais',\n\t\treadLess: 'Ler menos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_READMORE_TRANSLATIONS = new InjectionToken('luReadMoreTranslations', {\n\tfactory: () => luReadMoreTranslations,\n});\n\nexport interface ReadMoreTranslate {\n\treadMore: string;\n\treadLess: string;\n}\n\nexport const luReadMoreTranslations: LuTranslation<ReadMoreTranslate> = Translations;\n","import { booleanAttribute, Component, ElementRef, HostBinding, input, OnInit, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_READMORE_TRANSLATIONS } from './read-more.translate';\n\n@Component({\n\tselector: 'lu-read-more',\n\tstandalone: true,\n\ttemplateUrl: './read-more.component.html',\n\tstyleUrls: ['./read-more.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\n\thost: {\n\t\tclass: 'readMore',\n\t},\n})\nexport class ReadMoreComponent implements OnInit {\n\tintl = getIntl(LU_READMORE_TRANSLATIONS);\n\n\tlineClamp = input<number>(5);\n\topenOnly = input(false, { transform: booleanAttribute });\n\ttextFlow = input(false, { transform: booleanAttribute });\n\tsurface = input<null | 'sunken' | 'default' | string>(null);\n\n\tlabelReadMore = this.intl.readMore;\n\tlabelReadLess = this.intl.readLess;\n\n\tlabel = signal<string>(this.labelReadMore);\n\n\tcontentRef = viewChild<ElementRef<HTMLDivElement>>('content');\n\n\texpanded = signal(false);\n\tisClamped = signal(false);\n\n\t@HostBinding('style.--components-readMore-lineClamp') get lines() {\n\t\treturn this.lineClamp();\n\t}\n\n\t@HostBinding('style.--components-readMore-content-lastChild-content') get labelText() {\n\t\treturn `'${this.labelReadLess}'`;\n\t}\n\n\t@HostBinding('class.is-disabled') get isDisabled() {\n\t\treturn !this.expanded() && !this.isClamped();\n\t}\n\n\t@HostBinding('class.mod-openOnly') get isOpenOnly() {\n\t\treturn this.openOnly();\n\t}\n\n\t@HostBinding('class.mod-sunken') get surfaceSunken() {\n\t\treturn this.surface() === 'sunken';\n\t}\n\n\t@HostBinding('class.mod-default') get surfaceRaised() {\n\t\treturn this.surface() === 'default';\n\t}\n\n\t@HostBinding('style.--components-readMore-link-backgroudColor') get backgroundColor() {\n\t\tif (this.surface() === 'sunken' || this.surface() === 'default' || this.surface() === null) {\n\t\t\treturn null;\n\t\t}\n\t\treturn `${this.surface()}`;\n\t}\n\n\tngOnInit(): void {\n\t\tnew ResizeObserver(() => {\n\t\t\tconst contentElement = this.contentRef()?.nativeElement;\n\n\t\t\tthis.isClamped.set(contentElement.scrollHeight > contentElement.clientHeight);\n\t\t}).observe(this.contentRef().nativeElement);\n\t}\n\n\ttoggleExpanded() {\n\t\tthis.expanded.set(!this.expanded());\n\n\t\tif (this.expanded()) {\n\t\t\tthis.label.set(this.labelReadLess);\n\t\t} else {\n\t\t\tthis.label.set(this.labelReadMore);\n\t\t}\n\t}\n}\n","<button\n\ttype=\"button\"\n\taria-hidden=\"true\"\n\t[attr.tabindex]=\"isClamped() ? null : '-1'\"\n\t[attr.aria-expanded]=\"expanded()\"\n\tclass=\"readMore-link link\"\n\t(click)=\"toggleExpanded()\"\n>\n\t{{ label() }}\n</button>\n<div class=\"readMore-content\" [class.textFlow]=\"textFlow()\" #content>\n\t<ng-content />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, input, booleanAttribute, ViewEncapsulation, Component, forwardRef } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/forms';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { PortalDirective } from '@lucca-front/ng/core';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import * as i1$1 from '@lucca-front/ng/forms';
|
|
8
|
+
import { injectNgControl, NoopValueAccessorDirective } from '@lucca-front/ng/forms';
|
|
9
|
+
|
|
10
|
+
const LU_SEGMENTEDCONTROL_INSTANCE = new InjectionToken('LU_SEGMENTEDCONTROL_INSTANCE');
|
|
11
|
+
|
|
12
|
+
let nextId$1 = 0;
|
|
13
|
+
class SegmentedControlFilterComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.segmentedControlRef = inject(LU_SEGMENTEDCONTROL_INSTANCE);
|
|
16
|
+
this.disabled = input(false, { transform: booleanAttribute });
|
|
17
|
+
this.value = input.required();
|
|
18
|
+
this.id = `${this.segmentedControlRef.id}item${nextId$1++}`;
|
|
19
|
+
this.name = this.segmentedControlRef.id;
|
|
20
|
+
this.label = input();
|
|
21
|
+
}
|
|
22
|
+
get formControl() {
|
|
23
|
+
return this.segmentedControlRef.ngControl.control;
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: SegmentedControlFilterComponent, isStandalone: true, selector: "lu-segmented-control-filter", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, classAttribute: "segmentedControl-item" }, ngImport: i0, template: "<input\n\ttype=\"radio\"\n\tclass=\"segmentedControl-item-input\"\n\t[name]=\"name\"\n\t[attr.name]=\"name\"\n\t[formControl]=\"formControl\"\n\t[value]=\"value()\"\n\t[attr.id]=\"id\"\n\t[attr.disabled]=\"formControl.disabled || disabled() ? 'disabled' : null\"\n/>\n<label [attr.for]=\"id\" class=\"segmentedControl-item-action\">\n\t<ng-container *luPortal=\"label()\" />\n</label>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlFilterComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'lu-segmented-control-filter', standalone: true, encapsulation: ViewEncapsulation.None, imports: [ReactiveFormsModule, PortalDirective], host: {
|
|
31
|
+
class: 'segmentedControl-item',
|
|
32
|
+
role: 'listitem',
|
|
33
|
+
}, template: "<input\n\ttype=\"radio\"\n\tclass=\"segmentedControl-item-input\"\n\t[name]=\"name\"\n\t[attr.name]=\"name\"\n\t[formControl]=\"formControl\"\n\t[value]=\"value()\"\n\t[attr.id]=\"id\"\n\t[attr.disabled]=\"formControl.disabled || disabled() ? 'disabled' : null\"\n/>\n<label [attr.for]=\"id\" class=\"segmentedControl-item-action\">\n\t<ng-container *luPortal=\"label()\" />\n</label>\n" }]
|
|
34
|
+
}] });
|
|
35
|
+
|
|
36
|
+
let nextId = 0;
|
|
37
|
+
class SegmentedControlComponent {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.ngControl = injectNgControl();
|
|
40
|
+
this.small = input(false, { transform: booleanAttribute });
|
|
41
|
+
this.vertical = input(false, { transform: booleanAttribute });
|
|
42
|
+
this.id = `segmentedControl${nextId++}`;
|
|
43
|
+
}
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: SegmentedControlComponent, isStandalone: true, selector: "lu-segmented-control", inputs: { small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "class.mod-S": "small()", "class.mod-vertical": "vertical()" }, classAttribute: "segmentedControl" }, providers: [
|
|
46
|
+
{
|
|
47
|
+
provide: LU_SEGMENTEDCONTROL_INSTANCE,
|
|
48
|
+
useExisting: forwardRef(() => SegmentedControlComponent),
|
|
49
|
+
},
|
|
50
|
+
], hostDirectives: [{ directive: i1$1.NoopValueAccessorDirective }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.segmentedControl,.viewTabs{--components-segmentedControl-borderRadius: var(--pr-t-border-radius-default);--components-segmentedControl-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-segmentedControl-font: var(--pr-t-font-body-M);--components-segmentedControl-background: transparent;--components-segmentedControl-shadow: none;--components-segmentedControl-color: var(--pr-t-color-text);--components-segmentedControl-cursor: pointer;--components-segmentedControl-dividerInset: var(--pr-t-spacings-100);--components-segmentedControl-direction: row;--components-segmentedControl-width: fit-content;--components-segmentedControl-zIndex: 0;--components-segmentedControl-wrap: wrap;--components-segmentedControl-whiteSpace: normal;padding:0;margin:0;list-style-type:none;display:flex;flex-wrap:var(--components-segmentedControl-wrap);inline-size:var(--components-segmentedControl-width);flex-direction:var(--components-segmentedControl-direction);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-neutral-100);border-radius:var(--components-segmentedControl-borderRadius);background-color:var(--palettes-neutral-0);font:var(--components-segmentedControl-font);gap:var(--commons-divider-width);white-space:var(--components-segmentedControl-whiteSpace)}.segmentedControl-item-input{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.segmentedControl-item-input:focus-visible+.segmentedControl-item-action{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item,.viewTabs-item{flex-grow:1;position:relative;z-index:1}.segmentedControl-item:before,.segmentedControl-item:after,.viewTabs-item:before,.viewTabs-item:after{content:\"\";border-width:0;inset:var(--components-segmentedControl-dividerInset);border-color:var(--palettes-neutral-100);position:absolute;border-style:solid}.segmentedControl-item:before,.viewTabs-item:before{inset-inline-end:calc(var(--commons-divider-width) * -1);border-inline-start-width:var(--commons-divider-width);inset-inline-start:auto}.segmentedControl-item:after,.viewTabs-item:after{inset-block-end:calc(var(--commons-divider-width) * -1);border-block-start-width:var(--commons-divider-width);inset-block-start:auto}.segmentedControl-item-action,.viewTabs-item-tab{inline-size:100%;border:0;margin:0;padding:var(--components-segmentedControl-padding);background-color:var(--components-segmentedControl-background);box-shadow:var(--components-segmentedControl-shadow);border-radius:var(--components-segmentedControl-borderRadius);gap:var(--pr-t-spacings-100);color:var(--components-segmentedControl-color);text-align:center;justify-content:center;display:flex;align-items:center;position:relative;cursor:var(--components-segmentedControl-cursor);z-index:var(--components-segmentedControl-zIndex);font:inherit;transition-property:box-shadow;transition-duration:var(--commons-animations-durations-fast)}.segmentedControl-item-action:focus-visible,.viewTabs-item-tab:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item-action:hover,.viewTabs-item-tab:hover{--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-400), var(--pr-t-elevation-shadow-raised);--components-segmentedControl-zIndex: 1}.segmentedControl-item-action:active,.viewTabs-item-tab:active{--components-segmentedControl-background: var(--palettes-neutral-0);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500), var(--pr-t-elevation-shadow-raised)}.segmentedControl_panel,.viewTabs_panel{display:var(--components-segmentedControl-display, block);border-radius:var(--pr-t-border-radius-default)}.segmentedControl_panel:focus-visible,.viewTabs_panel:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}}@layer mods{.segmentedControl.mod-S,.viewTabs.mod-S{--components-segmentedControl-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-segmentedControl-font: var(--pr-t-font-body-S);--components-segmentedControl-dividerInset: var(--pr-t-spacings-75)}.segmentedControl.mod-S .numericBadge,.viewTabs.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.segmentedControl.mod-vertical,.viewTabs.mod-vertical{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}@media not all and (min-width: 30em){.segmentedControl,.viewTabs{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}}}@layer states{.segmentedControl-item-input:checked+.segmentedControl-item-action,.segmentedControl-item-action[aria-selected=true],.segmentedControl-item-input:checked+.viewTabs-item-tab,.viewTabs-item-tab[aria-selected=true]{--components-segmentedControl-background: var(--palettes-product-50);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500);--components-segmentedControl-color: var(--palettes-product-800);--components-segmentedControl-cursor: default;--components-segmentedControl-backgroundContent: none;--components-segmentedControl-zIndex: 1}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge,.segmentedControl-item-action[aria-selected=true] .numericBadge,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge,.viewTabs-item-tab[aria-selected=true] .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge.is-loading,.segmentedControl-item-action[aria-selected=true] .numericBadge.is-loading,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge.is-loading,.viewTabs-item-tab[aria-selected=true] .numericBadge.is-loading{--components-numericBadge-loadingColor: var(--palettes-product-500);--components-numericBadge-color: transparent}}@layer states{.segmentedControl-item-action:disabled,.segmentedControl-item-input:disabled~.segmentedControl-item-action{--components-segmentedControl-background: var(--palettes-neutral-100);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200);--components-segmentedControl-color: var(--pr-t-color-text-disabled);--components-segmentedControl-cursor: default}.segmentedControl-item-action:disabled .numericBadge,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.segmentedControl-item-action:disabled .numericBadge.is-loading,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge.is-loading{--components-numericBadge-color: transparent}}@layer states{.segmentedControl_panel:not(.is-active,.active),.viewTabs_panel:not(.is-active,.active){--components-segmentedControl-display: none}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CommonModule }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'lu-segmented-control', standalone: true, template: '<ng-content />', encapsulation: ViewEncapsulation.None, imports: [ReactiveFormsModule, CommonModule], hostDirectives: [NoopValueAccessorDirective], host: {
|
|
55
|
+
role: 'presentation',
|
|
56
|
+
class: 'segmentedControl',
|
|
57
|
+
'[class.mod-S]': 'small()',
|
|
58
|
+
'[class.mod-vertical]': 'vertical()',
|
|
59
|
+
}, providers: [
|
|
60
|
+
{
|
|
61
|
+
provide: LU_SEGMENTEDCONTROL_INSTANCE,
|
|
62
|
+
useExisting: forwardRef(() => SegmentedControlComponent),
|
|
63
|
+
},
|
|
64
|
+
], styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.segmentedControl,.viewTabs{--components-segmentedControl-borderRadius: var(--pr-t-border-radius-default);--components-segmentedControl-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-segmentedControl-font: var(--pr-t-font-body-M);--components-segmentedControl-background: transparent;--components-segmentedControl-shadow: none;--components-segmentedControl-color: var(--pr-t-color-text);--components-segmentedControl-cursor: pointer;--components-segmentedControl-dividerInset: var(--pr-t-spacings-100);--components-segmentedControl-direction: row;--components-segmentedControl-width: fit-content;--components-segmentedControl-zIndex: 0;--components-segmentedControl-wrap: wrap;--components-segmentedControl-whiteSpace: normal;padding:0;margin:0;list-style-type:none;display:flex;flex-wrap:var(--components-segmentedControl-wrap);inline-size:var(--components-segmentedControl-width);flex-direction:var(--components-segmentedControl-direction);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-neutral-100);border-radius:var(--components-segmentedControl-borderRadius);background-color:var(--palettes-neutral-0);font:var(--components-segmentedControl-font);gap:var(--commons-divider-width);white-space:var(--components-segmentedControl-whiteSpace)}.segmentedControl-item-input{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.segmentedControl-item-input:focus-visible+.segmentedControl-item-action{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item,.viewTabs-item{flex-grow:1;position:relative;z-index:1}.segmentedControl-item:before,.segmentedControl-item:after,.viewTabs-item:before,.viewTabs-item:after{content:\"\";border-width:0;inset:var(--components-segmentedControl-dividerInset);border-color:var(--palettes-neutral-100);position:absolute;border-style:solid}.segmentedControl-item:before,.viewTabs-item:before{inset-inline-end:calc(var(--commons-divider-width) * -1);border-inline-start-width:var(--commons-divider-width);inset-inline-start:auto}.segmentedControl-item:after,.viewTabs-item:after{inset-block-end:calc(var(--commons-divider-width) * -1);border-block-start-width:var(--commons-divider-width);inset-block-start:auto}.segmentedControl-item-action,.viewTabs-item-tab{inline-size:100%;border:0;margin:0;padding:var(--components-segmentedControl-padding);background-color:var(--components-segmentedControl-background);box-shadow:var(--components-segmentedControl-shadow);border-radius:var(--components-segmentedControl-borderRadius);gap:var(--pr-t-spacings-100);color:var(--components-segmentedControl-color);text-align:center;justify-content:center;display:flex;align-items:center;position:relative;cursor:var(--components-segmentedControl-cursor);z-index:var(--components-segmentedControl-zIndex);font:inherit;transition-property:box-shadow;transition-duration:var(--commons-animations-durations-fast)}.segmentedControl-item-action:focus-visible,.viewTabs-item-tab:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item-action:hover,.viewTabs-item-tab:hover{--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-400), var(--pr-t-elevation-shadow-raised);--components-segmentedControl-zIndex: 1}.segmentedControl-item-action:active,.viewTabs-item-tab:active{--components-segmentedControl-background: var(--palettes-neutral-0);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500), var(--pr-t-elevation-shadow-raised)}.segmentedControl_panel,.viewTabs_panel{display:var(--components-segmentedControl-display, block);border-radius:var(--pr-t-border-radius-default)}.segmentedControl_panel:focus-visible,.viewTabs_panel:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}}@layer mods{.segmentedControl.mod-S,.viewTabs.mod-S{--components-segmentedControl-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-segmentedControl-font: var(--pr-t-font-body-S);--components-segmentedControl-dividerInset: var(--pr-t-spacings-75)}.segmentedControl.mod-S .numericBadge,.viewTabs.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.segmentedControl.mod-vertical,.viewTabs.mod-vertical{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}@media not all and (min-width: 30em){.segmentedControl,.viewTabs{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}}}@layer states{.segmentedControl-item-input:checked+.segmentedControl-item-action,.segmentedControl-item-action[aria-selected=true],.segmentedControl-item-input:checked+.viewTabs-item-tab,.viewTabs-item-tab[aria-selected=true]{--components-segmentedControl-background: var(--palettes-product-50);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500);--components-segmentedControl-color: var(--palettes-product-800);--components-segmentedControl-cursor: default;--components-segmentedControl-backgroundContent: none;--components-segmentedControl-zIndex: 1}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge,.segmentedControl-item-action[aria-selected=true] .numericBadge,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge,.viewTabs-item-tab[aria-selected=true] .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge.is-loading,.segmentedControl-item-action[aria-selected=true] .numericBadge.is-loading,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge.is-loading,.viewTabs-item-tab[aria-selected=true] .numericBadge.is-loading{--components-numericBadge-loadingColor: var(--palettes-product-500);--components-numericBadge-color: transparent}}@layer states{.segmentedControl-item-action:disabled,.segmentedControl-item-input:disabled~.segmentedControl-item-action{--components-segmentedControl-background: var(--palettes-neutral-100);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200);--components-segmentedControl-color: var(--pr-t-color-text-disabled);--components-segmentedControl-cursor: default}.segmentedControl-item-action:disabled .numericBadge,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.segmentedControl-item-action:disabled .numericBadge.is-loading,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge.is-loading{--components-numericBadge-color: transparent}}@layer states{.segmentedControl_panel:not(.is-active,.active),.viewTabs_panel:not(.is-active,.active){--components-segmentedControl-display: none}}\n"] }]
|
|
65
|
+
}] });
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Generated bundle index. Do not edit.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
export { SegmentedControlComponent, SegmentedControlFilterComponent };
|
|
72
|
+
//# sourceMappingURL=lucca-front-ng-segmentedControl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-segmentedControl.mjs","sources":["../../../packages/ng/segmentedControl/segmented-control.token.ts","../../../packages/ng/segmentedControl/filter/filter.component.ts","../../../packages/ng/segmentedControl/filter/filter.component.html","../../../packages/ng/segmentedControl/segmented-control.component.ts","../../../packages/ng/segmentedControl/lucca-front-ng-segmentedControl.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SegmentedControlComponent } from './segmented-control.component';\n\nexport const LU_SEGMENTEDCONTROL_INSTANCE = new InjectionToken<SegmentedControlComponent>('LU_SEGMENTEDCONTROL_INSTANCE');\n","import { booleanAttribute, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { LU_SEGMENTEDCONTROL_INSTANCE } from '../segmented-control.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-segmented-control-filter',\n\tstandalone: true,\n\ttemplateUrl: './filter.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\timports: [ReactiveFormsModule, PortalDirective],\n\thost: {\n\t\tclass: 'segmentedControl-item',\n\t\trole: 'listitem',\n\t},\n})\nexport class SegmentedControlFilterComponent<T = unknown> {\n\tprotected segmentedControlRef = inject(LU_SEGMENTEDCONTROL_INSTANCE);\n\n\tdisabled = input(false, { transform: booleanAttribute });\n\n\tvalue = input.required<T>();\n\n\tid = `${this.segmentedControlRef.id}item${nextId++}`;\n\tname = this.segmentedControlRef.id;\n\n\tlabel = input<PortalContent>();\n\n\tpublic get formControl() {\n\t\treturn this.segmentedControlRef.ngControl.control;\n\t}\n}\n","<input\n\ttype=\"radio\"\n\tclass=\"segmentedControl-item-input\"\n\t[name]=\"name\"\n\t[attr.name]=\"name\"\n\t[formControl]=\"formControl\"\n\t[value]=\"value()\"\n\t[attr.id]=\"id\"\n\t[attr.disabled]=\"formControl.disabled || disabled() ? 'disabled' : null\"\n/>\n<label [attr.for]=\"id\" class=\"segmentedControl-item-action\">\n\t<ng-container *luPortal=\"label()\" />\n</label>\n","import { CommonModule } from '@angular/common';\nimport { booleanAttribute, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { injectNgControl, NoopValueAccessorDirective } from '@lucca-front/ng/forms';\nimport { LU_SEGMENTEDCONTROL_INSTANCE } from './segmented-control.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-segmented-control',\n\tstandalone: true,\n\ttemplate: '<ng-content />',\n\tstyleUrls: ['./segmented-control.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\timports: [ReactiveFormsModule, CommonModule],\n\thostDirectives: [NoopValueAccessorDirective],\n\thost: {\n\t\trole: 'presentation',\n\t\tclass: 'segmentedControl',\n\t\t'[class.mod-S]': 'small()',\n\t\t'[class.mod-vertical]': 'vertical()',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_SEGMENTEDCONTROL_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => SegmentedControlComponent),\n\t\t},\n\t],\n})\nexport class SegmentedControlComponent {\n\tngControl = injectNgControl();\n\n\tsmall = input(false, { transform: booleanAttribute });\n\tvertical = input(false, { transform: booleanAttribute });\n\n\tid = `segmentedControl${nextId++}`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1"],"mappings":";;;;;;;;;AAGO,MAAM,4BAA4B,GAAG,IAAI,cAAc,CAA4B,8BAA8B,CAAC;;ACEzH,IAAIA,QAAM,GAAG,CAAC;MAaD,+BAA+B,CAAA;AAX5C,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAEpE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAExD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAK;QAE3B,IAAE,CAAA,EAAA,GAAG,CAAG,EAAA,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAO,IAAA,EAAAA,QAAM,EAAE,CAAA,CAAE;AACpD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE;QAElC,IAAK,CAAA,KAAA,GAAG,KAAK,EAAiB;AAK9B;AAHA,IAAA,IAAW,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO;;8GAbtC,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EClB5C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oYAaA,EDDW,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,6xBAAE,eAAe,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAMlC,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAX3C,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC3B,UAAA,EAAA,IAAI,EAED,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA,CAAC,mBAAmB,EAAE,eAAe,CAAC,EACzC,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,uBAAuB;AAC9B,wBAAA,IAAI,EAAE,UAAU;AAChB,qBAAA,EAAA,QAAA,EAAA,oYAAA,EAAA;;;AEVF,IAAI,MAAM,GAAG,CAAC;MAuBD,yBAAyB,CAAA;AArBtC,IAAA,WAAA,GAAA;QAsBC,IAAS,CAAA,SAAA,GAAG,eAAe,EAAE;QAE7B,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QACrD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAExD,QAAA,IAAA,CAAA,EAAE,GAAG,CAAA,gBAAA,EAAmB,MAAM,EAAE,EAAE;AAClC;8GAPY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAP1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,EAAA,UAAA,EAAA,EAAA,aAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,aAAA;AACD,SAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAC,IAAA,CAAA,0BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhBS,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gxOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAGhB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAe/B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBArBrC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,cACpB,IAAI,EAAA,QAAA,EACN,gBAAgB,EAEX,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,mBAAmB,EAAE,YAAY,CAAC,kBAC5B,CAAC,0BAA0B,CAAC,EACtC,IAAA,EAAA;AACL,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,KAAK,EAAE,kBAAkB;AACzB,wBAAA,eAAe,EAAE,SAAS;AAC1B,wBAAA,sBAAsB,EAAE,YAAY;qBACpC,EACU,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,yBAAA;AACD,qBAAA,EAAA,MAAA,EAAA,CAAA,gxOAAA,CAAA,EAAA;;;AC3BF;;AAEG;;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, input, ViewEncapsulation, Component, booleanAttribute, contentChildren, viewChildren, model, computed, forwardRef } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import { PortalDirective } from '@lucca-front/ng/core';
|
|
6
|
+
import * as i1 from '@lucca-front/ng/forms';
|
|
7
|
+
import { NoopValueAccessorDirective } from '@lucca-front/ng/forms';
|
|
8
|
+
|
|
9
|
+
const LU_SEGMENTEDCONTROLTABS_INSTANCE = new InjectionToken('LU_SEGMENTEDCONTROLTABS_INSTANCE');
|
|
10
|
+
|
|
11
|
+
let nextId$1 = 0;
|
|
12
|
+
class SegmentedControlTabsPanelComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.segmentedControlTabsRef = inject(LU_SEGMENTEDCONTROLTABS_INSTANCE);
|
|
15
|
+
this.label = input();
|
|
16
|
+
this.value = input.required();
|
|
17
|
+
this.id = nextId$1++;
|
|
18
|
+
this.panelId = `panel${this.id}`;
|
|
19
|
+
this.labelId = `tab${this.id}`;
|
|
20
|
+
}
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlTabsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.2", type: SegmentedControlTabsPanelComponent, isStandalone: true, selector: "lu-segmented-control-tabs-panel", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { attributes: { "role": "tabpanel" }, properties: { "tabindex": "0", "class.is-active": "segmentedControlTabsRef.active() === this.value()", "id": "this.panelId", "attr.aria-labelledby": "this.labelId" }, classAttribute: "segmentedControl_panel" }, ngImport: i0, template: '<ng-content />', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlTabsPanelComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: 'lu-segmented-control-tabs-panel',
|
|
28
|
+
standalone: true,
|
|
29
|
+
template: '<ng-content />',
|
|
30
|
+
encapsulation: ViewEncapsulation.None,
|
|
31
|
+
host: {
|
|
32
|
+
class: 'segmentedControl_panel',
|
|
33
|
+
role: 'tabpanel',
|
|
34
|
+
'[tabindex]': '0',
|
|
35
|
+
'[class.is-active]': 'segmentedControlTabsRef.active() === this.value()',
|
|
36
|
+
'[id]': 'this.panelId',
|
|
37
|
+
'[attr.aria-labelledby]': 'this.labelId',
|
|
38
|
+
},
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
|
|
42
|
+
let nextId = 0;
|
|
43
|
+
class SegmentedControlTabsComponent {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.small = input(false, { transform: booleanAttribute });
|
|
46
|
+
this.vertical = input(false, { transform: booleanAttribute });
|
|
47
|
+
this.id = `segmentedControl${nextId++}`;
|
|
48
|
+
this.tabs = contentChildren(SegmentedControlTabsPanelComponent);
|
|
49
|
+
this.tabButtons = viewChildren('tabButton');
|
|
50
|
+
this.active = model(null);
|
|
51
|
+
this.currentIndex = computed(() => this.tabs().findIndex((tab) => tab.value() === this.active()));
|
|
52
|
+
}
|
|
53
|
+
previous() {
|
|
54
|
+
let newIndex = this.currentIndex() - 1;
|
|
55
|
+
if (newIndex < 0) {
|
|
56
|
+
newIndex = this.tabs().length - 1;
|
|
57
|
+
}
|
|
58
|
+
this.setActiveTab(newIndex);
|
|
59
|
+
}
|
|
60
|
+
next() {
|
|
61
|
+
let newIndex = this.currentIndex() + 1;
|
|
62
|
+
if (newIndex >= this.tabs().length) {
|
|
63
|
+
newIndex = 0;
|
|
64
|
+
}
|
|
65
|
+
this.setActiveTab(newIndex);
|
|
66
|
+
}
|
|
67
|
+
setActiveTab(index) {
|
|
68
|
+
this.active.set(this.tabs()[index].value());
|
|
69
|
+
this.tabButtons()[index].nativeElement.focus();
|
|
70
|
+
}
|
|
71
|
+
ngAfterContentInit() {
|
|
72
|
+
if (this.active() === null) {
|
|
73
|
+
this.active.set(this.tabs()[0].value());
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: SegmentedControlTabsComponent, isStandalone: true, selector: "lu-segmented-control-tabs", inputs: { small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null }, vertical: { classPropertyName: "vertical", publicName: "vertical", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { active: "activeChange" }, providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: LU_SEGMENTEDCONTROLTABS_INSTANCE,
|
|
80
|
+
useExisting: forwardRef(() => SegmentedControlTabsComponent),
|
|
81
|
+
},
|
|
82
|
+
], queries: [{ propertyName: "tabs", predicate: SegmentedControlTabsPanelComponent, isSignal: true }], viewQueries: [{ propertyName: "tabButtons", predicate: ["tabButton"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.NoopValueAccessorDirective }], ngImport: i0, template: "<ul class=\"segmentedControl\" role=\"tablist\" [class.mod-S]=\"small()\" [class.mod-vertical]=\"vertical()\">\n\t@for (panel of tabs(); track $index) {\n\t\t<li class=\"segmentedControl-item\" role=\"presentation\">\n\t\t\t<button\n\t\t\t\t#tabButton\n\t\t\t\tclass=\"segmentedControl-item-action\"\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"tab\"\n\t\t\t\t[attr.id]=\"panel.labelId\"\n\t\t\t\t[attr.aria-controls]=\"panel.value()\"\n\t\t\t\t[attr.aria-selected]=\"active() === panel.value()\"\n\t\t\t\t[attr.tabindex]=\"active() !== panel.value() ? '-1' : null\"\n\t\t\t\t(click)=\"active.set(panel.value())\"\n\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowup)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowright)=\"$event.preventDefault(); next()\"\n\t\t\t\t(keydown.arrowdown)=\"$event.preventDefault(); next()\"\n\t\t\t>\n\t\t\t\t<ng-container *luPortal=\"panel.label()\" />\n\t\t\t</button>\n\t\t</li>\n\t}\n</ul>\n<ng-content />\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.segmentedControl,.viewTabs{--components-segmentedControl-borderRadius: var(--pr-t-border-radius-default);--components-segmentedControl-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-segmentedControl-font: var(--pr-t-font-body-M);--components-segmentedControl-background: transparent;--components-segmentedControl-shadow: none;--components-segmentedControl-color: var(--pr-t-color-text);--components-segmentedControl-cursor: pointer;--components-segmentedControl-dividerInset: var(--pr-t-spacings-100);--components-segmentedControl-direction: row;--components-segmentedControl-width: fit-content;--components-segmentedControl-zIndex: 0;--components-segmentedControl-wrap: wrap;--components-segmentedControl-whiteSpace: normal;padding:0;margin:0;list-style-type:none;display:flex;flex-wrap:var(--components-segmentedControl-wrap);inline-size:var(--components-segmentedControl-width);flex-direction:var(--components-segmentedControl-direction);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-neutral-100);border-radius:var(--components-segmentedControl-borderRadius);background-color:var(--palettes-neutral-0);font:var(--components-segmentedControl-font);gap:var(--commons-divider-width);white-space:var(--components-segmentedControl-whiteSpace)}.segmentedControl-item-input{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.segmentedControl-item-input:focus-visible+.segmentedControl-item-action{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item,.viewTabs-item{flex-grow:1;position:relative;z-index:1}.segmentedControl-item:before,.segmentedControl-item:after,.viewTabs-item:before,.viewTabs-item:after{content:\"\";border-width:0;inset:var(--components-segmentedControl-dividerInset);border-color:var(--palettes-neutral-100);position:absolute;border-style:solid}.segmentedControl-item:before,.viewTabs-item:before{inset-inline-end:calc(var(--commons-divider-width) * -1);border-inline-start-width:var(--commons-divider-width);inset-inline-start:auto}.segmentedControl-item:after,.viewTabs-item:after{inset-block-end:calc(var(--commons-divider-width) * -1);border-block-start-width:var(--commons-divider-width);inset-block-start:auto}.segmentedControl-item-action,.viewTabs-item-tab{inline-size:100%;border:0;margin:0;padding:var(--components-segmentedControl-padding);background-color:var(--components-segmentedControl-background);box-shadow:var(--components-segmentedControl-shadow);border-radius:var(--components-segmentedControl-borderRadius);gap:var(--pr-t-spacings-100);color:var(--components-segmentedControl-color);text-align:center;justify-content:center;display:flex;align-items:center;position:relative;cursor:var(--components-segmentedControl-cursor);z-index:var(--components-segmentedControl-zIndex);font:inherit;transition-property:box-shadow;transition-duration:var(--commons-animations-durations-fast)}.segmentedControl-item-action:focus-visible,.viewTabs-item-tab:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item-action:hover,.viewTabs-item-tab:hover{--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-400), var(--pr-t-elevation-shadow-raised);--components-segmentedControl-zIndex: 1}.segmentedControl-item-action:active,.viewTabs-item-tab:active{--components-segmentedControl-background: var(--palettes-neutral-0);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500), var(--pr-t-elevation-shadow-raised)}.segmentedControl_panel,.viewTabs_panel{display:var(--components-segmentedControl-display, block);border-radius:var(--pr-t-border-radius-default)}.segmentedControl_panel:focus-visible,.viewTabs_panel:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}}@layer mods{.segmentedControl.mod-S,.viewTabs.mod-S{--components-segmentedControl-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-segmentedControl-font: var(--pr-t-font-body-S);--components-segmentedControl-dividerInset: var(--pr-t-spacings-75)}.segmentedControl.mod-S .numericBadge,.viewTabs.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.segmentedControl.mod-vertical,.viewTabs.mod-vertical{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}@media not all and (min-width: 30em){.segmentedControl,.viewTabs{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}}}@layer states{.segmentedControl-item-input:checked+.segmentedControl-item-action,.segmentedControl-item-action[aria-selected=true],.segmentedControl-item-input:checked+.viewTabs-item-tab,.viewTabs-item-tab[aria-selected=true]{--components-segmentedControl-background: var(--palettes-product-50);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500);--components-segmentedControl-color: var(--palettes-product-800);--components-segmentedControl-cursor: default;--components-segmentedControl-backgroundContent: none;--components-segmentedControl-zIndex: 1}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge,.segmentedControl-item-action[aria-selected=true] .numericBadge,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge,.viewTabs-item-tab[aria-selected=true] .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge.is-loading,.segmentedControl-item-action[aria-selected=true] .numericBadge.is-loading,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge.is-loading,.viewTabs-item-tab[aria-selected=true] .numericBadge.is-loading{--components-numericBadge-loadingColor: var(--palettes-product-500);--components-numericBadge-color: transparent}}@layer states{.segmentedControl-item-action:disabled,.segmentedControl-item-input:disabled~.segmentedControl-item-action{--components-segmentedControl-background: var(--palettes-neutral-100);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200);--components-segmentedControl-color: var(--pr-t-color-text-disabled);--components-segmentedControl-cursor: default}.segmentedControl-item-action:disabled .numericBadge,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.segmentedControl-item-action:disabled .numericBadge.is-loading,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge.is-loading{--components-numericBadge-color: transparent}}@layer states{.segmentedControl_panel:not(.is-active,.active),.viewTabs_panel:not(.is-active,.active){--components-segmentedControl-display: none}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
83
|
+
}
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: SegmentedControlTabsComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'lu-segmented-control-tabs', standalone: true, encapsulation: ViewEncapsulation.None, imports: [ReactiveFormsModule, CommonModule, PortalDirective], hostDirectives: [NoopValueAccessorDirective], providers: [
|
|
87
|
+
{
|
|
88
|
+
provide: LU_SEGMENTEDCONTROLTABS_INSTANCE,
|
|
89
|
+
useExisting: forwardRef(() => SegmentedControlTabsComponent),
|
|
90
|
+
},
|
|
91
|
+
], template: "<ul class=\"segmentedControl\" role=\"tablist\" [class.mod-S]=\"small()\" [class.mod-vertical]=\"vertical()\">\n\t@for (panel of tabs(); track $index) {\n\t\t<li class=\"segmentedControl-item\" role=\"presentation\">\n\t\t\t<button\n\t\t\t\t#tabButton\n\t\t\t\tclass=\"segmentedControl-item-action\"\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"tab\"\n\t\t\t\t[attr.id]=\"panel.labelId\"\n\t\t\t\t[attr.aria-controls]=\"panel.value()\"\n\t\t\t\t[attr.aria-selected]=\"active() === panel.value()\"\n\t\t\t\t[attr.tabindex]=\"active() !== panel.value() ? '-1' : null\"\n\t\t\t\t(click)=\"active.set(panel.value())\"\n\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowup)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowright)=\"$event.preventDefault(); next()\"\n\t\t\t\t(keydown.arrowdown)=\"$event.preventDefault(); next()\"\n\t\t\t>\n\t\t\t\t<ng-container *luPortal=\"panel.label()\" />\n\t\t\t</button>\n\t\t</li>\n\t}\n</ul>\n<ng-content />\n", styles: ["@layer reset,base,components,mods,states,product,utils;@layer components{.segmentedControl,.viewTabs{--components-segmentedControl-borderRadius: var(--pr-t-border-radius-default);--components-segmentedControl-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);--components-segmentedControl-font: var(--pr-t-font-body-M);--components-segmentedControl-background: transparent;--components-segmentedControl-shadow: none;--components-segmentedControl-color: var(--pr-t-color-text);--components-segmentedControl-cursor: pointer;--components-segmentedControl-dividerInset: var(--pr-t-spacings-100);--components-segmentedControl-direction: row;--components-segmentedControl-width: fit-content;--components-segmentedControl-zIndex: 0;--components-segmentedControl-wrap: wrap;--components-segmentedControl-whiteSpace: normal;padding:0;margin:0;list-style-type:none;display:flex;flex-wrap:var(--components-segmentedControl-wrap);inline-size:var(--components-segmentedControl-width);flex-direction:var(--components-segmentedControl-direction);box-shadow:0 0 0 var(--commons-divider-width) var(--palettes-neutral-100);border-radius:var(--components-segmentedControl-borderRadius);background-color:var(--palettes-neutral-0);font:var(--components-segmentedControl-font);gap:var(--commons-divider-width);white-space:var(--components-segmentedControl-whiteSpace)}.segmentedControl-item-input{border:0;clip:rect(1px,1px,1px,1px);margin:-1px;overflow:hidden;padding:0;position:absolute;block-size:1px;inline-size:1px;white-space:nowrap;contain:paint}.segmentedControl-item-input:focus-visible+.segmentedControl-item-action{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item,.viewTabs-item{flex-grow:1;position:relative;z-index:1}.segmentedControl-item:before,.segmentedControl-item:after,.viewTabs-item:before,.viewTabs-item:after{content:\"\";border-width:0;inset:var(--components-segmentedControl-dividerInset);border-color:var(--palettes-neutral-100);position:absolute;border-style:solid}.segmentedControl-item:before,.viewTabs-item:before{inset-inline-end:calc(var(--commons-divider-width) * -1);border-inline-start-width:var(--commons-divider-width);inset-inline-start:auto}.segmentedControl-item:after,.viewTabs-item:after{inset-block-end:calc(var(--commons-divider-width) * -1);border-block-start-width:var(--commons-divider-width);inset-block-start:auto}.segmentedControl-item-action,.viewTabs-item-tab{inline-size:100%;border:0;margin:0;padding:var(--components-segmentedControl-padding);background-color:var(--components-segmentedControl-background);box-shadow:var(--components-segmentedControl-shadow);border-radius:var(--components-segmentedControl-borderRadius);gap:var(--pr-t-spacings-100);color:var(--components-segmentedControl-color);text-align:center;justify-content:center;display:flex;align-items:center;position:relative;cursor:var(--components-segmentedControl-cursor);z-index:var(--components-segmentedControl-zIndex);font:inherit;transition-property:box-shadow;transition-duration:var(--commons-animations-durations-fast)}.segmentedControl-item-action:focus-visible,.viewTabs-item-tab:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:3px}.segmentedControl-item-action:hover,.viewTabs-item-tab:hover{--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-400), var(--pr-t-elevation-shadow-raised);--components-segmentedControl-zIndex: 1}.segmentedControl-item-action:active,.viewTabs-item-tab:active{--components-segmentedControl-background: var(--palettes-neutral-0);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500), var(--pr-t-elevation-shadow-raised)}.segmentedControl_panel,.viewTabs_panel{display:var(--components-segmentedControl-display, block);border-radius:var(--pr-t-border-radius-default)}.segmentedControl_panel:focus-visible,.viewTabs_panel:focus-visible{outline:2px solid var(--palettes-product-700);outline-offset:2px}}@layer mods{.segmentedControl.mod-S,.viewTabs.mod-S{--components-segmentedControl-padding: var(--pr-t-spacings-75) var(--pr-t-spacings-150);--components-segmentedControl-font: var(--pr-t-font-body-S);--components-segmentedControl-dividerInset: var(--pr-t-spacings-75)}.segmentedControl.mod-S .numericBadge,.viewTabs.mod-S .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: var(--pr-t-border-radius-small);--components-numericBadge-font: var(--pr-t-font-body-XS);--components-numericBadge-fontSize: var(--pr-t-font-body-XS-fontSize);--components-numericBadge-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.segmentedControl.mod-vertical,.viewTabs.mod-vertical{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}@media not all and (min-width: 30em){.segmentedControl,.viewTabs{--components-segmentedControl-direction: column;--components-segmentedControl-width: auto}}}@layer states{.segmentedControl-item-input:checked+.segmentedControl-item-action,.segmentedControl-item-action[aria-selected=true],.segmentedControl-item-input:checked+.viewTabs-item-tab,.viewTabs-item-tab[aria-selected=true]{--components-segmentedControl-background: var(--palettes-product-50);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-product-500);--components-segmentedControl-color: var(--palettes-product-800);--components-segmentedControl-cursor: default;--components-segmentedControl-backgroundContent: none;--components-segmentedControl-zIndex: 1}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge,.segmentedControl-item-action[aria-selected=true] .numericBadge,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge,.viewTabs-item-tab[aria-selected=true] .numericBadge{--components-numericBadge-background: var(--palettes-200, var(--palettes-product-200));--components-numericBadge-color: var(--palettes-800, var(--palettes-product-800))}.segmentedControl-item-input:checked+.segmentedControl-item-action .numericBadge.is-loading,.segmentedControl-item-action[aria-selected=true] .numericBadge.is-loading,.segmentedControl-item-input:checked+.viewTabs-item-tab .numericBadge.is-loading,.viewTabs-item-tab[aria-selected=true] .numericBadge.is-loading{--components-numericBadge-loadingColor: var(--palettes-product-500);--components-numericBadge-color: transparent}}@layer states{.segmentedControl-item-action:disabled,.segmentedControl-item-input:disabled~.segmentedControl-item-action{--components-segmentedControl-background: var(--palettes-neutral-100);--components-segmentedControl-shadow: 0 0 0 var(--commons-divider-width) var(--palettes-neutral-200);--components-segmentedControl-color: var(--pr-t-color-text-disabled);--components-segmentedControl-cursor: default}.segmentedControl-item-action:disabled .numericBadge,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge{--components-numericBadge-background: var(--palettes-neutral-200);--components-numericBadge-color: var(--palettes-neutral-500)}.segmentedControl-item-action:disabled .numericBadge.is-loading,.segmentedControl-item-input:disabled~.segmentedControl-item-action .numericBadge.is-loading{--components-numericBadge-color: transparent}}@layer states{.segmentedControl_panel:not(.is-active,.active),.viewTabs_panel:not(.is-active,.active){--components-segmentedControl-display: none}}\n"] }]
|
|
92
|
+
}] });
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Generated bundle index. Do not edit.
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
export { SegmentedControlTabsComponent, SegmentedControlTabsPanelComponent };
|
|
99
|
+
//# sourceMappingURL=lucca-front-ng-segmentedControlTabs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-segmentedControlTabs.mjs","sources":["../../../packages/ng/segmentedControlTabs/segmented-control-tabs.token.ts","../../../packages/ng/segmentedControlTabs/panel/panel.component.ts","../../../packages/ng/segmentedControlTabs/segmented-control-tabs.component.ts","../../../packages/ng/segmentedControlTabs/segmented-control-tabs.component.html","../../../packages/ng/segmentedControlTabs/lucca-front-ng-segmentedControlTabs.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SegmentedControlTabsComponent } from './segmented-control-tabs.component';\n\nexport const LU_SEGMENTEDCONTROLTABS_INSTANCE = new InjectionToken<SegmentedControlTabsComponent>('LU_SEGMENTEDCONTROLTABS_INSTANCE');\n","import { Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport { LU_SEGMENTEDCONTROLTABS_INSTANCE } from '../segmented-control-tabs.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-segmented-control-tabs-panel',\n\tstandalone: true,\n\ttemplate: '<ng-content />',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'segmentedControl_panel',\n\t\trole: 'tabpanel',\n\t\t'[tabindex]': '0',\n\t\t'[class.is-active]': 'segmentedControlTabsRef.active() === this.value()',\n\t\t'[id]': 'this.panelId',\n\t\t'[attr.aria-labelledby]': 'this.labelId',\n\t},\n})\nexport class SegmentedControlTabsPanelComponent<T = unknown> {\n\tprotected segmentedControlTabsRef = inject(LU_SEGMENTEDCONTROLTABS_INSTANCE);\n\tlabel = input<PortalContent>();\n\tvalue = input.required<T>();\n\n\tid = nextId++;\n\n\tpanelId = `panel${this.id}`;\n\tlabelId = `tab${this.id}`;\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, Component, computed, contentChildren, ElementRef, forwardRef, input, model, viewChildren, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { PortalDirective } from '@lucca-front/ng/core';\nimport { NoopValueAccessorDirective } from '@lucca-front/ng/forms';\nimport { SegmentedControlTabsPanelComponent } from './public-api';\nimport { LU_SEGMENTEDCONTROLTABS_INSTANCE } from './segmented-control-tabs.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-segmented-control-tabs',\n\tstandalone: true,\n\ttemplateUrl: './segmented-control-tabs.component.html',\n\tstyleUrls: ['./segmented-control-tabs.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\timports: [ReactiveFormsModule, CommonModule, PortalDirective],\n\thostDirectives: [NoopValueAccessorDirective],\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_SEGMENTEDCONTROLTABS_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => SegmentedControlTabsComponent),\n\t\t},\n\t],\n})\nexport class SegmentedControlTabsComponent<T = unknown> implements AfterContentInit {\n\tsmall = input(false, { transform: booleanAttribute });\n\tvertical = input(false, { transform: booleanAttribute });\n\n\tid = `segmentedControl${nextId++}`;\n\n\ttabs = contentChildren<SegmentedControlTabsPanelComponent<T>>(SegmentedControlTabsPanelComponent);\n\ttabButtons = viewChildren<ElementRef<HTMLButtonElement>>('tabButton');\n\n\tactive = model<T>(null);\n\n\tcurrentIndex = computed(() => this.tabs().findIndex((tab) => tab.value() === this.active()));\n\n\tprevious() {\n\t\tlet newIndex = this.currentIndex() - 1;\n\t\tif (newIndex < 0) {\n\t\t\tnewIndex = this.tabs().length - 1;\n\t\t}\n\t\tthis.setActiveTab(newIndex);\n\t}\n\n\tnext() {\n\t\tlet newIndex = this.currentIndex() + 1;\n\t\tif (newIndex >= this.tabs().length) {\n\t\t\tnewIndex = 0;\n\t\t}\n\t\tthis.setActiveTab(newIndex);\n\t}\n\n\tsetActiveTab(index: number) {\n\t\tthis.active.set(this.tabs()[index].value());\n\t\tthis.tabButtons()[index].nativeElement.focus();\n\t}\n\n\tngAfterContentInit(): void {\n\t\tif (this.active() === null) {\n\t\t\tthis.active.set(this.tabs()[0].value());\n\t\t}\n\t}\n}\n","<ul class=\"segmentedControl\" role=\"tablist\" [class.mod-S]=\"small()\" [class.mod-vertical]=\"vertical()\">\n\t@for (panel of tabs(); track $index) {\n\t\t<li class=\"segmentedControl-item\" role=\"presentation\">\n\t\t\t<button\n\t\t\t\t#tabButton\n\t\t\t\tclass=\"segmentedControl-item-action\"\n\t\t\t\ttype=\"button\"\n\t\t\t\trole=\"tab\"\n\t\t\t\t[attr.id]=\"panel.labelId\"\n\t\t\t\t[attr.aria-controls]=\"panel.value()\"\n\t\t\t\t[attr.aria-selected]=\"active() === panel.value()\"\n\t\t\t\t[attr.tabindex]=\"active() !== panel.value() ? '-1' : null\"\n\t\t\t\t(click)=\"active.set(panel.value())\"\n\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowup)=\"$event.preventDefault(); previous()\"\n\t\t\t\t(keydown.arrowright)=\"$event.preventDefault(); next()\"\n\t\t\t\t(keydown.arrowdown)=\"$event.preventDefault(); next()\"\n\t\t\t>\n\t\t\t\t<ng-container *luPortal=\"panel.label()\" />\n\t\t\t</button>\n\t\t</li>\n\t}\n</ul>\n<ng-content />\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId"],"mappings":"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"}
|