@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
|
@@ -2073,28 +2073,45 @@ var RivSelect;
|
|
|
2073
2073
|
* determined by the option's ID rather than the object reference.
|
|
2074
2074
|
*/
|
|
2075
2075
|
class OptionSet extends Set {
|
|
2076
|
+
constructor(values) {
|
|
2077
|
+
super();
|
|
2078
|
+
// Parallel id → option map so has()/add()/delete() are O(1) instead of
|
|
2079
|
+
// spreading the Set and linear-scanning it. Rebuilding an O(N²) lookup
|
|
2080
|
+
// for a 16k-option selection was the primary cause of the multi-minute
|
|
2081
|
+
// freeze that surfaced RVT-25383's tree-select scale problem.
|
|
2082
|
+
this.byId = new Map();
|
|
2083
|
+
if (values) {
|
|
2084
|
+
for (const value of values) {
|
|
2085
|
+
this.add(value);
|
|
2086
|
+
}
|
|
2087
|
+
}
|
|
2088
|
+
}
|
|
2076
2089
|
has(option) {
|
|
2077
|
-
return
|
|
2090
|
+
return this.byId.has(option.id);
|
|
2078
2091
|
}
|
|
2079
2092
|
add(option) {
|
|
2080
|
-
if (this.has(option)) {
|
|
2081
|
-
//
|
|
2082
|
-
//
|
|
2083
|
-
//
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2093
|
+
if (this.byId.has(option.id)) {
|
|
2094
|
+
// Preserve insertion order while swapping to the newer object
|
|
2095
|
+
// reference. Rebuilding the full Set matches the previous
|
|
2096
|
+
// implementation's semantics; the cost of that rebuild only hits
|
|
2097
|
+
// the rare "re-add existing" path — the common O(N²) case (fresh
|
|
2098
|
+
// adds during construction) no longer pays it.
|
|
2099
|
+
const items = [...this].map(o => (o.id === option.id ? option : o));
|
|
2100
|
+
this.byId.set(option.id, option);
|
|
2101
|
+
super.clear();
|
|
2102
|
+
for (const item of items)
|
|
2103
|
+
super.add(item);
|
|
2089
2104
|
}
|
|
2090
2105
|
else {
|
|
2106
|
+
this.byId.set(option.id, option);
|
|
2091
2107
|
super.add(option);
|
|
2092
2108
|
}
|
|
2093
2109
|
return this;
|
|
2094
2110
|
}
|
|
2095
2111
|
delete(option) {
|
|
2096
|
-
const existing =
|
|
2112
|
+
const existing = this.byId.get(option.id);
|
|
2097
2113
|
if (existing) {
|
|
2114
|
+
this.byId.delete(option.id);
|
|
2098
2115
|
super.delete(existing);
|
|
2099
2116
|
return true;
|
|
2100
2117
|
}
|
|
@@ -2102,6 +2119,10 @@ var RivSelect;
|
|
|
2102
2119
|
return false;
|
|
2103
2120
|
}
|
|
2104
2121
|
}
|
|
2122
|
+
clear() {
|
|
2123
|
+
this.byId.clear();
|
|
2124
|
+
super.clear();
|
|
2125
|
+
}
|
|
2105
2126
|
}
|
|
2106
2127
|
RivSelect.OptionSet = OptionSet;
|
|
2107
2128
|
const MIN_OPTIONS_FOR_CONTROLS = 5;
|
|
@@ -2702,7 +2723,7 @@ var RivSelect;
|
|
|
2702
2723
|
}
|
|
2703
2724
|
function toggleVisibleSelected(state) {
|
|
2704
2725
|
const leaves = flattenOptions(getTopLevelOptions(state.sourceOptionGroups), true);
|
|
2705
|
-
const isAllSelected = leaves.every(leaf =>
|
|
2726
|
+
const isAllSelected = leaves.every(leaf => state.selection.selected.has(leaf));
|
|
2706
2727
|
const newSelection = new OptionSet(state.selection.selected);
|
|
2707
2728
|
for (const leaf of leaves) {
|
|
2708
2729
|
if (isAllSelected)
|
|
@@ -5313,6 +5334,185 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5313
5334
|
type: Input
|
|
5314
5335
|
}] } });
|
|
5315
5336
|
|
|
5337
|
+
/**
|
|
5338
|
+
* A borderless heading with a click-to-edit title and an optional
|
|
5339
|
+
* click-to-edit description, plus a projected slot for actions.
|
|
5340
|
+
*
|
|
5341
|
+
* Layout: `[title] | [description] [actions]`
|
|
5342
|
+
*
|
|
5343
|
+
* - Click the title to rename; click the description (or the ghost
|
|
5344
|
+
* "+ Add description" button when empty) to edit it.
|
|
5345
|
+
* - Only one of title or description can be edited at a time.
|
|
5346
|
+
* - While either is being edited, the `[actions]` slot is hidden so
|
|
5347
|
+
* projected controls don't compete with the edit affordance.
|
|
5348
|
+
*
|
|
5349
|
+
* Commit semantics: `titleChange` / `descriptionChange` fire when the user
|
|
5350
|
+
* commits — Enter, outside click, or the Check button — not on every
|
|
5351
|
+
* keystroke, and always on commit (even when the value is unchanged). The
|
|
5352
|
+
* "commit" framing over "change" is deliberate: consumers that persist on
|
|
5353
|
+
* commit (analytics, PATCH) treat the gesture itself as the event; those
|
|
5354
|
+
* that only care about diffs can compare `next === current` in the handler.
|
|
5355
|
+
* There is no cancel path.
|
|
5356
|
+
*
|
|
5357
|
+
* Outside-click commits (rather than cancels) to match the established DS
|
|
5358
|
+
* interaction pattern in `riv-date` and `riv-select`. If a future consumer
|
|
5359
|
+
* needs an abandon path, the soft first step is Escape-to-cancel rather
|
|
5360
|
+
* than changing outside-click's meaning.
|
|
5361
|
+
*
|
|
5362
|
+
* Value handling follows the same convention as `riv-text-field`: `[title]`
|
|
5363
|
+
* and `[description]` are treated as suggestions, not authoritative state.
|
|
5364
|
+
* On commit, the component keeps displaying the user's committed value,
|
|
5365
|
+
* and only overwrites its internal state when the parent explicitly sends
|
|
5366
|
+
* a different value. That lets the component demo out of the box (e.g. in
|
|
5367
|
+
* Storybook) without requiring a round trip through the parent.
|
|
5368
|
+
*
|
|
5369
|
+
* The component owns no border, background, or card chrome — consumers who
|
|
5370
|
+
* want a bordered container should wrap it.
|
|
5371
|
+
*
|
|
5372
|
+
* ```html
|
|
5373
|
+
* <riv-editable-heading
|
|
5374
|
+
* [title]="report.title"
|
|
5375
|
+
* [description]="report.description"
|
|
5376
|
+
* (titleChange)="onTitleCommit($event)"
|
|
5377
|
+
* (descriptionChange)="onDescriptionCommit($event)"
|
|
5378
|
+
* >
|
|
5379
|
+
* <riv-menu actions>
|
|
5380
|
+
* <ng-template #trigger>
|
|
5381
|
+
* <button rivButton [icon]="'MoreVertical'" [variant]="'ghost'"></button>
|
|
5382
|
+
* </ng-template>
|
|
5383
|
+
* <button riv-menu-item>Rename</button>
|
|
5384
|
+
* <button riv-menu-item>Duplicate</button>
|
|
5385
|
+
* </riv-menu>
|
|
5386
|
+
* <button rivButton actions [variant]="'primary'">Save</button>
|
|
5387
|
+
* </riv-editable-heading>
|
|
5388
|
+
* ```
|
|
5389
|
+
*/
|
|
5390
|
+
class EditableHeadingComponent {
|
|
5391
|
+
set title(v) {
|
|
5392
|
+
if (v !== this._title)
|
|
5393
|
+
this._title = v;
|
|
5394
|
+
}
|
|
5395
|
+
get title() {
|
|
5396
|
+
return this._title;
|
|
5397
|
+
}
|
|
5398
|
+
set description(v) {
|
|
5399
|
+
if (v !== this._description)
|
|
5400
|
+
this._description = v;
|
|
5401
|
+
}
|
|
5402
|
+
get description() {
|
|
5403
|
+
return this._description;
|
|
5404
|
+
}
|
|
5405
|
+
constructor(cdr, host) {
|
|
5406
|
+
this.cdr = cdr;
|
|
5407
|
+
this.host = host;
|
|
5408
|
+
// See the "Value handling" section of the class-level doc.
|
|
5409
|
+
this._title = '';
|
|
5410
|
+
this._description = '';
|
|
5411
|
+
this.titleMaxLength = 100;
|
|
5412
|
+
this.descriptionMaxLength = 300;
|
|
5413
|
+
this.titleChange = new EventEmitter();
|
|
5414
|
+
this.descriptionChange = new EventEmitter();
|
|
5415
|
+
this.mode = 'view';
|
|
5416
|
+
this.draftTitle = '';
|
|
5417
|
+
this.draftDescription = '';
|
|
5418
|
+
}
|
|
5419
|
+
get isEditing() {
|
|
5420
|
+
return this.mode !== 'view';
|
|
5421
|
+
}
|
|
5422
|
+
startEditingTitle() {
|
|
5423
|
+
this.draftTitle = this.title;
|
|
5424
|
+
this.mode = 'editingTitle';
|
|
5425
|
+
// Defer focus until Angular has rendered the input into the DOM.
|
|
5426
|
+
setTimeout(() => this.focusEnd(this.titleInputRef), 0);
|
|
5427
|
+
}
|
|
5428
|
+
startEditingDescription() {
|
|
5429
|
+
this.draftDescription = this.description;
|
|
5430
|
+
this.mode = 'editingDescription';
|
|
5431
|
+
setTimeout(() => this.focusEnd(this.descriptionInputRef), 0);
|
|
5432
|
+
}
|
|
5433
|
+
commitTitle() {
|
|
5434
|
+
if (this.mode !== 'editingTitle')
|
|
5435
|
+
return;
|
|
5436
|
+
// Title cannot be committed empty. The Check button is disabled in that
|
|
5437
|
+
// state; for Enter and outside-click we revert to the current title so
|
|
5438
|
+
// the user is never stuck in edit mode with a rejected value.
|
|
5439
|
+
if (!this.draftTitle) {
|
|
5440
|
+
this.mode = 'view';
|
|
5441
|
+
return;
|
|
5442
|
+
}
|
|
5443
|
+
const value = this.draftTitle;
|
|
5444
|
+
this._title = value;
|
|
5445
|
+
this.mode = 'view';
|
|
5446
|
+
this.titleChange.emit(value);
|
|
5447
|
+
}
|
|
5448
|
+
commitDescription() {
|
|
5449
|
+
if (this.mode !== 'editingDescription')
|
|
5450
|
+
return;
|
|
5451
|
+
const value = this.draftDescription;
|
|
5452
|
+
this._description = value;
|
|
5453
|
+
this.mode = 'view';
|
|
5454
|
+
this.descriptionChange.emit(value);
|
|
5455
|
+
}
|
|
5456
|
+
// Listens on `mousedown` (not `click`) so the check runs before Angular
|
|
5457
|
+
// re-renders the trigger element out of the DOM — otherwise
|
|
5458
|
+
// `host.contains(target)` returns false for a click that landed on the
|
|
5459
|
+
// now-removed `.title` / `.description` element. Same pattern as
|
|
5460
|
+
// `riv-date`.
|
|
5461
|
+
onDocumentMouseDown(target) {
|
|
5462
|
+
if (this.mode === 'view' || !(target instanceof Element))
|
|
5463
|
+
return;
|
|
5464
|
+
if (this.host.nativeElement.contains(target))
|
|
5465
|
+
return;
|
|
5466
|
+
if (this.mode === 'editingTitle') {
|
|
5467
|
+
this.commitTitle();
|
|
5468
|
+
}
|
|
5469
|
+
else if (this.mode === 'editingDescription') {
|
|
5470
|
+
this.commitDescription();
|
|
5471
|
+
}
|
|
5472
|
+
}
|
|
5473
|
+
// Focus with caret at end (rather than selecting all) so the user can
|
|
5474
|
+
// continue typing where the previous value left off.
|
|
5475
|
+
focusEnd(ref) {
|
|
5476
|
+
const el = ref === null || ref === void 0 ? void 0 : ref.nativeElement;
|
|
5477
|
+
if (!el)
|
|
5478
|
+
return;
|
|
5479
|
+
el.focus();
|
|
5480
|
+
const len = el.value.length;
|
|
5481
|
+
el.setSelectionRange(len, len);
|
|
5482
|
+
this.cdr.markForCheck();
|
|
5483
|
+
}
|
|
5484
|
+
}
|
|
5485
|
+
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 });
|
|
5486
|
+
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 });
|
|
5487
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EditableHeadingComponent, decorators: [{
|
|
5488
|
+
type: Component,
|
|
5489
|
+
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"] }]
|
|
5490
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { title: [{
|
|
5491
|
+
type: Input
|
|
5492
|
+
}], description: [{
|
|
5493
|
+
type: Input
|
|
5494
|
+
}], titleMaxLength: [{
|
|
5495
|
+
type: Input
|
|
5496
|
+
}], descriptionMaxLength: [{
|
|
5497
|
+
type: Input
|
|
5498
|
+
}], titleChange: [{
|
|
5499
|
+
type: Output
|
|
5500
|
+
}], descriptionChange: [{
|
|
5501
|
+
type: Output
|
|
5502
|
+
}], titleInputRef: [{
|
|
5503
|
+
type: ViewChild,
|
|
5504
|
+
args: ['titleInput']
|
|
5505
|
+
}], descriptionInputRef: [{
|
|
5506
|
+
type: ViewChild,
|
|
5507
|
+
args: ['descriptionInput']
|
|
5508
|
+
}], isEditing: [{
|
|
5509
|
+
type: HostBinding,
|
|
5510
|
+
args: ['class.editing']
|
|
5511
|
+
}], onDocumentMouseDown: [{
|
|
5512
|
+
type: HostListener,
|
|
5513
|
+
args: ['document:mousedown', ['$event.target']]
|
|
5514
|
+
}] } });
|
|
5515
|
+
|
|
5316
5516
|
/**
|
|
5317
5517
|
* Page header used to display the page/product the user is on.
|
|
5318
5518
|
*
|
|
@@ -14782,6 +14982,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
14782
14982
|
DialogComponent,
|
|
14783
14983
|
DollarsPipe,
|
|
14784
14984
|
DonutComponent,
|
|
14985
|
+
EditableHeadingComponent,
|
|
14785
14986
|
EditViewComponent,
|
|
14786
14987
|
FunnelChartComponent,
|
|
14787
14988
|
HelpComponent,
|
|
@@ -14879,6 +15080,7 @@ RivModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
|
14879
15080
|
DialogComponent,
|
|
14880
15081
|
DollarsPipe,
|
|
14881
15082
|
DonutComponent,
|
|
15083
|
+
EditableHeadingComponent,
|
|
14882
15084
|
EditViewComponent,
|
|
14883
15085
|
FunnelChartComponent,
|
|
14884
15086
|
HelpComponent,
|
|
@@ -14980,6 +15182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
14980
15182
|
DialogComponent,
|
|
14981
15183
|
DollarsPipe,
|
|
14982
15184
|
DonutComponent,
|
|
15185
|
+
EditableHeadingComponent,
|
|
14983
15186
|
EditViewComponent,
|
|
14984
15187
|
FunnelChartComponent,
|
|
14985
15188
|
HelpComponent,
|
|
@@ -15080,6 +15283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15080
15283
|
DialogComponent,
|
|
15081
15284
|
DollarsPipe,
|
|
15082
15285
|
DonutComponent,
|
|
15286
|
+
EditableHeadingComponent,
|
|
15083
15287
|
EditViewComponent,
|
|
15084
15288
|
FunnelChartComponent,
|
|
15085
15289
|
HelpComponent,
|
|
@@ -15160,5 +15364,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
15160
15364
|
* Generated bundle index. Do not edit.
|
|
15161
15365
|
*/
|
|
15162
15366
|
|
|
15163
|
-
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 };
|
|
15367
|
+
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 };
|
|
15164
15368
|
//# sourceMappingURL=rivet-health-design-system.mjs.map
|