@vuu-ui/vuu-filters 0.6.21-debug → 0.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +1 -1481
- package/cjs/index.js.map +2 -2
- package/esm/index.js +1 -1503
- package/esm/index.js.map +2 -2
- package/index.css +1 -56
- package/index.css.map +1 -1
- package/package.json +4 -4
package/cjs/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../node_modules/classnames/index.js", "../../../packages/vuu-filters/src/index.ts", "../../../packages/vuu-filters/src/filter-input/FilterInput.tsx", "../../../packages/vuu-filters/src/filter-input/useCodeMirrorEditor.ts", "../../../packages/vuu-filters/src/filter-input/filter-language-parser/FilterLanguage.ts", "../../../packages/vuu-filters/src/filter-input/filter-language-parser/generated/filter-parser.js", "../../../packages/vuu-filters/src/filter-input/filter-language-parser/FilterTreeWalker.ts", "../../../packages/vuu-filters/src/filter-input/filter-language-parser/FilterParser.ts", "../../../packages/vuu-filters/src/filter-input/highlighting.ts", "../../../packages/vuu-filters/src/filter-input/theme.ts", "../../../packages/vuu-filters/src/filter-input/useFilterAutoComplete.ts", "../../../packages/vuu-filters/src/filter-input/useFilterSuggestionProvider.ts", "../../../packages/vuu-filters/src/filter-input/filterInfo.ts", "../../../packages/vuu-filters/src/filter-toolbar/FilterToolbar.tsx", "../../../packages/vuu-filters/src/filter-toolbar/useFilterToolbar.tsx", "../../../packages/vuu-filters/src/filter-toolbar/FilterDropdown.tsx", "../../../packages/vuu-filters/src/filter-toolbar/FilterDropdownMultiSelect.tsx", "../../../packages/vuu-filters/src/filter-evaluation-utils.ts", "../../../packages/vuu-filters/src/filter-utils.ts", "../../../packages/vuu-filters/src/filterTypes.ts"],
|
|
4
4
|
"sourcesContent": ["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n", "export * from \"./filter-input\";\nexport * from \"./filter-toolbar\";\nexport * from \"./filter-evaluation-utils\";\nexport * from \"./filter-utils\";\nexport * from \"./filterTypes\";\n", "import { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { Button } from \"@salt-ds/core\";\nimport { HTMLAttributes } from \"react\";\nimport {\n filterSubmissionHandler,\n SuggestionConsumer,\n useCodeMirrorEditor,\n} from \"./useCodeMirrorEditor\";\n\nimport \"./FilterInput.css\";\n\nconst classBase = \"vuuFilterInput\";\n\nexport interface FilterInputProps\n extends SuggestionConsumer,\n HTMLAttributes<HTMLDivElement> {\n existingFilter?: Filter;\n namedFilters?: Map<string, string>;\n onSubmitFilter?: filterSubmissionHandler;\n}\n\nexport const FilterInput = ({\n existingFilter,\n namedFilters,\n onSubmitFilter,\n suggestionProvider,\n ...props\n}: FilterInputProps) => {\n const { editorRef, clearInput } = useCodeMirrorEditor({\n existingFilter,\n onSubmitFilter,\n suggestionProvider,\n });\n\n return (\n <div {...props} className={classBase}>\n <Button className={`${classBase}-FilterButton`} data-icon=\"filter\" />\n <div className={`${classBase}-Editor`} ref={editorRef} />\n <Button\n className={`${classBase}-ClearButton`}\n data-icon=\"close-circle\"\n onClick={clearInput}\n />\n </div>\n );\n};\n", "import {\n autocompletion,\n Completion,\n defaultKeymap,\n EditorState,\n EditorView,\n ensureSyntaxTree,\n keymap,\n minimalSetup,\n startCompletion,\n VuuCompletion,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport cx from \"classnames\";\nimport { MutableRefObject, useEffect, useMemo, useRef } from \"react\";\nimport { filterLanguageSupport } from \"./filter-language-parser\";\nimport { walkTree } from \"./filter-language-parser/FilterTreeWalker\";\nimport { vuuHighlighting } from \"./highlighting\";\nimport { vuuTheme } from \"./theme\";\nimport {\n ApplyCompletion,\n FilterSubmissionMode,\n useAutoComplete,\n} from \"./useFilterAutoComplete\";\n\nexport type SuggestionType = \"column\" | \"columnValue\" | \"operator\";\n\nexport interface SuggestionOptions {\n columnName?: string;\n operator?: string;\n startsWith?: string;\n selection?: string[];\n}\n\nexport type getSuggestionsType = (\n suggestionType: SuggestionType,\n options?: SuggestionOptions\n) => Promise<Completion[]>;\n\nexport interface IFilterSuggestionProvider {\n getSuggestions: getSuggestionsType;\n isPartialMatch: (\n valueType: SuggestionType,\n columnName?: string,\n text?: string | undefined\n ) => Promise<boolean>;\n}\n\nexport interface SuggestionConsumer {\n suggestionProvider: IFilterSuggestionProvider;\n}\n\nconst getView = (ref: MutableRefObject<EditorView | undefined>): EditorView => {\n if (ref.current == undefined) {\n throw Error(\"EditorView not defined\");\n }\n return ref.current;\n};\n\nconst getOptionClass = (completion: VuuCompletion) => {\n return cx(\"vuuSuggestion\", {\n vuuIllustration: completion.isIllustration,\n });\n};\n\nconst stripName = (filterQuery: string) => {\n const pos = filterQuery.lastIndexOf(\" as \");\n if (pos !== -1) {\n return filterQuery.slice(0, pos);\n } else {\n return filterQuery;\n }\n};\n\nconst noop = () => console.log(\"noooop\");\n\nexport type filterSubmissionHandler = (\n filter: Filter | undefined,\n filterQuery: string,\n mode?: FilterSubmissionMode,\n filterName?: string\n) => void;\n\nexport interface CodeMirrorEditorProps {\n existingFilter?: Filter;\n onSubmitFilter?: filterSubmissionHandler;\n suggestionProvider: IFilterSuggestionProvider;\n}\n\nexport const useCodeMirrorEditor = ({\n existingFilter,\n onSubmitFilter,\n suggestionProvider,\n}: CodeMirrorEditorProps) => {\n const editorRef = useRef<HTMLDivElement>(null);\n const onSubmit = useRef<ApplyCompletion>(noop);\n const viewRef = useRef<EditorView>();\n const completionFn = useAutoComplete(\n suggestionProvider,\n onSubmit,\n existingFilter\n );\n\n const [createState, clearInput] = useMemo(() => {\n const parseFilter = ():\n | [Filter, string, string | undefined]\n | [undefined, \"\", undefined] => {\n const view = getView(viewRef);\n const source = view.state.doc.toString();\n const tree = ensureSyntaxTree(view.state, view.state.doc.length, 5000);\n if (tree) {\n const filter = walkTree(tree, source) as Filter;\n return [filter, stripName(source), filter.name];\n } else {\n return [undefined, \"\", undefined];\n }\n };\n\n const clearInput = () => {\n getView(viewRef).setState(createState());\n };\n\n const submitFilterAndClearInput = (mode?: FilterSubmissionMode) => {\n const [filter, filterQuery, filterName] = parseFilter();\n onSubmitFilter?.(filter, filterQuery, mode, filterName);\n clearInput();\n };\n\n const submitFilter = (key: string) => {\n return keymap.of([\n {\n key,\n run() {\n submitFilterAndClearInput();\n return true;\n },\n },\n ]);\n };\n\n const showSuggestions = (key: string) => {\n return keymap.of([\n {\n key,\n run() {\n startCompletion(getView(viewRef));\n return true;\n },\n },\n ]);\n };\n\n const createState = (): EditorState =>\n EditorState.create({\n doc: \"\",\n extensions: [\n minimalSetup,\n autocompletion({\n override: [completionFn],\n optionClass: getOptionClass,\n }),\n filterLanguageSupport(),\n keymap.of(defaultKeymap),\n submitFilter(\"Ctrl-Enter\"),\n showSuggestions(\"ArrowDown\"),\n EditorView.updateListener.of((v) => {\n const view = getView(viewRef);\n if (v.docChanged) {\n startCompletion(view);\n }\n }),\n EditorState.transactionFilter.of((tr) =>\n tr.newDoc.lines > 1 ? [] : tr\n ),\n vuuTheme,\n vuuHighlighting,\n ],\n });\n\n onSubmit.current = (mode?: FilterSubmissionMode) => {\n submitFilterAndClearInput(mode);\n // TODO refocu sthe editor\n setTimeout(() => {\n getView(viewRef).focus();\n }, 100);\n };\n\n return [createState, clearInput];\n }, [completionFn, onSubmitFilter]);\n\n useEffect(() => {\n if (!editorRef.current) {\n throw Error(\"editor not in dom\");\n }\n\n viewRef.current = new EditorView({\n state: createState(),\n parent: editorRef.current,\n });\n\n return () => {\n viewRef.current?.destroy();\n };\n }, [completionFn, createState]);\n\n return { editorRef, clearInput };\n};\n", "import {\n LanguageSupport,\n LRLanguage,\n styleTags,\n tags as tag,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { parser } from \"./generated/filter-parser\";\n\nconst filterLanguage = LRLanguage.define({\n name: \"VuuFilterQuery\",\n parser: parser.configure({\n props: [\n styleTags({\n Identifier: tag.variableName,\n String: tag.string,\n Or: tag.emphasis,\n Operator: tag.operator,\n }),\n ],\n }),\n});\n\nexport const filterLanguageSupport = () => {\n return new LanguageSupport(filterLanguage);\n};\n", "// This file was generated by lezer-generator. You probably shouldn't edit it.\nimport {LRParser} from \"@vuu-ui/vuu-codemirror\"\nexport const parser = LRParser.deserialize({\n version: 14,\n states: \"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v\",\n stateData: \"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O\",\n goto: \"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj\",\n nodeNames: \"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName\",\n maxTerm: 39,\n skippedNodes: [0],\n repeatNodeCount: 1,\n tokenData: \"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n\",\n tokenizers: [0, 1],\n topRules: {\"Filter\":[0,1]},\n tokenPrec: 0\n})\n", "import { Tree } from \"@lezer/common\";\nimport {\n Filter,\n FilterCombinatorOp,\n MultipleValueFilterClauseOp,\n SingleValueFilterClauseOp,\n} from \"@vuu-ui/vuu-filter-types\";\nimport {\n isMultiClauseFilter,\n isMultiValueFilter,\n isSingleValueFilter,\n} from \"@vuu-ui/vuu-utils\";\n\nclass FilterExpression {\n public name: string | undefined;\n #filter: Partial<Filter> | undefined = undefined;\n\n setFilterCombinatorOp(op: string, filter = this.#filter) {\n if (isMultiClauseFilter(filter) && filter.op === op) {\n return;\n } else {\n this.#filter = {\n op: op as FilterCombinatorOp,\n filters: [this.#filter as Filter],\n };\n }\n }\n\n add(filter: Partial<Filter>) {\n if (this.#filter === undefined) {\n this.#filter = filter;\n } else if (isMultiClauseFilter(this.#filter)) {\n this.#filter.filters.push(filter as Filter);\n } else {\n throw Error(`Invalid filter passed to FilterExpression`);\n }\n }\n\n setColumn(column: string, filter = this.#filter) {\n if (isMultiClauseFilter(filter)) {\n const target = filter.filters.at(-1);\n if (target) {\n this.setColumn(column, target);\n }\n } else if (filter) {\n filter.column = column;\n }\n }\n setOp(value: string, filter = this.#filter) {\n if (isMultiClauseFilter(filter)) {\n const target = filter.filters.at(-1);\n if (target) {\n this.setOp(value, target);\n }\n } else if (filter) {\n filter.op = value as\n | SingleValueFilterClauseOp\n | MultipleValueFilterClauseOp;\n }\n }\n setValue(value: string | number | boolean, filter = this.#filter) {\n if (isMultiClauseFilter(filter)) {\n const target = filter.filters.at(-1);\n if (target) {\n this.setValue(value, target);\n }\n } else if (isMultiValueFilter(filter)) {\n filter.values ??= [];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n filter.values.push(value);\n } else if (isSingleValueFilter(filter)) {\n filter.value = value;\n }\n }\n\n toJSON(filter = this.#filter) {\n if (this.name) {\n return {\n ...filter,\n name: this.name,\n };\n } else {\n return filter;\n }\n }\n}\n\nexport const walkTree = (tree: Tree, source: string) => {\n const filterExpression = new FilterExpression();\n const cursor = tree.cursor();\n do {\n const { name, from, to } = cursor;\n switch (name) {\n case \"ColumnValueExpression\":\n filterExpression.add({});\n break;\n case \"ColumnSetExpression\":\n filterExpression.add({ op: \"in\" });\n break;\n\n case \"Or\":\n case \"And\":\n filterExpression.setFilterCombinatorOp(source.substring(from, to));\n break;\n\n case \"Column\":\n filterExpression.setColumn(source.substring(from, to));\n break;\n\n case \"Operator\":\n filterExpression.setOp(source.substring(from, to));\n break;\n\n case \"String\":\n filterExpression.setValue(source.substring(from + 1, to - 1));\n break;\n\n case \"Number\":\n filterExpression.setValue(parseFloat(source.substring(from, to)));\n break;\n\n case \"True\":\n filterExpression.setValue(true);\n break;\n\n case \"False\":\n filterExpression.setValue(false);\n break;\n\n case \"FilterName\":\n filterExpression.name = source.substring(from, to);\n break;\n\n default:\n }\n } while (cursor.next());\n\n return filterExpression.toJSON();\n};\n", "import { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { parser } from \"./generated/filter-parser\";\nimport { walkTree } from \"./FilterTreeWalker\";\n\nconst strictParser = parser.configure({ strict: true });\n\nexport const parseFilter = (filterQuery: string): Filter => {\n const parseTree = strictParser.parse(filterQuery);\n const filter = walkTree(parseTree, filterQuery) as Filter;\n return filter;\n};\n", "import {\n HighlightStyle,\n syntaxHighlighting,\n tags,\n} from \"@vuu-ui/vuu-codemirror\";\n\nconst myHighlightStyle = HighlightStyle.define([\n { tag: tags.variableName, color: \"var(--vuuFilterEditor-variableColor)\" },\n { tag: tags.comment, color: \"green\", fontStyle: \"italic\" },\n]);\n\nexport const vuuHighlighting = syntaxHighlighting(myHighlightStyle);\n", "import { EditorView } from \"@vuu-ui/vuu-codemirror\";\n\nexport const vuuTheme = EditorView.theme(\n {\n \"&\": {\n color: \"var(--vuuFilterEditor-color)\",\n backgroundColor: \"var(--vuuFilterEditor-background)\",\n fontSize: \"var(--vuuFilterEditor-fontSize)\",\n },\n \".cm-content\": {\n caretColor: \"var(--vuuFilterEditor-cursorColor)\",\n padding: 0,\n },\n \".cm-line\": {\n lineHeight: \"var(--vuuFilterEditor-lineHeight)\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"var(--vuuFilterEditor-cursorColor)\",\n },\n \"&.cm-focused .cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-scroller\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n },\n \".cm-tooltip\": {\n background: \"var(--vuuFilterEditor-tooltipBackground)\",\n border: \"var(--vuuFilterEditor-tooltipBorder)\",\n boxShadow: \"var(--vuuFilterEditor-tooltipElevation)\",\n \"&.cm-tooltip-autocomplete > ul\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n fontSize: \"var(--vuuFilterEditor-fontSize)\",\n maxHeight: \"240px\",\n },\n \"&.cm-tooltip-autocomplete > ul > li\": {\n alignItems: \"center\",\n display: \"flex\",\n height: \"var(--vuuFilterEditor-suggestion-height)\",\n padding: \"0 3px\",\n lineHeight: \"var(--vuuFilterEditor-suggestion-height)\",\n },\n \"&.cm-tooltip-autocomplete li[aria-selected]\": {\n background: \"var(--vuuFilterEditor-suggestion-selectedBackground)\",\n color: \"var(--vuuFilterEditor-suggestion-selectedColor)\",\n },\n },\n \".cm-completionIcon\": {\n height: \"18px\",\n flex: \"0 0 16px\",\n },\n \".cm-completionLabel\": {\n flex: \"1 1 auto\",\n },\n \".cm-completionIcon-filter\": {\n position: \"relative\",\n \"&:after\": {\n background: \"var(--salt-text-secondary-foreground)\",\n content: \"''\",\n \"-webkit-mask\": \"var(--svg-filter) center center/13px 13px\",\n \"-webkit-mask-repeat\": \"no-repeat\",\n position: \"absolute\",\n height: \"18px\",\n left: \"0px\",\n top: \"0px\",\n width: \"16px\",\n },\n },\n },\n { dark: false }\n);\n", "import {\n asNameSuggestion,\n booleanJoinSuggestions,\n Completion,\n CompletionContext,\n CompletionSource,\n EditorState,\n getNodeByName,\n getValue,\n syntaxTree,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { SyntaxNode } from \"@lezer/common\";\nimport { MutableRefObject, useCallback } from \"react\";\nimport {\n IFilterSuggestionProvider,\n SuggestionType,\n} from \"./useCodeMirrorEditor\";\n\nexport type FilterSubmissionMode = \"and\" | \"or\" | \"replace\";\n\nexport type ApplyCompletion = (mode?: FilterSubmissionMode) => void;\n\nconst getOperator = (node: SyntaxNode, state: EditorState) => {\n let maybeColumnNode = node.prevSibling || node.parent;\n while (\n maybeColumnNode &&\n ![\"Column\", \"Operator\", \"In\"].includes(maybeColumnNode.name)\n ) {\n maybeColumnNode = maybeColumnNode.prevSibling || maybeColumnNode.parent;\n }\n if (maybeColumnNode?.name === \"In\" || maybeColumnNode?.name === \"Operator\") {\n return getValue(maybeColumnNode, state);\n } else {\n return undefined;\n }\n};\n\n// Operators that are more than a single character in length may incur partial matches\n// TODO need to check that previous token is a column\nconst getPartialOperator = (\n maybeOperatorNode: SyntaxNode,\n state: EditorState,\n columnName?: string\n) => {\n const value = getValue(maybeOperatorNode, state);\n if (columnName === undefined || value === columnName) {\n return;\n }\n if (\n [\"contains\", \"ends\", \"starts\"].some((val) =>\n val.startsWith(value.toLowerCase())\n )\n ) {\n return value;\n } else {\n return undefined;\n }\n};\n\nconst getClauseOperator = (node: SyntaxNode, state: EditorState) => {\n let maybeTargetNode = node.prevSibling || node.parent || node.lastChild;\n while (maybeTargetNode && maybeTargetNode.name === \"\u26A0\")\n maybeTargetNode = maybeTargetNode.prevSibling;\n if (maybeTargetNode && [\"As\", \"Or\", \"And\"].includes(maybeTargetNode.name)) {\n return getValue(maybeTargetNode, state);\n } else {\n return undefined;\n }\n};\n\nconst getSetValues = (node: SyntaxNode, state: EditorState): string[] => {\n let maybeTargetNode = node.lastChild;\n const values: string[] = [];\n while (maybeTargetNode && maybeTargetNode.name !== \"In\") {\n const value = getValue(maybeTargetNode, state);\n if (value) {\n values.push(value);\n } else {\n break;\n }\n maybeTargetNode = maybeTargetNode.prevSibling;\n }\n return values;\n};\n\nconst promptForFilterName = (context: CompletionContext) => ({\n from: context.pos,\n options: [\n {\n label: \"enter name for this filter\",\n boost: 5,\n },\n ],\n});\n\nconst makeSaveOrExtendSuggestions = (\n onSubmit: (mode?: FilterSubmissionMode) => void,\n existingFilter?: Filter,\n withJoinSuggestions = true\n) => {\n const result = existingFilter\n ? ([\n {\n label: \"REPLACE existing filter\",\n apply: () => onSubmit(\"replace\"),\n boost: 8,\n },\n {\n label: \"AND existing filter\",\n apply: () => onSubmit(\"and\"),\n boost: 7,\n },\n {\n label: \"OR existing filter\",\n apply: () => onSubmit(\"or\"),\n boost: 7,\n },\n ] as Completion[])\n : ([\n {\n label: \"Press ENTER to submit\",\n apply: () => onSubmit(),\n boost: 6,\n },\n ] as Completion[]);\n\n return withJoinSuggestions\n ? result.concat(booleanJoinSuggestions).concat(asNameSuggestion)\n : result;\n};\n\nconst promptToSaveOrExtend = (\n context: CompletionContext,\n onSubmit: () => void,\n existingFilter?: Filter\n) => ({\n from: context.pos,\n options: makeSaveOrExtendSuggestions(onSubmit, existingFilter),\n});\n\nconst promptToSave = (\n context: CompletionContext,\n onSubmit: () => void,\n existingFilter?: Filter\n) => ({\n from: context.pos,\n options: makeSaveOrExtendSuggestions(onSubmit, existingFilter, false),\n});\n\nexport const useAutoComplete = (\n suggestionProvider: IFilterSuggestionProvider,\n onSubmit: MutableRefObject<ApplyCompletion>,\n existingFilter?: Filter\n) => {\n const makeSuggestions = useCallback(\n async (\n context: CompletionContext,\n suggestionType: SuggestionType,\n optionalArgs: {\n columnName?: string;\n operator?: string;\n selection?: string[];\n startsWith?: string;\n } = {}\n ) => {\n const options = await suggestionProvider.getSuggestions(\n suggestionType,\n optionalArgs\n );\n const { startsWith = \"\" } = optionalArgs;\n return { from: context.pos - startsWith.length, options };\n },\n [suggestionProvider]\n );\n\n return useCallback(\n async (context: CompletionContext) => {\n const { state, pos } = context;\n const word = context.matchBefore(/\\w*/) ?? {\n from: 0,\n to: 0,\n text: undefined,\n };\n\n const tree = syntaxTree(state);\n const nodeBefore = tree.resolveInner(pos, -1);\n console.log({ nodeBeforeName: nodeBefore.name });\n\n switch (nodeBefore.name) {\n case \"Filter\":\n if (context.pos === 0) {\n return makeSuggestions(context, \"column\");\n } else {\n const clauseOperator = getClauseOperator(nodeBefore, state);\n if (clauseOperator === \"as\") {\n return promptForFilterName(context);\n } else {\n return promptToSaveOrExtend(\n context,\n onSubmit.current,\n existingFilter\n );\n }\n }\n\n case \"As\":\n return promptForFilterName(context);\n\n case \"FilterName\":\n return promptToSave(context, onSubmit.current, existingFilter);\n\n case \"Column\": {\n const columnName = getValue(nodeBefore, state);\n const isPartialMatch = await suggestionProvider.isPartialMatch(\n \"column\",\n undefined,\n columnName\n );\n if (isPartialMatch) {\n return makeSuggestions(context, \"column\", {\n startsWith: columnName,\n });\n } else {\n return makeSuggestions(context, \"operator\", { columnName });\n }\n }\n\n case \"\u26A0\": {\n const columnName = getNodeByName(nodeBefore, state);\n const operator = getOperator(nodeBefore, state);\n // TODO check if we're mnatching a partial jojn operator\n const partialOperator = operator\n ? undefined\n : getPartialOperator(nodeBefore, state, columnName);\n\n if (partialOperator) {\n return makeSuggestions(context, \"operator\", {\n columnName,\n startsWith: partialOperator,\n });\n } else {\n return makeSuggestions(context, \"columnValue\", {\n columnName,\n operator,\n startsWith: word.text,\n });\n }\n }\n\n case \"Identifier\":\n {\n const clauseOperator = getClauseOperator(nodeBefore, state);\n if (clauseOperator === \"as\") {\n return {\n from: context.pos,\n options: [\n {\n label: \"press ENTER to apply filter and save\",\n apply: () => onSubmit.current(),\n boost: 5,\n },\n ],\n };\n }\n }\n break;\n case \"ColumnSetExpression\":\n case \"Values\": {\n const columnName = getNodeByName(nodeBefore, state);\n const selection = getSetValues(nodeBefore, state);\n return makeSuggestions(context, \"columnValue\", {\n columnName,\n selection,\n });\n }\n case \"Comma\":\n case \"LBrack\": {\n const columnName = getNodeByName(nodeBefore, state) as string;\n return makeSuggestions(context, \"columnValue\", { columnName });\n }\n\n case \"ColumnValueExpression\":\n {\n const lastToken = nodeBefore.lastChild?.prevSibling;\n if (lastToken?.name === \"Column\") {\n return makeSuggestions(context, \"operator\", {\n columnName: getNodeByName(nodeBefore, state),\n });\n } else if (lastToken?.name === \"Operator\") {\n return makeSuggestions(context, \"columnValue\", {\n columnName: getNodeByName(lastToken, state),\n operator: getValue(lastToken, state),\n });\n }\n }\n break;\n\n case \"In\": {\n return {\n from: context.pos,\n options: [{ label: \"[\", apply: \" [\", type: \"text\" }],\n };\n }\n\n case \"Eq\": {\n return makeSuggestions(context, \"columnValue\", {\n columnName: getNodeByName(nodeBefore, state),\n });\n }\n\n case \"AndExpression\":\n case \"OrExpression\": {\n return makeSuggestions(context, \"column\");\n }\n\n default:\n }\n },\n [existingFilter, makeSuggestions, onSubmit, suggestionProvider]\n ) as CompletionSource;\n};\n", "import {\n Completion,\n numericOperators,\n stringOperators,\n toSuggestions,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { getTypeaheadParams, useTypeaheadSuggestions } from \"@vuu-ui/vuu-data\";\nimport { ColumnDescriptor } from \"@vuu-ui/vuu-datagrid-types\";\nimport { IFilterSuggestionProvider, SuggestionType } from \"@vuu-ui/vuu-filters\";\nimport { VuuTable } from \"@vuu-ui/vuu-protocol-types\";\nimport { useCallback, useRef } from \"react\";\nimport { filterInfo } from \"./filterInfo\";\n\nconst NO_NAMED_FILTERS = [] as Completion[];\nconst NONE = {};\n\nconst suggestColumns = (columns: ColumnDescriptor[]) =>\n columns.map((column) => ({\n boost: 5,\n label: column.name,\n }));\n\nconst suggestNamedFilters = (namedFilters?: Map<string, string>) =>\n namedFilters\n ? (Array.from(namedFilters.entries()).map(([filterName, filterQuery]) => ({\n info: () => filterInfo(filterName, filterQuery),\n label: filterName,\n type: \"filter\",\n })) as Completion[])\n : NO_NAMED_FILTERS;\n\nconst doneCommand: Completion = {\n label: \"Done\",\n apply: \"] \",\n type: \"keyword\",\n boost: 10,\n};\n\nconst withApplySpace = (\n suggestions: Completion[],\n startsWith = \"\"\n): Completion[] =>\n suggestions\n .filter((sugg) => startsWith === \"\" || sugg.label.startsWith(startsWith))\n .map((suggestion) => ({\n ...suggestion,\n apply: suggestion.label + \" \",\n }));\n\nexport interface SuggestionProviderHookProps {\n columns: ColumnDescriptor[];\n namedFilters?: Map<string, string>;\n table: VuuTable;\n}\n\nexport const useFilterSuggestionProvider = ({\n columns,\n namedFilters,\n table,\n}: SuggestionProviderHookProps): IFilterSuggestionProvider => {\n const latestSuggestionsRef = useRef<Completion[]>();\n const getTypeaheadSuggestions = useTypeaheadSuggestions();\n\n const getSuggestions: IFilterSuggestionProvider[\"getSuggestions\"] =\n useCallback(\n async (suggestionType, options = NONE): Promise<Completion[]> => {\n const { columnName, operator, startsWith, selection } = options;\n\n if (suggestionType === \"operator\") {\n const column = columns.find((col) => col.name === columnName);\n if (column) {\n switch (column.serverDataType) {\n case \"string\":\n case \"char\":\n return withApplySpace(stringOperators, startsWith);\n case \"int\":\n case \"long\":\n case \"double\":\n return withApplySpace(numericOperators);\n }\n } else {\n console.warn(`'${columnName}' does not match any column name`);\n }\n } else if (suggestionType === \"column\") {\n const columnSuggestions = await suggestColumns(columns);\n const filterSuggestions = await suggestNamedFilters(namedFilters);\n return (latestSuggestionsRef.current =\n withApplySpace(columnSuggestions)).concat(\n withApplySpace(filterSuggestions)\n );\n }\n\n if (columnName) {\n const column = columns.find((col) => col.name === columnName);\n const prefix = Array.isArray(selection)\n ? selection.length === 0\n ? \"[\"\n : \",\"\n : \"\";\n const params = getTypeaheadParams(table, columnName, startsWith);\n const suggestions = await getTypeaheadSuggestions(params);\n // prob don't want to save the prefix\n const isIllustration = operator === \"starts\";\n latestSuggestionsRef.current = toSuggestions(suggestions, {\n quoted: column?.serverDataType === \"string\",\n prefix: isIllustration ? startsWith : prefix,\n isIllustration,\n });\n if (Array.isArray(selection) && selection?.length > 1) {\n return [doneCommand, ...latestSuggestionsRef.current];\n }\n return latestSuggestionsRef.current;\n }\n\n return [];\n },\n [columns, getTypeaheadSuggestions, namedFilters, table]\n );\n\n const isPartialMatch = useCallback(\n async (\n valueType: SuggestionType,\n columnName?: string,\n pattern?: string\n ) => {\n // const { current: latestSuggestions } = latestSuggestionsRef;\n const suggestions =\n // latestSuggestions && latestSuggestions.length > 0\n // ? latestSuggestions\n await getSuggestions(valueType, { columnName });\n\n if (pattern && suggestions) {\n for (const option of suggestions) {\n if (option.label === pattern) {\n return false;\n } else if (option.label.startsWith(pattern)) {\n return true;\n }\n }\n }\n return false;\n },\n [getSuggestions]\n );\n\n return {\n getSuggestions,\n isPartialMatch,\n };\n};\n", "import { createEl } from \"@vuu-ui/vuu-utils\";\n\nexport const filterInfo = (\n filterName: string,\n filterQuery: string\n // filter: Filter\n) => {\n const rootElement = createEl(\"div\", \"vuuFunctionDoc\");\n const headingElement = createEl(\"div\", \"function-heading\");\n\n const nameElement = createEl(\"span\", \"function-name\", filterName);\n // const paramElement = createEl(\"span\", \"param-list\", params.description);\n // const typeElement = createEl(\"span\", \"function-type\", type);\n\n headingElement.appendChild(nameElement);\n // headingElement.appendChild(paramElement);\n // headingElement.appendChild(typeElement);\n\n const child2 = createEl(\"p\", undefined, filterQuery);\n\n rootElement.appendChild(headingElement);\n rootElement.appendChild(child2);\n\n return rootElement;\n};\n", "import { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport { Toolbar, ToolbarProps } from \"@heswell/salt-lab\";\nimport cx from \"classnames\";\nimport { SuggestionConsumer } from \"../filter-input\";\nimport { useFilterToolbar } from \"./useFilterToolbar\";\n\nimport \"./FilterToolbar.css\";\n\nexport interface FilterToolbarProps extends SuggestionConsumer, ToolbarProps {\n filter?: Filter;\n}\n\nexport const FilterToolbar = ({\n className,\n filter,\n suggestionProvider,\n ...props\n}: FilterToolbarProps) => {\n console.log(`FilterToolbar ${JSON.stringify(filter, null, 2)}`);\n const toolbarItems = useFilterToolbar({ filter, suggestionProvider });\n return (\n <Toolbar className={cx(\"vuuFilterToolbar\", className)} {...props}>\n {toolbarItems}\n </Toolbar>\n );\n};\n", "import { Filter } from \"@vuu-ui/vuu-filter-types\";\nimport {\n isMultiValueFilter,\n isNamedFilter,\n isSingleValueFilter,\n IFilterSuggestionProvider,\n SuggestionConsumer,\n} from \"@vuu-ui/vuu-filters\";\nimport { ToggleButton, ToolbarField } from \"@heswell/salt-lab\";\nimport { ReactElement } from \"react\";\nimport { FilterDropdown } from \"./FilterDropdown\";\nimport { FilterDropdownMultiSelect } from \"./FilterDropdownMultiSelect\";\n\nconst filterToControl = (\n filter: Filter,\n suggestionProvider: IFilterSuggestionProvider\n): ReactElement | ReactElement[] => {\n if (isNamedFilter(filter)) {\n return (\n <ToggleButton\n className=\"vuuToggleButton\"\n toggled={true}\n variant=\"secondary\"\n >\n {filter.name}\n </ToggleButton>\n );\n }\n if (isSingleValueFilter(filter)) {\n const { column, value } = filter;\n return (\n <ToolbarField\n className=\"vuuFilterDropdown\"\n key={column}\n label={column}\n labelPlacement=\"top\"\n >\n <FilterDropdown\n column={column}\n selected={value.toString()}\n selectionStrategy=\"default\"\n source={[value.toString()]}\n suggestionProvider={suggestionProvider}\n style={{ width: 100 }}\n />\n </ToolbarField>\n );\n }\n if (isMultiValueFilter(filter)) {\n const values = filter.values.map((v) => v.toString());\n return (\n <ToolbarField\n className=\"vuuFilterDropdown\"\n label={filter.column}\n key={filter.column}\n labelPlacement=\"top\"\n >\n <FilterDropdownMultiSelect\n column={filter.column}\n selected={values}\n source={values}\n suggestionProvider={suggestionProvider}\n style={{ width: 100 }}\n />\n </ToolbarField>\n );\n }\n return filter.filters.map((filter) =>\n filterToControl(filter, suggestionProvider)\n ) as ReactElement[];\n};\n\nexport interface FilterToolbarProps extends SuggestionConsumer {\n filter?: Filter;\n}\n\nexport const useFilterToolbar = ({\n filter,\n suggestionProvider,\n}: FilterToolbarProps) => {\n if (filter) {\n return filterToControl(filter, suggestionProvider);\n }\n return [];\n};\n", "import { Dropdown, DropdownProps } from \"@heswell/salt-lab\";\nimport { useCallback, useState } from \"react\";\nimport { IFilterSuggestionProvider } from \"../filter-input\";\n\nconst isString = (s: string | string[]): s is string => typeof s === \"string\";\n\nconst stripQuotes = <T extends string | string[]>(selected: T): T => {\n if (isString(selected)) {\n if (selected.startsWith('\"') && selected.endsWith('\"')) {\n return selected.slice(1, -1) as T;\n } else {\n return selected;\n }\n } else {\n return selected.map(stripQuotes) as T;\n }\n};\n\nexport interface FilterDropdownProps extends DropdownProps {\n column: string;\n suggestionProvider: IFilterSuggestionProvider;\n}\n\nexport const FilterDropdown = ({\n column,\n selected: selectedProp,\n suggestionProvider,\n ...props\n}: FilterDropdownProps) => {\n const selected = selectedProp != null ? stripQuotes(selectedProp) : undefined;\n const initialValues = Array.isArray(selected)\n ? selected\n : selected != null\n ? [selected]\n : [];\n const [values, setValues] = useState<string[]>(initialValues);\n console.log({ initialValues });\n const handleOpenChange = useCallback(\n async (isOpen) => {\n if (isOpen) {\n const values = await suggestionProvider.getSuggestions(\"columnValue\", {\n columnName: column,\n });\n console.log({ values });\n setValues(values.map((suggestion) => suggestion.label));\n }\n },\n [column, suggestionProvider]\n );\n\n return (\n <Dropdown\n {...props}\n onOpenChange={handleOpenChange}\n selected={selected}\n source={values}\n />\n );\n};\n", "import { Dropdown, DropdownProps } from \"@heswell/salt-lab\";\nimport { useCallback, useState } from \"react\";\nimport { IFilterSuggestionProvider } from \"../filter-input\";\n\nconst isString = (s?: string | string[]): s is string => typeof s === \"string\";\n\nconst stripQuotes = <T extends string | string[]>(\n selected?: T\n): T | undefined => {\n if (selected === undefined) {\n return undefined;\n } else if (isString(selected)) {\n if (selected.startsWith('\"') && selected.endsWith('\"')) {\n return selected.slice(1, -1) as T;\n } else {\n return selected;\n }\n } else {\n return selected.map(stripQuotes) as T;\n }\n};\n\nexport interface FilterDropdownProps extends DropdownProps<string, \"multiple\"> {\n column: string;\n suggestionProvider: IFilterSuggestionProvider;\n}\n\nexport const FilterDropdownMultiSelect = ({\n column,\n selected: selectedProp,\n suggestionProvider,\n ...props\n}: FilterDropdownProps) => {\n const selected = stripQuotes(selectedProp);\n const initialValues = Array.isArray(selected)\n ? selected\n : selected != null\n ? [selected]\n : [];\n const [values, setValues] = useState<string[]>(initialValues);\n const handleOpenChange = useCallback(\n async (isOpen) => {\n if (isOpen) {\n const values = await suggestionProvider.getSuggestions(\"columnValue\", {\n columnName: column,\n });\n console.log({ values });\n setValues(values.map((suggestion) => suggestion.label));\n }\n },\n [column, suggestionProvider]\n );\n\n return (\n <Dropdown<string, \"multiple\">\n {...props}\n onOpenChange={handleOpenChange}\n selected={selected}\n selectionStrategy=\"multiple\"\n source={values}\n />\n );\n};\n", "import { DataSourceRow } from \"@vuu-ui/vuu-data\";\nimport {\n AndFilter,\n Filter,\n MultiValueFilterClause,\n OrFilter,\n SingleValueFilterClause,\n} from \"@vuu-ui/vuu-filter-types\";\nimport { ColumnMap } from \"@vuu-ui/vuu-utils\";\nimport { parseFilter } from \"./filter-input/filter-language-parser/FilterParser\";\n\nconst filterPredicateMap = new Map<string, FilterPredicate>();\nconst filterReject = () => false;\n\nexport const getFilterPredicate = (\n columnMap: ColumnMap,\n filterQuery: string\n): FilterPredicate => {\n let predicate = filterPredicateMap.get(filterQuery);\n if (predicate) {\n return predicate;\n }\n // TODO we need to clear cache if columns change. How do we identify this :\n try {\n const filter = parseFilter(filterQuery);\n predicate = filterPredicate(columnMap, filter);\n filterPredicateMap.set(filterQuery, predicate);\n return predicate;\n } catch (err) {\n console.warn(\n `filter-evaluation-utils, failed to parse filter \"${filterQuery}\"`\n );\n return filterReject;\n }\n};\n\nexport function filterPredicate(\n columnMap: ColumnMap,\n filter: Filter\n): FilterPredicate {\n //TODO convert filter to include colIdx ratherthan colName, so we don't have to pass cols\n switch (filter.op) {\n case \"in\":\n return testInclude(columnMap, filter);\n case \"=\":\n return testEQ(columnMap, filter);\n case \">\":\n return testGT(columnMap, filter);\n case \">=\":\n return testGE(columnMap, filter);\n case \"<\":\n return testLT(columnMap, filter);\n case \"<=\":\n return testLE(columnMap, filter);\n case \"starts\":\n return testSW(columnMap, filter);\n case \"and\":\n return testAND(columnMap, filter as AndFilter);\n case \"or\":\n return testOR(columnMap, filter as OrFilter);\n default:\n console.log(`unrecognized filter type ${filter.op}`);\n return () => true;\n }\n}\n\nexport type FilterPredicate = (row: DataSourceRow) => boolean;\n\nconst testInclude = (\n columnMap: ColumnMap,\n filter: MultiValueFilterClause\n): FilterPredicate => {\n return (row) =>\n (filter.values as unknown[]).indexOf(row[columnMap[filter.column]]) !== -1;\n};\n\nconst testEQ = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n return (row) => row[columnMap[filter.column]] === filter.value;\n};\n\nconst testGT = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n return (row) => row[columnMap[filter.column]] > filter.value;\n};\nconst testGE = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n return (row) => row[columnMap[filter.column]] >= filter.value;\n};\n\nconst testLT = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n return (row) => row[columnMap[filter.column]] < filter.value;\n};\nconst testLE = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n return (row) => row[columnMap[filter.column]] <= filter.value;\n};\n\nconst testSW = (\n columnMap: ColumnMap,\n filter: SingleValueFilterClause\n): FilterPredicate => {\n const filterValue = filter.value as string;\n if (typeof filterValue !== \"string\") {\n throw Error(\"string filter applied to value of wrong type\");\n }\n return (row) => {\n const rowValue = row[columnMap[filter.column]];\n if (typeof rowValue !== \"string\") {\n throw Error(\"string filter applied to value of wrong type\");\n }\n return rowValue.toLowerCase().startsWith(filterValue.toLowerCase());\n };\n};\n\nconst testAND = (columnMap: ColumnMap, filter: AndFilter): FilterPredicate => {\n const filters = filter.filters.map((f1) => filterPredicate(columnMap, f1));\n return (row) => filters.every((fn) => fn(row));\n};\n\nfunction testOR(columnMap: ColumnMap, filter: OrFilter): FilterPredicate {\n const filters = filter.filters.map((f1) => filterPredicate(columnMap, f1));\n return (row) => filters.some((fn) => fn(row));\n}\n", "import { ColumnDescriptor } from \"@vuu-ui/vuu-datagrid-types\";\nimport { KeyedColumnDescriptor } from \"@vuu-ui/vuu-datagrid-types\";\nimport { extractFilterForColumn, partition } from \"@vuu-ui/vuu-utils\";\nimport {\n isAndFilter,\n isInFilter,\n isMultiClauseFilter,\n isMultiValueFilter,\n isOrFilter,\n isSingleValueFilter,\n} from \"./filterTypes\";\nimport {\n AndFilter,\n Filter,\n FilterClause,\n FilterCombinatorOp,\n} from \"@vuu-ui/vuu-filter-types\";\n\nexport const AND = \"and\";\nexport const EQUALS = \"=\";\nexport const GREATER_THAN = \">\";\nexport const LESS_THAN = \"<\";\nexport const OR = \"or\";\nexport const STARTS_WITH = \"starts\";\nexport const ENDS_WITH = \"ends\";\nexport const IN = \"in\";\n\nexport type FilterType =\n | \"and\"\n | \"=\"\n | \">\"\n | \">=\"\n | \"in\"\n | \"<=\"\n | \"<\"\n | \"NOT_IN\"\n | \"NOT_SW\"\n | \"or\"\n | \"SW\";\n\nexport const filterClauses = (\n filter: Filter | null,\n clauses: FilterClause[] = []\n) => {\n if (filter) {\n if (isMultiClauseFilter(filter)) {\n filter.filters.forEach((f) => clauses.push(...filterClauses(f)));\n } else {\n clauses.push(filter);\n }\n }\n return clauses;\n};\n\ntype AddFilterOptions = {\n combineWith: FilterCombinatorOp;\n};\n\nconst DEFAULT_ADD_FILTER_OPTS: AddFilterOptions = {\n combineWith: \"and\",\n};\n\nexport const addFilter = (\n existingFilter: Filter | undefined,\n filter: Filter,\n { combineWith = AND }: AddFilterOptions = DEFAULT_ADD_FILTER_OPTS\n): Filter | undefined => {\n if (includesNoValues(filter)) {\n if (isMultiClauseFilter(filter)) {\n // TODO identify the column that is contributing the no-values filter\n } else {\n existingFilter = removeFilterForColumn(existingFilter, {\n name: filter.column,\n });\n }\n } else if (includesAllValues(filter)) {\n if (isMultiClauseFilter(filter)) {\n // TODO identify the column that is contributing the all-values filter\n }\n return removeFilterForColumn(existingFilter, { name: filter.column ?? \"\" });\n }\n\n if (!existingFilter) {\n return filter;\n }\n if (!filter) {\n return existingFilter;\n }\n if (existingFilter.op === AND && filter.op === AND) {\n return {\n op: AND,\n filters: combine(existingFilter.filters, filter.filters),\n };\n }\n if (existingFilter.op === AND) {\n const filters = replaceOrInsert(existingFilter.filters, filter);\n return filters.length > 1 ? { op: AND, filters } : filters[0];\n }\n if (filter.op === AND) {\n return { op: AND, filters: filter.filters.concat(existingFilter) };\n }\n\n if (filterEquals(existingFilter, filter, true)) {\n return filter;\n }\n\n if (canMerge(existingFilter, filter)) {\n return merge(existingFilter, filter);\n }\n\n return { op: combineWith, filters: [existingFilter, filter] };\n};\n\nconst includesNoValues = (filter?: Filter | null): boolean => {\n if (!filter) {\n return false;\n }\n if (isInFilter(filter) && filter.values.length === 0) {\n return true;\n }\n return isAndFilter(filter) && filter.filters.some((f) => includesNoValues(f));\n};\n\nconst filterValue = (value: string | number | boolean) =>\n typeof value === \"string\" ? `\"${value}\"` : value;\n\nexport const filterAsQuery = (f: Filter): string => {\n if (isMultiClauseFilter(f)) {\n return f.filters.map((filter) => filterAsQuery(filter)).join(` ${f.op} `);\n } else if (isMultiValueFilter(f)) {\n return `${f.column} ${f.op} [${f.values.join(\",\")}]`;\n } else {\n return `${f.column} ${f.op} ${filterValue(f.value)}`;\n }\n};\n\ninterface CommonFilter {\n colName?: string;\n otherColFilters?: Filter[];\n mode?: any;\n value?: any;\n values?: any;\n op?: \"or\" | \"and\";\n column?: string;\n filters?: Filter[];\n}\n\nexport interface OtherFilter extends CommonFilter {\n type: FilterType;\n values?: any[];\n}\n\nconst includesAllValues = (filter?: Filter | null): boolean => {\n if (!filter) {\n return false;\n }\n if (filter.op === STARTS_WITH && filter.value === \"\") {\n return true;\n }\n return filter.op === STARTS_WITH && filter.value === \"\";\n};\n\nconst replaceOrInsert = (filters: Filter[], filter: Filter) => {\n return filters.concat(filter);\n};\n\nconst merge = (f1: Filter, f2: Filter): Filter | undefined => {\n if (includesNoValues(f2)) {\n return f2;\n }\n if (isInFilter(f1) && isInFilter(f2)) {\n return {\n ...f1,\n values: [\n ...f1.values,\n ...(f2.values as any[]).filter(\n (v: string | number) => !(f1.values as any[]).includes(v)\n ),\n ],\n };\n } else if (isInFilter(f1) && f2.op === EQUALS) {\n return {\n ...f1,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n values: f1.values.concat([f2.value]),\n };\n } else if (f1.op === EQUALS && f2.op === EQUALS) {\n return {\n column: f1.column,\n op: IN,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n values: [f1.value, f2.value],\n };\n }\n return f2;\n};\n\nconst combine = (existingFilters: Filter[], replacementFilters: Filter[]) => {\n const equivalentType = ({ op: t1 }: Filter, { op: t2 }: Filter) => {\n return t1 === t2 || t1[0] === t2[0];\n };\n const replaces = (existingFilter: Filter, replacementFilter: Filter) => {\n return (\n existingFilter.column === replacementFilter.column &&\n equivalentType(existingFilter, replacementFilter)\n );\n };\n const stillApplicable = (existingFilter: Filter) =>\n replacementFilters.some((replacementFilter) =>\n replaces(existingFilter, replacementFilter)\n ) === false;\n return existingFilters.filter(stillApplicable).concat(replacementFilters);\n};\n\nexport const removeColumnFromFilter = (\n column: KeyedColumnDescriptor,\n filter: Filter\n): [Filter | undefined, string] => {\n if (isMultiClauseFilter(filter)) {\n const [clause1, clause2] = filter.filters;\n if (clause1.column === column.name) {\n return [clause2, filterAsQuery(clause2)];\n }\n if (clause2.column === column.name) {\n return [clause1, filterAsQuery(clause1)];\n }\n }\n return [undefined, \"\"];\n};\n\nexport const removeFilter = (sourceFilter: Filter, filterToRemove: Filter) => {\n if (filterEquals(sourceFilter, filterToRemove, true)) {\n return null;\n }\n if (sourceFilter.op !== AND) {\n throw Error(\n `removeFilter cannot remove ${JSON.stringify(\n filterToRemove\n )} from ${JSON.stringify(sourceFilter)}`\n );\n }\n const filters = sourceFilter.filters.filter(\n (f) => !filterEquals(f, filterToRemove)\n );\n return filters.length > 0 ? { type: AND, filters } : null;\n};\n\nexport const splitFilterOnColumn = (\n filter: Filter | null,\n columnName: string\n): [Filter | null, Filter | null] => {\n if (!filter) {\n return [null, null];\n }\n if (filter.column === columnName) {\n return [filter, null];\n }\n if (filter.op !== AND) {\n return [null, filter];\n }\n const [[columnFilter = null], filters] = partition(\n (filter as AndFilter).filters,\n (f) => f.column === columnName\n );\n return filters.length === 1\n ? [columnFilter, filters[0]]\n : [columnFilter, { op: AND, filters }];\n};\n\nexport const overrideColName = (filter: Filter, column: string): Filter => {\n if (isMultiClauseFilter(filter)) {\n return {\n op: filter.op,\n filters: filter.filters.map((f) => overrideColName(f, column)),\n };\n }\n return { ...filter, column };\n};\n\nexport const filterIncludesColumn = (\n filter: Filter,\n column: KeyedColumnDescriptor\n): boolean => {\n if (!filter) {\n return false;\n }\n const { op, column: filterColName } = filter;\n switch (op) {\n case AND:\n case OR:\n return (\n filter.filters != null &&\n filter.filters.some((f) => filterIncludesColumn(f, column))\n );\n default:\n return filterColName === column.name;\n }\n};\n\nconst removeFilterForColumn = (\n sourceFilter: Filter | undefined,\n column: ColumnDescriptor\n): Filter | undefined => {\n const colName = column.name;\n if (!sourceFilter) {\n return undefined;\n }\n if (sourceFilter.column === colName) {\n return undefined;\n }\n if (isAndFilter(sourceFilter) || isOrFilter(sourceFilter)) {\n const { op } = sourceFilter;\n const filters = sourceFilter.filters;\n const otherColFilters = filters.filter((f) => f.column !== colName);\n switch (otherColFilters.length) {\n case 0:\n return undefined;\n case 1:\n return otherColFilters[0];\n default:\n return { op, filters: otherColFilters };\n }\n }\n return sourceFilter;\n};\n\nconst canMerge = (f1: Filter, f2: Filter) =>\n f1.column === f2.column &&\n (f1.op === \"=\" || f1.op === \"in\") &&\n (f2.op === \"=\" || f2.op === \"in\");\n\nconst sameValues = <T>(arr1: T[], arr2: T[]) => {\n if (arr1 === arr2) {\n return true;\n }\n if (arr1.length === arr2.length) {\n const a = arr1.slice().sort();\n const b = arr2.slice().sort();\n return a.join(\"|\") === b.join(\"|\");\n }\n return false;\n};\n\nexport const filterEquals = (f1?: Filter, f2?: Filter, strict = false) => {\n if (!strict) {\n return true;\n }\n if (f1 && f2 && canMerge(f1, f2)) {\n return (\n f1.op === f2.op &&\n ((isSingleValueFilter(f1) &&\n isSingleValueFilter(f2) &&\n f1.value === f2.value) ||\n (isMultiValueFilter(f1) &&\n isMultiValueFilter(f2) &&\n sameValues(f1.values as any[], f2.values)))\n );\n }\n return false;\n};\n\nexport const updateFilter = (\n filter: Filter | undefined,\n newFilter: Filter | undefined,\n mode: \"add\" | \"replace\"\n): Filter | undefined => {\n if (filter && newFilter) {\n if (mode === \"replace\") {\n return newFilter;\n }\n if (filter.op === \"and\") {\n return {\n ...filter,\n filters: filter.filters.concat(newFilter),\n };\n }\n const { column: columnName } = newFilter;\n if (columnName) {\n const existingClause = newFilter.column\n ? extractFilterForColumn(filter, columnName)\n : undefined;\n if (existingClause && columnName) {\n // The filter already contains a clause for this column, replace\n // with the new clause\n const result = removeFilterForColumn(filter, { name: columnName });\n return updateFilter(result, newFilter, \"add\");\n }\n }\n return {\n op: \"and\",\n filters: [filter, newFilter],\n };\n }\n if (newFilter) {\n return newFilter;\n }\n return filter;\n};\n", "//TODO these are duplicated in vuu-utils, that shoudl probably be the righful source\nimport {\n AndFilter,\n Filter,\n MultiClauseFilter,\n MultiValueFilterClause,\n OrFilter,\n SingleValueFilterClause,\n SingleValueFilterClauseOp,\n} from \"@vuu-ui/vuu-filter-types\";\n\nconst singleValueFilterOps = new Set<SingleValueFilterClauseOp>([\n \"=\",\n \"!=\",\n \">\",\n \">=\",\n \"<\",\n \"<=\",\n \"starts\",\n \"ends\",\n]);\n\n// convenience methods to check filter type\nexport const isNamedFilter = (f?: Filter) =>\n f !== undefined && f.name !== undefined;\n\n// ... with type constraints\nexport const isSingleValueFilter = (f?: Filter): f is SingleValueFilterClause =>\n f !== undefined &&\n singleValueFilterOps.has(f.op as SingleValueFilterClauseOp);\n\nexport const isFilterClause = (\n f?: Filter\n): f is SingleValueFilterClause | MultiValueFilterClause =>\n f !== undefined && (isSingleValueFilter(f) || isMultiValueFilter(f));\n\nexport const isMultiValueFilter = (f?: Filter): f is MultiValueFilterClause =>\n f !== undefined && f.op === \"in\";\n\nexport const isInFilter = (f: Filter): f is MultiValueFilterClause =>\n f.op === \"in\";\nexport const isAndFilter = (f: Filter): f is AndFilter => f.op === \"and\";\nexport const isOrFilter = (f: Filter): f is OrFilter => f.op === \"or\";\n\nexport function isMultiClauseFilter(f?: Filter): f is MultiClauseFilter {\n return f !== undefined && (f.op === \"and\" || f.op === \"or\");\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["module", "isMultiClauseFilter", "isMultiValueFilter", "isSingleValueFilter", "import_vuu_codemirror", "import_react", "import_vuu_codemirror", "tag", "import_vuu_codemirror", "import_vuu_codemirror", "import_vuu_codemirror", "cx", "parseFilter", "clearInput", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["require_classnames", "__commonJSMin", "exports", "module", "hasOwn", "nativeCodeString", "classNames", "classes", "i", "arg", "argType", "inner", "key", "src_exports", "__export", "AND", "ENDS_WITH", "EQUALS", "FilterInput", "FilterToolbar", "GREATER_THAN", "IN", "LESS_THAN", "OR", "STARTS_WITH", "addFilter", "filterAsQuery", "filterClauses", "filterEquals", "filterIncludesColumn", "filterPredicate", "getFilterPredicate", "isAndFilter", "isFilterClause", "isInFilter", "isMultiClauseFilter", "isMultiValueFilter", "isNamedFilter", "isOrFilter", "isSingleValueFilter", "overrideColName", "parseFilter", "removeColumnFromFilter", "removeFilter", "splitFilterOnColumn", "updateFilter", "useCodeMirrorEditor", "useFilterSuggestionProvider", "__toCommonJS", "import_core", "import_vuu_codemirror", "import_classnames", "import_react", "import_vuu_codemirror", "import_vuu_codemirror", "parser", "filterLanguage", "parser", "tag", "filterLanguageSupport", "import_vuu_utils", "_filter", "FilterExpression", "__privateAdd", "op", "filter", "__privateGet", "__privateSet", "column", "target", "value", "_a", "walkTree", "tree", "source", "filterExpression", "cursor", "name", "from", "to", "strictParser", "parser", "parseFilter", "filterQuery", "parseTree", "walkTree", "import_vuu_codemirror", "myHighlightStyle", "vuuHighlighting", "import_vuu_codemirror", "vuuTheme", "import_vuu_codemirror", "import_react", "getOperator", "node", "state", "maybeColumnNode", "getPartialOperator", "maybeOperatorNode", "columnName", "value", "val", "getClauseOperator", "maybeTargetNode", "getSetValues", "values", "promptForFilterName", "context", "makeSaveOrExtendSuggestions", "onSubmit", "existingFilter", "withJoinSuggestions", "result", "promptToSaveOrExtend", "promptToSave", "useAutoComplete", "suggestionProvider", "makeSuggestions", "suggestionType", "optionalArgs", "options", "startsWith", "_a", "_b", "pos", "word", "nodeBefore", "operator", "partialOperator", "selection", "lastToken", "getView", "ref", "getOptionClass", "completion", "cx", "stripName", "filterQuery", "pos", "noop", "useCodeMirrorEditor", "existingFilter", "onSubmitFilter", "suggestionProvider", "editorRef", "onSubmit", "viewRef", "completionFn", "useAutoComplete", "createState", "clearInput", "parseFilter", "view", "source", "tree", "filter", "walkTree", "submitFilterAndClearInput", "mode", "filterName", "submitFilter", "key", "showSuggestions", "filterLanguageSupport", "v", "tr", "vuuTheme", "vuuHighlighting", "_a", "import_jsx_runtime", "classBase", "FilterInput", "existingFilter", "namedFilters", "onSubmitFilter", "suggestionProvider", "props", "editorRef", "clearInput", "useCodeMirrorEditor", "import_vuu_codemirror", "import_vuu_data", "import_react", "import_vuu_utils", "filterInfo", "filterName", "filterQuery", "rootElement", "headingElement", "nameElement", "child2", "NO_NAMED_FILTERS", "NONE", "suggestColumns", "columns", "column", "suggestNamedFilters", "namedFilters", "filterName", "filterQuery", "filterInfo", "doneCommand", "withApplySpace", "suggestions", "startsWith", "sugg", "suggestion", "useFilterSuggestionProvider", "table", "latestSuggestionsRef", "getTypeaheadSuggestions", "getSuggestions", "suggestionType", "options", "columnName", "operator", "selection", "col", "columnSuggestions", "filterSuggestions", "prefix", "params", "isIllustration", "isPartialMatch", "valueType", "pattern", "option", "import_salt_lab", "import_classnames", "import_salt_lab", "import_salt_lab", "import_react", "import_jsx_runtime", "isString", "s", "stripQuotes", "selected", "FilterDropdown", "column", "selectedProp", "suggestionProvider", "props", "initialValues", "values", "setValues", "handleOpenChange", "isOpen", "suggestion", "import_salt_lab", "import_react", "import_jsx_runtime", "isString", "s", "stripQuotes", "selected", "FilterDropdownMultiSelect", "column", "selectedProp", "suggestionProvider", "props", "initialValues", "values", "setValues", "handleOpenChange", "isOpen", "suggestion", "import_jsx_runtime", "filterToControl", "filter", "suggestionProvider", "isNamedFilter", "isSingleValueFilter", "column", "value", "FilterDropdown", "isMultiValueFilter", "values", "v", "FilterDropdownMultiSelect", "useFilterToolbar", "import_jsx_runtime", "FilterToolbar", "className", "filter", "suggestionProvider", "props", "toolbarItems", "useFilterToolbar", "cx", "filterPredicateMap", "filterReject", "getFilterPredicate", "columnMap", "filterQuery", "predicate", "filter", "parseFilter", "filterPredicate", "testInclude", "testEQ", "testGT", "testGE", "testLT", "testLE", "testSW", "testAND", "testOR", "row", "filterValue", "rowValue", "filters", "f1", "fn", "import_vuu_utils", "singleValueFilterOps", "isNamedFilter", "f", "isSingleValueFilter", "isFilterClause", "isMultiValueFilter", "isInFilter", "isAndFilter", "isOrFilter", "isMultiClauseFilter", "AND", "EQUALS", "GREATER_THAN", "LESS_THAN", "OR", "STARTS_WITH", "ENDS_WITH", "IN", "filterClauses", "filter", "clauses", "isMultiClauseFilter", "f", "DEFAULT_ADD_FILTER_OPTS", "addFilter", "existingFilter", "combineWith", "_a", "includesNoValues", "removeFilterForColumn", "includesAllValues", "combine", "filters", "replaceOrInsert", "filterEquals", "canMerge", "merge", "isInFilter", "isAndFilter", "filterValue", "value", "filterAsQuery", "isMultiValueFilter", "f1", "f2", "v", "existingFilters", "replacementFilters", "equivalentType", "t1", "t2", "replaces", "replacementFilter", "stillApplicable", "removeColumnFromFilter", "column", "clause1", "clause2", "removeFilter", "sourceFilter", "filterToRemove", "splitFilterOnColumn", "columnName", "columnFilter", "overrideColName", "filterIncludesColumn", "op", "filterColName", "colName", "isOrFilter", "otherColFilters", "sameValues", "arr1", "arr2", "a", "b", "strict", "isSingleValueFilter", "updateFilter", "newFilter", "mode", "result"]
|
|
7
7
|
}
|