@lucca-front/ng 21.3.1-rc.3 → 21.4.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/lucca-front-ng-a11y.mjs +23 -16
- package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-activity-feed.mjs +27 -18
- package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-api.mjs +42 -42
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-app-layout.mjs +3 -3
- package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-box.mjs +5 -4
- package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs +12 -9
- package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-bubble-icon.mjs +19 -11
- package/fesm2022/lucca-front-ng-bubble-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs +13 -8
- package/fesm2022/lucca-front-ng-bubble-illustration.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +90 -57
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-chip.mjs +21 -12
- package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-clear.mjs +11 -7
- package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-code.mjs +3 -3
- package/fesm2022/lucca-front-ng-code.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-color.mjs +9 -6
- package/fesm2022/lucca-front-ng-color.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-comment.mjs +41 -25
- package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-container.mjs +7 -5
- package/fesm2022/lucca-front-ng-container.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-api.mjs +17 -13
- package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs +22 -14
- package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs +21 -15
- package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +12 -9
- package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs +9 -6
- package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select-user.mjs +48 -33
- package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +103 -77
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core.mjs +19 -17
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-data-table.mjs +92 -58
- package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +45 -43
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date2.mjs +183 -101
- package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +26 -25
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +51 -42
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-divider.mjs +7 -5
- package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dropdown.mjs +42 -41
- package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-empty-state.mjs +49 -29
- package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-error-page.mjs +9 -6
- package/fesm2022/lucca-front-ng-error-page.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +36 -35
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-fancy-box.mjs +17 -10
- package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-file-upload.mjs +81 -48
- package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +74 -46
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-footer.mjs +9 -6
- package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +88 -53
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-header.mjs +5 -4
- package/fesm2022/lucca-front-ng-form-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-label.mjs +15 -9
- package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form.mjs +3 -3
- package/fesm2022/lucca-front-ng-form.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +58 -58
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +33 -20
- package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +3 -3
- 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 +6 -6
- 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 +3 -3
- package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +123 -78
- package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +209 -125
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-gauge.mjs +23 -13
- package/fesm2022/lucca-front-ng-gauge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-grid.mjs +24 -15
- package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-data.mjs +25 -14
- package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-highlight-text.mjs +7 -5
- package/fesm2022/lucca-front-ng-highlight-text.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +33 -21
- package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-impersonation.mjs +13 -8
- package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-index-table.mjs +62 -46
- package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-inline-message.mjs +9 -6
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs +23 -22
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-link.mjs +8 -7
- package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listbox.mjs +25 -17
- package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-listing.mjs +14 -10
- package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-loading.mjs +7 -5
- package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-main-layout.mjs +6 -6
- package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-mobile-push.mjs +5 -4
- package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-modal.mjs +24 -23
- package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +84 -60
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-new-badge.mjs +5 -4
- package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-number-format.mjs +14 -10
- package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-number.mjs +7 -7
- package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-numeric-badge.mjs +17 -10
- package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-option.mjs +136 -132
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-page-header.mjs +11 -7
- package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-pagination.mjs +13 -8
- package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-plg-push.mjs +9 -6
- package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover.mjs +17 -17
- package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover2.mjs +33 -21
- package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popup.mjs +10 -10
- package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-progress-bar.mjs +7 -5
- package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-progress-stepper.mjs +16 -11
- package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-read-more.mjs +27 -15
- package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-resource-card.mjs +18 -15
- package/fesm2022/lucca-front-ng-resource-card.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-safe-content.mjs +10 -10
- package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll-box.mjs +7 -5
- package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll.mjs +9 -8
- package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +18 -12
- package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-segmented-control.mjs +10 -8
- package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-select.mjs +14 -14
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
- package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +23 -18
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-skeleton.mjs +62 -43
- package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs +16 -11
- package/fesm2022/lucca-front-ng-software-icon-wrapper.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-software-icon.mjs +11 -7
- package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-sortable-list.mjs +10 -8
- package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-status-badge.mjs +9 -6
- package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-table-of-content.mjs +8 -7
- package/fesm2022/lucca-front-ng-table-of-content.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tag.mjs +15 -9
- package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-text-flow.mjs +3 -3
- package/fesm2022/lucca-front-ng-text-flow.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-time.mjs +137 -78
- package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-title.mjs +10 -10
- package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-toast.mjs +16 -13
- package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tooltip.mjs +39 -28
- package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-tree-select.mjs +20 -13
- package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user-popover.mjs +22 -20
- package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +94 -77
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs +32 -22
- package/fesm2022/lucca-front-ng-vertical-navigation.mjs.map +1 -1
- package/package.json +8 -8
- package/schematics/action-icon/index.js +34 -1
- package/schematics/action-icon/migration.spec.js +36 -3
- package/schematics/alignment-utilities/migration.spec.js +36 -3
- package/schematics/cdn-urls/migration.spec.js +36 -3
- package/schematics/class-prefix/migration.spec.js +36 -3
- package/schematics/color-text/migration.spec.js +36 -3
- package/schematics/component-path/migration.spec.js +36 -3
- package/schematics/deprecated-resolver/migration.spec.js +35 -2
- package/schematics/empty-state-title/migration.spec.js +35 -2
- package/schematics/lib/css-mapper.js +36 -3
- package/schematics/lib/lf-schematic-context.js +34 -1
- package/schematics/lib/local-deps/postcss.js +34 -1
- package/schematics/lib/migration-test.js +5 -2
- package/schematics/lu-button/migration.spec.js +34 -1
- package/schematics/lu-container/migration.spec.js +34 -1
- package/schematics/lu-grid/migration.spec.js +34 -1
- package/schematics/lu-icon/migration.spec.js +34 -1
- package/schematics/lu-loading/migration.spec.js +34 -1
- package/schematics/lu-select/migration.spec.js +34 -1
- package/schematics/lu-text-input/migration.spec.js +34 -1
- package/schematics/new-icons/index.js +35 -2
- package/schematics/new-icons/migration.spec.js +36 -3
- package/schematics/palettes/migration.spec.js +36 -3
- package/schematics/tokens-radius/migration.spec.js +36 -3
- package/schematics/tokens-spacing/migration.spec.js +36 -3
- package/schematics/tokens-typo/migration.spec.js +36 -3
- package/types/lucca-front-ng-forms-phone-number-input.d.ts +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/title-translate.service.ts","../../../packages/ng/title/title.model.ts","../../../packages/ng/title/title.service.ts","../../../packages/ng/title/title.module.ts","../../../packages/ng/title/title.strategy.ts","../../../packages/ng/title/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\n\nexport interface ILuTitleTranslateService {\n\ttranslate(key: string, args?: Record<string, unknown>): string | Observable<string>;\n}\n","export type PageTitle = { title: string; params?: { [param: string]: string } };\nexport const TitleSeparator = ' – ';\n","import { DestroyRef, Inject, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\nimport { BehaviorSubject, combineLatest, ObservableInput, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs/operators';\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\nimport { PageTitle, TitleSeparator } from './title.model';\n\n/**\n * @deprecated use Title strategy instead\n */\n@Injectable()\nexport class LuTitleService {\n\tprivate destroyRef = inject(DestroyRef);\n\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>(['Lucca']);\n\ttitleParts$ = this.titlePartsSubject.asObservable();\n\ttitle$ = this.titleParts$.pipe(\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\n\t\tmap((parts) => parts.join(TitleSeparator)),\n\t);\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate title: Title,\n\t\t@Inject(LU_TITLE_TRANSLATE_SERVICE) private translateService: ILuTitleTranslateService,\n\t) {}\n\n\tinit(applicationNameTranslationKey: string) {\n\t\tthis.router.events\n\t\t\t.pipe(\n\t\t\t\tfilter((event) => {\n\t\t\t\t\treturn event instanceof ActivationEnd && event.snapshot.children.length === 0;\n\t\t\t\t}),\n\t\t\t\tmap((event: ActivationEnd) => getPageTitleParts(event.snapshot)),\n\t\t\t\tmap((titleParts) => uniqTitle(titleParts)),\n\t\t\t\tmap((titleParts) => titleParts.filter(({ title }) => title !== '').map(({ title, params }) => this.translateService.translate(title, params))),\n\t\t\t\tmap((titleParts: Array<string>) => [...titleParts, this.translateService.translate(applicationNameTranslationKey, {}), 'Lucca'].filter((x) => !!x)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap((titleParts) => this.titlePartsSubject.next(titleParts)),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\tthis.title$\n\t\t\t.pipe(\n\t\t\t\ttap((title) => this.title.setTitle(title)),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprependTitle(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\n\t}\n\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\n\t}\n}\n\nfunction getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\n\tconst pageTitle: PageTitle = {\n\t\ttitle: (snapshot.data?.['title'] || '') as string,\n\t\tparams: { ...snapshot.params, ...snapshot.data },\n\t};\n\treturn snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];\n}\n\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { LuTitleService } from './title.service';\n\n/**\n * @deprecated use title streatgy instead\n */\n@NgModule({\n\timports: [RouterModule],\n\tproviders: [LuTitleService],\n})\nexport class LuTitleModule {}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { inject, Injectable, InjectionToken, Provider } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, TitleStrategy } from '@angular/router';\nimport { isNotNil } from '@lucca-front/ng/core';\nimport { BehaviorSubject, combineLatest, isObservable, Observable, ObservableInput, of } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\nimport { PageTitle, TitleSeparator } from './title.model';\n\nexport const ɵAPP_TITLE = new InjectionToken<string | Observable<string>>('APP_TITLE');\nexport type LuTitleNamingStrategy = 'product' | 'other';\nexport const ɵNAMING_STRATEGY = new InjectionToken<LuTitleNamingStrategy>('NAMING_STRATEGY', { factory: () => 'product' });\nexport const ɵREAD_TITLE_BY_LIVE_ANNOUNCER = new InjectionToken<boolean>('READ_TITLE_BY_LIVE_ANNOUNCEMENT', { factory: () => false });\n\n/**\n * @deprecated Use `provideLuTitleStrategy` instead.\n */\nexport const APP_TITLE = ɵAPP_TITLE;\n\nconst Lucca = 'Lucca';\n\n@Injectable({ providedIn: 'root' })\nexport class LuTitleStrategy extends TitleStrategy {\n\tprivate title = inject(Title);\n\tprivate translateService = inject<ILuTitleTranslateService>(LU_TITLE_TRANSLATE_SERVICE, { optional: true });\n\tprivate appTitle = inject(ɵAPP_TITLE);\n\tprivate namingStrategy = inject(ɵNAMING_STRATEGY);\n\tprivate readTitleByLiveAnnouncer = inject(ɵREAD_TITLE_BY_LIVE_ANNOUNCER);\n\tprivate liveAnnouncer = inject(LiveAnnouncer);\n\n\tprivate luccaTitle$ = isObservable(this.appTitle) ? this.appTitle.pipe(map((title) => this.#luccaTitle(title))) : of(this.#luccaTitle(this.appTitle));\n\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>([Lucca]);\n\ttitleParts$ = this.titlePartsSubject.asObservable();\n\ttitle$ = this.titleParts$.pipe(\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\n\t\tmap((parts) => parts.join(TitleSeparator)),\n\t\tdistinctUntilChanged(),\n\t);\n\tconstructor() {\n\t\tsuper();\n\t\tthis.title$\n\t\t\t.pipe(\n\t\t\t\ttap((title) => {\n\t\t\t\t\tthis.title.setTitle(title);\n\t\t\t\t\tif (this.readTitleByLiveAnnouncer) {\n\t\t\t\t\t\tvoid this.liveAnnouncer.announce(title, 'polite');\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\toverride updateTitle(routerState: RouterStateSnapshot) {\n\t\t// Title page is display from child to root\n\t\tconst pageTitles = this.#getPageTitleParts(routerState.root).reverse();\n\t\tconst translatedPageTitles = uniqTitle(pageTitles)\n\t\t\t.filter(({ title }) => title !== '')\n\t\t\t.map(({ title, params }) => (this.translateService ? this.translateService.translate(title, params) : title));\n\t\t// Add the name app\n\t\tconst titleParts = [...translatedPageTitles, this.luccaTitle$].filter((x) => !!x);\n\t\tthis.titlePartsSubject.next(titleParts);\n\t}\n\n\tprependTitle(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\n\t}\n\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\n\t}\n\n\t#getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\n\t\tconst pageTitle: PageTitle = {\n\t\t\ttitle: this.getResolvedTitleForRoute(snapshot) as string,\n\t\t\tparams: { ...snapshot.params, ...snapshot.data },\n\t\t};\n\t\treturn snapshot.firstChild ? [pageTitle, ...this.#getPageTitleParts(snapshot.firstChild)] : [pageTitle];\n\t}\n\n\t#luccaTitle(appTitle: string) {\n\t\tif (appTitle.includes(Lucca)) {\n\t\t\treturn appTitle;\n\t\t}\n\t\tif (this.namingStrategy === 'product') {\n\t\t\treturn `${Lucca} ${appTitle}`;\n\t\t}\n\t\treturn `${appTitle}${TitleSeparator}${Lucca}`;\n\t}\n}\n\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\n}\n\nexport interface LuTitleStrategyOptions {\n\tappTitle?: () => string | Observable<string>;\n\ttranslateService?: () => ILuTitleTranslateService;\n\tnamingStrategy?: LuTitleNamingStrategy;\n\treadTitleByLiveAnnouncer?: boolean;\n}\n\nexport function provideLuTitleStrategy(options: LuTitleStrategyOptions): Provider[] {\n\tconst providers: Provider[] = [{ provide: TitleStrategy, useClass: LuTitleStrategy }];\n\n\tif (options.appTitle) {\n\t\tproviders.push({ provide: ɵAPP_TITLE, useFactory: options.appTitle });\n\t}\n\tif (options.translateService) {\n\t\tproviders.push({ provide: LU_TITLE_TRANSLATE_SERVICE, useFactory: options.translateService });\n\t}\n\tif (options.namingStrategy) {\n\t\tproviders.push({ provide: ɵNAMING_STRATEGY, useValue: options.namingStrategy });\n\t}\n\tif (isNotNil(options.readTitleByLiveAnnouncer)) {\n\t\tproviders.push({ provide: ɵREAD_TITLE_BY_LIVE_ANNOUNCER, useValue: options.readTitleByLiveAnnouncer });\n\t}\n\n\treturn providers;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uniqTitle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-title.mjs","sources":["../../../packages/ng/title/title-translate.service.ts","../../../packages/ng/title/title.model.ts","../../../packages/ng/title/title.service.ts","../../../packages/ng/title/title.module.ts","../../../packages/ng/title/title.strategy.ts","../../../packages/ng/title/lucca-front-ng-title.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport const LU_TITLE_TRANSLATE_SERVICE = new InjectionToken<ILuTitleTranslateService>('LU_TITLE_TRANSLATE_SERVICE');\n\nexport interface ILuTitleTranslateService {\n\ttranslate(key: string, args?: Record<string, unknown>): string | Observable<string>;\n}\n","export type PageTitle = { title: string; params?: { [param: string]: string } };\nexport const TitleSeparator = ' – ';\n","import { DestroyRef, Inject, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRouteSnapshot, ActivationEnd, Router } from '@angular/router';\nimport { BehaviorSubject, combineLatest, ObservableInput, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs/operators';\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\nimport { PageTitle, TitleSeparator } from './title.model';\n\n/**\n * @deprecated use Title strategy instead\n */\n@Injectable()\nexport class LuTitleService {\n\tprivate destroyRef = inject(DestroyRef);\n\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>(['Lucca']);\n\ttitleParts$ = this.titlePartsSubject.asObservable();\n\ttitle$ = this.titleParts$.pipe(\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\n\t\tmap((parts) => parts.join(TitleSeparator)),\n\t);\n\n\tconstructor(\n\t\tprivate router: Router,\n\t\tprivate title: Title,\n\t\t@Inject(LU_TITLE_TRANSLATE_SERVICE) private translateService: ILuTitleTranslateService,\n\t) {}\n\n\tinit(applicationNameTranslationKey: string) {\n\t\tthis.router.events\n\t\t\t.pipe(\n\t\t\t\tfilter((event) => {\n\t\t\t\t\treturn event instanceof ActivationEnd && event.snapshot.children.length === 0;\n\t\t\t\t}),\n\t\t\t\tmap((event: ActivationEnd) => getPageTitleParts(event.snapshot)),\n\t\t\t\tmap((titleParts) => uniqTitle(titleParts)),\n\t\t\t\tmap((titleParts) => titleParts.filter(({ title }) => title !== '').map(({ title, params }) => this.translateService.translate(title, params))),\n\t\t\t\tmap((titleParts: Array<string>) => [...titleParts, this.translateService.translate(applicationNameTranslationKey, {}), 'Lucca'].filter((x) => !!x)),\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap((titleParts) => this.titlePartsSubject.next(titleParts)),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe();\n\n\t\tthis.title$\n\t\t\t.pipe(\n\t\t\t\ttap((title) => this.title.setTitle(title)),\n\t\t\t\ttakeUntilDestroyed(this.destroyRef),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\tprependTitle(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\n\t}\n\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\n\t}\n}\n\nfunction getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\n\tconst pageTitle: PageTitle = {\n\t\ttitle: (snapshot.data?.['title'] || '') as string,\n\t\tparams: { ...snapshot.params, ...snapshot.data },\n\t};\n\treturn snapshot.parent ? [pageTitle, ...getPageTitleParts(snapshot.parent)] : [pageTitle];\n}\n\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { LuTitleService } from './title.service';\n\n/**\n * @deprecated use title streatgy instead\n */\n@NgModule({\n\timports: [RouterModule],\n\tproviders: [LuTitleService],\n})\nexport class LuTitleModule {}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { inject, Injectable, InjectionToken, Provider } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, TitleStrategy } from '@angular/router';\nimport { isNotNil } from '@lucca-front/ng/core';\nimport { BehaviorSubject, combineLatest, isObservable, Observable, ObservableInput, of } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { ILuTitleTranslateService, LU_TITLE_TRANSLATE_SERVICE } from './title-translate.service';\nimport { PageTitle, TitleSeparator } from './title.model';\n\nexport const ɵAPP_TITLE = new InjectionToken<string | Observable<string>>('APP_TITLE');\nexport type LuTitleNamingStrategy = 'product' | 'other';\nexport const ɵNAMING_STRATEGY = new InjectionToken<LuTitleNamingStrategy>('NAMING_STRATEGY', { factory: () => 'product' });\nexport const ɵREAD_TITLE_BY_LIVE_ANNOUNCER = new InjectionToken<boolean>('READ_TITLE_BY_LIVE_ANNOUNCEMENT', { factory: () => false });\n\n/**\n * @deprecated Use `provideLuTitleStrategy` instead.\n */\nexport const APP_TITLE = ɵAPP_TITLE;\n\nconst Lucca = 'Lucca';\n\n@Injectable({ providedIn: 'root' })\nexport class LuTitleStrategy extends TitleStrategy {\n\tprivate title = inject(Title);\n\tprivate translateService = inject<ILuTitleTranslateService>(LU_TITLE_TRANSLATE_SERVICE, { optional: true });\n\tprivate appTitle = inject(ɵAPP_TITLE);\n\tprivate namingStrategy = inject(ɵNAMING_STRATEGY);\n\tprivate readTitleByLiveAnnouncer = inject(ɵREAD_TITLE_BY_LIVE_ANNOUNCER);\n\tprivate liveAnnouncer = inject(LiveAnnouncer);\n\n\tprivate luccaTitle$ = isObservable(this.appTitle) ? this.appTitle.pipe(map((title) => this.#luccaTitle(title))) : of(this.#luccaTitle(this.appTitle));\n\n\tprivate titlePartsSubject = new BehaviorSubject<Array<string | ObservableInput<string>>>([Lucca]);\n\ttitleParts$ = this.titlePartsSubject.asObservable();\n\ttitle$ = this.titleParts$.pipe(\n\t\tswitchMap((titleParts) => combineLatest(titleParts.map((part) => (typeof part === 'string' ? of(part) : part)))),\n\t\tmap((parts) => parts.join(TitleSeparator)),\n\t\tdistinctUntilChanged(),\n\t);\n\tconstructor() {\n\t\tsuper();\n\t\tthis.title$\n\t\t\t.pipe(\n\t\t\t\ttap((title) => {\n\t\t\t\t\tthis.title.setTitle(title);\n\t\t\t\t\tif (this.readTitleByLiveAnnouncer) {\n\t\t\t\t\t\tvoid this.liveAnnouncer.announce(title, 'polite');\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe();\n\t}\n\n\toverride updateTitle(routerState: RouterStateSnapshot) {\n\t\t// Title page is display from child to root\n\t\tconst pageTitles = this.#getPageTitleParts(routerState.root).reverse();\n\t\tconst translatedPageTitles = uniqTitle(pageTitles)\n\t\t\t.filter(({ title }) => title !== '')\n\t\t\t.map(({ title, params }) => (this.translateService ? this.translateService.translate(title, params) : title));\n\t\t// Add the name app\n\t\tconst titleParts = [...translatedPageTitles, this.luccaTitle$].filter((x) => !!x);\n\t\tthis.titlePartsSubject.next(titleParts);\n\t}\n\n\tprependTitle(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value]);\n\t}\n\n\toverrideFirstTitlePart(title: string | ObservableInput<string>) {\n\t\tthis.titlePartsSubject.next([title, ...this.titlePartsSubject.value.slice(1)]);\n\t}\n\n\t#getPageTitleParts(snapshot: ActivatedRouteSnapshot): Array<PageTitle> {\n\t\tconst pageTitle: PageTitle = {\n\t\t\ttitle: this.getResolvedTitleForRoute(snapshot) as string,\n\t\t\tparams: { ...snapshot.params, ...snapshot.data },\n\t\t};\n\t\treturn snapshot.firstChild ? [pageTitle, ...this.#getPageTitleParts(snapshot.firstChild)] : [pageTitle];\n\t}\n\n\t#luccaTitle(appTitle: string) {\n\t\tif (appTitle.includes(Lucca)) {\n\t\t\treturn appTitle;\n\t\t}\n\t\tif (this.namingStrategy === 'product') {\n\t\t\treturn `${Lucca} ${appTitle}`;\n\t\t}\n\t\treturn `${appTitle}${TitleSeparator}${Lucca}`;\n\t}\n}\n\nfunction uniqTitle(titleParts: Array<PageTitle>): Array<PageTitle> {\n\treturn titleParts.filter(({ title }, index) => titleParts.findIndex((pageTitle) => pageTitle.title === title) === index);\n}\n\nexport interface LuTitleStrategyOptions {\n\tappTitle?: () => string | Observable<string>;\n\ttranslateService?: () => ILuTitleTranslateService;\n\tnamingStrategy?: LuTitleNamingStrategy;\n\treadTitleByLiveAnnouncer?: boolean;\n}\n\nexport function provideLuTitleStrategy(options: LuTitleStrategyOptions): Provider[] {\n\tconst providers: Provider[] = [{ provide: TitleStrategy, useClass: LuTitleStrategy }];\n\n\tif (options.appTitle) {\n\t\tproviders.push({ provide: ɵAPP_TITLE, useFactory: options.appTitle });\n\t}\n\tif (options.translateService) {\n\t\tproviders.push({ provide: LU_TITLE_TRANSLATE_SERVICE, useFactory: options.translateService });\n\t}\n\tif (options.namingStrategy) {\n\t\tproviders.push({ provide: ɵNAMING_STRATEGY, useValue: options.namingStrategy });\n\t}\n\tif (isNotNil(options.readTitleByLiveAnnouncer)) {\n\t\tproviders.push({ provide: ɵREAD_TITLE_BY_LIVE_ANNOUNCER, useValue: options.readTitleByLiveAnnouncer });\n\t}\n\n\treturn providers;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uniqTitle"],"mappings":"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"}
|
|
@@ -31,10 +31,10 @@ class LuToastsService {
|
|
|
31
31
|
const randomString = Math.random().toString(36).substring(2, 9);
|
|
32
32
|
return `_${randomString}`;
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
35
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsService, providedIn: 'root' }); }
|
|
36
36
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsService, decorators: [{
|
|
38
38
|
type: Injectable,
|
|
39
39
|
args: [{ providedIn: 'root' }]
|
|
40
40
|
}] });
|
|
@@ -78,10 +78,13 @@ class LuToastsComponent {
|
|
|
78
78
|
#toastsService;
|
|
79
79
|
constructor() {
|
|
80
80
|
this.#toastsService = inject(LuToastsService);
|
|
81
|
-
this.bottom = input(false,
|
|
82
|
-
|
|
81
|
+
this.bottom = input(false, /* @ts-ignore */
|
|
82
|
+
...(ngDevMode ? [{ debugName: "bottom" }] : /* istanbul ignore next */ []));
|
|
83
|
+
this.sources = input(/* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [undefined, { debugName: "sources" }] : /* istanbul ignore next */ []));
|
|
83
85
|
this.toasts$ = this.#toastsService.toasts$;
|
|
84
|
-
this.intl = input(...intlInputOptions(LU_TOAST_TRANSLATIONS),
|
|
86
|
+
this.intl = input(...intlInputOptions(LU_TOAST_TRANSLATIONS), /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "intl" }] : /* istanbul ignore next */ []));
|
|
85
88
|
this.iconClassByToastType = {
|
|
86
89
|
Info: 'icon-signInfo',
|
|
87
90
|
Success: 'icon-signSuccess',
|
|
@@ -112,10 +115,10 @@ class LuToastsComponent {
|
|
|
112
115
|
isOnlyDismissibleManually(toast) {
|
|
113
116
|
return this.#toastsService.isOnlyDismissibleManually(toast);
|
|
114
117
|
}
|
|
115
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
116
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
119
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: LuToastsComponent, isStandalone: true, selector: "lu-toasts", inputs: { bottom: { classPropertyName: "bottom", publicName: "bottom", isSignal: true, isRequired: false, transformFunction: null }, sources: { classPropertyName: "sources", publicName: "sources", isSignal: true, isRequired: false, transformFunction: null }, intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\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</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: calc(var(--pr-t-spacings-300) + var(--commons-pushPanel-inlineSize));--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: min(22.5rem, calc(100dvw - (var(--components-toasts-right) * 2)));--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0;overflow-wrap:anywhere}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button,.toasts-item-kill:not(.button){--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
117
120
|
}
|
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsComponent, decorators: [{
|
|
119
122
|
type: Component,
|
|
120
123
|
args: [{ selector: 'lu-toasts', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AsyncPipe, PortalDirective], template: "<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\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</div>\n", styles: ["@layer components{.toasts{--components-toasts-color: var(--pr-t-color-text-reverse);--components-toasts-top: var(--pr-t-spacings-300);--components-toasts-right: calc(var(--pr-t-spacings-300) + var(--commons-pushPanel-inlineSize));--components-toasts-left: var(--pr-t-spacings-300);--components-toasts-bottom: var(--pr-t-spacings-300);--components-toasts-margin-bottom: var(--pr-t-spacings-50);--components-toasts-maxwidth: min(22.5rem, calc(100dvw - (var(--components-toasts-right) * 2)));--components-toasts-inset: var(--components-toasts-top) var(--components-toasts-right) auto auto;--components-toasts-footerHeight: 4.5rem;--components-toasts-background: var(--palettes-neutral-800);--components-toasts-padding: var(--pr-t-spacings-100) var(--pr-t-spacings-200);max-inline-size:var(--components-toasts-maxwidth);display:flex;flex-direction:column;align-items:flex-end;position:fixed;z-index:9999;inset:var(--components-toasts-inset)}html:has(.main-content .footer.mod-sticky,.dialog.mod-drawer .dialog-inside-footer) .toasts{--components-toasts-bottom: calc(var(--components-toasts-footerHeight) + var(--pr-t-spacings-300))}.toasts-item{display:flex;gap:var(--pr-t-spacings-50);color:var(--components-toasts-color);padding:var(--pr-t-spacings-50);margin-block-end:var(--components-toasts-margin-bottom);background-color:var(--palettes-neutral-800);animation-name:toastsItem;animation-duration:var(--commons-animations-durations-standard);animation-iteration-count:1;border-radius:var(--pr-t-border-radius-structure);overflow:hidden;position:relative;transform-origin:top}@keyframes toastsItem{0%{transform:translateY(var(--pr-t-spacings-200));opacity:0}to{opacity:1}}.toasts-item:hover .toasts-item-kill,.toasts-item:focus-within .toasts-item-kill{animation-play-state:paused}.toast-item-icon{background:var(--palettes-700, var(--palettes-product-700));border-radius:var(--pr-t-border-radius-default);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-50)}.toast-item-content{display:flex;flex-grow:1;flex-direction:column;gap:var(--pr-t-spacings-50);padding-block:var(--pr-t-spacings-100);padding-inline:var(--pr-t-spacings-100) 0}.toast-item-content-description{margin:0;overflow-wrap:anywhere}.toasts-item-kill.button,.toasts-item-kill:not(.button){align-self:flex-start;border-radius:var(--pr-t-border-radius-default);animation-name:timer;--components-button-padding: var(--pr-t-spacings-100);--components-button-backgroundColor: transparent;--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-boxShadow: none}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-700, var(--pr-t-color-text-subtle));--components-button-backgroundColor: var(--palettes-50, var(--palettes-neutral-50))}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-100, var(--palettes-neutral-100))}.toasts-item-kill.button:disabled,.toasts-item-kill:not(.button):disabled{--components-button-backgroundColor: transparent;--components-button-color: var(--pr-t-color-text-disabled)}.toasts-item-kill.button,.toasts-item-kill:not(.button){--components-button-color: var(--palettes-neutral-0)}.toasts-item-kill.button:hover,.toasts-item-kill.button:focus-visible,.toasts-item-kill:not(.button):hover,.toasts-item-kill:not(.button):focus-visible{--components-button-color: var(--palettes-neutral-0);--components-button-backgroundColor: var(--palettes-neutral-900)}.toasts-item-kill.button:active,.toasts-item-kill:not(.button):active{--components-button-backgroundColor: var(--palettes-neutral-700)}@keyframes timer{}}@layer mods{.toasts.mod-bottom{--components-toasts-inset: auto var(--components-toasts-right) var(--components-toasts-bottom) auto}}\n"] }]
|
|
121
124
|
}], ctorParameters: () => [], propDecorators: { bottom: [{ type: i0.Input, args: [{ isSignal: true, alias: "bottom", required: false }] }], sources: [{ type: i0.Input, args: [{ isSignal: true, alias: "sources", required: false }] }], intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }] } });
|
|
@@ -124,11 +127,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
124
127
|
* @deprecated use `LuToastsComponent` instead
|
|
125
128
|
*/
|
|
126
129
|
class LuToastsModule {
|
|
127
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
128
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
129
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
131
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.4", ngImport: i0, type: LuToastsModule, imports: [LuToastsComponent], exports: [LuToastsComponent] }); }
|
|
132
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsModule }); }
|
|
130
133
|
}
|
|
131
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuToastsModule, decorators: [{
|
|
132
135
|
type: NgModule,
|
|
133
136
|
args: [{
|
|
134
137
|
imports: [LuToastsComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-toast.mjs","sources":["../../../packages/ng/toast/toasts.model.ts","../../../packages/ng/toast/toasts.service.ts","../../../packages/ng/toast/translations.ts","../../../packages/ng/toast/toasts.translate.ts","../../../packages/ng/toast/toasts.component.ts","../../../packages/ng/toast/toasts.component.html","../../../packages/ng/toast/toasts.module.ts","../../../packages/ng/toast/public-api.ts","../../../packages/ng/toast/lucca-front-ng-toast.ts"],"sourcesContent":["import { PortalContent } from '@lucca-front/ng/core';\n\nexport type LuToastType = 'Info' | 'Error' | 'Success' | 'Warning';\n\nexport const defaultToastDuration = 5000;\n\nexport interface LuToastInput {\n\t/**\n\t * InnerHTML supported.\n\t */\n\tmessage: PortalContent;\n\t/**\n\t * Bold title.\n\t * InnerHTML not supported.\n\t */\n\ttitle?: string;\n\ttype?: LuToastType;\n\t/**\n\t * Auto kill default duration is 5000ms.\n\t * Null means manual dismiss only.\n\t */\n\tduration?: number | null;\n}\n\nexport interface LuToast extends LuToastInput {\n\tid: string;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultToastDuration, LuToast, LuToastInput } from './toasts.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuToastsService {\n\tpublic toasts$ = new BehaviorSubject<LuToast[]>([]);\n\n\tpublic addToast(toastInput: LuToastInput): LuToast {\n\t\tconst toast = this.getToast(toastInput);\n\n\t\tthis.toasts$.next([...this.toasts$.value, toast]);\n\n\t\treturn toast;\n\t}\n\n\tpublic removeToast(toast: LuToast): void {\n\t\tconst updatedToasts = this.toasts$.value.filter(({ id }) => id !== toast.id);\n\t\tthis.toasts$.next(updatedToasts);\n\t}\n\n\tpublic isOnlyDismissibleManually({ duration }: LuToastInput): boolean {\n\t\treturn duration === null;\n\t}\n\n\tprivate getToast(toastInput: LuToastInput): LuToast {\n\t\tconst id = this.generateId();\n\t\tconst duration = this.isOnlyDismissibleManually(toastInput) ? toastInput.duration : (toastInput.duration ?? defaultToastDuration);\n\n\t\treturn { ...toastInput, id, duration };\n\t}\n\n\tprivate generateId(): string {\n\t\tconst randomString = Math.random().toString(36).substring(2, 9);\n\t\treturn `_${randomString}`;\n\t}\n}\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tpl: {\n\t\tclose: 'Zamknij',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TOAST_TRANSLATIONS = new InjectionToken('LuToastTranslations', {\n\tfactory: () => luToastTranslations,\n});\n\nexport interface ILuToastLabel {\n\tclose: string;\n}\n\nexport const luToastTranslations: LuTranslation<ILuToastLabel> = Translations;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { intlInputOptions, isNotNil, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { merge, Observable } from 'rxjs';\nimport { LuToast, LuToastInput, LuToastType } from './toasts.model';\nimport { LuToastsService } from './toasts.service';\nimport { LU_TOAST_TRANSLATIONS } from './toasts.translate';\n\n@Component({\n\tselector: 'lu-toasts',\n\ttemplateUrl: './toasts.component.html',\n\tstyleUrl: './toasts.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [AsyncPipe, PortalDirective],\n})\nexport class LuToastsComponent {\n\treadonly #toastsService = inject(LuToastsService);\n\n\treadonly bottom = input(false);\n\treadonly sources = input<Array<Observable<LuToastInput>>>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.sources], (sources, onCleanup) => {\n\t\t\tif (isNotNil(sources)) {\n\t\t\t\tconst sub = merge(...sources).subscribe((toast) => this.#toastsService.addToast(toast));\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treadonly toasts$ = this.#toastsService.toasts$;\n\n\treadonly intl = input(...intlInputOptions(LU_TOAST_TRANSLATIONS));\n\n\treadonly iconClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: 'icon-signInfo',\n\t\tSuccess: 'icon-signSuccess',\n\t\tError: 'icon-signError',\n\t\tWarning: 'icon-signWarning',\n\t};\n\n\treadonly paletteClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: '',\n\t\tSuccess: 'palette-success',\n\t\tError: 'palette-error',\n\t\tWarning: 'palette-warning',\n\t};\n\n\tisStringPortalContent(message: PortalContent): message is string {\n\t\treturn typeof message === 'string';\n\t}\n\n\tremoveToast(toast: LuToast): void {\n\t\tthis.#toastsService.removeToast(toast);\n\t}\n\n\tisOnlyDismissibleManually(toast: LuToast): boolean {\n\t\treturn this.#toastsService.isOnlyDismissibleManually(toast);\n\t}\n}\n","<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\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</div>\n","import { NgModule } from '@angular/core';\nimport { LuToastsComponent } from './toasts.component';\n\n/**\n * @deprecated use `LuToastsComponent` instead\n */\n@NgModule({\n\timports: [LuToastsComponent],\n\texports: [LuToastsComponent],\n})\nexport class LuToastsModule {}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './toasts.component';\nexport * from './toasts.model';\nexport * from './toasts.module';\nexport * from './toasts.service';\nexport * from './toasts.translate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-toast.mjs","sources":["../../../packages/ng/toast/toasts.model.ts","../../../packages/ng/toast/toasts.service.ts","../../../packages/ng/toast/translations.ts","../../../packages/ng/toast/toasts.translate.ts","../../../packages/ng/toast/toasts.component.ts","../../../packages/ng/toast/toasts.component.html","../../../packages/ng/toast/toasts.module.ts","../../../packages/ng/toast/public-api.ts","../../../packages/ng/toast/lucca-front-ng-toast.ts"],"sourcesContent":["import { PortalContent } from '@lucca-front/ng/core';\n\nexport type LuToastType = 'Info' | 'Error' | 'Success' | 'Warning';\n\nexport const defaultToastDuration = 5000;\n\nexport interface LuToastInput {\n\t/**\n\t * InnerHTML supported.\n\t */\n\tmessage: PortalContent;\n\t/**\n\t * Bold title.\n\t * InnerHTML not supported.\n\t */\n\ttitle?: string;\n\ttype?: LuToastType;\n\t/**\n\t * Auto kill default duration is 5000ms.\n\t * Null means manual dismiss only.\n\t */\n\tduration?: number | null;\n}\n\nexport interface LuToast extends LuToastInput {\n\tid: string;\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { defaultToastDuration, LuToast, LuToastInput } from './toasts.model';\n\n@Injectable({ providedIn: 'root' })\nexport class LuToastsService {\n\tpublic toasts$ = new BehaviorSubject<LuToast[]>([]);\n\n\tpublic addToast(toastInput: LuToastInput): LuToast {\n\t\tconst toast = this.getToast(toastInput);\n\n\t\tthis.toasts$.next([...this.toasts$.value, toast]);\n\n\t\treturn toast;\n\t}\n\n\tpublic removeToast(toast: LuToast): void {\n\t\tconst updatedToasts = this.toasts$.value.filter(({ id }) => id !== toast.id);\n\t\tthis.toasts$.next(updatedToasts);\n\t}\n\n\tpublic isOnlyDismissibleManually({ duration }: LuToastInput): boolean {\n\t\treturn duration === null;\n\t}\n\n\tprivate getToast(toastInput: LuToastInput): LuToast {\n\t\tconst id = this.generateId();\n\t\tconst duration = this.isOnlyDismissibleManually(toastInput) ? toastInput.duration : (toastInput.duration ?? defaultToastDuration);\n\n\t\treturn { ...toastInput, id, duration };\n\t}\n\n\tprivate generateId(): string {\n\t\tconst randomString = Math.random().toString(36).substring(2, 9);\n\t\treturn `_${randomString}`;\n\t}\n}\n","export const Translations = {\n\tpt: {\n\t\tclose: 'Fechar',\n\t},\n\t'nl-BE': {\n\t\tclose: 'Sluiten',\n\t},\n\tnl: {\n\t\tclose: 'Sluiten',\n\t},\n\tit: {\n\t\tclose: 'Chiudere',\n\t},\n\tde: {\n\t\tclose: 'Schließen',\n\t},\n\tfr: {\n\t\tclose: 'Fermer',\n\t},\n\tes: {\n\t\tclose: 'Cerrar',\n\t},\n\ten: {\n\t\tclose: 'Close',\n\t},\n\tpl: {\n\t\tclose: 'Zamknij',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TOAST_TRANSLATIONS = new InjectionToken('LuToastTranslations', {\n\tfactory: () => luToastTranslations,\n});\n\nexport interface ILuToastLabel {\n\tclose: string;\n}\n\nexport const luToastTranslations: LuTranslation<ILuToastLabel> = Translations;\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { intlInputOptions, isNotNil, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\nimport { merge, Observable } from 'rxjs';\nimport { LuToast, LuToastInput, LuToastType } from './toasts.model';\nimport { LuToastsService } from './toasts.service';\nimport { LU_TOAST_TRANSLATIONS } from './toasts.translate';\n\n@Component({\n\tselector: 'lu-toasts',\n\ttemplateUrl: './toasts.component.html',\n\tstyleUrl: './toasts.component.scss',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [AsyncPipe, PortalDirective],\n})\nexport class LuToastsComponent {\n\treadonly #toastsService = inject(LuToastsService);\n\n\treadonly bottom = input(false);\n\treadonly sources = input<Array<Observable<LuToastInput>>>();\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.sources], (sources, onCleanup) => {\n\t\t\tif (isNotNil(sources)) {\n\t\t\t\tconst sub = merge(...sources).subscribe((toast) => this.#toastsService.addToast(toast));\n\n\t\t\t\tonCleanup(() => {\n\t\t\t\t\tsub.unsubscribe();\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\treadonly toasts$ = this.#toastsService.toasts$;\n\n\treadonly intl = input(...intlInputOptions(LU_TOAST_TRANSLATIONS));\n\n\treadonly iconClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: 'icon-signInfo',\n\t\tSuccess: 'icon-signSuccess',\n\t\tError: 'icon-signError',\n\t\tWarning: 'icon-signWarning',\n\t};\n\n\treadonly paletteClassByToastType: Record<LuToastType, string> = {\n\t\tInfo: '',\n\t\tSuccess: 'palette-success',\n\t\tError: 'palette-error',\n\t\tWarning: 'palette-warning',\n\t};\n\n\tisStringPortalContent(message: PortalContent): message is string {\n\t\treturn typeof message === 'string';\n\t}\n\n\tremoveToast(toast: LuToast): void {\n\t\tthis.#toastsService.removeToast(toast);\n\t}\n\n\tisOnlyDismissibleManually(toast: LuToast): boolean {\n\t\treturn this.#toastsService.isOnlyDismissibleManually(toast);\n\t}\n}\n","<div class=\"toasts\" aria-live=\"polite\" [class.mod-bottom]=\"bottom()\">\n\t@for (toast of toasts$ | async; track toast.id) {\n\t\t<div class=\"toasts-item\" [class]=\"paletteClassByToastType[toast.type]\">\n\t\t\t@if (toast.type) {\n\t\t\t\t<span class=\"toast-item-icon lucca-icon\" aria-hidden=\"true\" [class]=\"iconClassByToastType[toast.type]\"></span>\n\t\t\t}\n\t\t\t<div class=\"toast-item-content\">\n\t\t\t\t@if (toast.title) {\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<strong>{{ toast.title }}</strong>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (isStringPortalContent(toast.message)) {\n\t\t\t\t\t<p class=\"toast-item-content-description\" [innerHtml]=\"toast.message\"></p>\n\t\t\t\t} @else {\n\t\t\t\t\t<ng-container *luPortal=\"toast.message\" />\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"toasts-item-kill button\"\n\t\t\t\t(click)=\"removeToast(toast)\"\n\t\t\t\t(animationend)=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? removeToast(toast) : null\"\n\t\t\t\t[style.animation-duration]=\"!isOnlyDismissibleManually(toast) && toast.duration > 0 ? toast.duration + 'ms' : null\"\n\t\t\t>\n\t\t\t\t<span class=\"lucca-icon icon-signClose\" aria-hidden=\"true\"></span>\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</div>\n","import { NgModule } from '@angular/core';\nimport { LuToastsComponent } from './toasts.component';\n\n/**\n * @deprecated use `LuToastsComponent` instead\n */\n@NgModule({\n\timports: [LuToastsComponent],\n\texports: [LuToastsComponent],\n})\nexport class LuToastsModule {}\n","/*\n * Public API Surface of toast\n */\n\nexport * from './toasts.component';\nexport * from './toasts.model';\nexport * from './toasts.module';\nexport * from './toasts.service';\nexport * from './toasts.translate';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
|
|
@@ -29,8 +29,10 @@ class LuTooltipPanelComponent {
|
|
|
29
29
|
this.destroyRef = inject(DestroyRef);
|
|
30
30
|
this.mouseEnter$ = new Subject();
|
|
31
31
|
this.mouseLeave$ = new Subject();
|
|
32
|
-
this.content = signal(null,
|
|
33
|
-
|
|
32
|
+
this.content = signal(null, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
|
|
34
|
+
this.contentPositionClasses = signal({}, /* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [{ debugName: "contentPositionClasses" }] : /* istanbul ignore next */ []));
|
|
34
36
|
}
|
|
35
37
|
setPanelPosition(posX, posY) {
|
|
36
38
|
this.contentPositionClasses.set({
|
|
@@ -40,10 +42,10 @@ class LuTooltipPanelComponent {
|
|
|
40
42
|
'is-below': posY === 'top',
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: LuTooltipPanelComponent, isStandalone: true, selector: "lu-tooltip-panel", host: { attributes: { "role": "tooltip" }, listeners: { "mouseenter": "mouseEnter$.next()", "mouseleave": "mouseLeave$.next()" } }, ngImport: i0, template: "@if (content(); as content) {\n\t<div class=\"tooltip\" [class]=\"contentPositionClasses()\" [innerHtml]=\"content\"></div>\n}\n", styles: ["@layer components{.tooltip{--components-tooltip-background-color: var(--palettes-neutral-900);--components-tooltip-color: var(--pr-t-color-text-reverse);--components-tooltip-max-width: 15rem;--components-tooltip-transformOrigin: center;--components-tooltip-margin: 0;background-color:var(--components-tooltip-background-color);color:var(--components-tooltip-color);padding-block:var(--pr-t-spacings-50);padding-inline:var(--pr-t-spacings-100);max-inline-size:var(--components-tooltip-max-width);border-radius:var(--pr-t-border-radius-default);font:var(--pr-t-font-body-XS);transform-origin:var(--components-tooltip-transformOrigin);margin:var(--components-tooltip-margin);text-align:center;inline-size:fit-content;animation-name:scaleIn;animation-duration:var(--commons-animations-durations-fast);animation-iteration-count:1;overflow-wrap:break-word}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.tooltip:empty{display:none}@supports (background-image: -webkit-named-image(i)){@media(hover:hover){[luTooltipWhenEllipsis]:after{content:\"\";display:block}}}}@layer mods{.tooltip.is-above{--components-tooltip-transformOrigin: bottom center}.tooltip.is-below{--components-tooltip-transformOrigin: top center}.tooltip.is-before{--components-tooltip-transformOrigin: center right}.tooltip.is-before.is-above{--components-tooltip-transformOrigin: bottom right}.tooltip.is-before.is-below{--components-tooltip-transformOrigin: top right}.tooltip.is-after{--components-tooltip-transformOrigin: center left}.tooltip.is-after.is-above{--components-tooltip-transformOrigin: bottom left}.tooltip.is-after.is-below{--components-tooltip-transformOrigin: top left}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
47
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipPanelComponent, decorators: [{
|
|
47
49
|
type: Component,
|
|
48
50
|
args: [{ selector: 'lu-tooltip-panel', host: {
|
|
49
51
|
role: 'tooltip',
|
|
@@ -85,10 +87,10 @@ class TooltipVisibilityObserver {
|
|
|
85
87
|
}
|
|
86
88
|
}, { rootMargin: '100px' }));
|
|
87
89
|
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
89
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: TooltipVisibilityObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
91
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: TooltipVisibilityObserver, providedIn: 'root' }); }
|
|
90
92
|
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: TooltipVisibilityObserver, decorators: [{
|
|
92
94
|
type: Injectable,
|
|
93
95
|
args: [{ providedIn: 'root' }]
|
|
94
96
|
}] });
|
|
@@ -126,33 +128,42 @@ class LuTooltipTriggerDirective {
|
|
|
126
128
|
this.#destroyRef = inject(DestroyRef);
|
|
127
129
|
this.#visibilityObserver = inject(TooltipVisibilityObserver);
|
|
128
130
|
this.luTooltipInput = input('', { ...(ngDevMode ? { debugName: "luTooltipInput" } : /* istanbul ignore next */ {}), alias: 'luTooltip' });
|
|
129
|
-
this.luTooltip = linkedSignal(() => this.luTooltipInput(),
|
|
131
|
+
this.luTooltip = linkedSignal(() => this.luTooltipInput(), /* @ts-ignore */
|
|
132
|
+
...(ngDevMode ? [{ debugName: "luTooltip" }] : /* istanbul ignore next */ []));
|
|
130
133
|
this.luTooltipEnterDelay = input(300, { ...(ngDevMode ? { debugName: "luTooltipEnterDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
131
134
|
this.luTooltipLeaveDelay = input(100, { ...(ngDevMode ? { debugName: "luTooltipLeaveDelay" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
132
135
|
this.luTooltipDisabled = input(false, { ...(ngDevMode ? { debugName: "luTooltipDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
133
136
|
this.luTooltipOnlyForDisplay = input(false, { ...(ngDevMode ? { debugName: "luTooltipOnlyForDisplay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
134
|
-
this.luTooltipPosition = input('above',
|
|
137
|
+
this.luTooltipPosition = input('above', /* @ts-ignore */
|
|
138
|
+
...(ngDevMode ? [{ debugName: "luTooltipPosition" }] : /* istanbul ignore next */ []));
|
|
135
139
|
this.luTooltipWhenEllipsisInput = input(false, { ...(ngDevMode ? { debugName: "luTooltipWhenEllipsisInput" } : /* istanbul ignore next */ {}), alias: 'luTooltipWhenEllipsis', transform: booleanAttribute });
|
|
136
|
-
this.luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput(),
|
|
137
|
-
|
|
138
|
-
this.
|
|
140
|
+
this.luTooltipWhenEllipsis = linkedSignal(() => this.luTooltipWhenEllipsisInput(), /* @ts-ignore */
|
|
141
|
+
...(ngDevMode ? [{ debugName: "luTooltipWhenEllipsis" }] : /* istanbul ignore next */ []));
|
|
142
|
+
this.luTooltipAnchor = input(this.#host, /* @ts-ignore */
|
|
143
|
+
...(ngDevMode ? [{ debugName: "luTooltipAnchor" }] : /* istanbul ignore next */ []));
|
|
144
|
+
this.id = input(`${this.#host.nativeElement.tagName.toLowerCase()}-tooltip-${nextId++}`, /* @ts-ignore */
|
|
145
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
139
146
|
this.ariaDescribedBy = computed(() => {
|
|
140
147
|
if (this.luTooltipDisabled() || this.luTooltipWhenEllipsis() || this.luTooltipOnlyForDisplay()) {
|
|
141
148
|
return null;
|
|
142
149
|
}
|
|
143
150
|
return `${this.id()}-panel`;
|
|
144
|
-
},
|
|
151
|
+
}, /* @ts-ignore */
|
|
152
|
+
...(ngDevMode ? [{ debugName: "ariaDescribedBy" }] : /* istanbul ignore next */ []));
|
|
145
153
|
// 0 until the element first appears; bumped for the initial measurement and on every real
|
|
146
154
|
// size/content change. Scrolling in and out of view does NOT bump it (see #armMeasurementObservers).
|
|
147
|
-
this.#measureTrigger = signal(0,
|
|
155
|
+
this.#measureTrigger = signal(0, /* @ts-ignore */
|
|
156
|
+
...(ngDevMode ? [{ debugName: "#measureTrigger" }] : /* istanbul ignore next */ []));
|
|
148
157
|
// guards the one-time setup of the persistent resize/mutation observers
|
|
149
158
|
this.#measurementObserversArmed = false;
|
|
150
159
|
// the IntersectionObserver callback can fire after the view is destroyed; avoid touching
|
|
151
160
|
// the destroyed injector (NG0911) when that happens
|
|
152
161
|
this.#destroyed = false;
|
|
153
162
|
// written only from the `read` phase of the afterRenderEffect below
|
|
154
|
-
this.#hasEllipsis = signal(false,
|
|
155
|
-
|
|
163
|
+
this.#hasEllipsis = signal(false, /* @ts-ignore */
|
|
164
|
+
...(ngDevMode ? [{ debugName: "#hasEllipsis" }] : /* istanbul ignore next */ []));
|
|
165
|
+
this.#action = signal(null, /* @ts-ignore */
|
|
166
|
+
...(ngDevMode ? [{ debugName: "#action" }] : /* istanbul ignore next */ []));
|
|
156
167
|
this.#realAction = linkedSignal({ ...(ngDevMode ? { debugName: "#realAction" } : /* istanbul ignore next */ {}), source: this.#action,
|
|
157
168
|
computation: (action, previous) => {
|
|
158
169
|
if (!action || action === 'close') {
|
|
@@ -490,10 +501,10 @@ class LuTooltipTriggerDirective {
|
|
|
490
501
|
}
|
|
491
502
|
return x;
|
|
492
503
|
}
|
|
493
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
494
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
504
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
505
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.4", type: LuTooltipTriggerDirective, isStandalone: true, selector: "[luTooltip]", inputs: { luTooltipInput: { classPropertyName: "luTooltipInput", publicName: "luTooltip", isSignal: true, isRequired: false, transformFunction: null }, luTooltipEnterDelay: { classPropertyName: "luTooltipEnterDelay", publicName: "luTooltipEnterDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipLeaveDelay: { classPropertyName: "luTooltipLeaveDelay", publicName: "luTooltipLeaveDelay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipDisabled: { classPropertyName: "luTooltipDisabled", publicName: "luTooltipDisabled", isSignal: true, isRequired: false, transformFunction: null }, luTooltipOnlyForDisplay: { classPropertyName: "luTooltipOnlyForDisplay", publicName: "luTooltipOnlyForDisplay", isSignal: true, isRequired: false, transformFunction: null }, luTooltipPosition: { classPropertyName: "luTooltipPosition", publicName: "luTooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, luTooltipWhenEllipsisInput: { classPropertyName: "luTooltipWhenEllipsisInput", publicName: "luTooltipWhenEllipsis", isSignal: true, isRequired: false, transformFunction: null }, luTooltipAnchor: { classPropertyName: "luTooltipAnchor", publicName: "luTooltipAnchor", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focus": "onFocus()", "blur": "onBlur()", "keydown.escape": "onEscape($event)" }, properties: { "attr.aria-describedby": "ariaDescribedBy()", "attr.id": "id()" } }, exportAs: ["luTooltip"], ngImport: i0 }); }
|
|
495
506
|
}
|
|
496
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerDirective, decorators: [{
|
|
497
508
|
type: Directive,
|
|
498
509
|
args: [{
|
|
499
510
|
selector: '[luTooltip]',
|
|
@@ -514,11 +525,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
514
525
|
* @deprecated use `LuTooltipTriggerDirective` instead
|
|
515
526
|
*/
|
|
516
527
|
class LuTooltipTriggerModule {
|
|
517
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
518
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
519
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
528
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
529
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerModule, imports: [LuTooltipTriggerDirective, OverlayModule], exports: [LuTooltipTriggerDirective] }); }
|
|
530
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerModule, imports: [OverlayModule] }); }
|
|
520
531
|
}
|
|
521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipTriggerModule, decorators: [{
|
|
522
533
|
type: NgModule,
|
|
523
534
|
args: [{
|
|
524
535
|
imports: [LuTooltipTriggerDirective, OverlayModule],
|
|
@@ -530,11 +541,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
530
541
|
* @deprecated use `LuTooltipTriggerDirective, LuTooltipPanelComponent` instead
|
|
531
542
|
*/
|
|
532
543
|
class LuTooltipModule {
|
|
533
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
534
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
535
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
544
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
545
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipPanelComponent], exports: [LuTooltipTriggerModule, LuTooltipPanelComponent] }); }
|
|
546
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipModule, imports: [LuTooltipTriggerModule, LuTooltipTriggerModule] }); }
|
|
536
547
|
}
|
|
537
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: LuTooltipModule, decorators: [{
|
|
538
549
|
type: NgModule,
|
|
539
550
|
args: [{
|
|
540
551
|
imports: [LuTooltipTriggerModule, LuTooltipPanelComponent],
|