visibleOptionIds() {
      const visibleOptionIds = []

      this.traverseAllNodesByIndex(node => {
        if (!this.localSearch.active || this.shouldOptionBeIncludedInSearchResult(node)) {
          visibleOptionIds.push(node.id)
        }
        // Skip the traversal of descendants of a branch node if it's not expanded.
        if (node.isBranch && !this.shouldExpand(node)) {
          return false
        }
      })

      return visibleOptionIds
    }
Id list of nodes displayed in the menu. Nodes that are considered NOT visible:
  - descendants of a collapsed branch node
  - in local search mode, nodes that are not matched, unless
      - it's a branch node and has matched descendants
      - it's a leaf node and its parent node is explicitly set to show all children
@type {id[]}