A collection of functions related to sorting objects within a parent container.

Methods

  • Given a source object to sort, a target to sort relative to, and an Array of siblings in the container: Determine the updated sort keys for the source object, or all siblings if a reindex is required. Return an Array of updates to perform, it is up to the caller to dispatch these updates. Each update is structured as: { target: object, update: {sortKey: sortValue} }

    Parameters

    • source: object

      The source object being sorted

    • Optional options: {
          target: object;
          siblings: object[];
          sortKey: string;
          sortBefore: boolean;
      } = {}

      Options which modify the sort behavior

      • target: object

        The target object relative which to sort

      • siblings: object[]

        The Array of siblings which the source should be sorted within

      • sortKey: string

        The property name within the source object which defines the sort key

      • sortBefore: boolean

        Explicitly sort before (true) or sort after( false). If undefined the sort order will be automatically determined.

    Returns object[]

    An Array of updates for the caller of the helper function to perform

  • Private

    Given an ordered Array of siblings and a target position, return the [min,max] indices to sort before the target

    Parameters

    • siblings: any
    • idx: any
    • sortKey: any

    Returns any[]

  • Private

    Given an ordered Array of siblings and a target position, return the [min,max] indices to sort after the target

    Parameters

    • siblings: any
    • idx: any
    • sortKey: any

    Returns any[]