platform-bible-utils
    Preparing search index...

    Variable menuDocumentSchemaConst

    menuDocumentSchema: {
        $defs: {
            columnsWithHeaders: {
                description: string;
                patternProperties: {
                    "^[\\w\\-]+\\.[\\w\\-]+$": {
                        additionalProperties: boolean;
                        description: string;
                        properties: {
                            isExtensible: { description: string; type: string };
                            label: { $ref: string; description: string };
                            localizeNotes: { description: string; type: string };
                            order: { description: string; type: string };
                        };
                        required: string[];
                        type: string;
                    };
                };
                properties: { isExtensible: { description: string; type: string } };
                type: string;
            };
            groupsAndItems: {
                description: string;
                properties: {
                    groups: { $ref: string; description: string };
                    items: {
                        description: string;
                        items: { $ref: string };
                        type: string;
                        uniqueItems: boolean;
                    };
                };
                required: string[];
                type: string;
            };
            localizeKey: { description: string; pattern: string; type: string };
            menuGroups: {
                additionalProperties: boolean;
                description: string;
                patternProperties: {
                    "^[\\w\\-]+\\.[\\w\\-]+$": {
                        description: string;
                        oneOf: (
                            | {
                                additionalProperties: boolean;
                                properties: {
                                    column: { $ref: string; description: string };
                                    isExtensible: { description: string; type: string };
                                    menuItem?: undefined;
                                    order: { description: string; type: string };
                                };
                                required: string[];
                            }
                            | {
                                additionalProperties: boolean;
                                properties: {
                                    column?: undefined;
                                    isExtensible: { description: string; type: string };
                                    menuItem: { $ref: string; description: string };
                                    order: { description: string; type: string };
                                };
                                required: string[];
                            }
                        )[];
                        type: string;
                    };
                };
                type: string;
            };
            menuItem: {
                description: string;
                oneOf: (
                    | {
                        properties: {
                            command?: undefined;
                            iconPathAfter?: undefined;
                            iconPathBefore?: undefined;
                            id: { $ref: string; description: string };
                        };
                        required: string[];
                    }
                    | {
                        properties: {
                            command: { $ref: string; description: string };
                            iconPathAfter: { description: string; type: string };
                            iconPathBefore: { description: string; type: string };
                            id?: undefined;
                        };
                        required: string[];
                    }
                )[];
                properties: {
                    group: { $ref: string; description: string };
                    label: { $ref: string; description: string };
                    localizeNotes: { description: string; type: string };
                    order: { description: string; type: string };
                    searchTerms: { $ref: string; description: string };
                    tooltip: { $ref: string; description: string };
                };
                required: string[];
                type: string;
                unevaluatedProperties: boolean;
            };
            menusForOneWebView: {
                additionalProperties: boolean;
                description: string;
                properties: {
                    contextMenu: { $ref: string; description: string };
                    includeDefaults: { description: string; type: string };
                    topMenu: { $ref: string; description: string };
                };
                type: string;
            };
            multiColumnMenu: {
                allOf: (
                    | { $ref: string; properties?: undefined; required?: undefined }
                    | {
                        $ref?: undefined;
                        properties: { columns: { $ref: string; description: string } };
                        required: string[];
                    }
                )[];
                description: string;
                type: string;
                unevaluatedProperties: boolean;
            };
            referencedItem: { description: string; pattern: string; type: string };
            singleColumnMenu: {
                allOf: { $ref: string }[];
                description: string;
                type: string;
                unevaluatedProperties: boolean;
            };
        };
        additionalProperties: boolean;
        properties: {
            defaultWebViewContextMenu: { $ref: string; description: string };
            defaultWebViewTopMenu: { $ref: string; description: string };
            mainMenu: { $ref: string; description: string };
            webViewMenus: {
                additionalProperties: boolean;
                description: string;
                patternProperties: { "^[\\w\\-]+\\.[\\w\\-]+$": { $ref: string } };
                type: string;
            };
        };
        required: string[];
        title: string;
        type: string;
    } = ...

    JSON schema object that aligns with the PlatformMenus type

    Type declaration

    • $defs: {
          columnsWithHeaders: {
              description: string;
              patternProperties: {
                  "^[\\w\\-]+\\.[\\w\\-]+$": {
                      additionalProperties: boolean;
                      description: string;
                      properties: {
                          isExtensible: { description: string; type: string };
                          label: { $ref: string; description: string };
                          localizeNotes: { description: string; type: string };
                          order: { description: string; type: string };
                      };
                      required: string[];
                      type: string;
                  };
              };
              properties: { isExtensible: { description: string; type: string } };
              type: string;
          };
          groupsAndItems: {
              description: string;
              properties: {
                  groups: { $ref: string; description: string };
                  items: {
                      description: string;
                      items: { $ref: string };
                      type: string;
                      uniqueItems: boolean;
                  };
              };
              required: string[];
              type: string;
          };
          localizeKey: { description: string; pattern: string; type: string };
          menuGroups: {
              additionalProperties: boolean;
              description: string;
              patternProperties: {
                  "^[\\w\\-]+\\.[\\w\\-]+$": {
                      description: string;
                      oneOf: (
                          | {
                              additionalProperties: boolean;
                              properties: {
                                  column: { $ref: string; description: string };
                                  isExtensible: { description: string; type: string };
                                  menuItem?: undefined;
                                  order: { description: string; type: string };
                              };
                              required: string[];
                          }
                          | {
                              additionalProperties: boolean;
                              properties: {
                                  column?: undefined;
                                  isExtensible: { description: string; type: string };
                                  menuItem: { $ref: string; description: string };
                                  order: { description: string; type: string };
                              };
                              required: string[];
                          }
                      )[];
                      type: string;
                  };
              };
              type: string;
          };
          menuItem: {
              description: string;
              oneOf: (
                  | {
                      properties: {
                          command?: undefined;
                          iconPathAfter?: undefined;
                          iconPathBefore?: undefined;
                          id: { $ref: string; description: string };
                      };
                      required: string[];
                  }
                  | {
                      properties: {
                          command: { $ref: string; description: string };
                          iconPathAfter: { description: string; type: string };
                          iconPathBefore: { description: string; type: string };
                          id?: undefined;
                      };
                      required: string[];
                  }
              )[];
              properties: {
                  group: { $ref: string; description: string };
                  label: { $ref: string; description: string };
                  localizeNotes: { description: string; type: string };
                  order: { description: string; type: string };
                  searchTerms: { $ref: string; description: string };
                  tooltip: { $ref: string; description: string };
              };
              required: string[];
              type: string;
              unevaluatedProperties: boolean;
          };
          menusForOneWebView: {
              additionalProperties: boolean;
              description: string;
              properties: {
                  contextMenu: { $ref: string; description: string };
                  includeDefaults: { description: string; type: string };
                  topMenu: { $ref: string; description: string };
              };
              type: string;
          };
          multiColumnMenu: {
              allOf: (
                  | { $ref: string; properties?: undefined; required?: undefined }
                  | {
                      $ref?: undefined;
                      properties: { columns: { $ref: string; description: string } };
                      required: string[];
                  }
              )[];
              description: string;
              type: string;
              unevaluatedProperties: boolean;
          };
          referencedItem: { description: string; pattern: string; type: string };
          singleColumnMenu: {
              allOf: { $ref: string }[];
              description: string;
              type: string;
              unevaluatedProperties: boolean;
          };
      }
    • additionalProperties: boolean
    • properties: {
          defaultWebViewContextMenu: { $ref: string; description: string };
          defaultWebViewTopMenu: { $ref: string; description: string };
          mainMenu: { $ref: string; description: string };
          webViewMenus: {
              additionalProperties: boolean;
              description: string;
              patternProperties: { "^[\\w\\-]+\\.[\\w\\-]+$": { $ref: string } };
              type: string;
          };
      }
    • required: string[]
    • title: string
    • type: string