@hermes-ui/angular 0.1.5 → 0.1.7
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/README.md +52 -52
- package/button/_properties.buttons.scss +387 -387
- package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +28 -28
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-menu.mjs +8 -8
- package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-testing.mjs +78 -78
- package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +1 -1
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-button.mjs +74 -74
- package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-card.mjs +48 -0
- package/fesm2022/hermes-ui-angular-card.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs +926 -926
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs +114 -114
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs +12 -12
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-data.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-divider.mjs +46 -0
- package/fesm2022/hermes-ui-angular-divider.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs +16 -16
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +50 -50
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs +126 -126
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs +46 -46
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +375 -375
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs +190 -190
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-input.mjs +52 -52
- package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs +38 -38
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs +80 -80
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-password.mjs +58 -58
- package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-radio.mjs +50 -50
- package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-range.mjs +44 -44
- package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-select.mjs +8 -8
- package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs +38 -38
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-nav.mjs +46 -46
- package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs +146 -146
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +31 -3
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-pagination.mjs +116 -0
- package/fesm2022/hermes-ui-angular-pagination.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-common.mjs +26 -3
- package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs +66 -66
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +10 -10
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-toast.mjs +4 -4
- package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular-wizard.mjs +56 -56
- package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
- package/fesm2022/hermes-ui-angular.mjs +16 -3
- package/fesm2022/hermes-ui-angular.mjs.map +1 -1
- package/hermes-ui.scss +7 -7
- package/layout/vertical-nav/_mixins.vertical-nav.scss +3 -7
- package/layout/vertical-nav/_properties.vertical-nav.scss +10 -5
- package/layout/vertical-nav/_variables.vertical-nav.scss +2 -0
- package/layout/vertical-nav/_vertical-nav.clarity.scss +14 -0
- package/package.json +13 -1
- package/popover/dropdown/_dropdown.clarity.scss +8 -7
- package/popover/dropdown/_menu-mixins.clarity.scss +22 -6
- package/popover/dropdown/_properties.dropdown.scss +20 -0
- package/popover/dropdown/_variables.dropdown.scss +7 -0
- package/toast/README.md +65 -65
- package/toast/_properties.toast.scss +56 -56
- package/toast/_toast.clarity.scss +190 -190
- package/toast/_variables.toast.scss +33 -33
- package/types/hermes-ui-angular-card.d.ts +24 -0
- package/types/hermes-ui-angular-card.d.ts.map +1 -0
- package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -1
- package/types/hermes-ui-angular-divider.d.ts +20 -0
- package/types/hermes-ui-angular-divider.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts +11 -1
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
- package/types/hermes-ui-angular-pagination.d.ts +52 -0
- package/types/hermes-ui-angular-pagination.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-common.d.ts +4 -3
- package/types/hermes-ui-angular-popover-common.d.ts.map +1 -1
- package/types/hermes-ui-angular-wizard.d.ts.map +1 -1
- package/types/hermes-ui-angular.d.ts +23 -17
- package/types/hermes-ui-angular.d.ts.map +1 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ViewEncapsulation, Component, Input, NgModule } from '@angular/core';
|
|
3
|
+
import { HermesIcon } from '@hermes-ui/angular/icon';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
7
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
8
|
+
* This software is released under MIT license.
|
|
9
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @beta This mirrors the `@beta` status of `hermes-pagination` in `@hermes-ui/core` - the API may still change.
|
|
13
|
+
*
|
|
14
|
+
* Lays out pagination controls (`<hermes-pagination-button>`, a page indicator, an optional
|
|
15
|
+
* jump-to-page `hermesInput`) in a row. Always provide an `aria-label` describing what is being paginated.
|
|
16
|
+
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <hermes-pagination aria-label="Pagination">
|
|
19
|
+
* <hermes-pagination-button action="first" ariaLabel="First page" [disabled]="page === 1"></hermes-pagination-button>
|
|
20
|
+
* <hermes-pagination-button action="prev" ariaLabel="Previous page" [disabled]="page === 1"></hermes-pagination-button>
|
|
21
|
+
* <span aria-label="current page">{{ page }} / {{ totalPages }}</span>
|
|
22
|
+
* <hermes-pagination-button action="next" ariaLabel="Next page" [disabled]="page === totalPages"></hermes-pagination-button>
|
|
23
|
+
* <hermes-pagination-button action="last" ariaLabel="Last page" [disabled]="page === totalPages"></hermes-pagination-button>
|
|
24
|
+
* </hermes-pagination>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
class HermesPagination {
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: HermesPagination, isStandalone: true, selector: "hermes-pagination", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{--color: var(--hermes-global-typography-color-500, black);--font-size: var(--hermes-global-typography-font-size-3, .8125rem);--action-color: var(--color);display:flex;align-items:center;flex-wrap:nowrap;gap:var(--hermes-global-space-4);color:var(--color);font-size:var(--font-size)}::slotted(hermes-input[hermes-pagination-number]){--background: var(--hermes-alias-object-container-background);--border-radius: var(--hermes-alias-object-border-radius-100);--border: var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);--font-size: var(--hermes-global-typography-font-size-3, .8125rem);--text-align: center}::slotted(span){display:block}::slotted(hermes-pagination-button:not([disabled])){--color: var(--action-color)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ExperimentalIsolatedShadowDom }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPagination, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ selector: 'hermes-pagination', template: `<ng-content></ng-content>`, encapsulation: ViewEncapsulation.ExperimentalIsolatedShadowDom, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{--color: var(--hermes-global-typography-color-500, black);--font-size: var(--hermes-global-typography-font-size-3, .8125rem);--action-color: var(--color);display:flex;align-items:center;flex-wrap:nowrap;gap:var(--hermes-global-space-4);color:var(--color);font-size:var(--font-size)}::slotted(hermes-input[hermes-pagination-number]){--background: var(--hermes-alias-object-container-background);--border-radius: var(--hermes-alias-object-border-radius-100);--border: var(--hermes-alias-object-border-width-100) solid var(--hermes-alias-object-border-color);--font-size: var(--hermes-global-typography-font-size-3, .8125rem);--text-align: center}::slotted(span){display:block}::slotted(hermes-pagination-button:not([disabled])){--color: var(--action-color)}\n"] }]
|
|
34
|
+
}] });
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
38
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
39
|
+
* This software is released under MIT license.
|
|
40
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
41
|
+
*/
|
|
42
|
+
// Mirrors getPaginationIconConfig() in @hermes-ui/core's pagination/utils.ts.
|
|
43
|
+
const ICON_CONFIG = {
|
|
44
|
+
first: { shape: 'step-forward-2', direction: 'down' },
|
|
45
|
+
prev: { shape: 'angle', direction: 'left' },
|
|
46
|
+
next: { shape: 'angle', direction: 'right' },
|
|
47
|
+
last: { shape: 'step-forward-2', direction: 'up' },
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* @beta Mirrors the `@beta` status of `hermes-pagination-button` in `@hermes-ui/core`.
|
|
51
|
+
*
|
|
52
|
+
* An icon-only action button meant to sit inside `<hermes-pagination>`. Always set `ariaLabel`
|
|
53
|
+
* (e.g. "First page", "Previous page") since the button carries no visible text.
|
|
54
|
+
*/
|
|
55
|
+
class HermesPaginationButton {
|
|
56
|
+
constructor() {
|
|
57
|
+
this.action = 'next';
|
|
58
|
+
this.disabled = false;
|
|
59
|
+
}
|
|
60
|
+
get icon() {
|
|
61
|
+
return ICON_CONFIG[this.action] ?? { shape: 'ellipsis-vertical', direction: 'up' };
|
|
62
|
+
}
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: HermesPaginationButton, isStandalone: true, selector: "hermes-pagination-button", inputs: { action: "action", disabled: "disabled", ariaLabel: "ariaLabel" }, ngImport: i0, template: `
|
|
65
|
+
<button type="button" class="private-host" [disabled]="disabled" [attr.aria-label]="ariaLabel">
|
|
66
|
+
<hermes-icon [shape]="icon.shape" [direction]="icon.direction"></hermes-icon>
|
|
67
|
+
</button>
|
|
68
|
+
`, isInline: true, styles: [":host{--icon-size: var(--hermes-global-space-7);--color: var(--hermes-global-typography-color-300, hsl(198, 23%, 23%));--color-hover: var(--hermes-alias-object-interaction-color-hover);--color-active: var(--hermes-alias-object-interaction-color-active);--color-disabled: var(--hermes-alias-object-interaction-color-disabled);--outline: var(--hermes-alias-object-interaction-outline);--outline-offset: var(--hermes-alias-object-interaction-outline-offset);display:inline-block}.private-host{display:flex;align-items:center;justify-content:center;min-width:var(--icon-size);min-height:var(--icon-size);padding:0;border:none;background:transparent;color:var(--color);cursor:pointer}.private-host:hover:not(:disabled){color:var(--color-hover)}.private-host:active:not(:disabled){color:var(--color-active);transform:translateY(1px)}.private-host:disabled{color:var(--color-disabled);cursor:default}.private-host:focus-visible{outline:var(--outline);outline-offset:var(--outline-offset)}.private-host hermes-icon{width:var(--icon-size);height:var(--icon-size);pointer-events:none}\n"], dependencies: [{ kind: "component", type: HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.ExperimentalIsolatedShadowDom }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationButton, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'hermes-pagination-button', template: `
|
|
73
|
+
<button type="button" class="private-host" [disabled]="disabled" [attr.aria-label]="ariaLabel">
|
|
74
|
+
<hermes-icon [shape]="icon.shape" [direction]="icon.direction"></hermes-icon>
|
|
75
|
+
</button>
|
|
76
|
+
`, encapsulation: ViewEncapsulation.ExperimentalIsolatedShadowDom, changeDetection: ChangeDetectionStrategy.OnPush, imports: [HermesIcon], styles: [":host{--icon-size: var(--hermes-global-space-7);--color: var(--hermes-global-typography-color-300, hsl(198, 23%, 23%));--color-hover: var(--hermes-alias-object-interaction-color-hover);--color-active: var(--hermes-alias-object-interaction-color-active);--color-disabled: var(--hermes-alias-object-interaction-color-disabled);--outline: var(--hermes-alias-object-interaction-outline);--outline-offset: var(--hermes-alias-object-interaction-outline-offset);display:inline-block}.private-host{display:flex;align-items:center;justify-content:center;min-width:var(--icon-size);min-height:var(--icon-size);padding:0;border:none;background:transparent;color:var(--color);cursor:pointer}.private-host:hover:not(:disabled){color:var(--color-hover)}.private-host:active:not(:disabled){color:var(--color-active);transform:translateY(1px)}.private-host:disabled{color:var(--color-disabled);cursor:default}.private-host:focus-visible{outline:var(--outline);outline-offset:var(--outline-offset)}.private-host hermes-icon{width:var(--icon-size);height:var(--icon-size);pointer-events:none}\n"] }]
|
|
77
|
+
}], propDecorators: { action: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], disabled: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], ariaLabel: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}] } });
|
|
84
|
+
|
|
85
|
+
/*
|
|
86
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
87
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
88
|
+
* This software is released under MIT license.
|
|
89
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
90
|
+
*/
|
|
91
|
+
class HermesPaginationModule {
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
93
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationModule, imports: [HermesPagination, HermesPaginationButton], exports: [HermesPagination, HermesPaginationButton] }); }
|
|
94
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationModule, imports: [HermesPaginationButton] }); }
|
|
95
|
+
}
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPaginationModule, decorators: [{
|
|
97
|
+
type: NgModule,
|
|
98
|
+
args: [{
|
|
99
|
+
imports: [HermesPagination, HermesPaginationButton],
|
|
100
|
+
exports: [HermesPagination, HermesPaginationButton],
|
|
101
|
+
}]
|
|
102
|
+
}] });
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
106
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
107
|
+
* This software is released under MIT license.
|
|
108
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
109
|
+
*/
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Generated bundle index. Do not edit.
|
|
113
|
+
*/
|
|
114
|
+
|
|
115
|
+
export { HermesPagination, HermesPaginationButton, HermesPaginationModule };
|
|
116
|
+
//# sourceMappingURL=hermes-ui-angular-pagination.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hermes-ui-angular-pagination.mjs","sources":["../../../pagination/pagination.ts","../../../pagination/pagination-button.ts","../../../pagination/pagination.module.ts","../../../pagination/index.ts","../../../pagination/hermes-ui-angular-pagination.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n/**\r\n * @beta This mirrors the `@beta` status of `hermes-pagination` in `@hermes-ui/core` - the API may still change.\r\n *\r\n * Lays out pagination controls (`<hermes-pagination-button>`, a page indicator, an optional\r\n * jump-to-page `hermesInput`) in a row. Always provide an `aria-label` describing what is being paginated.\r\n *\r\n * ```html\r\n * <hermes-pagination aria-label=\"Pagination\">\r\n * <hermes-pagination-button action=\"first\" ariaLabel=\"First page\" [disabled]=\"page === 1\"></hermes-pagination-button>\r\n * <hermes-pagination-button action=\"prev\" ariaLabel=\"Previous page\" [disabled]=\"page === 1\"></hermes-pagination-button>\r\n * <span aria-label=\"current page\">{{ page }} / {{ totalPages }}</span>\r\n * <hermes-pagination-button action=\"next\" ariaLabel=\"Next page\" [disabled]=\"page === totalPages\"></hermes-pagination-button>\r\n * <hermes-pagination-button action=\"last\" ariaLabel=\"Last page\" [disabled]=\"page === totalPages\"></hermes-pagination-button>\r\n * </hermes-pagination>\r\n * ```\r\n */\r\n@Component({\r\n selector: 'hermes-pagination',\r\n template: `<ng-content></ng-content>`,\r\n styleUrls: ['./pagination.component.scss'],\r\n encapsulation: ViewEncapsulation.ExperimentalIsolatedShadowDom,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HermesPagination {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { HermesIcon } from '@hermes-ui/angular/icon';\r\n\r\nexport type HermesPaginationAction = 'first' | 'prev' | 'next' | 'last';\r\n\r\ninterface PaginationIconConfig {\r\n shape: string;\r\n direction: 'up' | 'right' | 'down' | 'left';\r\n}\r\n\r\n// Mirrors getPaginationIconConfig() in @hermes-ui/core's pagination/utils.ts.\r\nconst ICON_CONFIG: Record<HermesPaginationAction, PaginationIconConfig> = {\r\n first: { shape: 'step-forward-2', direction: 'down' },\r\n prev: { shape: 'angle', direction: 'left' },\r\n next: { shape: 'angle', direction: 'right' },\r\n last: { shape: 'step-forward-2', direction: 'up' },\r\n};\r\n\r\n/**\r\n * @beta Mirrors the `@beta` status of `hermes-pagination-button` in `@hermes-ui/core`.\r\n *\r\n * An icon-only action button meant to sit inside `<hermes-pagination>`. Always set `ariaLabel`\r\n * (e.g. \"First page\", \"Previous page\") since the button carries no visible text.\r\n */\r\n@Component({\r\n selector: 'hermes-pagination-button',\r\n template: `\r\n <button type=\"button\" class=\"private-host\" [disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\">\r\n <hermes-icon [shape]=\"icon.shape\" [direction]=\"icon.direction\"></hermes-icon>\r\n </button>\r\n `,\r\n styleUrls: ['./pagination-button.component.scss'],\r\n encapsulation: ViewEncapsulation.ExperimentalIsolatedShadowDom,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [HermesIcon],\r\n})\r\nexport class HermesPaginationButton {\r\n @Input() action: HermesPaginationAction = 'next';\r\n @Input() disabled = false;\r\n @Input() ariaLabel: string;\r\n\r\n get icon(): PaginationIconConfig {\r\n return ICON_CONFIG[this.action] ?? { shape: 'ellipsis-vertical', direction: 'up' };\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { HermesPaginationButton } from './pagination-button';\r\nimport { HermesPagination } from './pagination';\r\n\r\n@NgModule({\r\n imports: [HermesPagination, HermesPaginationButton],\r\n exports: [HermesPagination, HermesPaginationButton],\r\n})\r\nexport class HermesPaginationModule {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './pagination';\r\nexport * from './pagination-button';\r\nexport * from './pagination.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -577,7 +577,10 @@ function getContentPosition(key) {
|
|
|
577
577
|
*/
|
|
578
578
|
/** @dynamic */
|
|
579
579
|
class HermesPopoverContent {
|
|
580
|
-
constructor(element, container, template, overlayContainer, parent, overlay, popoverService, zone, platformId
|
|
580
|
+
constructor(element, container, template, overlayContainer, parent, overlay, popoverService, zone, platformId,
|
|
581
|
+
// Host directive, so this resolves to the SAME change detector as whatever
|
|
582
|
+
// component hosts it (HermesSelectContent, HermesDropdownMenu, etc).
|
|
583
|
+
changeDetectorRef) {
|
|
581
584
|
this.container = container;
|
|
582
585
|
this.template = template;
|
|
583
586
|
this.parent = parent;
|
|
@@ -585,6 +588,7 @@ class HermesPopoverContent {
|
|
|
585
588
|
this.popoverService = popoverService;
|
|
586
589
|
this.zone = zone;
|
|
587
590
|
this.platformId = platformId;
|
|
591
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
588
592
|
this._outsideClickClose = true;
|
|
589
593
|
this._scrollToClose = false;
|
|
590
594
|
this.popoverType = HermesPopoverType.DEFAULT;
|
|
@@ -687,6 +691,18 @@ class HermesPopoverContent {
|
|
|
687
691
|
else {
|
|
688
692
|
this.closePopover();
|
|
689
693
|
}
|
|
694
|
+
// `isOffScreen`/`is-off-screen`-style host bindings on the component hosting this
|
|
695
|
+
// directive (HermesSelectContent, HermesDropdownMenu, HermesSignpostContent) read
|
|
696
|
+
// `popoverService.open` directly, not through a signal or an Input - Angular has no
|
|
697
|
+
// way to know that value changed on its own. The event that flips it is usually a
|
|
698
|
+
// raw CDK-registered document listener (OverlayOutsideClickDispatcher), not a
|
|
699
|
+
// compiled Angular template event binding, so it never marks this component (or its
|
|
700
|
+
// OnPush ancestors) dirty by itself. Without this, closing/reopening a popover whose
|
|
701
|
+
// OnPush ancestor chain isn't independently marked dirty by something else in the
|
|
702
|
+
// same tick (e.g. a sibling value change) leaves the just-closed panel's host
|
|
703
|
+
// bindings stale: still `position: static` in its original spot instead of the
|
|
704
|
+
// off-screen-fixed placement `isOffScreen` is supposed to apply once closed.
|
|
705
|
+
this.changeDetectorRef.markForCheck();
|
|
690
706
|
});
|
|
691
707
|
}
|
|
692
708
|
ngOnDestroy() {
|
|
@@ -901,6 +917,13 @@ class HermesPopoverContent {
|
|
|
901
917
|
block: 'nearest',
|
|
902
918
|
inline: 'nearest',
|
|
903
919
|
});
|
|
920
|
+
// scrollIntoView() can itself move the page (e.g. the origin was partially hidden
|
|
921
|
+
// after a prior scroll), which happens after the overlay was already attached and
|
|
922
|
+
// positioned above. The scroll listeners that would normally catch this and
|
|
923
|
+
// reposition are only registered in the setTimeout below - too late for this
|
|
924
|
+
// specific scroll - so without this the panel is left floating at the pre-scroll
|
|
925
|
+
// coordinates instead of anchored to the origin's now-current position.
|
|
926
|
+
this.overlayRef.updatePosition();
|
|
904
927
|
this.setupIntersectionObserver();
|
|
905
928
|
}
|
|
906
929
|
setTimeout(() => {
|
|
@@ -1024,7 +1047,7 @@ class HermesPopoverContent {
|
|
|
1024
1047
|
}
|
|
1025
1048
|
return popover;
|
|
1026
1049
|
}
|
|
1027
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPopoverContent, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef, optional: true }, { token: i1.OverlayContainer }, { token: HermesPopoverContent, optional: true, skipSelf: true }, { token: i1.Overlay }, { token: HermesPopoverService }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1050
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPopoverContent, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef, optional: true }, { token: i1.OverlayContainer }, { token: HermesPopoverContent, optional: true, skipSelf: true }, { token: i1.Overlay }, { token: HermesPopoverService }, { token: i0.NgZone }, { token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1028
1051
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.22", type: HermesPopoverContent, isStandalone: true, selector: "[hermesPopoverContent]", inputs: { open: ["hermesPopoverContent", "open"], contentAt: ["hermesPopoverContentAt", "contentAt"], availablePositions: ["hermesPopoverContentAvailablePositions", "availablePositions"], contentType: ["hermesPopoverContentType", "contentType"], outsideClickClose: ["hermesPopoverContentOutsideClickToClose", "outsideClickClose"], scrollToClose: ["hermesPopoverContentScrollToClose", "scrollToClose"], contentOrigin: ["hermesPopoverContentOrigin", "contentOrigin"] }, ngImport: i0 }); }
|
|
1029
1052
|
}
|
|
1030
1053
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesPopoverContent, decorators: [{
|
|
@@ -1044,7 +1067,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
1044
1067
|
}] }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
|
1045
1068
|
type: Inject,
|
|
1046
1069
|
args: [PLATFORM_ID]
|
|
1047
|
-
}] }], propDecorators: { open: [{
|
|
1070
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { open: [{
|
|
1048
1071
|
type: Input,
|
|
1049
1072
|
args: ['hermesPopoverContent']
|
|
1050
1073
|
}], contentAt: [{
|