@rivet-health/design-system 40.6.2 → 40.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/input/select/state.mjs +25 -13
- package/esm2020/lib/navigation/editable-heading/editable-heading.component.mjs +184 -0
- package/esm2020/lib/riv.module.mjs +6 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/rivet-health-design-system.mjs +208 -13
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +208 -13
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/navigation/editable-heading/editable-heading.component.d.ts +84 -0
- package/lib/riv.module.d.ts +78 -77
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -2064,12 +2064,19 @@ var RivSelect;
|
|
|
2064
2064
|
return this.byId.has(option.id);
|
|
2065
2065
|
}
|
|
2066
2066
|
add(option) {
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
// reference
|
|
2070
|
-
//
|
|
2071
|
-
//
|
|
2072
|
-
//
|
|
2067
|
+
const existing = this.byId.get(option.id);
|
|
2068
|
+
if (existing === option) {
|
|
2069
|
+
// Same object reference — nothing to update. Ancestor re-adds
|
|
2070
|
+
// during a selection snapshot hit this path repeatedly, so keeping
|
|
2071
|
+
// it O(1) is what prevents the tree-select N² blow-up seen in
|
|
2072
|
+
// RVT-25470.
|
|
2073
|
+
return this;
|
|
2074
|
+
}
|
|
2075
|
+
if (existing !== undefined) {
|
|
2076
|
+
// Different reference, same id — swap the stored ref while
|
|
2077
|
+
// preserving Set insertion order. The rebuild is O(N), but this
|
|
2078
|
+
// path is rare in practice (the hot ancestor-snapshot loop takes
|
|
2079
|
+
// the identity fast-path above).
|
|
2073
2080
|
const items = [...this].map(o => (o.id === option.id ? option : o));
|
|
2074
2081
|
this.byId.set(option.id, option);
|
|
2075
2082
|
super.clear();
|
|
@@ -2410,17 +2417,22 @@ var RivSelect;
|
|
|
2410
2417
|
const snapshot = new OptionSet(state.selection.selected);
|
|
2411
2418
|
const topLevelOptions = getTopLevelOptions(state.sourceOptionGroups);
|
|
2412
2419
|
const [parents] = getRelationshipMaps(topLevelOptions);
|
|
2413
|
-
//
|
|
2420
|
+
// Sibling leaves share ancestors, so once we've walked up through a
|
|
2421
|
+
// given parent id we can stop — anything above it has already been
|
|
2422
|
+
// added by a previous iteration. Without this short-circuit the loop
|
|
2423
|
+
// re-runs findOption (which is a full tree walk) once per shared
|
|
2424
|
+
// ancestor edge, which was the #2 hotspot behind OptionSet.add in
|
|
2425
|
+
// RVT-25470's profile.
|
|
2426
|
+
const visited = new Set();
|
|
2414
2427
|
for (const selectedOption of state.selection.selected) {
|
|
2415
|
-
let
|
|
2416
|
-
|
|
2417
|
-
|
|
2428
|
+
let parentId = parents.get(selectedOption.id);
|
|
2429
|
+
while (parentId !== undefined && !visited.has(parentId)) {
|
|
2430
|
+
visited.add(parentId);
|
|
2418
2431
|
const parentOption = findOption(topLevelOptions, parentId);
|
|
2419
2432
|
if (parentOption) {
|
|
2420
2433
|
snapshot.add(parentOption);
|
|
2421
2434
|
}
|
|
2422
|
-
|
|
2423
|
-
parentId = parents.get(currentId);
|
|
2435
|
+
parentId = parents.get(parentId);
|
|
2424
2436
|
}
|
|
2425
2437
|
}
|
|
2426
2438
|
return snapshot;
|
|
@@ -5413,6 +5425,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5413
5425
|
type: Input
|
|
5414
5426
|
}] } });
|
|
5415
5427
|
|
|
5428
|
+
/**
|
|
5429
|
+
* A borderless heading with a click-to-edit title and an optional
|
|
5430
|
+
* click-to-edit description, plus a projected slot for actions.
|
|
5431
|
+
*
|
|
5432
|
+
* Layout: `[title] | [description] [actions]`
|
|
5433
|
+
*
|
|
5434
|
+
* - Click the title to rename; click the description (or the ghost
|
|
5435
|
+
* "+ Add description" button when empty) to edit it.
|
|
5436
|
+
* - Only one of title or description can be edited at a time.
|
|
5437
|
+
* - While either is being edited, the `[actions]` slot is hidden so
|
|
5438
|
+
* projected controls don't compete with the edit affordance.
|
|
5439
|
+
*
|
|
5440
|
+
* Commit semantics: `titleChange` / `descriptionChange` fire when the user
|
|
5441
|
+
* commits — Enter, outside click, or the Check button — not on every
|
|
5442
|
+
* keystroke, and always on commit (even when the value is unchanged). The
|
|
5443
|
+
* "commit" framing over "change" is deliberate: consumers that persist on
|
|
5444
|
+
* commit (analytics, PATCH) treat the gesture itself as the event; those
|
|
5445
|
+
* that only care about diffs can compare `next === current` in the handler.
|
|
5446
|
+
* There is no cancel path.
|
|
5447
|
+
*
|
|
5448
|
+
* Outside-click commits (rather than cancels) to match the established DS
|
|
5449
|
+
* interaction pattern in `riv-date` and `riv-select`. If a future consumer
|
|
5450
|
+
* needs an abandon path, the soft first step is Escape-to-cancel rather
|
|
5451
|
+
* than changing outside-click's meaning.
|
|
5452
|
+
*
|
|
5453
|
+
* Value handling follows the same convention as `riv-text-field`: `[title]`
|
|
5454
|
+
* and `[description]` are treated as suggestions, not authoritative state.
|
|
5455
|
+
* On commit, the component keeps displaying the user's committed value,
|
|
5456
|
+
* and only overwrites its internal state when the parent explicitly sends
|
|
5457
|
+
* a different value. That lets the component demo out of the box (e.g. in
|
|
5458
|
+
* Storybook) without requiring a round trip through the parent.
|
|
5459
|
+
*
|
|
5460
|
+
* The component owns no border, background, or card chrome — consumers who
|
|
5461
|
+
* want a bordered container should wrap it.
|
|
5462
|
+
*
|
|
5463
|
+
* ```html
|
|
5464
|
+
* <riv-editable-heading
|
|
5465
|
+
* [title]="report.title"
|
|
5466
|
+
* [description]="report.description"
|
|
5467
|
+
* (titleChange)="onTitleCommit($event)"
|
|
5468
|
+
* (descriptionChange)="onDescriptionCommit($event)"
|
|
5469
|
+
* >
|
|
5470
|
+
* <riv-menu actions>
|
|
5471
|
+
* <ng-template #trigger>
|
|
5472
|
+
* <button rivButton [icon]="'MoreVertical'" [variant]="'ghost'"></button>
|
|
5473
|
+
* </ng-template>
|
|
5474
|
+
* <button riv-menu-item>Rename</button>
|
|
5475
|
+
* <button riv-menu-item>Duplicate</button>
|
|
5476
|
+
* </riv-menu>
|
|
5477
|
+
* <button rivButton actions [variant]="'primary'">Save</button>
|
|
5478
|
+
* </riv-editable-heading>
|
|
5479
|
+
* ```
|
|
5480
|
+
*/
|
|
5481
|
+
class EditableHeadingComponent {
|
|
5482
|
+
set title(v) {
|
|
5483
|
+
if (v !== this._title)
|
|
5484
|
+
this._title = v;
|
|
5485
|
+
}
|
|
5486
|
+
get title() {
|
|
5487
|
+
return this._title;
|
|
5488
|
+
}
|
|
5489
|
+
set description(v) {
|
|
5490
|
+
if (v !== this._description)
|
|
5491
|
+
this._description = v;
|
|
5492
|
+
}
|
|
5493
|
+
get description() {
|
|
5494
|
+
return this._description;
|
|
5495
|
+
}
|
|
5496
|
+
constructor(cdr, host) {
|
|
5497
|
+
this.cdr = cdr;
|
|
5498
|
+
this.host = host;
|
|
5499
|
+
// See the "Value handling" section of the class-level doc.
|
|
5500
|
+
this._title = '';
|
|
5501
|
+
this._description = '';
|
|
5502
|
+
this.titleMaxLength = 100;
|
|
5503
|
+
this.descriptionMaxLength = 300;
|
|
5504
|
+
this.titleChange = new EventEmitter();
|
|
5505
|
+
this.descriptionChange = new EventEmitter();
|
|
5506
|
+
this.mode = 'view';
|
|
5507
|
+
this.draftTitle = '';
|
|
5508
|
+
this.draftDescription = '';
|
|
5509
|
+
}
|
|
5510
|
+
get isEditing() {
|
|
5511
|
+
return this.mode !== 'view';
|
|
5512
|
+
}
|
|
5513
|
+
startEditingTitle() {
|
|
5514
|
+
this.draftTitle = this.title;
|
|
5515
|
+
this.mode = 'editingTitle';
|
|
5516
|
+
// Defer focus until Angular has rendered the input into the DOM.
|
|
5517
|
+
setTimeout(() => this.focusEnd(this.titleInputRef), 0);
|
|
5518
|
+
}
|
|
5519
|
+
startEditingDescription() {
|
|
5520
|
+
this.draftDescription = this.description;
|
|
5521
|
+
this.mode = 'editingDescription';
|
|
5522
|
+
setTimeout(() => this.focusEnd(this.descriptionInputRef), 0);
|
|
5523
|
+
}
|
|
5524
|
+
commitTitle() {
|
|
5525
|
+
if (this.mode !== 'editingTitle')
|
|
5526
|
+
return;
|
|
5527
|
+
// Title cannot be committed empty. The Check button is disabled in that
|
|
5528
|
+
// state; for Enter and outside-click we revert to the current title so
|
|
5529
|
+
// the user is never stuck in edit mode with a rejected value.
|
|
5530
|
+
if (!this.draftTitle) {
|
|
5531
|
+
this.mode = 'view';
|
|
5532
|
+
return;
|
|
5533
|
+
}
|
|
5534
|
+
const value = this.draftTitle;
|
|
5535
|
+
this._title = value;
|
|
5536
|
+
this.mode = 'view';
|
|
5537
|
+
this.titleChange.emit(value);
|
|
5538
|
+
}
|
|
5539
|
+
commitDescription() {
|
|
5540
|
+
if (this.mode !== 'editingDescription')
|
|
5541
|
+
return;
|
|
5542
|
+
const value = this.draftDescription;
|
|
5543
|
+
this._description = value;
|
|
5544
|
+
this.mode = 'view';
|
|
5545
|
+
this.descriptionChange.emit(value);
|
|
5546
|
+
}
|
|
5547
|
+
// Listens on `mousedown` (not `click`) so the check runs before Angular
|
|
5548
|
+
// re-renders the trigger element out of the DOM — otherwise
|
|
5549
|
+
// `host.contains(target)` returns false for a click that landed on the
|
|
5550
|
+
// now-removed `.title` / `.description` element. Same pattern as
|
|
5551
|
+
// `riv-date`.
|
|
5552
|
+
onDocumentMouseDown(target) {
|
|
5553
|
+
if (this.mode === 'view' || !(target instanceof Element))
|
|
5554
|
+
return;
|
|
5555
|
+
if (this.host.nativeElement.contains(target))
|
|
5556
|
+
return;
|
|
5557
|
+
if (this.mode === 'editingTitle') {
|
|
5558
|
+
this.commitTitle();
|
|
5559
|
+
}
|
|
5560
|
+
else if (this.mode === 'editingDescription') {
|
|
5561
|
+
this.commitDescription();
|
|
5562
|
+
}
|
|
5563
|
+
}
|
|
5564
|
+
// Focus with caret at end (rather than selecting all) so the user can
|
|
5565
|
+
// continue typing where the previous value left off.
|
|
5566
|
+
focusEnd(ref) {
|
|
5567
|
+
const el = ref?.nativeElement;
|
|
5568
|
+
if (!el)
|
|
5569
|
+
return;
|
|
5570
|
+
el.focus();
|
|
5571
|
+
const len = el.value.length;
|
|
5572
|
+
el.setSelectionRange(len, len);
|
|
5573
|
+
this.cdr.markForCheck();
|
|
5574
|
+
}
|
|
5575
|
+
}
|
|
5576
|
+
EditableHeadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditableHeadingComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
5577
|
+
EditableHeadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: EditableHeadingComponent, selector: "riv-editable-heading", inputs: { title: "title", description: "description", titleMaxLength: "titleMaxLength", descriptionMaxLength: "descriptionMaxLength" }, outputs: { titleChange: "titleChange", descriptionChange: "descriptionChange" }, host: { listeners: { "document:mousedown": "onDocumentMouseDown($event.target)" }, properties: { "class.editing": "this.isEditing" } }, viewQueries: [{ propertyName: "titleInputRef", first: true, predicate: ["titleInput"], descendants: true }, { propertyName: "descriptionInputRef", first: true, predicate: ["descriptionInput"], descendants: true }], ngImport: i0, template: "<div class=\"leading\">\n <ng-container [ngSwitch]=\"mode\">\n <!-- View mode -->\n <ng-container *ngSwitchDefault>\n <button\n type=\"button\"\n class=\"title\"\n [class.has-description]=\"description\"\n rivTruncate\n aria-label=\"Rename\"\n (click)=\"startEditingTitle()\"\n >\n {{ title || 'Untitled' }}\n </button>\n\n <div class=\"divider\"></div>\n\n <button\n *ngIf=\"description; else addDescription\"\n type=\"button\"\n class=\"description\"\n rivTruncate\n aria-label=\"Edit description\"\n (click)=\"startEditingDescription()\"\n >\n {{ description }}\n </button>\n\n <ng-template #addDescription>\n <div class=\"add-description-wrap\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"'Plus'\"\n [iconPosition]=\"'first'\"\n type=\"button\"\n (click)=\"startEditingDescription()\"\n >\n Add description\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Editing title -->\n <ng-container *ngSwitchCase=\"'editingTitle'\">\n <input\n #titleInput\n class=\"title-input\"\n type=\"text\"\n aria-label=\"Title\"\n [value]=\"draftTitle\"\n [attr.maxlength]=\"titleMaxLength\"\n (input)=\"draftTitle = titleInput.value\"\n (keydown.enter)=\"commitTitle()\"\n />\n <button\n rivButton\n type=\"button\"\n class=\"commit\"\n [variant]=\"'primary'\"\n [icon]=\"'Check'\"\n [disabled]=\"!draftTitle\"\n (click)=\"commitTitle()\"\n aria-label=\"Save title\"\n ></button>\n </ng-container>\n\n <!-- Editing description -->\n <ng-container *ngSwitchCase=\"'editingDescription'\">\n <input\n #descriptionInput\n class=\"description-input\"\n type=\"text\"\n aria-label=\"Description\"\n [value]=\"draftDescription\"\n [attr.maxlength]=\"descriptionMaxLength\"\n placeholder=\"Add a description\"\n (input)=\"draftDescription = descriptionInput.value\"\n (keydown.enter)=\"commitDescription()\"\n />\n <button\n rivButton\n type=\"button\"\n class=\"commit\"\n [variant]=\"'primary'\"\n [icon]=\"'Check'\"\n (click)=\"commitDescription()\"\n aria-label=\"Save description\"\n ></button>\n </ng-container>\n </ng-container>\n</div>\n\n<div class=\"actions\" *ngIf=\"!isEditing\">\n <ng-content select=\"[actions]\"></ng-content>\n</div>\n", styles: [":host{display:flex;align-items:stretch;gap:var(--size-large);min-height:calc(var(--base-grid-size) * 8);font:var(--body-medium)}.leading{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--size-small)}.title,.description{padding:0;border:none;background:none;text-align:left;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title{font:var(--stat-xsmall);line-height:calc(var(--base-grid-size) * 4.5);color:var(--type-light-high-contrast);max-width:100%}.title.has-description{width:-moz-fit-content;width:fit-content;max-width:50%;flex-shrink:0}.description{font:var(--input-small);line-height:calc(var(--base-grid-size) * 3.5);color:var(--type-light-low-contrast);flex:1 1 auto}.divider{align-self:stretch;border-right:var(--border-width) solid var(--border-light);margin:0 var(--base-grid-size) 0 0;flex-shrink:0}.add-description-wrap{flex-shrink:0}.title-input,.description-input{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);padding:var(--size-small) var(--size-medium);color:var(--type-light-high-contrast);outline:none;min-width:0}.title-input{font:var(--stat-xsmall);flex:1 1 auto}.description-input{font:var(--input-small);flex:1 1 auto}.title-input:focus,.description-input:focus{border-color:var(--purp-60)}.commit{flex-shrink:0}.actions{display:flex;align-items:center;gap:var(--size-small);flex-shrink:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditableHeadingComponent, decorators: [{
|
|
5579
|
+
type: Component,
|
|
5580
|
+
args: [{ selector: 'riv-editable-heading', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"leading\">\n <ng-container [ngSwitch]=\"mode\">\n <!-- View mode -->\n <ng-container *ngSwitchDefault>\n <button\n type=\"button\"\n class=\"title\"\n [class.has-description]=\"description\"\n rivTruncate\n aria-label=\"Rename\"\n (click)=\"startEditingTitle()\"\n >\n {{ title || 'Untitled' }}\n </button>\n\n <div class=\"divider\"></div>\n\n <button\n *ngIf=\"description; else addDescription\"\n type=\"button\"\n class=\"description\"\n rivTruncate\n aria-label=\"Edit description\"\n (click)=\"startEditingDescription()\"\n >\n {{ description }}\n </button>\n\n <ng-template #addDescription>\n <div class=\"add-description-wrap\">\n <button\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'xsmall'\"\n [icon]=\"'Plus'\"\n [iconPosition]=\"'first'\"\n type=\"button\"\n (click)=\"startEditingDescription()\"\n >\n Add description\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Editing title -->\n <ng-container *ngSwitchCase=\"'editingTitle'\">\n <input\n #titleInput\n class=\"title-input\"\n type=\"text\"\n aria-label=\"Title\"\n [value]=\"draftTitle\"\n [attr.maxlength]=\"titleMaxLength\"\n (input)=\"draftTitle = titleInput.value\"\n (keydown.enter)=\"commitTitle()\"\n />\n <button\n rivButton\n type=\"button\"\n class=\"commit\"\n [variant]=\"'primary'\"\n [icon]=\"'Check'\"\n [disabled]=\"!draftTitle\"\n (click)=\"commitTitle()\"\n aria-label=\"Save title\"\n ></button>\n </ng-container>\n\n <!-- Editing description -->\n <ng-container *ngSwitchCase=\"'editingDescription'\">\n <input\n #descriptionInput\n class=\"description-input\"\n type=\"text\"\n aria-label=\"Description\"\n [value]=\"draftDescription\"\n [attr.maxlength]=\"descriptionMaxLength\"\n placeholder=\"Add a description\"\n (input)=\"draftDescription = descriptionInput.value\"\n (keydown.enter)=\"commitDescription()\"\n />\n <button\n rivButton\n type=\"button\"\n class=\"commit\"\n [variant]=\"'primary'\"\n [icon]=\"'Check'\"\n (click)=\"commitDescription()\"\n aria-label=\"Save description\"\n ></button>\n </ng-container>\n </ng-container>\n</div>\n\n<div class=\"actions\" *ngIf=\"!isEditing\">\n <ng-content select=\"[actions]\"></ng-content>\n</div>\n", styles: [":host{display:flex;align-items:stretch;gap:var(--size-large);min-height:calc(var(--base-grid-size) * 8);font:var(--body-medium)}.leading{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:var(--size-small)}.title,.description{padding:0;border:none;background:none;text-align:left;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title{font:var(--stat-xsmall);line-height:calc(var(--base-grid-size) * 4.5);color:var(--type-light-high-contrast);max-width:100%}.title.has-description{width:-moz-fit-content;width:fit-content;max-width:50%;flex-shrink:0}.description{font:var(--input-small);line-height:calc(var(--base-grid-size) * 3.5);color:var(--type-light-low-contrast);flex:1 1 auto}.divider{align-self:stretch;border-right:var(--border-width) solid var(--border-light);margin:0 var(--base-grid-size) 0 0;flex-shrink:0}.add-description-wrap{flex-shrink:0}.title-input,.description-input{border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);padding:var(--size-small) var(--size-medium);color:var(--type-light-high-contrast);outline:none;min-width:0}.title-input{font:var(--stat-xsmall);flex:1 1 auto}.description-input{font:var(--input-small);flex:1 1 auto}.title-input:focus,.description-input:focus{border-color:var(--purp-60)}.commit{flex-shrink:0}.actions{display:flex;align-items:center;gap:var(--size-small);flex-shrink:0}\n"] }]
|
|
5581
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
5582
|
+
type: Input
|
|
5583
|
+
}], description: [{
|
|
5584
|
+
type: Input
|
|
5585
|
+
}], titleMaxLength: [{
|
|
5586
|
+
type: Input
|
|
5587
|
+
}], descriptionMaxLength: [{
|
|
5588
|
+
type: Input
|
|
5589
|
+
}], titleChange: [{
|
|
5590
|
+
type: Output
|
|
5591
|
+
}], descriptionChange: [{
|
|
5592
|
+
type: Output
|
|
5593
|
+
}], titleInputRef: [{
|
|
5594
|
+
type: ViewChild,
|
|
5595
|
+
args: ['titleInput']
|
|
5596
|
+
}], descriptionInputRef: [{
|
|
5597
|
+
type: ViewChild,
|
|
5598
|
+
args: ['descriptionInput']
|
|
5599
|
+
}], isEditing: [{
|
|
5600
|
+
type: HostBinding,
|
|
5601
|
+
args: ['class.editing']
|
|
5602
|
+
}], onDocumentMouseDown: [{
|
|
5603
|
+
type: HostListener,
|
|
5604
|
+
args: ['document:mousedown', ['$event.target']]
|
|
5605
|
+
}] } });
|
|
5606
|
+
|
|
5416
5607
|
/**
|
|
5417
5608
|
* Page header used to display the page/product the user is on.
|
|
5418
5609
|
*
|
|
@@ -15366,6 +15557,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
15366
15557
|
DialogComponent,
|
|
15367
15558
|
DollarsPipe,
|
|
15368
15559
|
DonutComponent,
|
|
15560
|
+
EditableHeadingComponent,
|
|
15369
15561
|
EditViewComponent,
|
|
15370
15562
|
FunnelChartComponent,
|
|
15371
15563
|
HelpComponent,
|
|
@@ -15463,6 +15655,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
15463
15655
|
DialogComponent,
|
|
15464
15656
|
DollarsPipe,
|
|
15465
15657
|
DonutComponent,
|
|
15658
|
+
EditableHeadingComponent,
|
|
15466
15659
|
EditViewComponent,
|
|
15467
15660
|
FunnelChartComponent,
|
|
15468
15661
|
HelpComponent,
|
|
@@ -15564,6 +15757,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15564
15757
|
DialogComponent,
|
|
15565
15758
|
DollarsPipe,
|
|
15566
15759
|
DonutComponent,
|
|
15760
|
+
EditableHeadingComponent,
|
|
15567
15761
|
EditViewComponent,
|
|
15568
15762
|
FunnelChartComponent,
|
|
15569
15763
|
HelpComponent,
|
|
@@ -15664,6 +15858,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15664
15858
|
DialogComponent,
|
|
15665
15859
|
DollarsPipe,
|
|
15666
15860
|
DonutComponent,
|
|
15861
|
+
EditableHeadingComponent,
|
|
15667
15862
|
EditViewComponent,
|
|
15668
15863
|
FunnelChartComponent,
|
|
15669
15864
|
HelpComponent,
|
|
@@ -15744,5 +15939,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15744
15939
|
* Generated bundle index. Do not edit.
|
|
15745
15940
|
*/
|
|
15746
15941
|
|
|
15747
|
-
export { ANIMATION_CONSTANTS, AllViewsModalComponent, AlphabeticFieldComponent, AutoFocusDirective, BadgeComponent, BannerActionComponent, BannerComponent, ButtonComponent, ButtonGroupComponent, CalloutComponent, CardCheckboxComponent, Chart, ChartComponent, CheckboxComponent, CurrencyFieldComponent, DataTableCellComponent, DataTableComponent, DataTableHeaderCellComponent, DataTableRowComponent, DateComponent, DatePipe, DateRangeComponent, DaysPipe, DialogComponent, DollarsPipe, DonutComponent, DownloadService, EditViewComponent, FunnelChartComponent, HelpComponent, HighlightComponent, IconComponent, InputLabelComponent, IssueComponent, LegendItemComponent, LinkComponent, LoadingComponent, LoadingCoverComponent, LockedTooltipDirective, MapIndicatorComponent, MentionsInputComponent, MenuComponent, MenuItemComponent, MetricComponent, MiniPieComponent, ModalComponent, NotificationBadgeComponent, NumberFieldComponent, NumberPipe, OptionGroupPipe, OverlayDirective, OverlayOutletComponent, PageHeaderComponent, PercentageFieldComponent, PercentagePipe, PermissionPickerComponent, PhoneFieldComponent, ProgressComponent, RadioComponent, RivModule, RivSelect, RivTable, RivViews, SVGTextTruncateDirective, SearchComponent, SearchSelectComponent, SelectComponent, SelectNodeComponent, SentenceCasePipe, SideSheetComponent, SimpleSelectComponent, SimpleTableCellComponent, SimpleTableComponent, SimpleTableHeaderCellComponent, SimpleTableRowComponent, SizeDirective, SmallCurrencyPipe, SrOnlyComponent, StackedColumnComponent, StackedRowComponent, SwitchCheckboxComponent, TabComponent, TableColumnSettingsComponent, TableColumnSettingsSideSheetComponent, TableComponent, TableCsvExportComponent, TableSearchColumnsComponent, TableSearchComponent, TabsComponent, TextFieldComponent, TextareaFieldComponent, TimeSeriesComponent, ToastActionComponent, ToastComponent, TooltipComponent, TooltipDirective, TrendComponent, TruncateComponent, ValidationMessageComponent, ViewMenuComponent, ViewsComponent, VisibilityDirective, ZeroStateComponent, toSentenceCase };
|
|
15942
|
+
export { ANIMATION_CONSTANTS, AllViewsModalComponent, AlphabeticFieldComponent, AutoFocusDirective, BadgeComponent, BannerActionComponent, BannerComponent, ButtonComponent, ButtonGroupComponent, CalloutComponent, CardCheckboxComponent, Chart, ChartComponent, CheckboxComponent, CurrencyFieldComponent, DataTableCellComponent, DataTableComponent, DataTableHeaderCellComponent, DataTableRowComponent, DateComponent, DatePipe, DateRangeComponent, DaysPipe, DialogComponent, DollarsPipe, DonutComponent, DownloadService, EditViewComponent, EditableHeadingComponent, FunnelChartComponent, HelpComponent, HighlightComponent, IconComponent, InputLabelComponent, IssueComponent, LegendItemComponent, LinkComponent, LoadingComponent, LoadingCoverComponent, LockedTooltipDirective, MapIndicatorComponent, MentionsInputComponent, MenuComponent, MenuItemComponent, MetricComponent, MiniPieComponent, ModalComponent, NotificationBadgeComponent, NumberFieldComponent, NumberPipe, OptionGroupPipe, OverlayDirective, OverlayOutletComponent, PageHeaderComponent, PercentageFieldComponent, PercentagePipe, PermissionPickerComponent, PhoneFieldComponent, ProgressComponent, RadioComponent, RivModule, RivSelect, RivTable, RivViews, SVGTextTruncateDirective, SearchComponent, SearchSelectComponent, SelectComponent, SelectNodeComponent, SentenceCasePipe, SideSheetComponent, SimpleSelectComponent, SimpleTableCellComponent, SimpleTableComponent, SimpleTableHeaderCellComponent, SimpleTableRowComponent, SizeDirective, SmallCurrencyPipe, SrOnlyComponent, StackedColumnComponent, StackedRowComponent, SwitchCheckboxComponent, TabComponent, TableColumnSettingsComponent, TableColumnSettingsSideSheetComponent, TableComponent, TableCsvExportComponent, TableSearchColumnsComponent, TableSearchComponent, TabsComponent, TextFieldComponent, TextareaFieldComponent, TimeSeriesComponent, ToastActionComponent, ToastComponent, TooltipComponent, TooltipDirective, TrendComponent, TruncateComponent, ValidationMessageComponent, ViewMenuComponent, ViewsComponent, VisibilityDirective, ZeroStateComponent, toSentenceCase };
|
|
15748
15943
|
//# sourceMappingURL=rivet-health-design-system.mjs.map
|