moved base_plan, tweaked a lot of stuff to be a bit clearer and less funky

merge-notes
isark 2 years ago
parent c9140d9ea2
commit 04404c2233

File diff suppressed because one or more lines are too long

@ -0,0 +1,705 @@
{
"plan": [
{
"area_key": "1_1_1",
"notes": "Kill hillock"
},
{
"area_key": "1_1_town",
"notes": "Tarkleigh reward"
},
{
"area_key": "1_1_2",
"notes": ""
},
{
"area_key": "1_1_3",
"notes": "3x eggs, then passage"
},
{
"area_key": "1_1_4_1",
"notes": "WP to coast"
},
{
"area_key": "1_1_2",
"notes": ""
},
{
"area_key": "1_1_2a",
"notes": "Kill Hailrake then (DC/Portal)"
},
{
"area_key": "1_1_4_1",
"notes": ""
},
{
"area_key": "1_1_5",
"notes": ""
},
{
"area_key": "1_1_6",
"notes": ""
},
{
"area_key": "1_1_7_1",
"notes": "Get WP then back to submerged passage"
},
{
"area_key": "1_1_4_1",
"notes": ""
},
{
"area_key": "1_1_4_0",
"notes": "Kill Dweller of the Deep then DC/TP"
},
{
"area_key": "1_1_7_1",
"notes": "TRIAL!"
},
{
"area_key": "1_1_7_2",
"notes": "Warden's quarters -> Warden's chambers -> kill brutus"
},
{
"area_key": "1_1_8",
"notes": ""
},
{
"area_key": "1_1_9",
"notes": ""
},
{
"area_key": "1_1_11_1",
"notes": ""
},
{
"area_key": "1_1_9",
"notes": "Find the cave"
},
{
"area_key": "1_1_9a",
"notes": "Get the allflame"
},
{
"area_key": "1_1_9",
"notes": "Kill fairgraves, DC/TP/WP to next"
},
{
"area_key": "1_1_11_1",
"notes": ""
},
{
"area_key": "1_1_11_2",
"notes": "Find merveil's lair, kill merveil"
},
{
"area_key": "1_2_1",
"notes": ""
},
{
"area_key": "1_2_town",
"notes": ""
},
{
"area_key": "1_2_7",
"notes": ""
},
{
"area_key": "1_2_12",
"notes": "\nBandit Oak, kill or help (Some builds might struggle doing this one first, might just wanna grab WP and go)"
},
{
"area_key": "1_2_7",
"notes": ""
},
{
"area_key": "1_2_9",
"notes": "Waypoint along road\nWeaver first (look for spiderwebs along a side)"
},
{
"area_key": "1_2_10",
"notes": ""
},
{
"area_key": "1_2_9",
"notes": "Bandit Alira, kill or help\nKill blackguards\nDC/TP/WP"
},
{
"area_key": "1_2_2",
"notes": "Optional: The Den, kill the white beast"
},
{
"area_key": "1_2_3",
"notes": ""
},
{
"area_key": "1_2_15",
"notes": ""
},
{
"area_key": "1_2_5_1",
"notes": "\nTrial\nOptional quest in crypt level 2\nDC/TP/WP"
},
{
"area_key": "1_2_3",
"notes": ""
},
{
"area_key": "1_2_4",
"notes": "\nBandit Kraityn, kill or help\nDC/TP/WP"
},
{
"area_key": "1_2_3",
"notes": ""
},
{
"area_key": "1_2_6_1",
"notes": ""
},
{
"area_key": "1_2_6_2",
"notes": "TRIAL!\nHelena\nDC/TP/WP"
},
{
"area_key": "1_2_12",
"notes": "Close to "
},
{
"area_key": "1_2_11",
"notes": "open the seal and continue"
},
{
"area_key": "1_2_8",
"notes": ""
},
{
"area_key": "1_2_14_2",
"notes": "Crafting recipe"
},
{
"area_key": "1_2_14_3",
"notes": "DON'T MISS RECIPE\nKill the Vall oversoul"
},
{
"area_key": "1_3_1",
"notes": "Clarissa on the way to town"
},
{
"area_key": "1_3_town",
"notes": ""
},
{
"area_key": "1_3_2",
"notes": "Remember where sewers is for when you got the keys!"
},
{
"area_key": "1_3_3_1",
"notes": "\nTRIAL!\nPiety\nRecipe\nDC/TP/WP"
},
{
"area_key": "1_3_1",
"notes": "Get sewer keys"
},
{
"area_key": "1_3_2",
"notes": "Open the sewer with keys from town"
},
{
"area_key": "1_3_10_1",
"notes": "1 bust before rest\n\nremaining 2 busts"
},
{
"area_key": "1_3_5",
"notes": "\nOptionally get decanter spiritus for swig of hope quest"
},
{
"area_key": "1_3_6",
"notes": "TRIAL!\nRecipe\nDC/TP/WP"
},
{
"area_key": "1_3_5",
"notes": ""
},
{
"area_key": "1_3_7",
"notes": "Get ribbon spool and \n(down left)\nDocks up left"
},
{
"area_key": "1_3_9",
"notes": "Find infernal talc\nOptionally find and fairgraves for part of swig of hope quest"
},
{
"area_key": "1_3_7",
"notes": "Solaris temple up to the right kind of compared to docks"
},
{
"area_key": "1_3_8_1",
"notes": ""
},
{
"area_key": "1_3_8_2",
"notes": "Dialla\nRecipe in the room on the side"
},
{
"area_key": "1_3_10_1",
"notes": "Unblock the place close to \nRecipe\nEbony barracks"
},
{
"area_key": "1_3_13",
"notes": ""
},
{
"area_key": "1_3_14_1",
"notes": ""
},
{
"area_key": "1_3_14_2",
"notes": "Piety,\nRecipe\nDC/TP/WP"
},
{
"area_key": "1_3_13",
"notes": "gardens around east"
},
{
"area_key": "1_3_15",
"notes": "Follow path\n\n\nLibrary top left(?) (optional quest for gem shop)\nTRIAL! bit top right compared to library (?)\n\nOptional chitus plum (quest for fairgraves done)\n\nSceptre of god (lower) (follow main path after )"
},
{
"area_key": "1_3_18_1",
"notes": ""
},
{
"area_key": "1_3_18_2",
"notes": ""
},
{
"area_key": "1_4_1",
"notes": ""
},
{
"area_key": "1_4_town",
"notes": ""
},
{
"area_key": "1_4_2",
"notes": "Kill Voll\nRecipe\nDC/TP"
},
{
"area_key": "1_4_3_1",
"notes": ""
},
{
"area_key": "1_4_3_2",
"notes": "Deshret's spirit\nThen crystal veins"
},
{
"area_key": "1_4_3_3",
"notes": "Recipe\n\n(Potentially do lab now)\nKill kaom and daresso"
},
{
"area_key": "1_4_6_1",
"notes": ""
},
{
"area_key": "1_4_6_2",
"notes": "Belly of the beast\nKill piety\nRecipe"
},
{
"area_key": "1_4_6_3",
"notes": "\n\nKill the 3 guardians\n\nBlack core, kill malachai!\n\nDC/TP/WP"
},
{
"area_key": "1_4_7",
"notes": "Recipe\nOriath portal"
},
{
"area_key": "1_5_1",
"notes": "Kill overseer Crow\nLadder drops down nearby when you go close"
},
{
"area_key": "1_5_town",
"notes": "Town! :D"
},
{
"area_key": "1_5_2",
"notes": "Miasmeter down left\nkill Justicar"
},
{
"area_key": "1_5_3",
"notes": ""
},
{
"area_key": "1_5_4",
"notes": ""
},
{
"area_key": "1_5_5",
"notes": "Recipe\n\nKill high templar avarius\nDC/TP/WP"
},
{
"area_key": "1_5_4b",
"notes": ""
},
{
"area_key": "1_5_3b",
"notes": "North east = Torched Courts (you come from here)\nNorth west = Ossuary ()"
},
{
"area_key": "1_5_6",
"notes": "Recipe\nSign of Purity\nDC/TP/WP/Exit"
},
{
"area_key": "1_5_3b",
"notes": "Kill Utula\nThen go to Reliquary\nEast = Utula\nSouth east = Reliquary"
},
{
"area_key": "1_5_7",
"notes": "Recipe\nTorments in 3 '\"corners\" \nDC/TP/WP"
},
{
"area_key": "1_5_3b",
"notes": "North west = Ossuary ()\nWest = Cathedral rooftop"
},
{
"area_key": "1_5_8",
"notes": "Find cathedral apex\nKill Kitava!"
},
{
"area_key": "2_6_town",
"notes": "Down left (back to strand)"
},
{
"area_key": "2_6_1",
"notes": "Kill all monster on the strand, unique at end\nDC/TP/WP/go back"
},
{
"area_key": "2_6_town",
"notes": "Potentially you'd want to buy a bunch of gems from"
},
{
"area_key": "2_6_2",
"notes": ""
},
{
"area_key": "2_6_4",
"notes": "Kill the forgotten warrior \nThen karui fortress"
},
{
"area_key": "2_6_5",
"notes": "kill tukohama in his keep\nRecipe inside the keep!!!"
},
{
"area_key": "2_6_6",
"notes": ""
},
{
"area_key": "2_6_7_1",
"notes": "Recipe\n\nTRIAL!"
},
{
"area_key": "2_6_7_2",
"notes": "Ascend the tower and kill brutus+shavronne!\nRecipe in Warden's Chambers afterwards"
},
{
"area_key": "2_6_8",
"notes": "\nValley of the firedrinker (kill abberath)\nDC/TP/WP"
},
{
"area_key": "2_6_9",
"notes": "Recipe\n"
},
{
"area_key": "2_6_10",
"notes": ""
},
{
"area_key": "2_6_11",
"notes": "Find spawning grounds and kill Puppet Mistress\nDC/TP"
},
{
"area_key": "2_6_10",
"notes": ""
},
{
"area_key": "2_6_12",
"notes": ""
},
{
"area_key": "2_6_13",
"notes": ""
},
{
"area_key": "2_6_14",
"notes": "Recipe\n"
},
{
"area_key": "2_6_15",
"notes": "Find and kill the Brine king"
},
{
"area_key": "2_7_1",
"notes": ""
},
{
"area_key": "2_7_2",
"notes": ""
},
{
"area_key": "2_7_3",
"notes": ""
},
{
"area_key": "2_7_4",
"notes": "Recipe\n\nTRIAL!\nMaligaro's Map\nDC/TP/WP"
},
{
"area_key": "2_7_2",
"notes": ""
},
{
"area_key": "2_7_5_1",
"notes": "\nRecipe\nMaligaro's map for sanctum"
},
{
"area_key": "2_7_5_map",
"notes": "Kill maligaro\nREMEMBER to take black venom from the spider"
},
{
"area_key": "2_7_5_1",
"notes": ""
},
{
"area_key": "2_7_5_2",
"notes": "TRIAL!\nRecipe"
},
{
"area_key": "2_7_6",
"notes": ""
},
{
"area_key": "2_7_7",
"notes": "\nFind and kill Greust (Fortress Encampment)"
},
{
"area_key": "2_7_8",
"notes": "Optionally find the shrine, go to town get greust's necklace and then put it on the shrine\n(amulet reward quest)"
},
{
"area_key": "2_7_9",
"notes": "Collect fireflies\nRecipe\nKill the Gruthkul\nDC/TP/EXIT"
},
{
"area_key": "2_7_8",
"notes": ""
},
{
"area_key": "2_7_10",
"notes": "\nRecipe\nKishara's Star"
},
{
"area_key": "2_7_11",
"notes": "\nFind Yeena"
},
{
"area_key": "2_7_12_1",
"notes": ""
},
{
"area_key": "2_7_12_2",
"notes": "Recipe\nArakaali's web, kill arakali"
},
{
"area_key": "2_8_1",
"notes": ""
},
{
"area_key": "2_8_town",
"notes": ""
},
{
"area_key": "2_8_2_1",
"notes": ""
},
{
"area_key": "2_8_2_2",
"notes": "Recipe\nLoose Crate\nKill Doedre the vile\n\nSewer outlet leads to next + "
},
{
"area_key": "2_8_8",
"notes": "Closer to the entry of the quay than grain gate is a long bridge to find ressurection site (Tolman)\n"
},
{
"area_key": "2_8_9",
"notes": "Kill gemling legionnaires\nContinue from that area to find next place"
},
{
"area_key": "2_8_10",
"notes": "Follow road for "
},
{
"area_key": "2_8_12_1",
"notes": ""
},
{
"area_key": "2_8_12_2",
"notes": "Kill Dawn\nRECIPE\nDC/TP\n(we're going to doedre's cesspool through )"
},
{
"area_key": "2_8_2_2",
"notes": ""
},
{
"area_key": "2_8_3",
"notes": ""
},
{
"area_key": "2_8_5",
"notes": "Kill the boss to get the quest item\nTRIAL!\nRecipe"
},
{
"area_key": "2_8_4",
"notes": "Kill yuuuuguuulll!!! :D\nDC/TP"
},
{
"area_key": "2_8_5",
"notes": ""
},
{
"area_key": "2_8_6",
"notes": " (up left kinda)"
},
{
"area_key": "2_8_7_1_",
"notes": ""
},
{
"area_key": "2_8_7_2",
"notes": "Kill Dusk!\nRECIPE!\nDC/TP"
},
{
"area_key": "2_8_6",
"notes": "(Down right kinda)"
},
{
"area_key": "2_8_13",
"notes": "Kill the sun and moon false gods ;D"
},
{
"area_key": "2_9_1",
"notes": "If for whatever reason you'd want to level a bit, this place is usually pretty decent because of the straight layout"
},
{
"area_key": "2_9_town",
"notes": ""
},
{
"area_key": "2_9_2",
"notes": "Go down the supply hoists,"
},
{
"area_key": "2_9_3",
"notes": "Recipe\n\nStorm Chest (quest)\nWhen you find oasis, TP to town\n"
},
{
"area_key": "2_9_town",
"notes": "Back through portal"
},
{
"area_key": "2_9_3",
"notes": ""
},
{
"area_key": "2_9_4",
"notes": "Sand pit\nKill Shakari!\nDC/TP"
},
{
"area_key": "2_9_3",
"notes": ""
},
{
"area_key": "2_9_5",
"notes": " (top right)"
},
{
"area_key": "2_9_6",
"notes": "Recipe\nGet the basilisk Acid\nDC/TP"
},
{
"area_key": "2_9_5",
"notes": ""
},
{
"area_key": "2_9_7",
"notes": "\nTRIAL\nRecipe"
},
{
"area_key": "2_9_8",
"notes": "Recipe\n\nShrine of the winds, kill Garukhan\n\nRefinery top right"
},
{
"area_key": "2_9_9",
"notes": "Kill the boss to get the powder in the room beside him\nDC/TP"
},
{
"area_key": "2_9_8",
"notes": "Sin"
},
{
"area_key": "2_9_10_1",
"notes": ""
},
{
"area_key": "2_9_10_2",
"notes": "Kill the 3 bosses\nEnter black heart\nKill the depraved trinity"
},
{
"area_key": "2_10_town",
"notes": ""
},
{
"area_key": "2_10_1",
"notes": "Close top left save the dude"
},
{
"area_key": "2_10_2",
"notes": "Ur coming from west\n, Ossuary = North west"
},
{
"area_key": "2_10_9",
"notes": "Bone pits\nTRIAL!\nMaybe wanna do lab around here\nDC/TP"
},
{
"area_key": "2_10_2",
"notes": ", Ossuary = North west\nTorched Courts = North east"
},
{
"area_key": "2_10_3",
"notes": ""
},
{
"area_key": "2_10_4",
"notes": "Recipe\n\nKill Avarius in sanctum of Innocence\nDC/TP"
},
{
"area_key": "2_10_2",
"notes": ", Ossuary = North west\nControl Blocks = South west"
},
{
"area_key": "2_10_7",
"notes": "Kill Vilenta\nDC/TP"
},
{
"area_key": "2_10_2",
"notes": "Just above the go to Innocence"
},
{
"area_key": "2_10_5",
"notes": ""
},
{
"area_key": "2_10_6",
"notes": "Recipe\nKill A10 KITAVA! >:D\nDC/TP/DONE"
}
],
"current": 0
}

@ -1,4 +1,4 @@
<div *ngIf="!isOverlay" class="main-container standalone">
<div *ngIf="!overlayService.isOverlay" class="main-container standalone">
<mat-tab-group mat-stretch-tabs="false" class="tabs">
<mat-tab>
<ng-template mat-tab-label>
@ -14,9 +14,9 @@
</mat-tab-group>
</div>
<ng-container *ngIf="isOverlay">
<div class="main-container overlay" *ngIf="isOverlay"
[ngStyle]="overlayService.interactable ? {'background-color' : configService.config.backdropBg} : {'background-color' : configService.config.backdropBg} ">
<ng-container *ngIf="overlayService.isOverlay">
<div class="main-container overlay" *ngIf="overlayService.isOverlay"
[ngStyle]="overlayService.interactable ? {'background-color' : configService.config.backdropBg} : {} ">
<plan-display [backgroundColor]="configService.config.planBg"></plan-display>
</div>
</ng-container>

@ -11,7 +11,7 @@
[attr.data-slideIndex]="visible.index"
[ngStyle]="vertical ? {'grid-row-start':visible.index + 1} : {'grid-column-start':visible.index + 1}">
<div class="slide-container">
<ng-container *ngTemplateOutlet="template!; context: { $implicit: slides[visible.index] }">
<ng-container *ngTemplateOutlet="template!; context: { $implicit: slides[visible.index], index: visible.index }">
</ng-container>
</div>
</div>

@ -1,15 +1,17 @@
<ng-container *ngIf="init">
<div #globalTopLeft style="position: fixed; top: 0; left: 0; z-index: -1;"></div>
<ng-container *ngIf="rect && planService.currentPlan">
<div class="target" [style.background-color]="backgroundColor ? backgroundColor : 'rgba(0, 0, 0, 0.1)'"
<div class="target waypoint" [style.background-color]="backgroundColor ? backgroundColor : 'rgba(0, 0, 0, 0.1)'"
[style.transform]="transform()" [style.width]="rect.width + 'px'" [style.height]="rect.height + 'px'"
[class]="hasWaypoint() ? 'active' : ''"
#targetRef>
<ng-container *ngIf="planService.currentPlan">
<carousel [numVisible]="3" [slides]="planService.currentPlan.plan"
(afterInitSelf)="registerZoneSlides($event)">
<ng-template let-slide>
<div class="zone-slide">{{worldAreaMap!.get(slide.area_key)!.name}}</div>
<ng-template let-slide let-index="index">
<div class="zone-slide" [style.border]="index == planService.currentPlan.current ? '1px white solid' : 'none'">{{worldAreaMap!.get(slide.area_key)!.name}}<div class="waypoint-text" *ngIf="hasWaypoint(slide.area_key)">(W)</div></div>
</ng-template>
</carousel>
<carousel [slides]="planService.currentPlan.plan" (afterInitSelf)="registerCurrentSlides($event)">
@ -19,16 +21,16 @@
</carousel>
</ng-container>
<button mat-icon-button class="settings-button" (click)="settingsOpen = !settingsOpen"><img src="assets/material-settings.svg"></button>
<button mat-icon-button *ngIf="overlayService.interactable" class="settings-button" (click)="settingsOpen = !settingsOpen"><img src="assets/material-settings.svg"></button>
</div>
<ngx-moveable [target]="targetRef" [draggable]="draggable && overlayService.interactable" [resizable]="true && overlayService.interactable" (drag)="onDrag($event)"
(resize)="onResize($event)" (dragEnd)="onDragEnd($event)" (resizeEnd)="onResizeEnd($event)"
[bounds]="bounds" [snappable]="true"></ngx-moveable>
[bounds]="bounds" [snappable]="true" [style.visibility]="overlayService.interactable ? 'visible' : 'hidden'"></ngx-moveable>
</ng-container>
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOpen]="settingsOpen || !planService.currentPlan"
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOpen]="(settingsOpen || !planService.currentPlan) && overlayService.interactable"
[cdkConnectedOverlayOrigin]="globalTopLeft">
<div class="overlay">
<div class="planChooser">
@ -37,7 +39,7 @@
</div>
</div>
<settings></settings>
<button mat-icon-button class="exit" *ngIf="planService.currentPlan"><span>+</span></button>
<button mat-icon-button class="exit" *ngIf="planService.currentPlan" (click)="settingsOpen = false"><span>+</span></button>
</div>
</ng-template>
</ng-container>

@ -15,16 +15,50 @@
user-select: none;
&>* {
flex: 1 1 auto;
flex: 1 1 100px;
&:first-child {
flex: 0 0 auto;
max-height: 60px;
flex: 1 1 15px;
}
}
}
.zone-slide {}
.waypoint-text {
color: rgba(25, 255, 255, 0.5);
position: absolute;
right: 10px;
}
.waypoint {
/* Pre-render the bigger shadow, but hide it */
&::after {
box-shadow: 0 0px 15px rgba(25, 255, 255, 0.5);
transition: opacity 0.3s ease-in-out;
opacity: 0;
content: "";
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
}
}
.active {
&::after {
opacity: 1;
}
}
.zone-slide {
display: relative;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.controls {
position: absolute;
@ -50,6 +84,7 @@ notes {
position: absolute;
top: 0;
right: 0;
}
@ -60,15 +95,17 @@ notes {
right: 10px;
background-color: none;
display: flex;
align-items: center;
justify-content: center;
align-items: center;
justify-content: center;
align-content: center;
font-size: 10rem;
& span {
display: flex;
align-items: center;
justify-content: center;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
@ -81,9 +118,9 @@ notes {
}
.material-symbols-outlined {
font-variation-settings:
'FILL' 0,
'wght' 400,
'GRAD' 0,
'opsz' 48
font-variation-settings:
'FILL' 0,
'wght' 400,
'GRAD' 0,
'opsz' 48
}

@ -42,15 +42,15 @@ export class PlanDisplayComponent implements AfterViewInit, OnInit {
constructor(private events: EventsService, private configService: ConfigService, private cdr: ChangeDetectorRef, private shortcut: ShortcutService, public planService: PlanService, public worldAreaService: WorldAreaService, public overlayService: OverlayService, private zone: NgZone) {
window.addEventListener("resize", this.windowInitHandler.bind(this));
const test = this.events.listen<StateEvent>("OverlayStateChange").subscribe(event => {
if (!this.hasAttachedOnce) {
this.hasAttachedOnce = true;
test.unsubscribe();
if (!event.payload.Hidden)
overlayService.setInteractable();
}
// const test = this.events.listen<StateEvent>("OverlayStateChange").subscribe(event => {
// if (!this.hasAttachedOnce) {
// this.hasAttachedOnce = true;
// test.unsubscribe();
// if (!event.payload.Hidden)
// overlayService.setInteractable();
// }
});
// });
appWindow.listen("entered", (entered) => {
console.log("entered", entered);
@ -69,7 +69,6 @@ export class PlanDisplayComponent implements AfterViewInit, OnInit {
windowInitHandler() {
if (window.innerWidth > 0) {
this.ngAfterViewInit();
window.removeEventListener("resize", this.windowInitHandler.bind(this));
}
}
@ -95,6 +94,15 @@ export class PlanDisplayComponent implements AfterViewInit, OnInit {
return `${this.rect!.height}px`;
}
hasWaypoint(key?: string): boolean {
if(!key) {
key = this.planService.currentPlan!.plan[this.planService.currentPlan!.current].area_key;
}
const world_area = this.worldAreaMap?.get(key);
console.log("waypoint: ", world_area!.has_waypoint);
return world_area!.has_waypoint;
}
ngAfterViewInit(): void {
if (window.innerWidth > 0) {
const cfgRect = this.configService.config.initialPlanWindowPosition;

@ -19,12 +19,15 @@ export class OverlayService {
interactable: boolean = false;
isBinding: boolean = false;
visible: boolean = false;
isOverlay: boolean;
constructor(private shortcuts: ShortcutService, private events: EventsService, private configService: ConfigService) {
if (appWindow.label == "Overlay") {
this.shortcuts.register(this.configService.config.toggleOverlay, this.onToggleOverlay.bind(this));
this.events.listen<StateEvent>("OverlayStateChange").subscribe(this.onOverlayStateChange.bind(this));
}
this.isOverlay = appWindow.label === "Overlay";
}
onOverlayStateChange(event: Event<StateEvent>) {

@ -6,7 +6,7 @@
backdrop color</color-picker>
</div>
<div class="checkboxes">
<mat-slide-toggle color="primary" [(ngModel)]="configService.config.hideOnUnfocus">Auto hide on unfocus</mat-slide-toggle>
<mat-slide-toggle [color]="overlayService.isOverlay ? 'primary-on-dark' : 'primary'" [(ngModel)]="configService.config.hideOnUnfocus">Auto hide on unfocus</mat-slide-toggle>
</div>
<button mat-raised-button (click)="rebindOverlayToggle()">Overlay toggle shortcut: {{configService.config.toggleOverlay}}</button>

@ -6,4 +6,8 @@
.checkboxes {
display: grid;
grid-template-columns: 1fr 10fr;
}
mat-slide-toggle {
color: green;
}

@ -28,7 +28,7 @@ export class SettingsComponent {
constructor(
public configService: ConfigService,
private zone: NgZone,
private overlayService: OverlayService,
public overlayService: OverlayService,
private planService: PlanService,
public dialog: MatDialog,
private shortcut: ShortcutService

@ -1 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" viewBox="0 -960 960 960" width="48"><path d="m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm92-270q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Zm0-60q-29 0-49.5-20.5T410-480q0-29 20.5-49.5T480-550q29 0 49.5 20.5T550-480q0 29-20.5 49.5T480-410Zm0-70Zm-44 340h88l14-112q33-8 62.5-25t53.5-41l106 46 40-72-94-69q4-17 6.5-33.5T715-480q0-17-2-33.5t-7-33.5l94-69-40-72-106 46q-23-26-52-43.5T538-708l-14-112h-88l-14 112q-34 7-63.5 24T306-642l-106-46-40 72 94 69q-4 17-6.5 33.5T245-480q0 17 2.5 33.5T254-413l-94 69 40 72 106-46q24 24 53.5 41t62.5 25l14 112Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" height="48" viewBox="0 -960 960 960" width="48">
<path fill="black" style="color: #ff00ff" d="m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm92-270q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Zm0-60q-29 0-49.5-20.5T410-480q0-29 20.5-49.5T480-550q29 0 49.5 20.5T550-480q0 29-20.5 49.5T480-410Zm0-70Zm-44 340h88l14-112q33-8 62.5-25t53.5-41l106 46 40-72-94-69q4-17 6.5-33.5T715-480q0-17-2-33.5t-7-33.5l94-69-40-72-106 46q-23-26-52-43.5T538-708l-14-112h-88l-14 112q-34 7-63.5 24T306-642l-106-46-40 72 94 69q-4 17-6.5 33.5T245-480q0 17 2.5 33.5T254-413l-94 69 40 72 106-46q24 24 53.5 41t62.5 25l14 112Z"/>
<path transform="scale(0.9) translate(55, -55)" fill="white" style="color: #ff00ff" d="m388-80-20-126q-19-7-40-19t-37-25l-118 54-93-164 108-79q-2-9-2.5-20.5T185-480q0-9 .5-20.5T188-521L80-600l93-164 118 54q16-13 37-25t40-18l20-127h184l20 126q19 7 40.5 18.5T669-710l118-54 93 164-108 77q2 10 2.5 21.5t.5 21.5q0 10-.5 21t-2.5 21l108 78-93 164-118-54q-16 13-36.5 25.5T592-206L572-80H388Zm92-270q54 0 92-38t38-92q0-54-38-92t-92-38q-54 0-92 38t-38 92q0 54 38 92t92 38Zm0-60q-29 0-49.5-20.5T410-480q0-29 20.5-49.5T480-550q29 0 49.5 20.5T550-480q0 29-20.5 49.5T480-410Zm0-70Zm-44 340h88l14-112q33-8 62.5-25t53.5-41l106 46 40-72-94-69q4-17 6.5-33.5T715-480q0-17-2-33.5t-7-33.5l94-69-40-72-106 46q-23-26-52-43.5T538-708l-14-112h-88l-14 112q-34 7-63.5 24T306-642l-106-46-40 72 94 69q-4 17-6.5 33.5T245-480q0 17 2.5 33.5T254-413l-94 69 40 72 106-46q24 24 53.5 41t62.5 25l14 112Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 886 B

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -43,5 +43,9 @@ div.picker_wrapper.popup {
flex-grow: 1;
}
.mat-primary-on-dark {
--mdc-theme-text-primary-on-background: white;
}
// Emit theme-dependent styles for common features used across multiple components.
@include mat.all-component-themes($my-theme);
Loading…
Cancel
Save