@rivet-health/design-system 40.37.0 → 40.39.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/switch-checkbox/switch-checkbox.component.mjs +15 -4
- package/esm2020/lib/overlay/overlay.directive.mjs +2 -2
- package/esm2020/lib/overlay/overlay.service.mjs +20 -23
- package/esm2020/lib/table/table/state-helpers/column-helpers.mjs +118 -64
- package/esm2020/lib/table/table/state.mjs +9 -9
- package/esm2020/lib/table/table/table/table.component.mjs +17 -3
- package/esm2020/lib/table/table/table-column-settings/table-column-settings-side-sheet.component.mjs +3 -3
- package/esm2020/lib/visualization/stacked-column/stacked-column.component.mjs +3 -3
- package/esm2020/lib/visualization/stacked-row/stacked-row.component.mjs +3 -3
- package/esm2020/lib/visualization/time-series/time-series.component.mjs +3 -3
- package/fesm2015/rivet-health-design-system.mjs +171 -109
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +182 -106
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/input/switch-checkbox/switch-checkbox.component.d.ts +8 -1
- package/lib/overlay/overlay.service.d.ts +6 -3
- package/lib/table/table/state-helpers/column-helpers.d.ts +4 -2
- package/lib/table/table/state.d.ts +3 -0
- package/lib/table/table/table/table.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
2
|
import { CheckboxComponent } from '../checkbox/checkbox.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
@@ -6,17 +6,28 @@ export class SwitchCheckboxComponent extends CheckboxComponent {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.size = 'medium';
|
|
9
|
+
/**
|
|
10
|
+
* Only value changes after the first render animate, so a switch that
|
|
11
|
+
* renders already on doesn't slide into place.
|
|
12
|
+
*/
|
|
13
|
+
this.animated = false;
|
|
14
|
+
}
|
|
15
|
+
ngOnChanges(changes) {
|
|
16
|
+
super.ngOnChanges(changes);
|
|
17
|
+
if (changes['value'] && !changes['value'].firstChange) {
|
|
18
|
+
this.animated = true;
|
|
19
|
+
}
|
|
9
20
|
}
|
|
10
21
|
}
|
|
11
22
|
SwitchCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SwitchCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
-
SwitchCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SwitchCheckboxComponent, selector: "riv-switch-checkbox", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: "<label\n #label\n [ngClass]=\"size\"\n [class.checked]=\"value\"\n [class.disabled]=\"disabled\"\n>\n <input\n #input\n type=\"checkbox\"\n [name]=\"name\"\n [id]=\"identifier\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [required]=\"required\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n (change)=\"valueChange.emit(!!input.checked)\"\n />\n <ng-content></ng-content>\n</label>\n", styles: [":host{display:inline-flex}label{position:relative;flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:center;--transition-params: .15s cubic-bezier(.52, .19, .98, .43)}label.medium{--slide-width: calc(var(--base-grid-size) * 12);--switch-size: calc(var(--base-grid-size) * 6)}label.small{--slide-width: calc(var(--base-grid-size) * 8);--switch-size: calc(var(--base-grid-size) * 4)}label:not(.disabled){cursor:pointer}label:before{content:\"\";display:inline-block;box-sizing:border-box;width:var(--slide-width);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:var(--switch-size)
|
|
23
|
+
SwitchCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SwitchCheckboxComponent, selector: "riv-switch-checkbox", inputs: { size: "size" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label\n #label\n [ngClass]=\"size\"\n [class.checked]=\"value\"\n [class.animated]=\"animated\"\n [class.disabled]=\"disabled\"\n>\n <input\n #input\n type=\"checkbox\"\n [name]=\"name\"\n [id]=\"identifier\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [required]=\"required\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n (change)=\"valueChange.emit(!!input.checked)\"\n />\n <ng-content></ng-content>\n</label>\n", styles: [":host{display:inline-flex}label{position:relative;flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:center;--transition-params: .15s cubic-bezier(.52, .19, .98, .43)}label.medium{--slide-width: calc(var(--base-grid-size) * 12);--switch-size: calc(var(--base-grid-size) * 6)}label.small{--slide-width: calc(var(--base-grid-size) * 8);--switch-size: calc(var(--base-grid-size) * 4)}label:not(.disabled){cursor:pointer}label:before{content:\"\";display:inline-block;box-sizing:border-box;width:var(--slide-width);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:var(--switch-size)}label.animated:before{transition:background-color var(--transition-params)}label.disabled:before{background-color:var(--black-20)}label.checked:before{background-color:var(--purp-60)}label.disabled.checked:before{background-color:var(--black-60)}label:after{content:\"\";position:absolute;width:var(--switch-size);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:100%;box-shadow:var(--depth-1)}label.animated:after{transition:transform var(--transition-params)}label.checked:after{transform:translate(calc(var(--slide-width) - var(--switch-size)))}input{position:absolute;opacity:0;z-index:-1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SwitchCheckboxComponent, decorators: [{
|
|
14
25
|
type: Component,
|
|
15
|
-
args: [{ selector: 'riv-switch-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n #label\n [ngClass]=\"size\"\n [class.checked]=\"value\"\n [class.disabled]=\"disabled\"\n>\n <input\n #input\n type=\"checkbox\"\n [name]=\"name\"\n [id]=\"identifier\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [required]=\"required\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n (change)=\"valueChange.emit(!!input.checked)\"\n />\n <ng-content></ng-content>\n</label>\n", styles: [":host{display:inline-flex}label{position:relative;flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:center;--transition-params: .15s cubic-bezier(.52, .19, .98, .43)}label.medium{--slide-width: calc(var(--base-grid-size) * 12);--switch-size: calc(var(--base-grid-size) * 6)}label.small{--slide-width: calc(var(--base-grid-size) * 8);--switch-size: calc(var(--base-grid-size) * 4)}label:not(.disabled){cursor:pointer}label:before{content:\"\";display:inline-block;box-sizing:border-box;width:var(--slide-width);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:var(--switch-size)
|
|
26
|
+
args: [{ selector: 'riv-switch-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n #label\n [ngClass]=\"size\"\n [class.checked]=\"value\"\n [class.animated]=\"animated\"\n [class.disabled]=\"disabled\"\n>\n <input\n #input\n type=\"checkbox\"\n [name]=\"name\"\n [id]=\"identifier\"\n [checked]=\"value\"\n [disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [required]=\"required\"\n [attr.aria-label]=\"isCheckboxOnly() ? ariaLabel : null\"\n (change)=\"valueChange.emit(!!input.checked)\"\n />\n <ng-content></ng-content>\n</label>\n", styles: [":host{display:inline-flex}label{position:relative;flex-grow:1;display:inline-flex;gap:var(--size-small);align-items:center;--transition-params: .15s cubic-bezier(.52, .19, .98, .43)}label.medium{--slide-width: calc(var(--base-grid-size) * 12);--switch-size: calc(var(--base-grid-size) * 6)}label.small{--slide-width: calc(var(--base-grid-size) * 8);--switch-size: calc(var(--base-grid-size) * 4)}label:not(.disabled){cursor:pointer}label:before{content:\"\";display:inline-block;box-sizing:border-box;width:var(--slide-width);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:var(--switch-size)}label.animated:before{transition:background-color var(--transition-params)}label.disabled:before{background-color:var(--black-20)}label.checked:before{background-color:var(--purp-60)}label.disabled.checked:before{background-color:var(--black-60)}label:after{content:\"\";position:absolute;width:var(--switch-size);height:var(--switch-size);background-color:var(--white-100);border:var(--border-width) solid var(--border-light);border-radius:100%;box-shadow:var(--depth-1)}label.animated:after{transition:transform var(--transition-params)}label.checked:after{transform:translate(calc(var(--slide-width) - var(--switch-size)))}input{position:absolute;opacity:0;z-index:-1}\n"] }]
|
|
16
27
|
}], propDecorators: { size: [{
|
|
17
28
|
type: Input
|
|
18
29
|
}] } });
|
|
19
30
|
(function (SwitchCheckboxComponent) {
|
|
20
31
|
SwitchCheckboxComponent.Sizes = ['small', 'medium'];
|
|
21
32
|
})(SwitchCheckboxComponent || (SwitchCheckboxComponent = {}));
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3N3aXRjaC1jaGVja2JveC9zd2l0Y2gtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvc3dpdGNoLWNoZWNrYm94L3N3aXRjaC1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQVFuRSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSxpQkFBaUI7SUFQM0I7O1FBV0UsU0FBSSxHQUFpQyxRQUFRLENBQUM7UUFFOUM7OztXQUdHO1FBQ0gsYUFBUSxHQUFZLEtBQUssQ0FBQztLQVEzQjtJQU5VLFdBQVcsQ0FBQyxPQUFzQjtRQUN6QyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNILENBQUM7O3FIQWxCVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixpSUNmcEMsaWhCQXFCQTs0RkROYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBTy9DLElBQUk7c0JBREgsS0FBSzs7QUFpQlIsV0FBaUIsdUJBQXVCO0lBQ3pCLDZCQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFFcEQsQ0FBQyxFQUhnQix1QkFBdUIsS0FBdkIsdUJBQXVCLFFBR3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1zd2l0Y2gtY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpdGNoLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3dpdGNoLWNoZWNrYm94LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFN3aXRjaENoZWNrYm94Q29tcG9uZW50XG4gIGV4dGVuZHMgQ2hlY2tib3hDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcbiAgQElucHV0KClcbiAgc2l6ZTogU3dpdGNoQ2hlY2tib3hDb21wb25lbnQuU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIC8qKlxuICAgKiBPbmx5IHZhbHVlIGNoYW5nZXMgYWZ0ZXIgdGhlIGZpcnN0IHJlbmRlciBhbmltYXRlLCBzbyBhIHN3aXRjaCB0aGF0XG4gICAqIHJlbmRlcnMgYWxyZWFkeSBvbiBkb2Vzbid0IHNsaWRlIGludG8gcGxhY2UuXG4gICAqL1xuICBhbmltYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSAmJiAhY2hhbmdlc1sndmFsdWUnXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5hbmltYXRlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU3dpdGNoQ2hlY2tib3hDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgU2l6ZXMgPSBbJ3NtYWxsJywgJ21lZGl1bSddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTaXplcylbbnVtYmVyXTtcbn1cbiIsIjxsYWJlbFxuICAjbGFiZWxcbiAgW25nQ2xhc3NdPVwic2l6ZVwiXG4gIFtjbGFzcy5jaGVja2VkXT1cInZhbHVlXCJcbiAgW2NsYXNzLmFuaW1hdGVkXT1cImFuaW1hdGVkXCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbj5cbiAgPGlucHV0XG4gICAgI2lucHV0XG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbaWRdPVwiaWRlbnRpZmllclwiXG4gICAgW2NoZWNrZWRdPVwidmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpc0NoZWNrYm94T25seSgpID8gYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgKGNoYW5nZSk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCEhaW5wdXQuY2hlY2tlZClcIlxuICAvPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2xhYmVsPlxuIl19
|
|
@@ -11,7 +11,7 @@ export class OverlayDirective {
|
|
|
11
11
|
}
|
|
12
12
|
ngOnDestroy() {
|
|
13
13
|
if (this.key)
|
|
14
|
-
this.
|
|
14
|
+
this.overlayService.remove(this.key);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
OverlayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayDirective, deps: [{ token: i0.TemplateRef }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
22
22
|
selector: '[riv-overlay]',
|
|
23
23
|
}]
|
|
24
24
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.OverlayService }]; } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9vdmVybGF5L292ZXJsYXkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWtDLE1BQU0sZUFBZSxDQUFDOzs7QUFNMUUsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNtQixRQUEyQixFQUMzQixjQUE4QjtRQUQ5QixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDOUMsQ0FBQztJQUlKLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQzs7OEdBZFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFINUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXkuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tyaXYtb3ZlcmxheV0nLFxufSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZSxcbiAgKSB7fVxuXG4gIHByaXZhdGUga2V5PzogU3ltYm9sO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMua2V5ID0gdGhpcy5vdmVybGF5U2VydmljZS5hZGQodGhpcy50ZW1wbGF0ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5rZXkpIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlKHRoaXMua2V5KTtcbiAgfVxufVxuIl19
|
|
@@ -2,37 +2,34 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class OverlayService {
|
|
5
|
-
constructor() {
|
|
5
|
+
constructor(zone) {
|
|
6
|
+
this.zone = zone;
|
|
6
7
|
this.overlays = new BehaviorSubject(new Map());
|
|
7
8
|
}
|
|
8
|
-
|
|
9
|
-
// to detect changes properly when the source of an event is from within a
|
|
10
|
-
// template that is being removed as a result of that event. The Angular
|
|
11
|
-
// template sees a cached version of the overlays Map (even though the
|
|
12
|
-
// component TypeScript picks up on the changed Map), regardless of trying to
|
|
13
|
-
// trigger change detection manually. Moving the change to the next tick with
|
|
14
|
-
// this faux async fixes the issue. We may be able to remove them after an
|
|
15
|
-
// Angular upgrade (TODO).
|
|
16
|
-
// https://www.notion.so/rivet/Resolve-TODOs-after-Angular-upgrade-1f2667eb2a3180b79f6ad92a7e576f08
|
|
17
|
-
async add(overlay) {
|
|
18
|
-
await Promise.resolve();
|
|
9
|
+
add(overlay) {
|
|
19
10
|
const key = Symbol();
|
|
20
|
-
|
|
21
|
-
overlays.set(key, overlay);
|
|
22
|
-
this.overlays.next(overlays);
|
|
11
|
+
this.update(overlays => overlays.set(key, overlay));
|
|
23
12
|
return key;
|
|
24
13
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
remove(key) {
|
|
15
|
+
this.update(overlays => overlays.delete(key));
|
|
16
|
+
}
|
|
17
|
+
// Deferred because the template misses the change when the triggering event
|
|
18
|
+
// comes from a template being removed by it; run in the zone so it renders.
|
|
19
|
+
// TODO: remove the deferral after an Angular upgrade.
|
|
20
|
+
// https://www.notion.so/rivet/Resolve-TODOs-after-Angular-upgrade-1f2667eb2a3180b79f6ad92a7e576f08
|
|
21
|
+
update(change) {
|
|
22
|
+
queueMicrotask(() => this.zone.run(() => {
|
|
23
|
+
const overlays = new Map(this.overlays.getValue());
|
|
24
|
+
change(overlays);
|
|
25
|
+
this.overlays.next(overlays);
|
|
26
|
+
}));
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
OverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
OverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
30
|
OverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, providedIn: 'root' });
|
|
34
31
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OverlayService, decorators: [{
|
|
35
32
|
type: Injectable,
|
|
36
33
|
args: [{ providedIn: 'root' }]
|
|
37
|
-
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvb3ZlcmxheS9vdmVybGF5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBNkIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFbEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFXLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUZmLENBQUM7SUFJdEMsR0FBRyxDQUFDLE9BQTBCO1FBQ25DLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSw0RUFBNEU7SUFDNUUsc0RBQXNEO0lBQ3RELG1HQUFtRztJQUMzRixNQUFNLENBQUMsTUFBb0M7UUFDakQsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7NEdBM0JVLGNBQWM7Z0hBQWQsY0FBYyxjQURELE1BQU07NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE92ZXJsYXlzID0gTWFwPFN5bWJvbCwgVGVtcGxhdGVSZWY8dm9pZD4+O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgcHVibGljIG92ZXJsYXlzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPdmVybGF5cz4obmV3IE1hcCgpKTtcblxuICBwdWJsaWMgYWRkKG92ZXJsYXk6IFRlbXBsYXRlUmVmPHZvaWQ+KTogU3ltYm9sIHtcbiAgICBjb25zdCBrZXkgPSBTeW1ib2woKTtcbiAgICB0aGlzLnVwZGF0ZShvdmVybGF5cyA9PiBvdmVybGF5cy5zZXQoa2V5LCBvdmVybGF5KSk7XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmUoa2V5OiBTeW1ib2wpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZShvdmVybGF5cyA9PiBvdmVybGF5cy5kZWxldGUoa2V5KSk7XG4gIH1cblxuICAvLyBEZWZlcnJlZCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBtaXNzZXMgdGhlIGNoYW5nZSB3aGVuIHRoZSB0cmlnZ2VyaW5nIGV2ZW50XG4gIC8vIGNvbWVzIGZyb20gYSB0ZW1wbGF0ZSBiZWluZyByZW1vdmVkIGJ5IGl0OyBydW4gaW4gdGhlIHpvbmUgc28gaXQgcmVuZGVycy5cbiAgLy8gVE9ETzogcmVtb3ZlIHRoZSBkZWZlcnJhbCBhZnRlciBhbiBBbmd1bGFyIHVwZ3JhZGUuXG4gIC8vIGh0dHBzOi8vd3d3Lm5vdGlvbi5zby9yaXZldC9SZXNvbHZlLVRPRE9zLWFmdGVyLUFuZ3VsYXItdXBncmFkZS0xZjI2NjdlYjJhMzE4MGI3OWY2YWQ5MmE3ZTU3NmYwOFxuICBwcml2YXRlIHVwZGF0ZShjaGFuZ2U6IChvdmVybGF5czogT3ZlcmxheXMpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PlxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlzID0gbmV3IE1hcCh0aGlzLm92ZXJsYXlzLmdldFZhbHVlKCkpO1xuICAgICAgICBjaGFuZ2Uob3ZlcmxheXMpO1xuICAgICAgICB0aGlzLm92ZXJsYXlzLm5leHQob3ZlcmxheXMpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
|