@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
|
@@ -2090,12 +2090,19 @@ var RivSelect;
|
|
|
2090
2090
|
return this.byId.has(option.id);
|
|
2091
2091
|
}
|
|
2092
2092
|
add(option) {
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
// reference
|
|
2096
|
-
//
|
|
2097
|
-
//
|
|
2098
|
-
//
|
|
2093
|
+
const existing = this.byId.get(option.id);
|
|
2094
|
+
if (existing === option) {
|
|
2095
|
+
// Same object reference — nothing to update. Ancestor re-adds
|
|
2096
|
+
// during a selection snapshot hit this path repeatedly, so keeping
|
|
2097
|
+
// it O(1) is what prevents the tree-select N² blow-up seen in
|
|
2098
|
+
// RVT-25470.
|
|
2099
|
+
return this;
|
|
2100
|
+
}
|
|
2101
|
+
if (existing !== undefined) {
|
|
2102
|
+
// Different reference, same id — swap the stored ref while
|
|
2103
|
+
// preserving Set insertion order. The rebuild is O(N), but this
|
|
2104
|
+
// path is rare in practice (the hot ancestor-snapshot loop takes
|
|
2105
|
+
// the identity fast-path above).
|
|
2099
2106
|
const items = [...this].map(o => (o.id === option.id ? option : o));
|
|
2100
2107
|
this.byId.set(option.id, option);
|
|
2101
2108
|
super.clear();
|
|
@@ -2394,17 +2401,22 @@ var RivSelect;
|
|
|
2394
2401
|
const snapshot = new OptionSet(state.selection.selected);
|
|
2395
2402
|
const topLevelOptions = getTopLevelOptions(state.sourceOptionGroups);
|
|
2396
2403
|
const [parents] = getRelationshipMaps(topLevelOptions);
|
|
2397
|
-
//
|
|
2404
|
+
// Sibling leaves share ancestors, so once we've walked up through a
|
|
2405
|
+
// given parent id we can stop — anything above it has already been
|
|
2406
|
+
// added by a previous iteration. Without this short-circuit the loop
|
|
2407
|
+
// re-runs findOption (which is a full tree walk) once per shared
|
|
2408
|
+
// ancestor edge, which was the #2 hotspot behind OptionSet.add in
|
|
2409
|
+
// RVT-25470's profile.
|
|
2410
|
+
const visited = new Set();
|
|
2398
2411
|
for (const selectedOption of state.selection.selected) {
|
|
2399
|
-
let
|
|
2400
|
-
|
|
2401
|
-
|
|
2412
|
+
let parentId = parents.get(selectedOption.id);
|
|
2413
|
+
while (parentId !== undefined && !visited.has(parentId)) {
|
|
2414
|
+
visited.add(parentId);
|
|
2402
2415
|
const parentOption = findOption(topLevelOptions, parentId);
|
|
2403
2416
|
if (parentOption) {
|
|
2404
2417
|
snapshot.add(parentOption);
|
|
2405
2418
|
}
|
|
2406
|
-
|
|
2407
|
-
parentId = parents.get(currentId);
|
|
2419
|
+
parentId = parents.get(parentId);
|
|
2408
2420
|
}
|
|
2409
2421
|
}
|
|
2410
2422
|
return snapshot;
|
|
@@ -5334,6 +5346,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5334
5346
|
type: Input
|
|
5335
5347
|
}] } });
|
|
5336
5348
|
|
|
5349
|
+
/**
|
|
5350
|
+
* A borderless heading with a click-to-edit title and an optional
|
|
5351
|
+
* click-to-edit description, plus a projected slot for actions.
|
|
5352
|
+
*
|
|
5353
|
+
* Layout: `[title] | [description] [actions]`
|
|
5354
|
+
*
|
|
5355
|
+
* - Click the title to rename; click the description (or the ghost
|
|
5356
|
+
* "+ Add description" button when empty) to edit it.
|
|
5357
|
+
* - Only one of title or description can be edited at a time.
|
|
5358
|
+
* - While either is being edited, the `[actions]` slot is hidden so
|
|
5359
|
+
* projected controls don't compete with the edit affordance.
|
|
5360
|
+
*
|
|
5361
|
+
* Commit semantics: `titleChange` / `descriptionChange` fire when the user
|
|
5362
|
+
* commits — Enter, outside click, or the Check button — not on every
|
|
5363
|
+
* keystroke, and always on commit (even when the value is unchanged). The
|
|
5364
|
+
* "commit" framing over "change" is deliberate: consumers that persist on
|
|
5365
|
+
* commit (analytics, PATCH) treat the gesture itself as the event; those
|
|
5366
|
+
* that only care about diffs can compare `next === current` in the handler.
|
|
5367
|
+
* There is no cancel path.
|
|
5368
|
+
*
|
|
5369
|
+
* Outside-click commits (rather than cancels) to match the established DS
|
|
5370
|
+
* interaction pattern in `riv-date` and `riv-select`. If a future consumer
|
|
5371
|
+
* needs an abandon path, the soft first step is Escape-to-cancel rather
|
|
5372
|
+
* than changing outside-click's meaning.
|
|
5373
|
+
*
|
|
5374
|
+
* Value handling follows the same convention as `riv-text-field`: `[title]`
|
|
5375
|
+
* and `[description]` are treated as suggestions, not authoritative state.
|
|
5376
|
+
* On commit, the component keeps displaying the user's committed value,
|
|
5377
|
+
* and only overwrites its internal state when the parent explicitly sends
|
|
5378
|
+
* a different value. That lets the component demo out of the box (e.g. in
|
|
5379
|
+
* Storybook) without requiring a round trip through the parent.
|
|
5380
|
+
*
|
|
5381
|
+
* The component owns no border, background, or card chrome — consumers who
|
|
5382
|
+
* want a bordered container should wrap it.
|
|
5383
|
+
*
|
|
5384
|
+
* ```html
|
|
5385
|
+
* <riv-editable-heading
|
|
5386
|
+
* [title]="report.title"
|
|
5387
|
+
* [description]="report.description"
|
|
5388
|
+
* (titleChange)="onTitleCommit($event)"
|
|
5389
|
+
* (descriptionChange)="onDescriptionCommit($event)"
|
|
5390
|
+
* >
|
|
5391
|
+
* <riv-menu actions>
|
|
5392
|
+
* <ng-template #trigger>
|
|
5393
|
+
* <button rivButton [icon]="'MoreVertical'" [variant]="'ghost'"></button>
|
|
5394
|
+
* </ng-template>
|
|
5395
|
+
* <button riv-menu-item>Rename</button>
|
|
5396
|
+
* <button riv-menu-item>Duplicate</button>
|
|
5397
|
+
* </riv-menu>
|
|
5398
|
+
* <button rivButton actions [variant]="'primary'">Save</button>
|
|
5399
|
+
* </riv-editable-heading>
|
|
5400
|
+
* ```
|
|
5401
|
+
*/
|
|
5402
|
+
class EditableHeadingComponent {
|
|
5403
|
+
set title(v) {
|
|
5404
|
+
if (v !== this._title)
|
|
5405
|
+
this._title = v;
|
|
5406
|
+
}
|
|
5407
|
+
get title() {
|
|
5408
|
+
return this._title;
|
|
5409
|
+
}
|
|
5410
|
+
set description(v) {
|
|
5411
|
+
if (v !== this._description)
|
|
5412
|
+
this._description = v;
|
|
5413
|
+
}
|
|
5414
|
+
get description() {
|
|
5415
|
+
return this._description;
|
|
5416
|
+
}
|
|
5417
|
+
constructor(cdr, host) {
|
|
5418
|
+
this.cdr = cdr;
|
|
5419
|
+
this.host = host;
|
|
5420
|
+
// See the "Value handling" section of the class-level doc.
|
|
5421
|
+
this._title = '';
|
|
5422
|
+
this._description = '';
|
|
5423
|
+
this.titleMaxLength = 100;
|
|
5424
|
+
this.descriptionMaxLength = 300;
|
|
5425
|
+
this.titleChange = new EventEmitter();
|
|
5426
|
+
this.descriptionChange = new EventEmitter();
|
|
5427
|
+
this.mode = 'view';
|
|
5428
|
+
this.draftTitle = '';
|
|
5429
|
+
this.draftDescription = '';
|
|
5430
|
+
}
|
|
5431
|
+
get isEditing() {
|
|
5432
|
+
return this.mode !== 'view';
|
|
5433
|
+
}
|
|
5434
|
+
startEditingTitle() {
|
|
5435
|
+
this.draftTitle = this.title;
|
|
5436
|
+
this.mode = 'editingTitle';
|
|
5437
|
+
// Defer focus until Angular has rendered the input into the DOM.
|
|
5438
|
+
setTimeout(() => this.focusEnd(this.titleInputRef), 0);
|
|
5439
|
+
}
|
|
5440
|
+
startEditingDescription() {
|
|
5441
|
+
this.draftDescription = this.description;
|
|
5442
|
+
this.mode = 'editingDescription';
|
|
5443
|
+
setTimeout(() => this.focusEnd(this.descriptionInputRef), 0);
|
|
5444
|
+
}
|
|
5445
|
+
commitTitle() {
|
|
5446
|
+
if (this.mode !== 'editingTitle')
|
|
5447
|
+
return;
|
|
5448
|
+
// Title cannot be committed empty. The Check button is disabled in that
|
|
5449
|
+
// state; for Enter and outside-click we revert to the current title so
|
|
5450
|
+
// the user is never stuck in edit mode with a rejected value.
|
|
5451
|
+
if (!this.draftTitle) {
|
|
5452
|
+
this.mode = 'view';
|
|
5453
|
+
return;
|
|
5454
|
+
}
|
|
5455
|
+
const value = this.draftTitle;
|
|
5456
|
+
this._title = value;
|
|
5457
|
+
this.mode = 'view';
|
|
5458
|
+
this.titleChange.emit(value);
|
|
5459
|
+
}
|
|
5460
|
+
commitDescription() {
|
|
5461
|
+
if (this.mode !== 'editingDescription')
|
|
5462
|
+
return;
|
|
5463
|
+
const value = this.draftDescription;
|
|
5464
|
+
this._description = value;
|
|
5465
|
+
this.mode = 'view';
|
|
5466
|
+
this.descriptionChange.emit(value);
|
|
5467
|
+
}
|
|
5468
|
+
// Listens on `mousedown` (not `click`) so the check runs before Angular
|
|
5469
|
+
// re-renders the trigger element out of the DOM — otherwise
|
|
5470
|
+
// `host.contains(target)` returns false for a click that landed on the
|
|
5471
|
+
// now-removed `.title` / `.description` element. Same pattern as
|
|
5472
|
+
// `riv-date`.
|
|
5473
|
+
onDocumentMouseDown(target) {
|
|
5474
|
+
if (this.mode === 'view' || !(target instanceof Element))
|
|
5475
|
+
return;
|
|
5476
|
+
if (this.host.nativeElement.contains(target))
|
|
5477
|
+
return;
|
|
5478
|
+
if (this.mode === 'editingTitle') {
|
|
5479
|
+
this.commitTitle();
|
|
5480
|
+
}
|
|
5481
|
+
else if (this.mode === 'editingDescription') {
|
|
5482
|
+
this.commitDescription();
|
|
5483
|
+
}
|
|
5484
|
+
}
|
|
5485
|
+
// Focus with caret at end (rather than selecting all) so the user can
|
|
5486
|
+
// continue typing where the previous value left off.
|
|
5487
|
+
focusEnd(ref) {
|
|
5488
|
+
const el = ref === null || ref === void 0 ? void 0 : ref.nativeElement;
|
|
5489
|
+
if (!el)
|
|
5490
|
+
return;
|
|
5491
|
+
el.focus();
|
|
5492
|
+
const len = el.value.length;
|
|
5493
|
+
el.setSelectionRange(len, len);
|
|
5494
|
+
this.cdr.markForCheck();
|
|
5495
|
+
}
|
|
5496
|
+
}
|
|
5497
|
+
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 });
|
|
5498
|
+
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 });
|
|
5499
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditableHeadingComponent, decorators: [{
|
|
5500
|
+
type: Component,
|
|
5501
|
+
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"] }]
|
|
5502
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
5503
|
+
type: Input
|
|
5504
|
+
}], description: [{
|
|
5505
|
+
type: Input
|
|
5506
|
+
}], titleMaxLength: [{
|
|
5507
|
+
type: Input
|
|
5508
|
+
}], descriptionMaxLength: [{
|
|
5509
|
+
type: Input
|
|
5510
|
+
}], titleChange: [{
|
|
5511
|
+
type: Output
|
|
5512
|
+
}], descriptionChange: [{
|
|
5513
|
+
type: Output
|
|
5514
|
+
}], titleInputRef: [{
|
|
5515
|
+
type: ViewChild,
|
|
5516
|
+
args: ['titleInput']
|
|
5517
|
+
}], descriptionInputRef: [{
|
|
5518
|
+
type: ViewChild,
|
|
5519
|
+
args: ['descriptionInput']
|
|
5520
|
+
}], isEditing: [{
|
|
5521
|
+
type: HostBinding,
|
|
5522
|
+
args: ['class.editing']
|
|
5523
|
+
}], onDocumentMouseDown: [{
|
|
5524
|
+
type: HostListener,
|
|
5525
|
+
args: ['document:mousedown', ['$event.target']]
|
|
5526
|
+
}] } });
|
|
5527
|
+
|
|
5337
5528
|
/**
|
|
5338
5529
|
* Page header used to display the page/product the user is on.
|
|
5339
5530
|
*
|
|
@@ -14803,6 +14994,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
14803
14994
|
DialogComponent,
|
|
14804
14995
|
DollarsPipe,
|
|
14805
14996
|
DonutComponent,
|
|
14997
|
+
EditableHeadingComponent,
|
|
14806
14998
|
EditViewComponent,
|
|
14807
14999
|
FunnelChartComponent,
|
|
14808
15000
|
HelpComponent,
|
|
@@ -14900,6 +15092,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
14900
15092
|
DialogComponent,
|
|
14901
15093
|
DollarsPipe,
|
|
14902
15094
|
DonutComponent,
|
|
15095
|
+
EditableHeadingComponent,
|
|
14903
15096
|
EditViewComponent,
|
|
14904
15097
|
FunnelChartComponent,
|
|
14905
15098
|
HelpComponent,
|
|
@@ -15001,6 +15194,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15001
15194
|
DialogComponent,
|
|
15002
15195
|
DollarsPipe,
|
|
15003
15196
|
DonutComponent,
|
|
15197
|
+
EditableHeadingComponent,
|
|
15004
15198
|
EditViewComponent,
|
|
15005
15199
|
FunnelChartComponent,
|
|
15006
15200
|
HelpComponent,
|
|
@@ -15101,6 +15295,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15101
15295
|
DialogComponent,
|
|
15102
15296
|
DollarsPipe,
|
|
15103
15297
|
DonutComponent,
|
|
15298
|
+
EditableHeadingComponent,
|
|
15104
15299
|
EditViewComponent,
|
|
15105
15300
|
FunnelChartComponent,
|
|
15106
15301
|
HelpComponent,
|
|
@@ -15181,5 +15376,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15181
15376
|
* Generated bundle index. Do not edit.
|
|
15182
15377
|
*/
|
|
15183
15378
|
|
|
15184
|
-
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 };
|
|
15379
|
+
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 };
|
|
15185
15380
|
//# sourceMappingURL=rivet-health-design-system.mjs.map
|