@rivet-health/design-system 40.6.1 → 40.7.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/esm2020/lib/input/select/state.mjs +34 -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 +217 -13
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +217 -13
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/input/select/state.d.ts +3 -0
- 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
|
@@ -2047,28 +2047,45 @@ var RivSelect;
|
|
|
2047
2047
|
* determined by the option's ID rather than the object reference.
|
|
2048
2048
|
*/
|
|
2049
2049
|
class OptionSet extends Set {
|
|
2050
|
+
constructor(values) {
|
|
2051
|
+
super();
|
|
2052
|
+
// Parallel id → option map so has()/add()/delete() are O(1) instead of
|
|
2053
|
+
// spreading the Set and linear-scanning it. Rebuilding an O(N²) lookup
|
|
2054
|
+
// for a 16k-option selection was the primary cause of the multi-minute
|
|
2055
|
+
// freeze that surfaced RVT-25383's tree-select scale problem.
|
|
2056
|
+
this.byId = new Map();
|
|
2057
|
+
if (values) {
|
|
2058
|
+
for (const value of values) {
|
|
2059
|
+
this.add(value);
|
|
2060
|
+
}
|
|
2061
|
+
}
|
|
2062
|
+
}
|
|
2050
2063
|
has(option) {
|
|
2051
|
-
return
|
|
2064
|
+
return this.byId.has(option.id);
|
|
2052
2065
|
}
|
|
2053
2066
|
add(option) {
|
|
2054
|
-
if (this.has(option)) {
|
|
2055
|
-
//
|
|
2056
|
-
//
|
|
2057
|
-
//
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2067
|
+
if (this.byId.has(option.id)) {
|
|
2068
|
+
// Preserve insertion order while swapping to the newer object
|
|
2069
|
+
// reference. Rebuilding the full Set matches the previous
|
|
2070
|
+
// implementation's semantics; the cost of that rebuild only hits
|
|
2071
|
+
// the rare "re-add existing" path — the common O(N²) case (fresh
|
|
2072
|
+
// adds during construction) no longer pays it.
|
|
2073
|
+
const items = [...this].map(o => (o.id === option.id ? option : o));
|
|
2074
|
+
this.byId.set(option.id, option);
|
|
2075
|
+
super.clear();
|
|
2076
|
+
for (const item of items)
|
|
2077
|
+
super.add(item);
|
|
2063
2078
|
}
|
|
2064
2079
|
else {
|
|
2080
|
+
this.byId.set(option.id, option);
|
|
2065
2081
|
super.add(option);
|
|
2066
2082
|
}
|
|
2067
2083
|
return this;
|
|
2068
2084
|
}
|
|
2069
2085
|
delete(option) {
|
|
2070
|
-
const existing =
|
|
2086
|
+
const existing = this.byId.get(option.id);
|
|
2071
2087
|
if (existing) {
|
|
2088
|
+
this.byId.delete(option.id);
|
|
2072
2089
|
super.delete(existing);
|
|
2073
2090
|
return true;
|
|
2074
2091
|
}
|
|
@@ -2076,6 +2093,10 @@ var RivSelect;
|
|
|
2076
2093
|
return false;
|
|
2077
2094
|
}
|
|
2078
2095
|
}
|
|
2096
|
+
clear() {
|
|
2097
|
+
this.byId.clear();
|
|
2098
|
+
super.clear();
|
|
2099
|
+
}
|
|
2079
2100
|
}
|
|
2080
2101
|
RivSelect.OptionSet = OptionSet;
|
|
2081
2102
|
const MIN_OPTIONS_FOR_CONTROLS = 5;
|
|
@@ -2747,7 +2768,7 @@ var RivSelect;
|
|
|
2747
2768
|
}
|
|
2748
2769
|
function toggleVisibleSelected(state) {
|
|
2749
2770
|
const leaves = flattenOptions(getTopLevelOptions(state.sourceOptionGroups), true);
|
|
2750
|
-
const isAllSelected = leaves.every(leaf =>
|
|
2771
|
+
const isAllSelected = leaves.every(leaf => state.selection.selected.has(leaf));
|
|
2751
2772
|
const newSelection = new OptionSet(state.selection.selected);
|
|
2752
2773
|
for (const leaf of leaves) {
|
|
2753
2774
|
if (isAllSelected)
|
|
@@ -5392,6 +5413,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5392
5413
|
type: Input
|
|
5393
5414
|
}] } });
|
|
5394
5415
|
|
|
5416
|
+
/**
|
|
5417
|
+
* A borderless heading with a click-to-edit title and an optional
|
|
5418
|
+
* click-to-edit description, plus a projected slot for actions.
|
|
5419
|
+
*
|
|
5420
|
+
* Layout: `[title] | [description] [actions]`
|
|
5421
|
+
*
|
|
5422
|
+
* - Click the title to rename; click the description (or the ghost
|
|
5423
|
+
* "+ Add description" button when empty) to edit it.
|
|
5424
|
+
* - Only one of title or description can be edited at a time.
|
|
5425
|
+
* - While either is being edited, the `[actions]` slot is hidden so
|
|
5426
|
+
* projected controls don't compete with the edit affordance.
|
|
5427
|
+
*
|
|
5428
|
+
* Commit semantics: `titleChange` / `descriptionChange` fire when the user
|
|
5429
|
+
* commits — Enter, outside click, or the Check button — not on every
|
|
5430
|
+
* keystroke, and always on commit (even when the value is unchanged). The
|
|
5431
|
+
* "commit" framing over "change" is deliberate: consumers that persist on
|
|
5432
|
+
* commit (analytics, PATCH) treat the gesture itself as the event; those
|
|
5433
|
+
* that only care about diffs can compare `next === current` in the handler.
|
|
5434
|
+
* There is no cancel path.
|
|
5435
|
+
*
|
|
5436
|
+
* Outside-click commits (rather than cancels) to match the established DS
|
|
5437
|
+
* interaction pattern in `riv-date` and `riv-select`. If a future consumer
|
|
5438
|
+
* needs an abandon path, the soft first step is Escape-to-cancel rather
|
|
5439
|
+
* than changing outside-click's meaning.
|
|
5440
|
+
*
|
|
5441
|
+
* Value handling follows the same convention as `riv-text-field`: `[title]`
|
|
5442
|
+
* and `[description]` are treated as suggestions, not authoritative state.
|
|
5443
|
+
* On commit, the component keeps displaying the user's committed value,
|
|
5444
|
+
* and only overwrites its internal state when the parent explicitly sends
|
|
5445
|
+
* a different value. That lets the component demo out of the box (e.g. in
|
|
5446
|
+
* Storybook) without requiring a round trip through the parent.
|
|
5447
|
+
*
|
|
5448
|
+
* The component owns no border, background, or card chrome — consumers who
|
|
5449
|
+
* want a bordered container should wrap it.
|
|
5450
|
+
*
|
|
5451
|
+
* ```html
|
|
5452
|
+
* <riv-editable-heading
|
|
5453
|
+
* [title]="report.title"
|
|
5454
|
+
* [description]="report.description"
|
|
5455
|
+
* (titleChange)="onTitleCommit($event)"
|
|
5456
|
+
* (descriptionChange)="onDescriptionCommit($event)"
|
|
5457
|
+
* >
|
|
5458
|
+
* <riv-menu actions>
|
|
5459
|
+
* <ng-template #trigger>
|
|
5460
|
+
* <button rivButton [icon]="'MoreVertical'" [variant]="'ghost'"></button>
|
|
5461
|
+
* </ng-template>
|
|
5462
|
+
* <button riv-menu-item>Rename</button>
|
|
5463
|
+
* <button riv-menu-item>Duplicate</button>
|
|
5464
|
+
* </riv-menu>
|
|
5465
|
+
* <button rivButton actions [variant]="'primary'">Save</button>
|
|
5466
|
+
* </riv-editable-heading>
|
|
5467
|
+
* ```
|
|
5468
|
+
*/
|
|
5469
|
+
class EditableHeadingComponent {
|
|
5470
|
+
set title(v) {
|
|
5471
|
+
if (v !== this._title)
|
|
5472
|
+
this._title = v;
|
|
5473
|
+
}
|
|
5474
|
+
get title() {
|
|
5475
|
+
return this._title;
|
|
5476
|
+
}
|
|
5477
|
+
set description(v) {
|
|
5478
|
+
if (v !== this._description)
|
|
5479
|
+
this._description = v;
|
|
5480
|
+
}
|
|
5481
|
+
get description() {
|
|
5482
|
+
return this._description;
|
|
5483
|
+
}
|
|
5484
|
+
constructor(cdr, host) {
|
|
5485
|
+
this.cdr = cdr;
|
|
5486
|
+
this.host = host;
|
|
5487
|
+
// See the "Value handling" section of the class-level doc.
|
|
5488
|
+
this._title = '';
|
|
5489
|
+
this._description = '';
|
|
5490
|
+
this.titleMaxLength = 100;
|
|
5491
|
+
this.descriptionMaxLength = 300;
|
|
5492
|
+
this.titleChange = new EventEmitter();
|
|
5493
|
+
this.descriptionChange = new EventEmitter();
|
|
5494
|
+
this.mode = 'view';
|
|
5495
|
+
this.draftTitle = '';
|
|
5496
|
+
this.draftDescription = '';
|
|
5497
|
+
}
|
|
5498
|
+
get isEditing() {
|
|
5499
|
+
return this.mode !== 'view';
|
|
5500
|
+
}
|
|
5501
|
+
startEditingTitle() {
|
|
5502
|
+
this.draftTitle = this.title;
|
|
5503
|
+
this.mode = 'editingTitle';
|
|
5504
|
+
// Defer focus until Angular has rendered the input into the DOM.
|
|
5505
|
+
setTimeout(() => this.focusEnd(this.titleInputRef), 0);
|
|
5506
|
+
}
|
|
5507
|
+
startEditingDescription() {
|
|
5508
|
+
this.draftDescription = this.description;
|
|
5509
|
+
this.mode = 'editingDescription';
|
|
5510
|
+
setTimeout(() => this.focusEnd(this.descriptionInputRef), 0);
|
|
5511
|
+
}
|
|
5512
|
+
commitTitle() {
|
|
5513
|
+
if (this.mode !== 'editingTitle')
|
|
5514
|
+
return;
|
|
5515
|
+
// Title cannot be committed empty. The Check button is disabled in that
|
|
5516
|
+
// state; for Enter and outside-click we revert to the current title so
|
|
5517
|
+
// the user is never stuck in edit mode with a rejected value.
|
|
5518
|
+
if (!this.draftTitle) {
|
|
5519
|
+
this.mode = 'view';
|
|
5520
|
+
return;
|
|
5521
|
+
}
|
|
5522
|
+
const value = this.draftTitle;
|
|
5523
|
+
this._title = value;
|
|
5524
|
+
this.mode = 'view';
|
|
5525
|
+
this.titleChange.emit(value);
|
|
5526
|
+
}
|
|
5527
|
+
commitDescription() {
|
|
5528
|
+
if (this.mode !== 'editingDescription')
|
|
5529
|
+
return;
|
|
5530
|
+
const value = this.draftDescription;
|
|
5531
|
+
this._description = value;
|
|
5532
|
+
this.mode = 'view';
|
|
5533
|
+
this.descriptionChange.emit(value);
|
|
5534
|
+
}
|
|
5535
|
+
// Listens on `mousedown` (not `click`) so the check runs before Angular
|
|
5536
|
+
// re-renders the trigger element out of the DOM — otherwise
|
|
5537
|
+
// `host.contains(target)` returns false for a click that landed on the
|
|
5538
|
+
// now-removed `.title` / `.description` element. Same pattern as
|
|
5539
|
+
// `riv-date`.
|
|
5540
|
+
onDocumentMouseDown(target) {
|
|
5541
|
+
if (this.mode === 'view' || !(target instanceof Element))
|
|
5542
|
+
return;
|
|
5543
|
+
if (this.host.nativeElement.contains(target))
|
|
5544
|
+
return;
|
|
5545
|
+
if (this.mode === 'editingTitle') {
|
|
5546
|
+
this.commitTitle();
|
|
5547
|
+
}
|
|
5548
|
+
else if (this.mode === 'editingDescription') {
|
|
5549
|
+
this.commitDescription();
|
|
5550
|
+
}
|
|
5551
|
+
}
|
|
5552
|
+
// Focus with caret at end (rather than selecting all) so the user can
|
|
5553
|
+
// continue typing where the previous value left off.
|
|
5554
|
+
focusEnd(ref) {
|
|
5555
|
+
const el = ref?.nativeElement;
|
|
5556
|
+
if (!el)
|
|
5557
|
+
return;
|
|
5558
|
+
el.focus();
|
|
5559
|
+
const len = el.value.length;
|
|
5560
|
+
el.setSelectionRange(len, len);
|
|
5561
|
+
this.cdr.markForCheck();
|
|
5562
|
+
}
|
|
5563
|
+
}
|
|
5564
|
+
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 });
|
|
5565
|
+
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 });
|
|
5566
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditableHeadingComponent, decorators: [{
|
|
5567
|
+
type: Component,
|
|
5568
|
+
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"] }]
|
|
5569
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
5570
|
+
type: Input
|
|
5571
|
+
}], description: [{
|
|
5572
|
+
type: Input
|
|
5573
|
+
}], titleMaxLength: [{
|
|
5574
|
+
type: Input
|
|
5575
|
+
}], descriptionMaxLength: [{
|
|
5576
|
+
type: Input
|
|
5577
|
+
}], titleChange: [{
|
|
5578
|
+
type: Output
|
|
5579
|
+
}], descriptionChange: [{
|
|
5580
|
+
type: Output
|
|
5581
|
+
}], titleInputRef: [{
|
|
5582
|
+
type: ViewChild,
|
|
5583
|
+
args: ['titleInput']
|
|
5584
|
+
}], descriptionInputRef: [{
|
|
5585
|
+
type: ViewChild,
|
|
5586
|
+
args: ['descriptionInput']
|
|
5587
|
+
}], isEditing: [{
|
|
5588
|
+
type: HostBinding,
|
|
5589
|
+
args: ['class.editing']
|
|
5590
|
+
}], onDocumentMouseDown: [{
|
|
5591
|
+
type: HostListener,
|
|
5592
|
+
args: ['document:mousedown', ['$event.target']]
|
|
5593
|
+
}] } });
|
|
5594
|
+
|
|
5395
5595
|
/**
|
|
5396
5596
|
* Page header used to display the page/product the user is on.
|
|
5397
5597
|
*
|
|
@@ -15345,6 +15545,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
15345
15545
|
DialogComponent,
|
|
15346
15546
|
DollarsPipe,
|
|
15347
15547
|
DonutComponent,
|
|
15548
|
+
EditableHeadingComponent,
|
|
15348
15549
|
EditViewComponent,
|
|
15349
15550
|
FunnelChartComponent,
|
|
15350
15551
|
HelpComponent,
|
|
@@ -15442,6 +15643,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
15442
15643
|
DialogComponent,
|
|
15443
15644
|
DollarsPipe,
|
|
15444
15645
|
DonutComponent,
|
|
15646
|
+
EditableHeadingComponent,
|
|
15445
15647
|
EditViewComponent,
|
|
15446
15648
|
FunnelChartComponent,
|
|
15447
15649
|
HelpComponent,
|
|
@@ -15543,6 +15745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15543
15745
|
DialogComponent,
|
|
15544
15746
|
DollarsPipe,
|
|
15545
15747
|
DonutComponent,
|
|
15748
|
+
EditableHeadingComponent,
|
|
15546
15749
|
EditViewComponent,
|
|
15547
15750
|
FunnelChartComponent,
|
|
15548
15751
|
HelpComponent,
|
|
@@ -15643,6 +15846,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15643
15846
|
DialogComponent,
|
|
15644
15847
|
DollarsPipe,
|
|
15645
15848
|
DonutComponent,
|
|
15849
|
+
EditableHeadingComponent,
|
|
15646
15850
|
EditViewComponent,
|
|
15647
15851
|
FunnelChartComponent,
|
|
15648
15852
|
HelpComponent,
|
|
@@ -15723,5 +15927,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15723
15927
|
* Generated bundle index. Do not edit.
|
|
15724
15928
|
*/
|
|
15725
15929
|
|
|
15726
|
-
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 };
|
|
15930
|
+
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 };
|
|
15727
15931
|
//# sourceMappingURL=rivet-health-design-system.mjs.map
|