{"id":20930715,"url":"https://github.com/intermine/facetted-query-builder","last_synced_at":"2026-03-15T19:39:01.850Z","repository":{"id":9644363,"uuid":"11578311","full_name":"intermine/facetted-query-builder","owner":"intermine","description":"A facetted query builder.","archived":false,"fork":false,"pushed_at":"2013-07-26T13:47:01.000Z","size":132,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-12-26T08:34:30.452Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"LiveScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/intermine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-22T10:01:16.000Z","updated_at":"2013-09-29T03:17:02.000Z","dependencies_parsed_at":"2022-09-21T09:42:48.170Z","dependency_job_id":null,"html_url":"https://github.com/intermine/facetted-query-builder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/intermine/facetted-query-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Ffacetted-query-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Ffacetted-query-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Ffacetted-query-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Ffacetted-query-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intermine","download_url":"https://codeload.github.com/intermine/facetted-query-builder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intermine%2Ffacetted-query-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30550468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T15:03:43.933Z","status":"ssl_error","status_checked_at":"2026-03-15T15:03:37.630Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T21:35:52.819Z","updated_at":"2026-03-15T19:39:01.832Z","avatar_url":"https://github.com/intermine.png","language":"LiveScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"facetted-query-builder\n======================\n\nA facetted query builder.\n\nConfiguration\n------------------\n\nThis app supports the following configuration parameters - most of these are\nas per the configuration options for [im-tables][].\n * *url*: The url of the mine to query against (eg. `http://www.flymine.org/query`)\n * *token*: The authentication token for the current user (optional)\n * *query*: The initial state of the query to be run (in PathQuery format - see\n   [imjs][]).\n * *options*: InterMine configuration options (see [im-tables][] - optional).\n * *onReady*: A function called when the app is initialized (optional).\n * *channel*: A function to be used to receive messages from the widget (see *Messages*, below).\n * *onError*: A function used to receive error messages from the widget.\n * *facetPathsFor*: An object mapping from class name to a list of paths to be used as\n   facets in this instance. See *Facets*, below.\n * *facetPaths*: A list of paths to be used as facets; this property can be used\n   to override the otherwise default set of facets.\n\nMessages\n------------------------------\n\nThe app send messages through the channel provided in a a number of\ncircumstances. All messages take the following form:\n\n```\n{\n    name: string,\n    data: Object,\n    service: {\n        url: string,\n        token: string\n    }\n}\n```\n\nThe precise content and structure of the `data` property is dependent on the\nnature of the message. \n\nThe app may send messages with the following names:\n * `change:query`: Each time the query is changed (including when the query is\n   first built) this message will be sent. The data property is the query\n   itself.\n * `clicked:imo`: When a cell representing an InterMine-Object (imo) has been\n   clicked, then this message is sent. The data property includes the `type` of\n   the object, and its internal `id`.\n * `selected:imo`: During list selection, as each object is selected or\n   de-selected, a message is sent on each selection event with the following\n   data: `{type: string, id: int, isSelected: bool}`\n * `create:list`: When a list has been created, a message is sent with the\n   following data: `{list: string}`.\n * `upate:list`: When a list has been updated (by having elements added to it,\n   for example), then a message will be sent with the following data:\n   `{list: string, delta: int}`, where the delta reflects the change in list\n   size, such that `oldSize + delta == newSize`.\n\nFacets\n------------------------------\n\nA facet is a path descending from the root of a query which can be used to\ncategorise or 'facet' the data in the table. This can either be specified in a\ngeneral way, such that any query can use the same set of facet configuration, or\nin a specific, per instance way, determining the facets just for this occasion.\n\n### General configuration\n\nA list of headless paths should be provided for each class they are suitable of\ndescribing. If the root class of a query includes in its ancestry more than one\nconfigured set of facets, they will be combined. Eg. if the root class is\n`Gene`, and this is the set of facets:\n\n```\n\"facetPathsFor\": {\n    \"BioEntity\": [\"organism.shortName\"],\n    \"SequenceFeature\": [\"chromosome.primaryIdentifier\"],\n    \"Gene\": [\"pathways.name\", \"goAnnotation.ontologyTerm.parents.name\"],\n    \"Protein\": [\"gene.symbol\"]\n}\n```\n\nThe the set of facets used for this query will be:\n * `Gene.organism.shortName`\n * `Gene.chromosome.primaryIdentifier`\n * `Gene.pathways.name`\n * `Gene.goAnnotation.ontologyTerm.parents.name`\n\n### Specific Configuration\n\nA list of paths (with or without heads) may be provided to be used directly. If\nprovided this configuration takes priority, an the sets of facet paths listed in\nthe general configuration will not be inspected. Eg.:\n\n```\n\"facetPaths\": [\"pathways.name\", \"organism.name\"]\n```\n\n\u003c!-- Links --\u003e\n  [im-tables]: https://github.com/intermine/im-tables\n  [imjs]: https://intermine.github.io/imjs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintermine%2Ffacetted-query-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintermine%2Ffacetted-query-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintermine%2Ffacetted-query-builder/lists"}