The deprecation cleanup set @EqualsAndHashCode(callSuper = true) on AlarmComment,
so equals/hashCode now include the BaseData id and createdTime. The delete tests
built the expected comment via a fresh builder (no id), which no longer matches the
server-generated deletion comment (which reuses the original comment id).
Mutate the original alarm comment (already carrying the correct id/createdTime) into
the expected SYSTEM deletion comment instead of building a fresh one.
Forward-merge of lts-4.2 into lts-4.3, bringing the deprecation-warning
cleanups (#15487, #15491, #15499, #15503, #15504, #15505, #15509, #15511,
#15512, #15515, #15517, #15522) in as real ancestry rather than the earlier
copy-paste (#15661).
Conflicts resolved toward the reviewed lts-4.2 form for shared code
(explicit @EqualsAndHashCode(callSuper=true), typed StringUtils/removeStart,
imported test annotations). lts-4.3-only implementations kept as-is
(calculated-field state classes, native CF repository); tests removed on
lts-4.3 (CalculatedFieldLinkDataValidatorTest, DefaultDataUpdateServiceTest)
stay removed.
PROD-followup on the new-menu review: both #menuPopover template refs in
UserMenuComponent's template resolved to only one popover instance, so
menuPopover?.hide() inside the shared userMenuTpl closed only one of the
two mutually-exclusive trigger buttons (they swap via lt-lg media query).
Rename to #menuPopoverFull / #menuPopoverIcon and call .hide() on both
from the shared Account/Logout menu items so whichever button is visible
for the current breakpoint always closes cleanly.
Also drop legacy commented-out selectors in menu-toggle.component.scss
and tighten HomeService.toggleSideBar to EventEmitter<void>.
Sweep every dialog-context <mat-toolbar color="primary"> (105 toolbars across
104 files) to <mat-toolbar class="tb-dialog-header">, preserving any existing
class list. Add a matching .tb-dialog-header rule to styles.scss with a
1px rgba(0,0,0,0.12) bottom border. Table row-selection toolbars
(mat-mdc-table-toolbar) and the app shell / dashboard-page primary toolbars
are intentionally left as-is. The two dialogs that placed a
tb-toggle-select in the header switch from appearance="fill-invert" to "fill"
now that the header is on a light background.
Follow-up to the EntityComponent sweep — ContactBasedComponent extends EntityComponent transitively, so tenant.component.html (4 buttons) and customer.component.html (8 buttons) were missed. Same one-for-one raised → stroked replacement inside the .tb-details-buttons block.
Switch every button inside .tb-details-buttons across all EntityComponent
templates (17 files, 102 buttons) from mat-raised-button to mat-stroked-button,
matching the device.component.html reference. Update the shared
.tb-details-buttons rule in styles.scss so outlined buttons inherit their
border color from the surrounding color context. copy-device-credentials
follows the same treatment and switches its host to display: contents so it
no longer takes layout space.
Drop hardcoded card-grid sizing and inline icon styles in the navigation-card / navigation-cards / home-links templates and stylesheets; tighten menu-models default seed map and menu-service helper accordingly.