diff --git a/index-transition.html b/index-transition.html deleted file mode 100644 index e08fef3..0000000 --- a/index-transition.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - Sweetpea · Signal and Web Component Enhanced Web Apps - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/index.html b/index.html index ed5a7ea..7df25f0 100644 --- a/index.html +++ b/index.html @@ -86,20 +86,21 @@ - + + + - - + diff --git a/menu.json b/menu.json deleted file mode 100644 index b9dc7ce..0000000 --- a/menu.json +++ /dev/null @@ -1,203 +0,0 @@ -[ - { - "title": "Introduction", - "sections": [ - "Hello world", - "Dynamic attributes", - "Styling", - "Nested components", - "HTML tags" - ] - }, - { - "title": "Reactivity", - "sections": [ - "Reactive assignments", - "Reactive declarations", - "Reactive statements" - ] - }, - { - "title": "Props", - "sections": [ - "Declaring props", - "Default values", - "Spread props" - ] - }, - { - "title": "Logic", - "sections": [ - "If blocks", - "Else blocks", - "Else-if blocks", - "Each blocks", - "Keyed each blocks", - "Await blocks" - ] - }, - { - "title": "Events", - "sections": [ - "DOM events", - "Inline handlers", - "Event modifiers", - "Component events", - "Event forwarding", - "DOM event forwarding" - ] - }, - { - "title": "Bindings", - "sections": [ - "Text inputs", - "Numeric inputs", - "Checkbox inputs", - "Group inputs", - "Textarea inputs", - "File inputs", - "Select bindings", - "Select multiple", - "Each block bindings", - "Media elements", - "Dimensions", - "bind:this={canvas}", - "Component bindings" - ] - }, - { - "title": "Lifecycle", - "sections": [ - "onMount", - "onDestroy", - "beforeUpdate and afterUpdate", - "tick" - ] - }, - { - "title": "Stores", - "sections": [ - "Writable stores", - "Auto-subscriptions", - "Readable stores", - "Derived stores", - "Custom stores" - ] - }, - { - "title": "Motion", - "sections": [ - "Tweened", - "Spring" - ] - }, - { - "title": "Transitions", - "sections": [ - "The transition directive", - "Adding parameters", - "In and out", - "Custom CSS transitions", - "Custom JS transitions", - "Transition events", - "Deferred transitions" - ] - }, - { - "title": "Animations", - "sections": [ - "The animate directive" - ] - }, - { - "title": "Easing", - "sections": [ - "Ease Visualiser" - ] - }, - { - "title": "SVG", - "sections": [ - "Clock", - "Bar chart", - "Area chart", - "Scatterplot", - "SVG transitions" - ] - }, - { - "title": "Actions", - "sections": [ - "The use directive", - "Adding parameters", - "A more complex action" - ] - }, - { - "title": "Classes", - "sections": [ - "The class directive", - "Shorthand class directive" - ] - }, - { - "title": "Component composition", - "sections": [ - "Slots", - "Slot fallbacks", - "Named slots", - "Slot props", - "Conditional Slots", - "Modal" - ] - }, - { - "title": "Context API", - "sections": [ - "setContext and getContext" - ] - }, - { - "title": "Special elements", - "sections": [ - "", - "", - "", - "", - " bindings", - "", - "", - "" - ] - }, - { - "title": "Module context", - "sections": [ - "Named exports" - ] - }, - { - "title": "Debugging", - "sections": [ - "The @debug tag" - ] - }, - { - "title": "7GUIs", - "sections": [ - "Counter", - "Temperature Converter", - "Flight booker", - "Timer", - "CRUD", - "Circle Drawer" - ] - }, - { - "title": "Miscellaneous", - "sections": [ - "Hacker News", - "Immutable data" - ] - } -] diff --git a/src/plug-ins/job-buffer/JobBuffer.js b/src/plug-ins/job-buffer/JobBuffer.js index e35d92c..8a60beb 100644 --- a/src/plug-ins/job-buffer/JobBuffer.js +++ b/src/plug-ins/job-buffer/JobBuffer.js @@ -1,30 +1,27 @@ -import EventEmitter from 'event-emitter'; -import Signal from 'signal'; +import EventEmitter from "event-emitter"; +import Signal from "signal"; -export default class JobQueue extends EventEmitter { +export default class JobBuffer extends EventEmitter { count = new Signal(0); total = new Signal(0); #list = []; constructor() { - super() + super(); } enbuffer(job) { - if(!job) throw new Error('Job is a required prameter'); - + if (!job) throw new Error("Job is a required prameter"); this.#list.push(job); this.count.set(this.#list.length); - this.total.alter(v=>v+1); - console.log('VVV JOB', job); - console.log('VVV TOTAL', this.total.value); - this.emit('enbuffer', job); + this.total.alter((v) => v + 1); + this.emit("enbuffer", job); } debuffer() { this.#list.shift(job); this.count.set(this.#list.length); - this.emit('debuffer', job); + this.emit("debuffer", job); } - remove(id){ - this.#list.splice(this.#list.findIndex(o => o.id === id), 1); + remove(job) { + this.#list.splice(this.#list.indexOf(job), 1); this.count.set(this.#list.length); } [Symbol.iterator]() { diff --git a/src/plug-ins/water-closet/worker-support/WorkerSupport.js b/src/plug-ins/water-closet/worker-support/WorkerSupport.js index 9037b9f..5ce80af 100644 --- a/src/plug-ins/water-closet/worker-support/WorkerSupport.js +++ b/src/plug-ins/water-closet/worker-support/WorkerSupport.js @@ -21,15 +21,14 @@ export default Inheritance => class WorkerSupport extends Inheritance { async createWorker({attribute}={attribute:"worker"}){ this.gc = this.workerPath.subscribe(async workerPath=>this.WorkerClass.set((await import(`${location(window.location.href)}/src/worker/${workerPath}/index.js`)).default)); - - // this.gc = this.workerPath.subscribe(workerPath=>console.log({workerPath})) - // this.gc = this.WorkerClass.subscribe(WorkerClass=>console.log({WorkerClass})) - // this.gc = this.workerInstance.subscribe(workerInstance=>console.log({workerInstance})) - this.gc = this.WorkerClass.subscribe(WorkerClass=>this.workerInstance.value = new WorkerClass({queue:this.queue, buffer:this.buffer, stage:this.getStage().emitter}) ) this.gc = this.workerInstance.subscribe(async workerInstance=>{ await workerInstance.connect(); await workerInstance.connected() }); this.gc = ()=>this.workerInstance.value.disconnected(); // .gc will clean up on removeal of element + + + await new Promise(resolve=>this.gc=this.workerInstance.subscribe(v=>Boolean(v)?resolve():null)); return this; + } activateInputPort(selector = `[data-feature="standard-input"]`){