annotate web/effects/Light9EffectListing.ts @ 2376:4556eebe5d73

topdir reorgs; let pdm have its src/ dir; separate vite area from light9/
author drewp@bigasterisk.com
date Sun, 12 May 2024 19:02:10 -0700
parents light9/web/effects/Light9EffectListing.ts@06bf6dae8e64
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
1 import debug from "debug";
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
2 import { css, html, LitElement } from "lit";
2244
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
3 import { customElement } from "lit/decorators.js";
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
4 import { NamedNode } from "n3";
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
5 import { sortBy } from "underscore";
2372
06bf6dae8e64 reorg tools into light9/web/ and a single vite instance
drewp@bigasterisk.com
parents: 2244
diff changeset
6 import { getTopGraph } from "../RdfdbSyncedGraph";
06bf6dae8e64 reorg tools into light9/web/ and a single vite instance
drewp@bigasterisk.com
parents: 2244
diff changeset
7 import { SyncedGraph } from "../SyncedGraph";
06bf6dae8e64 reorg tools into light9/web/ and a single vite instance
drewp@bigasterisk.com
parents: 2244
diff changeset
8 export { ResourceDisplay } from "../ResourceDisplay";
2244
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
9
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
10 debug.enable("*");
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
11 const log = debug("listing");
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
12
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
13 @customElement("light9-effect-listing")
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
14 export class Light9EffectListing extends LitElement {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
15 render() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
16 return html`
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
17 <h1>Effects</h1>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
18 <rdfdb-synced-graph></rdfdb-synced-graph>
1589
21a52ce16954 new effects2.html polymer port
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
19
2244
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
20 ${this.effects.map((e: NamedNode) => html`<light9-effect-class .uri=${e}></light9-effect-class>`)}
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
21 `;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
22 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
23 graph!: SyncedGraph;
2244
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
24 effects: NamedNode[] = [];
1997
3b7ff54a41a9 effects/ listing sorts by label, not uri
drewp@bigasterisk.com
parents: 1805
diff changeset
25
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
26 constructor() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
27 super();
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
28 getTopGraph().then((g) => {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
29 this.graph = g;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
30 this.graph.runHandler(this.getClasses.bind(this), "getClasses");
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
31 });
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
32 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
33
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
34 getClasses() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
35 const U = this.graph.U();
2244
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
36 this.effects = this.graph.subjects(U("rdf:type"), U(":Effect")) as NamedNode[];
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
37 this.effects = sortBy(this.effects, (ec: NamedNode) => {
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
38 try {
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
39 return this.graph.stringValue(ec, U("rdfs:label"));
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
40 } catch (e) {
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
41 return ec.value;
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
42 }
0c6c590664ad fix up effectListing
drewp@bigasterisk.com
parents: 2101
diff changeset
43 });
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
44 this.requestUpdate();
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
45 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
46 }
1589
21a52ce16954 new effects2.html polymer port
Drew Perttula <drewp@bigasterisk.com>
parents:
diff changeset
47
2101
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
48 @customElement("light9-effect-class")
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
49 export class Light9EffectClass extends LitElement {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
50 static styles = [
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
51 css`
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
52 :host {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
53 display: block;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
54 padding: 5px;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
55 border: 1px solid green;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
56 background: #1e271e;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
57 margin-bottom: 3px;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
58 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
59 a {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
60 color: #7992d0;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
61 background: #00000859;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
62 min-width: 4em;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
63 min-height: 2em;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
64 display: inline-block;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
65 text-align: center;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
66 vertical-align: middle;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
67 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
68 resource-display {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
69 min-width: 12em;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
70 font-size: 180%;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
71 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
72 `,
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
73 ];
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
74 render() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
75 if (!this.uri) {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
76 return html`loading...`;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
77 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
78 return html`
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
79 Effect
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
80 <resource-display .uri=${this.uri} rename></resource-display>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
81 <a href="../live?effect=${this.uri.value}">Edit</a>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
82 <iron-ajax id="songEffects" url="/effectEval/songEffects" method="POST" content-type="application/x-www-form-urlencoded"></iron-ajax>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
83 <span style="float:right">
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
84 <button disabled @click=${this.onAdd}>Add to current song</button>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
85 <button disabled @mousedown=${this.onMomentaryPress} @mouseup=${this.onMomentaryRelease}>Add momentary</button>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
86 </span>
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
87 `;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
88 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
89 graph!: SyncedGraph;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
90 uri?: NamedNode;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
91
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
92 onAdd() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
93 // this.$.songEffects.body = { drop: this.uri.value };
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
94 // this.$.songEffects.generateRequest();
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
95 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
96
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
97 onMomentaryPress() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
98 // this.$.songEffects.body = { drop: this.uri.value, event: "start" };
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
99 // this.lastPress = this.$.songEffects.generateRequest();
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
100 // return this.lastPress.completes.then((request: { response: { note: any } }) => {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
101 // return (this.lastMomentaryNote = request.response.note);
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
102 // });
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
103 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
104
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
105 onMomentaryRelease() {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
106 // if (!this.lastMomentaryNote) {
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
107 // return;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
108 // }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
109 // this.$.songEffects.body = { drop: this.uri.value, note: this.lastMomentaryNote };
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
110 // this.lastMomentaryNote = null;
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
111 // return this.$.songEffects.generateRequest();
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
112 }
4248f40ddcae effects/ is now at effectListing/
drewp@bigasterisk.com
parents: 1997
diff changeset
113 }