TyphonJS

T

TyphonJS

Join the community to ask questions about TyphonJS and get answers from other members.

Join

typhonjs-runtime

packages

TJSApplication Character Sheet odd behavior with unlinked tokens

Has anyone else experienced weird when using a TJSApplication as a character sheet with unlinked tokens? In my system, updating the base actor attempts to render the actor sheet for every token on the scene, regardless of whether that token's sheet was open previously. Every token whose sheet hasn't been rendered yet, will cause a fairly predictable "TypeError: An error occurred while rendering TJSDocSheet 45. this._element is null" - the sheet isn't mounted anywhere, so big surprise there. All other sheets will be made visible simultaneously. I think the SvelteApplication _render is missing the following check from foundry.js:
// Applications which are not currently rendered must be forced
if ( !force && (this._state <= states.NONE) ) return;
// Applications which are not currently rendered must be forced
if ( !force && (this._state <= states.NONE) ) return;
...

TJSDocumentCollection best practices?

Hi! I've got a little component I'm using whose purpose is basically to just show a tiny preview of a resolved actor UUID. However, I want it to "short-circuit" (really more like long circuit) so that it grabs a world actor with the same name first, so repeated drag-drops of the same actor onto a scene doesn't infinitely duplicate... TL;DR: I need to be reactive on game.actors, and to do so was going to use a TJSDocumentCollection. Now for my actual ask. Within my component I have the following code. ```JS <script>...

Release `TRL 0.1.1` - Patch release

Greets @FVTT ▹ Developer! I have just released a patch / fix release that fixes a small oversight in the 0.1.0 release regarding the internally used ResizableHandle Svelte component for application windows via ApplicationShell. In the 0.1.0 release if you set width or height to auto and the app window is resizable an error occured. This was just a missed refactoring aspect to some internal code and I happened to not catch it in testing for the 0.1.0 release as it was data specific in how an app is setup. Another fix is passing the element as a JQuery element in the SvelteApplication hook invocation for closeApplication. ...

Uncaught TypeError: $storeElementRoot is undefined

Hi! Encountering the following error when trying to resize an application based on a TJSApplicationShell. Exception: ``` Uncaught TypeError: $storeElementRoot is undefined onResizePointerDown ResizableHandle.svelte:128 resizeDown ResizableHandle.svelte:71...

Popcorn Initiative

Just opening a forum post to track @gerark progress w/ TRL & Svelte + an initial idea of implementing "popcorn initiative"... 😄

Token Action HUD

Let's continue chatting about TAH here to keep track of discussion @larkinabout

PostcssConfig seem not workin with 0.1.0

@mleahy sorry to bother i'm trying to use the postccs feature of the @typhonjs-fvtt/runtime on the module Tidy5eSheet, but for some reason is seem not to work , the 'autoprefixer' in the specific. Can you take a quick look at the vite configuration when you can ? https://raw.githubusercontent.com/sdenec/tidy5e-sheet/master/vite.config.mjs

TJSDocument for aggregating actor flags for Svelte Component

I'm sure this is very simple, but I'm having a hard time understanding how to get this to work. Maybe someone can provide a quicker pointer or two. For a module I'm working on, I'm storing attributes as flags on the Actors document. An example is as such: ``` _ActorPF2e2 : {...

Update to ChatMessage outside of Svelte doesn't trigger reactivity on linked TJSDocument

I'm a bit confused about this... 1. When I render a ChatMessage via svelte, in the chat message svelte component I do: ```javascript let foundryChatMessageDocument = new TJSDocument(void 0, { delete: () => {} }),...

Release `TRL 0.1.0` - The journey to beta begins...

Greets @FVTT ▹ Developer, I am very excited to announce the release of TRL 0.1.0. This is a major release and begins the path toward a full "beta" launch. WARNING: This is a major breaking change release. Some of your cheese has been moved, but it is not gone. Now don't get too scared as this is not a change in the functional aspects of TRL, but a significant refinement to the API structure and locations of where various resources are located. This was necessary for API doc coherency and to move resources around in the library construction to aid future progress....

How do I get the elementRoot of a ChatMessage?

SvelteApplication provides elementRoot prop to components that implement it, which is very useful. I'm looking to get something similar for my Svelte chat message templates. I'm using this in index.js ```javascript Hooks.on('renderChatMessage, (message, html) => {...

Getting started with the GUI and understanding element root

It's been a while, but I've been working on my Knowledge Recalled module since V11 is out, and my friend and I have made progress with getting and storing the data that we need. I'll be honest I'm struggling a little with Typhon for building my GUI. I'm not sure if I'm just lacking understanding of Svelte or what, but I think if I can get may data presented in the gui it'll be a lot easier for me to tinker around to figure out a little more of what is going on. If someone could maybe give me a suggestion or too. The approach I'm taking involves using my GMJournalAppShell as the place where I'm going to pull in all of the other svelte components. ``` <script>...

Drag & Drop broke in v11

Ok so something that broke for me when moving to v11 is drag&drop from both the items tab of the sidebar and from compendiums isn't working. The code I have is: ```javascript export default class SvelteDocumentSheet extends SvelteApplication { async _onDropItem(event, data, actor) { console.log('_onDropItem');...

TJSDocument and Token Issues

```js const tokens = cardData.targets .map(t => [t, fromUuidSync(t)]) .filter(([_, t]) => t); const targets = new Map(...

SyrinControl & Svelte...

I gather there is a bit to discuss... 😄

Creating an interim TJSDocument / document attribute bridge

Hi @wasp... Just moving discussion here as it is a better forum post.
So I have made a system with TRL for my friend's homebrew game system, and I'm working on getting document updates to work. Binding values of inputs directly to the TJSDocument isn't yet supported, so this is what I cooked up thus far:
```js...

TJSGameSettings with not registered settings.

I am not sure what is happening in here. I have created an attachement to the existing Settings page. It works the first time I open it. However, when settings are saved, the window closes, and then subsequent opening of the settings causes these errors....
No description

Storing a collection of Items in an Item?

Use cases would be: - containers could contain other Items - some items have prerequisites, which consist of other Items I'm trying to figure out the best way to represent that. It seems logical that adding Items to an item should be done via drag and drop from a compendium (or from the game items SideBar tab)....

TJSDialog how to use buttons and callback or return value?

I'm planning to use TJSDialog to act as an intervening Application. So... player clicks a button that would normally generate a ChatMessage. However, a flag causes instead a dialog to appear with several options for the player. Once the decision is made between the options, that information needs to be used by the component that opened the dialog to allow the ChatMessage to be generated at that point. Option 1 I can see that TJSDialog has a mechanism for something along these lines, but I haven't been able to figure out how to use it - managedPromise - seems to be a private property of TJSDialog without a setter. ...

Release: `TRL 0.0.23` - "v11 hot patch"

Greets @FVTT ▹ Developer! I just released a hot patch of TRL for v11 support. The only thing changed is supporting the reactive embedded collections API of TJSDocument to take into account the changes of v11. This is not the next full update of TRL. It is just a hot patch. Everything else is the same as TRL 0.0.22 except for the v11 fix for embedded reactive collections. Outside of this one change there should be no other issues using TRL 0.0.23 on Foundry v10 & v11. Of general interest I recommend updating to the latest Vite: 4.3.8 as there are many improvements in the 4.3.x releases. Also, take note that if you update to a Svelte version 3.57.0 or greater there are new accessibility / a11y warnings depending on what you use in TRL / mainly the RTE editor components. I have already fixed that for TRL 0.0.24, but you will see new a11y warnings when building. This is not a problem and already fixed for the next official release....