From b320d174be0b114b70cae64112f3e584033d9e93 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 30 Apr 2026 19:55:51 -0300 Subject: content, data: FlashSide.isolateActs, previous{Flash,Act}, etc --- src/data/things/flash/Flash.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/data/things/flash/Flash.js') diff --git a/src/data/things/flash/Flash.js b/src/data/things/flash/Flash.js index 1f290b3f..b06b0452 100644 --- a/src/data/things/flash/Flash.js +++ b/src/data/things/flash/Flash.js @@ -1,4 +1,5 @@ import {input, V} from '#composite'; +import {atOffset} from '#sugar'; import Thing from '#thing'; import {anyOf, isColor, isDirectory, isNumber, isString} from '#validators'; @@ -138,6 +139,36 @@ export class Flash extends Thing { withPropertyFromObject('act', V('side')), exposeDependency('#act.side'), ], + + previousFlash: { + flags: {expose: true}, + expose: { + dependencies: ['this', 'act', 'side'], + compute: ({this: flash, act, side}) => + (flash !== act.flashes.at(0) + ? atOffset(act.flashes, act.flashes.indexOf(flash), -1) + : side.isolateActs + ? null + : act.previousAct + ? act.previousAct.flashes.at(-1) + : null), + }, + }, + + nextFlash: { + flags: {expose: true}, + expose: { + dependencies: ['this', 'act', 'side'], + compute: ({this: flash, act, side}) => + (flash !== act.flashes.at(-1) + ? atOffset(act.flashes, act.flashes.indexOf(flash), +1) + : side.isolateActs + ? null + : act.nextAct + ? act.nextAct.flashes.at(0) + : null), + }, + }, }); static [Thing.getSerializeDescriptors] = ({ -- cgit 1.3.0-6-gf8a5