@educarehq/solaris-ui 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.js +40 -1
- package/esm2022/index.js.map +1 -1
- package/esm2022/lib/components/actions/button/index.js +3 -0
- package/esm2022/lib/components/actions/button/index.js.map +1 -0
- package/esm2022/lib/components/data-display/badge/index.js +3 -0
- package/esm2022/lib/components/data-display/badge/index.js.map +1 -0
- package/esm2022/lib/components/data-display/divider/component/divider.component.js +46 -0
- package/esm2022/lib/components/data-display/divider/component/divider.component.js.map +1 -0
- package/esm2022/lib/components/data-display/divider/index.js +2 -0
- package/esm2022/lib/components/data-display/divider/index.js.map +1 -0
- package/esm2022/lib/components/data-display/divider/model/divider.types.js +1 -0
- package/esm2022/lib/components/data-display/divider/model/divider.types.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/component/toast.component.js +268 -0
- package/esm2022/lib/components/feedback/toast/component/toast.component.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/container/toast-container.component.js +24 -0
- package/esm2022/lib/components/feedback/toast/container/toast-container.component.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/model/toast.types.js +1 -0
- package/esm2022/lib/components/feedback/toast/model/toast.types.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/provider/provide-solaris-toast.js +17 -0
- package/esm2022/lib/components/feedback/toast/provider/provide-solaris-toast.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/service/toast.service.js +219 -0
- package/esm2022/lib/components/feedback/toast/service/toast.service.js.map +1 -0
- package/esm2022/lib/components/feedback/toast/token/toast.tokens.js +13 -0
- package/esm2022/lib/components/feedback/toast/token/toast.tokens.js.map +1 -0
- package/esm2022/lib/components/forms/email-field/component/email-field.component.js +5 -4
- package/esm2022/lib/components/forms/email-field/component/email-field.component.js.map +1 -1
- package/esm2022/lib/components/forms/form-field/component/form-field.component.js +50 -2
- package/esm2022/lib/components/forms/form-field/component/form-field.component.js.map +1 -1
- package/esm2022/lib/components/forms/form-field/directives/form-field-trigger.directive.js.map +1 -1
- package/esm2022/lib/components/forms/form-field/index.js.map +1 -1
- package/esm2022/lib/components/forms/multi-select/component/multi-select.component.js +11 -28
- package/esm2022/lib/components/forms/multi-select/component/multi-select.component.js.map +1 -1
- package/esm2022/lib/components/forms/multi-select/model/multi-select.types.js.map +1 -1
- package/esm2022/lib/components/forms/option/component/option.component.js +2 -2
- package/esm2022/lib/components/forms/option/component/option.component.js.map +1 -1
- package/esm2022/lib/components/forms/password-field/component/password-field.component.js +2 -2
- package/esm2022/lib/components/forms/password-field/component/password-field.component.js.map +1 -1
- package/esm2022/lib/components/forms/radio/component/radio.component.js +2 -2
- package/esm2022/lib/components/forms/select/component/select.component.js +4 -8
- package/esm2022/lib/components/forms/select/component/select.component.js.map +1 -1
- package/esm2022/lib/components/icon/component/solaris-icon.component.js +2 -2
- package/esm2022/lib/components/icon/component/solaris-icon.component.js.map +1 -1
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.js +27 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.js +96 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.js +22 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.js +105 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.js +95 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.js +631 -0
- package/esm2022/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.js +365 -0
- package/esm2022/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/index.js +8 -0
- package/esm2022/lib/components/interaction/dropdown-menu/index.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.js +3 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.js +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.js.map +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.js +1 -0
- package/esm2022/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.js.map +1 -0
- package/esm2022/lib/components/interaction/popover/component/popover-panel.component.js +2 -2
- package/esm2022/lib/components/interaction/popover/component/popover-panel.component.js.map +1 -1
- package/esm2022/lib/components/interaction/popover/directives/popover-trigger.directive.js +28 -20
- package/esm2022/lib/components/interaction/popover/directives/popover-trigger.directive.js.map +1 -1
- package/esm2022/lib/components/interaction/tooltip/component/tooltip-panel.component.js.map +1 -1
- package/esm2022/lib/components/interaction/tooltip/directive/tooltip.directive.js.map +1 -1
- package/esm2022/lib/components/interaction/tooltip/model/tooltip-position.js.map +1 -1
- package/esm2022/lib/components/navigation/editable-tabs/component/editable-tabs.component.js +323 -0
- package/esm2022/lib/components/navigation/editable-tabs/component/editable-tabs.component.js.map +1 -0
- package/esm2022/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.js +34 -0
- package/esm2022/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.js.map +1 -0
- package/esm2022/lib/components/navigation/editable-tabs/model/editable-tabs.types.js +1 -0
- package/esm2022/lib/components/navigation/editable-tabs/model/editable-tabs.types.js.map +1 -0
- package/esm2022/lib/components/navigation/segmented-control/component/segmented-control.component.js +242 -0
- package/esm2022/lib/components/navigation/segmented-control/component/segmented-control.component.js.map +1 -0
- package/esm2022/lib/components/navigation/segmented-control/item/segmented-item.component.js +197 -0
- package/esm2022/lib/components/navigation/segmented-control/item/segmented-item.component.js.map +1 -0
- package/esm2022/lib/components/navigation/segmented-control/model/segmented-control.types.js +1 -0
- package/esm2022/lib/components/navigation/segmented-control/model/segmented-control.types.js.map +1 -0
- package/esm2022/lib/components/navigation/segmented-control/token/segmented-control.tokens.js +3 -0
- package/esm2022/lib/components/navigation/segmented-control/token/segmented-control.tokens.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/actions/stepper-actions.component.js +15 -0
- package/esm2022/lib/components/navigation/stepper/actions/stepper-actions.component.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/component/stepper.component.js +99 -0
- package/esm2022/lib/components/navigation/stepper/component/stepper.component.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/content/stepper-content.component.js +13 -0
- package/esm2022/lib/components/navigation/stepper/content/stepper-content.component.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/model/stepper.types.js +1 -0
- package/esm2022/lib/components/navigation/stepper/model/stepper.types.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/step/step.component.js +91 -0
- package/esm2022/lib/components/navigation/stepper/step/step.component.js.map +1 -0
- package/esm2022/lib/components/navigation/stepper/token/stepper.tokens.js +3 -0
- package/esm2022/lib/components/navigation/stepper/token/stepper.tokens.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/component/tabs.component.js +169 -0
- package/esm2022/lib/components/navigation/tabs/component/tabs.component.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/index.js +5 -0
- package/esm2022/lib/components/navigation/tabs/index.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/model/tabs.types.js +1 -0
- package/esm2022/lib/components/navigation/tabs/model/tabs.types.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/tab/tab.component.js +195 -0
- package/esm2022/lib/components/navigation/tabs/tab/tab.component.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/tab-panel/tab-panel.component.js +55 -0
- package/esm2022/lib/components/navigation/tabs/tab-panel/tab-panel.component.js.map +1 -0
- package/esm2022/lib/components/navigation/tabs/token/tabs.tokens.js +3 -0
- package/esm2022/lib/components/navigation/tabs/token/tabs.tokens.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/component/dialog.component.js +49 -0
- package/esm2022/lib/components/overlay/dialog/component/dialog.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-actions.component.js +37 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-actions.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-content.component.js +13 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-content.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-header.component.js +32 -0
- package/esm2022/lib/components/overlay/dialog/components/dialog-header.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/container/dialog-container.component.js +142 -0
- package/esm2022/lib/components/overlay/dialog/container/dialog-container.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/flow/dialog-flow.component.js +56 -0
- package/esm2022/lib/components/overlay/dialog/flow/dialog-flow.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/flow/dialog-step.component.js +20 -0
- package/esm2022/lib/components/overlay/dialog/flow/dialog-step.component.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/model/dialog.types.js +1 -0
- package/esm2022/lib/components/overlay/dialog/model/dialog.types.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/provider/provide-solaris-dialog.js +13 -0
- package/esm2022/lib/components/overlay/dialog/provider/provide-solaris-dialog.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/service/dialog-ref.js +23 -0
- package/esm2022/lib/components/overlay/dialog/service/dialog-ref.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/service/dialog.service.js +111 -0
- package/esm2022/lib/components/overlay/dialog/service/dialog.service.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/token/dialog-data.token.js +4 -0
- package/esm2022/lib/components/overlay/dialog/token/dialog-data.token.js.map +1 -0
- package/esm2022/lib/components/overlay/dialog/token/dialog.tokens.js +15 -0
- package/esm2022/lib/components/overlay/dialog/token/dialog.tokens.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/actions.js +242 -0
- package/esm2022/lib/services/icon/icons/groups/actions.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/data.js +129 -0
- package/esm2022/lib/services/icon/icons/groups/data.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/layout.js +50 -0
- package/esm2022/lib/services/icon/icons/groups/layout.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/navigation.js +354 -0
- package/esm2022/lib/services/icon/icons/groups/navigation.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/status.js +70 -0
- package/esm2022/lib/services/icon/icons/groups/status.js.map +1 -0
- package/esm2022/lib/services/icon/icons/groups/theme.js +49 -0
- package/esm2022/lib/services/icon/icons/groups/theme.js.map +1 -0
- package/esm2022/lib/services/icon/icons/solaris-built-in-icons.js +12 -204
- package/esm2022/lib/services/icon/icons/solaris-built-in-icons.js.map +1 -1
- package/esm2022/lib/services/icon/model/solaris-icon-definition.interface.js.map +1 -1
- package/esm2022/lib/services/icon/model/solaris-icon.types.js.map +1 -1
- package/esm2022/lib/services/translation/model/solaris-translate-defaults.js +56 -0
- package/esm2022/lib/services/translation/model/solaris-translate-defaults.js.map +1 -1
- package/index.d.ts +92 -1
- package/lib/components/actions/button/index.d.ts +3 -0
- package/lib/components/data-display/badge/index.d.ts +3 -0
- package/lib/components/data-display/divider/component/divider.component.d.ts +17 -0
- package/lib/components/data-display/divider/index.d.ts +2 -0
- package/lib/components/data-display/divider/model/divider.types.d.ts +5 -0
- package/lib/components/feedback/toast/component/toast.component.d.ts +62 -0
- package/lib/components/feedback/toast/container/toast-container.component.d.ts +10 -0
- package/lib/components/feedback/toast/model/toast.types.d.ts +106 -0
- package/lib/components/feedback/toast/provider/provide-solaris-toast.d.ts +3 -0
- package/lib/components/feedback/toast/service/toast.service.d.ts +36 -0
- package/lib/components/feedback/toast/token/toast.tokens.d.ts +5 -0
- package/lib/components/forms/email-field/component/email-field.component.d.ts +2 -1
- package/lib/components/forms/form-field/component/form-field.component.d.ts +6 -0
- package/lib/components/forms/multi-select/component/multi-select.component.d.ts +4 -7
- package/lib/components/forms/select/component/select.component.d.ts +2 -2
- package/lib/components/interaction/dropdown-menu/component/dropdown-menu-group.component.d.ts +10 -0
- package/lib/components/interaction/dropdown-menu/component/dropdown-menu-item.component.d.ts +28 -0
- package/lib/components/interaction/dropdown-menu/component/dropdown-menu-label.component.d.ts +7 -0
- package/lib/components/interaction/dropdown-menu/component/dropdown-menu.component.d.ts +21 -0
- package/lib/components/interaction/dropdown-menu/component/dropdown-submenu-trigger.component.d.ts +21 -0
- package/lib/components/interaction/dropdown-menu/component/dropdown-submenu.component.d.ts +68 -0
- package/lib/components/interaction/dropdown-menu/directives/dropdown-menu-trigger.directive.d.ts +61 -0
- package/lib/components/interaction/dropdown-menu/index.d.ts +9 -0
- package/lib/components/interaction/dropdown-menu/model/dropdown-menu-navigation.d.ts +8 -0
- package/lib/components/interaction/dropdown-menu/model/dropdown-menu.types.d.ts +11 -0
- package/lib/components/interaction/dropdown-menu/model/dropdown-submenu.types.d.ts +2 -0
- package/lib/components/navigation/editable-tabs/component/editable-tabs.component.d.ts +69 -0
- package/lib/components/navigation/editable-tabs/editable-tab/editable-tab.component.d.ts +20 -0
- package/lib/components/navigation/editable-tabs/model/editable-tabs.types.d.ts +60 -0
- package/lib/components/navigation/segmented-control/component/segmented-control.component.d.ts +64 -0
- package/lib/components/navigation/segmented-control/item/segmented-item.component.d.ts +35 -0
- package/lib/components/navigation/segmented-control/model/segmented-control.types.d.ts +12 -0
- package/lib/components/navigation/segmented-control/token/segmented-control.tokens.d.ts +22 -0
- package/lib/components/navigation/stepper/actions/stepper-actions.component.d.ts +7 -0
- package/lib/components/navigation/stepper/component/stepper.component.d.ts +36 -0
- package/lib/components/navigation/stepper/content/stepper-content.component.d.ts +5 -0
- package/lib/components/navigation/stepper/model/stepper.types.d.ts +15 -0
- package/lib/components/navigation/stepper/step/step.component.d.ts +27 -0
- package/lib/components/navigation/stepper/token/stepper.tokens.d.ts +13 -0
- package/lib/components/navigation/tabs/component/tabs.component.d.ts +47 -0
- package/lib/components/navigation/tabs/index.d.ts +6 -0
- package/lib/components/navigation/tabs/model/tabs.types.d.ts +17 -0
- package/lib/components/navigation/tabs/tab/tab.component.d.ts +38 -0
- package/lib/components/navigation/tabs/tab-panel/tab-panel.component.d.ts +15 -0
- package/lib/components/navigation/tabs/token/tabs.tokens.d.ts +19 -0
- package/lib/components/overlay/dialog/component/dialog.component.d.ts +29 -0
- package/lib/components/overlay/dialog/components/dialog-actions.component.d.ts +12 -0
- package/lib/components/overlay/dialog/components/dialog-content.component.d.ts +5 -0
- package/lib/components/overlay/dialog/components/dialog-header.component.d.ts +19 -0
- package/lib/components/overlay/dialog/container/dialog-container.component.d.ts +32 -0
- package/lib/components/overlay/dialog/flow/dialog-flow.component.d.ts +19 -0
- package/lib/components/overlay/dialog/flow/dialog-step.component.d.ts +7 -0
- package/lib/components/overlay/dialog/model/dialog.types.d.ts +87 -0
- package/lib/components/overlay/dialog/provider/provide-solaris-dialog.d.ts +3 -0
- package/lib/components/overlay/dialog/service/dialog-ref.d.ts +11 -0
- package/lib/components/overlay/dialog/service/dialog.service.d.ts +20 -0
- package/lib/components/overlay/dialog/token/dialog-data.token.d.ts +4 -0
- package/lib/components/overlay/dialog/token/dialog.tokens.d.ts +4 -0
- package/lib/services/icon/icons/groups/actions.d.ts +2 -0
- package/lib/services/icon/icons/groups/data.d.ts +2 -0
- package/lib/services/icon/icons/groups/layout.d.ts +2 -0
- package/lib/services/icon/icons/groups/navigation.d.ts +2 -0
- package/lib/services/icon/icons/groups/status.d.ts +2 -0
- package/lib/services/icon/icons/groups/theme.d.ts +2 -0
- package/lib/services/icon/model/solaris-icon-definition.interface.d.ts +10 -1
- package/lib/services/icon/model/solaris-icon.types.d.ts +1 -1
- package/package.json +1 -1
- package/styles/_dropdown-menu.scss +72 -0
- package/styles/_popover.scss +24 -19
- package/styles/_toast.scss +9 -0
- package/styles/_tooltip.scss +3 -3
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { Component, input, output, inject, computed, effect, signal, ChangeDetectionStrategy, DestroyRef, HostListener, } from '@angular/core';
|
|
2
|
+
import { SolarisTranslateService } from '../../../../services/translation';
|
|
3
|
+
import { SolarisButtonDirective } from '../../../actions/button';
|
|
4
|
+
import { SolarisToastService } from '../service/toast.service';
|
|
5
|
+
import { SolarisIconComponent } from '../../../icon';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SolarisToastComponent {
|
|
8
|
+
translateService = inject(SolarisTranslateService, {
|
|
9
|
+
optional: true,
|
|
10
|
+
});
|
|
11
|
+
toastService = inject(SolarisToastService);
|
|
12
|
+
destroyRef = inject(DestroyRef);
|
|
13
|
+
entry = input.required(...(ngDevMode ? [{ debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
14
|
+
dismiss = output();
|
|
15
|
+
hostDataVariant = computed(() => this.entry().resolvedVariant, ...(ngDevMode ? [{ debugName: "hostDataVariant" }] : /* istanbul ignore next */ []));
|
|
16
|
+
hostDataAppearance = computed(() => this.entry().resolvedAppearance, ...(ngDevMode ? [{ debugName: "hostDataAppearance" }] : /* istanbul ignore next */ []));
|
|
17
|
+
hostRole = computed(() => this.entry().resolvedRole, ...(ngDevMode ? [{ debugName: "hostRole" }] : /* istanbul ignore next */ []));
|
|
18
|
+
hostAriaLive = computed(() => {
|
|
19
|
+
const live = this.entry().resolvedAriaLive;
|
|
20
|
+
return live === 'off' ? null : live;
|
|
21
|
+
}, ...(ngDevMode ? [{ debugName: "hostAriaLive" }] : /* istanbul ignore next */ []));
|
|
22
|
+
hostDataIconSize = computed(() => this.entry().resolvedIconSize, ...(ngDevMode ? [{ debugName: "hostDataIconSize" }] : /* istanbul ignore next */ []));
|
|
23
|
+
hostDataMediaShape = computed(() => this.entry().resolvedMediaShape, ...(ngDevMode ? [{ debugName: "hostDataMediaShape" }] : /* istanbul ignore next */ []));
|
|
24
|
+
hostDataActionsAlign = computed(() => this.entry().resolvedActionsAlign, ...(ngDevMode ? [{ debugName: "hostDataActionsAlign" }] : /* istanbul ignore next */ []));
|
|
25
|
+
expanded = signal(false, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
26
|
+
isExpandable = computed(() => {
|
|
27
|
+
const e = this.entry();
|
|
28
|
+
return e.resolvedExpandable && !!e.resolvedDescription;
|
|
29
|
+
}, ...(ngDevMode ? [{ debugName: "isExpandable" }] : /* istanbul ignore next */ []));
|
|
30
|
+
toggleExpanded() {
|
|
31
|
+
this.expanded.update((v) => !v);
|
|
32
|
+
}
|
|
33
|
+
expandButtonLabel = computed(() => {
|
|
34
|
+
const e = this.entry();
|
|
35
|
+
if (this.expanded()) {
|
|
36
|
+
return (e.resolvedCollapseLabel || this.translate('solaris.toast.collapse'));
|
|
37
|
+
}
|
|
38
|
+
return e.resolvedExpandLabel || this.translate('solaris.toast.expand');
|
|
39
|
+
}, ...(ngDevMode ? [{ debugName: "expandButtonLabel" }] : /* istanbul ignore next */ []));
|
|
40
|
+
isTruncated = computed(() => this.isExpandable() && !this.expanded(), ...(ngDevMode ? [{ debugName: "isTruncated" }] : /* istanbul ignore next */ []));
|
|
41
|
+
countdownPercent = signal(100, ...(ngDevMode ? [{ debugName: "countdownPercent" }] : /* istanbul ignore next */ []));
|
|
42
|
+
remainingSeconds = signal(0, ...(ngDevMode ? [{ debugName: "remainingSeconds" }] : /* istanbul ignore next */ []));
|
|
43
|
+
countdownTotalMs = 0;
|
|
44
|
+
countdownStartedAt = 0;
|
|
45
|
+
countdownRemainingMs = 0;
|
|
46
|
+
countdownStarted = false;
|
|
47
|
+
countdownIntervalId = null;
|
|
48
|
+
isPaused = signal(false, ...(ngDevMode ? [{ debugName: "isPaused" }] : /* istanbul ignore next */ []));
|
|
49
|
+
isUserPaused = signal(false, ...(ngDevMode ? [{ debugName: "isUserPaused" }] : /* istanbul ignore next */ []));
|
|
50
|
+
showProgressBar = computed(() => {
|
|
51
|
+
const e = this.entry();
|
|
52
|
+
if (e.resolvedProgress !== undefined && e.resolvedProgress !== null) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
const showCountdown = this.shouldShowCountdown();
|
|
56
|
+
return (showCountdown &&
|
|
57
|
+
!e.resolvedPersistent &&
|
|
58
|
+
e.resolvedDuration > 0 &&
|
|
59
|
+
e.resolvedDuration < Infinity &&
|
|
60
|
+
(e.resolvedCountdownMode === 'bar' || e.resolvedCountdownMode === 'both'));
|
|
61
|
+
}, ...(ngDevMode ? [{ debugName: "showProgressBar" }] : /* istanbul ignore next */ []));
|
|
62
|
+
showCountdownText = computed(() => {
|
|
63
|
+
const e = this.entry();
|
|
64
|
+
const showCountdown = this.shouldShowCountdown();
|
|
65
|
+
return (showCountdown &&
|
|
66
|
+
!e.resolvedPersistent &&
|
|
67
|
+
e.resolvedDuration > 0 &&
|
|
68
|
+
e.resolvedDuration < Infinity &&
|
|
69
|
+
(e.resolvedCountdownMode === 'text' || e.resolvedCountdownMode === 'both'));
|
|
70
|
+
}, ...(ngDevMode ? [{ debugName: "showCountdownText" }] : /* istanbul ignore next */ []));
|
|
71
|
+
shouldShowCountdown() {
|
|
72
|
+
const e = this.entry();
|
|
73
|
+
return e.resolvedShowCountdown || e.resolvedShowProgress;
|
|
74
|
+
}
|
|
75
|
+
progressValue = computed(() => {
|
|
76
|
+
const e = this.entry();
|
|
77
|
+
if (e.resolvedProgress !== undefined && e.resolvedProgress !== null) {
|
|
78
|
+
return e.resolvedProgress;
|
|
79
|
+
}
|
|
80
|
+
return this.countdownPercent();
|
|
81
|
+
}, ...(ngDevMode ? [{ debugName: "progressValue" }] : /* istanbul ignore next */ []));
|
|
82
|
+
isProcessProgress = computed(() => {
|
|
83
|
+
const e = this.entry();
|
|
84
|
+
return e.resolvedProgress !== undefined && e.resolvedProgress !== null;
|
|
85
|
+
}, ...(ngDevMode ? [{ debugName: "isProcessProgress" }] : /* istanbul ignore next */ []));
|
|
86
|
+
countdownText = computed(() => {
|
|
87
|
+
const secs = this.remainingSeconds();
|
|
88
|
+
if (secs <= 0)
|
|
89
|
+
return '';
|
|
90
|
+
return this.translate('solaris.toast.closesIn', { seconds: String(secs) });
|
|
91
|
+
}, ...(ngDevMode ? [{ debugName: "countdownText" }] : /* istanbul ignore next */ []));
|
|
92
|
+
showTitle = computed(() => !!this.entry().resolvedTitle, ...(ngDevMode ? [{ debugName: "showTitle" }] : /* istanbul ignore next */ []));
|
|
93
|
+
showDescription = computed(() => !!this.entry().resolvedDescription, ...(ngDevMode ? [{ debugName: "showDescription" }] : /* istanbul ignore next */ []));
|
|
94
|
+
showIcon = computed(() => {
|
|
95
|
+
const e = this.entry();
|
|
96
|
+
return e.resolvedIcon !== undefined && e.resolvedIcon !== null;
|
|
97
|
+
}, ...(ngDevMode ? [{ debugName: "showIcon" }] : /* istanbul ignore next */ []));
|
|
98
|
+
showActions = computed(() => {
|
|
99
|
+
const actions = this.entry().resolvedActions;
|
|
100
|
+
return actions && actions.length > 0;
|
|
101
|
+
}, ...(ngDevMode ? [{ debugName: "showActions" }] : /* istanbul ignore next */ []));
|
|
102
|
+
showClose = computed(() => this.entry().resolvedCloseable, ...(ngDevMode ? [{ debugName: "showClose" }] : /* istanbul ignore next */ []));
|
|
103
|
+
centerContent = computed(() => !this.showDescription() && !this.showActions(), ...(ngDevMode ? [{ debugName: "centerContent" }] : /* istanbul ignore next */ []));
|
|
104
|
+
hasActionsNoDescription = computed(() => this.showActions() && !this.showDescription(), ...(ngDevMode ? [{ debugName: "hasActionsNoDescription" }] : /* istanbul ignore next */ []));
|
|
105
|
+
constructor() {
|
|
106
|
+
effect(() => {
|
|
107
|
+
const e = this.entry();
|
|
108
|
+
if (e.resolvedPersistent ||
|
|
109
|
+
e.resolvedDuration <= 0 ||
|
|
110
|
+
e.resolvedDuration >= Infinity) {
|
|
111
|
+
this.stopCountdown();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
this.startCountdown(e.resolvedDuration);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
effect(() => {
|
|
118
|
+
this.expanded.set(this.entry().resolvedDefaultExpanded);
|
|
119
|
+
});
|
|
120
|
+
this.destroyRef.onDestroy(() => {
|
|
121
|
+
this.stopCountdown();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
startCountdown(duration) {
|
|
125
|
+
this.stopCountdown();
|
|
126
|
+
if (duration <= 0 || duration >= Infinity)
|
|
127
|
+
return;
|
|
128
|
+
this.countdownStarted = true;
|
|
129
|
+
this.countdownTotalMs = duration;
|
|
130
|
+
this.countdownStartedAt = Date.now();
|
|
131
|
+
this.countdownRemainingMs = duration;
|
|
132
|
+
this.countdownPercent.set(100);
|
|
133
|
+
this.remainingSeconds.set(Math.ceil(duration / 1000));
|
|
134
|
+
this.countdownIntervalId = setInterval(() => this.tickCountdown(), 50);
|
|
135
|
+
}
|
|
136
|
+
stopCountdown() {
|
|
137
|
+
this.clearCountdownInterval();
|
|
138
|
+
this.countdownStarted = false;
|
|
139
|
+
}
|
|
140
|
+
clearCountdownInterval() {
|
|
141
|
+
if (this.countdownIntervalId !== null) {
|
|
142
|
+
clearInterval(this.countdownIntervalId);
|
|
143
|
+
this.countdownIntervalId = null;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
tickCountdown() {
|
|
147
|
+
if (this.isPaused())
|
|
148
|
+
return;
|
|
149
|
+
const elapsed = Date.now() - this.countdownStartedAt;
|
|
150
|
+
const remaining = Math.max(0, this.countdownRemainingMs - elapsed);
|
|
151
|
+
this.countdownPercent.set((remaining / this.countdownTotalMs) * 100);
|
|
152
|
+
this.remainingSeconds.set(Math.ceil(remaining / 1000));
|
|
153
|
+
if (remaining <= 0) {
|
|
154
|
+
this.stopCountdown();
|
|
155
|
+
this.handleDismiss();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
captureCountdownRemaining() {
|
|
159
|
+
if (!this.countdownStarted)
|
|
160
|
+
return;
|
|
161
|
+
const elapsed = Date.now() - this.countdownStartedAt;
|
|
162
|
+
this.countdownRemainingMs = Math.max(0, this.countdownRemainingMs - elapsed);
|
|
163
|
+
this.clearCountdownInterval();
|
|
164
|
+
}
|
|
165
|
+
pause() {
|
|
166
|
+
if (!this.countdownStarted || this.isPaused())
|
|
167
|
+
return;
|
|
168
|
+
this.isPaused.set(true);
|
|
169
|
+
this.captureCountdownRemaining();
|
|
170
|
+
}
|
|
171
|
+
resume() {
|
|
172
|
+
if (!this.countdownStarted || !this.isPaused())
|
|
173
|
+
return;
|
|
174
|
+
if (this.isUserPaused())
|
|
175
|
+
return;
|
|
176
|
+
this.isPaused.set(false);
|
|
177
|
+
this.countdownStartedAt = Date.now();
|
|
178
|
+
this.countdownIntervalId = setInterval(() => this.tickCountdown(), 50);
|
|
179
|
+
}
|
|
180
|
+
togglePause() {
|
|
181
|
+
if (this.isUserPaused()) {
|
|
182
|
+
this.isUserPaused.set(false);
|
|
183
|
+
this.resume();
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
this.isUserPaused.set(true);
|
|
187
|
+
this.pause();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
pauseButtonLabel = computed(() => {
|
|
191
|
+
if (this.isUserPaused()) {
|
|
192
|
+
return this.translate('solaris.toast.continue');
|
|
193
|
+
}
|
|
194
|
+
return this.translate('solaris.toast.pause');
|
|
195
|
+
}, ...(ngDevMode ? [{ debugName: "pauseButtonLabel" }] : /* istanbul ignore next */ []));
|
|
196
|
+
onMouseEnter() {
|
|
197
|
+
if (this.toastService.configSignal().pauseOnHover) {
|
|
198
|
+
this.pause();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
onMouseLeave() {
|
|
202
|
+
if (this.toastService.configSignal().pauseOnHover) {
|
|
203
|
+
this.resume();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
onFocusIn() {
|
|
207
|
+
if (this.toastService.configSignal().pauseOnFocus) {
|
|
208
|
+
this.pause();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
onFocusOut() {
|
|
212
|
+
if (this.toastService.configSignal().pauseOnFocus) {
|
|
213
|
+
this.resume();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
handleDismiss() {
|
|
217
|
+
this.stopCountdown();
|
|
218
|
+
this.dismiss.emit(this.entry().id);
|
|
219
|
+
}
|
|
220
|
+
handleActionClick(action) {
|
|
221
|
+
const ref = {
|
|
222
|
+
id: this.entry().id,
|
|
223
|
+
dismiss: () => this.handleDismiss(),
|
|
224
|
+
update: (patch) => {
|
|
225
|
+
this.toastService.update(this.entry().id, patch);
|
|
226
|
+
},
|
|
227
|
+
};
|
|
228
|
+
action.action(ref);
|
|
229
|
+
if (action.closeOnClick) {
|
|
230
|
+
this.handleDismiss();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
translate(key, params) {
|
|
234
|
+
if (this.translateService) {
|
|
235
|
+
return this.translateService.translate(key, params);
|
|
236
|
+
}
|
|
237
|
+
return key;
|
|
238
|
+
}
|
|
239
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
240
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SolarisToastComponent, isStandalone: true, selector: "solaris-toast", inputs: { entry: { classPropertyName: "entry", publicName: "entry", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { dismiss: "dismiss" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "focusin": "onFocusIn()", "focusout": "onFocusOut()" }, properties: { "attr.role": "hostRole()", "attr.aria-live": "hostAriaLive()", "attr.data-variant": "hostDataVariant()", "attr.data-icon-size": "hostDataIconSize()", "attr.data-appearance": "hostDataAppearance()", "attr.data-media-shape": "hostDataMediaShape()", "attr.data-actions-align": "hostDataActionsAlign()", "attr.data-center-content": "centerContent()", "attr.data-actions-no-desc": "hasActionsNoDescription()" } }, ngImport: i0, template: "<div class=\"solaris-toast__root\">\n @if (showIcon()) {\n <div class=\"solaris-toast__media\">\n <div class=\"solaris-toast__icon\">\n <solaris-icon\n [name]=\"entry().resolvedIcon\"\n [decorative]=\"entry().options.iconDecorative !== false\"\n />\n </div>\n </div>\n }\n\n <div class=\"solaris-toast__content\">\n @if (showTitle()) {\n <div class=\"solaris-toast__title\">{{ entry().resolvedTitle }}</div>\n }\n\n @if (showDescription()) {\n <div\n class=\"solaris-toast__description\"\n [class.solaris-toast__description--truncated]=\"isTruncated()\"\n [style.--solaris-toast-max-lines]=\"entry().resolvedMaxCollapsedLines\"\n >\n {{ entry().resolvedDescription }}\n </div>\n }\n\n @if (showActions()) {\n <div class=\"solaris-toast__actions\">\n @for (action of entry().resolvedActions; track $index) {\n <button\n solaris-button\n [appearance]=\"action.appearance ?? 'ghost'\"\n [color]=\"action.color ?? 'neutral'\"\n size=\"sm\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"handleActionClick(action)\"\n >\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"solaris-toast__trailing\">\n @if (isExpandable()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"expandButtonLabel()\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggleExpanded()\"\n >\n <solaris-icon\n class=\"solaris-toast__expand-icon\"\n [class.solaris-toast__expand-icon--expanded]=\"expanded()\"\n name=\"chevron-down\"\n [decorative]=\"true\"\n />\n </button>\n }\n\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"entry().resolvedCloseLabel\"\n (click)=\"handleDismiss()\"\n >\n <solaris-icon name=\"x\" [decorative]=\"true\" />\n </button>\n }\n </div>\n</div>\n\n@if (showProgressBar()) {\n <div\n class=\"solaris-toast__progress\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"progressValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"\n isProcessProgress()\n ? translate('solaris.toast.progress')\n : translate('solaris.toast.remaining')\n \"\n >\n <div\n class=\"solaris-toast__progress-bar\"\n [style.width.%]=\"progressValue()\"\n ></div>\n </div>\n}\n\n@if (showCountdownText()) {\n <div class=\"solaris-toast__countdown-text\">\n <span class=\"solaris-toast__countdown-message\">{{ countdownText() }}</span>\n <button\n type=\"button\"\n class=\"solaris-toast__countdown-toggle\"\n (click)=\"togglePause()\"\n >\n {{ pauseButtonLabel() }}\n </button>\n </div>\n}\n", styles: [":host{--solaris-toast-color: initial;--solaris-toast-radius: initial;--solaris-toast-shadow: initial;--solaris-toast-icon-color: initial;--solaris-toast-background: initial;--solaris-toast-title-color: initial;--solaris-toast-border-color: initial;--solaris-toast-border-width: initial;--solaris-toast-action-color: initial;--solaris-toast-progress-color: initial;--solaris-toast-description-color: initial;--solaris-toast-max-lines: 2;--solaris-toast-width: 50rem;--solaris-toast-max-width: 50rem;--solaris-toast-gap: var(--solaris-spacing-3);--solaris-toast-padding: var(--solaris-spacing-2);--solaris-toast-close-size: var(--solaris-spacing-4);--solaris-toast-media-size: var(--solaris-spacing-6);--solaris-toast-content-gap: var(--solaris-spacing-1);--solaris-toast-actions-gap: var(--solaris-spacing-2);--solaris-toast-radius-value: var(--solaris-radius-md);--solaris-toast-icon-size: var(--solaris-font-size-lg);--solaris-toast-shadow-value: var(--solaris-shadow-lg);--solaris-toast-progress-height: var(--solaris-spacing-1);--solaris-toast-close-icon-size: var(--solaris-font-size-lg);display:block;overflow:hidden;pointer-events:auto;box-sizing:border-box;width:var(--solaris-toast-width);max-width:var(--solaris-toast-max-width);box-shadow:var(--solaris-toast-shadow-value);border-radius:var(--solaris-toast-radius-value);animation:solaris-toast-enter var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__root{display:flex;box-sizing:border-box;align-items:flex-start;gap:var(--solaris-toast-gap);color:var(--solaris-toast-color);padding:var(--solaris-toast-padding);border-radius:var(--solaris-radius-md);background:var(--solaris-toast-background);border:var(--solaris-toast-border-width) solid var(--solaris-toast-border-color)}:host([data-center-content=true]) .solaris-toast__root{align-items:center}:host([data-center-content=true]) .solaris-toast__trailing{align-self:center}:host([data-center-content=true]) .solaris-toast__media{margin-top:0}.solaris-toast__media{display:grid;flex-shrink:0;overflow:hidden;place-items:center;margin-top:var(--solaris-spacing-1);width:var(--solaris-toast-media-size);height:var(--solaris-toast-media-size)}.solaris-toast__icon{display:grid;place-items:center;color:var(--solaris-toast-icon-color)}.solaris-toast__icon solaris-icon,.solaris-toast__icon svg{display:block;width:var(--solaris-toast-icon-size);height:var(--solaris-toast-icon-size)}.solaris-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--solaris-toast-content-gap);font-size:var(--solaris-font-size-sm);line-height:var(--solaris-line-height-md)}.solaris-toast__title{margin:0;word-break:normal;overflow-wrap:break-word;font-size:var(--solaris-font-size-md);line-height:var(--solaris-line-height-sm);font-weight:var(--solaris-font-weight-semibold);color:var(--solaris-toast-title-color, var(--solaris-text-strong))}.solaris-toast__description{margin:0;word-break:normal;overflow-wrap:break-word;font-size:var(--solaris-font-size-xs);line-height:var(--solaris-line-height-md);color:var(--solaris-toast-description-color, var(--solaris-text-muted))}.solaris-toast__description--truncated{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--solaris-toast-max-lines)}.solaris-toast__trailing{display:flex;flex-shrink:0;align-self:flex-start;gap:var(--solaris-spacing-2)}.solaris-toast__trailing-btn{all:unset;display:grid;flex-shrink:0;cursor:pointer;place-items:center;box-sizing:border-box;background:transparent;color:var(--solaris-text-muted);width:var(--solaris-toast-close-size);height:var(--solaris-toast-close-size);border-radius:var(--solaris-radius-sm);transition:color var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__trailing-btn:hover{color:var(--solaris-text-default)}.solaris-toast__trailing-btn:focus-visible{outline-offset:2px;outline:2px solid var(--solaris-primary-base)}.solaris-toast__trailing-btn solaris-icon,.solaris-toast__trailing-btn svg{display:block;width:var(--solaris-toast-close-icon-size);height:var(--solaris-toast-close-icon-size)}.solaris-toast__expand-icon{transition:transform var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__expand-icon--expanded{transform:rotate(180deg)}.solaris-toast__actions{display:flex;flex-wrap:wrap;gap:var(--solaris-toast-actions-gap);margin-block-start:var(--solaris-spacing-2)}:host([data-actions-align=start]) .solaris-toast__actions{justify-content:flex-start}:host([data-actions-align=center]) .solaris-toast__actions{justify-content:center}:host([data-actions-align=end]) .solaris-toast__actions{justify-content:flex-end}:host([data-actions-align=stretch]) .solaris-toast__actions{justify-content:stretch}:host([data-actions-align=stretch]) .solaris-toast__actions [solaris-button]{flex:1}.solaris-toast__progress{height:var(--solaris-toast-progress-height);background:var(--solaris-surface-muted);overflow:hidden}.solaris-toast__progress-bar{height:100%;transition:width .1s var(--solaris-motion-easing-standard);background:var(--solaris-toast-progress-color, var(--solaris-primary-base))}.solaris-toast__countdown-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--solaris-spacing-1);color:var(--solaris-text-muted);background:var(--solaris-bg-page);font-size:var(--solaris-font-size-xs);line-height:var(--solaris-line-height-md);padding:var(--solaris-toast-padding) var(--solaris-spacing-4)}.solaris-toast__countdown-toggle{all:unset;cursor:pointer;white-space:nowrap;line-height:inherit;text-decoration:none;color:var(--solaris-text-default);font-weight:var(--solaris-font-weight-bold)}.solaris-toast__countdown-toggle:hover{text-decoration:underline}.solaris-toast__countdown-toggle:focus-visible{outline-offset:2px;text-decoration:underline;border-radius:var(--solaris-radius-sm);outline:2px solid var(--solaris-primary-base)}:host([data-icon-size=sm]){--solaris-toast-media-size: var(--solaris-spacing-6);--solaris-toast-icon-size: var(--solaris-font-size-lg)}:host([data-icon-size=md]){--solaris-toast-media-size: var(--solaris-spacing-8);--solaris-toast-icon-size: var(--solaris-font-size-2xl)}:host([data-icon-size=lg]){--solaris-toast-media-size: var(--solaris-spacing-10);--solaris-toast-icon-size: var(--solaris-font-size-3xl)}:host([data-media-shape=circle]) .solaris-toast__media{border-radius:50%}:host([data-media-shape=rounded]) .solaris-toast__media{border-radius:var(--solaris-radius-md)}:host([data-media-shape=square]) .solaris-toast__media{border-radius:0}:host([data-variant=neutral][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-text-muted);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-text-muted)}:host([data-variant=neutral][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-text-muted);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-border-default);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-text-muted)}:host([data-variant=info][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-info-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-info-base)}:host([data-variant=info][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-info-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-info-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-info-base)}:host([data-variant=success][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-success-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-success-base)}:host([data-variant=success][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-success-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-success-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-success-base)}:host([data-variant=warning][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-warning-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-warning-base)}:host([data-variant=warning][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-warning-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-warning-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-warning-base)}:host([data-variant=danger][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-danger-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-danger-base)}:host([data-variant=danger][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-danger-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-danger-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-danger-base)}:host([data-variant=loading][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-primary-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-primary-base)}:host([data-variant=loading][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-primary-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-primary-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-primary-base)}:host([data-variant=custom]){--solaris-toast-color: var( --solaris-toast-custom-color, var(--solaris-text-default) );--solaris-toast-background: var( --solaris-toast-custom-background, var(--solaris-surface-raised) );--solaris-toast-border-color: var( --solaris-toast-custom-border-color, var(--solaris-border-default) );--solaris-toast-icon-color: var( --solaris-toast-custom-icon-color, var(--solaris-text-muted) );--solaris-toast-progress-color: var( --solaris-toast-custom-progress-color, var(--solaris-primary-base) )}:host([data-appearance=surface]){--solaris-toast-border-width: 0;--solaris-toast-border-color: transparent}:host([data-appearance=outline]){--solaris-toast-border-width: var(--solaris-border-width-sm)}:host([data-variant=loading]) .solaris-toast__icon{animation:solaris-toast-spin 1s linear infinite}@keyframes solaris-toast-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes solaris-toast-enter{0%{opacity:0;transform:translateY(-1rem) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){:host{animation:none}:host([data-variant=loading]) .solaris-toast__icon{animation:none}}:host-context([data-reduced-motion=true]){animation:none}:host([data-reduced-motion=true][data-variant=loading]) .solaris-toast__icon{animation:none}@media(max-width:640px){:host{--solaris-toast-width: 100%;--solaris-toast-max-width: 100%}}\n"], dependencies: [{ kind: "component", type: SolarisIconComponent, selector: "solaris-icon", inputs: ["name", "ariaLabel", "decorative"] }, { kind: "directive", type: SolarisButtonDirective, selector: "[solaris-button]", inputs: ["appearance", "color", "radius", "size", "density", "loading", "disabled", "fullWidth", "loadingLabelKey", "loadingLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
241
|
+
}
|
|
242
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisToastComponent, decorators: [{
|
|
243
|
+
type: Component,
|
|
244
|
+
args: [{ selector: 'solaris-toast', standalone: true, imports: [SolarisIconComponent, SolarisButtonDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
245
|
+
'[attr.role]': 'hostRole()',
|
|
246
|
+
'[attr.aria-live]': 'hostAriaLive()',
|
|
247
|
+
'[attr.data-variant]': 'hostDataVariant()',
|
|
248
|
+
'[attr.data-icon-size]': 'hostDataIconSize()',
|
|
249
|
+
'[attr.data-appearance]': 'hostDataAppearance()',
|
|
250
|
+
'[attr.data-media-shape]': 'hostDataMediaShape()',
|
|
251
|
+
'[attr.data-actions-align]': 'hostDataActionsAlign()',
|
|
252
|
+
'[attr.data-center-content]': 'centerContent()',
|
|
253
|
+
'[attr.data-actions-no-desc]': 'hasActionsNoDescription()',
|
|
254
|
+
}, template: "<div class=\"solaris-toast__root\">\n @if (showIcon()) {\n <div class=\"solaris-toast__media\">\n <div class=\"solaris-toast__icon\">\n <solaris-icon\n [name]=\"entry().resolvedIcon\"\n [decorative]=\"entry().options.iconDecorative !== false\"\n />\n </div>\n </div>\n }\n\n <div class=\"solaris-toast__content\">\n @if (showTitle()) {\n <div class=\"solaris-toast__title\">{{ entry().resolvedTitle }}</div>\n }\n\n @if (showDescription()) {\n <div\n class=\"solaris-toast__description\"\n [class.solaris-toast__description--truncated]=\"isTruncated()\"\n [style.--solaris-toast-max-lines]=\"entry().resolvedMaxCollapsedLines\"\n >\n {{ entry().resolvedDescription }}\n </div>\n }\n\n @if (showActions()) {\n <div class=\"solaris-toast__actions\">\n @for (action of entry().resolvedActions; track $index) {\n <button\n solaris-button\n [appearance]=\"action.appearance ?? 'ghost'\"\n [color]=\"action.color ?? 'neutral'\"\n size=\"sm\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"handleActionClick(action)\"\n >\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"solaris-toast__trailing\">\n @if (isExpandable()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"expandButtonLabel()\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggleExpanded()\"\n >\n <solaris-icon\n class=\"solaris-toast__expand-icon\"\n [class.solaris-toast__expand-icon--expanded]=\"expanded()\"\n name=\"chevron-down\"\n [decorative]=\"true\"\n />\n </button>\n }\n\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"entry().resolvedCloseLabel\"\n (click)=\"handleDismiss()\"\n >\n <solaris-icon name=\"x\" [decorative]=\"true\" />\n </button>\n }\n </div>\n</div>\n\n@if (showProgressBar()) {\n <div\n class=\"solaris-toast__progress\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"progressValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"\n isProcessProgress()\n ? translate('solaris.toast.progress')\n : translate('solaris.toast.remaining')\n \"\n >\n <div\n class=\"solaris-toast__progress-bar\"\n [style.width.%]=\"progressValue()\"\n ></div>\n </div>\n}\n\n@if (showCountdownText()) {\n <div class=\"solaris-toast__countdown-text\">\n <span class=\"solaris-toast__countdown-message\">{{ countdownText() }}</span>\n <button\n type=\"button\"\n class=\"solaris-toast__countdown-toggle\"\n (click)=\"togglePause()\"\n >\n {{ pauseButtonLabel() }}\n </button>\n </div>\n}\n", styles: [":host{--solaris-toast-color: initial;--solaris-toast-radius: initial;--solaris-toast-shadow: initial;--solaris-toast-icon-color: initial;--solaris-toast-background: initial;--solaris-toast-title-color: initial;--solaris-toast-border-color: initial;--solaris-toast-border-width: initial;--solaris-toast-action-color: initial;--solaris-toast-progress-color: initial;--solaris-toast-description-color: initial;--solaris-toast-max-lines: 2;--solaris-toast-width: 50rem;--solaris-toast-max-width: 50rem;--solaris-toast-gap: var(--solaris-spacing-3);--solaris-toast-padding: var(--solaris-spacing-2);--solaris-toast-close-size: var(--solaris-spacing-4);--solaris-toast-media-size: var(--solaris-spacing-6);--solaris-toast-content-gap: var(--solaris-spacing-1);--solaris-toast-actions-gap: var(--solaris-spacing-2);--solaris-toast-radius-value: var(--solaris-radius-md);--solaris-toast-icon-size: var(--solaris-font-size-lg);--solaris-toast-shadow-value: var(--solaris-shadow-lg);--solaris-toast-progress-height: var(--solaris-spacing-1);--solaris-toast-close-icon-size: var(--solaris-font-size-lg);display:block;overflow:hidden;pointer-events:auto;box-sizing:border-box;width:var(--solaris-toast-width);max-width:var(--solaris-toast-max-width);box-shadow:var(--solaris-toast-shadow-value);border-radius:var(--solaris-toast-radius-value);animation:solaris-toast-enter var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__root{display:flex;box-sizing:border-box;align-items:flex-start;gap:var(--solaris-toast-gap);color:var(--solaris-toast-color);padding:var(--solaris-toast-padding);border-radius:var(--solaris-radius-md);background:var(--solaris-toast-background);border:var(--solaris-toast-border-width) solid var(--solaris-toast-border-color)}:host([data-center-content=true]) .solaris-toast__root{align-items:center}:host([data-center-content=true]) .solaris-toast__trailing{align-self:center}:host([data-center-content=true]) .solaris-toast__media{margin-top:0}.solaris-toast__media{display:grid;flex-shrink:0;overflow:hidden;place-items:center;margin-top:var(--solaris-spacing-1);width:var(--solaris-toast-media-size);height:var(--solaris-toast-media-size)}.solaris-toast__icon{display:grid;place-items:center;color:var(--solaris-toast-icon-color)}.solaris-toast__icon solaris-icon,.solaris-toast__icon svg{display:block;width:var(--solaris-toast-icon-size);height:var(--solaris-toast-icon-size)}.solaris-toast__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--solaris-toast-content-gap);font-size:var(--solaris-font-size-sm);line-height:var(--solaris-line-height-md)}.solaris-toast__title{margin:0;word-break:normal;overflow-wrap:break-word;font-size:var(--solaris-font-size-md);line-height:var(--solaris-line-height-sm);font-weight:var(--solaris-font-weight-semibold);color:var(--solaris-toast-title-color, var(--solaris-text-strong))}.solaris-toast__description{margin:0;word-break:normal;overflow-wrap:break-word;font-size:var(--solaris-font-size-xs);line-height:var(--solaris-line-height-md);color:var(--solaris-toast-description-color, var(--solaris-text-muted))}.solaris-toast__description--truncated{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--solaris-toast-max-lines)}.solaris-toast__trailing{display:flex;flex-shrink:0;align-self:flex-start;gap:var(--solaris-spacing-2)}.solaris-toast__trailing-btn{all:unset;display:grid;flex-shrink:0;cursor:pointer;place-items:center;box-sizing:border-box;background:transparent;color:var(--solaris-text-muted);width:var(--solaris-toast-close-size);height:var(--solaris-toast-close-size);border-radius:var(--solaris-radius-sm);transition:color var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__trailing-btn:hover{color:var(--solaris-text-default)}.solaris-toast__trailing-btn:focus-visible{outline-offset:2px;outline:2px solid var(--solaris-primary-base)}.solaris-toast__trailing-btn solaris-icon,.solaris-toast__trailing-btn svg{display:block;width:var(--solaris-toast-close-icon-size);height:var(--solaris-toast-close-icon-size)}.solaris-toast__expand-icon{transition:transform var(--solaris-motion-duration-normal) var(--solaris-motion-easing-standard)}.solaris-toast__expand-icon--expanded{transform:rotate(180deg)}.solaris-toast__actions{display:flex;flex-wrap:wrap;gap:var(--solaris-toast-actions-gap);margin-block-start:var(--solaris-spacing-2)}:host([data-actions-align=start]) .solaris-toast__actions{justify-content:flex-start}:host([data-actions-align=center]) .solaris-toast__actions{justify-content:center}:host([data-actions-align=end]) .solaris-toast__actions{justify-content:flex-end}:host([data-actions-align=stretch]) .solaris-toast__actions{justify-content:stretch}:host([data-actions-align=stretch]) .solaris-toast__actions [solaris-button]{flex:1}.solaris-toast__progress{height:var(--solaris-toast-progress-height);background:var(--solaris-surface-muted);overflow:hidden}.solaris-toast__progress-bar{height:100%;transition:width .1s var(--solaris-motion-easing-standard);background:var(--solaris-toast-progress-color, var(--solaris-primary-base))}.solaris-toast__countdown-text{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--solaris-spacing-1);color:var(--solaris-text-muted);background:var(--solaris-bg-page);font-size:var(--solaris-font-size-xs);line-height:var(--solaris-line-height-md);padding:var(--solaris-toast-padding) var(--solaris-spacing-4)}.solaris-toast__countdown-toggle{all:unset;cursor:pointer;white-space:nowrap;line-height:inherit;text-decoration:none;color:var(--solaris-text-default);font-weight:var(--solaris-font-weight-bold)}.solaris-toast__countdown-toggle:hover{text-decoration:underline}.solaris-toast__countdown-toggle:focus-visible{outline-offset:2px;text-decoration:underline;border-radius:var(--solaris-radius-sm);outline:2px solid var(--solaris-primary-base)}:host([data-icon-size=sm]){--solaris-toast-media-size: var(--solaris-spacing-6);--solaris-toast-icon-size: var(--solaris-font-size-lg)}:host([data-icon-size=md]){--solaris-toast-media-size: var(--solaris-spacing-8);--solaris-toast-icon-size: var(--solaris-font-size-2xl)}:host([data-icon-size=lg]){--solaris-toast-media-size: var(--solaris-spacing-10);--solaris-toast-icon-size: var(--solaris-font-size-3xl)}:host([data-media-shape=circle]) .solaris-toast__media{border-radius:50%}:host([data-media-shape=rounded]) .solaris-toast__media{border-radius:var(--solaris-radius-md)}:host([data-media-shape=square]) .solaris-toast__media{border-radius:0}:host([data-variant=neutral][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-text-muted);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-text-muted)}:host([data-variant=neutral][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-text-muted);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-border-default);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-text-muted)}:host([data-variant=info][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-info-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-info-base)}:host([data-variant=info][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-info-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-info-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-info-base)}:host([data-variant=success][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-success-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-success-base)}:host([data-variant=success][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-success-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-success-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-success-base)}:host([data-variant=warning][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-warning-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-warning-base)}:host([data-variant=warning][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-warning-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-warning-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-warning-base)}:host([data-variant=danger][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-danger-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-danger-base)}:host([data-variant=danger][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-danger-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-danger-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-danger-base)}:host([data-variant=loading][data-appearance=surface]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-primary-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: transparent;--solaris-toast-border-width: 0;--solaris-toast-progress-color: var(--solaris-primary-base)}:host([data-variant=loading][data-appearance=outline]){--solaris-toast-color: var(--solaris-text-default);--solaris-toast-icon-color: var(--solaris-primary-base);--solaris-toast-background: var(--solaris-surface-raised);--solaris-toast-border-color: var(--solaris-primary-border);--solaris-toast-border-width: var(--solaris-border-width-sm);--solaris-toast-progress-color: var(--solaris-primary-base)}:host([data-variant=custom]){--solaris-toast-color: var( --solaris-toast-custom-color, var(--solaris-text-default) );--solaris-toast-background: var( --solaris-toast-custom-background, var(--solaris-surface-raised) );--solaris-toast-border-color: var( --solaris-toast-custom-border-color, var(--solaris-border-default) );--solaris-toast-icon-color: var( --solaris-toast-custom-icon-color, var(--solaris-text-muted) );--solaris-toast-progress-color: var( --solaris-toast-custom-progress-color, var(--solaris-primary-base) )}:host([data-appearance=surface]){--solaris-toast-border-width: 0;--solaris-toast-border-color: transparent}:host([data-appearance=outline]){--solaris-toast-border-width: var(--solaris-border-width-sm)}:host([data-variant=loading]) .solaris-toast__icon{animation:solaris-toast-spin 1s linear infinite}@keyframes solaris-toast-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes solaris-toast-enter{0%{opacity:0;transform:translateY(-1rem) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){:host{animation:none}:host([data-variant=loading]) .solaris-toast__icon{animation:none}}:host-context([data-reduced-motion=true]){animation:none}:host([data-reduced-motion=true][data-variant=loading]) .solaris-toast__icon{animation:none}@media(max-width:640px){:host{--solaris-toast-width: 100%;--solaris-toast-max-width: 100%}}\n"] }]
|
|
255
|
+
}], ctorParameters: () => [], propDecorators: { entry: [{ type: i0.Input, args: [{ isSignal: true, alias: "entry", required: true }] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }], onMouseEnter: [{
|
|
256
|
+
type: HostListener,
|
|
257
|
+
args: ['mouseenter']
|
|
258
|
+
}], onMouseLeave: [{
|
|
259
|
+
type: HostListener,
|
|
260
|
+
args: ['mouseleave']
|
|
261
|
+
}], onFocusIn: [{
|
|
262
|
+
type: HostListener,
|
|
263
|
+
args: ['focusin']
|
|
264
|
+
}], onFocusOut: [{
|
|
265
|
+
type: HostListener,
|
|
266
|
+
args: ['focusout']
|
|
267
|
+
}] } });
|
|
268
|
+
//# sourceMappingURL=toast.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.component.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/feedback/toast/component/toast.component.ts","../../../../../../../../../packages/angular/src/lib/components/feedback/toast/component/toast.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n input,\n output,\n inject,\n computed,\n effect,\n signal,\n ChangeDetectionStrategy,\n DestroyRef,\n HostListener,\n} from '@angular/core';\n\nimport type {\n SolarisToastAction,\n SolarisToastEntry,\n} from '../model/toast.types';\nimport { SolarisTranslateService } from '../../../../services/translation';\nimport { SolarisButtonDirective } from '../../../actions/button';\nimport { SolarisToastService } from '../service/toast.service';\nimport { SolarisIconComponent } from '../../../icon';\n\n@Component({\n selector: 'solaris-toast',\n standalone: true,\n imports: [SolarisIconComponent, SolarisButtonDirective],\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.role]': 'hostRole()',\n '[attr.aria-live]': 'hostAriaLive()',\n '[attr.data-variant]': 'hostDataVariant()',\n '[attr.data-icon-size]': 'hostDataIconSize()',\n '[attr.data-appearance]': 'hostDataAppearance()',\n '[attr.data-media-shape]': 'hostDataMediaShape()',\n '[attr.data-actions-align]': 'hostDataActionsAlign()',\n '[attr.data-center-content]': 'centerContent()',\n '[attr.data-actions-no-desc]': 'hasActionsNoDescription()',\n },\n})\nexport class SolarisToastComponent {\n private readonly translateService = inject(SolarisTranslateService, {\n optional: true,\n });\n private readonly toastService = inject(SolarisToastService);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly entry = input.required<SolarisToastEntry>();\n readonly dismiss = output<string>();\n\n protected readonly hostDataVariant = computed(\n () => this.entry().resolvedVariant,\n );\n protected readonly hostDataAppearance = computed(\n () => this.entry().resolvedAppearance,\n );\n protected readonly hostRole = computed(() => this.entry().resolvedRole);\n protected readonly hostAriaLive = computed(() => {\n const live = this.entry().resolvedAriaLive;\n return live === 'off' ? null : live;\n });\n protected readonly hostDataIconSize = computed(\n () => this.entry().resolvedIconSize,\n );\n protected readonly hostDataMediaShape = computed(\n () => this.entry().resolvedMediaShape,\n );\n protected readonly hostDataActionsAlign = computed(\n () => this.entry().resolvedActionsAlign,\n );\n\n protected readonly expanded = signal(false);\n protected readonly isExpandable = computed(() => {\n const e = this.entry();\n return e.resolvedExpandable && !!e.resolvedDescription;\n });\n\n protected toggleExpanded(): void {\n this.expanded.update((v) => !v);\n }\n\n protected readonly expandButtonLabel = computed(() => {\n const e = this.entry();\n if (this.expanded()) {\n return (\n e.resolvedCollapseLabel || this.translate('solaris.toast.collapse')\n );\n }\n return e.resolvedExpandLabel || this.translate('solaris.toast.expand');\n });\n\n protected readonly isTruncated = computed(\n () => this.isExpandable() && !this.expanded(),\n );\n\n protected readonly countdownPercent = signal(100);\n protected readonly remainingSeconds = signal(0);\n\n private countdownTotalMs = 0;\n private countdownStartedAt = 0;\n private countdownRemainingMs = 0;\n private countdownStarted = false;\n private countdownIntervalId: ReturnType<typeof setInterval> | null = null;\n\n protected readonly isPaused = signal(false);\n private readonly isUserPaused = signal(false);\n\n protected readonly showProgressBar = computed(() => {\n const e = this.entry();\n if (e.resolvedProgress !== undefined && e.resolvedProgress !== null) {\n return true;\n }\n const showCountdown = this.shouldShowCountdown();\n return (\n showCountdown &&\n !e.resolvedPersistent &&\n e.resolvedDuration > 0 &&\n e.resolvedDuration < Infinity &&\n (e.resolvedCountdownMode === 'bar' || e.resolvedCountdownMode === 'both')\n );\n });\n\n protected readonly showCountdownText = computed(() => {\n const e = this.entry();\n const showCountdown = this.shouldShowCountdown();\n return (\n showCountdown &&\n !e.resolvedPersistent &&\n e.resolvedDuration > 0 &&\n e.resolvedDuration < Infinity &&\n (e.resolvedCountdownMode === 'text' || e.resolvedCountdownMode === 'both')\n );\n });\n\n private shouldShowCountdown(): boolean {\n const e = this.entry();\n return e.resolvedShowCountdown || e.resolvedShowProgress;\n }\n\n protected readonly progressValue = computed(() => {\n const e = this.entry();\n if (e.resolvedProgress !== undefined && e.resolvedProgress !== null) {\n return e.resolvedProgress;\n }\n return this.countdownPercent();\n });\n\n protected readonly isProcessProgress = computed(() => {\n const e = this.entry();\n return e.resolvedProgress !== undefined && e.resolvedProgress !== null;\n });\n\n protected readonly countdownText = computed(() => {\n const secs = this.remainingSeconds();\n if (secs <= 0) return '';\n return this.translate('solaris.toast.closesIn', { seconds: String(secs) });\n });\n\n protected readonly showTitle = computed(() => !!this.entry().resolvedTitle);\n protected readonly showDescription = computed(\n () => !!this.entry().resolvedDescription,\n );\n protected readonly showIcon = computed(() => {\n const e = this.entry();\n return e.resolvedIcon !== undefined && e.resolvedIcon !== null;\n });\n protected readonly showActions = computed(() => {\n const actions = this.entry().resolvedActions;\n return actions && actions.length > 0;\n });\n protected readonly showClose = computed(() => this.entry().resolvedCloseable);\n\n protected readonly centerContent = computed(\n () => !this.showDescription() && !this.showActions(),\n );\n\n protected readonly hasActionsNoDescription = computed(\n () => this.showActions() && !this.showDescription(),\n );\n\n constructor() {\n effect(() => {\n const e = this.entry();\n if (\n e.resolvedPersistent ||\n e.resolvedDuration <= 0 ||\n e.resolvedDuration >= Infinity\n ) {\n this.stopCountdown();\n } else {\n this.startCountdown(e.resolvedDuration);\n }\n });\n\n effect(() => {\n this.expanded.set(this.entry().resolvedDefaultExpanded);\n });\n\n this.destroyRef.onDestroy(() => {\n this.stopCountdown();\n });\n }\n\n private startCountdown(duration: number): void {\n this.stopCountdown();\n if (duration <= 0 || duration >= Infinity) return;\n\n this.countdownStarted = true;\n this.countdownTotalMs = duration;\n this.countdownStartedAt = Date.now();\n this.countdownRemainingMs = duration;\n this.countdownPercent.set(100);\n this.remainingSeconds.set(Math.ceil(duration / 1000));\n\n this.countdownIntervalId = setInterval(() => this.tickCountdown(), 50);\n }\n\n private stopCountdown(): void {\n this.clearCountdownInterval();\n this.countdownStarted = false;\n }\n\n private clearCountdownInterval(): void {\n if (this.countdownIntervalId !== null) {\n clearInterval(this.countdownIntervalId);\n this.countdownIntervalId = null;\n }\n }\n\n private tickCountdown(): void {\n if (this.isPaused()) return;\n\n const elapsed = Date.now() - this.countdownStartedAt;\n const remaining = Math.max(0, this.countdownRemainingMs - elapsed);\n\n this.countdownPercent.set((remaining / this.countdownTotalMs) * 100);\n this.remainingSeconds.set(Math.ceil(remaining / 1000));\n\n if (remaining <= 0) {\n this.stopCountdown();\n this.handleDismiss();\n }\n }\n\n private captureCountdownRemaining(): void {\n if (!this.countdownStarted) return;\n const elapsed = Date.now() - this.countdownStartedAt;\n this.countdownRemainingMs = Math.max(\n 0,\n this.countdownRemainingMs - elapsed,\n );\n this.clearCountdownInterval();\n }\n\n protected pause(): void {\n if (!this.countdownStarted || this.isPaused()) return;\n this.isPaused.set(true);\n this.captureCountdownRemaining();\n }\n\n protected resume(): void {\n if (!this.countdownStarted || !this.isPaused()) return;\n if (this.isUserPaused()) return;\n this.isPaused.set(false);\n this.countdownStartedAt = Date.now();\n this.countdownIntervalId = setInterval(() => this.tickCountdown(), 50);\n }\n\n protected togglePause(): void {\n if (this.isUserPaused()) {\n this.isUserPaused.set(false);\n this.resume();\n } else {\n this.isUserPaused.set(true);\n this.pause();\n }\n }\n\n protected readonly pauseButtonLabel = computed(() => {\n if (this.isUserPaused()) {\n return this.translate('solaris.toast.continue');\n }\n return this.translate('solaris.toast.pause');\n });\n\n @HostListener('mouseenter')\n protected onMouseEnter(): void {\n if (this.toastService.configSignal().pauseOnHover) {\n this.pause();\n }\n }\n\n @HostListener('mouseleave')\n protected onMouseLeave(): void {\n if (this.toastService.configSignal().pauseOnHover) {\n this.resume();\n }\n }\n\n @HostListener('focusin')\n protected onFocusIn(): void {\n if (this.toastService.configSignal().pauseOnFocus) {\n this.pause();\n }\n }\n\n @HostListener('focusout')\n protected onFocusOut(): void {\n if (this.toastService.configSignal().pauseOnFocus) {\n this.resume();\n }\n }\n\n protected handleDismiss(): void {\n this.stopCountdown();\n this.dismiss.emit(this.entry().id);\n }\n\n protected handleActionClick(action: SolarisToastAction): void {\n const ref = {\n id: this.entry().id,\n dismiss: () => this.handleDismiss(),\n update: (patch: never) => {\n this.toastService.update(this.entry().id, patch);\n },\n };\n action.action(ref);\n if (action.closeOnClick) {\n this.handleDismiss();\n }\n }\n\n protected translate(key: string, params?: Record<string, string>): string {\n if (this.translateService) {\n return this.translateService.translate(key, params);\n }\n\n return key;\n }\n}\n","<div class=\"solaris-toast__root\">\n @if (showIcon()) {\n <div class=\"solaris-toast__media\">\n <div class=\"solaris-toast__icon\">\n <solaris-icon\n [name]=\"entry().resolvedIcon\"\n [decorative]=\"entry().options.iconDecorative !== false\"\n />\n </div>\n </div>\n }\n\n <div class=\"solaris-toast__content\">\n @if (showTitle()) {\n <div class=\"solaris-toast__title\">{{ entry().resolvedTitle }}</div>\n }\n\n @if (showDescription()) {\n <div\n class=\"solaris-toast__description\"\n [class.solaris-toast__description--truncated]=\"isTruncated()\"\n [style.--solaris-toast-max-lines]=\"entry().resolvedMaxCollapsedLines\"\n >\n {{ entry().resolvedDescription }}\n </div>\n }\n\n @if (showActions()) {\n <div class=\"solaris-toast__actions\">\n @for (action of entry().resolvedActions; track $index) {\n <button\n solaris-button\n [appearance]=\"action.appearance ?? 'ghost'\"\n [color]=\"action.color ?? 'neutral'\"\n size=\"sm\"\n [disabled]=\"action.disabled ?? false\"\n (click)=\"handleActionClick(action)\"\n >\n {{ action.label }}\n </button>\n }\n </div>\n }\n </div>\n\n <div class=\"solaris-toast__trailing\">\n @if (isExpandable()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"expandButtonLabel()\"\n [attr.aria-expanded]=\"expanded()\"\n (click)=\"toggleExpanded()\"\n >\n <solaris-icon\n class=\"solaris-toast__expand-icon\"\n [class.solaris-toast__expand-icon--expanded]=\"expanded()\"\n name=\"chevron-down\"\n [decorative]=\"true\"\n />\n </button>\n }\n\n @if (showClose()) {\n <button\n type=\"button\"\n class=\"solaris-toast__trailing-btn\"\n [attr.aria-label]=\"entry().resolvedCloseLabel\"\n (click)=\"handleDismiss()\"\n >\n <solaris-icon name=\"x\" [decorative]=\"true\" />\n </button>\n }\n </div>\n</div>\n\n@if (showProgressBar()) {\n <div\n class=\"solaris-toast__progress\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"progressValue()\"\n [attr.aria-valuemin]=\"0\"\n [attr.aria-valuemax]=\"100\"\n [attr.aria-label]=\"\n isProcessProgress()\n ? translate('solaris.toast.progress')\n : translate('solaris.toast.remaining')\n \"\n >\n <div\n class=\"solaris-toast__progress-bar\"\n [style.width.%]=\"progressValue()\"\n ></div>\n </div>\n}\n\n@if (showCountdownText()) {\n <div class=\"solaris-toast__countdown-text\">\n <span class=\"solaris-toast__countdown-message\">{{ countdownText() }}</span>\n <button\n type=\"button\"\n class=\"solaris-toast__countdown-toggle\"\n (click)=\"togglePause()\"\n >\n {{ pauseButtonLabel() }}\n </button>\n </div>\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Component, inject, input, computed, ChangeDetectionStrategy, } from '@angular/core';
|
|
2
|
+
import { SolarisToastComponent } from '../component/toast.component';
|
|
3
|
+
import { SolarisToastService } from '../service/toast.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class SolarisToastContainerComponent {
|
|
6
|
+
toastService = inject(SolarisToastService);
|
|
7
|
+
position = input('bottom-center', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
|
|
8
|
+
entries = computed(() => this.toastService
|
|
9
|
+
.entries()
|
|
10
|
+
.filter((e) => e.resolvedPosition === this.position()), ...(ngDevMode ? [{ debugName: "entries" }] : /* istanbul ignore next */ []));
|
|
11
|
+
dismiss(id) {
|
|
12
|
+
this.toastService.dismiss(id);
|
|
13
|
+
}
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: SolarisToastContainerComponent, isStandalone: true, selector: "solaris-toast-container", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-position": "position()" }, classAttribute: "solaris-toast-container" }, ngImport: i0, template: "@for (entry of entries(); track entry.id) {\n <solaris-toast [entry]=\"entry\" (dismiss)=\"dismiss($event)\" />\n}\n", styles: [":host{position:fixed;z-index:var(--solaris-toast-z-index, var(--solaris-z-index-toast, 500));display:flex;flex-direction:column;gap:var(--solaris-toast-gap, var(--solaris-spacing-3));pointer-events:none;box-sizing:border-box;max-height:100dvh;overflow:hidden;padding:var(--solaris-spacing-4);inset:0}:host([data-position=top-start]){align-items:flex-start;justify-content:flex-start}:host([data-position=top-center]){align-items:center;justify-content:flex-start}:host([data-position=top-end]){align-items:flex-end;justify-content:flex-start}:host([data-position=bottom-start]){align-items:flex-start;justify-content:flex-end}:host([data-position=bottom-center]){align-items:center;justify-content:flex-end}:host([data-position=bottom-end]){align-items:flex-end;justify-content:flex-end}@media(max-width:640px){:host{padding:var(--solaris-spacing-2);max-width:100vw;width:100%}:host([data-position=top-start]),:host([data-position=top-center]),:host([data-position=top-end]){align-items:stretch}:host([data-position=bottom-start]),:host([data-position=bottom-center]),:host([data-position=bottom-end]){align-items:stretch}}\n"], dependencies: [{ kind: "component", type: SolarisToastComponent, selector: "solaris-toast", inputs: ["entry"], outputs: ["dismiss"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SolarisToastContainerComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'solaris-toast-container', standalone: true, imports: [SolarisToastComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
20
|
+
class: 'solaris-toast-container',
|
|
21
|
+
'[attr.data-position]': 'position()',
|
|
22
|
+
}, template: "@for (entry of entries(); track entry.id) {\n <solaris-toast [entry]=\"entry\" (dismiss)=\"dismiss($event)\" />\n}\n", styles: [":host{position:fixed;z-index:var(--solaris-toast-z-index, var(--solaris-z-index-toast, 500));display:flex;flex-direction:column;gap:var(--solaris-toast-gap, var(--solaris-spacing-3));pointer-events:none;box-sizing:border-box;max-height:100dvh;overflow:hidden;padding:var(--solaris-spacing-4);inset:0}:host([data-position=top-start]){align-items:flex-start;justify-content:flex-start}:host([data-position=top-center]){align-items:center;justify-content:flex-start}:host([data-position=top-end]){align-items:flex-end;justify-content:flex-start}:host([data-position=bottom-start]){align-items:flex-start;justify-content:flex-end}:host([data-position=bottom-center]){align-items:center;justify-content:flex-end}:host([data-position=bottom-end]){align-items:flex-end;justify-content:flex-end}@media(max-width:640px){:host{padding:var(--solaris-spacing-2);max-width:100vw;width:100%}:host([data-position=top-start]),:host([data-position=top-center]),:host([data-position=top-end]){align-items:stretch}:host([data-position=bottom-start]),:host([data-position=bottom-center]),:host([data-position=bottom-end]){align-items:stretch}}\n"] }]
|
|
23
|
+
}], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }] } });
|
|
24
|
+
//# sourceMappingURL=toast-container.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast-container.component.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/feedback/toast/container/toast-container.component.ts","../../../../../../../../../packages/angular/src/lib/components/feedback/toast/container/toast-container.component.html"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;;AAc/D,MAAM,OAAO,8BAA8B;IACxB,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAEnD,QAAQ,GAAG,KAAK,CAAuB,eAAe,+EAAC,CAAC;IAExD,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAC/B,IAAI,CAAC,YAAY;SACd,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,8EACzD,CAAC;IAEQ,OAAO,CAAC,EAAU;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;wGAbU,8BAA8B;4FAA9B,8BAA8B,yUCxB3C,uHAGA,+pCDYY,qBAAqB;;4FASpB,8BAA8B;kBAZ1C,SAAS;+BACE,yBAAyB,cACvB,IAAI,WACP,CAAC,qBAAqB,CAAC,mBAGf,uBAAuB,CAAC,MAAM,QACzC;wBACJ,KAAK,EAAE,yBAAyB;wBAChC,sBAAsB,EAAE,YAAY;qBACrC","sourcesContent":["import {\n Component,\n inject,\n input,\n computed,\n ChangeDetectionStrategy,\n} from '@angular/core';\n\nimport { SolarisToastComponent } from '../component/toast.component';\nimport type { SolarisToastPosition } from '../model/toast.types';\nimport { SolarisToastService } from '../service/toast.service';\n\n@Component({\n selector: 'solaris-toast-container',\n standalone: true,\n imports: [SolarisToastComponent],\n templateUrl: './toast-container.component.html',\n styleUrls: ['./toast-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'solaris-toast-container',\n '[attr.data-position]': 'position()',\n },\n})\nexport class SolarisToastContainerComponent {\n private readonly toastService = inject(SolarisToastService);\n\n readonly position = input<SolarisToastPosition>('bottom-center');\n\n readonly entries = computed(() =>\n this.toastService\n .entries()\n .filter((e) => e.resolvedPosition === this.position()),\n );\n\n protected dismiss(id: string): void {\n this.toastService.dismiss(id);\n }\n}\n","@for (entry of entries(); track entry.id) {\n <solaris-toast [entry]=\"entry\" (dismiss)=\"dismiss($event)\" />\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=toast.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.types.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/feedback/toast/model/toast.types.ts"],"names":[],"mappings":"","sourcesContent":["export type SolarisToastPosition =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end';\n\nexport type SolarisToastAppearance = 'surface' | 'outline';\n\nexport type SolarisToastVariant =\n | 'neutral'\n | 'info'\n | 'success'\n | 'warning'\n | 'danger'\n | 'loading'\n | 'custom';\n\nexport type SolarisToastActionsAlign = 'start' | 'center' | 'end' | 'stretch';\n\nexport type SolarisToastIconSize = 'sm' | 'md' | 'lg';\n\nexport type SolarisToastMediaShape = 'circle' | 'rounded' | 'square';\n\nexport type SolarisToastCountdownMode = 'bar' | 'text' | 'both';\n\nexport interface SolarisToastAction {\n label: string;\n labelKey?: string;\n appearance?: 'solid' | 'outline' | 'ghost' | 'surface';\n color?: 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n closeOnClick?: boolean;\n disabled?: boolean;\n action: (toast: SolarisToastRef) => void;\n}\n\nexport interface SolarisToastOptions {\n id?: string;\n variant?: SolarisToastVariant;\n appearance?: SolarisToastAppearance;\n position?: SolarisToastPosition;\n title?: string;\n titleKey?: string;\n description?: string;\n descriptionKey?: string;\n icon?: string;\n iconDecorative?: boolean;\n closeable?: boolean;\n closeLabel?: string;\n closeLabelKey?: string;\n duration?: number;\n persistent?: boolean;\n progress?: number;\n showProgress?: boolean;\n actions?: SolarisToastAction[];\n data?: unknown;\n ariaLive?: 'polite' | 'assertive' | 'off';\n role?: 'status' | 'alert';\n expandable?: boolean;\n defaultExpanded?: boolean;\n maxCollapsedLines?: number;\n expandLabel?: string;\n expandLabelKey?: string;\n collapseLabel?: string;\n collapseLabelKey?: string;\n showCountdown?: boolean;\n showCountdownText?: boolean;\n countdownMode?: SolarisToastCountdownMode;\n actionsAlign?: SolarisToastActionsAlign;\n iconSize?: SolarisToastIconSize;\n mediaShape?: SolarisToastMediaShape;\n}\n\nexport interface SolarisToastConfig {\n position?: SolarisToastPosition;\n duration?: number;\n limit?: number;\n appearance?: SolarisToastAppearance;\n pauseOnHover?: boolean;\n pauseOnFocus?: boolean;\n newestOnTop?: boolean;\n showCountdown?: boolean;\n showCountdownText?: boolean;\n countdownMode?: SolarisToastCountdownMode;\n actionsAlign?: SolarisToastActionsAlign;\n iconSize?: SolarisToastIconSize;\n mediaShape?: SolarisToastMediaShape;\n}\n\nexport interface SolarisToastSetup {\n autoContainer?: boolean;\n}\n\nexport interface SolarisToastRef {\n id: string;\n dismiss(): void;\n update(patch: Partial<SolarisToastOptions>): void;\n}\n\nexport interface SolarisToastEntry {\n id: string;\n options: SolarisToastOptions;\n createdAt: number;\n resolvedVariant: SolarisToastVariant;\n resolvedAppearance: SolarisToastAppearance;\n resolvedPosition: SolarisToastPosition;\n resolvedDuration: number;\n resolvedPersistent: boolean;\n resolvedCloseable: boolean;\n resolvedAriaLive: 'polite' | 'assertive' | 'off';\n resolvedRole: 'status' | 'alert';\n resolvedIcon: string;\n resolvedTitle: string | undefined;\n resolvedDescription: string | undefined;\n resolvedCloseLabel: string;\n resolvedProgress: number | undefined;\n resolvedShowProgress: boolean;\n resolvedActions: SolarisToastOptions['actions'];\n resolvedExpandable: boolean;\n resolvedDefaultExpanded: boolean;\n resolvedMaxCollapsedLines: number;\n resolvedExpandLabel: string;\n resolvedCollapseLabel: string;\n resolvedShowCountdown: boolean;\n resolvedShowCountdownText: boolean;\n resolvedCountdownMode: SolarisToastCountdownMode;\n resolvedActionsAlign: SolarisToastActionsAlign;\n resolvedIconSize: SolarisToastIconSize;\n resolvedMediaShape: SolarisToastMediaShape;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SOLARIS_TOAST_CONFIG, SOLARIS_TOAST_DEFAULT_CONFIG, SOLARIS_TOAST_CONTAINER, } from '../token/toast.tokens';
|
|
2
|
+
import { SolarisToastService } from '../service/toast.service';
|
|
3
|
+
export function provideSolarisToast(config, setup) {
|
|
4
|
+
const merged = {
|
|
5
|
+
...SOLARIS_TOAST_DEFAULT_CONFIG,
|
|
6
|
+
...config,
|
|
7
|
+
};
|
|
8
|
+
return [
|
|
9
|
+
SolarisToastService,
|
|
10
|
+
{ provide: SOLARIS_TOAST_CONFIG, useValue: merged },
|
|
11
|
+
{
|
|
12
|
+
provide: SOLARIS_TOAST_CONTAINER,
|
|
13
|
+
useValue: setup?.autoContainer ?? true,
|
|
14
|
+
},
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=provide-solaris-toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provide-solaris-toast.js","sourceRoot":"","sources":["../../../../../../../../../packages/angular/src/lib/components/feedback/toast/provider/provide-solaris-toast.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,mBAAmB,CACjC,MAAoC,EACpC,KAAyB;IAEzB,MAAM,MAAM,GAAuB;QACjC,GAAG,4BAA4B;QAC/B,GAAG,MAAM;KACV,CAAC;IAEF,OAAO;QACL,mBAAmB;QACnB,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE;QACnD;YACE,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,KAAK,EAAE,aAAa,IAAI,IAAI;SACvC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { Provider } from '@angular/core';\n\nimport type {\n SolarisToastConfig,\n SolarisToastSetup,\n} from '../model/toast.types';\nimport {\n SOLARIS_TOAST_CONFIG,\n SOLARIS_TOAST_DEFAULT_CONFIG,\n SOLARIS_TOAST_CONTAINER,\n} from '../token/toast.tokens';\nimport { SolarisToastService } from '../service/toast.service';\n\nexport function provideSolarisToast(\n config?: Partial<SolarisToastConfig>,\n setup?: SolarisToastSetup,\n): Provider[] {\n const merged: SolarisToastConfig = {\n ...SOLARIS_TOAST_DEFAULT_CONFIG,\n ...config,\n };\n\n return [\n SolarisToastService,\n { provide: SOLARIS_TOAST_CONFIG, useValue: merged },\n {\n provide: SOLARIS_TOAST_CONTAINER,\n useValue: setup?.autoContainer ?? true,\n },\n ];\n}\n"]}
|