psytask - v1.1.1
    Preparing search index...

    Class App

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    data: {
        frame_ms: number;
        leave_count: number;
        dpr: number;
        screen_wh_pix: readonly [number, number];
        window_wh_pix: readonly [number, number];
    } = ...

    Type Declaration

    • frame_ms: number

      Frame duration

    • leave_count: number

      Number of times the user has left the page

    • dpr: number

      Device pixel ratio

    • screen_wh_pix: readonly [number, number]

      Screen physical size

    • window_wh_pix: readonly [number, number]

      Window physical size

    root: Element

    Root element of the app

    listeners: { cleanup?: Set<(e: ...) => ...> } = {}

    Methods

    • Load resources to RAM

      It will show loading progress for each resource on page

      Type Parameters

      • const T extends readonly string[]
      • D = Blob

      Parameters

      • urls: T

        Array of resource URLs to load

      • Optionalconvertor: (blob: Blob, url: string) => MaybePromise<D>

        Optional function to convert blob data

      Returns Promise<{ [K in string | number | symbol]: D }>

      Promise that resolves to array of loaded resources

      const [image, audio] = await app.load(['image.png', 'audio.mp3']);
      
      const [image] = await app.load(['image.png'], (blob, url) => {
      console.log('Convert image from', url);
      return window.createImageBitmap(blob);
      });
    • Create data collector

      Type Parameters

      • T extends Data

      Parameters

      Returns DataCollector<T>

      using dc = await app.collector('data.csv');
      dc.add({ name: 'Alice', age: 25 });
      dc.add({ name: 'Bob', age: 30 });
      using dc = await app
      .collector('data.csv')
      .on('add', ({ row, chunk }) => {
      console.log('add a row', row, 'its chunk is', chunk);
      })
      .on('save', ({ chunk, preventDefault }) => {
      preventDefault(); // Prevent the default save behavior
      console.log('save all rows, the final chunk is', chunk);
      });
    • Create a scene

      Type Parameters

      • T extends SceneFunction

      Parameters

      Returns Scene<T>

      const setup = (props: { text: string }, ctx) => {
      const el = h('div'); // create element
      effect(() => {
      el.textContent = props.text; // update element content when props.text changes
      });
      return { node: el, data: () => ({ text: el.textContent }) }; // return element and data getter
      };

      // create scene by setup function
      using scene = app.scene(setup, {
      defaultProps: { text: 'default text' },
      });
      // change props.text and show, then get data
      const data = await scene.show({ text: 'new text' });

      Scene

    • Create a text scene

      Parameters

      • Optionalcontent: string

        Optional text content to display

      • OptionaldefaultOptions: Partial<SceneOptions<(props: ...) => ...>>

        Optional default scene options

      Returns Scene<
          (
              props: PropertiesHyphen<(...), (...)> & { children?: ... },
          ) => { node: HTMLDivElement },
      >

    • Add event listener

      Type Parameters

      • K extends "cleanup"

      Parameters

      • type: K
      • listener: (evt: { cleanup: null }[K]) => void

      Returns App

    • Remove event listener

      Type Parameters

      • K extends "cleanup"

      Parameters

      • type: K
      • listener: (evt: { cleanup: null }[K]) => void

      Returns App

    • Add one-time event listener, can not be removed manually

      Type Parameters

      • K extends "cleanup"

      Parameters

      • type: K
      • listener: (evt: { cleanup: null }[K]) => void

      Returns App