Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
build
/
File Content:
7166.480da6892ee84ee8bb53.js.map
{"version":3,"file":"7166.480da6892ee84ee8bb53.js","mappings":"2JAIA,MAAMA,EAAe,CAAC,CAAE,SAAAC,CAAS,IAAM,CACrC,MAAMC,KAAS,MAAWC,CAAS,EACnC,OAAuB,gBAA6B,MAAO,CAAE,UAAWD,EAAO,IAAK,EAAGD,CAAQ,CACjG,EACME,EAAaC,IAAW,CAC5B,QAAM,OAAI,CACR,QAAS,OACT,SAAU,OACV,WAAY,SACZ,IAAKA,EAAM,QAAQ,CAAC,EACpB,UAAWA,EAAM,QAAQ,CAAC,CAC5B,CAAC,CACH,E,kECdA,MAAMC,EAAW,CAAC,CAAE,KAAAC,EAAM,OAAAC,CAAO,IACR,gBAA6B,MAAO,CAAE,MAAO,CAAE,QAAS,QAAS,SAAUD,EAAM,WAAYC,CAAO,CAAE,CAAC,C,6GCC5HC,EAAY,OAAO,eACnBC,EAAa,OAAO,iBACpBC,EAAoB,OAAO,0BAC3BC,EAAsB,OAAO,sBAC7BC,EAAe,OAAO,UAAU,eAChCC,EAAe,OAAO,UAAU,qBAChCC,EAAkB,CAACC,GAAKC,GAAKC,KAAUD,MAAOD,GAAMP,EAAUO,GAAKC,GAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAC,EAAM,CAAC,EAAIF,GAAIC,EAAG,EAAIC,GACtJC,EAAiB,CAACC,GAAGC,KAAM,CAC7B,QAASC,MAAQD,KAAMA,GAAI,CAAC,GACtBR,EAAa,KAAKQ,GAAGC,EAAI,GAC3BP,EAAgBK,GAAGE,GAAMD,GAAEC,EAAI,CAAC,EACpC,GAAIV,EACF,QAASU,MAAQV,EAAoBS,EAAC,EAChCP,EAAa,KAAKO,GAAGC,EAAI,GAC3BP,EAAgBK,GAAGE,GAAMD,GAAEC,EAAI,CAAC,EAEtC,OAAOF,EACT,EACIG,EAAgB,CAACH,GAAGC,KAAMX,EAAWU,GAAGT,EAAkBU,EAAC,CAAC,EAC5DG,EAAY,CAACC,GAAQC,KAAY,CACnC,IAAIC,GAAS,CAAC,EACd,QAASL,MAAQG,GACXZ,EAAa,KAAKY,GAAQH,EAAI,GAAKI,GAAQ,QAAQJ,EAAI,EAAI,IAC7DK,GAAOL,EAAI,EAAIG,GAAOH,EAAI,GAC9B,GAAIG,IAAU,MAAQb,EACpB,QAASU,MAAQV,EAAoBa,EAAM,EACrCC,GAAQ,QAAQJ,EAAI,EAAI,GAAKR,EAAa,KAAKW,GAAQH,EAAI,IAC7DK,GAAOL,EAAI,EAAIG,GAAOH,EAAI,GAEhC,OAAOK,EACT,EACA,SAASC,EAAaC,GAAI,CACxB,IAAIC,GAAKD,GAAI,CAAE,MAAOE,EAAU,EAAID,GAAIE,GAAQR,EAAUM,GAAI,CAAC,OAAO,CAAC,EACvE,MAAM3B,MAAS,MAAW8B,EAAe,EACnC,CAACC,EAAE,KAAI,YAAS,IAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,EACzDC,GAAa,CACjB,gBAAAC,GACA,eAAAC,GACA,YAAaA,EACf,EACA,OAAuB,gBAA6B,MAAO,CAAE,UAAWlC,GAAO,IAAK,EAAG4B,IAA6B,gBAA6B,QAAS,CAAE,UAAW5B,GAAO,MAAO,QAAS+B,EAAG,EAAGH,GAAW,IAAK,MAAM,EAAmB,gBAA6B,KAAQR,EAAcJ,EAAe,CAAE,gBAAiB,GAAM,QAASe,EAAG,EAAGF,EAAK,EAAG,CAAE,WAAAG,EAAW,CAAC,CAAC,CAAC,CACjX,CACA,MAAMC,GAAmBJ,IAAU,CACjC,KAAM,CAAE,SAAA9B,EAAS,EAAI8B,GACf7B,MAAS,MAAW8B,EAAe,EACzC,OAAuB,gBAA6B,IAAmBV,EAAcJ,EAAe,CAAC,EAAGa,EAAK,EAAG,CAAE,aAAW,MAAGA,GAAM,UAAW7B,GAAO,SAAS,CAAE,CAAC,EAAGD,EAAQ,CACjL,EACMmC,GAAkBL,IAAU,CAChC,KAAM,CAAE,UAAAM,GAAW,SAAApC,EAAS,EAAI8B,GAC1B7B,MAAS,MAAW8B,EAAe,EACzC,OAAuB,gBAA6B,MAAO,CAAE,aAAW,MAAGK,GAAWnC,GAAO,cAAc,CAAE,EAAGD,EAAQ,CAC1H,EACM+B,GAAmB5B,KAAW,CAClC,QAAM,OAAI,CACR,QAAS,OACT,SAAU,GACV,WAAY,QACd,CAAC,EACD,SAAO,OAAI,CACT,MAAOA,GAAM,OAAO,KAAK,UACzB,WAAY,QACd,CAAC,EACD,aAAW,OAAI,CACb,WAAY,OACZ,YAAa,aACf,CAAC,EACD,kBAAgB,OAAI,CAClB,QAAS,OACT,WAAY,SACZ,KAAM,UACN,MAAOA,GAAM,OAAO,KAAK,UACzB,SAAU,EACZ,CAAC,CACH,E,iVC7EA,MAAMkC,EAAS,SACTC,EAAO,OACPC,EAAQ,QACRC,EAAQ,QACRC,EAAQ,QACRC,EAAK,KACLC,EAAO,OACPC,EAAM,MACNC,EAAQ,QACRC,EAAO,OACPC,EAAK,KACLC,EAAS,SACTC,EAAM,MACNC,EAAK,KACLC,EAAoB,CAACF,EAAKC,CAAE,EAC5BE,EAAS,IACTC,GAAa,KACbC,GAAuB,CAACF,EAAQC,EAAU,EAC1CE,GAAgB,CAAC,GAAGD,EAAoB,EACxCE,GAAO,CACX,SAAU,CACR,YAAa,KACb,aAAc,CAAC,KAAM,IAAI,CAC3B,EACA,SAAU,CACR,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,EACT,CAAC,IAAK,GAAG,CACX,EACA,iBAAkB,CAChB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,CAC1B,EACA,iBAAkB,CAChB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,EACxB,CAAE,KAAM,IAAK,MAAO,GAAI,CAC1B,CACF,EACMC,GAAW,CACf,aAAc,GACd,aAAc,OACd,WAAY,GACZ,SAAU,CACR,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,kBAAmB,EACnD,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,uBAAwB,CAC1D,EACA,SAAU,CACR,QACA,WACA,SACA,MACA,MACA,QACA,MACA,WACA,QACA,SACA,UACA,MACA,MACA,MACA,KACA,MACA,YACA,KACA,SACA,gBACA,gBACA,MACA,SACA,SACA,QACA,UACA,MACA,aACA,OACA,QACA,SACA,OACA,KACA,UACA,WACA,OACA,OACA,UACA,OACA,YACA,mBACA,cACA,QACA,aACA,QACA,YACA,WACA,UACA,YACA,SACA,SACA,UACA,WACA,UACA,aACA,aACA,cACA,WACA,gBACA,WACA,UACA,gBACA,QACA,SACA,QACA,UACA,eACA,eACA,oBACA,eACA,SACA,WACA,OACA,MACA,OACA,aACA,MACA,UACA,UACA,UACA,aACA,WACA,SACA,OACA,OACA,WACA,aACA,SACA,cACA,aACA,OACA,WACA,cACA,KACA,SACA,SACA,OACA,OACA,OACA,OACA,MACA,WACA,SACA,SACA,SACA,YACA,UACA,YACA,OACA,UACA,SACA,OACA,UACA,WACA,UACA,OACA,QACA,QACA,OACA,aACA,SACA,QACA,QACA,YACA,MACA,UACA,UACA,QACA,WACA,gBACA,OACA,OACA,WACA,YACA,MACA,OACA,SACA,KACA,OACA,QACA,QACA,SACA,SACA,WACA,OACA,WACA,cACA,kBACA,KACA,SACA,YACA,KACA,UACA,QACA,UACA,YACA,YACA,QACA,QACA,cACA,SACA,UACA,MACA,UACA,YACA,WACA,OACA,KACA,SACA,YACA,OACA,MACA,OACA,WACA,OACA,UACA,OACA,QACA,OACA,QACA,SACA,OACA,QACA,QACA,QACA,eACA,MACA,QACA,MACA,SACA,SACA,QACA,QACA,WACA,UACA,QACA,OACA,KACA,UACA,eACA,OACA,MACA,UACA,UACA,OACA,SACA,QACA,UACA,eACA,KACA,MACA,SACA,UACA,KACA,OACA,OACA,iBACA,YACA,aACA,UACA,SACA,KACA,QACA,SACA,QACA,SACA,OACA,WACA,MACA,UACA,YACA,SACA,UACA,QACA,OACA,WACA,SACA,YACA,YACA,UACA,WACA,UACA,QACA,QACA,aACA,OACA,YACA,SACA,QACA,QACA,YACA,QACA,OACA,WACA,OACA,cACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,UACA,cACA,UACA,WACA,SACA,YACA,SACA,SACA,QACA,WACA,MACA,WACA,aACA,OACA,OACA,OACA,YACA,SACA,SACA,SACA,UACA,gBACA,SACA,yBACA,iCACA,0BACA,UACA,eACA,MACA,UACA,WACA,OACA,WACA,OACA,QACA,MACA,QACA,UACA,WACA,WACA,aACA,aACA,YACA,MACA,cACA,QACA,cACA,OACA,YACA,WACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,MACA,WACA,OACA,cACA,YACA,cACA,UACA,OACA,OACA,WACA,cACA,UACA,YACA,QACA,SACA,UACA,UACA,SACA,aACA,QACA,QACA,MACA,OACA,QACA,SACA,QACA,SACA,UACA,UACA,OACA,UACA,UACA,OACA,WACA,QACA,QACA,SACA,OACA,eACA,UACA,OACA,QACA,YACA,OACA,MACF,EACA,UAAW,CAET,SACA,YACA,QAEA,QACA,QACA,OACA,QACA,OACA,OACA,QACA,QAEA,WACA,WACA,KACA,OAEA,QACA,UAEA,SACF,EACA,iBAAkB,CAAC,MAAO,MAAO,MAAO,UAAW,SAAU,KAAM,OAAQ,MAAO,KAAM,MAAM,EAC9F,oBAAqB,CAAC,KAAM,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,IAAK,IAAK,IAAK,GAAG,EAC/E,iBAAkB,CAEhB,MACA,eACA,QACA,YACA,WACA,cACA,MACA,MACA,MACA,QACA,SACA,MACA,OAEA,YACA,cACA,MACA,aACA,OACA,kBACA,kBACA,eAEA,UACA,oBACA,mBAEA,6BAEA,OACA,UACA,QACA,WACA,cACA,YAEA,aACA,kBACA,eACA,UACA,mBACA,mBACA,gBACA,eACA,0BACA,uBACA,sBACA,mBACA,gBACA,eACA,sBACA,YACA,kBACA,WACA,SACA,WACA,gBACA,aACA,iBACA,qBACA,wBAEA,gBAEA,aACA,gBACA,aACA,aACA,WACA,uBAEA,oBACA,UACA,WACA,gBACA,WACA,WACA,qBACA,oBACA,0BACA,MACA,UACA,UACA,aACA,SACA,QACA,yBACA,eACA,cACA,oBACA,iBACA,gBACA,mBACA,OAEA,SACA,WACA,MACA,SAEA,MACA,OACA,OACA,OACA,OACA,UACA,MACA,MACA,UACA,MACA,QACA,MACA,QACA,KACA,QACA,UACA,OACA,QACA,OACA,MACA,OACA,SACA,MAEA,WACA,eACA,eACA,mBACA,aACA,WACA,iBACA,wBACA,qBACA,QACA,UACA,UACA,YACA,YACA,eACA,iBACA,oBACA,eACA,0BACA,0BACA,YACA,oBACA,gBACA,oBACA,YACA,cACA,qBACA,iBACA,mBACA,mBACA,YACA,YACA,cACA,iBACA,iBACA,aACA,UACA,YACA,eAEA,aACA,QACA,OACA,aAEA,uBAEA,iBACA,YACA,aACA,UAEA,cACA,iBACA,eACA,eACA,oBACA,YACA,gBACA,mBACA,gBACA,iBACA,cACA,aACA,aACA,eACA,kBACA,WACA,aACA,YACA,cACA,cACA,OACA,UACA,YAEA,QACA,OACA,YACA,SACA,aACA,SACA,OACA,MACA,QACA,QACA,QACA,WACA,YACA,UACA,YACA,UACA,QACA,QACA,UACA,QACA,MACA,QACA,YACA,UACA,QAEA,kBACA,WACA,qBACA,eACA,qBACA,aACA,eACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,qCACA,UACA,YACA,SACA,YACA,wBACA,QACA,kBACA,eACA,aAEA,UACA,YAEA,kBACA,YACA,oBACA,SAEA,cACA,0BACA,kCACA,oCACA,oCAEA,gBACA,gBAEA,yBACA,iCACA,0BAEA,oBACA,uBACA,iBACA,WAEA,yBACF,EACA,iBAAkB,CAEhB,cACA,SACA,WACA,aACA,iBACA,oBACA,kBACA,cACA,YACA,cACA,eACA,gBACA,SACA,aACA,YAEA,gBACA,iBAEA,cAEA,WAEA,UACA,aACA,aACA,cAEA,gBACA,aACA,SACA,YACA,kBACA,kBACA,cACA,cACA,iBACA,eACA,eACF,EACA,cAAe,CAAC,UAAW,YAAa,WAAY,YAAY,EAChE,UAAW,CACT,KAAM,CACJ,CAAE,QAAS,oBAAqB,EAChC,CAAE,QAAS,SAAU,EACrB,CAAE,QAAS,WAAY,EACvB,CAAE,QAAS,aAAc,EACzB,CAAE,QAAS,gBAAiB,EAC5B,CAAE,QAA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","sources":["webpack://grafana/./node_modules/@grafana/experimental/dist/esm/QueryEditor/EditorHeader.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/QueryEditor/FlexItem.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/QueryEditor/InlineSelect.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/language.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/macros.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/standardSQLCompletionItemProvider.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/types.js","webpack://grafana/./node_modules/@grafana/experimental/node_modules/uuid/dist/esm-browser/rng.js","webpack://grafana/./node_modules/@grafana/experimental/node_modules/uuid/dist/esm-browser/regex.js","webpack://grafana/./node_modules/@grafana/experimental/node_modules/uuid/dist/esm-browser/validate.js","webpack://grafana/./node_modules/@grafana/experimental/node_modules/uuid/dist/esm-browser/stringify.js","webpack://grafana/./node_modules/@grafana/experimental/node_modules/uuid/dist/esm-browser/v4.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/node_modules/immutable/dist/immutable.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-is/cjs/react-is.production.min.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-is/index.js","webpack://grafana/./node_modules/clone/clone.js","webpack://grafana/./packages/grafana-sql/src/types.ts","webpack://grafana/./packages/grafana-sql/src/ResponseParser.ts","webpack://grafana/./packages/grafana-sql/src/expressions.ts","webpack://grafana/./packages/grafana-sql/src/utils/sql.utils.ts","webpack://grafana/./packages/grafana-sql/src/defaults.ts","webpack://grafana/./packages/grafana-sql/src/components/ConfirmModal.tsx","webpack://grafana/./packages/grafana-sql/src/components/QueryEditorFeatureFlag.utils.ts","webpack://grafana/./packages/grafana-sql/src/components/DatasetSelector.tsx","webpack://grafana/./packages/grafana-sql/src/components/TableSelector.tsx","webpack://grafana/./packages/grafana-sql/src/components/QueryHeader.tsx","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/getStatementPosition.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/toCompletionItem.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/getStandardSuggestions.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/suggestionsKindRegistry.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/getSuggestionKind.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/LinkedToken.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/linkedTokenBuilder.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/tokenUtils.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/commands.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/standardSuggestionsRegistry.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/statementPositionResolversRegistry.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/utils/debugger.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/standardSql/definition.js","webpack://grafana/./node_modules/@grafana/experimental/dist/esm/sql-editor/components/SQLEditor.js","webpack://grafana/./packages/grafana-sql/src/components/query-editor-raw/QueryEditorRaw.tsx","webpack://grafana/./packages/grafana-sql/src/components/query-editor-raw/QueryValidator.tsx","webpack://grafana/./packages/grafana-sql/src/components/query-editor-raw/QueryToolbox.tsx","webpack://grafana/./packages/grafana-sql/src/components/query-editor-raw/RawEditor.tsx","webpack://grafana/./packages/grafana-sql/src/utils/formatSQL.ts","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/Preview.tsx","webpack://grafana/./packages/grafana-sql/src/utils/useSqlChange.ts","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/GroupByRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/SQLGroupByRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/OrderByRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/SQLOrderByRow.tsx","webpack://grafana/./packages/grafana-sql/src/constants.ts","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/SelectRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/SQLSelectRow.tsx","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/uuid.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/stuff.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/config/default.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/listValues.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/treeUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/import/tree.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/import/jsonLogic.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/export.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/spel.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/import/spel.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/defaultUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/validation.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/funcUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/ruleUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/jsonLogic.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/configSerialize.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/configUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/queryBuilder.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/jsonLogic.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/mongoDb.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/sql.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/queryString.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/export/elasticSearch.js","webpack://grafana/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/utils/autocomplete.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/config/funcs.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/config/ctx.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/config/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/stores/constants.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/stores/tree.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/actions/tree.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/actions/group.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/actions/rule.js","webpack://grafana/./node_modules/@react-awesome-query-builder/core/esm/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/stores/tree.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/stores/context.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/components/Context.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/utils/batch.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/utils/Subscription.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/components/Provider.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/components/connectAdvanced.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/utils/shallowEqual.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/utils/bindActionCreators.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/mapStateToProps.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/mergeProps.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/selectorFactory.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/connect/connect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/hooks/useReduxContext.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/hooks/useStore.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/hooks/useDispatch.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/hooks/useSelector.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/node_modules/react-redux/es/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/stores/constants.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/actions/drag.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/actions/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/utils/configUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/utils/stuff.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/utils/validation.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/utils/reactUtils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/Query.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/QueryContainer.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/containers/RuleContainer.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/containers/SortableContainer.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/containers/Draggable.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/Operator.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/utils.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/OperatorWrapper.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/Field.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/FuncSelect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/WidgetFactory.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/Widget.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/FuncWidget.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/FieldWrapper.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/OperatorOptions.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/Rule.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/containers/GroupContainer.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/GroupActions.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/Group.js","webpack://grafana/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://grafana/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/RuleGroupActions.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/RuleGroup.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/RuleGroupExtActions.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/RuleGroupExt.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/SwitchGroupActions.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/SwitchGroup.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/CaseGroup.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/item/Item.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/Builder.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/rule/ValueField.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaBoolean.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaText.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaTextArea.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaDate.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaTime.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaDateTime.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaMultiSelect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaSelect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaNumber.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/value/VanillaSlider.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaFieldSelect.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaConjs.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaButton.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaIcon.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaButtonGroup.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaValueSources.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/VanillaSwitch.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/core/vanillaConfirm.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/widgets/vanilla/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/components/operators/Proximity.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/config/index.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/hooks/useListValuesAutocomplete.js","webpack://grafana/./node_modules/@react-awesome-query-builder/ui/esm/utils/index.js","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/WhereRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/SQLWhereRow.tsx","webpack://grafana/./packages/grafana-sql/src/components/visual-query-builder/VisualEditor.tsx","webpack://grafana/./packages/grafana-sql/src/components/QueryEditor.tsx","webpack://grafana/./packages/grafana-sql/src/utils/migration.ts","webpack://grafana/./packages/grafana-sql/src/datasource/SqlDatasource.ts","webpack://grafana/./packages/grafana-sql/src/components/configuration/ConnectionLimits.tsx","webpack://grafana/./packages/grafana-sql/src/components/configuration/Divider.tsx","webpack://grafana/./packages/grafana-sql/src/components/configuration/TLSSecretsConfig.tsx","webpack://grafana/./packages/grafana-sql/src/utils/logging.ts","webpack://grafana/./packages/grafana-sql/src/components/configuration/useMigrateDatabaseFields.ts","webpack://grafana/./node_modules/json-logic-js/logic.js","webpack://grafana/./node_modules/lodash/_assignMergeValue.js","webpack://grafana/./node_modules/lodash/_baseMerge.js","webpack://grafana/./node_modules/lodash/_baseMergeDeep.js","webpack://grafana/./node_modules/lodash/_baseRepeat.js","webpack://grafana/./node_modules/lodash/_baseRest.js","webpack://grafana/./node_modules/lodash/_baseValues.js","webpack://grafana/./node_modules/lodash/_createAssigner.js","webpack://grafana/./node_modules/lodash/_safeGet.js","webpack://grafana/./node_modules/lodash/escapeRegExp.js","webpack://grafana/./node_modules/lodash/includes.js","webpack://grafana/./node_modules/lodash/isArrayLikeObject.js","webpack://grafana/./node_modules/lodash/isEmpty.js","webpack://grafana/./node_modules/lodash/isString.js","webpack://grafana/./node_modules/lodash/mapValues.js","webpack://grafana/./node_modules/lodash/merge.js","webpack://grafana/./node_modules/lodash/mergeWith.js","webpack://grafana/./node_modules/lodash/pickBy.js","webpack://grafana/./node_modules/lodash/repeat.js","webpack://grafana/./node_modules/lodash/startsWith.js","webpack://grafana/./node_modules/lodash/toInteger.js","webpack://grafana/./node_modules/lodash/toPlainObject.js","webpack://grafana/./node_modules/lodash/values.js","webpack://grafana/./node_modules/spel2js/dist/spel2js.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/Formatter.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/Indentation.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/InlineBlock.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/Params.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/Tokenizer.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/core/tokenTypes.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/languages/Db2Formatter.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/languages/N1qlFormatter.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/languages/PlSqlFormatter.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/languages/StandardSqlFormatter.js","webpack://grafana/./node_modules/sql-formatter-plus/lib/sqlFormatter.js","webpack://grafana/./node_modules/sqlstring/index.js","webpack://grafana/./node_modules/sqlstring/lib/SqlString.js","webpack://grafana/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://grafana/./node_modules/@babel/runtime/helpers/typeof.js","webpack://grafana/./node_modules/@babel/runtime/regenerator/index.js"],"sourcesContent":["import { css } from '@emotion/css';\nimport React__default from 'react';\nimport { useStyles2 } from '@grafana/ui';\n\nconst EditorHeader = ({ children }) => {\n const styles = useStyles2(getStyles);\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.root }, children);\n};\nconst getStyles = (theme) => ({\n root: css({\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n gap: theme.spacing(3),\n minHeight: theme.spacing(4)\n })\n});\n\nexport { EditorHeader };\n//# sourceMappingURL=EditorHeader.js.map\n","import React__default from 'react';\n\nconst FlexItem = ({ grow, shrink }) => {\n return /* @__PURE__ */ React__default.createElement(\"div\", { style: { display: \"block\", flexGrow: grow, flexShrink: shrink } });\n};\n\nexport { FlexItem };\n//# sourceMappingURL=FlexItem.js.map\n","import { css, cx } from '@emotion/css';\nimport React__default, { useState } from 'react';\nimport { useStyles2, Select, SelectContainer as SelectContainer$1 } from '@grafana/ui';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction InlineSelect(_a) {\n var _b = _a, { label: labelProp } = _b, props = __objRest(_b, [\"label\"]);\n const styles = useStyles2(getSelectStyles);\n const [id] = useState(() => Math.random().toString(16).slice(2));\n const components = {\n SelectContainer,\n ValueContainer,\n SingleValue: ValueContainer\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: styles.root }, labelProp && /* @__PURE__ */ React__default.createElement(\"label\", { className: styles.label, htmlFor: id }, labelProp, \":\", \"\\xA0\"), /* @__PURE__ */ React__default.createElement(Select, __spreadProps(__spreadValues({ openMenuOnFocus: true, inputId: id }, props), { components })));\n}\nconst SelectContainer = (props) => {\n const { children } = props;\n const styles = useStyles2(getSelectStyles);\n return /* @__PURE__ */ React__default.createElement(SelectContainer$1, __spreadProps(__spreadValues({}, props), { className: cx(props.className, styles.container) }), children);\n};\nconst ValueContainer = (props) => {\n const { className, children } = props;\n const styles = useStyles2(getSelectStyles);\n return /* @__PURE__ */ React__default.createElement(\"div\", { className: cx(className, styles.valueContainer) }, children);\n};\nconst getSelectStyles = (theme) => ({\n root: css({\n display: \"flex\",\n fontSize: 12,\n alignItems: \"center\"\n }),\n label: css({\n color: theme.colors.text.secondary,\n whiteSpace: \"nowrap\"\n }),\n container: css({\n background: \"none\",\n borderColor: \"transparent\"\n }),\n valueContainer: css({\n display: \"flex\",\n alignItems: \"center\",\n flex: \"initial\",\n color: theme.colors.text.secondary,\n fontSize: 12\n })\n});\n\nexport { InlineSelect };\n//# sourceMappingURL=InlineSelect.js.map\n","const SELECT = \"select\";\nconst FROM = \"from\";\nconst WHERE = \"where\";\nconst GROUP = \"group\";\nconst ORDER = \"order\";\nconst BY = \"by\";\nconst DESC = \"desc\";\nconst ASC = \"asc\";\nconst LIMIT = \"limit\";\nconst WITH = \"with\";\nconst AS = \"as\";\nconst SCHEMA = \"schema\";\nconst AND = \"AND\";\nconst OR = \"OR\";\nconst LOGICAL_OPERATORS = [AND, OR];\nconst EQUALS = \"=\";\nconst NOT_EQUALS = \"!=\";\nconst COMPARISON_OPERATORS = [EQUALS, NOT_EQUALS];\nconst STD_OPERATORS = [...COMPARISON_OPERATORS];\nconst conf = {\n comments: {\n lineComment: \"--\",\n blockComment: [\"/*\", \"*/\"]\n },\n brackets: [\n [\"{\", \"}\"],\n [\"[\", \"]\"],\n [\"(\", \")\"]\n ],\n autoClosingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" }\n ],\n surroundingPairs: [\n { open: \"{\", close: \"}\" },\n { open: \"[\", close: \"]\" },\n { open: \"(\", close: \")\" },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" }\n ]\n};\nconst language = {\n defaultToken: \"\",\n tokenPostfix: \".sql\",\n ignoreCase: true,\n brackets: [\n { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" }\n ],\n keywords: [\n \"ABORT\",\n \"ABSOLUTE\",\n \"ACTION\",\n \"ADA\",\n \"ADD\",\n \"AFTER\",\n \"ALL\",\n \"ALLOCATE\",\n \"ALTER\",\n \"ALWAYS\",\n \"ANALYZE\",\n \"AND\",\n \"ANY\",\n \"ARE\",\n \"AS\",\n \"ASC\",\n \"ASSERTION\",\n \"AT\",\n \"ATTACH\",\n \"AUTHORIZATION\",\n \"AUTOINCREMENT\",\n \"AVG\",\n \"BACKUP\",\n \"BEFORE\",\n \"BEGIN\",\n \"BETWEEN\",\n \"BIT\",\n \"BIT_LENGTH\",\n \"BOTH\",\n \"BREAK\",\n \"BROWSE\",\n \"BULK\",\n \"BY\",\n \"CASCADE\",\n \"CASCADED\",\n \"CASE\",\n \"CAST\",\n \"CATALOG\",\n \"CHAR\",\n \"CHARACTER\",\n \"CHARACTER_LENGTH\",\n \"CHAR_LENGTH\",\n \"CHECK\",\n \"CHECKPOINT\",\n \"CLOSE\",\n \"CLUSTERED\",\n \"COALESCE\",\n \"COLLATE\",\n \"COLLATION\",\n \"COLUMN\",\n \"COMMIT\",\n \"COMPUTE\",\n \"CONFLICT\",\n \"CONNECT\",\n \"CONNECTION\",\n \"CONSTRAINT\",\n \"CONSTRAINTS\",\n \"CONTAINS\",\n \"CONTAINSTABLE\",\n \"CONTINUE\",\n \"CONVERT\",\n \"CORRESPONDING\",\n \"COUNT\",\n \"CREATE\",\n \"CROSS\",\n \"CURRENT\",\n \"CURRENT_DATE\",\n \"CURRENT_TIME\",\n \"CURRENT_TIMESTAMP\",\n \"CURRENT_USER\",\n \"CURSOR\",\n \"DATABASE\",\n \"DATE\",\n \"DAY\",\n \"DBCC\",\n \"DEALLOCATE\",\n \"DEC\",\n \"DECIMAL\",\n \"DECLARE\",\n \"DEFAULT\",\n \"DEFERRABLE\",\n \"DEFERRED\",\n \"DELETE\",\n \"DENY\",\n \"DESC\",\n \"DESCRIBE\",\n \"DESCRIPTOR\",\n \"DETACH\",\n \"DIAGNOSTICS\",\n \"DISCONNECT\",\n \"DISK\",\n \"DISTINCT\",\n \"DISTRIBUTED\",\n \"DO\",\n \"DOMAIN\",\n \"DOUBLE\",\n \"DROP\",\n \"DUMP\",\n \"EACH\",\n \"ELSE\",\n \"END\",\n \"END-EXEC\",\n \"ERRLVL\",\n \"ESCAPE\",\n \"EXCEPT\",\n \"EXCEPTION\",\n \"EXCLUDE\",\n \"EXCLUSIVE\",\n \"EXEC\",\n \"EXECUTE\",\n \"EXISTS\",\n \"EXIT\",\n \"EXPLAIN\",\n \"EXTERNAL\",\n \"EXTRACT\",\n \"FAIL\",\n \"FALSE\",\n \"FETCH\",\n \"FILE\",\n \"FILLFACTOR\",\n \"FILTER\",\n \"FIRST\",\n \"FLOAT\",\n \"FOLLOWING\",\n \"FOR\",\n \"FOREIGN\",\n \"FORTRAN\",\n \"FOUND\",\n \"FREETEXT\",\n \"FREETEXTTABLE\",\n \"FROM\",\n \"FULL\",\n \"FUNCTION\",\n \"GENERATED\",\n \"GET\",\n \"GLOB\",\n \"GLOBAL\",\n \"GO\",\n \"GOTO\",\n \"GRANT\",\n \"GROUP\",\n \"GROUPS\",\n \"HAVING\",\n \"HOLDLOCK\",\n \"HOUR\",\n \"IDENTITY\",\n \"IDENTITYCOL\",\n \"IDENTITY_INSERT\",\n \"IF\",\n \"IGNORE\",\n \"IMMEDIATE\",\n \"IN\",\n \"INCLUDE\",\n \"INDEX\",\n \"INDEXED\",\n \"INDICATOR\",\n \"INITIALLY\",\n \"INNER\",\n \"INPUT\",\n \"INSENSITIVE\",\n \"INSERT\",\n \"INSTEAD\",\n \"INT\",\n \"INTEGER\",\n \"INTERSECT\",\n \"INTERVAL\",\n \"INTO\",\n \"IS\",\n \"ISNULL\",\n \"ISOLATION\",\n \"JOIN\",\n \"KEY\",\n \"KILL\",\n \"LANGUAGE\",\n \"LAST\",\n \"LEADING\",\n \"LEFT\",\n \"LEVEL\",\n \"LIKE\",\n \"LIMIT\",\n \"LINENO\",\n \"LOAD\",\n \"LOCAL\",\n \"LOWER\",\n \"MATCH\",\n \"MATERIALIZED\",\n \"MAX\",\n \"MERGE\",\n \"MIN\",\n \"MINUTE\",\n \"MODULE\",\n \"MONTH\",\n \"NAMES\",\n \"NATIONAL\",\n \"NATURAL\",\n \"NCHAR\",\n \"NEXT\",\n \"NO\",\n \"NOCHECK\",\n \"NONCLUSTERED\",\n \"NONE\",\n \"NOT\",\n \"NOTHING\",\n \"NOTNULL\",\n \"NULL\",\n \"NULLIF\",\n \"NULLS\",\n \"NUMERIC\",\n \"OCTET_LENGTH\",\n \"OF\",\n \"OFF\",\n \"OFFSET\",\n \"OFFSETS\",\n \"ON\",\n \"ONLY\",\n \"OPEN\",\n \"OPENDATASOURCE\",\n \"OPENQUERY\",\n \"OPENROWSET\",\n \"OPENXML\",\n \"OPTION\",\n \"OR\",\n \"ORDER\",\n \"OTHERS\",\n \"OUTER\",\n \"OUTPUT\",\n \"OVER\",\n \"OVERLAPS\",\n \"PAD\",\n \"PARTIAL\",\n \"PARTITION\",\n \"PASCAL\",\n \"PERCENT\",\n \"PIVOT\",\n \"PLAN\",\n \"POSITION\",\n \"PRAGMA\",\n \"PRECEDING\",\n \"PRECISION\",\n \"PREPARE\",\n \"PRESERVE\",\n \"PRIMARY\",\n \"PRINT\",\n \"PRIOR\",\n \"PRIVILEGES\",\n \"PROC\",\n \"PROCEDURE\",\n \"PUBLIC\",\n \"QUERY\",\n \"RAISE\",\n \"RAISERROR\",\n \"RANGE\",\n \"READ\",\n \"READTEXT\",\n \"REAL\",\n \"RECONFIGURE\",\n \"RECURSIVE\",\n \"REFERENCES\",\n \"REGEXP\",\n \"REINDEX\",\n \"RELATIVE\",\n \"RELEASE\",\n \"RENAME\",\n \"REPLACE\",\n \"REPLICATION\",\n \"RESTORE\",\n \"RESTRICT\",\n \"RETURN\",\n \"RETURNING\",\n \"REVERT\",\n \"REVOKE\",\n \"RIGHT\",\n \"ROLLBACK\",\n \"ROW\",\n \"ROWCOUNT\",\n \"ROWGUIDCOL\",\n \"ROWS\",\n \"RULE\",\n \"SAVE\",\n \"SAVEPOINT\",\n \"SCHEMA\",\n \"SCROLL\",\n \"SECOND\",\n \"SECTION\",\n \"SECURITYAUDIT\",\n \"SELECT\",\n \"SEMANTICKEYPHRASETABLE\",\n \"SEMANTICSIMILARITYDETAILSTABLE\",\n \"SEMANTICSIMILARITYTABLE\",\n \"SESSION\",\n \"SESSION_USER\",\n \"SET\",\n \"SETUSER\",\n \"SHUTDOWN\",\n \"SIZE\",\n \"SMALLINT\",\n \"SOME\",\n \"SPACE\",\n \"SQL\",\n \"SQLCA\",\n \"SQLCODE\",\n \"SQLERROR\",\n \"SQLSTATE\",\n \"SQLWARNING\",\n \"STATISTICS\",\n \"SUBSTRING\",\n \"SUM\",\n \"SYSTEM_USER\",\n \"TABLE\",\n \"TABLESAMPLE\",\n \"TEMP\",\n \"TEMPORARY\",\n \"TEXTSIZE\",\n \"THEN\",\n \"TIES\",\n \"TIME\",\n \"TIMESTAMP\",\n \"TIMEZONE_HOUR\",\n \"TIMEZONE_MINUTE\",\n \"TO\",\n \"TOP\",\n \"TRAILING\",\n \"TRAN\",\n \"TRANSACTION\",\n \"TRANSLATE\",\n \"TRANSLATION\",\n \"TRIGGER\",\n \"TRIM\",\n \"TRUE\",\n \"TRUNCATE\",\n \"TRY_CONVERT\",\n \"TSEQUAL\",\n \"UNBOUNDED\",\n \"UNION\",\n \"UNIQUE\",\n \"UNKNOWN\",\n \"UNPIVOT\",\n \"UPDATE\",\n \"UPDATETEXT\",\n \"UPPER\",\n \"USAGE\",\n \"USE\",\n \"USER\",\n \"USING\",\n \"VACUUM\",\n \"VALUE\",\n \"VALUES\",\n \"VARCHAR\",\n \"VARYING\",\n \"VIEW\",\n \"VIRTUAL\",\n \"WAITFOR\",\n \"WHEN\",\n \"WHENEVER\",\n \"WHERE\",\n \"WHILE\",\n \"WINDOW\",\n \"WITH\",\n \"WITHIN GROUP\",\n \"WITHOUT\",\n \"WORK\",\n \"WRITE\",\n \"WRITETEXT\",\n \"YEAR\",\n \"ZONE\"\n ],\n operators: [\n // Set\n \"EXCEPT\",\n \"INTERSECT\",\n \"UNION\",\n // Join\n \"APPLY\",\n \"CROSS\",\n \"FULL\",\n \"INNER\",\n \"JOIN\",\n \"LEFT\",\n \"OUTER\",\n \"RIGHT\",\n // Predicates\n \"CONTAINS\",\n \"FREETEXT\",\n \"IS\",\n \"NULL\",\n // Pivoting\n \"PIVOT\",\n \"UNPIVOT\",\n // Merging\n \"MATCHED\"\n ],\n logicalOperators: [\"ALL\", \"AND\", \"ANY\", \"BETWEEN\", \"EXISTS\", \"IN\", \"LIKE\", \"NOT\", \"OR\", \"SOME\"],\n comparisonOperators: [\"<>\", \">\", \"<\", \">=\", \"<=\", \"=\", \"!=\", \"&\", \"~\", \"^\", \"%\"],\n builtinFunctions: [\n // Aggregate\n \"AVG\",\n \"CHECKSUM_AGG\",\n \"COUNT\",\n \"COUNT_BIG\",\n \"GROUPING\",\n \"GROUPING_ID\",\n \"MAX\",\n \"MIN\",\n \"SUM\",\n \"STDEV\",\n \"STDEVP\",\n \"VAR\",\n \"VARP\",\n // Analytic\n \"CUME_DIST\",\n \"FIRST_VALUE\",\n \"LAG\",\n \"LAST_VALUE\",\n \"LEAD\",\n \"PERCENTILE_CONT\",\n \"PERCENTILE_DISC\",\n \"PERCENT_RANK\",\n // Collation\n \"COLLATE\",\n \"COLLATIONPROPERTY\",\n \"TERTIARY_WEIGHTS\",\n // Azure\n \"FEDERATION_FILTERING_VALUE\",\n // Conversion\n \"CAST\",\n \"CONVERT\",\n \"PARSE\",\n \"TRY_CAST\",\n \"TRY_CONVERT\",\n \"TRY_PARSE\",\n // Cryptographic\n \"ASYMKEY_ID\",\n \"ASYMKEYPROPERTY\",\n \"CERTPROPERTY\",\n \"CERT_ID\",\n \"CRYPT_GEN_RANDOM\",\n \"DECRYPTBYASYMKEY\",\n \"DECRYPTBYCERT\",\n \"DECRYPTBYKEY\",\n \"DECRYPTBYKEYAUTOASYMKEY\",\n \"DECRYPTBYKEYAUTOCERT\",\n \"DECRYPTBYPASSPHRASE\",\n \"ENCRYPTBYASYMKEY\",\n \"ENCRYPTBYCERT\",\n \"ENCRYPTBYKEY\",\n \"ENCRYPTBYPASSPHRASE\",\n \"HASHBYTES\",\n \"IS_OBJECTSIGNED\",\n \"KEY_GUID\",\n \"KEY_ID\",\n \"KEY_NAME\",\n \"SIGNBYASYMKEY\",\n \"SIGNBYCERT\",\n \"SYMKEYPROPERTY\",\n \"VERIFYSIGNEDBYCERT\",\n \"VERIFYSIGNEDBYASYMKEY\",\n // Cursor\n \"CURSOR_STATUS\",\n // Datatype\n \"DATALENGTH\",\n \"IDENT_CURRENT\",\n \"IDENT_INCR\",\n \"IDENT_SEED\",\n \"IDENTITY\",\n \"SQL_VARIANT_PROPERTY\",\n // Datetime\n \"CURRENT_TIMESTAMP\",\n \"DATEADD\",\n \"DATEDIFF\",\n \"DATEFROMPARTS\",\n \"DATENAME\",\n \"DATEPART\",\n \"DATETIME2FROMPARTS\",\n \"DATETIMEFROMPARTS\",\n \"DATETIMEOFFSETFROMPARTS\",\n \"DAY\",\n \"EOMONTH\",\n \"GETDATE\",\n \"GETUTCDATE\",\n \"ISDATE\",\n \"MONTH\",\n \"SMALLDATETIMEFROMPARTS\",\n \"SWITCHOFFSET\",\n \"SYSDATETIME\",\n \"SYSDATETIMEOFFSET\",\n \"SYSUTCDATETIME\",\n \"TIMEFROMPARTS\",\n \"TODATETIMEOFFSET\",\n \"YEAR\",\n // Logical\n \"CHOOSE\",\n \"COALESCE\",\n \"IIF\",\n \"NULLIF\",\n // Mathematical\n \"ABS\",\n \"ACOS\",\n \"ASIN\",\n \"ATAN\",\n \"ATN2\",\n \"CEILING\",\n \"COS\",\n \"COT\",\n \"DEGREES\",\n \"EXP\",\n \"FLOOR\",\n \"LOG\",\n \"LOG10\",\n \"PI\",\n \"POWER\",\n \"RADIANS\",\n \"RAND\",\n \"ROUND\",\n \"SIGN\",\n \"SIN\",\n \"SQRT\",\n \"SQUARE\",\n \"TAN\",\n // Metadata\n \"APP_NAME\",\n \"APPLOCK_MODE\",\n \"APPLOCK_TEST\",\n \"ASSEMBLYPROPERTY\",\n \"COL_LENGTH\",\n \"COL_NAME\",\n \"COLUMNPROPERTY\",\n \"DATABASE_PRINCIPAL_ID\",\n \"DATABASEPROPERTYEX\",\n \"DB_ID\",\n \"DB_NAME\",\n \"FILE_ID\",\n \"FILE_IDEX\",\n \"FILE_NAME\",\n \"FILEGROUP_ID\",\n \"FILEGROUP_NAME\",\n \"FILEGROUPPROPERTY\",\n \"FILEPROPERTY\",\n \"FULLTEXTCATALOGPROPERTY\",\n \"FULLTEXTSERVICEPROPERTY\",\n \"INDEX_COL\",\n \"INDEXKEY_PROPERTY\",\n \"INDEXPROPERTY\",\n \"OBJECT_DEFINITION\",\n \"OBJECT_ID\",\n \"OBJECT_NAME\",\n \"OBJECT_SCHEMA_NAME\",\n \"OBJECTPROPERTY\",\n \"OBJECTPROPERTYEX\",\n \"ORIGINAL_DB_NAME\",\n \"PARSENAME\",\n \"SCHEMA_ID\",\n \"SCHEMA_NAME\",\n \"SCOPE_IDENTITY\",\n \"SERVERPROPERTY\",\n \"STATS_DATE\",\n \"TYPE_ID\",\n \"TYPE_NAME\",\n \"TYPEPROPERTY\",\n // Ranking\n \"DENSE_RANK\",\n \"NTILE\",\n \"RANK\",\n \"ROW_NUMBER\",\n // Replication\n \"PUBLISHINGSERVERNAME\",\n // Rowset\n \"OPENDATASOURCE\",\n \"OPENQUERY\",\n \"OPENROWSET\",\n \"OPENXML\",\n // Security\n \"CERTENCODED\",\n \"CERTPRIVATEKEY\",\n \"CURRENT_USER\",\n \"HAS_DBACCESS\",\n \"HAS_PERMS_BY_NAME\",\n \"IS_MEMBER\",\n \"IS_ROLEMEMBER\",\n \"IS_SRVROLEMEMBER\",\n \"LOGINPROPERTY\",\n \"ORIGINAL_LOGIN\",\n \"PERMISSIONS\",\n \"PWDENCRYPT\",\n \"PWDCOMPARE\",\n \"SESSION_USER\",\n \"SESSIONPROPERTY\",\n \"SUSER_ID\",\n \"SUSER_NAME\",\n \"SUSER_SID\",\n \"SUSER_SNAME\",\n \"SYSTEM_USER\",\n \"USER\",\n \"USER_ID\",\n \"USER_NAME\",\n // String\n \"ASCII\",\n \"CHAR\",\n \"CHARINDEX\",\n \"CONCAT\",\n \"DIFFERENCE\",\n \"FORMAT\",\n \"LEFT\",\n \"LEN\",\n \"LOWER\",\n \"LTRIM\",\n \"NCHAR\",\n \"PATINDEX\",\n \"QUOTENAME\",\n \"REPLACE\",\n \"REPLICATE\",\n \"REVERSE\",\n \"RIGHT\",\n \"RTRIM\",\n \"SOUNDEX\",\n \"SPACE\",\n \"STR\",\n \"STUFF\",\n \"SUBSTRING\",\n \"UNICODE\",\n \"UPPER\",\n // System\n \"BINARY_CHECKSUM\",\n \"CHECKSUM\",\n \"CONNECTIONPROPERTY\",\n \"CONTEXT_INFO\",\n \"CURRENT_REQUEST_ID\",\n \"ERROR_LINE\",\n \"ERROR_NUMBER\",\n \"ERROR_MESSAGE\",\n \"ERROR_PROCEDURE\",\n \"ERROR_SEVERITY\",\n \"ERROR_STATE\",\n \"FORMATMESSAGE\",\n \"GETANSINULL\",\n \"GET_FILESTREAM_TRANSACTION_CONTEXT\",\n \"HOST_ID\",\n \"HOST_NAME\",\n \"ISNULL\",\n \"ISNUMERIC\",\n \"MIN_ACTIVE_ROWVERSION\",\n \"NEWID\",\n \"NEWSEQUENTIALID\",\n \"ROWCOUNT_BIG\",\n \"XACT_STATE\",\n // TextImage\n \"TEXTPTR\",\n \"TEXTVALID\",\n // Trigger\n \"COLUMNS_UPDATED\",\n \"EVENTDATA\",\n \"TRIGGER_NESTLEVEL\",\n \"UPDATE\",\n // ChangeTracking\n \"CHANGETABLE\",\n \"CHANGE_TRACKING_CONTEXT\",\n \"CHANGE_TRACKING_CURRENT_VERSION\",\n \"CHANGE_TRACKING_IS_COLUMN_IN_MASK\",\n \"CHANGE_TRACKING_MIN_VALID_VERSION\",\n // FullTextSearch\n \"CONTAINSTABLE\",\n \"FREETEXTTABLE\",\n // SemanticTextSearch\n \"SEMANTICKEYPHRASETABLE\",\n \"SEMANTICSIMILARITYDETAILSTABLE\",\n \"SEMANTICSIMILARITYTABLE\",\n // FileStream\n \"FILETABLEROOTPATH\",\n \"GETFILENAMESPACEPATH\",\n \"GETPATHLOCATOR\",\n \"PATHNAME\",\n // ServiceBroker\n \"GET_TRANSMISSION_STATUS\"\n ],\n builtinVariables: [\n // Configuration\n \"@@DATEFIRST\",\n \"@@DBTS\",\n \"@@LANGID\",\n \"@@LANGUAGE\",\n \"@@LOCK_TIMEOUT\",\n \"@@MAX_CONNECTIONS\",\n \"@@MAX_PRECISION\",\n \"@@NESTLEVEL\",\n \"@@OPTIONS\",\n \"@@REMSERVER\",\n \"@@SERVERNAME\",\n \"@@SERVICENAME\",\n \"@@SPID\",\n \"@@TEXTSIZE\",\n \"@@VERSION\",\n // Cursor\n \"@@CURSOR_ROWS\",\n \"@@FETCH_STATUS\",\n // Datetime\n \"@@DATEFIRST\",\n // Metadata\n \"@@PROCID\",\n // System\n \"@@ERROR\",\n \"@@IDENTITY\",\n \"@@ROWCOUNT\",\n \"@@TRANCOUNT\",\n // Stats\n \"@@CONNECTIONS\",\n \"@@CPU_BUSY\",\n \"@@IDLE\",\n \"@@IO_BUSY\",\n \"@@PACKET_ERRORS\",\n \"@@PACK_RECEIVED\",\n \"@@PACK_SENT\",\n \"@@TIMETICKS\",\n \"@@TOTAL_ERRORS\",\n \"@@TOTAL_READ\",\n \"@@TOTAL_WRITE\"\n ],\n pseudoColumns: [\"$ACTION\", \"$IDENTITY\", \"$ROWGUID\", \"$PARTITION\"],\n tokenizer: {\n root: [\n { include: \"@templateVariables\" },\n { include: \"@macros\" },\n { include: \"@comments\" },\n { include: \"@whitespace\" },\n { include: \"@pseudoColumns\" },\n { include: \"@numbers\" },\n { include: \"@strings\" },\n { include: \"@complexIdentifiers\" },\n { include: \"@scopes\" },\n { include: \"@schemaTable\" },\n [/[;,.]/, \"delimiter\"],\n [/[()]/, \"@brackets\"],\n [\n /[\\w@#$|<|>|=|!|%|&|+|\\|-|*|/|~|^]+/,\n {\n cases: {\n \"@operators\": \"operator\",\n \"@comparisonOperators\": \"operator\",\n \"@logicalOperators\": \"operator\",\n \"@builtinVariables\": \"predefined\",\n \"@builtinFunctions\": \"predefined\",\n \"@keywords\": \"keyword\",\n \"@default\": \"identifier\"\n }\n }\n ]\n ],\n templateVariables: [[/\\$[a-zA-Z0-9]+/, \"variable\"]],\n macros: [[/\\$__[a-zA-Z0-9-_]+/, \"type\"]],\n schemaTable: [\n [/(\\w+)\\./, \"identifier\"],\n [/(\\w+\\.\\w+)/, \"identifier\"]\n ],\n whitespace: [[/\\s+/, \"white\"]],\n comments: [\n [/--+.*/, \"comment\"],\n [/\\/\\*/, { token: \"comment.quote\", next: \"@comment\" }]\n ],\n comment: [\n [/[^*/]+/, \"comment\"],\n // Not supporting nested comments, as nested comments seem to not be standard?\n // i.e. http://stackoverflow.com/questions/728172/are-there-multiline-comment-delimiters-in-sql-that-are-vendor-agnostic\n // [/\\/\\*/, { token: 'comment.quote', next: '@push' }], // nested comment not allowed :-(\n [/\\*\\//, { token: \"comment.quote\", next: \"@pop\" }],\n [/./, \"comment\"]\n ],\n pseudoColumns: [\n [\n /[$][A-Za-z_][\\w@#$]*/,\n {\n cases: {\n \"@pseudoColumns\": \"predefined\",\n \"@default\": \"identifier\"\n }\n }\n ]\n ],\n numbers: [\n [/0[xX][0-9a-fA-F]*/, \"number\"],\n [/[$][+-]*\\d*(\\.\\d*)?/, \"number\"],\n [/((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][\\-+]?\\d+)?/, \"number\"]\n ],\n strings: [\n [/N'/, { token: \"string\", next: \"@string\" }],\n [/'/, { token: \"string\", next: \"@string\" }]\n ],\n string: [\n [/[^']+/, \"string\"],\n [/''/, \"string\"],\n [/'/, { token: \"string\", next: \"@pop\" }]\n ],\n complexIdentifiers: [\n [/\\[/, { token: \"identifier.quote\", next: \"@bracketedIdentifier\" }],\n [/\"/, { token: \"identifier.quote\", next: \"@quotedIdentifier\" }]\n ],\n bracketedIdentifier: [\n [/[^\\]]+/, \"identifier\"],\n [/]]/, \"identifier\"],\n [/]/, { token: \"identifier.quote\", next: \"@pop\" }]\n ],\n quotedIdentifier: [\n [/[^\"]+/, \"identifier\"],\n [/\"\"/, \"identifier\"],\n [/\"/, { token: \"identifier.quote\", next: \"@pop\" }]\n ],\n scopes: [\n [/BEGIN\\s+(DISTRIBUTED\\s+)?TRAN(SACTION)?\\b/i, \"keyword\"],\n [/BEGIN\\s+TRY\\b/i, { token: \"keyword.try\" }],\n [/END\\s+TRY\\b/i, { token: \"keyword.try\" }],\n [/BEGIN\\s+CATCH\\b/i, { token: \"keyword.catch\" }],\n [/END\\s+CATCH\\b/i, { token: \"keyword.catch\" }],\n [/(BEGIN|CASE)\\b/i, { token: \"keyword.block\" }],\n [/END\\b/i, { token: \"keyword.block\" }],\n [/WHEN\\b/i, { token: \"keyword.choice\" }],\n [/THEN\\b/i, { token: \"keyword.choice\" }]\n ]\n }\n};\n\nexport { AND, AS, ASC, BY, COMPARISON_OPERATORS, DESC, EQUALS, FROM, GROUP, LIMIT, LOGICAL_OPERATORS, NOT_EQUALS, OR, ORDER, SCHEMA, SELECT, STD_OPERATORS, WHERE, WITH, conf, language };\n//# sourceMappingURL=language.js.map\n","import { MacroType } from '../types.js';\n\nconst COLUMN = \"column\", RELATIVE_TIME_STRING = \"'5m'\";\nconst MACROS = [\n {\n id: \"$__timeFilter(dateColumn)\",\n name: \"$__timeFilter(dateColumn)\",\n text: \"$__timeFilter\",\n args: [COLUMN],\n type: MacroType.Filter,\n description: \"Will be replaced by a time range filter using the specified column name. For example, dateColumn BETWEEN FROM_UNIXTIME(1494410783) AND FROM_UNIXTIME(1494410983)\"\n },\n {\n id: \"$__timeFrom()\",\n name: \"$__timeFrom()\",\n text: \"$__timeFrom\",\n args: [],\n type: MacroType.Filter,\n description: \"Will be replaced by the start of the currently active time selection. For example, FROM_UNIXTIME(1494410783)\"\n },\n {\n id: \"$__timeTo()\",\n name: \"$__timeTo()\",\n text: \"$__timeTo\",\n args: [],\n type: MacroType.Filter,\n description: \"Will be replaced by the end of the currently active time selection. For example, FROM_UNIXTIME(1494410983)\"\n },\n {\n id: \"$__timeGroup(dateColumn, '5m')\",\n name: \"$__timeGroup(dateColumn, '5m')\",\n text: \"$__timeGroup\",\n args: [COLUMN, RELATIVE_TIME_STRING],\n type: MacroType.Value,\n description: \"Will be replaced by an expression usable in GROUP BY clause. For example, *cast(cast(UNIX_TIMESTAMP(dateColumn)/(300) as signed)*300 as signed),*\"\n },\n {\n id: \"$__table\",\n name: \"$__table\",\n text: \"$__table\",\n args: [],\n type: MacroType.Table,\n description: \"Will be replaced by the query table.\"\n },\n {\n id: \"$__column\",\n name: \"$__column\",\n text: \"$__column\",\n args: [],\n type: MacroType.Column,\n description: \"Will be replaced by the query column.\"\n }\n];\n\nexport { MACROS };\n//# sourceMappingURL=macros.js.map\n","import { OperatorType } from '../types.js';\nimport { MACROS } from './macros.js';\n\nfunction getStandardSQLCompletionProvider(monaco, language) {\n var _a, _b, _c;\n const provider = { triggerCharacters: [\".\", \" \", \"$\", \",\", \"(\", \"'\"] };\n if (language && Array.isArray(language.builtinFunctions)) {\n provider.supportedFunctions = () => language.builtinFunctions.map((f) => ({ id: f, name: f }));\n }\n const operators = [];\n if ((_a = language == null ? void 0 : language.comparisonOperators) == null ? void 0 : _a.length) {\n operators.push(\n ...language.comparisonOperators.map((f) => ({\n id: f.toLocaleLowerCase(),\n operator: f,\n type: OperatorType.Comparison\n }))\n );\n }\n language.logicalOperators = (_b = language.logicalOperators) != null ? _b : language.operators;\n if ((_c = language == null ? void 0 : language.logicalOperators) == null ? void 0 : _c.length) {\n operators.push(\n ...language.logicalOperators.map((f) => ({ id: f.toLocaleLowerCase(), operator: f, type: OperatorType.Logical }))\n );\n }\n provider.supportedOperators = () => operators;\n provider.supportedMacros = () => MACROS;\n return provider;\n}\n\nexport { getStandardSQLCompletionProvider };\n//# sourceMappingURL=standardSQLCompletionItemProvider.js.map\n","var OperatorType = /* @__PURE__ */ ((OperatorType2) => {\n OperatorType2[OperatorType2[\"Comparison\"] = 0] = \"Comparison\";\n OperatorType2[OperatorType2[\"Logical\"] = 1] = \"Logical\";\n return OperatorType2;\n})(OperatorType || {});\nvar MacroType = /* @__PURE__ */ ((MacroType2) => {\n MacroType2[MacroType2[\"Value\"] = 0] = \"Value\";\n MacroType2[MacroType2[\"Filter\"] = 1] = \"Filter\";\n MacroType2[MacroType2[\"Group\"] = 2] = \"Group\";\n MacroType2[MacroType2[\"Column\"] = 3] = \"Column\";\n MacroType2[MacroType2[\"Table\"] = 4] = \"Table\";\n return MacroType2;\n})(MacroType || {});\nvar TokenType = /* @__PURE__ */ ((TokenType2) => {\n TokenType2[\"Parenthesis\"] = \"delimiter.parenthesis.sql\";\n TokenType2[\"Whitespace\"] = \"white.sql\";\n TokenType2[\"Keyword\"] = \"keyword.sql\";\n TokenType2[\"Delimiter\"] = \"delimiter.sql\";\n TokenType2[\"Operator\"] = \"operator.sql\";\n TokenType2[\"Identifier\"] = \"identifier.sql\";\n TokenType2[\"IdentifierQuote\"] = \"identifier.quote.sql\";\n TokenType2[\"Type\"] = \"type.sql\";\n TokenType2[\"Function\"] = \"predefined.sql\";\n TokenType2[\"Number\"] = \"number.sql\";\n TokenType2[\"String\"] = \"string.sql\";\n TokenType2[\"Variable\"] = \"variable.sql\";\n return TokenType2;\n})(TokenType || {});\nvar StatementPosition = /* @__PURE__ */ ((StatementPosition2) => {\n StatementPosition2[\"Unknown\"] = \"unknown\";\n StatementPosition2[\"SelectKeyword\"] = \"selectKeyword\";\n StatementPosition2[\"WithKeyword\"] = \"withKeyword\";\n StatementPosition2[\"AfterSelectKeyword\"] = \"afterSelectKeyword\";\n StatementPosition2[\"AfterSelectArguments\"] = \"afterSelectArguments\";\n StatementPosition2[\"AfterSelectFuncFirstArgument\"] = \"afterSelectFuncFirstArgument\";\n StatementPosition2[\"SelectAlias\"] = \"selectAlias\";\n StatementPosition2[\"AfterFromKeyword\"] = \"afterFromKeyword\";\n StatementPosition2[\"AfterTable\"] = \"afterTable\";\n StatementPosition2[\"SchemaFuncFirstArgument\"] = \"schemaFuncFirstArgument\";\n StatementPosition2[\"SchemaFuncExtraArgument\"] = \"schemaFuncExtraArgument\";\n StatementPosition2[\"FromKeyword\"] = \"fromKeyword\";\n StatementPosition2[\"AfterFrom\"] = \"afterFrom\";\n StatementPosition2[\"WhereKeyword\"] = \"whereKeyword\";\n StatementPosition2[\"WhereComparisonOperator\"] = \"whereComparisonOperator\";\n StatementPosition2[\"WhereValue\"] = \"whereValue\";\n StatementPosition2[\"AfterWhereFunctionArgument\"] = \"afterWhereFunctionArgument\";\n StatementPosition2[\"AfterGroupByFunctionArgument\"] = \"afterGroupByFunctionArgument\";\n StatementPosition2[\"AfterWhereValue\"] = \"afterWhereValue\";\n StatementPosition2[\"AfterGroupByKeywords\"] = \"afterGroupByKeywords\";\n StatementPosition2[\"AfterGroupBy\"] = \"afterGroupBy\";\n StatementPosition2[\"AfterOrderByKeywords\"] = \"afterOrderByKeywords\";\n StatementPosition2[\"AfterOrderByFunction\"] = \"afterOrderByFunction\";\n StatementPosition2[\"AfterOrderByDirection\"] = \"afterOrderByDirection\";\n StatementPosition2[\"AfterIsOperator\"] = \"afterIsOperator\";\n StatementPosition2[\"AfterIsNotOperator\"] = \"afterIsNotOperator\";\n StatementPosition2[\"AfterSchema\"] = \"afterSchema\";\n return StatementPosition2;\n})(StatementPosition || {});\nvar SuggestionKind = /* @__PURE__ */ ((SuggestionKind2) => {\n SuggestionKind2[\"Schemas\"] = \"schemas\";\n SuggestionKind2[\"Tables\"] = \"tables\";\n SuggestionKind2[\"Columns\"] = \"columns\";\n SuggestionKind2[\"SelectKeyword\"] = \"selectKeyword\";\n SuggestionKind2[\"WithKeyword\"] = \"withKeyword\";\n SuggestionKind2[\"FunctionsWithArguments\"] = \"functionsWithArguments\";\n SuggestionKind2[\"FromKeyword\"] = \"fromKeyword\";\n SuggestionKind2[\"WhereKeyword\"] = \"whereKeyword\";\n SuggestionKind2[\"GroupByKeywords\"] = \"groupByKeywords\";\n SuggestionKind2[\"OrderByKeywords\"] = \"orderByKeywords\";\n SuggestionKind2[\"FunctionsWithoutArguments\"] = \"functionsWithoutArguments\";\n SuggestionKind2[\"LimitKeyword\"] = \"limitKeyword\";\n SuggestionKind2[\"SortOrderDirectionKeyword\"] = \"sortOrderDirectionKeyword\";\n SuggestionKind2[\"ComparisonOperators\"] = \"comparisonOperators\";\n SuggestionKind2[\"LogicalOperators\"] = \"logicalOperators\";\n SuggestionKind2[\"SelectMacro\"] = \"selectMacro\";\n SuggestionKind2[\"TableMacro\"] = \"tableMacro\";\n SuggestionKind2[\"FilterMacro\"] = \"filterMacro\";\n SuggestionKind2[\"GroupMacro\"] = \"groupMacro\";\n SuggestionKind2[\"BoolValues\"] = \"boolValues\";\n SuggestionKind2[\"NullValue\"] = \"nullValue\";\n SuggestionKind2[\"NotKeyword\"] = \"notKeyword\";\n SuggestionKind2[\"TemplateVariables\"] = \"templateVariables\";\n SuggestionKind2[\"StarWildCard\"] = \"starWildCard\";\n return SuggestionKind2;\n})(SuggestionKind || {});\nvar CompletionItemPriority = /* @__PURE__ */ ((CompletionItemPriority2) => {\n CompletionItemPriority2[\"High\"] = \"a\";\n CompletionItemPriority2[\"MediumHigh\"] = \"d\";\n CompletionItemPriority2[\"Medium\"] = \"g\";\n CompletionItemPriority2[\"MediumLow\"] = \"k\";\n CompletionItemPriority2[\"Low\"] = \"q\";\n return CompletionItemPriority2;\n})(CompletionItemPriority || {});\nvar CompletionItemKind = /* @__PURE__ */ ((CompletionItemKind2) => {\n CompletionItemKind2[CompletionItemKind2[\"Method\"] = 0] = \"Method\";\n CompletionItemKind2[CompletionItemKind2[\"Function\"] = 1] = \"Function\";\n CompletionItemKind2[CompletionItemKind2[\"Constructor\"] = 2] = \"Constructor\";\n CompletionItemKind2[CompletionItemKind2[\"Field\"] = 3] = \"Field\";\n CompletionItemKind2[CompletionItemKind2[\"Variable\"] = 4] = \"Variable\";\n CompletionItemKind2[CompletionItemKind2[\"Class\"] = 5] = \"Class\";\n CompletionItemKind2[CompletionItemKind2[\"Struct\"] = 6] = \"Struct\";\n CompletionItemKind2[CompletionItemKind2[\"Interface\"] = 7] = \"Interface\";\n CompletionItemKind2[CompletionItemKind2[\"Module\"] = 8] = \"Module\";\n CompletionItemKind2[CompletionItemKind2[\"Property\"] = 9] = \"Property\";\n CompletionItemKind2[CompletionItemKind2[\"Event\"] = 10] = \"Event\";\n CompletionItemKind2[CompletionItemKind2[\"Operator\"] = 11] = \"Operator\";\n CompletionItemKind2[CompletionItemKind2[\"Unit\"] = 12] = \"Unit\";\n CompletionItemKind2[CompletionItemKind2[\"Value\"] = 13] = \"Value\";\n CompletionItemKind2[CompletionItemKind2[\"Constant\"] = 14] = \"Constant\";\n CompletionItemKind2[CompletionItemKind2[\"Enum\"] = 15] = \"Enum\";\n CompletionItemKind2[CompletionItemKind2[\"EnumMember\"] = 16] = \"EnumMember\";\n CompletionItemKind2[CompletionItemKind2[\"Keyword\"] = 17] = \"Keyword\";\n CompletionItemKind2[CompletionItemKind2[\"Text\"] = 18] = \"Text\";\n CompletionItemKind2[CompletionItemKind2[\"Color\"] = 19] = \"Color\";\n CompletionItemKind2[CompletionItemKind2[\"File\"] = 20] = \"File\";\n CompletionItemKind2[CompletionItemKind2[\"Reference\"] = 21] = \"Reference\";\n CompletionItemKind2[CompletionItemKind2[\"Customcolor\"] = 22] = \"Customcolor\";\n CompletionItemKind2[CompletionItemKind2[\"Folder\"] = 23] = \"Folder\";\n CompletionItemKind2[CompletionItemKind2[\"TypeParameter\"] = 24] = \"TypeParameter\";\n CompletionItemKind2[CompletionItemKind2[\"User\"] = 25] = \"User\";\n CompletionItemKind2[CompletionItemKind2[\"Issue\"] = 26] = \"Issue\";\n CompletionItemKind2[CompletionItemKind2[\"Snippet\"] = 27] = \"Snippet\";\n return CompletionItemKind2;\n})(CompletionItemKind || {});\nvar CompletionItemInsertTextRule = /* @__PURE__ */ ((CompletionItemInsertTextRule2) => {\n CompletionItemInsertTextRule2[CompletionItemInsertTextRule2[\"KeepWhitespace\"] = 1] = \"KeepWhitespace\";\n CompletionItemInsertTextRule2[CompletionItemInsertTextRule2[\"InsertAsSnippet\"] = 4] = \"InsertAsSnippet\";\n return CompletionItemInsertTextRule2;\n})(CompletionItemInsertTextRule || {});\nvar EditorMode = /* @__PURE__ */ ((EditorMode2) => {\n EditorMode2[\"Builder\"] = \"builder\";\n EditorMode2[\"Code\"] = \"code\";\n return EditorMode2;\n})(EditorMode || {});\n\nexport { CompletionItemInsertTextRule, CompletionItemKind, CompletionItemPriority, EditorMode, MacroType, OperatorType, StatementPosition, SuggestionKind, TokenType };\n//# sourceMappingURL=types.js.map\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.Immutable = factory());\n}(this, function () { 'use strict';var SLICE$0 = Array.prototype.slice;\n\n function createClass(ctor, superClass) {\n if (superClass) {\n ctor.prototype = Object.create(superClass.prototype);\n }\n ctor.prototype.constructor = ctor;\n }\n\n function Iterable(value) {\n return isIterable(value) ? value : Seq(value);\n }\n\n\n createClass(KeyedIterable, Iterable);\n function KeyedIterable(value) {\n return isKeyed(value) ? value : KeyedSeq(value);\n }\n\n\n createClass(IndexedIterable, Iterable);\n function IndexedIterable(value) {\n return isIndexed(value) ? value : IndexedSeq(value);\n }\n\n\n createClass(SetIterable, Iterable);\n function SetIterable(value) {\n return isIterable(value) && !isAssociative(value) ? value : SetSeq(value);\n }\n\n\n\n function isIterable(maybeIterable) {\n return !!(maybeIterable && maybeIterable[IS_ITERABLE_SENTINEL]);\n }\n\n function isKeyed(maybeKeyed) {\n return !!(maybeKeyed && maybeKeyed[IS_KEYED_SENTINEL]);\n }\n\n function isIndexed(maybeIndexed) {\n return !!(maybeIndexed && maybeIndexed[IS_INDEXED_SENTINEL]);\n }\n\n function isAssociative(maybeAssociative) {\n return isKeyed(maybeAssociative) || isIndexed(maybeAssociative);\n }\n\n function isOrdered(maybeOrdered) {\n return !!(maybeOrdered && maybeOrdered[IS_ORDERED_SENTINEL]);\n }\n\n Iterable.isIterable = isIterable;\n Iterable.isKeyed = isKeyed;\n Iterable.isIndexed = isIndexed;\n Iterable.isAssociative = isAssociative;\n Iterable.isOrdered = isOrdered;\n\n Iterable.Keyed = KeyedIterable;\n Iterable.Indexed = IndexedIterable;\n Iterable.Set = SetIterable;\n\n\n var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n // Used for setting prototype methods that IE8 chokes on.\n var DELETE = 'delete';\n\n // Constants describing the size of trie nodes.\n var SHIFT = 5; // Resulted in best performance after ______?\n var SIZE = 1 << SHIFT;\n var MASK = SIZE - 1;\n\n // A consistent shared value representing \"not set\" which equals nothing other\n // than itself, and nothing that could be provided externally.\n var NOT_SET = {};\n\n // Boolean references, Rough equivalent of `bool &`.\n var CHANGE_LENGTH = { value: false };\n var DID_ALTER = { value: false };\n\n function MakeRef(ref) {\n ref.value = false;\n return ref;\n }\n\n function SetRef(ref) {\n ref && (ref.value = true);\n }\n\n // A function which returns a value representing an \"owner\" for transient writes\n // to tries. The return value will only ever equal itself, and will not equal\n // the return of any subsequent call of this function.\n function OwnerID() {}\n\n // http://jsperf.com/copy-array-inline\n function arrCopy(arr, offset) {\n offset = offset || 0;\n var len = Math.max(0, arr.length - offset);\n var newArr = new Array(len);\n for (var ii = 0; ii < len; ii++) {\n newArr[ii] = arr[ii + offset];\n }\n return newArr;\n }\n\n function ensureSize(iter) {\n if (iter.size === undefined) {\n iter.size = iter.__iterate(returnTrue);\n }\n return iter.size;\n }\n\n function wrapIndex(iter, index) {\n // This implements \"is array index\" which the ECMAString spec defines as:\n //\n // A String property name P is an array index if and only if\n // ToString(ToUint32(P)) is equal to P and ToUint32(P) is not equal\n // to 2^32−1.\n //\n // http://www.ecma-international.org/ecma-262/6.0/#sec-array-exotic-objects\n if (typeof index !== 'number') {\n var uint32Index = index >>> 0; // N >>> 0 is shorthand for ToUint32\n if ('' + uint32Index !== index || uint32Index === 4294967295) {\n return NaN;\n }\n index = uint32Index;\n }\n return index < 0 ? ensureSize(iter) + index : index;\n }\n\n function returnTrue() {\n return true;\n }\n\n function wholeSlice(begin, end, size) {\n return (begin === 0 || (size !== undefined && begin <= -size)) &&\n (end === undefined || (size !== undefined && end >= size));\n }\n\n function resolveBegin(begin, size) {\n return resolveIndex(begin, size, 0);\n }\n\n function resolveEnd(end, size) {\n return resolveIndex(end, size, size);\n }\n\n function resolveIndex(index, size, defaultIndex) {\n return index === undefined ?\n defaultIndex :\n index < 0 ?\n Math.max(0, size + index) :\n size === undefined ?\n index :\n Math.min(size, index);\n }\n\n /* global Symbol */\n\n var ITERATE_KEYS = 0;\n var ITERATE_VALUES = 1;\n var ITERATE_ENTRIES = 2;\n\n var REAL_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator';\n\n var ITERATOR_SYMBOL = REAL_ITERATOR_SYMBOL || FAUX_ITERATOR_SYMBOL;\n\n\n function Iterator(next) {\n this.next = next;\n }\n\n Iterator.prototype.toString = function() {\n return '[Iterator]';\n };\n\n\n Iterator.KEYS = ITERATE_KEYS;\n Iterator.VALUES = ITERATE_VALUES;\n Iterator.ENTRIES = ITERATE_ENTRIES;\n\n Iterator.prototype.inspect =\n Iterator.prototype.toSource = function () { return this.toString(); }\n Iterator.prototype[ITERATOR_SYMBOL] = function () {\n return this;\n };\n\n\n function iteratorValue(type, k, v, iteratorResult) {\n var value = type === 0 ? k : type === 1 ? v : [k, v];\n iteratorResult ? (iteratorResult.value = value) : (iteratorResult = {\n value: value, done: false\n });\n return iteratorResult;\n }\n\n function iteratorDone() {\n return { value: undefined, done: true };\n }\n\n function hasIterator(maybeIterable) {\n return !!getIteratorFn(maybeIterable);\n }\n\n function isIterator(maybeIterator) {\n return maybeIterator && typeof maybeIterator.next === 'function';\n }\n\n function getIterator(iterable) {\n var iteratorFn = getIteratorFn(iterable);\n return iteratorFn && iteratorFn.call(iterable);\n }\n\n function getIteratorFn(iterable) {\n var iteratorFn = iterable && (\n (REAL_ITERATOR_SYMBOL && iterable[REAL_ITERATOR_SYMBOL]) ||\n iterable[FAUX_ITERATOR_SYMBOL]\n );\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n function isArrayLike(value) {\n return value && typeof value.length === 'number';\n }\n\n createClass(Seq, Iterable);\n function Seq(value) {\n return value === null || value === undefined ? emptySequence() :\n isIterable(value) ? value.toSeq() : seqFromValue(value);\n }\n\n Seq.of = function(/*...values*/) {\n return Seq(arguments);\n };\n\n Seq.prototype.toSeq = function() {\n return this;\n };\n\n Seq.prototype.toString = function() {\n return this.__toString('Seq {', '}');\n };\n\n Seq.prototype.cacheResult = function() {\n if (!this._cache && this.__iterateUncached) {\n this._cache = this.entrySeq().toArray();\n this.size = this._cache.length;\n }\n return this;\n };\n\n // abstract __iterateUncached(fn, reverse)\n\n Seq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, true);\n };\n\n // abstract __iteratorUncached(type, reverse)\n\n Seq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, true);\n };\n\n\n\n createClass(KeyedSeq, Seq);\n function KeyedSeq(value) {\n return value === null || value === undefined ?\n emptySequence().toKeyedSeq() :\n isIterable(value) ?\n (isKeyed(value) ? value.toSeq() : value.fromEntrySeq()) :\n keyedSeqFromValue(value);\n }\n\n KeyedSeq.prototype.toKeyedSeq = function() {\n return this;\n };\n\n\n\n createClass(IndexedSeq, Seq);\n function IndexedSeq(value) {\n return value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value.toIndexedSeq();\n }\n\n IndexedSeq.of = function(/*...values*/) {\n return IndexedSeq(arguments);\n };\n\n IndexedSeq.prototype.toIndexedSeq = function() {\n return this;\n };\n\n IndexedSeq.prototype.toString = function() {\n return this.__toString('Seq [', ']');\n };\n\n IndexedSeq.prototype.__iterate = function(fn, reverse) {\n return seqIterate(this, fn, reverse, false);\n };\n\n IndexedSeq.prototype.__iterator = function(type, reverse) {\n return seqIterator(this, type, reverse, false);\n };\n\n\n\n createClass(SetSeq, Seq);\n function SetSeq(value) {\n return (\n value === null || value === undefined ? emptySequence() :\n !isIterable(value) ? indexedSeqFromValue(value) :\n isKeyed(value) ? value.entrySeq() : value\n ).toSetSeq();\n }\n\n SetSeq.of = function(/*...values*/) {\n return SetSeq(arguments);\n };\n\n SetSeq.prototype.toSetSeq = function() {\n return this;\n };\n\n\n\n Seq.isSeq = isSeq;\n Seq.Keyed = KeyedSeq;\n Seq.Set = SetSeq;\n Seq.Indexed = IndexedSeq;\n\n var IS_SEQ_SENTINEL = '@@__IMMUTABLE_SEQ__@@';\n\n Seq.prototype[IS_SEQ_SENTINEL] = true;\n\n\n\n createClass(ArraySeq, IndexedSeq);\n function ArraySeq(array) {\n this._array = array;\n this.size = array.length;\n }\n\n ArraySeq.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._array[wrapIndex(this, index)] : notSetValue;\n };\n\n ArraySeq.prototype.__iterate = function(fn, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(array[reverse ? maxIndex - ii : ii], ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ArraySeq.prototype.__iterator = function(type, reverse) {\n var array = this._array;\n var maxIndex = array.length - 1;\n var ii = 0;\n return new Iterator(function() \n {return ii > maxIndex ?\n iteratorDone() :\n iteratorValue(type, ii, array[reverse ? maxIndex - ii++ : ii++])}\n );\n };\n\n\n\n createClass(ObjectSeq, KeyedSeq);\n function ObjectSeq(object) {\n var keys = Object.keys(object);\n this._object = object;\n this._keys = keys;\n this.size = keys.length;\n }\n\n ObjectSeq.prototype.get = function(key, notSetValue) {\n if (notSetValue !== undefined && !this.has(key)) {\n return notSetValue;\n }\n return this._object[key];\n };\n\n ObjectSeq.prototype.has = function(key) {\n return this._object.hasOwnProperty(key);\n };\n\n ObjectSeq.prototype.__iterate = function(fn, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var key = keys[reverse ? maxIndex - ii : ii];\n if (fn(object[key], key, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n ObjectSeq.prototype.__iterator = function(type, reverse) {\n var object = this._object;\n var keys = this._keys;\n var maxIndex = keys.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var key = keys[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, key, object[key]);\n });\n };\n\n ObjectSeq.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(IterableSeq, IndexedSeq);\n function IterableSeq(iterable) {\n this._iterable = iterable;\n this.size = iterable.length || iterable.size;\n }\n\n IterableSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n var iterations = 0;\n if (isIterator(iterator)) {\n var step;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n }\n return iterations;\n };\n\n IterableSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterable = this._iterable;\n var iterator = getIterator(iterable);\n if (!isIterator(iterator)) {\n return new Iterator(iteratorDone);\n }\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step : iteratorValue(type, iterations++, step.value);\n });\n };\n\n\n\n createClass(IteratorSeq, IndexedSeq);\n function IteratorSeq(iterator) {\n this._iterator = iterator;\n this._iteratorCache = [];\n }\n\n IteratorSeq.prototype.__iterateUncached = function(fn, reverse) {\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n while (iterations < cache.length) {\n if (fn(cache[iterations], iterations++, this) === false) {\n return iterations;\n }\n }\n var step;\n while (!(step = iterator.next()).done) {\n var val = step.value;\n cache[iterations] = val;\n if (fn(val, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n\n IteratorSeq.prototype.__iteratorUncached = function(type, reverse) {\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = this._iterator;\n var cache = this._iteratorCache;\n var iterations = 0;\n return new Iterator(function() {\n if (iterations >= cache.length) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n cache[iterations] = step.value;\n }\n return iteratorValue(type, iterations, cache[iterations++]);\n });\n };\n\n\n\n\n // # pragma Helper functions\n\n function isSeq(maybeSeq) {\n return !!(maybeSeq && maybeSeq[IS_SEQ_SENTINEL]);\n }\n\n var EMPTY_SEQ;\n\n function emptySequence() {\n return EMPTY_SEQ || (EMPTY_SEQ = new ArraySeq([]));\n }\n\n function keyedSeqFromValue(value) {\n var seq =\n Array.isArray(value) ? new ArraySeq(value).fromEntrySeq() :\n isIterator(value) ? new IteratorSeq(value).fromEntrySeq() :\n hasIterator(value) ? new IterableSeq(value).fromEntrySeq() :\n typeof value === 'object' ? new ObjectSeq(value) :\n undefined;\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of [k, v] entries, '+\n 'or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function indexedSeqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value);\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values: ' + value\n );\n }\n return seq;\n }\n\n function seqFromValue(value) {\n var seq = maybeIndexedSeqFromValue(value) ||\n (typeof value === 'object' && new ObjectSeq(value));\n if (!seq) {\n throw new TypeError(\n 'Expected Array or iterable object of values, or keyed object: ' + value\n );\n }\n return seq;\n }\n\n function maybeIndexedSeqFromValue(value) {\n return (\n isArrayLike(value) ? new ArraySeq(value) :\n isIterator(value) ? new IteratorSeq(value) :\n hasIterator(value) ? new IterableSeq(value) :\n undefined\n );\n }\n\n function seqIterate(seq, fn, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n for (var ii = 0; ii <= maxIndex; ii++) {\n var entry = cache[reverse ? maxIndex - ii : ii];\n if (fn(entry[1], useKeys ? entry[0] : ii, seq) === false) {\n return ii + 1;\n }\n }\n return ii;\n }\n return seq.__iterateUncached(fn, reverse);\n }\n\n function seqIterator(seq, type, reverse, useKeys) {\n var cache = seq._cache;\n if (cache) {\n var maxIndex = cache.length - 1;\n var ii = 0;\n return new Iterator(function() {\n var entry = cache[reverse ? maxIndex - ii : ii];\n return ii++ > maxIndex ?\n iteratorDone() :\n iteratorValue(type, useKeys ? entry[0] : ii - 1, entry[1]);\n });\n }\n return seq.__iteratorUncached(type, reverse);\n }\n\n function fromJS(json, converter) {\n return converter ?\n fromJSWith(converter, json, '', {'': json}) :\n fromJSDefault(json);\n }\n\n function fromJSWith(converter, json, key, parentJSON) {\n if (Array.isArray(json)) {\n return converter.call(parentJSON, key, IndexedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n if (isPlainObj(json)) {\n return converter.call(parentJSON, key, KeyedSeq(json).map(function(v, k) {return fromJSWith(converter, v, k, json)}));\n }\n return json;\n }\n\n function fromJSDefault(json) {\n if (Array.isArray(json)) {\n return IndexedSeq(json).map(fromJSDefault).toList();\n }\n if (isPlainObj(json)) {\n return KeyedSeq(json).map(fromJSDefault).toMap();\n }\n return json;\n }\n\n function isPlainObj(value) {\n return value && (value.constructor === Object || value.constructor === undefined);\n }\n\n /**\n * An extension of the \"same-value\" algorithm as [described for use by ES6 Map\n * and Set](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Key_equality)\n *\n * NaN is considered the same as NaN, however -0 and 0 are considered the same\n * value, which is different from the algorithm described by\n * [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is).\n *\n * This is extended further to allow Objects to describe the values they\n * represent, by way of `valueOf` or `equals` (and `hashCode`).\n *\n * Note: because of this extension, the key equality of Immutable.Map and the\n * value equality of Immutable.Set will differ from ES6 Map and Set.\n *\n * ### Defining custom values\n *\n * The easiest way to describe the value an object represents is by implementing\n * `valueOf`. For example, `Date` represents a value by returning a unix\n * timestamp for `valueOf`:\n *\n * var date1 = new Date(1234567890000); // Fri Feb 13 2009 ...\n * var date2 = new Date(1234567890000);\n * date1.valueOf(); // 1234567890000\n * assert( date1 !== date2 );\n * assert( Immutable.is( date1, date2 ) );\n *\n * Note: overriding `valueOf` may have other implications if you use this object\n * where JavaScript expects a primitive, such as implicit string coercion.\n *\n * For more complex types, especially collections, implementing `valueOf` may\n * not be performant. An alternative is to implement `equals` and `hashCode`.\n *\n * `equals` takes another object, presumably of similar type, and returns true\n * if the it is equal. Equality is symmetrical, so the same result should be\n * returned if this and the argument are flipped.\n *\n * assert( a.equals(b) === b.equals(a) );\n *\n * `hashCode` returns a 32bit integer number representing the object which will\n * be used to determine how to store the value object in a Map or Set. You must\n * provide both or neither methods, one must not exist without the other.\n *\n * Also, an important relationship between these methods must be upheld: if two\n * values are equal, they *must* return the same hashCode. If the values are not\n * equal, they might have the same hashCode; this is called a hash collision,\n * and while undesirable for performance reasons, it is acceptable.\n *\n * if (a.equals(b)) {\n * assert( a.hashCode() === b.hashCode() );\n * }\n *\n * All Immutable collections implement `equals` and `hashCode`.\n *\n */\n function is(valueA, valueB) {\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n if (typeof valueA.valueOf === 'function' &&\n typeof valueB.valueOf === 'function') {\n valueA = valueA.valueOf();\n valueB = valueB.valueOf();\n if (valueA === valueB || (valueA !== valueA && valueB !== valueB)) {\n return true;\n }\n if (!valueA || !valueB) {\n return false;\n }\n }\n if (typeof valueA.equals === 'function' &&\n typeof valueB.equals === 'function' &&\n valueA.equals(valueB)) {\n return true;\n }\n return false;\n }\n\n function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (\n !isIterable(b) ||\n a.size !== undefined && b.size !== undefined && a.size !== b.size ||\n a.__hash !== undefined && b.__hash !== undefined && a.__hash !== b.__hash ||\n isKeyed(a) !== isKeyed(b) ||\n isIndexed(a) !== isIndexed(b) ||\n isOrdered(a) !== isOrdered(b)\n ) {\n return false;\n }\n\n if (a.size === 0 && b.size === 0) {\n return true;\n }\n\n var notAssociative = !isAssociative(a);\n\n if (isOrdered(a)) {\n var entries = a.entries();\n return b.every(function(v, k) {\n var entry = entries.next().value;\n return entry && is(entry[1], v) && (notAssociative || is(entry[0], k));\n }) && entries.next().done;\n }\n\n var flipped = false;\n\n if (a.size === undefined) {\n if (b.size === undefined) {\n if (typeof a.cacheResult === 'function') {\n a.cacheResult();\n }\n } else {\n flipped = true;\n var _ = a;\n a = b;\n b = _;\n }\n }\n\n var allEqual = true;\n var bSize = b.__iterate(function(v, k) {\n if (notAssociative ? !a.has(v) :\n flipped ? !is(v, a.get(k, NOT_SET)) : !is(a.get(k, NOT_SET), v)) {\n allEqual = false;\n return false;\n }\n });\n\n return allEqual && a.size === bSize;\n }\n\n createClass(Repeat, IndexedSeq);\n\n function Repeat(value, times) {\n if (!(this instanceof Repeat)) {\n return new Repeat(value, times);\n }\n this._value = value;\n this.size = times === undefined ? Infinity : Math.max(0, times);\n if (this.size === 0) {\n if (EMPTY_REPEAT) {\n return EMPTY_REPEAT;\n }\n EMPTY_REPEAT = this;\n }\n }\n\n Repeat.prototype.toString = function() {\n if (this.size === 0) {\n return 'Repeat []';\n }\n return 'Repeat [ ' + this._value + ' ' + this.size + ' times ]';\n };\n\n Repeat.prototype.get = function(index, notSetValue) {\n return this.has(index) ? this._value : notSetValue;\n };\n\n Repeat.prototype.includes = function(searchValue) {\n return is(this._value, searchValue);\n };\n\n Repeat.prototype.slice = function(begin, end) {\n var size = this.size;\n return wholeSlice(begin, end, size) ? this :\n new Repeat(this._value, resolveEnd(end, size) - resolveBegin(begin, size));\n };\n\n Repeat.prototype.reverse = function() {\n return this;\n };\n\n Repeat.prototype.indexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return 0;\n }\n return -1;\n };\n\n Repeat.prototype.lastIndexOf = function(searchValue) {\n if (is(this._value, searchValue)) {\n return this.size;\n }\n return -1;\n };\n\n Repeat.prototype.__iterate = function(fn, reverse) {\n for (var ii = 0; ii < this.size; ii++) {\n if (fn(this._value, ii, this) === false) {\n return ii + 1;\n }\n }\n return ii;\n };\n\n Repeat.prototype.__iterator = function(type, reverse) {var this$0 = this;\n var ii = 0;\n return new Iterator(function() \n {return ii < this$0.size ? iteratorValue(type, ii++, this$0._value) : iteratorDone()}\n );\n };\n\n Repeat.prototype.equals = function(other) {\n return other instanceof Repeat ?\n is(this._value, other._value) :\n deepEqual(other);\n };\n\n\n var EMPTY_REPEAT;\n\n function invariant(condition, error) {\n if (!condition) throw new Error(error);\n }\n\n createClass(Range, IndexedSeq);\n\n function Range(start, end, step) {\n if (!(this instanceof Range)) {\n return new Range(start, end, step);\n }\n invariant(step !== 0, 'Cannot step a Range by 0');\n start = start || 0;\n if (end === undefined) {\n end = Infinity;\n }\n step = step === undefined ? 1 : Math.abs(step);\n if (end < start) {\n step = -step;\n }\n this._start = start;\n this._end = end;\n this._step = step;\n this.size = Math.max(0, Math.ceil((end - start) / step - 1) + 1);\n if (this.size === 0) {\n if (EMPTY_RANGE) {\n return EMPTY_RANGE;\n }\n EMPTY_RANGE = this;\n }\n }\n\n Range.prototype.toString = function() {\n if (this.size === 0) {\n return 'Range []';\n }\n return 'Range [ ' +\n this._start + '...' + this._end +\n (this._step !== 1 ? ' by ' + this._step : '') +\n ' ]';\n };\n\n Range.prototype.get = function(index, notSetValue) {\n return this.has(index) ?\n this._start + wrapIndex(this, index) * this._step :\n notSetValue;\n };\n\n Range.prototype.includes = function(searchValue) {\n var possibleIndex = (searchValue - this._start) / this._step;\n return possibleIndex >= 0 &&\n possibleIndex < this.size &&\n possibleIndex === Math.floor(possibleIndex);\n };\n\n Range.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n begin = resolveBegin(begin, this.size);\n end = resolveEnd(end, this.size);\n if (end <= begin) {\n return new Range(0, 0);\n }\n return new Range(this.get(begin, this._end), this.get(end, this._end), this._step);\n };\n\n Range.prototype.indexOf = function(searchValue) {\n var offsetValue = searchValue - this._start;\n if (offsetValue % this._step === 0) {\n var index = offsetValue / this._step;\n if (index >= 0 && index < this.size) {\n return index\n }\n }\n return -1;\n };\n\n Range.prototype.lastIndexOf = function(searchValue) {\n return this.indexOf(searchValue);\n };\n\n Range.prototype.__iterate = function(fn, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n for (var ii = 0; ii <= maxIndex; ii++) {\n if (fn(value, ii, this) === false) {\n return ii + 1;\n }\n value += reverse ? -step : step;\n }\n return ii;\n };\n\n Range.prototype.__iterator = function(type, reverse) {\n var maxIndex = this.size - 1;\n var step = this._step;\n var value = reverse ? this._start + maxIndex * step : this._start;\n var ii = 0;\n return new Iterator(function() {\n var v = value;\n value += reverse ? -step : step;\n return ii > maxIndex ? iteratorDone() : iteratorValue(type, ii++, v);\n });\n };\n\n Range.prototype.equals = function(other) {\n return other instanceof Range ?\n this._start === other._start &&\n this._end === other._end &&\n this._step === other._step :\n deepEqual(this, other);\n };\n\n\n var EMPTY_RANGE;\n\n createClass(Collection, Iterable);\n function Collection() {\n throw TypeError('Abstract');\n }\n\n\n createClass(KeyedCollection, Collection);function KeyedCollection() {}\n\n createClass(IndexedCollection, Collection);function IndexedCollection() {}\n\n createClass(SetCollection, Collection);function SetCollection() {}\n\n\n Collection.Keyed = KeyedCollection;\n Collection.Indexed = IndexedCollection;\n Collection.Set = SetCollection;\n\n var imul =\n typeof Math.imul === 'function' && Math.imul(0xffffffff, 2) === -2 ?\n Math.imul :\n function imul(a, b) {\n a = a | 0; // int\n b = b | 0; // int\n var c = a & 0xffff;\n var d = b & 0xffff;\n // Shift by 0 fixes the sign on the high part.\n return (c * d) + ((((a >>> 16) * d + c * (b >>> 16)) << 16) >>> 0) | 0; // int\n };\n\n // v8 has an optimization for storing 31-bit signed numbers.\n // Values which have either 00 or 11 as the high order bits qualify.\n // This function drops the highest order bit in a signed number, maintaining\n // the sign bit.\n function smi(i32) {\n return ((i32 >>> 1) & 0x40000000) | (i32 & 0xBFFFFFFF);\n }\n\n function hash(o) {\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n if (typeof o.valueOf === 'function') {\n o = o.valueOf();\n if (o === false || o === null || o === undefined) {\n return 0;\n }\n }\n if (o === true) {\n return 1;\n }\n var type = typeof o;\n if (type === 'number') {\n if (o !== o || o === Infinity) {\n return 0;\n }\n var h = o | 0;\n if (h !== o) {\n h ^= o * 0xFFFFFFFF;\n }\n while (o > 0xFFFFFFFF) {\n o /= 0xFFFFFFFF;\n h ^= o;\n }\n return smi(h);\n }\n if (type === 'string') {\n return o.length > STRING_HASH_CACHE_MIN_STRLEN ? cachedHashString(o) : hashString(o);\n }\n if (typeof o.hashCode === 'function') {\n return o.hashCode();\n }\n if (type === 'object') {\n return hashJSObj(o);\n }\n if (typeof o.toString === 'function') {\n return hashString(o.toString());\n }\n throw new Error('Value type ' + type + ' cannot be hashed.');\n }\n\n function cachedHashString(string) {\n var hash = stringHashCache[string];\n if (hash === undefined) {\n hash = hashString(string);\n if (STRING_HASH_CACHE_SIZE === STRING_HASH_CACHE_MAX_SIZE) {\n STRING_HASH_CACHE_SIZE = 0;\n stringHashCache = {};\n }\n STRING_HASH_CACHE_SIZE++;\n stringHashCache[string] = hash;\n }\n return hash;\n }\n\n // http://jsperf.com/hashing-strings\n function hashString(string) {\n // This is the hash from JVM\n // The hash code for a string is computed as\n // s[0] * 31 ^ (n - 1) + s[1] * 31 ^ (n - 2) + ... + s[n - 1],\n // where s[i] is the ith character of the string and n is the length of\n // the string. We \"mod\" the result to make it between 0 (inclusive) and 2^31\n // (exclusive) by dropping high bits.\n var hash = 0;\n for (var ii = 0; ii < string.length; ii++) {\n hash = 31 * hash + string.charCodeAt(ii) | 0;\n }\n return smi(hash);\n }\n\n function hashJSObj(obj) {\n var hash;\n if (usingWeakMap) {\n hash = weakMap.get(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = obj[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n if (!canDefineProperty) {\n hash = obj.propertyIsEnumerable && obj.propertyIsEnumerable[UID_HASH_KEY];\n if (hash !== undefined) {\n return hash;\n }\n\n hash = getIENodeHash(obj);\n if (hash !== undefined) {\n return hash;\n }\n }\n\n hash = ++objHashUID;\n if (objHashUID & 0x40000000) {\n objHashUID = 0;\n }\n\n if (usingWeakMap) {\n weakMap.set(obj, hash);\n } else if (isExtensible !== undefined && isExtensible(obj) === false) {\n throw new Error('Non-extensible objects are not allowed as keys.');\n } else if (canDefineProperty) {\n Object.defineProperty(obj, UID_HASH_KEY, {\n 'enumerable': false,\n 'configurable': false,\n 'writable': false,\n 'value': hash\n });\n } else if (obj.propertyIsEnumerable !== undefined &&\n obj.propertyIsEnumerable === obj.constructor.prototype.propertyIsEnumerable) {\n // Since we can't define a non-enumerable property on the object\n // we'll hijack one of the less-used non-enumerable properties to\n // save our hash on it. Since this is a function it will not show up in\n // `JSON.stringify` which is what we want.\n obj.propertyIsEnumerable = function() {\n return this.constructor.prototype.propertyIsEnumerable.apply(this, arguments);\n };\n obj.propertyIsEnumerable[UID_HASH_KEY] = hash;\n } else if (obj.nodeType !== undefined) {\n // At this point we couldn't get the IE `uniqueID` to use as a hash\n // and we couldn't use a non-enumerable property to exploit the\n // dontEnum bug so we simply add the `UID_HASH_KEY` on the node\n // itself.\n obj[UID_HASH_KEY] = hash;\n } else {\n throw new Error('Unable to set a non-enumerable property on object.');\n }\n\n return hash;\n }\n\n // Get references to ES5 object methods.\n var isExtensible = Object.isExtensible;\n\n // True if Object.defineProperty works as expected. IE8 fails this test.\n var canDefineProperty = (function() {\n try {\n Object.defineProperty({}, '@', {});\n return true;\n } catch (e) {\n return false;\n }\n }());\n\n // IE has a `uniqueID` property on DOM nodes. We can construct the hash from it\n // and avoid memory leaks from the IE cloneNode bug.\n function getIENodeHash(node) {\n if (node && node.nodeType > 0) {\n switch (node.nodeType) {\n case 1: // Element\n return node.uniqueID;\n case 9: // Document\n return node.documentElement && node.documentElement.uniqueID;\n }\n }\n }\n\n // If possible, use a WeakMap.\n var usingWeakMap = typeof WeakMap === 'function';\n var weakMap;\n if (usingWeakMap) {\n weakMap = new WeakMap();\n }\n\n var objHashUID = 0;\n\n var UID_HASH_KEY = '__immutablehash__';\n if (typeof Symbol === 'function') {\n UID_HASH_KEY = Symbol(UID_HASH_KEY);\n }\n\n var STRING_HASH_CACHE_MIN_STRLEN = 16;\n var STRING_HASH_CACHE_MAX_SIZE = 255;\n var STRING_HASH_CACHE_SIZE = 0;\n var stringHashCache = {};\n\n function assertNotInfinite(size) {\n invariant(\n size !== Infinity,\n 'Cannot perform this action with an infinite size.'\n );\n }\n\n createClass(Map, KeyedCollection);\n\n // @pragma Construction\n\n function Map(value) {\n return value === null || value === undefined ? emptyMap() :\n isMap(value) && !isOrdered(value) ? value :\n emptyMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n Map.of = function() {var keyValues = SLICE$0.call(arguments, 0);\n return emptyMap().withMutations(function(map ) {\n for (var i = 0; i < keyValues.length; i += 2) {\n if (i + 1 >= keyValues.length) {\n throw new Error('Missing value for key: ' + keyValues[i]);\n }\n map.set(keyValues[i], keyValues[i + 1]);\n }\n });\n };\n\n Map.prototype.toString = function() {\n return this.__toString('Map {', '}');\n };\n\n // @pragma Access\n\n Map.prototype.get = function(k, notSetValue) {\n return this._root ?\n this._root.get(0, undefined, k, notSetValue) :\n notSetValue;\n };\n\n // @pragma Modification\n\n Map.prototype.set = function(k, v) {\n return updateMap(this, k, v);\n };\n\n Map.prototype.setIn = function(keyPath, v) {\n return this.updateIn(keyPath, NOT_SET, function() {return v});\n };\n\n Map.prototype.remove = function(k) {\n return updateMap(this, k, NOT_SET);\n };\n\n Map.prototype.deleteIn = function(keyPath) {\n return this.updateIn(keyPath, function() {return NOT_SET});\n };\n\n Map.prototype.update = function(k, notSetValue, updater) {\n return arguments.length === 1 ?\n k(this) :\n this.updateIn([k], notSetValue, updater);\n };\n\n Map.prototype.updateIn = function(keyPath, notSetValue, updater) {\n if (!updater) {\n updater = notSetValue;\n notSetValue = undefined;\n }\n var updatedValue = updateInDeepMap(\n this,\n forceIterator(keyPath),\n notSetValue,\n updater\n );\n return updatedValue === NOT_SET ? undefined : updatedValue;\n };\n\n Map.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._root = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyMap();\n };\n\n // @pragma Composition\n\n Map.prototype.merge = function(/*...iters*/) {\n return mergeIntoMapWith(this, undefined, arguments);\n };\n\n Map.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, merger, iters);\n };\n\n Map.prototype.mergeIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.merge === 'function' ?\n m.merge.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoMapWith(this, deepMerger, arguments);\n };\n\n Map.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoMapWith(this, deepMergerWith(merger), iters);\n };\n\n Map.prototype.mergeDeepIn = function(keyPath) {var iters = SLICE$0.call(arguments, 1);\n return this.updateIn(\n keyPath,\n emptyMap(),\n function(m ) {return typeof m.mergeDeep === 'function' ?\n m.mergeDeep.apply(m, iters) :\n iters[iters.length - 1]}\n );\n };\n\n Map.prototype.sort = function(comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator));\n };\n\n Map.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedMap(sortFactory(this, comparator, mapper));\n };\n\n // @pragma Mutability\n\n Map.prototype.withMutations = function(fn) {\n var mutable = this.asMutable();\n fn(mutable);\n return mutable.wasAltered() ? mutable.__ensureOwner(this.__ownerID) : this;\n };\n\n Map.prototype.asMutable = function() {\n return this.__ownerID ? this : this.__ensureOwner(new OwnerID());\n };\n\n Map.prototype.asImmutable = function() {\n return this.__ensureOwner();\n };\n\n Map.prototype.wasAltered = function() {\n return this.__altered;\n };\n\n Map.prototype.__iterator = function(type, reverse) {\n return new MapIterator(this, type, reverse);\n };\n\n Map.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n this._root && this._root.iterate(function(entry ) {\n iterations++;\n return fn(entry[1], entry[0], this$0);\n }, reverse);\n return iterations;\n };\n\n Map.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeMap(this.size, this._root, ownerID, this.__hash);\n };\n\n\n function isMap(maybeMap) {\n return !!(maybeMap && maybeMap[IS_MAP_SENTINEL]);\n }\n\n Map.isMap = isMap;\n\n var IS_MAP_SENTINEL = '@@__IMMUTABLE_MAP__@@';\n\n var MapPrototype = Map.prototype;\n MapPrototype[IS_MAP_SENTINEL] = true;\n MapPrototype[DELETE] = MapPrototype.remove;\n MapPrototype.removeIn = MapPrototype.deleteIn;\n\n\n // #pragma Trie Nodes\n\n\n\n function ArrayMapNode(ownerID, entries) {\n this.ownerID = ownerID;\n this.entries = entries;\n }\n\n ArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n ArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && entries.length === 1) {\n return; // undefined\n }\n\n if (!exists && !removed && entries.length >= MAX_ARRAY_MAP_SIZE) {\n return createNodes(ownerID, entries, key, value);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new ArrayMapNode(ownerID, newEntries);\n };\n\n\n\n\n function BitmapIndexedNode(ownerID, bitmap, nodes) {\n this.ownerID = ownerID;\n this.bitmap = bitmap;\n this.nodes = nodes;\n }\n\n BitmapIndexedNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var bit = (1 << ((shift === 0 ? keyHash : keyHash >>> shift) & MASK));\n var bitmap = this.bitmap;\n return (bitmap & bit) === 0 ? notSetValue :\n this.nodes[popCount(bitmap & (bit - 1))].get(shift + SHIFT, keyHash, key, notSetValue);\n };\n\n BitmapIndexedNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var keyHashFrag = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var bit = 1 << keyHashFrag;\n var bitmap = this.bitmap;\n var exists = (bitmap & bit) !== 0;\n\n if (!exists && value === NOT_SET) {\n return this;\n }\n\n var idx = popCount(bitmap & (bit - 1));\n var nodes = this.nodes;\n var node = exists ? nodes[idx] : undefined;\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n\n if (newNode === node) {\n return this;\n }\n\n if (!exists && newNode && nodes.length >= MAX_BITMAP_INDEXED_SIZE) {\n return expandNodes(ownerID, nodes, bitmap, keyHashFrag, newNode);\n }\n\n if (exists && !newNode && nodes.length === 2 && isLeafNode(nodes[idx ^ 1])) {\n return nodes[idx ^ 1];\n }\n\n if (exists && newNode && nodes.length === 1 && isLeafNode(newNode)) {\n return newNode;\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newBitmap = exists ? newNode ? bitmap : bitmap ^ bit : bitmap | bit;\n var newNodes = exists ? newNode ?\n setIn(nodes, idx, newNode, isEditable) :\n spliceOut(nodes, idx, isEditable) :\n spliceIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.bitmap = newBitmap;\n this.nodes = newNodes;\n return this;\n }\n\n return new BitmapIndexedNode(ownerID, newBitmap, newNodes);\n };\n\n\n\n\n function HashArrayMapNode(ownerID, count, nodes) {\n this.ownerID = ownerID;\n this.count = count;\n this.nodes = nodes;\n }\n\n HashArrayMapNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var node = this.nodes[idx];\n return node ? node.get(shift + SHIFT, keyHash, key, notSetValue) : notSetValue;\n };\n\n HashArrayMapNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n var idx = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n var removed = value === NOT_SET;\n var nodes = this.nodes;\n var node = nodes[idx];\n\n if (removed && !node) {\n return this;\n }\n\n var newNode = updateNode(node, ownerID, shift + SHIFT, keyHash, key, value, didChangeSize, didAlter);\n if (newNode === node) {\n return this;\n }\n\n var newCount = this.count;\n if (!node) {\n newCount++;\n } else if (!newNode) {\n newCount--;\n if (newCount < MIN_HASH_ARRAY_MAP_SIZE) {\n return packNodes(ownerID, nodes, newCount, idx);\n }\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newNodes = setIn(nodes, idx, newNode, isEditable);\n\n if (isEditable) {\n this.count = newCount;\n this.nodes = newNodes;\n return this;\n }\n\n return new HashArrayMapNode(ownerID, newCount, newNodes);\n };\n\n\n\n\n function HashCollisionNode(ownerID, keyHash, entries) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entries = entries;\n }\n\n HashCollisionNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n var entries = this.entries;\n for (var ii = 0, len = entries.length; ii < len; ii++) {\n if (is(key, entries[ii][0])) {\n return entries[ii][1];\n }\n }\n return notSetValue;\n };\n\n HashCollisionNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (keyHash === undefined) {\n keyHash = hash(key);\n }\n\n var removed = value === NOT_SET;\n\n if (keyHash !== this.keyHash) {\n if (removed) {\n return this;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, keyHash, [key, value]);\n }\n\n var entries = this.entries;\n var idx = 0;\n for (var len = entries.length; idx < len; idx++) {\n if (is(key, entries[idx][0])) {\n break;\n }\n }\n var exists = idx < len;\n\n if (exists ? entries[idx][1] === value : removed) {\n return this;\n }\n\n SetRef(didAlter);\n (removed || !exists) && SetRef(didChangeSize);\n\n if (removed && len === 2) {\n return new ValueNode(ownerID, this.keyHash, entries[idx ^ 1]);\n }\n\n var isEditable = ownerID && ownerID === this.ownerID;\n var newEntries = isEditable ? entries : arrCopy(entries);\n\n if (exists) {\n if (removed) {\n idx === len - 1 ? newEntries.pop() : (newEntries[idx] = newEntries.pop());\n } else {\n newEntries[idx] = [key, value];\n }\n } else {\n newEntries.push([key, value]);\n }\n\n if (isEditable) {\n this.entries = newEntries;\n return this;\n }\n\n return new HashCollisionNode(ownerID, this.keyHash, newEntries);\n };\n\n\n\n\n function ValueNode(ownerID, keyHash, entry) {\n this.ownerID = ownerID;\n this.keyHash = keyHash;\n this.entry = entry;\n }\n\n ValueNode.prototype.get = function(shift, keyHash, key, notSetValue) {\n return is(key, this.entry[0]) ? this.entry[1] : notSetValue;\n };\n\n ValueNode.prototype.update = function(ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n var removed = value === NOT_SET;\n var keyMatch = is(key, this.entry[0]);\n if (keyMatch ? value === this.entry[1] : removed) {\n return this;\n }\n\n SetRef(didAlter);\n\n if (removed) {\n SetRef(didChangeSize);\n return; // undefined\n }\n\n if (keyMatch) {\n if (ownerID && ownerID === this.ownerID) {\n this.entry[1] = value;\n return this;\n }\n return new ValueNode(ownerID, this.keyHash, [key, value]);\n }\n\n SetRef(didChangeSize);\n return mergeIntoNode(this, ownerID, shift, hash(key), [key, value]);\n };\n\n\n\n // #pragma Iterators\n\n ArrayMapNode.prototype.iterate =\n HashCollisionNode.prototype.iterate = function (fn, reverse) {\n var entries = this.entries;\n for (var ii = 0, maxIndex = entries.length - 1; ii <= maxIndex; ii++) {\n if (fn(entries[reverse ? maxIndex - ii : ii]) === false) {\n return false;\n }\n }\n }\n\n BitmapIndexedNode.prototype.iterate =\n HashArrayMapNode.prototype.iterate = function (fn, reverse) {\n var nodes = this.nodes;\n for (var ii = 0, maxIndex = nodes.length - 1; ii <= maxIndex; ii++) {\n var node = nodes[reverse ? maxIndex - ii : ii];\n if (node && node.iterate(fn, reverse) === false) {\n return false;\n }\n }\n }\n\n ValueNode.prototype.iterate = function (fn, reverse) {\n return fn(this.entry);\n }\n\n createClass(MapIterator, Iterator);\n\n function MapIterator(map, type, reverse) {\n this._type = type;\n this._reverse = reverse;\n this._stack = map._root && mapIteratorFrame(map._root);\n }\n\n MapIterator.prototype.next = function() {\n var type = this._type;\n var stack = this._stack;\n while (stack) {\n var node = stack.node;\n var index = stack.index++;\n var maxIndex;\n if (node.entry) {\n if (index === 0) {\n return mapIteratorValue(type, node.entry);\n }\n } else if (node.entries) {\n maxIndex = node.entries.length - 1;\n if (index <= maxIndex) {\n return mapIteratorValue(type, node.entries[this._reverse ? maxIndex - index : index]);\n }\n } else {\n maxIndex = node.nodes.length - 1;\n if (index <= maxIndex) {\n var subNode = node.nodes[this._reverse ? maxIndex - index : index];\n if (subNode) {\n if (subNode.entry) {\n return mapIteratorValue(type, subNode.entry);\n }\n stack = this._stack = mapIteratorFrame(subNode, stack);\n }\n continue;\n }\n }\n stack = this._stack = this._stack.__prev;\n }\n return iteratorDone();\n };\n\n\n function mapIteratorValue(type, entry) {\n return iteratorValue(type, entry[0], entry[1]);\n }\n\n function mapIteratorFrame(node, prev) {\n return {\n node: node,\n index: 0,\n __prev: prev\n };\n }\n\n function makeMap(size, root, ownerID, hash) {\n var map = Object.create(MapPrototype);\n map.size = size;\n map._root = root;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_MAP;\n function emptyMap() {\n return EMPTY_MAP || (EMPTY_MAP = makeMap(0));\n }\n\n function updateMap(map, k, v) {\n var newRoot;\n var newSize;\n if (!map._root) {\n if (v === NOT_SET) {\n return map;\n }\n newSize = 1;\n newRoot = new ArrayMapNode(map.__ownerID, [[k, v]]);\n } else {\n var didChangeSize = MakeRef(CHANGE_LENGTH);\n var didAlter = MakeRef(DID_ALTER);\n newRoot = updateNode(map._root, map.__ownerID, 0, undefined, k, v, didChangeSize, didAlter);\n if (!didAlter.value) {\n return map;\n }\n newSize = map.size + (didChangeSize.value ? v === NOT_SET ? -1 : 1 : 0);\n }\n if (map.__ownerID) {\n map.size = newSize;\n map._root = newRoot;\n map.__hash = undefined;\n map.__altered = true;\n return map;\n }\n return newRoot ? makeMap(newSize, newRoot) : emptyMap();\n }\n\n function updateNode(node, ownerID, shift, keyHash, key, value, didChangeSize, didAlter) {\n if (!node) {\n if (value === NOT_SET) {\n return node;\n }\n SetRef(didAlter);\n SetRef(didChangeSize);\n return new ValueNode(ownerID, keyHash, [key, value]);\n }\n return node.update(ownerID, shift, keyHash, key, value, didChangeSize, didAlter);\n }\n\n function isLeafNode(node) {\n return node.constructor === ValueNode || node.constructor === HashCollisionNode;\n }\n\n function mergeIntoNode(node, ownerID, shift, keyHash, entry) {\n if (node.keyHash === keyHash) {\n return new HashCollisionNode(ownerID, keyHash, [node.entry, entry]);\n }\n\n var idx1 = (shift === 0 ? node.keyHash : node.keyHash >>> shift) & MASK;\n var idx2 = (shift === 0 ? keyHash : keyHash >>> shift) & MASK;\n\n var newNode;\n var nodes = idx1 === idx2 ?\n [mergeIntoNode(node, ownerID, shift + SHIFT, keyHash, entry)] :\n ((newNode = new ValueNode(ownerID, keyHash, entry)), idx1 < idx2 ? [node, newNode] : [newNode, node]);\n\n return new BitmapIndexedNode(ownerID, (1 << idx1) | (1 << idx2), nodes);\n }\n\n function createNodes(ownerID, entries, key, value) {\n if (!ownerID) {\n ownerID = new OwnerID();\n }\n var node = new ValueNode(ownerID, hash(key), [key, value]);\n for (var ii = 0; ii < entries.length; ii++) {\n var entry = entries[ii];\n node = node.update(ownerID, 0, undefined, entry[0], entry[1]);\n }\n return node;\n }\n\n function packNodes(ownerID, nodes, count, excluding) {\n var bitmap = 0;\n var packedII = 0;\n var packedNodes = new Array(count);\n for (var ii = 0, bit = 1, len = nodes.length; ii < len; ii++, bit <<= 1) {\n var node = nodes[ii];\n if (node !== undefined && ii !== excluding) {\n bitmap |= bit;\n packedNodes[packedII++] = node;\n }\n }\n return new BitmapIndexedNode(ownerID, bitmap, packedNodes);\n }\n\n function expandNodes(ownerID, nodes, bitmap, including, node) {\n var count = 0;\n var expandedNodes = new Array(SIZE);\n for (var ii = 0; bitmap !== 0; ii++, bitmap >>>= 1) {\n expandedNodes[ii] = bitmap & 1 ? nodes[count++] : undefined;\n }\n expandedNodes[including] = node;\n return new HashArrayMapNode(ownerID, count + 1, expandedNodes);\n }\n\n function mergeIntoMapWith(map, merger, iterables) {\n var iters = [];\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = KeyedIterable(value);\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n return mergeIntoCollectionWith(map, merger, iters);\n }\n\n function deepMerger(existing, value, key) {\n return existing && existing.mergeDeep && isIterable(value) ?\n existing.mergeDeep(value) :\n is(existing, value) ? existing : value;\n }\n\n function deepMergerWith(merger) {\n return function(existing, value, key) {\n if (existing && existing.mergeDeepWith && isIterable(value)) {\n return existing.mergeDeepWith(merger, value);\n }\n var nextValue = merger(existing, value, key);\n return is(existing, nextValue) ? existing : nextValue;\n };\n }\n\n function mergeIntoCollectionWith(collection, merger, iters) {\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return collection;\n }\n if (collection.size === 0 && !collection.__ownerID && iters.length === 1) {\n return collection.constructor(iters[0]);\n }\n return collection.withMutations(function(collection ) {\n var mergeIntoMap = merger ?\n function(value, key) {\n collection.update(key, NOT_SET, function(existing )\n {return existing === NOT_SET ? value : merger(existing, value, key)}\n );\n } :\n function(value, key) {\n collection.set(key, value);\n }\n for (var ii = 0; ii < iters.length; ii++) {\n iters[ii].forEach(mergeIntoMap);\n }\n });\n }\n\n function updateInDeepMap(existing, keyPathIter, notSetValue, updater) {\n var isNotSet = existing === NOT_SET;\n var step = keyPathIter.next();\n if (step.done) {\n var existingValue = isNotSet ? notSetValue : existing;\n var newValue = updater(existingValue);\n return newValue === existingValue ? existing : newValue;\n }\n invariant(\n isNotSet || (existing && existing.set),\n 'invalid keyPath'\n );\n var key = step.value;\n var nextExisting = isNotSet ? NOT_SET : existing.get(key, NOT_SET);\n var nextUpdated = updateInDeepMap(\n nextExisting,\n keyPathIter,\n notSetValue,\n updater\n );\n return nextUpdated === nextExisting ? existing :\n nextUpdated === NOT_SET ? existing.remove(key) :\n (isNotSet ? emptyMap() : existing).set(key, nextUpdated);\n }\n\n function popCount(x) {\n x = x - ((x >> 1) & 0x55555555);\n x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n x = (x + (x >> 4)) & 0x0f0f0f0f;\n x = x + (x >> 8);\n x = x + (x >> 16);\n return x & 0x7f;\n }\n\n function setIn(array, idx, val, canEdit) {\n var newArray = canEdit ? array : arrCopy(array);\n newArray[idx] = val;\n return newArray;\n }\n\n function spliceIn(array, idx, val, canEdit) {\n var newLen = array.length + 1;\n if (canEdit && idx + 1 === newLen) {\n array[idx] = val;\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n newArray[ii] = val;\n after = -1;\n } else {\n newArray[ii] = array[ii + after];\n }\n }\n return newArray;\n }\n\n function spliceOut(array, idx, canEdit) {\n var newLen = array.length - 1;\n if (canEdit && idx === newLen) {\n array.pop();\n return array;\n }\n var newArray = new Array(newLen);\n var after = 0;\n for (var ii = 0; ii < newLen; ii++) {\n if (ii === idx) {\n after = 1;\n }\n newArray[ii] = array[ii + after];\n }\n return newArray;\n }\n\n var MAX_ARRAY_MAP_SIZE = SIZE / 4;\n var MAX_BITMAP_INDEXED_SIZE = SIZE / 2;\n var MIN_HASH_ARRAY_MAP_SIZE = SIZE / 4;\n\n createClass(List, IndexedCollection);\n\n // @pragma Construction\n\n function List(value) {\n var empty = emptyList();\n if (value === null || value === undefined) {\n return empty;\n }\n if (isList(value)) {\n return value;\n }\n var iter = IndexedIterable(value);\n var size = iter.size;\n if (size === 0) {\n return empty;\n }\n assertNotInfinite(size);\n if (size > 0 && size < SIZE) {\n return makeList(0, size, SHIFT, null, new VNode(iter.toArray()));\n }\n return empty.withMutations(function(list ) {\n list.setSize(size);\n iter.forEach(function(v, i) {return list.set(i, v)});\n });\n }\n\n List.of = function(/*...values*/) {\n return this(arguments);\n };\n\n List.prototype.toString = function() {\n return this.__toString('List [', ']');\n };\n\n // @pragma Access\n\n List.prototype.get = function(index, notSetValue) {\n index = wrapIndex(this, index);\n if (index >= 0 && index < this.size) {\n index += this._origin;\n var node = listNodeFor(this, index);\n return node && node.array[index & MASK];\n }\n return notSetValue;\n };\n\n // @pragma Modification\n\n List.prototype.set = function(index, value) {\n return updateList(this, index, value);\n };\n\n List.prototype.remove = function(index) {\n return !this.has(index) ? this :\n index === 0 ? this.shift() :\n index === this.size - 1 ? this.pop() :\n this.splice(index, 1);\n };\n\n List.prototype.insert = function(index, value) {\n return this.splice(index, 0, value);\n };\n\n List.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = this._origin = this._capacity = 0;\n this._level = SHIFT;\n this._root = this._tail = null;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyList();\n };\n\n List.prototype.push = function(/*...values*/) {\n var values = arguments;\n var oldSize = this.size;\n return this.withMutations(function(list ) {\n setListBounds(list, 0, oldSize + values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(oldSize + ii, values[ii]);\n }\n });\n };\n\n List.prototype.pop = function() {\n return setListBounds(this, 0, -1);\n };\n\n List.prototype.unshift = function(/*...values*/) {\n var values = arguments;\n return this.withMutations(function(list ) {\n setListBounds(list, -values.length);\n for (var ii = 0; ii < values.length; ii++) {\n list.set(ii, values[ii]);\n }\n });\n };\n\n List.prototype.shift = function() {\n return setListBounds(this, 1);\n };\n\n // @pragma Composition\n\n List.prototype.merge = function(/*...iters*/) {\n return mergeIntoListWith(this, undefined, arguments);\n };\n\n List.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, merger, iters);\n };\n\n List.prototype.mergeDeep = function(/*...iters*/) {\n return mergeIntoListWith(this, deepMerger, arguments);\n };\n\n List.prototype.mergeDeepWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return mergeIntoListWith(this, deepMergerWith(merger), iters);\n };\n\n List.prototype.setSize = function(size) {\n return setListBounds(this, 0, size);\n };\n\n // @pragma Iteration\n\n List.prototype.slice = function(begin, end) {\n var size = this.size;\n if (wholeSlice(begin, end, size)) {\n return this;\n }\n return setListBounds(\n this,\n resolveBegin(begin, size),\n resolveEnd(end, size)\n );\n };\n\n List.prototype.__iterator = function(type, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n return new Iterator(function() {\n var value = values();\n return value === DONE ?\n iteratorDone() :\n iteratorValue(type, index++, value);\n });\n };\n\n List.prototype.__iterate = function(fn, reverse) {\n var index = 0;\n var values = iterateList(this, reverse);\n var value;\n while ((value = values()) !== DONE) {\n if (fn(value, index++, this) === false) {\n break;\n }\n }\n return index;\n };\n\n List.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n return this;\n }\n return makeList(this._origin, this._capacity, this._level, this._root, this._tail, ownerID, this.__hash);\n };\n\n\n function isList(maybeList) {\n return !!(maybeList && maybeList[IS_LIST_SENTINEL]);\n }\n\n List.isList = isList;\n\n var IS_LIST_SENTINEL = '@@__IMMUTABLE_LIST__@@';\n\n var ListPrototype = List.prototype;\n ListPrototype[IS_LIST_SENTINEL] = true;\n ListPrototype[DELETE] = ListPrototype.remove;\n ListPrototype.setIn = MapPrototype.setIn;\n ListPrototype.deleteIn =\n ListPrototype.removeIn = MapPrototype.removeIn;\n ListPrototype.update = MapPrototype.update;\n ListPrototype.updateIn = MapPrototype.updateIn;\n ListPrototype.mergeIn = MapPrototype.mergeIn;\n ListPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n ListPrototype.withMutations = MapPrototype.withMutations;\n ListPrototype.asMutable = MapPrototype.asMutable;\n ListPrototype.asImmutable = MapPrototype.asImmutable;\n ListPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n\n function VNode(array, ownerID) {\n this.array = array;\n this.ownerID = ownerID;\n }\n\n // TODO: seems like these methods are very similar\n\n VNode.prototype.removeBefore = function(ownerID, level, index) {\n if (index === level ? 1 << level : 0 || this.array.length === 0) {\n return this;\n }\n var originIndex = (index >>> level) & MASK;\n if (originIndex >= this.array.length) {\n return new VNode([], ownerID);\n }\n var removingFirst = originIndex === 0;\n var newChild;\n if (level > 0) {\n var oldChild = this.array[originIndex];\n newChild = oldChild && oldChild.removeBefore(ownerID, level - SHIFT, index);\n if (newChild === oldChild && removingFirst) {\n return this;\n }\n }\n if (removingFirst && !newChild) {\n return this;\n }\n var editable = editableVNode(this, ownerID);\n if (!removingFirst) {\n for (var ii = 0; ii < originIndex; ii++) {\n editable.array[ii] = undefined;\n }\n }\n if (newChild) {\n editable.array[originIndex] = newChild;\n }\n return editable;\n };\n\n VNode.prototype.removeAfter = function(ownerID, level, index) {\n if (index === (level ? 1 << level : 0) || this.array.length === 0) {\n return this;\n }\n var sizeIndex = ((index - 1) >>> level) & MASK;\n if (sizeIndex >= this.array.length) {\n return this;\n }\n\n var newChild;\n if (level > 0) {\n var oldChild = this.array[sizeIndex];\n newChild = oldChild && oldChild.removeAfter(ownerID, level - SHIFT, index);\n if (newChild === oldChild && sizeIndex === this.array.length - 1) {\n return this;\n }\n }\n\n var editable = editableVNode(this, ownerID);\n editable.array.splice(sizeIndex + 1);\n if (newChild) {\n editable.array[sizeIndex] = newChild;\n }\n return editable;\n };\n\n\n\n var DONE = {};\n\n function iterateList(list, reverse) {\n var left = list._origin;\n var right = list._capacity;\n var tailPos = getTailOffset(right);\n var tail = list._tail;\n\n return iterateNodeOrLeaf(list._root, list._level, 0);\n\n function iterateNodeOrLeaf(node, level, offset) {\n return level === 0 ?\n iterateLeaf(node, offset) :\n iterateNode(node, level, offset);\n }\n\n function iterateLeaf(node, offset) {\n var array = offset === tailPos ? tail && tail.array : node && node.array;\n var from = offset > left ? 0 : left - offset;\n var to = right - offset;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n return array && array[idx];\n };\n }\n\n function iterateNode(node, level, offset) {\n var values;\n var array = node && node.array;\n var from = offset > left ? 0 : (left - offset) >> level;\n var to = ((right - offset) >> level) + 1;\n if (to > SIZE) {\n to = SIZE;\n }\n return function() {\n do {\n if (values) {\n var value = values();\n if (value !== DONE) {\n return value;\n }\n values = null;\n }\n if (from === to) {\n return DONE;\n }\n var idx = reverse ? --to : from++;\n values = iterateNodeOrLeaf(\n array && array[idx], level - SHIFT, offset + (idx << level)\n );\n } while (true);\n };\n }\n }\n\n function makeList(origin, capacity, level, root, tail, ownerID, hash) {\n var list = Object.create(ListPrototype);\n list.size = capacity - origin;\n list._origin = origin;\n list._capacity = capacity;\n list._level = level;\n list._root = root;\n list._tail = tail;\n list.__ownerID = ownerID;\n list.__hash = hash;\n list.__altered = false;\n return list;\n }\n\n var EMPTY_LIST;\n function emptyList() {\n return EMPTY_LIST || (EMPTY_LIST = makeList(0, 0, SHIFT));\n }\n\n function updateList(list, index, value) {\n index = wrapIndex(list, index);\n\n if (index !== index) {\n return list;\n }\n\n if (index >= list.size || index < 0) {\n return list.withMutations(function(list ) {\n index < 0 ?\n setListBounds(list, index).set(0, value) :\n setListBounds(list, 0, index + 1).set(index, value)\n });\n }\n\n index += list._origin;\n\n var newTail = list._tail;\n var newRoot = list._root;\n var didAlter = MakeRef(DID_ALTER);\n if (index >= getTailOffset(list._capacity)) {\n newTail = updateVNode(newTail, list.__ownerID, 0, index, value, didAlter);\n } else {\n newRoot = updateVNode(newRoot, list.__ownerID, list._level, index, value, didAlter);\n }\n\n if (!didAlter.value) {\n return list;\n }\n\n if (list.__ownerID) {\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(list._origin, list._capacity, list._level, newRoot, newTail);\n }\n\n function updateVNode(node, ownerID, level, index, value, didAlter) {\n var idx = (index >>> level) & MASK;\n var nodeHas = node && idx < node.array.length;\n if (!nodeHas && value === undefined) {\n return node;\n }\n\n var newNode;\n\n if (level > 0) {\n var lowerNode = node && node.array[idx];\n var newLowerNode = updateVNode(lowerNode, ownerID, level - SHIFT, index, value, didAlter);\n if (newLowerNode === lowerNode) {\n return node;\n }\n newNode = editableVNode(node, ownerID);\n newNode.array[idx] = newLowerNode;\n return newNode;\n }\n\n if (nodeHas && node.array[idx] === value) {\n return node;\n }\n\n SetRef(didAlter);\n\n newNode = editableVNode(node, ownerID);\n if (value === undefined && idx === newNode.array.length - 1) {\n newNode.array.pop();\n } else {\n newNode.array[idx] = value;\n }\n return newNode;\n }\n\n function editableVNode(node, ownerID) {\n if (ownerID && node && ownerID === node.ownerID) {\n return node;\n }\n return new VNode(node ? node.array.slice() : [], ownerID);\n }\n\n function listNodeFor(list, rawIndex) {\n if (rawIndex >= getTailOffset(list._capacity)) {\n return list._tail;\n }\n if (rawIndex < 1 << (list._level + SHIFT)) {\n var node = list._root;\n var level = list._level;\n while (node && level > 0) {\n node = node.array[(rawIndex >>> level) & MASK];\n level -= SHIFT;\n }\n return node;\n }\n }\n\n function setListBounds(list, begin, end) {\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n end = end | 0;\n }\n var owner = list.__ownerID || new OwnerID();\n var oldOrigin = list._origin;\n var oldCapacity = list._capacity;\n var newOrigin = oldOrigin + begin;\n var newCapacity = end === undefined ? oldCapacity : end < 0 ? oldCapacity + end : oldOrigin + end;\n if (newOrigin === oldOrigin && newCapacity === oldCapacity) {\n return list;\n }\n\n // If it's going to end after it starts, it's empty.\n if (newOrigin >= newCapacity) {\n return list.clear();\n }\n\n var newLevel = list._level;\n var newRoot = list._root;\n\n // New origin might need creating a higher root.\n var offsetShift = 0;\n while (newOrigin + offsetShift < 0) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [undefined, newRoot] : [], owner);\n newLevel += SHIFT;\n offsetShift += 1 << newLevel;\n }\n if (offsetShift) {\n newOrigin += offsetShift;\n oldOrigin += offsetShift;\n newCapacity += offsetShift;\n oldCapacity += offsetShift;\n }\n\n var oldTailOffset = getTailOffset(oldCapacity);\n var newTailOffset = getTailOffset(newCapacity);\n\n // New size might need creating a higher root.\n while (newTailOffset >= 1 << (newLevel + SHIFT)) {\n newRoot = new VNode(newRoot && newRoot.array.length ? [newRoot] : [], owner);\n newLevel += SHIFT;\n }\n\n // Locate or create the new tail.\n var oldTail = list._tail;\n var newTail = newTailOffset < oldTailOffset ?\n listNodeFor(list, newCapacity - 1) :\n newTailOffset > oldTailOffset ? new VNode([], owner) : oldTail;\n\n // Merge Tail into tree.\n if (oldTail && newTailOffset > oldTailOffset && newOrigin < oldCapacity && oldTail.array.length) {\n newRoot = editableVNode(newRoot, owner);\n var node = newRoot;\n for (var level = newLevel; level > SHIFT; level -= SHIFT) {\n var idx = (oldTailOffset >>> level) & MASK;\n node = node.array[idx] = editableVNode(node.array[idx], owner);\n }\n node.array[(oldTailOffset >>> SHIFT) & MASK] = oldTail;\n }\n\n // If the size has been reduced, there's a chance the tail needs to be trimmed.\n if (newCapacity < oldCapacity) {\n newTail = newTail && newTail.removeAfter(owner, 0, newCapacity);\n }\n\n // If the new origin is within the tail, then we do not need a root.\n if (newOrigin >= newTailOffset) {\n newOrigin -= newTailOffset;\n newCapacity -= newTailOffset;\n newLevel = SHIFT;\n newRoot = null;\n newTail = newTail && newTail.removeBefore(owner, 0, newOrigin);\n\n // Otherwise, if the root has been trimmed, garbage collect.\n } else if (newOrigin > oldOrigin || newTailOffset < oldTailOffset) {\n offsetShift = 0;\n\n // Identify the new top root node of the subtree of the old root.\n while (newRoot) {\n var beginIndex = (newOrigin >>> newLevel) & MASK;\n if (beginIndex !== (newTailOffset >>> newLevel) & MASK) {\n break;\n }\n if (beginIndex) {\n offsetShift += (1 << newLevel) * beginIndex;\n }\n newLevel -= SHIFT;\n newRoot = newRoot.array[beginIndex];\n }\n\n // Trim the new sides of the new root.\n if (newRoot && newOrigin > oldOrigin) {\n newRoot = newRoot.removeBefore(owner, newLevel, newOrigin - offsetShift);\n }\n if (newRoot && newTailOffset < oldTailOffset) {\n newRoot = newRoot.removeAfter(owner, newLevel, newTailOffset - offsetShift);\n }\n if (offsetShift) {\n newOrigin -= offsetShift;\n newCapacity -= offsetShift;\n }\n }\n\n if (list.__ownerID) {\n list.size = newCapacity - newOrigin;\n list._origin = newOrigin;\n list._capacity = newCapacity;\n list._level = newLevel;\n list._root = newRoot;\n list._tail = newTail;\n list.__hash = undefined;\n list.__altered = true;\n return list;\n }\n return makeList(newOrigin, newCapacity, newLevel, newRoot, newTail);\n }\n\n function mergeIntoListWith(list, merger, iterables) {\n var iters = [];\n var maxSize = 0;\n for (var ii = 0; ii < iterables.length; ii++) {\n var value = iterables[ii];\n var iter = IndexedIterable(value);\n if (iter.size > maxSize) {\n maxSize = iter.size;\n }\n if (!isIterable(value)) {\n iter = iter.map(function(v ) {return fromJS(v)});\n }\n iters.push(iter);\n }\n if (maxSize > list.size) {\n list = list.setSize(maxSize);\n }\n return mergeIntoCollectionWith(list, merger, iters);\n }\n\n function getTailOffset(size) {\n return size < SIZE ? 0 : (((size - 1) >>> SHIFT) << SHIFT);\n }\n\n createClass(OrderedMap, Map);\n\n // @pragma Construction\n\n function OrderedMap(value) {\n return value === null || value === undefined ? emptyOrderedMap() :\n isOrderedMap(value) ? value :\n emptyOrderedMap().withMutations(function(map ) {\n var iter = KeyedIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v, k) {return map.set(k, v)});\n });\n }\n\n OrderedMap.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedMap.prototype.toString = function() {\n return this.__toString('OrderedMap {', '}');\n };\n\n // @pragma Access\n\n OrderedMap.prototype.get = function(k, notSetValue) {\n var index = this._map.get(k);\n return index !== undefined ? this._list.get(index)[1] : notSetValue;\n };\n\n // @pragma Modification\n\n OrderedMap.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._map.clear();\n this._list.clear();\n return this;\n }\n return emptyOrderedMap();\n };\n\n OrderedMap.prototype.set = function(k, v) {\n return updateOrderedMap(this, k, v);\n };\n\n OrderedMap.prototype.remove = function(k) {\n return updateOrderedMap(this, k, NOT_SET);\n };\n\n OrderedMap.prototype.wasAltered = function() {\n return this._map.wasAltered() || this._list.wasAltered();\n };\n\n OrderedMap.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._list.__iterate(\n function(entry ) {return entry && fn(entry[1], entry[0], this$0)},\n reverse\n );\n };\n\n OrderedMap.prototype.__iterator = function(type, reverse) {\n return this._list.fromEntrySeq().__iterator(type, reverse);\n };\n\n OrderedMap.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n var newList = this._list.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n this._list = newList;\n return this;\n }\n return makeOrderedMap(newMap, newList, ownerID, this.__hash);\n };\n\n\n function isOrderedMap(maybeOrderedMap) {\n return isMap(maybeOrderedMap) && isOrdered(maybeOrderedMap);\n }\n\n OrderedMap.isOrderedMap = isOrderedMap;\n\n OrderedMap.prototype[IS_ORDERED_SENTINEL] = true;\n OrderedMap.prototype[DELETE] = OrderedMap.prototype.remove;\n\n\n\n function makeOrderedMap(map, list, ownerID, hash) {\n var omap = Object.create(OrderedMap.prototype);\n omap.size = map ? map.size : 0;\n omap._map = map;\n omap._list = list;\n omap.__ownerID = ownerID;\n omap.__hash = hash;\n return omap;\n }\n\n var EMPTY_ORDERED_MAP;\n function emptyOrderedMap() {\n return EMPTY_ORDERED_MAP || (EMPTY_ORDERED_MAP = makeOrderedMap(emptyMap(), emptyList()));\n }\n\n function updateOrderedMap(omap, k, v) {\n var map = omap._map;\n var list = omap._list;\n var i = map.get(k);\n var has = i !== undefined;\n var newMap;\n var newList;\n if (v === NOT_SET) { // removed\n if (!has) {\n return omap;\n }\n if (list.size >= SIZE && list.size >= map.size * 2) {\n newList = list.filter(function(entry, idx) {return entry !== undefined && i !== idx});\n newMap = newList.toKeyedSeq().map(function(entry ) {return entry[0]}).flip().toMap();\n if (omap.__ownerID) {\n newMap.__ownerID = newList.__ownerID = omap.__ownerID;\n }\n } else {\n newMap = map.remove(k);\n newList = i === list.size - 1 ? list.pop() : list.set(i, undefined);\n }\n } else {\n if (has) {\n if (v === list.get(i)[1]) {\n return omap;\n }\n newMap = map;\n newList = list.set(i, [k, v]);\n } else {\n newMap = map.set(k, list.size);\n newList = list.set(list.size, [k, v]);\n }\n }\n if (omap.__ownerID) {\n omap.size = newMap.size;\n omap._map = newMap;\n omap._list = newList;\n omap.__hash = undefined;\n return omap;\n }\n return makeOrderedMap(newMap, newList);\n }\n\n createClass(ToKeyedSequence, KeyedSeq);\n function ToKeyedSequence(indexed, useKeys) {\n this._iter = indexed;\n this._useKeys = useKeys;\n this.size = indexed.size;\n }\n\n ToKeyedSequence.prototype.get = function(key, notSetValue) {\n return this._iter.get(key, notSetValue);\n };\n\n ToKeyedSequence.prototype.has = function(key) {\n return this._iter.has(key);\n };\n\n ToKeyedSequence.prototype.valueSeq = function() {\n return this._iter.valueSeq();\n };\n\n ToKeyedSequence.prototype.reverse = function() {var this$0 = this;\n var reversedSequence = reverseFactory(this, true);\n if (!this._useKeys) {\n reversedSequence.valueSeq = function() {return this$0._iter.toSeq().reverse()};\n }\n return reversedSequence;\n };\n\n ToKeyedSequence.prototype.map = function(mapper, context) {var this$0 = this;\n var mappedSequence = mapFactory(this, mapper, context);\n if (!this._useKeys) {\n mappedSequence.valueSeq = function() {return this$0._iter.toSeq().map(mapper, context)};\n }\n return mappedSequence;\n };\n\n ToKeyedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var ii;\n return this._iter.__iterate(\n this._useKeys ?\n function(v, k) {return fn(v, k, this$0)} :\n ((ii = reverse ? resolveSize(this) : 0),\n function(v ) {return fn(v, reverse ? --ii : ii++, this$0)}),\n reverse\n );\n };\n\n ToKeyedSequence.prototype.__iterator = function(type, reverse) {\n if (this._useKeys) {\n return this._iter.__iterator(type, reverse);\n }\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var ii = reverse ? resolveSize(this) : 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, reverse ? --ii : ii++, step.value, step);\n });\n };\n\n ToKeyedSequence.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n createClass(ToIndexedSequence, IndexedSeq);\n function ToIndexedSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToIndexedSequence.prototype.includes = function(value) {\n return this._iter.includes(value);\n };\n\n ToIndexedSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n return this._iter.__iterate(function(v ) {return fn(v, iterations++, this$0)}, reverse);\n };\n\n ToIndexedSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, iterations++, step.value, step)\n });\n };\n\n\n\n createClass(ToSetSequence, SetSeq);\n function ToSetSequence(iter) {\n this._iter = iter;\n this.size = iter.size;\n }\n\n ToSetSequence.prototype.has = function(key) {\n return this._iter.includes(key);\n };\n\n ToSetSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(v ) {return fn(v, v, this$0)}, reverse);\n };\n\n ToSetSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n return step.done ? step :\n iteratorValue(type, step.value, step.value, step);\n });\n };\n\n\n\n createClass(FromEntriesSequence, KeyedSeq);\n function FromEntriesSequence(entries) {\n this._iter = entries;\n this.size = entries.size;\n }\n\n FromEntriesSequence.prototype.entrySeq = function() {\n return this._iter.toSeq();\n };\n\n FromEntriesSequence.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._iter.__iterate(function(entry ) {\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return fn(\n indexedIterable ? entry.get(1) : entry[1],\n indexedIterable ? entry.get(0) : entry[0],\n this$0\n );\n }\n }, reverse);\n };\n\n FromEntriesSequence.prototype.__iterator = function(type, reverse) {\n var iterator = this._iter.__iterator(ITERATE_VALUES, reverse);\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n // Check if entry exists first so array access doesn't throw for holes\n // in the parent iteration.\n if (entry) {\n validateEntry(entry);\n var indexedIterable = isIterable(entry);\n return iteratorValue(\n type,\n indexedIterable ? entry.get(0) : entry[0],\n indexedIterable ? entry.get(1) : entry[1],\n step\n );\n }\n }\n });\n };\n\n\n ToIndexedSequence.prototype.cacheResult =\n ToKeyedSequence.prototype.cacheResult =\n ToSetSequence.prototype.cacheResult =\n FromEntriesSequence.prototype.cacheResult =\n cacheResultThrough;\n\n\n function flipFactory(iterable) {\n var flipSequence = makeSequence(iterable);\n flipSequence._iter = iterable;\n flipSequence.size = iterable.size;\n flipSequence.flip = function() {return iterable};\n flipSequence.reverse = function () {\n var reversedSequence = iterable.reverse.apply(this); // super.reverse()\n reversedSequence.flip = function() {return iterable.reverse()};\n return reversedSequence;\n };\n flipSequence.has = function(key ) {return iterable.includes(key)};\n flipSequence.includes = function(key ) {return iterable.has(key)};\n flipSequence.cacheResult = cacheResultThrough;\n flipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(k, v, this$0) !== false}, reverse);\n }\n flipSequence.__iteratorUncached = function(type, reverse) {\n if (type === ITERATE_ENTRIES) {\n var iterator = iterable.__iterator(type, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (!step.done) {\n var k = step.value[0];\n step.value[0] = step.value[1];\n step.value[1] = k;\n }\n return step;\n });\n }\n return iterable.__iterator(\n type === ITERATE_VALUES ? ITERATE_KEYS : ITERATE_VALUES,\n reverse\n );\n }\n return flipSequence;\n }\n\n\n function mapFactory(iterable, mapper, context) {\n var mappedSequence = makeSequence(iterable);\n mappedSequence.size = iterable.size;\n mappedSequence.has = function(key ) {return iterable.has(key)};\n mappedSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v === NOT_SET ?\n notSetValue :\n mapper.call(context, v, key, iterable);\n };\n mappedSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(\n function(v, k, c) {return fn(mapper.call(context, v, k, c), k, this$0) !== false},\n reverse\n );\n }\n mappedSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n return new Iterator(function() {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n return iteratorValue(\n type,\n key,\n mapper.call(context, entry[1], key, iterable),\n step\n );\n });\n }\n return mappedSequence;\n }\n\n\n function reverseFactory(iterable, useKeys) {\n var reversedSequence = makeSequence(iterable);\n reversedSequence._iter = iterable;\n reversedSequence.size = iterable.size;\n reversedSequence.reverse = function() {return iterable};\n if (iterable.flip) {\n reversedSequence.flip = function () {\n var flipSequence = flipFactory(iterable);\n flipSequence.reverse = function() {return iterable.flip()};\n return flipSequence;\n };\n }\n reversedSequence.get = function(key, notSetValue) \n {return iterable.get(useKeys ? key : -1 - key, notSetValue)};\n reversedSequence.has = function(key )\n {return iterable.has(useKeys ? key : -1 - key)};\n reversedSequence.includes = function(value ) {return iterable.includes(value)};\n reversedSequence.cacheResult = cacheResultThrough;\n reversedSequence.__iterate = function (fn, reverse) {var this$0 = this;\n return iterable.__iterate(function(v, k) {return fn(v, k, this$0)}, !reverse);\n };\n reversedSequence.__iterator =\n function(type, reverse) {return iterable.__iterator(type, !reverse)};\n return reversedSequence;\n }\n\n\n function filterFactory(iterable, predicate, context, useKeys) {\n var filterSequence = makeSequence(iterable);\n if (useKeys) {\n filterSequence.has = function(key ) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && !!predicate.call(context, v, key, iterable);\n };\n filterSequence.get = function(key, notSetValue) {\n var v = iterable.get(key, NOT_SET);\n return v !== NOT_SET && predicate.call(context, v, key, iterable) ?\n v : notSetValue;\n };\n }\n filterSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n }, reverse);\n return iterations;\n };\n filterSequence.__iteratorUncached = function (type, reverse) {\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterations = 0;\n return new Iterator(function() {\n while (true) {\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var key = entry[0];\n var value = entry[1];\n if (predicate.call(context, value, key, iterable)) {\n return iteratorValue(type, useKeys ? key : iterations++, value, step);\n }\n }\n });\n }\n return filterSequence;\n }\n\n\n function countByFactory(iterable, grouper, context) {\n var groups = Map().asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n 0,\n function(a ) {return a + 1}\n );\n });\n return groups.asImmutable();\n }\n\n\n function groupByFactory(iterable, grouper, context) {\n var isKeyedIter = isKeyed(iterable);\n var groups = (isOrdered(iterable) ? OrderedMap() : Map()).asMutable();\n iterable.__iterate(function(v, k) {\n groups.update(\n grouper.call(context, v, k, iterable),\n function(a ) {return (a = a || [], a.push(isKeyedIter ? [k, v] : v), a)}\n );\n });\n var coerce = iterableClass(iterable);\n return groups.map(function(arr ) {return reify(iterable, coerce(arr))});\n }\n\n\n function sliceFactory(iterable, begin, end, useKeys) {\n var originalSize = iterable.size;\n\n // Sanitize begin & end using this shorthand for ToInt32(argument)\n // http://www.ecma-international.org/ecma-262/6.0/#sec-toint32\n if (begin !== undefined) {\n begin = begin | 0;\n }\n if (end !== undefined) {\n if (end === Infinity) {\n end = originalSize;\n } else {\n end = end | 0;\n }\n }\n\n if (wholeSlice(begin, end, originalSize)) {\n return iterable;\n }\n\n var resolvedBegin = resolveBegin(begin, originalSize);\n var resolvedEnd = resolveEnd(end, originalSize);\n\n // begin or end will be NaN if they were provided as negative numbers and\n // this iterable's size is unknown. In that case, cache first so there is\n // a known size and these do not resolve to NaN.\n if (resolvedBegin !== resolvedBegin || resolvedEnd !== resolvedEnd) {\n return sliceFactory(iterable.toSeq().cacheResult(), begin, end, useKeys);\n }\n\n // Note: resolvedEnd is undefined when the original sequence's length is\n // unknown and this slice did not supply an end and should contain all\n // elements after resolvedBegin.\n // In that case, resolvedSize will be NaN and sliceSize will remain undefined.\n var resolvedSize = resolvedEnd - resolvedBegin;\n var sliceSize;\n if (resolvedSize === resolvedSize) {\n sliceSize = resolvedSize < 0 ? 0 : resolvedSize;\n }\n\n var sliceSeq = makeSequence(iterable);\n\n // If iterable.size is undefined, the size of the realized sliceSeq is\n // unknown at this point unless the number of items to slice is 0\n sliceSeq.size = sliceSize === 0 ? sliceSize : iterable.size && sliceSize || undefined;\n\n if (!useKeys && isSeq(iterable) && sliceSize >= 0) {\n sliceSeq.get = function (index, notSetValue) {\n index = wrapIndex(this, index);\n return index >= 0 && index < sliceSize ?\n iterable.get(index + resolvedBegin, notSetValue) :\n notSetValue;\n }\n }\n\n sliceSeq.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (sliceSize === 0) {\n return 0;\n }\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var skipped = 0;\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k) {\n if (!(isSkipping && (isSkipping = skipped++ < resolvedBegin))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0) !== false &&\n iterations !== sliceSize;\n }\n });\n return iterations;\n };\n\n sliceSeq.__iteratorUncached = function(type, reverse) {\n if (sliceSize !== 0 && reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n // Don't bother instantiating parent iterator if taking 0.\n var iterator = sliceSize !== 0 && iterable.__iterator(type, reverse);\n var skipped = 0;\n var iterations = 0;\n return new Iterator(function() {\n while (skipped++ < resolvedBegin) {\n iterator.next();\n }\n if (++iterations > sliceSize) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations - 1, undefined, step);\n } else {\n return iteratorValue(type, iterations - 1, step.value[1], step);\n }\n });\n }\n\n return sliceSeq;\n }\n\n\n function takeWhileFactory(iterable, predicate, context) {\n var takeSequence = makeSequence(iterable);\n takeSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var iterations = 0;\n iterable.__iterate(function(v, k, c) \n {return predicate.call(context, v, k, c) && ++iterations && fn(v, k, this$0)}\n );\n return iterations;\n };\n takeSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var iterating = true;\n return new Iterator(function() {\n if (!iterating) {\n return iteratorDone();\n }\n var step = iterator.next();\n if (step.done) {\n return step;\n }\n var entry = step.value;\n var k = entry[0];\n var v = entry[1];\n if (!predicate.call(context, v, k, this$0)) {\n iterating = false;\n return iteratorDone();\n }\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return takeSequence;\n }\n\n\n function skipWhileFactory(iterable, predicate, context, useKeys) {\n var skipSequence = makeSequence(iterable);\n skipSequence.__iterateUncached = function (fn, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterate(fn, reverse);\n }\n var isSkipping = true;\n var iterations = 0;\n iterable.__iterate(function(v, k, c) {\n if (!(isSkipping && (isSkipping = predicate.call(context, v, k, c)))) {\n iterations++;\n return fn(v, useKeys ? k : iterations - 1, this$0);\n }\n });\n return iterations;\n };\n skipSequence.__iteratorUncached = function(type, reverse) {var this$0 = this;\n if (reverse) {\n return this.cacheResult().__iterator(type, reverse);\n }\n var iterator = iterable.__iterator(ITERATE_ENTRIES, reverse);\n var skipping = true;\n var iterations = 0;\n return new Iterator(function() {\n var step, k, v;\n do {\n step = iterator.next();\n if (step.done) {\n if (useKeys || type === ITERATE_VALUES) {\n return step;\n } else if (type === ITERATE_KEYS) {\n return iteratorValue(type, iterations++, undefined, step);\n } else {\n return iteratorValue(type, iterations++, step.value[1], step);\n }\n }\n var entry = step.value;\n k = entry[0];\n v = entry[1];\n skipping && (skipping = predicate.call(context, v, k, this$0));\n } while (skipping);\n return type === ITERATE_ENTRIES ? step :\n iteratorValue(type, k, v, step);\n });\n };\n return skipSequence;\n }\n\n\n function concatFactory(iterable, values) {\n var isKeyedIterable = isKeyed(iterable);\n var iters = [iterable].concat(values).map(function(v ) {\n if (!isIterable(v)) {\n v = isKeyedIterable ?\n keyedSeqFromValue(v) :\n indexedSeqFromValue(Array.isArray(v) ? v : [v]);\n } else if (isKeyedIterable) {\n v = KeyedIterable(v);\n }\n return v;\n }).filter(function(v ) {return v.size !== 0});\n\n if (iters.length === 0) {\n return iterable;\n }\n\n if (iters.length === 1) {\n var singleton = iters[0];\n if (singleton === iterable ||\n isKeyedIterable && isKeyed(singleton) ||\n isIndexed(iterable) && isIndexed(singleton)) {\n return singleton;\n }\n }\n\n var concatSeq = new ArraySeq(iters);\n if (isKeyedIterable) {\n concatSeq = concatSeq.toKeyedSeq();\n } else if (!isIndexed(iterable)) {\n concatSeq = concatSeq.toSetSeq();\n }\n concatSeq = concatSeq.flatten(true);\n concatSeq.size = iters.reduce(\n function(sum, seq) {\n if (sum !== undefined) {\n var size = seq.size;\n if (size !== undefined) {\n return sum + size;\n }\n }\n },\n 0\n );\n return concatSeq;\n }\n\n\n function flattenFactory(iterable, depth, useKeys) {\n var flatSequence = makeSequence(iterable);\n flatSequence.__iterateUncached = function(fn, reverse) {\n var iterations = 0;\n var stopped = false;\n function flatDeep(iter, currentDepth) {var this$0 = this;\n iter.__iterate(function(v, k) {\n if ((!depth || currentDepth < depth) && isIterable(v)) {\n flatDeep(v, currentDepth + 1);\n } else if (fn(v, useKeys ? k : iterations++, this$0) === false) {\n stopped = true;\n }\n return !stopped;\n }, reverse);\n }\n flatDeep(iterable, 0);\n return iterations;\n }\n flatSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(type, reverse);\n var stack = [];\n var iterations = 0;\n return new Iterator(function() {\n while (iterator) {\n var step = iterator.next();\n if (step.done !== false) {\n iterator = stack.pop();\n continue;\n }\n var v = step.value;\n if (type === ITERATE_ENTRIES) {\n v = v[1];\n }\n if ((!depth || stack.length < depth) && isIterable(v)) {\n stack.push(iterator);\n iterator = v.__iterator(type, reverse);\n } else {\n return useKeys ? step : iteratorValue(type, iterations++, v, step);\n }\n }\n return iteratorDone();\n });\n }\n return flatSequence;\n }\n\n\n function flatMapFactory(iterable, mapper, context) {\n var coerce = iterableClass(iterable);\n return iterable.toSeq().map(\n function(v, k) {return coerce(mapper.call(context, v, k, iterable))}\n ).flatten(true);\n }\n\n\n function interposeFactory(iterable, separator) {\n var interposedSequence = makeSequence(iterable);\n interposedSequence.size = iterable.size && iterable.size * 2 -1;\n interposedSequence.__iterateUncached = function(fn, reverse) {var this$0 = this;\n var iterations = 0;\n iterable.__iterate(function(v, k) \n {return (!iterations || fn(separator, iterations++, this$0) !== false) &&\n fn(v, iterations++, this$0) !== false},\n reverse\n );\n return iterations;\n };\n interposedSequence.__iteratorUncached = function(type, reverse) {\n var iterator = iterable.__iterator(ITERATE_VALUES, reverse);\n var iterations = 0;\n var step;\n return new Iterator(function() {\n if (!step || iterations % 2) {\n step = iterator.next();\n if (step.done) {\n return step;\n }\n }\n return iterations % 2 ?\n iteratorValue(type, iterations++, separator) :\n iteratorValue(type, iterations++, step.value, step);\n });\n };\n return interposedSequence;\n }\n\n\n function sortFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n var isKeyedIterable = isKeyed(iterable);\n var index = 0;\n var entries = iterable.toSeq().map(\n function(v, k) {return [k, v, index++, mapper ? mapper(v, k, iterable) : v]}\n ).toArray();\n entries.sort(function(a, b) {return comparator(a[3], b[3]) || a[2] - b[2]}).forEach(\n isKeyedIterable ?\n function(v, i) { entries[i].length = 2; } :\n function(v, i) { entries[i] = v[1]; }\n );\n return isKeyedIterable ? KeyedSeq(entries) :\n isIndexed(iterable) ? IndexedSeq(entries) :\n SetSeq(entries);\n }\n\n\n function maxFactory(iterable, comparator, mapper) {\n if (!comparator) {\n comparator = defaultComparator;\n }\n if (mapper) {\n var entry = iterable.toSeq()\n .map(function(v, k) {return [v, mapper(v, k, iterable)]})\n .reduce(function(a, b) {return maxCompare(comparator, a[1], b[1]) ? b : a});\n return entry && entry[0];\n } else {\n return iterable.reduce(function(a, b) {return maxCompare(comparator, a, b) ? b : a});\n }\n }\n\n function maxCompare(comparator, a, b) {\n var comp = comparator(b, a);\n // b is considered the new max if the comparator declares them equal, but\n // they are not equal and b is in fact a nullish value.\n return (comp === 0 && b !== a && (b === undefined || b === null || b !== b)) || comp > 0;\n }\n\n\n function zipWithFactory(keyIter, zipper, iters) {\n var zipSequence = makeSequence(keyIter);\n zipSequence.size = new ArraySeq(iters).map(function(i ) {return i.size}).min();\n // Note: this a generic base implementation of __iterate in terms of\n // __iterator which may be more generically useful in the future.\n zipSequence.__iterate = function(fn, reverse) {\n /* generic:\n var iterator = this.__iterator(ITERATE_ENTRIES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n iterations++;\n if (fn(step.value[1], step.value[0], this) === false) {\n break;\n }\n }\n return iterations;\n */\n // indexed:\n var iterator = this.__iterator(ITERATE_VALUES, reverse);\n var step;\n var iterations = 0;\n while (!(step = iterator.next()).done) {\n if (fn(step.value, iterations++, this) === false) {\n break;\n }\n }\n return iterations;\n };\n zipSequence.__iteratorUncached = function(type, reverse) {\n var iterators = iters.map(function(i )\n {return (i = Iterable(i), getIterator(reverse ? i.reverse() : i))}\n );\n var iterations = 0;\n var isDone = false;\n return new Iterator(function() {\n var steps;\n if (!isDone) {\n steps = iterators.map(function(i ) {return i.next()});\n isDone = steps.some(function(s ) {return s.done});\n }\n if (isDone) {\n return iteratorDone();\n }\n return iteratorValue(\n type,\n iterations++,\n zipper.apply(null, steps.map(function(s ) {return s.value}))\n );\n });\n };\n return zipSequence\n }\n\n\n // #pragma Helper Functions\n\n function reify(iter, seq) {\n return isSeq(iter) ? seq : iter.constructor(seq);\n }\n\n function validateEntry(entry) {\n if (entry !== Object(entry)) {\n throw new TypeError('Expected [K, V] tuple: ' + entry);\n }\n }\n\n function resolveSize(iter) {\n assertNotInfinite(iter.size);\n return ensureSize(iter);\n }\n\n function iterableClass(iterable) {\n return isKeyed(iterable) ? KeyedIterable :\n isIndexed(iterable) ? IndexedIterable :\n SetIterable;\n }\n\n function makeSequence(iterable) {\n return Object.create(\n (\n isKeyed(iterable) ? KeyedSeq :\n isIndexed(iterable) ? IndexedSeq :\n SetSeq\n ).prototype\n );\n }\n\n function cacheResultThrough() {\n if (this._iter.cacheResult) {\n this._iter.cacheResult();\n this.size = this._iter.size;\n return this;\n } else {\n return Seq.prototype.cacheResult.call(this);\n }\n }\n\n function defaultComparator(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n function forceIterator(keyPath) {\n var iter = getIterator(keyPath);\n if (!iter) {\n // Array might not be iterable in this environment, so we need a fallback\n // to our wrapped type.\n if (!isArrayLike(keyPath)) {\n throw new TypeError('Expected iterable or array-like: ' + keyPath);\n }\n iter = getIterator(Iterable(keyPath));\n }\n return iter;\n }\n\n createClass(Record, KeyedCollection);\n\n function Record(defaultValues, name) {\n var hasInitialized;\n\n var RecordType = function Record(values) {\n if (values instanceof RecordType) {\n return values;\n }\n if (!(this instanceof RecordType)) {\n return new RecordType(values);\n }\n if (!hasInitialized) {\n hasInitialized = true;\n var keys = Object.keys(defaultValues);\n setProps(RecordTypePrototype, keys);\n RecordTypePrototype.size = keys.length;\n RecordTypePrototype._name = name;\n RecordTypePrototype._keys = keys;\n RecordTypePrototype._defaultValues = defaultValues;\n }\n this._map = Map(values);\n };\n\n var RecordTypePrototype = RecordType.prototype = Object.create(RecordPrototype);\n RecordTypePrototype.constructor = RecordType;\n\n return RecordType;\n }\n\n Record.prototype.toString = function() {\n return this.__toString(recordName(this) + ' {', '}');\n };\n\n // @pragma Access\n\n Record.prototype.has = function(k) {\n return this._defaultValues.hasOwnProperty(k);\n };\n\n Record.prototype.get = function(k, notSetValue) {\n if (!this.has(k)) {\n return notSetValue;\n }\n var defaultVal = this._defaultValues[k];\n return this._map ? this._map.get(k, defaultVal) : defaultVal;\n };\n\n // @pragma Modification\n\n Record.prototype.clear = function() {\n if (this.__ownerID) {\n this._map && this._map.clear();\n return this;\n }\n var RecordType = this.constructor;\n return RecordType._empty || (RecordType._empty = makeRecord(this, emptyMap()));\n };\n\n Record.prototype.set = function(k, v) {\n if (!this.has(k)) {\n throw new Error('Cannot set unknown key \"' + k + '\" on ' + recordName(this));\n }\n if (this._map && !this._map.has(k)) {\n var defaultVal = this._defaultValues[k];\n if (v === defaultVal) {\n return this;\n }\n }\n var newMap = this._map && this._map.set(k, v);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.remove = function(k) {\n if (!this.has(k)) {\n return this;\n }\n var newMap = this._map && this._map.remove(k);\n if (this.__ownerID || newMap === this._map) {\n return this;\n }\n return makeRecord(this, newMap);\n };\n\n Record.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Record.prototype.__iterator = function(type, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterator(type, reverse);\n };\n\n Record.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return KeyedIterable(this._defaultValues).map(function(_, k) {return this$0.get(k)}).__iterate(fn, reverse);\n };\n\n Record.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map && this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return makeRecord(this, newMap, ownerID);\n };\n\n\n var RecordPrototype = Record.prototype;\n RecordPrototype[DELETE] = RecordPrototype.remove;\n RecordPrototype.deleteIn =\n RecordPrototype.removeIn = MapPrototype.removeIn;\n RecordPrototype.merge = MapPrototype.merge;\n RecordPrototype.mergeWith = MapPrototype.mergeWith;\n RecordPrototype.mergeIn = MapPrototype.mergeIn;\n RecordPrototype.mergeDeep = MapPrototype.mergeDeep;\n RecordPrototype.mergeDeepWith = MapPrototype.mergeDeepWith;\n RecordPrototype.mergeDeepIn = MapPrototype.mergeDeepIn;\n RecordPrototype.setIn = MapPrototype.setIn;\n RecordPrototype.update = MapPrototype.update;\n RecordPrototype.updateIn = MapPrototype.updateIn;\n RecordPrototype.withMutations = MapPrototype.withMutations;\n RecordPrototype.asMutable = MapPrototype.asMutable;\n RecordPrototype.asImmutable = MapPrototype.asImmutable;\n\n\n function makeRecord(likeRecord, map, ownerID) {\n var record = Object.create(Object.getPrototypeOf(likeRecord));\n record._map = map;\n record.__ownerID = ownerID;\n return record;\n }\n\n function recordName(record) {\n return record._name || record.constructor.name || 'Record';\n }\n\n function setProps(prototype, names) {\n try {\n names.forEach(setProp.bind(undefined, prototype));\n } catch (error) {\n // Object.defineProperty failed. Probably IE8.\n }\n }\n\n function setProp(prototype, name) {\n Object.defineProperty(prototype, name, {\n get: function() {\n return this.get(name);\n },\n set: function(value) {\n invariant(this.__ownerID, 'Cannot set on an immutable record.');\n this.set(name, value);\n }\n });\n }\n\n createClass(Set, SetCollection);\n\n // @pragma Construction\n\n function Set(value) {\n return value === null || value === undefined ? emptySet() :\n isSet(value) && !isOrdered(value) ? value :\n emptySet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n Set.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Set.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n Set.prototype.toString = function() {\n return this.__toString('Set {', '}');\n };\n\n // @pragma Access\n\n Set.prototype.has = function(value) {\n return this._map.has(value);\n };\n\n // @pragma Modification\n\n Set.prototype.add = function(value) {\n return updateSet(this, this._map.set(value, true));\n };\n\n Set.prototype.remove = function(value) {\n return updateSet(this, this._map.remove(value));\n };\n\n Set.prototype.clear = function() {\n return updateSet(this, this._map.clear());\n };\n\n // @pragma Composition\n\n Set.prototype.union = function() {var iters = SLICE$0.call(arguments, 0);\n iters = iters.filter(function(x ) {return x.size !== 0});\n if (iters.length === 0) {\n return this;\n }\n if (this.size === 0 && !this.__ownerID && iters.length === 1) {\n return this.constructor(iters[0]);\n }\n return this.withMutations(function(set ) {\n for (var ii = 0; ii < iters.length; ii++) {\n SetIterable(iters[ii]).forEach(function(value ) {return set.add(value)});\n }\n });\n };\n\n Set.prototype.intersect = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (!iters.every(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.subtract = function() {var iters = SLICE$0.call(arguments, 0);\n if (iters.length === 0) {\n return this;\n }\n iters = iters.map(function(iter ) {return SetIterable(iter)});\n var originalSet = this;\n return this.withMutations(function(set ) {\n originalSet.forEach(function(value ) {\n if (iters.some(function(iter ) {return iter.includes(value)})) {\n set.remove(value);\n }\n });\n });\n };\n\n Set.prototype.merge = function() {\n return this.union.apply(this, arguments);\n };\n\n Set.prototype.mergeWith = function(merger) {var iters = SLICE$0.call(arguments, 1);\n return this.union.apply(this, iters);\n };\n\n Set.prototype.sort = function(comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator));\n };\n\n Set.prototype.sortBy = function(mapper, comparator) {\n // Late binding\n return OrderedSet(sortFactory(this, comparator, mapper));\n };\n\n Set.prototype.wasAltered = function() {\n return this._map.wasAltered();\n };\n\n Set.prototype.__iterate = function(fn, reverse) {var this$0 = this;\n return this._map.__iterate(function(_, k) {return fn(k, k, this$0)}, reverse);\n };\n\n Set.prototype.__iterator = function(type, reverse) {\n return this._map.map(function(_, k) {return k}).__iterator(type, reverse);\n };\n\n Set.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n var newMap = this._map.__ensureOwner(ownerID);\n if (!ownerID) {\n this.__ownerID = ownerID;\n this._map = newMap;\n return this;\n }\n return this.__make(newMap, ownerID);\n };\n\n\n function isSet(maybeSet) {\n return !!(maybeSet && maybeSet[IS_SET_SENTINEL]);\n }\n\n Set.isSet = isSet;\n\n var IS_SET_SENTINEL = '@@__IMMUTABLE_SET__@@';\n\n var SetPrototype = Set.prototype;\n SetPrototype[IS_SET_SENTINEL] = true;\n SetPrototype[DELETE] = SetPrototype.remove;\n SetPrototype.mergeDeep = SetPrototype.merge;\n SetPrototype.mergeDeepWith = SetPrototype.mergeWith;\n SetPrototype.withMutations = MapPrototype.withMutations;\n SetPrototype.asMutable = MapPrototype.asMutable;\n SetPrototype.asImmutable = MapPrototype.asImmutable;\n\n SetPrototype.__empty = emptySet;\n SetPrototype.__make = makeSet;\n\n function updateSet(set, newMap) {\n if (set.__ownerID) {\n set.size = newMap.size;\n set._map = newMap;\n return set;\n }\n return newMap === set._map ? set :\n newMap.size === 0 ? set.__empty() :\n set.__make(newMap);\n }\n\n function makeSet(map, ownerID) {\n var set = Object.create(SetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_SET;\n function emptySet() {\n return EMPTY_SET || (EMPTY_SET = makeSet(emptyMap()));\n }\n\n createClass(OrderedSet, Set);\n\n // @pragma Construction\n\n function OrderedSet(value) {\n return value === null || value === undefined ? emptyOrderedSet() :\n isOrderedSet(value) ? value :\n emptyOrderedSet().withMutations(function(set ) {\n var iter = SetIterable(value);\n assertNotInfinite(iter.size);\n iter.forEach(function(v ) {return set.add(v)});\n });\n }\n\n OrderedSet.of = function(/*...values*/) {\n return this(arguments);\n };\n\n OrderedSet.fromKeys = function(value) {\n return this(KeyedIterable(value).keySeq());\n };\n\n OrderedSet.prototype.toString = function() {\n return this.__toString('OrderedSet {', '}');\n };\n\n\n function isOrderedSet(maybeOrderedSet) {\n return isSet(maybeOrderedSet) && isOrdered(maybeOrderedSet);\n }\n\n OrderedSet.isOrderedSet = isOrderedSet;\n\n var OrderedSetPrototype = OrderedSet.prototype;\n OrderedSetPrototype[IS_ORDERED_SENTINEL] = true;\n\n OrderedSetPrototype.__empty = emptyOrderedSet;\n OrderedSetPrototype.__make = makeOrderedSet;\n\n function makeOrderedSet(map, ownerID) {\n var set = Object.create(OrderedSetPrototype);\n set.size = map ? map.size : 0;\n set._map = map;\n set.__ownerID = ownerID;\n return set;\n }\n\n var EMPTY_ORDERED_SET;\n function emptyOrderedSet() {\n return EMPTY_ORDERED_SET || (EMPTY_ORDERED_SET = makeOrderedSet(emptyOrderedMap()));\n }\n\n createClass(Stack, IndexedCollection);\n\n // @pragma Construction\n\n function Stack(value) {\n return value === null || value === undefined ? emptyStack() :\n isStack(value) ? value :\n emptyStack().unshiftAll(value);\n }\n\n Stack.of = function(/*...values*/) {\n return this(arguments);\n };\n\n Stack.prototype.toString = function() {\n return this.__toString('Stack [', ']');\n };\n\n // @pragma Access\n\n Stack.prototype.get = function(index, notSetValue) {\n var head = this._head;\n index = wrapIndex(this, index);\n while (head && index--) {\n head = head.next;\n }\n return head ? head.value : notSetValue;\n };\n\n Stack.prototype.peek = function() {\n return this._head && this._head.value;\n };\n\n // @pragma Modification\n\n Stack.prototype.push = function(/*...values*/) {\n if (arguments.length === 0) {\n return this;\n }\n var newSize = this.size + arguments.length;\n var head = this._head;\n for (var ii = arguments.length - 1; ii >= 0; ii--) {\n head = {\n value: arguments[ii],\n next: head\n };\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pushAll = function(iter) {\n iter = IndexedIterable(iter);\n if (iter.size === 0) {\n return this;\n }\n assertNotInfinite(iter.size);\n var newSize = this.size;\n var head = this._head;\n iter.reverse().forEach(function(value ) {\n newSize++;\n head = {\n value: value,\n next: head\n };\n });\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n Stack.prototype.pop = function() {\n return this.slice(1);\n };\n\n Stack.prototype.unshift = function(/*...values*/) {\n return this.push.apply(this, arguments);\n };\n\n Stack.prototype.unshiftAll = function(iter) {\n return this.pushAll(iter);\n };\n\n Stack.prototype.shift = function() {\n return this.pop.apply(this, arguments);\n };\n\n Stack.prototype.clear = function() {\n if (this.size === 0) {\n return this;\n }\n if (this.__ownerID) {\n this.size = 0;\n this._head = undefined;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return emptyStack();\n };\n\n Stack.prototype.slice = function(begin, end) {\n if (wholeSlice(begin, end, this.size)) {\n return this;\n }\n var resolvedBegin = resolveBegin(begin, this.size);\n var resolvedEnd = resolveEnd(end, this.size);\n if (resolvedEnd !== this.size) {\n // super.slice(begin, end);\n return IndexedCollection.prototype.slice.call(this, begin, end);\n }\n var newSize = this.size - resolvedBegin;\n var head = this._head;\n while (resolvedBegin--) {\n head = head.next;\n }\n if (this.__ownerID) {\n this.size = newSize;\n this._head = head;\n this.__hash = undefined;\n this.__altered = true;\n return this;\n }\n return makeStack(newSize, head);\n };\n\n // @pragma Mutability\n\n Stack.prototype.__ensureOwner = function(ownerID) {\n if (ownerID === this.__ownerID) {\n return this;\n }\n if (!ownerID) {\n this.__ownerID = ownerID;\n this.__altered = false;\n return this;\n }\n return makeStack(this.size, this._head, ownerID, this.__hash);\n };\n\n // @pragma Iteration\n\n Stack.prototype.__iterate = function(fn, reverse) {\n if (reverse) {\n return this.reverse().__iterate(fn);\n }\n var iterations = 0;\n var node = this._head;\n while (node) {\n if (fn(node.value, iterations++, this) === false) {\n break;\n }\n node = node.next;\n }\n return iterations;\n };\n\n Stack.prototype.__iterator = function(type, reverse) {\n if (reverse) {\n return this.reverse().__iterator(type);\n }\n var iterations = 0;\n var node = this._head;\n return new Iterator(function() {\n if (node) {\n var value = node.value;\n node = node.next;\n return iteratorValue(type, iterations++, value);\n }\n return iteratorDone();\n });\n };\n\n\n function isStack(maybeStack) {\n return !!(maybeStack && maybeStack[IS_STACK_SENTINEL]);\n }\n\n Stack.isStack = isStack;\n\n var IS_STACK_SENTINEL = '@@__IMMUTABLE_STACK__@@';\n\n var StackPrototype = Stack.prototype;\n StackPrototype[IS_STACK_SENTINEL] = true;\n StackPrototype.withMutations = MapPrototype.withMutations;\n StackPrototype.asMutable = MapPrototype.asMutable;\n StackPrototype.asImmutable = MapPrototype.asImmutable;\n StackPrototype.wasAltered = MapPrototype.wasAltered;\n\n\n function makeStack(size, head, ownerID, hash) {\n var map = Object.create(StackPrototype);\n map.size = size;\n map._head = head;\n map.__ownerID = ownerID;\n map.__hash = hash;\n map.__altered = false;\n return map;\n }\n\n var EMPTY_STACK;\n function emptyStack() {\n return EMPTY_STACK || (EMPTY_STACK = makeStack(0));\n }\n\n /**\n * Contributes additional methods to a constructor\n */\n function mixin(ctor, methods) {\n var keyCopier = function(key ) { ctor.prototype[key] = methods[key]; };\n Object.keys(methods).forEach(keyCopier);\n Object.getOwnPropertySymbols &&\n Object.getOwnPropertySymbols(methods).forEach(keyCopier);\n return ctor;\n }\n\n Iterable.Iterator = Iterator;\n\n mixin(Iterable, {\n\n // ### Conversion to other types\n\n toArray: function() {\n assertNotInfinite(this.size);\n var array = new Array(this.size || 0);\n this.valueSeq().__iterate(function(v, i) { array[i] = v; });\n return array;\n },\n\n toIndexedSeq: function() {\n return new ToIndexedSequence(this);\n },\n\n toJS: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJS === 'function' ? value.toJS() : value}\n ).__toJS();\n },\n\n toJSON: function() {\n return this.toSeq().map(\n function(value ) {return value && typeof value.toJSON === 'function' ? value.toJSON() : value}\n ).__toJS();\n },\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, true);\n },\n\n toMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return Map(this.toKeyedSeq());\n },\n\n toObject: function() {\n assertNotInfinite(this.size);\n var object = {};\n this.__iterate(function(v, k) { object[k] = v; });\n return object;\n },\n\n toOrderedMap: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedMap(this.toKeyedSeq());\n },\n\n toOrderedSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return OrderedSet(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSet: function() {\n // Use Late Binding here to solve the circular dependency.\n return Set(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toSetSeq: function() {\n return new ToSetSequence(this);\n },\n\n toSeq: function() {\n return isIndexed(this) ? this.toIndexedSeq() :\n isKeyed(this) ? this.toKeyedSeq() :\n this.toSetSeq();\n },\n\n toStack: function() {\n // Use Late Binding here to solve the circular dependency.\n return Stack(isKeyed(this) ? this.valueSeq() : this);\n },\n\n toList: function() {\n // Use Late Binding here to solve the circular dependency.\n return List(isKeyed(this) ? this.valueSeq() : this);\n },\n\n\n // ### Common JavaScript methods and properties\n\n toString: function() {\n return '[Iterable]';\n },\n\n __toString: function(head, tail) {\n if (this.size === 0) {\n return head + tail;\n }\n return head + ' ' + this.toSeq().map(this.__toStringMapper).join(', ') + ' ' + tail;\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n concat: function() {var values = SLICE$0.call(arguments, 0);\n return reify(this, concatFactory(this, values));\n },\n\n includes: function(searchValue) {\n return this.some(function(value ) {return is(value, searchValue)});\n },\n\n entries: function() {\n return this.__iterator(ITERATE_ENTRIES);\n },\n\n every: function(predicate, context) {\n assertNotInfinite(this.size);\n var returnValue = true;\n this.__iterate(function(v, k, c) {\n if (!predicate.call(context, v, k, c)) {\n returnValue = false;\n return false;\n }\n });\n return returnValue;\n },\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, true));\n },\n\n find: function(predicate, context, notSetValue) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[1] : notSetValue;\n },\n\n forEach: function(sideEffect, context) {\n assertNotInfinite(this.size);\n return this.__iterate(context ? sideEffect.bind(context) : sideEffect);\n },\n\n join: function(separator) {\n assertNotInfinite(this.size);\n separator = separator !== undefined ? '' + separator : ',';\n var joined = '';\n var isFirst = true;\n this.__iterate(function(v ) {\n isFirst ? (isFirst = false) : (joined += separator);\n joined += v !== null && v !== undefined ? v.toString() : '';\n });\n return joined;\n },\n\n keys: function() {\n return this.__iterator(ITERATE_KEYS);\n },\n\n map: function(mapper, context) {\n return reify(this, mapFactory(this, mapper, context));\n },\n\n reduce: function(reducer, initialReduction, context) {\n assertNotInfinite(this.size);\n var reduction;\n var useFirst;\n if (arguments.length < 2) {\n useFirst = true;\n } else {\n reduction = initialReduction;\n }\n this.__iterate(function(v, k, c) {\n if (useFirst) {\n useFirst = false;\n reduction = v;\n } else {\n reduction = reducer.call(context, reduction, v, k, c);\n }\n });\n return reduction;\n },\n\n reduceRight: function(reducer, initialReduction, context) {\n var reversed = this.toKeyedSeq().reverse();\n return reversed.reduce.apply(reversed, arguments);\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, true));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, true));\n },\n\n some: function(predicate, context) {\n return !this.every(not(predicate), context);\n },\n\n sort: function(comparator) {\n return reify(this, sortFactory(this, comparator));\n },\n\n values: function() {\n return this.__iterator(ITERATE_VALUES);\n },\n\n\n // ### More sequential methods\n\n butLast: function() {\n return this.slice(0, -1);\n },\n\n isEmpty: function() {\n return this.size !== undefined ? this.size === 0 : !this.some(function() {return true});\n },\n\n count: function(predicate, context) {\n return ensureSize(\n predicate ? this.toSeq().filter(predicate, context) : this\n );\n },\n\n countBy: function(grouper, context) {\n return countByFactory(this, grouper, context);\n },\n\n equals: function(other) {\n return deepEqual(this, other);\n },\n\n entrySeq: function() {\n var iterable = this;\n if (iterable._cache) {\n // We cache as an entries array, so we can just return the cache!\n return new ArraySeq(iterable._cache);\n }\n var entriesSequence = iterable.toSeq().map(entryMapper).toIndexedSeq();\n entriesSequence.fromEntrySeq = function() {return iterable.toSeq()};\n return entriesSequence;\n },\n\n filterNot: function(predicate, context) {\n return this.filter(not(predicate), context);\n },\n\n findEntry: function(predicate, context, notSetValue) {\n var found = notSetValue;\n this.__iterate(function(v, k, c) {\n if (predicate.call(context, v, k, c)) {\n found = [k, v];\n return false;\n }\n });\n return found;\n },\n\n findKey: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry && entry[0];\n },\n\n findLast: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().find(predicate, context, notSetValue);\n },\n\n findLastEntry: function(predicate, context, notSetValue) {\n return this.toKeyedSeq().reverse().findEntry(predicate, context, notSetValue);\n },\n\n findLastKey: function(predicate, context) {\n return this.toKeyedSeq().reverse().findKey(predicate, context);\n },\n\n first: function() {\n return this.find(returnTrue);\n },\n\n flatMap: function(mapper, context) {\n return reify(this, flatMapFactory(this, mapper, context));\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, true));\n },\n\n fromEntrySeq: function() {\n return new FromEntriesSequence(this);\n },\n\n get: function(searchKey, notSetValue) {\n return this.find(function(_, key) {return is(key, searchKey)}, undefined, notSetValue);\n },\n\n getIn: function(searchKeyPath, notSetValue) {\n var nested = this;\n // Note: in an ES6 environment, we would prefer:\n // for (var key of searchKeyPath) {\n var iter = forceIterator(searchKeyPath);\n var step;\n while (!(step = iter.next()).done) {\n var key = step.value;\n nested = nested && nested.get ? nested.get(key, NOT_SET) : NOT_SET;\n if (nested === NOT_SET) {\n return notSetValue;\n }\n }\n return nested;\n },\n\n groupBy: function(grouper, context) {\n return groupByFactory(this, grouper, context);\n },\n\n has: function(searchKey) {\n return this.get(searchKey, NOT_SET) !== NOT_SET;\n },\n\n hasIn: function(searchKeyPath) {\n return this.getIn(searchKeyPath, NOT_SET) !== NOT_SET;\n },\n\n isSubset: function(iter) {\n iter = typeof iter.includes === 'function' ? iter : Iterable(iter);\n return this.every(function(value ) {return iter.includes(value)});\n },\n\n isSuperset: function(iter) {\n iter = typeof iter.isSubset === 'function' ? iter : Iterable(iter);\n return iter.isSubset(this);\n },\n\n keyOf: function(searchValue) {\n return this.findKey(function(value ) {return is(value, searchValue)});\n },\n\n keySeq: function() {\n return this.toSeq().map(keyMapper).toIndexedSeq();\n },\n\n last: function() {\n return this.toSeq().reverse().first();\n },\n\n lastKeyOf: function(searchValue) {\n return this.toKeyedSeq().reverse().keyOf(searchValue);\n },\n\n max: function(comparator) {\n return maxFactory(this, comparator);\n },\n\n maxBy: function(mapper, comparator) {\n return maxFactory(this, comparator, mapper);\n },\n\n min: function(comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator);\n },\n\n minBy: function(mapper, comparator) {\n return maxFactory(this, comparator ? neg(comparator) : defaultNegComparator, mapper);\n },\n\n rest: function() {\n return this.slice(1);\n },\n\n skip: function(amount) {\n return this.slice(Math.max(0, amount));\n },\n\n skipLast: function(amount) {\n return reify(this, this.toSeq().reverse().skip(amount).reverse());\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, true));\n },\n\n skipUntil: function(predicate, context) {\n return this.skipWhile(not(predicate), context);\n },\n\n sortBy: function(mapper, comparator) {\n return reify(this, sortFactory(this, comparator, mapper));\n },\n\n take: function(amount) {\n return this.slice(0, Math.max(0, amount));\n },\n\n takeLast: function(amount) {\n return reify(this, this.toSeq().reverse().take(amount).reverse());\n },\n\n takeWhile: function(predicate, context) {\n return reify(this, takeWhileFactory(this, predicate, context));\n },\n\n takeUntil: function(predicate, context) {\n return this.takeWhile(not(predicate), context);\n },\n\n valueSeq: function() {\n return this.toIndexedSeq();\n },\n\n\n // ### Hashable Object\n\n hashCode: function() {\n return this.__hash || (this.__hash = hashIterable(this));\n }\n\n\n // ### Internal\n\n // abstract __iterate(fn, reverse)\n\n // abstract __iterator(type, reverse)\n });\n\n // var IS_ITERABLE_SENTINEL = '@@__IMMUTABLE_ITERABLE__@@';\n // var IS_KEYED_SENTINEL = '@@__IMMUTABLE_KEYED__@@';\n // var IS_INDEXED_SENTINEL = '@@__IMMUTABLE_INDEXED__@@';\n // var IS_ORDERED_SENTINEL = '@@__IMMUTABLE_ORDERED__@@';\n\n var IterablePrototype = Iterable.prototype;\n IterablePrototype[IS_ITERABLE_SENTINEL] = true;\n IterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.values;\n IterablePrototype.__toJS = IterablePrototype.toArray;\n IterablePrototype.__toStringMapper = quoteString;\n IterablePrototype.inspect =\n IterablePrototype.toSource = function() { return this.toString(); };\n IterablePrototype.chain = IterablePrototype.flatMap;\n IterablePrototype.contains = IterablePrototype.includes;\n\n mixin(KeyedIterable, {\n\n // ### More sequential methods\n\n flip: function() {\n return reify(this, flipFactory(this));\n },\n\n mapEntries: function(mapper, context) {var this$0 = this;\n var iterations = 0;\n return reify(this,\n this.toSeq().map(\n function(v, k) {return mapper.call(context, [k, v], iterations++, this$0)}\n ).fromEntrySeq()\n );\n },\n\n mapKeys: function(mapper, context) {var this$0 = this;\n return reify(this,\n this.toSeq().flip().map(\n function(k, v) {return mapper.call(context, k, v, this$0)}\n ).flip()\n );\n }\n\n });\n\n var KeyedIterablePrototype = KeyedIterable.prototype;\n KeyedIterablePrototype[IS_KEYED_SENTINEL] = true;\n KeyedIterablePrototype[ITERATOR_SYMBOL] = IterablePrototype.entries;\n KeyedIterablePrototype.__toJS = IterablePrototype.toObject;\n KeyedIterablePrototype.__toStringMapper = function(v, k) {return JSON.stringify(k) + ': ' + quoteString(v)};\n\n\n\n mixin(IndexedIterable, {\n\n // ### Conversion to other types\n\n toKeyedSeq: function() {\n return new ToKeyedSequence(this, false);\n },\n\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n filter: function(predicate, context) {\n return reify(this, filterFactory(this, predicate, context, false));\n },\n\n findIndex: function(predicate, context) {\n var entry = this.findEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n indexOf: function(searchValue) {\n var key = this.keyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n lastIndexOf: function(searchValue) {\n var key = this.lastKeyOf(searchValue);\n return key === undefined ? -1 : key;\n },\n\n reverse: function() {\n return reify(this, reverseFactory(this, false));\n },\n\n slice: function(begin, end) {\n return reify(this, sliceFactory(this, begin, end, false));\n },\n\n splice: function(index, removeNum /*, ...values*/) {\n var numArgs = arguments.length;\n removeNum = Math.max(removeNum | 0, 0);\n if (numArgs === 0 || (numArgs === 2 && !removeNum)) {\n return this;\n }\n // If index is negative, it should resolve relative to the size of the\n // collection. However size may be expensive to compute if not cached, so\n // only call count() if the number is in fact negative.\n index = resolveBegin(index, index < 0 ? this.count() : this.size);\n var spliced = this.slice(0, index);\n return reify(\n this,\n numArgs === 1 ?\n spliced :\n spliced.concat(arrCopy(arguments, 2), this.slice(index + removeNum))\n );\n },\n\n\n // ### More collection methods\n\n findLastIndex: function(predicate, context) {\n var entry = this.findLastEntry(predicate, context);\n return entry ? entry[0] : -1;\n },\n\n first: function() {\n return this.get(0);\n },\n\n flatten: function(depth) {\n return reify(this, flattenFactory(this, depth, false));\n },\n\n get: function(index, notSetValue) {\n index = wrapIndex(this, index);\n return (index < 0 || (this.size === Infinity ||\n (this.size !== undefined && index > this.size))) ?\n notSetValue :\n this.find(function(_, key) {return key === index}, undefined, notSetValue);\n },\n\n has: function(index) {\n index = wrapIndex(this, index);\n return index >= 0 && (this.size !== undefined ?\n this.size === Infinity || index < this.size :\n this.indexOf(index) !== -1\n );\n },\n\n interpose: function(separator) {\n return reify(this, interposeFactory(this, separator));\n },\n\n interleave: function(/*...iterables*/) {\n var iterables = [this].concat(arrCopy(arguments));\n var zipped = zipWithFactory(this.toSeq(), IndexedSeq.of, iterables);\n var interleaved = zipped.flatten(true);\n if (zipped.size) {\n interleaved.size = zipped.size * iterables.length;\n }\n return reify(this, interleaved);\n },\n\n keySeq: function() {\n return Range(0, this.size);\n },\n\n last: function() {\n return this.get(-1);\n },\n\n skipWhile: function(predicate, context) {\n return reify(this, skipWhileFactory(this, predicate, context, false));\n },\n\n zip: function(/*, ...iterables */) {\n var iterables = [this].concat(arrCopy(arguments));\n return reify(this, zipWithFactory(this, defaultZipper, iterables));\n },\n\n zipWith: function(zipper/*, ...iterables */) {\n var iterables = arrCopy(arguments);\n iterables[0] = this;\n return reify(this, zipWithFactory(this, zipper, iterables));\n }\n\n });\n\n IndexedIterable.prototype[IS_INDEXED_SENTINEL] = true;\n IndexedIterable.prototype[IS_ORDERED_SENTINEL] = true;\n\n\n\n mixin(SetIterable, {\n\n // ### ES6 Collection methods (ES6 Array and Map)\n\n get: function(value, notSetValue) {\n return this.has(value) ? value : notSetValue;\n },\n\n includes: function(value) {\n return this.has(value);\n },\n\n\n // ### More sequential methods\n\n keySeq: function() {\n return this.valueSeq();\n }\n\n });\n\n SetIterable.prototype.has = IterablePrototype.includes;\n SetIterable.prototype.contains = SetIterable.prototype.includes;\n\n\n // Mixin subclasses\n\n mixin(KeyedSeq, KeyedIterable.prototype);\n mixin(IndexedSeq, IndexedIterable.prototype);\n mixin(SetSeq, SetIterable.prototype);\n\n mixin(KeyedCollection, KeyedIterable.prototype);\n mixin(IndexedCollection, IndexedIterable.prototype);\n mixin(SetCollection, SetIterable.prototype);\n\n\n // #pragma Helper functions\n\n function keyMapper(v, k) {\n return k;\n }\n\n function entryMapper(v, k) {\n return [k, v];\n }\n\n function not(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n }\n }\n\n function neg(predicate) {\n return function() {\n return -predicate.apply(this, arguments);\n }\n }\n\n function quoteString(value) {\n return typeof value === 'string' ? JSON.stringify(value) : String(value);\n }\n\n function defaultZipper() {\n return arrCopy(arguments);\n }\n\n function defaultNegComparator(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n }\n\n function hashIterable(iterable) {\n if (iterable.size === Infinity) {\n return 0;\n }\n var ordered = isOrdered(iterable);\n var keyed = isKeyed(iterable);\n var h = ordered ? 1 : 0;\n var size = iterable.__iterate(\n keyed ?\n ordered ?\n function(v, k) { h = 31 * h + hashMerge(hash(v), hash(k)) | 0; } :\n function(v, k) { h = h + hashMerge(hash(v), hash(k)) | 0; } :\n ordered ?\n function(v ) { h = 31 * h + hash(v) | 0; } :\n function(v ) { h = h + hash(v) | 0; }\n );\n return murmurHashOfSize(size, h);\n }\n\n function murmurHashOfSize(size, h) {\n h = imul(h, 0xCC9E2D51);\n h = imul(h << 15 | h >>> -15, 0x1B873593);\n h = imul(h << 13 | h >>> -13, 5);\n h = (h + 0xE6546B64 | 0) ^ size;\n h = imul(h ^ h >>> 16, 0x85EBCA6B);\n h = imul(h ^ h >>> 13, 0xC2B2AE35);\n h = smi(h ^ h >>> 16);\n return h;\n }\n\n function hashMerge(a, b) {\n return a ^ b + 0x9E3779B9 + (a << 6) + (a >> 2) | 0; // int\n }\n\n var Immutable = {\n\n Iterable: Iterable,\n\n Seq: Seq,\n Collection: Collection,\n Map: Map,\n OrderedMap: OrderedMap,\n List: List,\n Stack: Stack,\n Set: Set,\n OrderedSet: OrderedSet,\n\n Record: Record,\n Range: Range,\n Repeat: Repeat,\n\n is: is,\n fromJS: fromJS\n\n };\n\n return Immutable;\n\n}));","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","import { JsonTree } from '@react-awesome-query-builder/ui';\n\nimport {\n DataFrame,\n DataQuery,\n DataSourceJsonData,\n MetricFindValue,\n SelectableValue,\n TimeRange,\n toOption as toOptionFromData,\n} from '@grafana/data';\nimport { CompletionItemKind, EditorMode, LanguageDefinition } from '@grafana/experimental';\n\nimport { QueryWithDefaults } from './defaults';\nimport {\n QueryEditorFunctionExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n} from './expressions';\n\nexport interface SqlQueryForInterpolation {\n dataset?: string;\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n refId: string;\n hide?: boolean;\n}\n\nexport interface SQLConnectionLimits {\n maxOpenConns: number;\n maxIdleConns: number;\n maxIdleConnsAuto: boolean;\n connMaxLifetime: number;\n}\n\nexport interface SQLOptions extends SQLConnectionLimits, DataSourceJsonData {\n tlsAuth: boolean;\n tlsAuthWithCACert: boolean;\n timezone: string;\n tlsSkipVerify: boolean;\n user: string;\n database: string;\n url: string;\n timeInterval: string;\n}\n\nexport enum QueryFormat {\n Timeseries = 'time_series',\n Table = 'table',\n}\n\nexport interface SQLQuery extends DataQuery {\n alias?: string;\n format?: QueryFormat;\n rawSql?: string;\n dataset?: string;\n table?: string;\n sql?: SQLExpression;\n editorMode?: EditorMode;\n rawQuery?: boolean;\n}\n\nexport interface NameValue {\n name: string;\n value: string;\n}\n\nexport type SQLFilters = NameValue[];\n\nexport interface SQLExpression {\n columns?: QueryEditorFunctionExpression[];\n whereJsonTree?: JsonTree;\n whereString?: string;\n filters?: SQLFilters;\n groupBy?: QueryEditorGroupByExpression[];\n orderBy?: QueryEditorPropertyExpression;\n orderByDirection?: 'ASC' | 'DESC';\n limit?: number;\n offset?: number;\n}\n\nexport interface TableSchema {\n name?: string;\n schema?: TableFieldSchema[];\n}\n\nexport interface TableFieldSchema {\n name: string;\n description?: string;\n type: string;\n repeated: boolean;\n schema: TableFieldSchema[];\n}\n\nexport interface QueryRowFilter {\n filter: boolean;\n group: boolean;\n order: boolean;\n preview: boolean;\n}\n\nexport const QUERY_FORMAT_OPTIONS = [\n { label: 'Time series', value: QueryFormat.Timeseries },\n { label: 'Table', value: QueryFormat.Table },\n];\n\nconst backWardToOption = (value: string) => ({ label: value, value });\n\nexport const toOption = toOptionFromData ?? backWardToOption;\n\nexport interface ResourceSelectorProps {\n disabled?: boolean;\n className?: string;\n applyDefault?: boolean;\n}\n// React Awesome Query builder field types.\n// These are responsible for rendering the correct UI for the field.\nexport type RAQBFieldTypes = 'text' | 'number' | 'boolean' | 'datetime' | 'date' | 'time';\n\nexport interface SQLSelectableValue extends SelectableValue {\n type?: string;\n raqbFieldType?: RAQBFieldTypes;\n}\n\nexport interface DB {\n init?: (datasourceId?: string) => Promise<boolean>;\n datasets: () => Promise<string[]>;\n tables: (dataset?: string) => Promise<string[]>;\n fields: (query: SQLQuery, order?: boolean) => Promise<SQLSelectableValue[]>;\n validateQuery: (query: SQLQuery, range?: TimeRange) => Promise<ValidationResults>;\n dsID: () => number;\n dispose?: (dsID?: string) => void;\n lookup?: (path?: string) => Promise<Array<{ name: string; completion: string }>>;\n getEditorLanguageDefinition: () => LanguageDefinition;\n toRawSql: (query: SQLQuery) => string;\n functions?: () => string[];\n}\n\nexport interface QueryEditorProps {\n db: DB;\n query: QueryWithDefaults;\n onChange: (query: SQLQuery) => void;\n range?: TimeRange;\n}\n\nexport interface ValidationResults {\n query: SQLQuery;\n rawSql?: string;\n error: string;\n isError: boolean;\n isValid: boolean;\n statistics?: {\n TotalBytesProcessed: number;\n } | null;\n}\n\nexport interface SqlQueryModel {\n quoteLiteral: (v: string) => string;\n}\n\nexport interface ResponseParser {\n transformMetricFindResponse: (frame: DataFrame) => MetricFindValue[];\n}\n\nexport interface MetaDefinition {\n name: string;\n completion?: string;\n kind: CompletionItemKind;\n}\n\nexport type SQLDialect = 'postgres' | 'influx' | 'other';\n","import { uniqBy } from 'lodash';\n\nimport { DataFrame, MetricFindValue } from '@grafana/data';\n\nimport type { ResponseParser as ResponseParserType } from './types';\n\nexport class ResponseParser implements ResponseParserType {\n transformMetricFindResponse(frame: DataFrame): MetricFindValue[] {\n const values: MetricFindValue[] = [];\n const textField = frame.fields.find((f) => f.name === '__text');\n const valueField = frame.fields.find((f) => f.name === '__value');\n\n if (textField && valueField) {\n for (let i = 0; i < textField.values.length; i++) {\n values.push({ text: '' + textField.values[i], value: '' + valueField.values[i] });\n }\n } else {\n for (const field of frame.fields) {\n for (const value of field.values) {\n values.push({ text: value });\n }\n }\n }\n\n return uniqBy(values, 'text');\n }\n}\n","export enum QueryEditorPropertyType {\n String = 'string',\n}\n\nexport interface QueryEditorProperty {\n type: QueryEditorPropertyType;\n name?: string;\n}\n\nexport type QueryEditorOperatorType = string | boolean | number;\ntype QueryEditorOperatorValueType = QueryEditorOperatorType | QueryEditorOperatorType[];\n\nexport interface QueryEditorOperator<T extends QueryEditorOperatorValueType> {\n name?: string;\n value?: T;\n}\n\nexport interface QueryEditorOperatorExpression {\n type: QueryEditorExpressionType.Operator;\n property: QueryEditorProperty;\n operator: QueryEditorOperator<QueryEditorOperatorValueType>;\n}\n\nexport interface QueryEditorArrayExpression {\n type: QueryEditorExpressionType.And | QueryEditorExpressionType.Or;\n expressions: QueryEditorExpression[] | QueryEditorArrayExpression[];\n}\n\nexport interface QueryEditorPropertyExpression {\n type: QueryEditorExpressionType.Property;\n property: QueryEditorProperty;\n}\n\nexport enum QueryEditorExpressionType {\n Property = 'property',\n Operator = 'operator',\n Or = 'or',\n And = 'and',\n GroupBy = 'groupBy',\n Function = 'function',\n FunctionParameter = 'functionParameter',\n}\n\nexport type QueryEditorExpression =\n | QueryEditorArrayExpression\n | QueryEditorPropertyExpression\n | QueryEditorGroupByExpression\n | QueryEditorFunctionExpression\n | QueryEditorFunctionParameterExpression\n | QueryEditorOperatorExpression;\n\nexport interface QueryEditorGroupByExpression {\n type: QueryEditorExpressionType.GroupBy;\n property: QueryEditorProperty;\n}\n\nexport interface QueryEditorFunctionExpression {\n type: QueryEditorExpressionType.Function;\n name?: string;\n alias?: string;\n parameters?: QueryEditorFunctionParameterExpression[];\n}\n\nexport interface QueryEditorFunctionParameterExpression {\n type: QueryEditorExpressionType.FunctionParameter;\n name?: string;\n}\n","import {\n QueryEditorExpressionType,\n QueryEditorFunctionExpression,\n QueryEditorGroupByExpression,\n QueryEditorPropertyExpression,\n QueryEditorPropertyType,\n} from '../expressions';\nimport { SQLExpression } from '../types';\n\nexport function createSelectClause(sqlColumns: NonNullable<SQLExpression['columns']>): string {\n const columns = sqlColumns.map((c) => {\n let rawColumn = '';\n if (c.name && c.alias) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)}) AS ${c.alias}`;\n } else if (c.name) {\n rawColumn += `${c.name}(${c.parameters?.map((p) => `${p.name}`)})`;\n } else if (c.alias) {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)} AS ${c.alias}`;\n } else {\n rawColumn += `${c.parameters?.map((p) => `${p.name}`)}`;\n }\n return rawColumn;\n });\n return `SELECT ${columns.join(', ')} `;\n}\n\nexport const haveColumns = (columns: SQLExpression['columns']): columns is NonNullable<SQLExpression['columns']> => {\n if (!columns) {\n return false;\n }\n\n const haveColumn = columns.some((c) => c.parameters?.length || c.parameters?.some((p) => p.name));\n const haveFunction = columns.some((c) => c.name);\n return haveColumn || haveFunction;\n};\n\n/**\n * Creates a GroupByExpression for a specified field\n */\nexport function setGroupByField(field?: string): QueryEditorGroupByExpression {\n return {\n type: QueryEditorExpressionType.GroupBy,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\n/**\n * Creates a PropertyExpression for a specified field\n */\nexport function setPropertyField(field?: string): QueryEditorPropertyExpression {\n return {\n type: QueryEditorExpressionType.Property,\n property: {\n type: QueryEditorPropertyType.String,\n name: field,\n },\n };\n}\n\nexport function createFunctionField(functionName?: string): QueryEditorFunctionExpression {\n return {\n type: QueryEditorExpressionType.Function,\n name: functionName,\n parameters: [],\n };\n}\n","import { EditorMode } from '@grafana/experimental';\n\nimport { QueryFormat, SQLQuery } from './types';\nimport { createFunctionField, setGroupByField } from './utils/sql.utils';\n\nexport function applyQueryDefaults(q?: SQLQuery): SQLQuery {\n let editorMode = q?.editorMode || EditorMode.Builder;\n\n // Switching to code editor if the query was created before visual query builder was introduced.\n if (q?.editorMode === undefined && q?.rawSql !== undefined) {\n editorMode = EditorMode.Code;\n }\n\n const result: SQLQuery = {\n ...q,\n refId: q?.refId || 'A',\n format: q?.format !== undefined ? q.format : QueryFormat.Table,\n rawSql: q?.rawSql || '',\n editorMode,\n sql: q?.sql ?? {\n columns: [createFunctionField()],\n groupBy: [setGroupByField()],\n limit: 50,\n },\n };\n\n return result;\n}\n\nexport type QueryWithDefaults = ReturnType<typeof applyQueryDefaults>;\n","import React, { useRef, useEffect } from 'react';\n\nimport { Button, Icon, Modal } from '@grafana/ui';\n\ntype ConfirmModalProps = {\n isOpen: boolean;\n onCancel?: () => void;\n onDiscard?: () => void;\n onCopy?: () => void;\n};\nexport function ConfirmModal({ isOpen, onCancel, onDiscard, onCopy }: ConfirmModalProps) {\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Moved from grafana/ui\n useEffect(() => {\n // for some reason autoFocus property did no work on this button, but this does\n if (isOpen) {\n buttonRef.current?.focus();\n }\n }, [isOpen]);\n\n return (\n <Modal\n title={\n <div className=\"modal-header-title\">\n <Icon name=\"exclamation-triangle\" size=\"lg\" />\n <span className=\"p-l-1\">Warning</span>\n </div>\n }\n onDismiss={onCancel}\n isOpen={isOpen}\n >\n <p>\n Builder mode does not display changes made in code. The query builder will display the last changes you made in\n builder mode.\n </p>\n <p>Do you want to copy your code to the clipboard?</p>\n <Modal.ButtonRow>\n <Button type=\"button\" variant=\"secondary\" onClick={onCancel} fill=\"outline\">\n Cancel\n </Button>\n <Button variant=\"destructive\" type=\"button\" onClick={onDiscard} ref={buttonRef}>\n Discard code and switch\n </Button>\n <Button variant=\"primary\" onClick={onCopy}>\n Copy code and switch\n </Button>\n </Modal.ButtonRow>\n </Modal>\n );\n}\n","import { config } from '@grafana/runtime';\n\nexport const isSqlDatasourceDatabaseSelectionFeatureFlagEnabled = () => {\n return !!config.featureToggles.sqlDatasourceDatabaseSelection;\n};\n","import React, { useEffect } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { SelectableValue } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { DB, ResourceSelectorProps, SQLDialect, toOption } from '../types';\n\nimport { isSqlDatasourceDatabaseSelectionFeatureFlagEnabled } from './QueryEditorFeatureFlag.utils';\n\nexport interface DatasetSelectorProps extends ResourceSelectorProps {\n db: DB;\n dataset: string | undefined;\n preconfiguredDataset: string;\n dialect: SQLDialect;\n onChange: (v: SelectableValue) => void;\n}\n\nexport const DatasetSelector = ({ dataset, db, dialect, onChange, preconfiguredDataset }: DatasetSelectorProps) => {\n /* \n The behavior of this component - for MSSQL and MySQL datasources - is based on whether the user chose to create a datasource\n with or without a default database (preconfiguredDataset). If the user configured a default database, this selector\n should only allow that single preconfigured database option to be selected. If the user chose to NOT assign/configure a default database,\n then the user should be able to use this component to choose between multiple databases available to the datasource.\n */\n // `hasPreconfigCondition` is true if either 1) the sql datasource has a preconfigured default database,\n // OR if 2) the datasource is Postgres. In either case the only option available to the user is the preconfigured database.\n const hasPreconfigCondition = !!preconfiguredDataset || dialect === 'postgres';\n\n const state = useAsync(async () => {\n if (isSqlDatasourceDatabaseSelectionFeatureFlagEnabled()) {\n // If a default database is already configured for a MSSQL or MySQL data source, OR the data source is Postgres, no need to fetch other databases.\n if (hasPreconfigCondition) {\n // Set the current database to the preconfigured database.\n onChange(toOption(preconfiguredDataset));\n return [toOption(preconfiguredDataset)];\n }\n }\n\n // If there is no preconfigured database, but there is a selected dataset, set the current database to the selected dataset.\n if (dataset) {\n onChange(toOption(dataset));\n }\n\n // Otherwise, fetch all databases available to the datasource.\n const datasets = await db.datasets();\n return datasets.map(toOption);\n }, []);\n\n useEffect(() => {\n if (!isSqlDatasourceDatabaseSelectionFeatureFlagEnabled()) {\n // Set default dataset when values are fetched\n if (!dataset) {\n if (state.value && state.value[0]) {\n onChange(state.value[0]);\n }\n } else {\n if (state.value && state.value.find((v) => v.value === dataset) === undefined) {\n // if value is set and newly fetched values does not contain selected value\n if (state.value.length > 0) {\n onChange(state.value[0]);\n }\n }\n }\n }\n }, [state.value, onChange, dataset]);\n\n return (\n <Select\n aria-label=\"Dataset selector\"\n value={dataset}\n options={state.value}\n onChange={onChange}\n disabled={state.loading}\n isLoading={state.loading}\n menuShouldPortal={true}\n />\n );\n};\n","import React from 'react';\nimport { useAsync } from 'react-use';\n\nimport { SelectableValue, toOption } from '@grafana/data';\nimport { Select } from '@grafana/ui';\n\nimport { DB, ResourceSelectorProps } from '../types';\n\nexport interface TableSelectorProps extends ResourceSelectorProps {\n db: DB;\n table: string | undefined;\n dataset: string | undefined;\n onChange: (v: SelectableValue) => void;\n}\n\nexport const TableSelector = ({ db, dataset, table, className, onChange }: TableSelectorProps) => {\n const state = useAsync(async () => {\n // No need to attempt to fetch tables for an unknown dataset.\n if (!dataset) {\n return [];\n }\n\n const tables = await db.tables(dataset);\n return tables.map(toOption);\n }, [dataset]);\n\n return (\n <Select\n className={className}\n disabled={state.loading}\n aria-label=\"Table selector\"\n value={table}\n options={state.value}\n onChange={onChange}\n isLoading={state.loading}\n menuShouldPortal={true}\n placeholder={state.loading ? 'Loading tables' : 'Select table'}\n />\n );\n};\n","import React, { useCallback, useState } from 'react';\nimport { useCopyToClipboard } from 'react-use';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport { SelectableValue } from '@grafana/data';\nimport { EditorField, EditorHeader, EditorMode, EditorRow, FlexItem, InlineSelect } from '@grafana/experimental';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Button, InlineSwitch, RadioButtonGroup, Tooltip, Space } from '@grafana/ui';\n\nimport { QueryWithDefaults } from '../defaults';\nimport { SQLQuery, QueryFormat, QueryRowFilter, QUERY_FORMAT_OPTIONS, DB, SQLDialect } from '../types';\n\nimport { ConfirmModal } from './ConfirmModal';\nimport { DatasetSelector } from './DatasetSelector';\nimport { isSqlDatasourceDatabaseSelectionFeatureFlagEnabled } from './QueryEditorFeatureFlag.utils';\nimport { TableSelector } from './TableSelector';\n\nexport interface QueryHeaderProps {\n db: DB;\n dialect: SQLDialect;\n isQueryRunnable: boolean;\n onChange: (query: SQLQuery) => void;\n onQueryRowChange: (queryRowFilter: QueryRowFilter) => void;\n onRunQuery: () => void;\n preconfiguredDataset: string;\n query: QueryWithDefaults;\n queryRowFilter: QueryRowFilter;\n}\n\nconst editorModes = [\n { label: 'Builder', value: EditorMode.Builder },\n { label: 'Code', value: EditorMode.Code },\n];\n\nexport function QueryHeader({\n db,\n dialect,\n isQueryRunnable,\n onChange,\n onQueryRowChange,\n onRunQuery,\n preconfiguredDataset,\n query,\n queryRowFilter,\n}: QueryHeaderProps) {\n const { editorMode } = query;\n const [_, copyToClipboard] = useCopyToClipboard();\n const [showConfirm, setShowConfirm] = useState(false);\n const toRawSql = db.toRawSql;\n\n const onEditorModeChange = useCallback(\n (newEditorMode: EditorMode) => {\n if (newEditorMode === EditorMode.Code) {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Code,\n });\n }\n\n if (editorMode === EditorMode.Code) {\n setShowConfirm(true);\n return;\n }\n onChange({ ...query, editorMode: newEditorMode });\n },\n [editorMode, onChange, query]\n );\n\n const onFormatChange = (e: SelectableValue) => {\n const next = { ...query, format: e.value !== undefined ? e.value : QueryFormat.Table };\n\n reportInteraction('grafana_sql_format_changed', {\n datasource: query.datasource?.type,\n selectedFormat: next.format,\n });\n onChange(next);\n };\n\n const onDatasetChange = (e: SelectableValue) => {\n if (e.value === query.dataset) {\n return;\n }\n\n const next = {\n ...query,\n dataset: e.value,\n table: undefined,\n sql: undefined,\n rawSql: '',\n };\n\n onChange(next);\n };\n\n const onTableChange = (e: SelectableValue) => {\n if (e.value === query.table) {\n return;\n }\n\n const next: SQLQuery = {\n ...query,\n table: e.value,\n sql: undefined,\n rawSql: '',\n };\n\n onChange(next);\n };\n\n const datasetDropdownIsAvailable = () => {\n if (dialect === 'influx') {\n return false;\n }\n // If the feature flag is DISABLED, && the datasource is Postgres (`dialect = 'postgres`),\n // we want to hide the dropdown - as per previous behavior.\n if (!isSqlDatasourceDatabaseSelectionFeatureFlagEnabled() && dialect === 'postgres') {\n return false;\n }\n\n return true;\n };\n\n return (\n <>\n <EditorHeader>\n <InlineSelect\n label=\"Format\"\n value={query.format}\n placeholder=\"Select format\"\n menuShouldPortal\n onChange={onFormatChange}\n options={QUERY_FORMAT_OPTIONS}\n />\n\n {editorMode === EditorMode.Builder && (\n <>\n <InlineSwitch\n id={`sql-filter-${uuidv4()}}`}\n label=\"Filter\"\n transparent={true}\n showLabel={true}\n value={queryRowFilter.filter}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_filter_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, filter: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-group-${uuidv4()}}`}\n label=\"Group\"\n transparent={true}\n showLabel={true}\n value={queryRowFilter.group}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_group_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, group: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-order-${uuidv4()}}`}\n label=\"Order\"\n transparent={true}\n showLabel={true}\n value={queryRowFilter.order}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_order_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, order: ev.target.checked });\n }}\n />\n\n <InlineSwitch\n id={`sql-preview-${uuidv4()}}`}\n label=\"Preview\"\n transparent={true}\n showLabel={true}\n value={queryRowFilter.preview}\n onChange={(ev) => {\n if (!(ev.target instanceof HTMLInputElement)) {\n return;\n }\n\n reportInteraction('grafana_sql_preview_toggled', {\n datasource: query.datasource?.type,\n displayed: ev.target.checked,\n });\n\n onQueryRowChange({ ...queryRowFilter, preview: ev.target.checked });\n }}\n />\n </>\n )}\n\n <FlexItem grow={1} />\n\n {isQueryRunnable ? (\n <Button icon=\"play\" variant=\"primary\" size=\"sm\" onClick={() => onRunQuery()}>\n Run query\n </Button>\n ) : (\n <Tooltip\n theme=\"error\"\n content={\n <>\n Your query is invalid. Check below for details. <br />\n However, you can still run this query.\n </>\n }\n placement=\"top\"\n >\n <Button icon=\"exclamation-triangle\" variant=\"secondary\" size=\"sm\" onClick={() => onRunQuery()}>\n Run query\n </Button>\n </Tooltip>\n )}\n\n <RadioButtonGroup options={editorModes} size=\"sm\" value={editorMode} onChange={onEditorModeChange} />\n\n <ConfirmModal\n isOpen={showConfirm}\n onCopy={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'copy',\n });\n\n setShowConfirm(false);\n copyToClipboard(query.rawSql!);\n onChange({\n ...query,\n rawSql: toRawSql(query),\n editorMode: EditorMode.Builder,\n });\n }}\n onDiscard={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'discard',\n });\n\n setShowConfirm(false);\n onChange({\n ...query,\n rawSql: toRawSql(query),\n editorMode: EditorMode.Builder,\n });\n }}\n onCancel={() => {\n reportInteraction('grafana_sql_editor_mode_changed', {\n datasource: query.datasource?.type,\n selectedEditorMode: EditorMode.Builder,\n type: 'cancel',\n });\n\n setShowConfirm(false);\n }}\n />\n </EditorHeader>\n\n {editorMode === EditorMode.Builder && (\n <>\n <Space v={0.5} />\n <EditorRow>\n {datasetDropdownIsAvailable() && (\n <EditorField label=\"Dataset\" width={25}>\n <DatasetSelector\n db={db}\n dataset={query.dataset}\n dialect={dialect}\n preconfiguredDataset={preconfiguredDataset}\n onChange={onDatasetChange}\n />\n </EditorField>\n )}\n <EditorField label=\"Table\" width={25}>\n <TableSelector\n db={db}\n dataset={query.dataset || preconfiguredDataset}\n table={query.table}\n onChange={onTableChange}\n />\n </EditorField>\n </EditorRow>\n </>\n )}\n </>\n );\n}\n","import { TokenType, StatementPosition } from '../types.js';\n\nfunction getStatementPosition(currentToken, statementPositionResolversRegistry) {\n var _a;\n const previousNonWhiteSpace = currentToken == null ? void 0 : currentToken.getPreviousNonWhiteSpaceToken();\n const previousKeyword = currentToken == null ? void 0 : currentToken.getPreviousKeyword();\n const previousIsSlash = (_a = currentToken == null ? void 0 : currentToken.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _a.is(TokenType.Operator, \"/\");\n const resolvers = statementPositionResolversRegistry.list();\n const positions = [];\n for (const resolver of resolvers) {\n if (resolver.resolve(currentToken, previousKeyword != null ? previousKeyword : null, previousNonWhiteSpace != null ? previousNonWhiteSpace : null, Boolean(previousIsSlash))) {\n positions.push(resolver.id);\n }\n }\n if (positions.length === 0) {\n return [StatementPosition.Unknown];\n }\n return positions;\n}\n\nexport { getStatementPosition };\n//# sourceMappingURL=getStatementPosition.js.map\n","import { CompletionItemKind, CompletionItemPriority } from '../types.js';\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst toCompletionItem = (value, range, rest = {}) => {\n const item = __spreadValues({\n label: value,\n insertText: value,\n kind: CompletionItemKind.Field,\n sortText: CompletionItemPriority.Medium,\n range\n }, rest);\n return item;\n};\n\nexport { toCompletionItem };\n//# sourceMappingURL=toCompletionItem.js.map\n","import { toCompletionItem } from '../utils/toCompletionItem.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst getStandardSuggestions = async (monaco, currentToken, suggestionKinds, positionContext, suggestionsRegistry) => {\n let suggestions = [];\n const invalidRangeToken = (currentToken == null ? void 0 : currentToken.isWhiteSpace()) || (currentToken == null ? void 0 : currentToken.isParenthesis()) || (currentToken == null ? void 0 : currentToken.isIdentifier()) && currentToken.value.endsWith(\".\");\n const range = invalidRangeToken || !(currentToken == null ? void 0 : currentToken.range) ? monaco.Range.fromPositions(positionContext.position) : currentToken == null ? void 0 : currentToken.range;\n for (const suggestion of [...new Set(suggestionKinds)]) {\n const registeredSuggestions = suggestionsRegistry.getIfExists(suggestion);\n if (registeredSuggestions) {\n const su = await registeredSuggestions.suggestions(__spreadProps(__spreadValues({}, positionContext), { range }), monaco);\n suggestions = [...suggestions, ...su.map((s) => toCompletionItem(s.label, range, __spreadValues({ kind: s.kind }, s)))];\n }\n }\n return Promise.resolve(suggestions);\n};\n\nexport { getStandardSuggestions };\n//# sourceMappingURL=getStandardSuggestions.js.map\n","import { StatementPosition, SuggestionKind } from '../types.js';\n\nconst initSuggestionsKindRegistry = () => {\n return [\n {\n id: StatementPosition.SelectKeyword,\n name: StatementPosition.SelectKeyword,\n kind: [SuggestionKind.SelectKeyword]\n },\n {\n id: StatementPosition.WithKeyword,\n name: StatementPosition.WithKeyword,\n kind: [SuggestionKind.WithKeyword]\n },\n {\n id: StatementPosition.AfterSelectKeyword,\n name: StatementPosition.AfterSelectKeyword,\n kind: [\n SuggestionKind.StarWildCard,\n SuggestionKind.FunctionsWithArguments,\n SuggestionKind.Columns,\n SuggestionKind.SelectMacro\n ]\n },\n {\n id: StatementPosition.AfterSelectFuncFirstArgument,\n name: StatementPosition.AfterSelectFuncFirstArgument,\n kind: [SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterGroupByFunctionArgument,\n name: StatementPosition.AfterGroupByFunctionArgument,\n kind: [SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterWhereFunctionArgument,\n name: StatementPosition.AfterWhereFunctionArgument,\n kind: [SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterSelectArguments,\n name: StatementPosition.AfterSelectArguments,\n kind: [SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterFromKeyword,\n name: StatementPosition.AfterFromKeyword,\n kind: [SuggestionKind.Schemas, SuggestionKind.Tables, SuggestionKind.TableMacro]\n },\n {\n id: StatementPosition.AfterSchema,\n name: StatementPosition.AfterSchema,\n kind: [SuggestionKind.Tables, SuggestionKind.TableMacro]\n },\n {\n id: StatementPosition.SelectAlias,\n name: StatementPosition.SelectAlias,\n kind: [SuggestionKind.Columns, SuggestionKind.FunctionsWithArguments]\n },\n {\n id: StatementPosition.FromKeyword,\n name: StatementPosition.FromKeyword,\n kind: [SuggestionKind.FromKeyword]\n },\n {\n id: StatementPosition.AfterFrom,\n name: StatementPosition.AfterFrom,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword\n ]\n },\n {\n id: StatementPosition.AfterTable,\n name: StatementPosition.AfterTable,\n kind: [\n SuggestionKind.WhereKeyword,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword\n ]\n },\n {\n id: StatementPosition.WhereKeyword,\n name: StatementPosition.WhereKeyword,\n kind: [SuggestionKind.Columns, SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables]\n },\n {\n id: StatementPosition.WhereComparisonOperator,\n name: StatementPosition.WhereComparisonOperator,\n kind: [SuggestionKind.ComparisonOperators]\n },\n {\n id: StatementPosition.WhereValue,\n name: StatementPosition.WhereValue,\n kind: [SuggestionKind.FilterMacro, SuggestionKind.TemplateVariables]\n },\n {\n id: StatementPosition.AfterWhereValue,\n name: StatementPosition.AfterWhereValue,\n kind: [\n SuggestionKind.LogicalOperators,\n SuggestionKind.GroupByKeywords,\n SuggestionKind.OrderByKeywords,\n SuggestionKind.LimitKeyword,\n SuggestionKind.Columns,\n SuggestionKind.TemplateVariables\n ]\n },\n {\n id: StatementPosition.AfterGroupByKeywords,\n name: StatementPosition.AfterGroupByKeywords,\n kind: [SuggestionKind.GroupMacro, SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterGroupBy,\n name: StatementPosition.AfterGroupBy,\n kind: [SuggestionKind.OrderByKeywords, SuggestionKind.LimitKeyword]\n },\n {\n id: StatementPosition.AfterOrderByKeywords,\n name: StatementPosition.AfterOrderByKeywords,\n kind: [SuggestionKind.Columns]\n },\n {\n id: StatementPosition.AfterOrderByFunction,\n name: StatementPosition.AfterOrderByFunction,\n kind: [SuggestionKind.SortOrderDirectionKeyword, SuggestionKind.LimitKeyword]\n },\n {\n id: StatementPosition.AfterOrderByDirection,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.LimitKeyword]\n },\n {\n id: StatementPosition.AfterIsOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NotKeyword, SuggestionKind.NullValue, SuggestionKind.BoolValues]\n },\n {\n id: StatementPosition.AfterIsNotOperator,\n name: StatementPosition.AfterOrderByDirection,\n kind: [SuggestionKind.NullValue, SuggestionKind.BoolValues]\n }\n ];\n};\n\nexport { initSuggestionsKindRegistry };\n//# sourceMappingURL=suggestionsKindRegistry.js.map\n","function getSuggestionKinds(statementPosition, suggestionsKindRegistry) {\n let result = [];\n for (let i = 0; i < statementPosition.length; i++) {\n const exists = suggestionsKindRegistry.getIfExists(statementPosition[i]);\n if (exists) {\n result = result.concat(exists.kind);\n }\n }\n return result;\n}\n\nexport { getSuggestionKinds };\n//# sourceMappingURL=getSuggestionKind.js.map\n","import { TokenType } from '../types.js';\n\nclass LinkedToken {\n constructor(type, value, range, previous, next) {\n this.type = type;\n this.value = value;\n this.range = range;\n this.previous = previous;\n this.next = next;\n }\n isKeyword() {\n return this.type === TokenType.Keyword;\n }\n isWhiteSpace() {\n return this.type === TokenType.Whitespace;\n }\n isParenthesis() {\n return this.type === TokenType.Parenthesis;\n }\n isIdentifier() {\n return this.type === TokenType.Identifier;\n }\n isString() {\n return this.type === TokenType.String;\n }\n isNumber() {\n return this.type === TokenType.Number;\n }\n isDoubleQuotedString() {\n return this.type === TokenType.Type;\n }\n isVariable() {\n return this.type === TokenType.Variable;\n }\n isFunction() {\n return this.type === TokenType.Function;\n }\n isOperator() {\n return this.type === TokenType.Operator;\n }\n isTemplateVariable() {\n return this.type === TokenType.Variable;\n }\n is(type, value) {\n const isType = this.type === type;\n return value !== void 0 ? isType && compareTokenWithValue(type, this, value) : isType;\n }\n getPreviousNonWhiteSpaceToken() {\n let curr = this.previous;\n while (curr != null) {\n if (!curr.isWhiteSpace()) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n getPreviousOfType(type, value) {\n let curr = this.previous;\n while (curr != null) {\n const isType = curr.type === type;\n if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n getPreviousUntil(type, ignoreTypes, value) {\n let tokens = [];\n let curr = this.previous;\n while (curr != null) {\n if (ignoreTypes.some((t) => t === (curr == null ? void 0 : curr.type))) {\n curr = curr.previous;\n continue;\n }\n const isType = curr.type === type;\n if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return tokens;\n }\n if (!curr.isWhiteSpace()) {\n tokens.push(curr);\n }\n curr = curr.previous;\n }\n return tokens;\n }\n getNextUntil(type, ignoreTypes, value) {\n let tokens = [];\n let curr = this.next;\n while (curr != null) {\n if (ignoreTypes.some((t) => t === (curr == null ? void 0 : curr.type))) {\n curr = curr.next;\n continue;\n }\n const isType = curr.type === type;\n if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return tokens;\n }\n if (!curr.isWhiteSpace()) {\n tokens.push(curr);\n }\n curr = curr.next;\n }\n return tokens;\n }\n getPreviousKeyword() {\n let curr = this.previous;\n while (curr != null) {\n if (curr.isKeyword()) {\n return curr;\n }\n curr = curr.previous;\n }\n return null;\n }\n getNextNonWhiteSpaceToken() {\n let curr = this.next;\n while (curr != null) {\n if (!curr.isWhiteSpace()) {\n return curr;\n }\n curr = curr.next;\n }\n return null;\n }\n getNextOfType(type, value) {\n let curr = this.next;\n while (curr != null) {\n const isType = curr.type === type;\n if (value !== void 0 ? isType && compareTokenWithValue(type, curr, value) : isType) {\n return curr;\n }\n curr = curr.next;\n }\n return null;\n }\n}\nfunction compareTokenWithValue(type, token, value) {\n return type === TokenType.Keyword || type === TokenType.Operator ? token.value.toLowerCase() === value.toString().toLowerCase() : token.value === value;\n}\n\nexport { LinkedToken };\n//# sourceMappingURL=LinkedToken.js.map\n","import { TokenType } from '../types.js';\nimport { LinkedToken } from './LinkedToken.js';\n\nfunction linkedTokenBuilder(monaco, model, position, languageId = \"sql\") {\n var _a;\n let current = null;\n let previous = null;\n const tokensPerLine = monaco.editor.tokenize((_a = model.getValue()) != null ? _a : \"\", languageId);\n for (let lineIndex = 0; lineIndex < tokensPerLine.length; lineIndex++) {\n const tokens = tokensPerLine[lineIndex];\n if (!tokens.length && previous) {\n const token = {\n offset: 0,\n type: TokenType.Whitespace,\n language: languageId,\n _tokenBrand: void 0\n };\n tokens.push(token);\n }\n for (let columnIndex = 0; columnIndex < tokens.length; columnIndex++) {\n const token = tokens[columnIndex];\n let endColumn = tokens.length > columnIndex + 1 ? tokens[columnIndex + 1].offset + 1 : model.getLineLength(lineIndex + 1) + 1;\n const range = {\n startLineNumber: lineIndex + 1,\n startColumn: token.offset === 0 ? 0 : token.offset + 1,\n endLineNumber: lineIndex + 1,\n endColumn\n };\n const value = model.getValueInRange(range);\n const sqlToken = new LinkedToken(token.type, value, range, previous, null);\n if (monaco.Range.containsPosition(range, position)) {\n current = sqlToken;\n }\n if (previous) {\n previous.next = sqlToken;\n }\n previous = sqlToken;\n }\n }\n return current;\n}\n\nexport { linkedTokenBuilder };\n//# sourceMappingURL=linkedTokenBuilder.js.map\n","import { FROM, SELECT } from '../standardSql/language.js';\nimport { TokenType } from '../types.js';\n\nconst getSelectToken = (currentToken) => {\n var _a;\n return (_a = currentToken == null ? void 0 : currentToken.getPreviousOfType(TokenType.Keyword, SELECT)) != null ? _a : null;\n};\nconst getFromKeywordToken = (currentToken) => {\n const selectToken = getSelectToken(currentToken);\n return selectToken == null ? void 0 : selectToken.getNextOfType(TokenType.Keyword, FROM);\n};\nconst getTableToken = (currentToken) => {\n var _a;\n const fromToken = getFromKeywordToken(currentToken);\n const nextNonWhiteSpace = fromToken == null ? void 0 : fromToken.getNextNonWhiteSpaceToken();\n if (nextNonWhiteSpace == null ? void 0 : nextNonWhiteSpace.isVariable()) {\n return null;\n } else if ((nextNonWhiteSpace == null ? void 0 : nextNonWhiteSpace.isKeyword()) && ((_a = nextNonWhiteSpace.next) == null ? void 0 : _a.is(TokenType.Parenthesis, \"(\"))) {\n return null;\n } else {\n return nextNonWhiteSpace;\n }\n};\nconst defaultTableNameParser = (token) => {\n const parts = token == null ? void 0 : token.value.split(\".\");\n if ((parts == null ? void 0 : parts.length) === 1) {\n return { table: parts[0] };\n } else if ((parts == null ? void 0 : parts.length) === 2) {\n return { schema: parts[0], table: parts[1] };\n }\n return null;\n};\n\nexport { defaultTableNameParser, getFromKeywordToken, getSelectToken, getTableToken };\n//# sourceMappingURL=tokenUtils.js.map\n","const TRIGGER_SUGGEST = {\n id: \"editor.action.triggerSuggest\",\n title: \"\"\n};\n\nexport { TRIGGER_SUGGEST };\n//# sourceMappingURL=commands.js.map\n","import { getTemplateSrv } from '@grafana/runtime';\nimport { TRIGGER_SUGGEST } from '../utils/commands.js';\nimport { SuggestionKind, CompletionItemInsertTextRule, CompletionItemKind, CompletionItemPriority, MacroType, OperatorType } from '../types.js';\nimport { ASC, DESC } from './language.js';\n\nconst initStandardSuggestions = (functions, operators, macros) => () => [\n {\n id: SuggestionKind.SelectKeyword,\n name: SuggestionKind.SelectKeyword,\n suggestions: (_, m) => Promise.resolve([\n {\n label: `SELECT <column>`,\n insertText: `SELECT $0`,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Snippet,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium\n },\n {\n label: `SELECT <column> FROM <table>`,\n insertText: `SELECT $2 FROM $1`,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Snippet,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium\n }\n ])\n },\n {\n id: SuggestionKind.TemplateVariables,\n name: SuggestionKind.TemplateVariables,\n suggestions: (_, m) => {\n const templateSrv = getTemplateSrv();\n if (!templateSrv) {\n return Promise.resolve([]);\n }\n return Promise.resolve(\n templateSrv.getVariables().map((variable) => {\n const label = `$${variable.name}`;\n const val = templateSrv.replace(label);\n return {\n label,\n detail: `(Template Variable) ${val}`,\n kind: CompletionItemKind.Snippet,\n documentation: `(Template Variable) ${val}`,\n insertText: `\\\\$${variable.name} `,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Low\n };\n })\n );\n }\n },\n {\n id: SuggestionKind.SelectMacro,\n name: SuggestionKind.SelectMacro,\n suggestions: (_, m) => Promise.resolve([\n ...macros.list().filter((m2) => m2.type === MacroType.Value || m2.type === MacroType.Column).map(createMacroSuggestionItem)\n ])\n },\n {\n id: SuggestionKind.TableMacro,\n name: SuggestionKind.TableMacro,\n suggestions: (_, m) => Promise.resolve([\n ...macros.list().filter((m2) => m2.type === MacroType.Table).map(createMacroSuggestionItem)\n ])\n },\n {\n id: SuggestionKind.GroupMacro,\n name: SuggestionKind.GroupMacro,\n suggestions: (_, m) => Promise.resolve([\n ...macros.list().filter((m2) => m2.type === MacroType.Group).map(createMacroSuggestionItem)\n ])\n },\n {\n id: SuggestionKind.FilterMacro,\n name: SuggestionKind.FilterMacro,\n suggestions: (_, m) => Promise.resolve([\n ...macros.list().filter((m2) => m2.type === MacroType.Filter).map(createMacroSuggestionItem)\n ])\n },\n {\n id: SuggestionKind.WithKeyword,\n name: SuggestionKind.WithKeyword,\n suggestions: (_, m) => Promise.resolve([\n {\n label: `WITH <alias> AS ( ... )`,\n insertText: `WITH $1 AS ( $2 )`,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Snippet,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium\n }\n ])\n },\n {\n id: SuggestionKind.StarWildCard,\n name: SuggestionKind.StarWildCard,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"*\",\n insertText: `* $0`,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Field,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.High\n }\n ])\n },\n {\n id: SuggestionKind.FunctionsWithArguments,\n name: SuggestionKind.FunctionsWithArguments,\n suggestions: (_, m) => Promise.resolve([\n ...functions.list().map((f) => ({\n label: f.name,\n insertText: `${f.name}($0)`,\n documentation: f.description,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Function,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumLow\n }))\n ])\n },\n {\n id: SuggestionKind.FunctionsWithoutArguments,\n name: SuggestionKind.FunctionsWithoutArguments,\n suggestions: (_, m) => Promise.resolve([\n ...functions.list().map((f) => ({\n label: f.name,\n insertText: `${f.name}()`,\n documentation: f.description,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Function,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumHigh\n }))\n ])\n },\n {\n id: SuggestionKind.FromKeyword,\n name: SuggestionKind.FromKeyword,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"FROM\",\n insertText: `FROM $0`,\n command: TRIGGER_SUGGEST,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Keyword\n }\n ])\n },\n {\n id: SuggestionKind.Schemas,\n name: SuggestionKind.Schemas,\n suggestions: (_, m) => Promise.resolve([])\n },\n {\n id: SuggestionKind.Tables,\n name: SuggestionKind.Tables,\n suggestions: (_, m) => Promise.resolve([])\n },\n {\n id: SuggestionKind.Columns,\n name: SuggestionKind.Columns,\n suggestions: (_, m) => Promise.resolve([])\n },\n {\n id: SuggestionKind.LogicalOperators,\n name: SuggestionKind.LogicalOperators,\n suggestions: (_, m) => Promise.resolve(\n operators.list().filter((o) => o.type === OperatorType.Logical).map((o) => ({\n label: o.operator,\n insertText: `${o.operator} `,\n documentation: o.description,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumHigh,\n kind: CompletionItemKind.Operator\n }))\n )\n },\n {\n id: SuggestionKind.WhereKeyword,\n name: SuggestionKind.WhereKeyword,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"WHERE\",\n insertText: `WHERE `,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumHigh,\n kind: CompletionItemKind.Keyword\n }\n ])\n },\n {\n id: SuggestionKind.ComparisonOperators,\n name: SuggestionKind.ComparisonOperators,\n suggestions: (_, m) => Promise.resolve([\n ...operators.list().filter((o) => o.type === OperatorType.Comparison).map((o) => ({\n label: o.operator,\n insertText: `${o.operator} `,\n documentation: o.description,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumHigh,\n kind: CompletionItemKind.Operator\n })),\n {\n label: \"IN (...)\",\n insertText: `IN ( $0 )`,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium,\n kind: CompletionItemKind.Operator,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet\n },\n {\n label: \"NOT IN (...)\",\n insertText: `NOT IN ( $0 )`,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium,\n kind: CompletionItemKind.Operator,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet\n },\n {\n label: \"IS\",\n insertText: `IS`,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium,\n kind: CompletionItemKind.Operator\n },\n {\n label: \"IS NOT\",\n insertText: `IS NOT`,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium,\n kind: CompletionItemKind.Operator\n }\n ])\n },\n {\n id: SuggestionKind.GroupByKeywords,\n name: SuggestionKind.GroupByKeywords,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"GROUP BY\",\n insertText: `GROUP BY `,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumHigh,\n kind: CompletionItemKind.Keyword\n }\n ])\n },\n {\n id: SuggestionKind.OrderByKeywords,\n name: SuggestionKind.OrderByKeywords,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"ORDER BY\",\n insertText: `ORDER BY `,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.Medium,\n kind: CompletionItemKind.Keyword\n },\n {\n label: \"ORDER BY(ascending)\",\n insertText: `ORDER BY $1 ASC `,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumLow,\n kind: CompletionItemKind.Snippet,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet\n },\n {\n label: \"ORDER BY(descending)\",\n insertText: `ORDER BY $1 DESC`,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumLow,\n kind: CompletionItemKind.Snippet,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet\n }\n ])\n },\n {\n id: SuggestionKind.LimitKeyword,\n name: SuggestionKind.LimitKeyword,\n suggestions: (_, m) => Promise.resolve([\n {\n label: \"LIMIT\",\n insertText: `LIMIT `,\n command: TRIGGER_SUGGEST,\n sortText: CompletionItemPriority.MediumLow,\n kind: CompletionItemKind.Keyword\n }\n ])\n },\n {\n id: SuggestionKind.SortOrderDirectionKeyword,\n name: SuggestionKind.SortOrderDirectionKeyword,\n suggestions: (_, m) => Promise.resolve(\n [ASC, DESC].map((o) => ({\n label: o,\n insertText: `${o} `,\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Keyword\n }))\n )\n },\n {\n id: SuggestionKind.NotKeyword,\n name: SuggestionKind.NotKeyword,\n suggestions: () => Promise.resolve([\n {\n label: \"NOT\",\n insertText: \"NOT\",\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Keyword,\n sortText: CompletionItemPriority.High\n }\n ])\n },\n {\n id: SuggestionKind.BoolValues,\n name: SuggestionKind.BoolValues,\n suggestions: () => Promise.resolve(\n [\"TRUE\", \"FALSE\"].map((o) => ({\n label: o,\n insertText: `${o}`,\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Keyword,\n sortText: CompletionItemPriority.Medium\n }))\n )\n },\n {\n id: SuggestionKind.NullValue,\n name: SuggestionKind.NullValue,\n suggestions: () => Promise.resolve(\n [\"NULL\"].map((o) => ({\n label: o,\n insertText: `${o}`,\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Keyword,\n sortText: CompletionItemPriority.Low\n }))\n )\n }\n];\nfunction createMacroSuggestionItem(m) {\n return {\n label: m.name,\n insertText: `${\"\\\\\" + m.text}${argsString(m.args)} `,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n kind: CompletionItemKind.Snippet,\n documentation: m.description,\n command: TRIGGER_SUGGEST\n };\n}\nfunction argsString(args) {\n if (!args) {\n return \"()\";\n }\n return \"(\".concat(args.map((t, i) => `\\${${i}:${t}}`).join(\", \")).concat(\")\");\n}\n\nexport { initStandardSuggestions };\n//# sourceMappingURL=standardSuggestionsRegistry.js.map\n","import { StatementPosition, TokenType } from '../types.js';\nimport { SELECT, WITH, AS, WHERE, BY, GROUP, FROM, AND, ORDER, DESC, ASC } from './language.js';\n\nfunction initStatementPositionResolvers() {\n return [\n {\n id: StatementPosition.SelectKeyword,\n name: StatementPosition.SelectKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean(\n currentToken === null || currentToken.isWhiteSpace() && currentToken.previous === null || currentToken.is(TokenType.Keyword, SELECT) || currentToken.is(TokenType.Keyword, SELECT) && currentToken.previous === null || previousIsSlash || currentToken.isIdentifier() && (previousIsSlash || (currentToken == null ? void 0 : currentToken.previous) === null) || currentToken.isIdentifier() && SELECT.startsWith(currentToken.value.toLowerCase())\n )\n },\n {\n id: StatementPosition.WithKeyword,\n name: StatementPosition.WithKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean(\n currentToken === null || currentToken.isWhiteSpace() && currentToken.previous === null || currentToken.is(TokenType.Keyword, WITH) && currentToken.previous === null || currentToken.isIdentifier() && WITH.toLowerCase().startsWith(currentToken.value.toLowerCase())\n )\n },\n {\n id: StatementPosition.AfterSelectKeyword,\n name: StatementPosition.AfterSelectKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value.toLowerCase()) === SELECT)\n },\n {\n id: StatementPosition.AfterSelectArguments,\n name: StatementPosition.AfterSelectArguments,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean((previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === SELECT && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value) === \",\");\n }\n },\n {\n id: StatementPosition.AfterSelectFuncFirstArgument,\n name: StatementPosition.AfterSelectFuncFirstArgument,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean(\n ((previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === SELECT || (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === AS) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"(\")) || (currentToken == null ? void 0 : currentToken.is(TokenType.Parenthesis, \"()\")))\n );\n }\n },\n {\n id: StatementPosition.AfterWhereFunctionArgument,\n name: StatementPosition.AfterWhereFunctionArgument,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, WHERE)) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"(\")) || (currentToken == null ? void 0 : currentToken.is(TokenType.Parenthesis, \"()\")))\n );\n }\n },\n {\n id: StatementPosition.AfterGroupBy,\n name: StatementPosition.AfterGroupBy,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, BY)) && ((_a = previousKeyword == null ? void 0 : previousKeyword.getPreviousKeyword()) == null ? void 0 : _a.is(TokenType.Keyword, GROUP)) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isIdentifier()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isDoubleQuotedString()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \")\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"()\")))\n );\n }\n },\n {\n id: StatementPosition.SelectAlias,\n name: StatementPosition.SelectAlias,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n if ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value) === \",\" && (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === AS) {\n return true;\n }\n return false;\n }\n },\n {\n id: StatementPosition.FromKeyword,\n name: StatementPosition.FromKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === SELECT && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value) !== \",\" || ((currentToken == null ? void 0 : currentToken.isKeyword()) || (currentToken == null ? void 0 : currentToken.isIdentifier())) && FROM.toLowerCase().startsWith(currentToken.value.toLowerCase())\n );\n }\n },\n {\n id: StatementPosition.AfterFromKeyword,\n name: StatementPosition.AfterFromKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean(!(currentToken == null ? void 0 : currentToken.value.includes(\".\")) && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value.toLowerCase()) === FROM)\n },\n {\n id: StatementPosition.AfterSchema,\n name: StatementPosition.AfterSchema,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n if ((currentToken == null ? void 0 : currentToken.isWhiteSpace()) && (currentToken == null ? void 0 : currentToken.next)) {\n currentToken = currentToken == null ? void 0 : currentToken.previous;\n previousNonWhiteSpace = currentToken.getPreviousNonWhiteSpaceToken();\n }\n return Boolean(\n (currentToken == null ? void 0 : currentToken.isIdentifier()) && (currentToken == null ? void 0 : currentToken.value.endsWith(\".\")) && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value.toLowerCase()) === FROM\n );\n }\n },\n {\n id: StatementPosition.AfterFrom,\n name: StatementPosition.AfterFrom,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === FROM && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isDoubleQuotedString()) || (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === FROM && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isIdentifier()) || (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === FROM && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isVariable())\n // cloudwatch specific\n // (previousKeyword?.value === SCHEMA && previousNonWhiteSpace?.is(TokenType.Parenthesis, ')'))\n )\n },\n {\n id: StatementPosition.AfterTable,\n name: StatementPosition.AfterTable,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === FROM && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isVariable()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value) !== \"\" && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.value.toLowerCase()) !== FROM)\n );\n }\n },\n {\n id: StatementPosition.WhereKeyword,\n name: StatementPosition.WhereKeyword,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === WHERE && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isKeyword()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"(\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Operator, AND)))\n )\n },\n {\n id: StatementPosition.WhereComparisonOperator,\n name: StatementPosition.WhereComparisonOperator,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === WHERE && !((_a = previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _a.isOperator()) && !(currentToken == null ? void 0 : currentToken.is(TokenType.Delimiter, \".\")) && !(currentToken == null ? void 0 : currentToken.isParenthesis()) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isIdentifier()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isDoubleQuotedString()))\n );\n }\n },\n {\n id: StatementPosition.WhereValue,\n name: StatementPosition.WhereValue,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean((previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === WHERE && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isOperator()))\n },\n {\n id: StatementPosition.AfterWhereValue,\n name: StatementPosition.AfterWhereValue,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a, _b, _c;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.value.toLowerCase()) === WHERE && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Operator, \"and\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Operator, \"or\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isString()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isNumber()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \")\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"()\")) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.isTemplateVariable()) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.IdentifierQuote)) && ((_a = previousNonWhiteSpace.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _a.is(TokenType.Identifier)) && ((_c = (_b = previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _b.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _c.is(TokenType.IdentifierQuote)))\n );\n }\n },\n {\n id: StatementPosition.AfterGroupByKeywords,\n name: StatementPosition.AfterGroupByKeywords,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, BY)) && ((_a = previousKeyword == null ? void 0 : previousKeyword.getPreviousKeyword()) == null ? void 0 : _a.is(TokenType.Keyword, GROUP)) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Keyword, BY)) || (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Delimiter, \",\")))\n );\n }\n },\n {\n id: StatementPosition.AfterGroupByFunctionArgument,\n name: StatementPosition.AfterGroupByFunctionArgument,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, BY)) && ((_a = previousKeyword == null ? void 0 : previousKeyword.getPreviousKeyword()) == null ? void 0 : _a.is(TokenType.Keyword, GROUP)) && ((previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis, \"(\")) || (currentToken == null ? void 0 : currentToken.is(TokenType.Parenthesis, \"()\")))\n );\n }\n },\n {\n id: StatementPosition.AfterOrderByKeywords,\n name: StatementPosition.AfterOrderByKeywords,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Keyword, BY)) && ((_a = previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.getPreviousKeyword()) == null ? void 0 : _a.is(TokenType.Keyword, ORDER))\n );\n }\n },\n {\n id: StatementPosition.AfterOrderByFunction,\n name: StatementPosition.AfterOrderByFunction,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a, _b;\n return Boolean(\n (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, BY)) && ((_a = previousKeyword == null ? void 0 : previousKeyword.getPreviousKeyword()) == null ? void 0 : _a.is(TokenType.Keyword, ORDER)) && (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Parenthesis)) && ((_b = previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _b.is(TokenType.Function))\n );\n }\n },\n {\n id: StatementPosition.AfterOrderByDirection,\n name: StatementPosition.AfterOrderByDirection,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => Boolean((previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, DESC)) || (previousKeyword == null ? void 0 : previousKeyword.is(TokenType.Keyword, ASC)))\n },\n {\n id: StatementPosition.AfterIsOperator,\n name: StatementPosition.AfterIsOperator,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n return Boolean(previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Operator, \"IS\"));\n }\n },\n {\n id: StatementPosition.AfterIsNotOperator,\n name: StatementPosition.AfterIsNotOperator,\n resolve: (currentToken, previousKeyword, previousNonWhiteSpace, previousIsSlash) => {\n var _a;\n return Boolean(\n (previousNonWhiteSpace == null ? void 0 : previousNonWhiteSpace.is(TokenType.Operator, \"NOT\")) && ((_a = previousNonWhiteSpace.getPreviousNonWhiteSpaceToken()) == null ? void 0 : _a.is(TokenType.Operator, \"IS\"))\n );\n }\n }\n ];\n}\n\nexport { initStatementPositionResolvers };\n//# sourceMappingURL=statementPositionResolversRegistry.js.map\n","import { attachDebugger, createLogger } from '@grafana/ui';\n\nlet sqlEditorLogger = { logger: () => {\n} };\nlet sqlEditorLog = () => {\n};\nif (attachDebugger && createLogger) {\n sqlEditorLogger = createLogger(\"SQLEditor\");\n sqlEditorLog = sqlEditorLogger.logger;\n attachDebugger(\"sqleditor\", void 0, sqlEditorLogger);\n}\n\nexport { sqlEditorLog, sqlEditorLogger };\n//# sourceMappingURL=debugger.js.map\n","import { getStandardSQLCompletionProvider } from './standardSQLCompletionItemProvider.js';\n\nconst standardSQLLanguageDefinition = {\n id: \"standardSql\",\n extensions: [\".sql\"],\n aliases: [\"sql\"],\n mimetypes: [],\n loader: () => import('./language.js'),\n completionProvider: getStandardSQLCompletionProvider\n};\n\nexport { standardSQLLanguageDefinition as default };\n//# sourceMappingURL=definition.js.map\n","import { CodeEditor } from '@grafana/ui';\nimport React__default, { useRef, useMemo, useEffect, useCallback } from 'react';\nimport { getStatementPosition } from '../standardSql/getStatementPosition.js';\nimport { getStandardSuggestions } from '../standardSql/getStandardSuggestions.js';\nimport { initSuggestionsKindRegistry } from '../standardSql/suggestionsKindRegistry.js';\nimport { SuggestionKind, CompletionItemKind, CompletionItemPriority, CompletionItemInsertTextRule } from '../types.js';\nimport { getSuggestionKinds } from '../utils/getSuggestionKind.js';\nimport { linkedTokenBuilder } from '../utils/linkedTokenBuilder.js';\nimport { getTableToken, defaultTableNameParser } from '../utils/tokenUtils.js';\nimport { TRIGGER_SUGGEST } from '../utils/commands.js';\nimport { v4 } from 'uuid';\nimport { Registry } from '@grafana/data';\nimport { initStandardSuggestions } from '../standardSql/standardSuggestionsRegistry.js';\nimport { initStatementPositionResolvers } from '../standardSql/statementPositionResolversRegistry.js';\nimport { sqlEditorLog } from '../utils/debugger.js';\nimport standardSQLLanguageDefinition from '../standardSql/definition.js';\nimport { getStandardSQLCompletionProvider } from '../standardSql/standardSQLCompletionItemProvider.js';\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst STANDARD_SQL_LANGUAGE = \"sql\";\nconst LANGUAGES_CACHE = /* @__PURE__ */ new Map();\nconst INSTANCE_CACHE = /* @__PURE__ */ new Map();\nconst SQLEditor = ({\n children,\n onBlur,\n onChange,\n query,\n language = { id: STANDARD_SQL_LANGUAGE },\n width,\n height\n}) => {\n const monacoRef = useRef(null);\n const langUid = useRef();\n const id = useMemo(() => {\n const uid = v4();\n const id2 = `${language.id}-${uid}`;\n langUid.current = id2;\n return id2;\n }, [language.id]);\n useEffect(() => {\n return () => {\n if (langUid.current) {\n INSTANCE_CACHE.delete(langUid.current);\n }\n sqlEditorLog(`Removing instance cache ${langUid.current}`, false, INSTANCE_CACHE);\n };\n }, []);\n const formatQuery = useCallback(() => {\n if (monacoRef.current) {\n monacoRef.current.getAction(\"editor.action.formatDocument\").run();\n }\n }, []);\n const onSqlBlur = (text) => {\n onChange && onChange(text, false);\n onBlur && onBlur(text);\n };\n return /* @__PURE__ */ React__default.createElement(\"div\", { style: { width } }, /* @__PURE__ */ React__default.createElement(\n CodeEditor,\n {\n height: height || \"240px\",\n width: width ? `${width - 2}px` : void 0,\n language: id,\n value: query,\n onBlur: onSqlBlur,\n showMiniMap: false,\n showLineNumbers: true,\n onEditorDidMount: (editor, m) => {\n monacoRef.current = editor;\n editor.onDidChangeModelContent((e) => {\n const text = editor.getValue();\n if (onChange) {\n onChange(text, false);\n }\n });\n editor.addCommand(m.KeyMod.CtrlCmd | m.KeyCode.Enter, () => {\n const text = editor.getValue();\n if (onChange) {\n onChange(text, true);\n }\n });\n editor.onKeyUp((e) => {\n if (e.keyCode === 84) {\n editor.trigger(TRIGGER_SUGGEST.id, TRIGGER_SUGGEST.id, {});\n }\n });\n registerLanguageAndSuggestions(m, language, id);\n }\n }\n ), children && children({ formatQuery }));\n};\nconst resolveLanguage = (monaco, languageDefinitionProp) => {\n if ((languageDefinitionProp == null ? void 0 : languageDefinitionProp.id) !== STANDARD_SQL_LANGUAGE && !languageDefinitionProp.loader) {\n sqlEditorLog(`Loading language '${languageDefinitionProp == null ? void 0 : languageDefinitionProp.id}' from Monaco registry`, false);\n const allLangs = monaco.languages.getLanguages();\n const custom = allLangs.find(({ id }) => id === (languageDefinitionProp == null ? void 0 : languageDefinitionProp.id));\n if (!custom) {\n throw Error(`Unknown Monaco language ${languageDefinitionProp == null ? void 0 : languageDefinitionProp.id}`);\n }\n return __spreadValues(__spreadValues({ completionProvider: getStandardSQLCompletionProvider }, custom), languageDefinitionProp);\n }\n return __spreadValues(__spreadValues({}, standardSQLLanguageDefinition), languageDefinitionProp);\n};\nconst registerLanguageAndSuggestions = async (monaco, l, lid) => {\n const languageDefinition = resolveLanguage(monaco, l);\n if (!languageDefinition.loader) {\n return;\n }\n const { language, conf } = await languageDefinition.loader(monaco);\n monaco.languages.register({ id: lid });\n monaco.languages.setMonarchTokensProvider(lid, __spreadValues({}, language));\n monaco.languages.setLanguageConfiguration(lid, __spreadValues({}, conf));\n if (languageDefinition.formatter) {\n monaco.languages.registerDocumentFormattingEditProvider(lid, {\n provideDocumentFormattingEdits: (model) => {\n var _a;\n const formatted = (_a = l.formatter) == null ? void 0 : _a.call(l, model.getValue());\n return [\n {\n range: model.getFullModelRange(),\n text: formatted || \"\"\n }\n ];\n }\n });\n }\n if (languageDefinition.completionProvider) {\n const customProvider = languageDefinition.completionProvider(monaco, language);\n extendStandardRegistries(l.id, lid, customProvider);\n const languageSuggestionsRegistries = LANGUAGES_CACHE.get(l.id);\n const instanceSuggestionsRegistry = INSTANCE_CACHE.get(lid);\n const completionProvider = async (model, position, context, token) => {\n const currentToken = linkedTokenBuilder(monaco, model, position, lid);\n const statementPosition = getStatementPosition(currentToken, languageSuggestionsRegistries.positionResolvers);\n const kind = getSuggestionKinds(statementPosition, languageSuggestionsRegistries.suggestionKinds);\n sqlEditorLog(\"Statement position\", false, statementPosition);\n sqlEditorLog(\"Suggestion kinds\", false, kind);\n const ctx = {\n position,\n currentToken,\n statementPosition,\n kind,\n range: monaco.Range.fromPositions(position)\n };\n const stdSuggestions = await getStandardSuggestions(monaco, currentToken, kind, ctx, instanceSuggestionsRegistry);\n return {\n suggestions: stdSuggestions\n };\n };\n monaco.languages.registerCompletionItemProvider(lid, __spreadProps(__spreadValues({}, customProvider), {\n provideCompletionItems: completionProvider\n }));\n }\n};\nfunction extendStandardRegistries(id, lid, customProvider) {\n var _a;\n if (!LANGUAGES_CACHE.has(id)) {\n initializeLanguageRegistries(id);\n }\n const languageRegistries = LANGUAGES_CACHE.get(id);\n if (!INSTANCE_CACHE.has(lid)) {\n INSTANCE_CACHE.set(\n lid,\n new Registry(\n initStandardSuggestions(languageRegistries.functions, languageRegistries.operators, languageRegistries.macros)\n )\n );\n }\n const instanceSuggestionsRegistry = INSTANCE_CACHE.get(lid);\n if (customProvider.supportedFunctions) {\n for (const func of customProvider.supportedFunctions()) {\n const exists = languageRegistries.functions.getIfExists(func.id);\n if (!exists) {\n languageRegistries.functions.register(func);\n }\n }\n }\n if (customProvider.supportedOperators) {\n for (const op of customProvider.supportedOperators()) {\n const exists = languageRegistries.operators.getIfExists(op.id);\n if (!exists) {\n languageRegistries.operators.register(__spreadProps(__spreadValues({}, op), { name: op.id }));\n }\n }\n }\n if (customProvider.supportedMacros) {\n for (const macro of customProvider.supportedMacros()) {\n const exists = languageRegistries.macros.getIfExists(macro.id);\n if (!exists) {\n languageRegistries.macros.register(__spreadProps(__spreadValues({}, macro), { name: macro.id }));\n }\n }\n }\n if (customProvider.customStatementPlacement) {\n for (const placement of customProvider.customStatementPlacement()) {\n const exists = languageRegistries.positionResolvers.getIfExists(placement.id);\n if (!exists) {\n languageRegistries.positionResolvers.register(__spreadProps(__spreadValues({}, placement), {\n id: placement.id,\n name: placement.id\n }));\n languageRegistries.suggestionKinds.register({\n id: placement.id,\n name: placement.id,\n kind: []\n });\n } else {\n const origResolve = exists.resolve;\n exists.resolve = (...args) => {\n const ext = placement.resolve(...args);\n if (placement.overrideDefault) {\n return ext;\n }\n const orig = origResolve(...args);\n return orig || ext;\n };\n }\n }\n }\n if (customProvider.customSuggestionKinds) {\n for (const kind of customProvider.customSuggestionKinds()) {\n (_a = kind.applyTo) == null ? void 0 : _a.forEach((applyTo) => {\n const exists = languageRegistries.suggestionKinds.getIfExists(applyTo);\n if (exists) {\n if (exists.kind.indexOf(kind.id) === -1) {\n exists.kind.push(kind.id);\n }\n }\n });\n if (kind.overrideDefault) {\n const stbBehaviour = instanceSuggestionsRegistry.get(kind.id);\n if (stbBehaviour !== void 0) {\n stbBehaviour.suggestions = kind.suggestionsResolver;\n continue;\n }\n }\n instanceSuggestionsRegistry.register({\n id: kind.id,\n name: kind.id,\n suggestions: kind.suggestionsResolver\n });\n }\n }\n if (customProvider.schemas) {\n const stbBehaviour = instanceSuggestionsRegistry.get(SuggestionKind.Schemas);\n const s = stbBehaviour.suggestions;\n stbBehaviour.suggestions = async (ctx, m) => {\n const standardSchemas = await s(ctx, m);\n if (!customProvider.schemas) {\n return [...standardSchemas];\n }\n const customSchemas = await customProvider.schemas.resolve();\n const customSchemaCompletionItems = customSchemas.map((x) => {\n var _a2;\n return {\n label: x.name,\n insertText: `${(_a2 = x.completion) != null ? _a2 : x.name}.`,\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Module,\n // it's nice to differentiate schemas from tables\n sortText: CompletionItemPriority.High\n };\n });\n return [...standardSchemas, ...customSchemaCompletionItems];\n };\n }\n if (customProvider.tables) {\n const stbBehaviour = instanceSuggestionsRegistry.get(SuggestionKind.Tables);\n const s = stbBehaviour.suggestions;\n stbBehaviour.suggestions = async (ctx, m) => {\n var _a2, _b, _c, _d, _e;\n const o = await s(ctx, m);\n const tableToken = getTableToken(ctx.currentToken);\n const tableNameParser = (_b = (_a2 = customProvider.tables) == null ? void 0 : _a2.parseName) != null ? _b : defaultTableNameParser;\n const tableIdentifier = tableNameParser(tableToken);\n const oo = ((_e = await ((_d = (_c = customProvider.tables) == null ? void 0 : _c.resolve) == null ? void 0 : _d.call(_c, tableIdentifier))) != null ? _e : []).map((x) => {\n var _a3;\n return {\n label: x.name,\n // if no custom completion is provided it's safe to move cursor further in the statement\n insertText: `${(_a3 = x.completion) != null ? _a3 : x.name}${x.completion === x.name ? \" $0\" : \"\"}`,\n insertTextRules: CompletionItemInsertTextRule.InsertAsSnippet,\n command: TRIGGER_SUGGEST,\n kind: CompletionItemKind.Field,\n sortText: CompletionItemPriority.MediumHigh\n };\n });\n return [...o, ...oo];\n };\n }\n if (customProvider.columns) {\n const stbBehaviour = instanceSuggestionsRegistry.get(SuggestionKind.Columns);\n const s = stbBehaviour.suggestions;\n stbBehaviour.suggestions = async (ctx, m) => {\n var _a2, _b, _c;\n const o = await s(ctx, m);\n const tableToken = getTableToken(ctx.currentToken);\n let tableIdentifier;\n const tableNameParser = (_b = (_a2 = customProvider.tables) == null ? void 0 : _a2.parseName) != null ? _b : defaultTableNameParser;\n if (tableToken && tableToken.value) {\n tableIdentifier = tableNameParser(tableToken);\n }\n let oo = [];\n if (tableIdentifier) {\n const columns = await ((_c = customProvider.columns) == null ? void 0 : _c.resolve(tableIdentifier));\n oo = columns ? columns.map((x) => {\n var _a3;\n return {\n label: x.name,\n insertText: (_a3 = x.completion) != null ? _a3 : x.name,\n kind: CompletionItemKind.Field,\n sortText: CompletionItemPriority.High,\n detail: x.type,\n documentation: x.description\n };\n }) : [];\n }\n return [...o, ...oo];\n };\n }\n}\nfunction initializeLanguageRegistries(id) {\n if (!LANGUAGES_CACHE.has(id)) {\n LANGUAGES_CACHE.set(id, {\n functions: new Registry(),\n operators: new Registry(),\n suggestionKinds: new Registry(initSuggestionsKindRegistry),\n positionResolvers: new Registry(initStatementPositionResolvers),\n macros: new Registry()\n });\n }\n return LANGUAGES_CACHE.get(id);\n}\n\nexport { SQLEditor, registerLanguageAndSuggestions };\n//# sourceMappingURL=SQLEditor.js.map\n","import React, { useCallback, useEffect, useRef } from 'react';\n\nimport { LanguageDefinition, SQLEditor } from '@grafana/experimental';\n\nimport { SQLQuery } from '../../types';\n\ntype Props = {\n query: SQLQuery;\n onChange: (value: SQLQuery, processQuery: boolean) => void;\n children?: (props: { formatQuery: () => void }) => React.ReactNode;\n width?: number;\n height?: number;\n editorLanguageDefinition: LanguageDefinition;\n};\n\nexport function QueryEditorRaw({ children, onChange, query, width, height, editorLanguageDefinition }: Props) {\n // We need to pass query via ref to SQLEditor as onChange is executed via monacoEditor.onDidChangeModelContent callback, not onChange property\n const queryRef = useRef<SQLQuery>(query);\n useEffect(() => {\n queryRef.current = query;\n }, [query]);\n\n const onRawQueryChange = useCallback(\n (rawSql: string, processQuery: boolean) => {\n const newQuery = {\n ...queryRef.current,\n rawQuery: true,\n rawSql,\n };\n onChange(newQuery, processQuery);\n },\n [onChange]\n );\n\n return (\n <SQLEditor\n width={width}\n height={height}\n query={query.rawSql!}\n onChange={onRawQueryChange}\n language={editorLanguageDefinition}\n >\n {children}\n </SQLEditor>\n );\n}\n","import { css } from '@emotion/css';\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { useAsyncFn } from 'react-use';\nimport useDebounce from 'react-use/lib/useDebounce';\n\nimport { formattedValueToString, getValueFormat, TimeRange } from '@grafana/data';\nimport { Icon, Spinner, useTheme2 } from '@grafana/ui';\n\nimport { DB, SQLQuery, ValidationResults } from '../../types';\n\nexport interface QueryValidatorProps {\n db: DB;\n query: SQLQuery;\n range?: TimeRange;\n onValidate: (isValid: boolean) => void;\n}\n\nexport function QueryValidator({ db, query, onValidate, range }: QueryValidatorProps) {\n const [validationResult, setValidationResult] = useState<ValidationResults | null>();\n const theme = useTheme2();\n const valueFormatter = useMemo(() => getValueFormat('bytes'), []);\n\n const styles = useMemo(() => {\n return {\n error: css`\n color: ${theme.colors.error.text};\n font-size: ${theme.typography.bodySmall.fontSize};\n font-family: ${theme.typography.fontFamilyMonospace};\n `,\n valid: css`\n color: ${theme.colors.success.text};\n `,\n info: css`\n color: ${theme.colors.text.secondary};\n `,\n };\n }, [theme]);\n\n const [state, validateQuery] = useAsyncFn(\n async (q: SQLQuery) => {\n if (q.rawSql?.trim() === '') {\n return null;\n }\n\n return await db.validateQuery(q, range);\n },\n [db]\n );\n\n const [,] = useDebounce(\n async () => {\n const result = await validateQuery(query);\n if (result) {\n setValidationResult(result);\n }\n\n return null;\n },\n 1000,\n [query, validateQuery]\n );\n\n useEffect(() => {\n if (validationResult?.isError) {\n onValidate(false);\n }\n if (validationResult?.isValid) {\n onValidate(true);\n }\n }, [validationResult, onValidate]);\n\n if (!state.value && !state.loading) {\n return null;\n }\n\n const error = state.value?.error ? processErrorMessage(state.value.error) : '';\n\n return (\n <>\n {state.loading && (\n <div className={styles.info}>\n <Spinner inline={true} size=\"xs\" /> Validating query...\n </div>\n )}\n {!state.loading && state.value && (\n <>\n <>\n {state.value.isValid && state.value.statistics && (\n <div className={styles.valid}>\n <Icon name=\"check\" /> This query will process{' '}\n <strong>{formattedValueToString(valueFormatter(state.value.statistics.TotalBytesProcessed))}</strong>{' '}\n when run.\n </div>\n )}\n </>\n\n <>{state.value.isError && <div className={styles.error}>{error}</div>}</>\n </>\n )}\n </>\n );\n}\n\nfunction processErrorMessage(error: string) {\n const splat = error.split(':');\n if (splat.length > 2) {\n return splat.slice(2).join(':');\n }\n return error;\n}\n","import { css } from '@emotion/css';\nimport React, { useMemo, useState } from 'react';\n\nimport { reportInteraction } from '@grafana/runtime';\nimport { HorizontalGroup, Icon, IconButton, Tooltip, useTheme2 } from '@grafana/ui';\n\nimport { QueryValidator, QueryValidatorProps } from './QueryValidator';\n\ninterface QueryToolboxProps extends Omit<QueryValidatorProps, 'onValidate'> {\n showTools?: boolean;\n isExpanded?: boolean;\n onFormatCode?: () => void;\n onExpand?: (expand: boolean) => void;\n onValidate?: (isValid: boolean) => void;\n}\n\nexport function QueryToolbox({ showTools, onFormatCode, onExpand, isExpanded, ...validatorProps }: QueryToolboxProps) {\n const theme = useTheme2();\n const [validationResult, setValidationResult] = useState<boolean>();\n\n const styles = useMemo(() => {\n return {\n container: css`\n border: 1px solid ${theme.colors.border.medium};\n border-top: none;\n padding: ${theme.spacing(0.5, 0.5, 0.5, 0.5)};\n display: flex;\n flex-grow: 1;\n justify-content: space-between;\n font-size: ${theme.typography.bodySmall.fontSize};\n `,\n error: css`\n color: ${theme.colors.error.text};\n font-size: ${theme.typography.bodySmall.fontSize};\n font-family: ${theme.typography.fontFamilyMonospace};\n `,\n valid: css`\n color: ${theme.colors.success.text};\n `,\n info: css`\n color: ${theme.colors.text.secondary};\n `,\n hint: css`\n color: ${theme.colors.text.disabled};\n white-space: nowrap;\n cursor: help;\n `,\n };\n }, [theme]);\n\n let style = {};\n\n if (!showTools && validationResult === undefined) {\n style = { height: 0, padding: 0, visibility: 'hidden' };\n }\n\n return (\n <div className={styles.container} style={style}>\n <div>\n {validatorProps.onValidate && (\n <QueryValidator\n {...validatorProps}\n onValidate={(result: boolean) => {\n setValidationResult(result);\n validatorProps.onValidate!(result);\n }}\n />\n )}\n </div>\n {showTools && (\n <div>\n <HorizontalGroup spacing=\"sm\">\n {onFormatCode && (\n <IconButton\n onClick={() => {\n reportInteraction('grafana_sql_query_formatted', {\n datasource: validatorProps.query.datasource?.type,\n });\n onFormatCode();\n }}\n name=\"brackets-curly\"\n size=\"xs\"\n tooltip=\"Format query\"\n />\n )}\n {onExpand && (\n <IconButton\n onClick={() => {\n reportInteraction('grafana_sql_editor_expand', {\n datasource: validatorProps.query.datasource?.type,\n expanded: !isExpanded,\n });\n\n onExpand(!isExpanded);\n }}\n name={isExpanded ? 'angle-up' : 'angle-down'}\n size=\"xs\"\n tooltip={isExpanded ? 'Collapse editor' : 'Expand editor'}\n />\n )}\n <Tooltip content=\"Hit CTRL/CMD+Return to run query\">\n <Icon className={styles.hint} name=\"keyboard\" />\n </Tooltip>\n </HorizontalGroup>\n </div>\n )}\n </div>\n );\n}\n","import { css } from '@emotion/css';\nimport React, { useMemo, useState } from 'react';\nimport { useMeasure } from 'react-use';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { reportInteraction } from '@grafana/runtime';\nimport { Modal, useStyles2, useTheme2 } from '@grafana/ui';\n\nimport { SQLQuery, QueryEditorProps } from '../../types';\n\nimport { QueryEditorRaw } from './QueryEditorRaw';\nimport { QueryToolbox } from './QueryToolbox';\n\ninterface RawEditorProps extends Omit<QueryEditorProps, 'onChange'> {\n onRunQuery: () => void;\n onChange: (q: SQLQuery, processQuery: boolean) => void;\n onValidate: (isValid: boolean) => void;\n queryToValidate: SQLQuery;\n}\n\nexport function RawEditor({ db, query, onChange, onRunQuery, onValidate, queryToValidate, range }: RawEditorProps) {\n const theme = useTheme2();\n const styles = useStyles2(getStyles);\n const [isExpanded, setIsExpanded] = useState(false);\n const [toolboxRef, toolboxMeasure] = useMeasure<HTMLDivElement>();\n const [editorRef, editorMeasure] = useMeasure<HTMLDivElement>();\n\n const editorLanguageDefinition = useMemo(() => db.getEditorLanguageDefinition(), [db]);\n\n const renderQueryEditor = (width?: number, height?: number) => {\n return (\n <QueryEditorRaw\n editorLanguageDefinition={editorLanguageDefinition}\n query={query}\n width={width}\n height={height ? height - toolboxMeasure.height : undefined}\n onChange={onChange}\n >\n {({ formatQuery }) => {\n return (\n <div ref={toolboxRef}>\n <QueryToolbox\n db={db}\n query={queryToValidate}\n onValidate={onValidate}\n onFormatCode={formatQuery}\n showTools\n range={range}\n onExpand={setIsExpanded}\n isExpanded={isExpanded}\n />\n </div>\n );\n }}\n </QueryEditorRaw>\n );\n };\n\n const renderEditor = (standalone = false) => {\n return standalone ? (\n <AutoSizer>\n {({ width, height }) => {\n return renderQueryEditor(width, height);\n }}\n </AutoSizer>\n ) : (\n <div ref={editorRef}>{renderQueryEditor()}</div>\n );\n };\n\n const renderPlaceholder = () => {\n return (\n <div\n style={{\n width: editorMeasure.width,\n height: editorMeasure.height,\n background: theme.colors.background.primary,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n Editing in expanded code editor\n </div>\n );\n };\n\n return (\n <>\n {isExpanded ? renderPlaceholder() : renderEditor()}\n {isExpanded && (\n <Modal\n title={`Query ${query.refId}`}\n closeOnBackdropClick={false}\n closeOnEscape={false}\n className={styles.modal}\n contentClassName={styles.modalContent}\n isOpen={isExpanded}\n onDismiss={() => {\n reportInteraction('grafana_sql_editor_expand', {\n datasource: query.datasource?.type,\n expanded: false,\n });\n setIsExpanded(false);\n }}\n >\n {renderEditor(true)}\n </Modal>\n )}\n </>\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n modal: css`\n width: 95vw;\n height: 95vh;\n `,\n modalContent: css`\n height: 100%;\n padding-top: 0;\n `,\n };\n}\n","// @ts-ignore\nimport sqlFormatter from 'sql-formatter-plus';\n\nexport function formatSQL(q: string) {\n return sqlFormatter.format(q).replace(/(\\$ \\{ .* \\})|(\\$ __)|(\\$ \\w+)/g, (m: string) => {\n return m.replace(/\\s/g, '');\n });\n}\n","import { css } from '@emotion/css';\nimport React from 'react';\nimport { useCopyToClipboard } from 'react-use';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { reportInteraction } from '@grafana/runtime';\nimport { CodeEditor, Field, IconButton, useStyles2 } from '@grafana/ui';\n\nimport { formatSQL } from '../../utils/formatSQL';\n\ntype PreviewProps = {\n rawSql: string;\n datasourceType?: string;\n};\n\nexport function Preview({ rawSql, datasourceType }: PreviewProps) {\n // TODO: use zero index to give feedback about copy success\n const [_, copyToClipboard] = useCopyToClipboard();\n const styles = useStyles2(getStyles);\n\n const copyPreview = (rawSql: string) => {\n copyToClipboard(rawSql);\n reportInteraction('grafana_sql_preview_copied', {\n datasource: datasourceType,\n });\n };\n\n const labelElement = (\n <div className={styles.labelWrapper}>\n <span className={styles.label}>Preview</span>\n <IconButton tooltip=\"Copy to clipboard\" onClick={() => copyPreview(rawSql)} name=\"copy\" />\n </div>\n );\n\n return (\n <Field label={labelElement} className={styles.grow}>\n <CodeEditor\n language=\"sql\"\n height={80}\n value={formatSQL(rawSql)}\n monacoOptions={{ scrollbar: { vertical: 'hidden' }, scrollBeyondLastLine: false }}\n readOnly={true}\n showMiniMap={false}\n />\n </Field>\n );\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n return {\n grow: css({ flexGrow: 1 }),\n label: css({ fontSize: 12, fontWeight: theme.typography.fontWeightMedium }),\n labelWrapper: css({ display: 'flex', justifyContent: 'space-between', paddingBottom: theme.spacing(0.5) }),\n };\n}\n","import { useCallback } from 'react';\n\nimport { DB, SQLExpression, SQLQuery } from '../types';\n\ninterface UseSqlChange {\n db: DB;\n query: SQLQuery;\n onQueryChange: (query: SQLQuery) => void;\n}\n\nexport function useSqlChange({ query, onQueryChange, db }: UseSqlChange) {\n const onSqlChange = useCallback(\n (sql: SQLExpression) => {\n const toRawSql = db.toRawSql;\n const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });\n const newQuery: SQLQuery = { ...query, sql, rawSql };\n onQueryChange(newQuery);\n },\n [db, onQueryChange, query]\n );\n\n return { onSqlChange };\n}\n","import React, { useCallback } from 'react';\n\nimport { SelectableValue, toOption } from '@grafana/data';\nimport { AccessoryButton, EditorList, InputGroup } from '@grafana/experimental';\nimport { Select } from '@grafana/ui';\n\nimport { QueryEditorGroupByExpression } from '../../expressions';\nimport { SQLExpression } from '../../types';\nimport { setGroupByField } from '../../utils/sql.utils';\n\ninterface GroupByRowProps {\n sql: SQLExpression;\n onSqlChange: (sql: SQLExpression) => void;\n columns?: Array<SelectableValue<string>>;\n}\n\nexport function GroupByRow({ sql, columns, onSqlChange }: GroupByRowProps) {\n const onGroupByChange = useCallback(\n (item: Array<Partial<QueryEditorGroupByExpression>>) => {\n // As new (empty object) items come in, we need to make sure they have the correct type\n const cleaned = item.map((v) => setGroupByField(v.property?.name));\n const newSql = { ...sql, groupBy: cleaned };\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n return (\n <EditorList\n items={sql.groupBy!}\n onChange={onGroupByChange}\n renderItem={makeRenderColumn({\n options: columns,\n })}\n />\n );\n}\n\nfunction makeRenderColumn({ options }: { options?: Array<SelectableValue<string>> }) {\n const renderColumn = function (\n item: Partial<QueryEditorGroupByExpression>,\n onChangeItem: (item: QueryEditorGroupByExpression) => void,\n onDeleteItem: () => void\n ) {\n return (\n <InputGroup>\n <Select\n value={item.property?.name ? toOption(item.property.name) : null}\n aria-label=\"Group by\"\n options={options}\n menuShouldPortal\n onChange={({ value }) => value && onChangeItem(setGroupByField(value))}\n />\n <AccessoryButton aria-label=\"Remove group by column\" icon=\"times\" variant=\"secondary\" onClick={onDeleteItem} />\n </InputGroup>\n );\n };\n return renderColumn;\n}\n","import React from 'react';\n\nimport { SelectableValue } from '@grafana/data';\n\nimport { QueryWithDefaults } from '../../defaults';\nimport { DB, SQLQuery } from '../../types';\nimport { useSqlChange } from '../../utils/useSqlChange';\n\nimport { GroupByRow } from './GroupByRow';\n\ninterface SQLGroupByRowProps {\n fields: SelectableValue[];\n query: QueryWithDefaults;\n onQueryChange: (query: SQLQuery) => void;\n db: DB;\n}\n\nexport function SQLGroupByRow({ fields, query, onQueryChange, db }: SQLGroupByRowProps) {\n const { onSqlChange } = useSqlChange({ query, onQueryChange, db });\n\n return <GroupByRow columns={fields} sql={query.sql!} onSqlChange={onSqlChange} />;\n}\n","import { uniqueId } from 'lodash';\nimport React, { useCallback } from 'react';\n\nimport { SelectableValue, toOption } from '@grafana/data';\nimport { EditorField, InputGroup } from '@grafana/experimental';\nimport { Input, RadioButtonGroup, Select, Space } from '@grafana/ui';\n\nimport { SQLExpression } from '../../types';\nimport { setPropertyField } from '../../utils/sql.utils';\n\ntype OrderByRowProps = {\n sql: SQLExpression;\n onSqlChange: (sql: SQLExpression) => void;\n columns?: Array<SelectableValue<string>>;\n showOffset?: boolean;\n};\n\nconst sortOrderOptions = [\n { description: 'Sort by ascending', value: 'ASC', icon: 'sort-amount-up' } as const,\n { description: 'Sort by descending', value: 'DESC', icon: 'sort-amount-down' } as const,\n];\n\nexport function OrderByRow({ sql, onSqlChange, columns, showOffset }: OrderByRowProps) {\n const onSortOrderChange = useCallback(\n (item: 'ASC' | 'DESC') => {\n const newSql: SQLExpression = { ...sql, orderByDirection: item };\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const onLimitChange = useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n const newSql: SQLExpression = { ...sql, limit: Number.parseInt(event.currentTarget.value, 10) };\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const onOffsetChange = useCallback(\n (event: React.FormEvent<HTMLInputElement>) => {\n const newSql: SQLExpression = { ...sql, offset: Number.parseInt(event.currentTarget.value, 10) };\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const onOrderByChange = useCallback(\n (item: SelectableValue<string>) => {\n const newSql: SQLExpression = { ...sql, orderBy: setPropertyField(item?.value) };\n if (item === null) {\n newSql.orderByDirection = undefined;\n }\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n return (\n <>\n <EditorField label=\"Order by\" width={25}>\n <InputGroup>\n <Select\n aria-label=\"Order by\"\n options={columns}\n value={sql.orderBy?.property.name ? toOption(sql.orderBy.property.name) : null}\n isClearable\n menuShouldPortal\n onChange={onOrderByChange}\n />\n\n <Space h={1.5} />\n\n <RadioButtonGroup\n options={sortOrderOptions}\n disabled={!sql?.orderBy?.property.name}\n value={sql.orderByDirection}\n onChange={onSortOrderChange}\n />\n </InputGroup>\n </EditorField>\n <EditorField label=\"Limit\" optional width={25}>\n <Input type=\"number\" min={0} id={uniqueId('limit-')} value={sql.limit || ''} onChange={onLimitChange} />\n </EditorField>\n {showOffset && (\n <EditorField label=\"Offset\" optional width={25}>\n <Input type=\"number\" id={uniqueId('offset-')} value={sql.offset || ''} onChange={onOffsetChange} />\n </EditorField>\n )}\n </>\n );\n}\n","import React from 'react';\n\nimport { SelectableValue } from '@grafana/data';\n\nimport { QueryWithDefaults } from '../../defaults';\nimport { DB, SQLQuery } from '../../types';\nimport { useSqlChange } from '../../utils/useSqlChange';\n\nimport { OrderByRow } from './OrderByRow';\n\ntype SQLOrderByRowProps = {\n fields: SelectableValue[];\n query: QueryWithDefaults;\n onQueryChange: (query: SQLQuery) => void;\n db: DB;\n};\n\nexport function SQLOrderByRow({ fields, query, onQueryChange, db }: SQLOrderByRowProps) {\n const { onSqlChange } = useSqlChange({ query, onQueryChange, db });\n let columnsWithIndices: SelectableValue[] = [];\n\n if (fields) {\n const options = query.sql?.columns?.map((c, i) => {\n const value = c.name ? `${c.name}(${c.parameters?.map((p) => p.name)})` : c.parameters?.map((p) => p.name);\n return {\n value,\n label: `${i + 1} - ${value}`,\n };\n });\n columnsWithIndices = [\n {\n value: '',\n label: 'Selected columns',\n options,\n expanded: true,\n },\n ...fields,\n ];\n }\n\n return <OrderByRow sql={query.sql!} onSqlChange={onSqlChange} columns={columnsWithIndices} />;\n}\n","export const COMMON_AGGREGATE_FNS = ['AVG', 'COUNT', 'MAX', 'MIN', 'SUM'];\n\nexport const MACRO_NAMES = [\n '$__time',\n '$__timeEpoch',\n '$__timeFilter',\n '$__timeFrom',\n '$__timeTo',\n '$__timeGroup',\n '$__timeGroupAlias',\n '$__unixEpochFilter',\n '$__unixEpochNanoFilter',\n '$__unixEpochNanoFrom',\n '$__unixEpochNanoTo',\n '$__unixEpochGroup',\n '$__unixEpochGroupAlias',\n];\n","import { css } from '@emotion/css';\nimport { uniqueId } from 'lodash';\nimport React, { useCallback } from 'react';\n\nimport { SelectableValue, toOption } from '@grafana/data';\nimport { EditorField, Stack } from '@grafana/experimental';\nimport { Button, Select, useStyles2 } from '@grafana/ui';\n\nimport { QueryEditorExpressionType, QueryEditorFunctionExpression } from '../../expressions';\nimport { SQLExpression, QueryFormat } from '../../types';\nimport { createFunctionField } from '../../utils/sql.utils';\n\ninterface SelectRowProps {\n sql: SQLExpression;\n format: QueryFormat | undefined;\n onSqlChange: (sql: SQLExpression) => void;\n columns?: Array<SelectableValue<string>>;\n functions?: Array<SelectableValue<string>>;\n}\n\nconst asteriskValue = { label: '*', value: '*' };\n\nexport function SelectRow({ sql, format, columns, onSqlChange, functions }: SelectRowProps) {\n const styles = useStyles2(getStyles);\n const columnsWithAsterisk = [asteriskValue, ...(columns || [])];\n const timeSeriesAliasOpts: Array<SelectableValue<string>> = [];\n\n // Add necessary alias options for time series format\n // when that format has been selected\n if (format === QueryFormat.Timeseries) {\n timeSeriesAliasOpts.push({ label: 'time', value: 'time' });\n timeSeriesAliasOpts.push({ label: 'value', value: 'value' });\n }\n\n const onColumnChange = useCallback(\n (item: QueryEditorFunctionExpression, index: number) => (column: SelectableValue<string>) => {\n let modifiedItem = { ...item };\n if (!item.parameters?.length) {\n modifiedItem.parameters = [{ type: QueryEditorExpressionType.FunctionParameter, name: column.value } as const];\n } else {\n modifiedItem.parameters = item.parameters.map((p) =>\n p.type === QueryEditorExpressionType.FunctionParameter ? { ...p, name: column.value } : p\n );\n }\n\n const newSql: SQLExpression = {\n ...sql,\n columns: sql.columns?.map((c, i) => (i === index ? modifiedItem : c)),\n };\n\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const onAggregationChange = useCallback(\n (item: QueryEditorFunctionExpression, index: number) => (aggregation: SelectableValue<string>) => {\n const newItem = {\n ...item,\n name: aggregation?.value,\n };\n const newSql: SQLExpression = {\n ...sql,\n columns: sql.columns?.map((c, i) => (i === index ? newItem : c)),\n };\n\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const onAliasChange = useCallback(\n (item: QueryEditorFunctionExpression, index: number) => (alias: SelectableValue<string>) => {\n let newItem = { ...item };\n\n if (alias !== null) {\n newItem = { ...item, alias: `\"${alias?.value?.trim()}\"` };\n } else {\n delete newItem.alias;\n }\n\n const newSql: SQLExpression = {\n ...sql,\n columns: sql.columns?.map((c, i) => (i === index ? newItem : c)),\n };\n\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const removeColumn = useCallback(\n (index: number) => () => {\n const clone = [...sql.columns!];\n clone.splice(index, 1);\n const newSql: SQLExpression = {\n ...sql,\n columns: clone,\n };\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n const addColumn = useCallback(() => {\n const newSql: SQLExpression = { ...sql, columns: [...sql.columns!, createFunctionField()] };\n onSqlChange(newSql);\n }, [onSqlChange, sql]);\n\n return (\n <Stack gap={2} wrap direction=\"column\">\n {sql.columns?.map((item, index) => (\n <div key={index}>\n <Stack gap={2} alignItems=\"end\">\n <EditorField label=\"Column\" width={25}>\n <Select\n value={getColumnValue(item)}\n options={columnsWithAsterisk}\n inputId={`select-column-${index}-${uniqueId()}`}\n menuShouldPortal\n allowCustomValue\n onChange={onColumnChange(item, index)}\n />\n </EditorField>\n\n <EditorField label=\"Aggregation\" optional width={25}>\n <Select\n value={item.name ? toOption(item.name) : null}\n inputId={`select-aggregation-${index}-${uniqueId()}`}\n isClearable\n menuShouldPortal\n allowCustomValue\n options={functions}\n onChange={onAggregationChange(item, index)}\n />\n </EditorField>\n <EditorField label=\"Alias\" optional width={15}>\n <Select\n value={item.alias ? toOption(item.alias) : null}\n inputId={`select-alias-${index}-${uniqueId()}`}\n options={timeSeriesAliasOpts}\n onChange={onAliasChange(item, index)}\n isClearable\n menuShouldPortal\n allowCustomValue\n />\n </EditorField>\n <Button\n aria-label=\"Remove\"\n type=\"button\"\n icon=\"trash-alt\"\n variant=\"secondary\"\n size=\"md\"\n onClick={removeColumn(index)}\n />\n </Stack>\n </div>\n ))}\n <Button\n type=\"button\"\n onClick={addColumn}\n variant=\"secondary\"\n size=\"md\"\n icon=\"plus\"\n aria-label=\"Add\"\n className={styles.addButton}\n />\n </Stack>\n );\n}\n\nconst getStyles = () => {\n return { addButton: css({ alignSelf: 'flex-start' }) };\n};\n\nfunction getColumnValue({ parameters }: QueryEditorFunctionExpression): SelectableValue<string> | null {\n const column = parameters?.find((p) => p.type === QueryEditorExpressionType.FunctionParameter);\n if (column?.name) {\n return toOption(column.name);\n }\n return null;\n}\n","import React from 'react';\n\nimport { SelectableValue, toOption } from '@grafana/data';\n\nimport { COMMON_AGGREGATE_FNS } from '../../constants';\nimport { QueryWithDefaults } from '../../defaults';\nimport { DB, SQLQuery } from '../../types';\nimport { useSqlChange } from '../../utils/useSqlChange';\n\nimport { SelectRow } from './SelectRow';\n\ninterface SQLSelectRowProps {\n fields: SelectableValue[];\n query: QueryWithDefaults;\n onQueryChange: (query: SQLQuery) => void;\n db: DB;\n}\n\nexport function SQLSelectRow({ fields, query, onQueryChange, db }: SQLSelectRowProps) {\n const { onSqlChange } = useSqlChange({ query, onQueryChange, db });\n const functions = [...COMMON_AGGREGATE_FNS, ...(db.functions?.() || [])].map(toOption);\n\n return (\n <SelectRow\n columns={fields}\n sql={query.sql!}\n format={query.format}\n functions={functions}\n onSqlChange={onSqlChange}\n />\n );\n}\n","// Had to make uuid use a constant seed so it would generate same sequence across runs. This was needed\n// so server side rendering and client side rendering yield same results (e.g. the uuid is used when rendering\n// the concunctions with their name and id)\nvar query_builder_seed = 0;\nexport default (function () {\n // Generate a random GUID http://stackoverflow.com/a/2117523.\n var timePart = (new Date().getTime().toString(16) + \"FF\").substr(0, 11);\n var s = \"ssssssss-xxxx-4xxx-yxxx-x\".replace(/[xys]/g, function (c) {\n var r = c === \"s\" ? Math.floor(Math.random() * 16) : query_builder_seed++ & 0xf;\n var v = c === \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n return s + timePart;\n});","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport Immutable, { Map } from \"immutable\";\nimport omit from \"lodash/omit\";\nimport { default as uuid } from \"./uuid\";\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\nexport { uuid };\nexport var widgetDefKeysToOmit = [\"formatValue\", \"mongoFormatValue\", \"sqlFormatValue\", \"jsonLogic\", \"elasticSearchFormatValue\", \"spelFormatValue\", \"spelImportFuncs\", \"spelImportValue\"];\nexport var opDefKeysToOmit = [\"formatOp\", \"mongoFormatOp\", \"sqlFormatOp\", \"jsonLogic\", \"spelFormatOp\"];\n\n// RegExp.quote = function (str) {\n// return str.replace(/([.?*+^$[\\]\\\\(){}|-])/g, \"\\\\$1\");\n// };\n\nexport var defaultValue = function defaultValue(value, _default) {\n return typeof value === \"undefined\" ? _default : value;\n};\n\n// const immutableEqual = function(v1, v2) {\n// if (v1 === v2) {\n// return true;\n// } else {\n// return v1.equals(v2);\n// }\n// };\n\nexport var deepEqual = function deepEqual(v1, v2) {\n if (v1 === v2) {\n return true;\n } else if (Map.isMap(v1)) {\n return v1.equals(v2);\n } else {\n return JSON.stringify(v1) == JSON.stringify(v2);\n }\n};\n\n// //Do sets have same values?\n// const eqSet = function (as, bs) {\n// if (as.size !== bs.size) return false;\n// for (var a of as) if (!bs.has(a)) return false;\n// return true;\n// };\n\n// //Do arrays have same values?\n// const eqArrSet = function (arr1, arr2) {\n// return eqSet(new Set(arr1), new Set(arr2));\n// };\n\nexport var shallowEqual = function shallowEqual(a, b) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (a === b) {\n return true;\n } else if (Array.isArray(a)) return shallowEqualArrays(a, b, deep);else if (Map.isMap(a)) return a.equals(b);else if (_typeof(a) == \"object\") return shallowEqualObjects(a, b, deep);else return a === b;\n};\nfunction shallowEqualArrays(arrA, arrB) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n var len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var isEqual = deep ? shallowEqual(arrA[i], arrB[i], deep) : arrA[i] === arrB[i];\n if (!isEqual) {\n return false;\n }\n }\n return true;\n}\nfunction shallowEqualObjects(objA, objB) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n var isEqual = deep ? shallowEqual(objA[key], objB[key], deep) : objA[key] === objB[key];\n if (!isEqual) {\n return false;\n }\n }\n return true;\n}\nexport var isImmutable = function isImmutable(v) {\n return _typeof(v) === \"object\" && v !== null && typeof v.toJS === \"function\";\n};\nexport function toImmutableList(v) {\n return isImmutable(v) ? v : new Immutable.List(v);\n}\nexport function applyToJS(v) {\n return isImmutable(v) ? v.toJS() : v;\n}\nexport var escapeRegExp = function escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\/]/g, \"\\\\$&\"); // $& means the whole matched string\n};\n\nexport var cleanJSX = function cleanJSX(jsx) {\n var jsxKeys = [\"$$typeof\", \"_owner\", \"_store\", \"ref\", \"key\"];\n var getName = function getName(val) {\n if (typeof val === \"string\") {\n return val;\n } else if (typeof val === \"function\") {\n return val.name;\n }\n return val;\n };\n if (jsx instanceof Array) {\n return jsx.map(function (el, _i) {\n return cleanJSX(el);\n });\n } else if (_typeof(jsx) === \"object\" && jsx !== null) {\n if (isDirtyJSX(jsx)) {\n var _cleaned$props;\n var cleaned = omit(jsx, jsxKeys);\n if (cleaned.type) {\n cleaned.type = getName(cleaned.type);\n }\n if (cleaned !== null && cleaned !== void 0 && (_cleaned$props = cleaned.props) !== null && _cleaned$props !== void 0 && _cleaned$props.children) {\n cleaned.props.children = cleanJSX(cleaned.props.children);\n }\n return cleaned;\n }\n }\n return jsx;\n};\nexport var isDirtyJSX = function isDirtyJSX(jsx) {\n return _typeof(jsx) === \"object\" && jsx !== null && !Array.isArray(jsx) && Object.keys(jsx).includes(\"type\") && Object.keys(jsx).includes(\"props\") // even if {}\n && Object.keys(jsx).includes(\"key\") // even if null\n && Object.keys(jsx).includes(\"ref\") // even if null\n && Object.keys(jsx).includes(\"$$typeof\"); // Symbol(react.element)\n};\n\nexport var isJSX = function isJSX(jsx) {\n return _typeof(jsx) === \"object\" && jsx !== null && !Array.isArray(jsx) && typeof jsx[\"type\"] === \"string\" && Object.keys(jsx).includes(\"props\");\n};\nexport var isJsonLogic = function isJsonLogic(logic) {\n var isJL = _typeof(logic) === \"object\" // An object\n && logic !== null // but not null\n && !Array.isArray(logic) // and not an array\n && Object.keys(logic).length === 1; // with exactly one key\n if (isJL) {\n // additional checks ?\n }\n return isJL;\n};\nexport function sleep(delay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, delay);\n });\n}\n\n// [1, 4, 9] + [1, 5, 9] => [1, 4, 5, 9]\n// Used for merging arrays of operators for different widgets of 1 type\nexport function mergeArraysSmart(arr1, arr2) {\n if (!arr1) arr1 = [];\n if (!arr2) arr2 = [];\n return arr2.map(function (op) {\n return [op, arr1.indexOf(op)];\n }).map(function (_ref, i, orig) {\n var _ref2 = _slicedToArray(_ref, 2),\n op = _ref2[0],\n ind = _ref2[1];\n if (ind == -1) {\n var next = orig.slice(i + 1);\n var prev = orig.slice(0, i);\n var after = prev.reverse().find(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n _cop = _ref4[0],\n ci = _ref4[1];\n return ci != -1;\n });\n var before = next.find(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n _cop = _ref6[0],\n ci = _ref6[1];\n return ci != -1;\n });\n if (before) return [op, \"before\", before[0]];else if (after) return [op, \"after\", after[0]];else return [op, \"append\", null];\n } else {\n // already exists\n return null;\n }\n }).filter(function (x) {\n return x !== null;\n }).reduce(function (acc, _ref7) {\n var _ref8 = _slicedToArray(_ref7, 3),\n newOp = _ref8[0],\n rel = _ref8[1],\n relOp = _ref8[2];\n var ind = acc.indexOf(relOp);\n if (acc.indexOf(newOp) == -1) {\n if (ind > -1) {\n // insert after or before\n acc.splice(ind + (rel == \"after\" ? 1 : 0), 0, newOp);\n } else {\n // insert to end or start\n acc.splice(rel == \"append\" ? Infinity : 0, 0, newOp);\n }\n }\n return acc;\n }, arr1.slice());\n}\nexport var deepFreeze = function deepFreeze(obj) {\n if (_typeof(obj) === \"object\" && obj !== null) {\n Object.keys(obj).forEach(function (prop) {\n deepFreeze(obj[prop]);\n });\n Object.freeze(obj);\n }\n};\nexport var isJsonCompatible = function isJsonCompatible(tpl, obj) {\n var bag = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n if (isObject(tpl)) {\n if (tpl[\"var\"]) {\n bag[tpl[\"var\"]] = obj;\n return true;\n }\n if (!isObject(obj)) return false;\n for (var k in tpl) {\n var tv = tpl[k];\n var ov = obj[k];\n if (!isJsonCompatible(tv, ov, bag, [].concat(_toConsumableArray(path), [k]))) return false;\n }\n return true;\n } else if (Array.isArray(tpl)) {\n if (!Array.isArray(obj)) return false;\n for (var i = 0; i < tpl.length; i++) {\n var _tv = tpl[i];\n var _ov = obj[i];\n if (!isJsonCompatible(_tv, _ov, bag, [].concat(_toConsumableArray(path), [i]))) return false;\n }\n return true;\n } else {\n return tpl === obj;\n }\n};\nvar isDev = function isDev() {\n return typeof process !== \"undefined\" && process.env && process.env.NODE_ENV == \"development\";\n};\nexport var getLogger = function getLogger() {\n var devMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var verbose = devMode != undefined ? devMode : isDev();\n return verbose ? console : {\n error: function error() {},\n log: function log() {},\n warn: function warn() {},\n debug: function debug() {},\n info: function info() {}\n };\n};\nexport var getFirstDefined = function getFirstDefined() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var ret;\n for (var i = 0; i < arr.length; i++) {\n var v = arr[i];\n if (v !== undefined) {\n ret = v;\n break;\n }\n }\n return ret;\n};\nexport var logger = getLogger();","export var settings = {\n formatField: function formatField(field, parts, label2, fieldDefinition, config, isForDisplay) {\n if (isForDisplay) return label2;else return field;\n },\n fieldSources: [\"field\"],\n keepInputOnChangeFieldSrc: true,\n fieldItemKeysForSearch: [\"label\", \"path\", \"altLabel\", \"grouplabel\"],\n listKeysForSearch: [\"title\", \"value\"],\n valueSourcesInfo: {\n value: {}\n },\n fieldSeparator: \".\",\n fieldSeparatorDisplay: \".\",\n canReorder: true,\n canRegroup: true,\n canDeleteLocked: false,\n canLeaveEmptyGroup: true,\n shouldCreateEmptyGroup: false,\n canShortMongoQuery: true,\n removeEmptyGroupsOnLoad: true,\n removeIncompleteRulesOnLoad: true,\n removeInvalidMultiSelectValuesOnLoad: true,\n setOpOnChangeField: [\"keep\", \"default\"],\n // 'default' (default if present), 'keep' (keep prev from last field), 'first', 'none'\n groupOperators: [\"some\", \"all\", \"none\"],\n defaultGroupConjunction: \"AND\",\n // localization\n locale: {\n moment: \"en\"\n },\n valueLabel: \"Value\",\n valuePlaceholder: \"Value\",\n fieldLabel: \"Field\",\n operatorLabel: \"Operator\",\n funcLabel: \"Function\",\n fieldPlaceholder: \"Select field\",\n funcPlaceholder: \"Select function\",\n operatorPlaceholder: \"Select operator\",\n lockLabel: \"Lock\",\n lockedLabel: \"Locked\",\n deleteLabel: \"Delete\",\n addGroupLabel: \"Add group\",\n addCaseLabel: \"Add condition\",\n addDefaultCaseLabel: \"Add default condition\",\n defaultCaseLabel: \"Default:\",\n addRuleLabel: \"Add rule\",\n addSubRuleLabel: \"Add sub rule\",\n delGroupLabel: \"Delete\",\n notLabel: \"Not\",\n fieldSourcesPopupTitle: \"Select source\",\n valueSourcesPopupTitle: \"Select value source\",\n removeRuleConfirmOptions: null,\n removeGroupConfirmOptions: null\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\nexport var toListValue = function toListValue(v, title) {\n if (v == null || v == \"\") {\n return undefined;\n } else if (isObject(v)) {\n return _objectSpread(_objectSpread({}, v), {}, {\n title: v.title || v.value // fallback to value\n });\n } else {\n return {\n value: v,\n title: title !== undefined ? title : \"\" + v\n };\n }\n};\nexport var makeCustomListValue = function makeCustomListValue(v) {\n var lv = toListValue(v);\n if (isObject(lv)) {\n return _objectSpread(_objectSpread({}, toListValue(v)), {}, {\n isCustom: true\n });\n } else {\n // only if undefined\n return lv;\n }\n};\n\n// convert {<value>: <title>, ..} or [value, ..] to normal [{value, title}, ..]\nexport var listValuesToArray = function listValuesToArray(listValuesObj) {\n if (Array.isArray(listValuesObj)) return listValuesObj.map(function (v) {\n return toListValue(v);\n });\n if (!isObject(listValuesObj)) return listValuesObj;\n var listValuesArr = [];\n for (var v in listValuesObj) {\n var title = listValuesObj[v];\n listValuesArr.push(toListValue(v, title));\n }\n return listValuesArr;\n};\n\n// listValues can be {<value>: <title>, ..} or [{value, title}, ..] or [value, ..]\n// todo: same as getListValue() (but args are switched)\nexport var getItemInListValues = function getItemInListValues(listValues, value) {\n if (Array.isArray(listValues)) {\n var values = listValues.map(function (v) {\n return toListValue(v);\n });\n return values.find(function (v) {\n return \"\" + v.value === \"\" + value;\n });\n } else {\n return listValues[value] !== undefined ? toListValue(value, listValues[value]) : undefined;\n }\n};\nexport var getTitleInListValues = function getTitleInListValues(listValues, value) {\n if (listValues == undefined) return value;\n var it = getItemInListValues(listValues, value);\n return it !== undefined ? it.title : value;\n};\nexport var getValueInListValues = function getValueInListValues(listValues, value) {\n if (listValues == undefined) return value;\n var it = getItemInListValues(listValues, value);\n return it !== undefined ? it.value : value;\n};\nexport var mapListValues = function mapListValues(listValues, mapFn) {\n var ret = [];\n if (Array.isArray(listValues)) {\n var _iterator = _createForOfIteratorHelper(listValues),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var v = _step.value;\n var lv = mapFn(toListValue(v));\n if (lv != null) ret.push(lv);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else {\n for (var value in listValues) {\n var _lv = mapFn(toListValue(value, listValues[value]));\n if (_lv != null) ret.push(_lv);\n }\n }\n return ret;\n};\nexport var searchListValue = function searchListValue(search, listValues) {\n return mapListValues(listValues, function (lv) {\n return \"\".concat(lv.value).indexOf(search) != -1 || lv.title.indexOf(search) != -1 ? lv : null;\n }).filter(function (v) {\n return v !== null;\n }).shift();\n};\nexport var getListValue = function getListValue(selectedValue, listValues) {\n return mapListValues(listValues, function (lv) {\n return \"\" + lv.value === \"\" + selectedValue ? lv : null;\n }).filter(function (v) {\n return v !== null;\n }).shift();\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport Immutable from \"immutable\";\nimport { toImmutableList, isImmutable, applyToJS as immutableToJs } from \"./stuff\";\nimport { jsToImmutable } from \"../import/tree\";\nexport { toImmutableList, jsToImmutable, immutableToJs, isImmutable };\n\n/**\n * @param {Immutable.List} path\n * @param {...string} suffix\n * @return {Immutable.List}\n */\nexport var expandTreePath = function expandTreePath(path) {\n for (var _len = arguments.length, suffix = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n suffix[_key - 1] = arguments[_key];\n }\n return path.interpose(\"children1\").withMutations(function (list) {\n list.skip(1);\n list.push.apply(list, suffix);\n return list;\n });\n};\n\n/**\n * @param {Immutable.List} path\n * @param {...string} suffix\n * @return {Immutable.List}\n */\nexport var expandTreeSubpath = function expandTreeSubpath(path) {\n for (var _len2 = arguments.length, suffix = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n suffix[_key2 - 1] = arguments[_key2];\n }\n return path.interpose(\"children1\").withMutations(function (list) {\n list.push.apply(list, suffix);\n return list;\n });\n};\n\n/**\n * @param {Immutable.Map} tree\n * @param {Immutable.List} path\n * @return {Immutable.Map}\n */\nexport var getItemByPath = function getItemByPath(tree, path) {\n var children = new Immutable.OrderedMap(_defineProperty({}, tree.get(\"id\"), tree));\n var res = tree;\n path.forEach(function (id) {\n res = children.get(id);\n children = res.get(\"children1\");\n });\n return res;\n};\n\n/**\n * Remove `path` in every item\n * @param {Immutable.Map} tree\n * @return {Immutable.Map} tree\n */\n// export const removePathsInTree = (tree) => {\n// let newTree = tree;\n\n// function _processNode (item, path) {\n// const itemPath = path.push(item.get(\"id\"));\n// if (item.get(\"path\")) {\n// newTree = newTree.removeIn(expandTreePath(itemPath, \"path\"));\n// }\n\n// const children = item.get(\"children1\");\n// if (children) {\n// children.map((child, _childId) => {\n// _processNode(child, itemPath);\n// });\n// }\n// }\n\n// _processNode(tree, new Immutable.List());\n\n// return newTree;\n// };\n\n/**\n * Remove `isLocked` in items that inherit parent's `isLocked`\n * @param {Immutable.Map} tree\n * @return {Immutable.Map} tree\n */\nexport var removeIsLockedInTree = function removeIsLockedInTree(tree) {\n var newTree = tree;\n function _processNode(item, path) {\n var isParentLocked = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var itemPath = path.push(item.get(\"id\"));\n var isLocked = item.getIn([\"properties\", \"isLocked\"]);\n if (isParentLocked && isLocked) {\n newTree = newTree.deleteIn(expandTreePath(itemPath, \"properties\", \"isLocked\"));\n }\n var children = item.get(\"children1\");\n if (children) {\n children.map(function (child, _childId) {\n _processNode(child, itemPath, isLocked || isParentLocked);\n });\n }\n }\n _processNode(tree, new Immutable.List());\n return newTree;\n};\n\n/**\n * Set correct `path` and `id` in every item\n * @param {Immutable.Map} tree\n * @return {Immutable.Map} tree\n */\nexport var fixPathsInTree = function fixPathsInTree(tree) {\n var newTree = tree;\n function _processNode(item, path, lev, nodeId) {\n if (!item) return;\n var currPath = item.get(\"path\");\n var currId = item.get(\"id\");\n var itemId = currId || nodeId;\n var itemPath = path.push(itemId);\n if (!currPath || !currPath.equals(itemPath)) {\n newTree = newTree.setIn(expandTreePath(itemPath, \"path\"), itemPath);\n }\n if (!currId) {\n newTree = newTree.setIn(expandTreePath(itemPath, \"id\"), itemId);\n }\n var children = item.get(\"children1\");\n if (children) {\n if (children.constructor.name == \"Map\") {\n // protect: should be OrderedMap, not Map (issue #501)\n newTree = newTree.setIn(expandTreePath(itemPath, \"children1\"), new Immutable.OrderedMap(children));\n }\n children.map(function (child, childId) {\n _processNode(child, itemPath, lev + 1, childId);\n });\n }\n }\n _processNode(tree, new Immutable.List(), 0);\n return newTree;\n};\nexport var fixEmptyGroupsInTree = function fixEmptyGroupsInTree(tree) {\n var newTree = tree;\n function _processNode(item, path, lev, nodeId) {\n if (!item) return false;\n var itemId = item.get(\"id\") || nodeId;\n var itemPath = path.push(itemId);\n var children = item.get(\"children1\");\n if (children) {\n var allChildrenGone = children.map(function (child, childId) {\n return _processNode(child, itemPath, lev + 1, childId);\n }).reduce(function (curr, v) {\n return curr && v;\n }, true);\n if ((children.size == 0 || allChildrenGone) && lev > 0) {\n newTree = newTree.deleteIn(expandTreePath(itemPath));\n return true;\n }\n }\n return false;\n }\n _processNode(tree, new Immutable.List(), 0);\n return newTree;\n};\n\n/**\n * @param {Immutable.Map} tree\n * @return {Object} {flat, items}\n */\nexport var getFlatTree = function getFlatTree(tree) {\n var flat = [];\n var items = {};\n var realHeight = 0;\n function _flatizeTree(item, path, insideCollapsed, insideLocked, insideRuleGroup, lev, info, parentType, caseId) {\n var type = item.get(\"type\");\n var collapsed = item.get(\"collapsed\");\n var id = item.get(\"id\");\n var children = item.get(\"children1\");\n var isLocked = item.getIn([\"properties\", \"isLocked\"]);\n var childrenIds = children ? children.map(function (_child, childId) {\n return childId;\n }).toArray() : null;\n var isRuleGroup = type == \"rule_group\";\n // tip: count rule_group as 1 rule\n var isLeaf = !insideRuleGroup && (!children || isRuleGroup);\n var hasChildren = (childrenIds === null || childrenIds === void 0 ? void 0 : childrenIds.length) > 0;\n var itemsBefore = flat.length;\n var top = realHeight;\n flat.push(id);\n if (!insideCollapsed) realHeight += 1;\n info.height = (info.height || 0) + 1;\n items[id] = {\n type: type,\n parent: path.length ? path[path.length - 1] : null,\n parentType: parentType,\n caseId: type == \"case_group\" ? id : caseId,\n isDefaultCase: type == \"case_group\" && !children,\n path: path.concat(id),\n lev: lev,\n leaf: !children,\n index: itemsBefore,\n id: id,\n children: childrenIds,\n leafsCount: 0,\n _top: itemsBefore,\n //_height: (itemsAfter - itemsBefore),\n top: insideCollapsed ? null : top,\n //height: height,\n //bottom: (insideCollapsed ? null : top) + height,\n collapsed: collapsed,\n node: item,\n isLocked: isLocked || insideLocked\n };\n var depth;\n if (children) {\n var subinfo = {};\n children.map(function (child, _childId) {\n _flatizeTree(child, path.concat(id), insideCollapsed || collapsed, insideLocked || isLocked, insideRuleGroup || isRuleGroup, lev + 1, subinfo, type, type == \"case_group\" ? id : caseId);\n });\n if (!collapsed) {\n info.height = (info.height || 0) + (subinfo.height || 0);\n if (hasChildren && !isRuleGroup) {\n // tip: don't count children of rule_group\n depth = (subinfo.depth || 0) + 1;\n }\n }\n }\n if (caseId && isLeaf) {\n items[caseId].leafsCount++;\n }\n var itemsAfter = flat.length;\n var _bottom = realHeight;\n var height = info.height;\n Object.assign(items[id], {\n _height: itemsAfter - itemsBefore,\n height: height,\n bottom: (insideCollapsed ? null : top) + height\n });\n if (depth != undefined) {\n Object.assign(items[id], {\n depth: depth\n });\n info.depth = Math.max(info.depth || 0, depth);\n }\n }\n _flatizeTree(tree, [], false, false, false, 0, {}, null, null);\n for (var i = 0; i < flat.length; i++) {\n var prevId = i > 0 ? flat[i - 1] : null;\n var nextId = i < flat.length - 1 ? flat[i + 1] : null;\n var item = items[flat[i]];\n item.prev = prevId;\n item.next = nextId;\n }\n return {\n flat: flat,\n items: items\n };\n};\n\n/**\n * Returns count of reorderable(!) nodes\n * @param {Immutable.Map} tree\n * @return {Integer}\n */\nexport var getTotalReordableNodesCountInTree = function getTotalReordableNodesCountInTree(tree) {\n if (!tree) return -1;\n var cnt = 0;\n function _processNode(item, path, lev) {\n var id, children, type;\n if (typeof item.get === \"function\") {\n id = item.get(\"id\");\n children = item.get(\"children1\");\n type = item.get(\"type\");\n } else {\n id = item.id;\n children = item.children1;\n type = item.type;\n }\n var isRuleGroup = type == \"rule_group\";\n cnt++;\n //tip: rules in rule-group can be reordered only inside\n if (children && !isRuleGroup) {\n children.map(function (child, _childId) {\n _processNode(child, path.concat(id), lev + 1);\n });\n }\n }\n _processNode(tree, [], 0);\n return cnt - 1; // -1 for root\n};\n\n/**\n * Returns count of rules (leafs, i.e. don't count groups)\n * @param {Immutable.Map} tree\n * @return {Integer}\n */\nexport var getTotalRulesCountInTree = function getTotalRulesCountInTree(tree) {\n if (!tree) return -1;\n var cnt = 0;\n function _processNode(item, path, lev) {\n var id, children, type;\n if (typeof item.get === \"function\") {\n id = item.get(\"id\");\n children = item.get(\"children1\");\n type = item.get(\"type\");\n } else {\n id = item.id;\n children = item.children1;\n type = item.type;\n }\n if (type == \"rule\" || type == \"rule_group\") {\n // tip: count rule_group as 1 rule\n cnt++;\n } else if (children) {\n children.map(function (child, _childId) {\n _processNode(child, path.concat(id), lev + 1);\n });\n }\n }\n _processNode(tree, [], 0);\n return cnt;\n};\nexport var getTreeBadFields = function getTreeBadFields(tree) {\n var badFields = [];\n function _processNode(item, path, lev) {\n var id = item.get(\"id\");\n var children = item.get(\"children1\");\n var valueError = item.getIn([\"properties\", \"valueError\"]);\n var field = item.getIn([\"properties\", \"field\"]);\n if (valueError && valueError.size > 0 && valueError.filter(function (v) {\n return v != null;\n }).size > 0) {\n badFields.push(field);\n }\n if (children) {\n children.map(function (child, _childId) {\n _processNode(child, path.concat(id), lev + 1);\n });\n }\n }\n if (tree) _processNode(tree, [], 0);\n return Array.from(new Set(badFields));\n};\n\n// Remove fields that can be calced: \"id\", \"path\"\n// Remove empty fields: \"operatorOptions\"\nexport var getLightTree = function getLightTree(tree) {\n var children1AsArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var newTree = tree;\n function _processNode(item, itemId) {\n if (item.path) delete item.path;\n if (!children1AsArray && itemId) delete item.id;\n var properties = item.properties;\n if (properties) {\n if (properties.operatorOptions == null) delete properties.operatorOptions;\n }\n var children = item.children1;\n if (children) {\n for (var id in children) {\n _processNode(children[id], id);\n }\n if (children1AsArray) {\n item.children1 = Object.values(children);\n }\n }\n }\n _processNode(tree, null);\n return newTree;\n};\nexport var getSwitchValues = function getSwitchValues(tree) {\n var vals = [];\n var children = tree.get(\"children1\");\n if (children) {\n children.map(function (child) {\n var value = child.getIn([\"properties\", \"value\"]);\n var caseValue;\n if (value && value.size == 1) {\n caseValue = value.get(0);\n if (Array.isArray(caseValue) && caseValue.length == 0) {\n caseValue = null;\n }\n } else {\n caseValue = null;\n }\n vals = [].concat(_toConsumableArray(vals), [caseValue]);\n });\n }\n return vals;\n};\nexport var isEmptyTree = function isEmptyTree(tree) {\n return !tree.get(\"children1\") || tree.get(\"children1\").size == 0;\n};\nexport var hasChildren = function hasChildren(tree, path) {\n return tree.getIn(expandTreePath(path, \"children1\")).size > 0;\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport Immutable, { fromJS, Map } from \"immutable\";\nimport { validateTree } from \"../utils/validation\";\nimport { extendConfig } from \"../utils/configUtils\";\nimport { getTreeBadFields, getLightTree } from \"../utils/treeUtils\";\nimport { isJsonLogic } from \"../utils/stuff\";\nexport var getTree = function getTree(immutableTree) {\n var light = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var children1AsArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!immutableTree) return undefined;\n var tree = immutableTree;\n tree = tree.toJS();\n if (light) tree = getLightTree(tree, children1AsArray);\n return tree;\n};\nexport var loadTree = function loadTree(serTree) {\n if (isImmutableTree(serTree)) {\n return serTree;\n } else if (isTree(serTree)) {\n return jsToImmutable(serTree);\n } else if (typeof serTree == \"string\" && serTree.startsWith('[\"~#iM\"')) {\n //tip: old versions of RAQB were saving tree with `transit.toJSON()`\n // https://github.com/ukrbublik/react-awesome-query-builder/issues/69\n throw \"You are trying to load query in obsolete serialization format (Immutable string) which is not supported in versions starting from 2.1.17\";\n } else if (typeof serTree == \"string\") {\n return jsToImmutable(JSON.parse(serTree));\n } else throw \"Can't load tree!\";\n};\nexport var checkTree = function checkTree(tree, config) {\n if (!tree) return undefined;\n var extendedConfig = extendConfig(config, undefined, true);\n return validateTree(tree, null, extendedConfig, extendedConfig);\n};\nexport var isValidTree = function isValidTree(tree) {\n return getTreeBadFields(tree).length == 0;\n};\nexport var isImmutableTree = function isImmutableTree(tree) {\n return Map.isMap(tree);\n};\nexport var isTree = function isTree(tree) {\n return _typeof(tree) == \"object\" && (tree.type == \"group\" || tree.type == \"switch_group\");\n};\nexport { isJsonLogic };\nexport function jsToImmutable(tree) {\n var imm = fromJS(tree, function (key, value) {\n var outValue;\n if (key == \"properties\") {\n outValue = value.toOrderedMap();\n\n // `value` should be undefined instead of null\n // JSON doesn't support undefined and replaces undefined -> null\n // So fix: null -> undefined\n for (var i = 0; i < 2; i++) {\n var _outValue$get;\n if (((_outValue$get = outValue.get(\"value\")) === null || _outValue$get === void 0 ? void 0 : _outValue$get.get(i)) === null) {\n outValue = outValue.setIn([\"value\", i], undefined);\n }\n }\n } else if (key == \"value\" && Immutable.Iterable.isIndexed(value)) {\n outValue = value.map(function (v) {\n var _v$toJS;\n var vJs = v === null || v === void 0 || (_v$toJS = v.toJS) === null || _v$toJS === void 0 ? void 0 : _v$toJS.call(v);\n if (vJs !== null && vJs !== void 0 && vJs.func) {\n return v.toOrderedMap();\n } else if (v !== null && v !== void 0 && v.toJS) {\n // for values of multiselect use Array instead of List\n return vJs;\n } else {\n return v;\n }\n }).toList();\n } else if (key == \"asyncListValues\") {\n // keep in JS format\n outValue = value.toJS();\n } else if (key == \"children1\" && Immutable.Iterable.isIndexed(value)) {\n outValue = new Immutable.OrderedMap(value.map(function (child) {\n return [child.get(\"id\"), child];\n }));\n } else {\n outValue = Immutable.Iterable.isIndexed(value) ? value.toList() : value.toOrderedMap();\n }\n return outValue;\n });\n return imm;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/toArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport uuid from \"../utils/uuid\";\nimport { defaultValue, isJsonLogic, shallowEqual, logger } from \"../utils/stuff\";\nimport { getFieldConfig, extendConfig, normalizeField, getFuncConfig, iterateFuncs, getFieldParts } from \"../utils/configUtils\";\nimport { getWidgetForFieldOp } from \"../utils/ruleUtils\";\nimport { loadTree } from \"./tree\";\nimport { defaultConjunction, defaultGroupConjunction } from \"../utils/defaultUtils\";\nimport moment from \"moment\";\n\n// http://jsonlogic.com/\n\n// helpers\nvar arrayUniq = function arrayUniq(arr) {\n return Array.from(new Set(arr));\n};\nvar arrayToObject = function arrayToObject(arr) {\n return arr.reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n f = _ref2[0],\n fc = _ref2[1];\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, f, fc));\n }, {});\n};\nvar createMeta = function createMeta() {\n return {\n errors: []\n };\n};\nexport var loadFromJsonLogic = function loadFromJsonLogic(logicTree, config) {\n return _loadFromJsonLogic(logicTree, config, false);\n};\nexport var _loadFromJsonLogic = function _loadFromJsonLogic(logicTree, config) {\n var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //meta is mutable\n var meta = createMeta();\n var extendedConfig = extendConfig(config, undefined, false);\n var conv = buildConv(extendedConfig);\n var jsTree = logicTree ? convertFromLogic(logicTree, conv, extendedConfig, \"rule\", meta) : undefined;\n if (jsTree && jsTree.type != \"group\") {\n jsTree = wrapInDefaultConj(jsTree, extendedConfig);\n }\n var immTree = jsTree ? loadTree(jsTree) : undefined;\n if (returnErrors) {\n return [immTree, meta.errors];\n } else {\n if (meta.errors.length) console.warn(\"Errors while importing from JsonLogic:\", meta.errors);\n return immTree;\n }\n};\nvar buildConv = function buildConv(config) {\n var operators = {};\n for (var opKey in config.operators) {\n var opConfig = config.operators[opKey];\n if (typeof opConfig.jsonLogic == \"string\") {\n // example: \"</2\", \"#in/1\"\n var opk = (opConfig._jsonLogicIsRevArgs ? \"#\" : \"\") + opConfig.jsonLogic + \"/\" + defaultValue(opConfig.cardinality, 1);\n if (!operators[opk]) operators[opk] = [];\n operators[opk].push(opKey);\n } else if (typeof opConfig.jsonLogic2 == \"string\") {\n // example: all-in/1\"\n var _opk = opConfig.jsonLogic2 + \"/\" + defaultValue(opConfig.cardinality, 1);\n if (!operators[_opk]) operators[_opk] = [];\n operators[_opk].push(opKey);\n }\n }\n var conjunctions = {};\n for (var conjKey in config.conjunctions) {\n var conjunctionDefinition = config.conjunctions[conjKey];\n var ck = conjunctionDefinition.jsonLogicConj || conjKey.toLowerCase();\n conjunctions[ck] = conjKey;\n }\n var funcs = {};\n var _iterator = _createForOfIteratorHelper(iterateFuncs(config)),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n funcPath = _step$value[0],\n funcConfig = _step$value[1];\n var fk = void 0;\n if (funcConfig.jsonLogicIsMethod) {\n fk = \"#\" + funcConfig.jsonLogic;\n } else if (typeof funcConfig.jsonLogic == \"string\") {\n fk = funcConfig.jsonLogic;\n }\n if (fk) {\n if (!funcs[fk]) funcs[fk] = [];\n funcs[fk].push(funcPath);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _config$settings$json = config.settings.jsonLogic,\n groupVarKey = _config$settings$json.groupVarKey,\n altVarKey = _config$settings$json.altVarKey;\n return {\n operators: operators,\n conjunctions: conjunctions,\n funcs: funcs,\n varKeys: [\"var\", groupVarKey, altVarKey]\n };\n};\nvar convertFromLogic = function convertFromLogic(logic, conv, config, expectedType, meta) {\n var not = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var fieldConfig = arguments.length > 6 ? arguments[6] : undefined;\n var widget = arguments.length > 7 ? arguments[7] : undefined;\n var parentField = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null;\n var _isLockedLogic = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n var op, vals;\n if (isJsonLogic(logic)) {\n op = Object.keys(logic)[0];\n vals = logic[op];\n if (!Array.isArray(vals)) vals = [vals];\n }\n var ret;\n var beforeErrorsCnt = meta.errors.length;\n var lockedOp = config.settings.jsonLogic.lockedOp;\n var isEmptyOp = op == \"!\" && vals.length == 1 && vals[0] && isJsonLogic(vals[0]) && conv.varKeys.includes(Object.keys(vals[0])[0]);\n var isRev = op == \"!\" && !isEmptyOp;\n var isLocked = lockedOp && op == lockedOp;\n if (isLocked) {\n ret = convertFromLogic(vals[0], conv, config, expectedType, meta, not, fieldConfig, widget, parentField, true);\n } else if (isRev) {\n // reverse with not\n ret = convertFromLogic(vals[0], conv, config, expectedType, meta, !not, fieldConfig, widget, parentField);\n } else if (expectedType == \"val\") {\n // not is not used here\n ret = convertFieldRhs(op, vals, conv, config, not, meta, parentField) || convertFuncRhs(op, vals, conv, config, not, fieldConfig, meta, parentField) || convertValRhs(logic, fieldConfig, widget, config, meta);\n } else if (expectedType == \"rule\") {\n ret = convertConj(op, vals, conv, config, not, meta, parentField, false) || convertOp(op, vals, conv, config, not, meta, parentField);\n }\n var afterErrorsCnt = meta.errors.length;\n if (op != \"!\" && ret === undefined && afterErrorsCnt == beforeErrorsCnt) {\n meta.errors.push(\"Can't parse logic \".concat(JSON.stringify(logic)));\n }\n if (isLocked) {\n ret.properties.isLocked = true;\n }\n return ret;\n};\nvar convertValRhs = function convertValRhs(val, fieldConfig, widget, config, meta) {\n var _fieldConfig$fieldSet;\n if (val === undefined) val = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.defaultValue;\n if (val === undefined) return undefined;\n var widgetConfig = config.widgets[widget || (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.mainWidget)];\n var fieldType = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type;\n if (!widgetConfig) {\n meta.errors.push(\"No widget for type \".concat(fieldType));\n return undefined;\n }\n if (isJsonLogic(val)) {\n meta.errors.push(\"Unexpected logic in value: \".concat(JSON.stringify(val)));\n return undefined;\n }\n\n // number of seconds -> time string\n if (fieldType == \"time\" && typeof val == \"number\") {\n var h = Math.floor(val / 60 / 60) % 24,\n m = Math.floor(val / 60) % 60,\n s = val % 60;\n var valueFormat = widgetConfig.valueFormat;\n if (valueFormat) {\n var dateVal = new Date(val);\n dateVal.setMilliseconds(0);\n dateVal.setHours(h);\n dateVal.setMinutes(m);\n dateVal.setSeconds(s);\n val = moment(dateVal).format(valueFormat);\n } else {\n val = \"\".concat(h, \":\").concat(m, \":\").concat(s);\n }\n }\n\n // \"2020-01-08T22:00:00.000Z\" -> Date object\n if ([\"date\", \"datetime\"].includes(fieldType) && val && !(val instanceof Date)) {\n try {\n var _dateVal = new Date(val);\n if (_dateVal instanceof Date && _dateVal.toISOString() === val) {\n val = _dateVal;\n }\n } catch (e) {\n meta.errors.push(\"Can't convert value \".concat(val, \" as Date\"));\n val = undefined;\n }\n }\n\n // Date object -> formatted string\n if (val instanceof Date && fieldConfig) {\n var _valueFormat = widgetConfig.valueFormat;\n if (_valueFormat) {\n val = moment(val).format(_valueFormat);\n }\n }\n var asyncListValues;\n if (val && fieldConfig !== null && fieldConfig !== void 0 && (_fieldConfig$fieldSet = fieldConfig.fieldSettings) !== null && _fieldConfig$fieldSet !== void 0 && _fieldConfig$fieldSet.asyncFetch) {\n var vals = Array.isArray(val) ? val : [val];\n asyncListValues = vals;\n }\n return {\n valueSrc: \"value\",\n value: val,\n valueType: widgetConfig.type,\n asyncListValues: asyncListValues\n };\n};\nvar convertFieldRhs = function convertFieldRhs(op, vals, conv, config, not, meta) {\n var parentField = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n if (conv.varKeys.includes(op) && typeof vals[0] == \"string\") {\n var field = normalizeField(config, vals[0], parentField);\n var fieldConfig = getFieldConfig(config, field);\n if (!fieldConfig) {\n meta.errors.push(\"No config for field \".concat(field));\n return undefined;\n }\n return {\n valueSrc: \"field\",\n value: field,\n valueType: fieldConfig.type\n };\n }\n return undefined;\n};\nvar convertLhs = function convertLhs(isGroup0, jlField, args, conv, config) {\n var not = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var fieldConfig = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n var meta = arguments.length > 7 ? arguments[7] : undefined;\n var parentField = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null;\n var k = Object.keys(jlField)[0];\n var v = Object.values(jlField)[0];\n var _parse = function _parse(k, v) {\n return convertFieldLhs(k, v, conv, config, not, meta, parentField) || convertFuncLhs(k, v, conv, config, not, fieldConfig, meta, parentField);\n };\n var beforeErrorsCnt = meta.errors.length;\n var field, fieldSrc, having, isGroup;\n var parsed = _parse(k, v);\n if (parsed) {\n field = parsed.field;\n fieldSrc = parsed.fieldSrc;\n }\n if (isGroup0) {\n isGroup = true;\n having = args[0];\n args = [];\n }\n // reduce/filter for group ext\n if (k == \"reduce\" && Array.isArray(v) && v.length == 3) {\n var _v = v,\n _v2 = _slicedToArray(_v, 3),\n filter = _v2[0],\n acc = _v2[1],\n init = _v2[2];\n if (isJsonLogic(filter) && init == 0 && isJsonLogic(acc) && Array.isArray(acc[\"+\"]) && acc[\"+\"][0] == 1 && isJsonLogic(acc[\"+\"][1]) && acc[\"+\"][1][\"var\"] == \"accumulator\") {\n k = Object.keys(filter)[0];\n v = Object.values(filter)[0];\n if (k == \"filter\") {\n var _v3 = v,\n _v4 = _slicedToArray(_v3, 2),\n group = _v4[0],\n _filter = _v4[1];\n if (isJsonLogic(group)) {\n k = Object.keys(group)[0];\n v = Object.values(group)[0];\n var parsedGroup = _parse(k, v);\n if (parsedGroup) {\n field = parsedGroup.field;\n fieldSrc = parsedGroup.fieldSrc;\n having = _filter;\n isGroup = true;\n }\n }\n } else {\n var _parsedGroup = _parse(k, v);\n if (_parsedGroup) {\n field = _parsedGroup.field;\n fieldSrc = _parsedGroup.fieldSrc;\n isGroup = true;\n }\n }\n }\n }\n var afterErrorsCnt = meta.errors.length;\n if (!field && afterErrorsCnt == beforeErrorsCnt) {\n meta.errors.push(\"Unknown LHS \".concat(JSON.stringify(jlField)));\n }\n if (!field) return;\n return {\n field: field,\n fieldSrc: fieldSrc,\n having: having,\n isGroup: isGroup,\n args: args\n };\n};\nvar convertFieldLhs = function convertFieldLhs(op, vals, conv, config, not, meta) {\n var parentField = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n if (!Array.isArray(vals)) vals = [vals];\n var parsed = convertFieldRhs(op, vals, conv, config, not, meta, parentField);\n if (parsed) {\n return {\n fieldSrc: \"field\",\n field: parsed.value\n };\n }\n return undefined;\n};\nvar convertFuncLhs = function convertFuncLhs(op, vals, conv, config, not) {\n var fieldConfig = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var meta = arguments.length > 6 ? arguments[6] : undefined;\n var parentField = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n var parsed = convertFuncRhs(op, vals, conv, config, not, fieldConfig, meta, parentField);\n if (parsed) {\n return {\n fieldSrc: \"func\",\n field: parsed.value\n };\n }\n return undefined;\n};\nvar convertFuncRhs = function convertFuncRhs(op, vals, conv, config, not) {\n var fieldConfig = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var meta = arguments.length > 6 ? arguments[6] : undefined;\n var parentField = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n if (!op) return undefined;\n var func, argsArr, funcKey;\n var jsonLogicIsMethod = op == \"method\";\n if (jsonLogicIsMethod) {\n var obj, opts;\n var _vals = _toArray(vals);\n obj = _vals[0];\n func = _vals[1];\n opts = _vals.slice(2);\n argsArr = [obj].concat(_toConsumableArray(opts));\n } else {\n func = op;\n argsArr = vals;\n }\n var fk = (jsonLogicIsMethod ? \"#\" : \"\") + func;\n var returnType = (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type) || (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.returnType);\n var funcKeys = (conv.funcs[fk] || []).filter(function (k) {\n return fieldConfig ? getFuncConfig(config, k).returnType == returnType : true;\n });\n if (funcKeys.length) {\n funcKey = funcKeys[0];\n } else {\n var v = _defineProperty({}, op, vals);\n var _iterator2 = _createForOfIteratorHelper(iterateFuncs(config)),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n f = _step2$value[0],\n fc = _step2$value[1];\n if (fc.jsonLogicImport && (returnType ? fc.returnType == returnType : true)) {\n var parsed = void 0;\n try {\n parsed = fc.jsonLogicImport(v);\n } catch (_e) {\n // given expression `v` can't be parsed into function\n }\n if (parsed) {\n funcKey = f;\n argsArr = parsed;\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n if (!funcKey) return undefined;\n if (funcKey) {\n var funcConfig = getFuncConfig(config, funcKey);\n var argKeys = Object.keys(funcConfig.args || {});\n var argsObj = argsArr.reduce(function (acc, val, ind) {\n var argKey = argKeys[ind];\n var argConfig = funcConfig.args[argKey];\n var argVal;\n if (argConfig) {\n argVal = convertFromLogic(val, conv, config, \"val\", meta, false, argConfig, null, parentField);\n }\n return argVal !== undefined ? _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, argKey, argVal)) : acc;\n }, {});\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var argVal = argsObj[argKey];\n if (argVal === undefined) {\n argVal = argConfig === null || argConfig === void 0 ? void 0 : argConfig.defaultValue;\n if (argVal !== undefined) {\n var _argVal;\n argVal = {\n value: argVal,\n valueSrc: (_argVal = argVal) !== null && _argVal !== void 0 && _argVal.func ? \"func\" : \"value\",\n valueType: argConfig.type\n };\n }\n if (argVal === undefined) {\n if (argConfig !== null && argConfig !== void 0 && argConfig.isOptional) {\n //ignore\n } else {\n meta.errors.push(\"No value for arg \".concat(argKey, \" of func \").concat(funcKey));\n return undefined;\n }\n } else {\n argsObj[argKey] = argVal;\n }\n }\n }\n return {\n valueSrc: \"func\",\n value: {\n func: funcKey,\n args: argsObj\n },\n valueType: funcConfig.returnType\n };\n }\n return undefined;\n};\nvar convertConj = function convertConj(op, vals, conv, config, not, meta) {\n var parentField = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n var isRuleGroup = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;\n var conjKey = conv.conjunctions[op];\n var fieldSeparator = config.settings.fieldSeparator;\n // const parentFieldConfig = parentField ? getFieldConfig(config, parentField) : null;\n // const isParentGroup = parentFieldConfig?.type == \"!group\";\n if (conjKey) {\n var type = \"group\";\n var children = vals.map(function (v) {\n return convertFromLogic(v, conv, config, \"rule\", meta, false, null, null, parentField);\n }).filter(function (r) {\n return r !== undefined;\n }).reduce(function (acc, r) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, r.id, r));\n }, {});\n var complexFields = Object.values(children).map(function (v) {\n var _v$properties, _v$properties2;\n return (v === null || v === void 0 || (_v$properties = v.properties) === null || _v$properties === void 0 ? void 0 : _v$properties.fieldSrc) == \"field\" && (v === null || v === void 0 || (_v$properties2 = v.properties) === null || _v$properties2 === void 0 ? void 0 : _v$properties2.field);\n }).filter(function (f) {\n var _f$includes;\n return f === null || f === void 0 || (_f$includes = f.includes) === null || _f$includes === void 0 ? void 0 : _f$includes.call(f, fieldSeparator);\n });\n var complexFieldsGroupAncestors = Object.fromEntries(arrayUniq(complexFields).map(function (f) {\n var parts = f.split(fieldSeparator);\n var ancs = Object.fromEntries(parts.slice(0, -1).map(function (f, i, parts) {\n return [].concat(_toConsumableArray(parts.slice(0, i)), [f]);\n }).map(function (fp) {\n return [fp.join(fieldSeparator), getFieldConfig(config, fp)];\n }).filter(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n _f = _ref4[0],\n fc = _ref4[1];\n return (fc === null || fc === void 0 ? void 0 : fc.type) == \"!group\";\n }));\n return [f, Object.keys(ancs)];\n }));\n // const childrenInRuleGroup = Object.values(children)\n // .map(v => v?.properties?.fieldSrc == \"field\" && v?.properties?.field)\n // .map(f => complexFieldsGroupAncestors[f])\n // .filter(ancs => ancs && ancs.length);\n // const usedRuleGroups = arrayUniq(Object.values(complexFieldsGroupAncestors).flat());\n // const usedTopRuleGroups = topLevelFieldsFilter(usedRuleGroups);\n\n var properties = {\n conjunction: conjKey,\n not: not\n };\n var id = uuid();\n var children1 = {};\n var groupToId = {};\n Object.entries(children).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n k = _ref6[0],\n v = _ref6[1];\n if ((v === null || v === void 0 ? void 0 : v.type) == \"group\" || (v === null || v === void 0 ? void 0 : v.type) == \"rule_group\") {\n // put as-is\n children1[k] = v;\n } else {\n var _v$properties3;\n var field = v === null || v === void 0 || (_v$properties3 = v.properties) === null || _v$properties3 === void 0 ? void 0 : _v$properties3.field;\n var groupAncestors = complexFieldsGroupAncestors[field] || [];\n var groupField = groupAncestors[groupAncestors.length - 1];\n if (!groupField) {\n // not in rule_group (can be simple field or in struct) - put as-is\n if (v) {\n children1[k] = v;\n }\n } else {\n // wrap field in rule_group (with creating hierarchy if need)\n var ch = children1;\n var parentFieldParts = getFieldParts(parentField, config);\n var groupPath = getFieldParts(groupField, config);\n var isInParent = shallowEqual(parentFieldParts, groupPath.slice(0, parentFieldParts.length));\n if (!isInParent) parentFieldParts = []; // should not be\n var traverseGroupFields = groupField.split(fieldSeparator).slice(parentFieldParts.length).map(function (f, i, parts) {\n return [].concat(_toConsumableArray(parentFieldParts), _toConsumableArray(parts.slice(0, i)), [f]).join(fieldSeparator);\n }).map(function (f) {\n return {\n f: f,\n fc: getFieldConfig(config, f) || {}\n };\n }).filter(function (_ref7) {\n var fc = _ref7.fc;\n return fc.type != \"!struct\";\n });\n traverseGroupFields.map(function (_ref8, i) {\n var gf = _ref8.f,\n gfc = _ref8.fc;\n var groupId = groupToId[gf];\n if (!groupId) {\n groupId = uuid();\n groupToId[gf] = groupId;\n ch[groupId] = {\n type: \"rule_group\",\n id: groupId,\n children1: {},\n properties: {\n conjunction: conjKey,\n not: false,\n field: gf,\n fieldSrc: \"field\",\n mode: gfc.mode\n }\n };\n }\n ch = ch[groupId].children1;\n });\n ch[k] = v;\n }\n }\n });\n\n // tip: for isRuleGroup=true correct type and properties will be set out of this func\n\n return {\n type: type,\n id: id,\n children1: children1,\n properties: properties\n };\n }\n return undefined;\n};\n\n// const topLevelFieldsFilter = (fields) => {\n// let arr = [...fields].sort((a, b) => (a.length - b.length));\n// for (let i = 0 ; i < arr.length ; i++) {\n// for (let j = i + 1 ; j < arr.length ; j++) {\n// if (arr[j].indexOf(arr[i]) == 0) {\n// // arr[j] is inside arr[i] (eg. \"a.b\" inside \"a\")\n// arr.splice(j, 1);\n// j--;\n// }\n// }\n// }\n// return arr;\n// };\n\nvar wrapInDefaultConjRuleGroup = function wrapInDefaultConjRuleGroup(rule, parentField, parentFieldConfig, config, conj) {\n if (!rule) return undefined;\n return {\n type: \"rule_group\",\n id: uuid(),\n children1: _defineProperty({}, rule.id, rule),\n properties: {\n conjunction: conj || defaultGroupConjunction(config, parentFieldConfig),\n not: false,\n field: parentField\n }\n };\n};\nvar wrapInDefaultConj = function wrapInDefaultConj(rule, config) {\n var not = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: \"group\",\n id: uuid(),\n children1: _defineProperty({}, rule.id, rule),\n properties: {\n conjunction: defaultConjunction(config),\n not: not\n }\n };\n};\nvar parseRule = function parseRule(op, arity, vals, parentField, conv, config, meta) {\n var submeta = createMeta();\n var res = _parseRule(op, arity, vals, parentField, conv, config, false, submeta);\n if (!res) {\n // try reverse\n res = _parseRule(op, arity, vals, parentField, conv, config, true, createMeta());\n }\n if (!res) {\n meta.errors.push(submeta.errors.join(\"; \") || \"Unknown op \".concat(op, \"/\").concat(arity));\n return undefined;\n }\n return res;\n};\nvar _parseRule = function _parseRule(op, arity, vals, parentField, conv, config, isRevArgs, meta) {\n // config.settings.groupOperators are used for group count (cardinality = 0 is exception)\n // but don't confuse with \"all-in\" or \"some-in\" for multiselect\n var isAllOrSomeInForMultiselect = (op == \"all\" || op == \"some\") && isJsonLogic(vals[1]) && Object.keys(vals[1])[0] == \"in\";\n var isGroup0 = !isAllOrSomeInForMultiselect && config.settings.groupOperators.includes(op);\n var eqOps = [\"==\", \"!=\"];\n var cardinality = isGroup0 ? 0 : arity - 1;\n if (isGroup0) cardinality = 0;else if (eqOps.includes(op) && cardinality == 1 && vals[1] === null) {\n arity = 1;\n cardinality = 0;\n vals = [vals[0]];\n }\n var opk = op + \"/\" + cardinality;\n var opKeys = conv.operators[(isRevArgs ? \"#\" : \"\") + opk];\n if (!opKeys) return;\n var jlField,\n jlArgs = [];\n var rangeOps = [\"<\", \"<=\", \">\", \">=\"];\n if (rangeOps.includes(op) && arity == 3) {\n jlField = vals[1];\n jlArgs = [vals[0], vals[2]];\n } else if (isRevArgs) {\n jlField = vals[1];\n jlArgs = [vals[0]];\n } else {\n var _vals2 = vals;\n var _vals3 = _toArray(_vals2);\n jlField = _vals3[0];\n jlArgs = _vals3.slice(1);\n }\n if (!isJsonLogic(jlField)) {\n meta.errors.push(\"Incorrect operands for \".concat(op, \": \").concat(JSON.stringify(vals)));\n return;\n }\n var lhs = convertLhs(isGroup0, jlField, jlArgs, conv, config, null, null, meta, parentField);\n if (!lhs) return;\n var field = lhs.field,\n fieldSrc = lhs.fieldSrc,\n having = lhs.having,\n isGroup = lhs.isGroup,\n args = lhs.args;\n var fieldConfig = getFieldConfig(config, field);\n if (!fieldConfig) {\n meta.errors.push(\"No config for LHS \".concat(field));\n return;\n }\n var opKey = opKeys[0];\n if (opKeys.length > 1 && fieldConfig && fieldConfig.operators) {\n // eg. for \"equal\" and \"select_equals\"\n opKeys = opKeys.filter(function (k) {\n return fieldConfig.operators.includes(k);\n });\n if (opKeys.length == 0) {\n meta.errors.push(\"No corresponding ops for LHS \".concat(field));\n return;\n }\n opKey = opKeys[0];\n }\n return {\n field: field,\n fieldSrc: fieldSrc,\n fieldConfig: fieldConfig,\n opKey: opKey,\n args: args,\n having: having\n };\n};\nvar convertOp = function convertOp(op, vals, conv, config, not, meta) {\n var parentField = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n if (!op) return undefined;\n var arity = vals.length;\n if ((op == \"all\" || op == \"some\") && isJsonLogic(vals[1])) {\n // special case for \"all-in\" and \"some-in\"\n var op2 = Object.keys(vals[1])[0];\n if (op2 == \"in\") {\n vals = [vals[0], vals[1][op2][1]];\n op = op + \"-\" + op2; // \"all-in\" and \"some-in\"\n }\n }\n\n var parseRes = parseRule(op, arity, vals, parentField, conv, config, meta);\n if (!parseRes) return undefined;\n var field = parseRes.field,\n fieldSrc = parseRes.fieldSrc,\n fieldConfig = parseRes.fieldConfig,\n opKey = parseRes.opKey,\n args = parseRes.args,\n having = parseRes.having;\n var opConfig = config.operators[opKey];\n\n // Group component in array mode can show NOT checkbox, so do nothing in this case\n // Otherwise try to revert\n var showNot = fieldConfig.showNot !== undefined ? fieldConfig.showNot : config.settings.showNot;\n var canRev = true;\n // if (fieldConfig.type == \"!group\" && fieldConfig.mode == \"array\" && showNot)\n // canRev = false;\n\n var conj;\n var havingVals;\n var havingNot = false;\n if (fieldConfig.type == \"!group\" && having) {\n conj = Object.keys(having)[0];\n havingVals = having[conj];\n if (!Array.isArray(havingVals)) havingVals = [havingVals];\n\n // Preprocess \"!\": Try to reverse op in single rule in having\n // Eg. use `not_equal` instead of `not` `equal`\n var isEmptyOp = conj == \"!\" && havingVals.length == 1 && havingVals[0] && isJsonLogic(havingVals[0]) && conv.varKeys.includes(Object.keys(havingVals[0])[0]);\n if (conj == \"!\" && !isEmptyOp) {\n havingNot = true;\n having = having[\"!\"];\n conj = Object.keys(having)[0];\n havingVals = having[conj];\n if (!Array.isArray(havingVals)) havingVals = [havingVals];\n }\n }\n\n // Use reversed op\n if (not && canRev && opConfig.reversedOp) {\n not = false;\n opKey = opConfig.reversedOp;\n opConfig = config.operators[opKey];\n }\n var widget = getWidgetForFieldOp(config, field, opKey, null);\n var convertedArgs = args.map(function (v) {\n return convertFromLogic(v, conv, config, \"val\", meta, false, fieldConfig, widget, parentField);\n });\n if (convertedArgs.filter(function (v) {\n return v === undefined;\n }).length) {\n //meta.errors.push(`Undefined arg for field ${field} and op ${opKey}`);\n return undefined;\n }\n var res;\n var fieldType = fieldConfig.type;\n if (fieldType === \"!group\" || fieldType === \"!struct\") {\n fieldType = null;\n }\n if (fieldConfig.type == \"!group\" && having) {\n if (conv.conjunctions[conj] !== undefined) {\n // group\n res = convertConj(conj, havingVals, conv, config, havingNot, meta, field, true);\n havingNot = false;\n } else {\n // need to be wrapped in `rule_group`\n var rule = convertOp(conj, havingVals, conv, config, havingNot, meta, field);\n havingNot = false;\n res = wrapInDefaultConjRuleGroup(rule, field, fieldConfig, config, conv.conjunctions[\"and\"]);\n }\n if (!res) return undefined;\n res.type = \"rule_group\";\n Object.assign(res.properties, {\n field: field,\n mode: fieldConfig.mode,\n operator: opKey\n });\n if (fieldConfig.mode == \"array\") {\n Object.assign(res.properties, {\n value: convertedArgs.map(function (v) {\n return v.value;\n }),\n valueSrc: convertedArgs.map(function (v) {\n return v.valueSrc;\n }),\n valueType: convertedArgs.map(function (v) {\n return v.valueType;\n })\n });\n }\n if (not) {\n res = wrapInDefaultConj(res, config, not);\n }\n } else if (fieldConfig.type == \"!group\" && !having) {\n res = {\n type: \"rule_group\",\n id: uuid(),\n children1: {},\n properties: {\n conjunction: defaultGroupConjunction(config, fieldConfig),\n not: not,\n mode: fieldConfig.mode,\n field: field,\n operator: opKey\n }\n };\n if (fieldConfig.mode == \"array\") {\n Object.assign(res.properties, {\n value: convertedArgs.map(function (v) {\n return v.value;\n }),\n valueSrc: convertedArgs.map(function (v) {\n return v.valueSrc;\n }),\n valueType: convertedArgs.map(function (v) {\n return v.valueType;\n })\n });\n }\n } else {\n var asyncListValuesArr = convertedArgs.map(function (v) {\n return v.asyncListValues;\n }).filter(function (v) {\n return v != undefined;\n });\n var asyncListValues = asyncListValuesArr.length ? asyncListValuesArr[0] : undefined;\n res = {\n type: \"rule\",\n id: uuid(),\n properties: _objectSpread({\n field: field,\n fieldSrc: fieldSrc,\n operator: opKey,\n value: convertedArgs.map(function (v) {\n return v.value;\n }),\n valueSrc: convertedArgs.map(function (v) {\n return v.valueSrc;\n }),\n valueType: convertedArgs.map(function (v) {\n return v.valueType;\n })\n }, asyncListValues ? {\n asyncListValues: asyncListValues\n } : {})\n };\n if (not) {\n //meta.errors.push(`No rev op for ${opKey}`);\n res = wrapInDefaultConj(res, config, not);\n }\n }\n return res;\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport SqlStringOrig from \"sqlstring\";\nexport var SqlString = SqlStringOrig;\nSqlString.trim = function (val) {\n if (val.charAt(0) == \"'\") return val.substring(1, val.length - 1);else return val;\n};\nSqlString.escapeLike = function (val) {\n var any_start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var any_end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // normal escape\n var res = SqlString.escape(val);\n // unwrap ''\n res = SqlString.trim(res);\n // escape % and _\n res = res.replace(/[%_]/g, \"\\\\$&\");\n // wrap with % for LIKE\n res = (any_start ? \"%\" : \"\") + res + (any_end ? \"%\" : \"\");\n // wrap ''\n res = \"'\" + res + \"'\";\n return res;\n};\nexport var sqlEmptyValue = function sqlEmptyValue(fieldDef) {\n var v = \"''\";\n var type = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.type;\n if (type == \"date\") {\n //todo: support other SQL dialects? 0001-01-01 for oracle, 1970-01-01 for timestamp\n v = \"'0000-00-00'\";\n } else if (type == \"datetime\") {\n v = \"'0000-00-00 00:00'\";\n } else if (type == \"time\") {\n v = \"'00:00'\";\n } else if (type == \"number\") {\n v = \"0\";\n }\n return v;\n};\nexport var mongoEmptyValue = function mongoEmptyValue(fieldDef) {\n var v = \"\";\n var type = fieldDef === null || fieldDef === void 0 ? void 0 : fieldDef.type;\n if (type == \"number\") {\n v = 0;\n }\n return v;\n};\nvar spelEscapeString = function spelEscapeString(val) {\n // Strings are delimited by single quotes. To put a single quote itself in a string, use two single quote characters. \n return \"'\" + val.replace(/'/g, \"''\") + \"'\";\n};\nvar spelInlineList = function spelInlineList(vals) {\n var toArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n // find java type of values\n var javaType;\n var jt;\n var numberJavaTypes = [\"int\", \"float\"];\n vals.map(function (v) {\n if (v !== undefined && v !== null) {\n if (typeof v === \"string\") {\n jt = \"String\";\n } else if (typeof v === \"number\") {\n jt = Number.isInteger(v) ? \"int\" : \"float\";\n } else throw new Error(\"spelEscape: Can't use value \".concat(v, \" in array\"));\n if (!javaType) {\n javaType = jt;\n } else if (javaType != jt) {\n if (numberJavaTypes.includes(javaType) && numberJavaTypes.includes(jt)) {\n // found int and float in collecton - use float\n javaType = \"float\";\n } else throw new Error(\"spelEscape: Can't use different types in array: found \".concat(javaType, \" and \").concat(jt));\n }\n }\n });\n if (!javaType) {\n javaType = \"String\"; //default if empty array\n }\n\n // for floats we should add 'f' to all items\n var escapedVals;\n if (javaType == \"float\") {\n escapedVals = vals.map(function (v) {\n return spelEscape(v, true);\n });\n } else {\n escapedVals = vals.map(function (v) {\n return spelEscape(v);\n });\n }\n\n // build inline list or array\n var res;\n if (toArray) {\n res = \"new \".concat(javaType, \"[]{\").concat(escapedVals.join(\", \"), \"}\");\n } else {\n res = \"{\".concat(escapedVals.join(\", \"), \"}\");\n }\n return res;\n};\nexport var spelFixList = function spelFixList(val) {\n // `{1,2}.contains(1)` NOT works\n // `{1,2}.?[true].contains(1)` works\n return \"\".concat(val, \".?[true]\");\n};\nexport var spelEscape = function spelEscape(val) {\n var numberToFloat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var arrayToArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions-ref-literal\n if (val === undefined || val === null) {\n return \"null\";\n }\n switch (_typeof(val)) {\n case \"boolean\":\n return val ? \"true\" : \"false\";\n case \"number\":\n if (!Number.isFinite(val) || isNaN(val)) return undefined;\n return val + (!Number.isInteger(val) || numberToFloat ? \"f\" : \"\");\n case \"object\":\n if (Array.isArray(val)) {\n return spelInlineList(val, arrayToArray);\n } else {\n // see `spelFormatValue` for Date, LocalTime\n throw new Error(\"spelEscape: Object is not supported\");\n }\n default:\n return spelEscapeString(val);\n }\n};\nexport var spelFormatConcat = function spelFormatConcat(parts) {\n if (parts && Array.isArray(parts) && parts.length) {\n return parts.map(function (part) {\n if (part.type == \"const\") {\n return spelEscape(part.value);\n } else if (part.type == \"property\") {\n return \"\" + part.value;\n } else if (part.type == \"variable\") {\n return \"#\" + part.value;\n }\n return undefined;\n }).filter(function (r) {\n return r != undefined;\n }).join(\" + \");\n } else {\n return \"null\";\n }\n};\n\n// `val` is {value, valueType, valueSrc}\n// If `valueType` == \"case_value\", `value` is array of such items (to be considered as concatenation)\nexport var spelImportConcat = function spelImportConcat(val) {\n if (val == undefined) return [undefined, []];\n var errors = [];\n var parts = val.valueType == \"case_value\" ? val.value : [val];\n var res = parts.map(function (child) {\n if (child.valueSrc == \"value\") {\n if (child.value === null) {\n return undefined;\n } else {\n return {\n type: \"const\",\n value: child.value\n };\n }\n } else if (child.valueSrc == \"field\") {\n return {\n type: child.isVariable ? \"variable\" : \"property\",\n value: child.value\n };\n } else {\n errors.push(\"Unsupported valueSrc \".concat(child.valueSrc, \" in concatenation\"));\n }\n }).filter(function (v) {\n return v != undefined;\n });\n return [res, errors];\n};\nexport var stringifyForDisplay = function stringifyForDisplay(v) {\n return v == null ? \"NULL\" : v.toString();\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, extendConfig, getFieldParts } from \"../utils/configUtils\";\nimport { getWidgetForFieldOp, formatFieldName, getFieldPartsConfigs, completeValue } from \"../utils/ruleUtils\";\nimport omit from \"lodash/omit\";\nimport pick from \"lodash/pick\";\nimport { defaultValue, logger, widgetDefKeysToOmit, opDefKeysToOmit } from \"../utils/stuff\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport { List, Map } from \"immutable\";\nimport { spelEscape } from \"../utils/export\";\n\n// https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions\n\nexport var compareToSign = \"${0}.compareTo(${1})\";\nvar TypesWithCompareTo = {\n datetime: true,\n time: true,\n date: true\n};\nexport var spelFormat = function spelFormat(tree, config) {\n return _spelFormat(tree, config, false);\n};\nexport var _spelFormat = function _spelFormat(tree, config) {\n var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //meta is mutable\n var meta = {\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var res = formatItem(tree, extendedConfig, meta, null);\n if (returnErrors) {\n return [res, meta.errors];\n } else {\n if (meta.errors.length) console.warn(\"Errors while exporting to SpEL:\", meta.errors);\n return res;\n }\n};\nvar formatItem = function formatItem(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!item) return undefined;\n var type = item.get(\"type\");\n if (type === \"group\" || type === \"rule_group\") {\n return formatGroup(item, config, meta, parentField);\n } else if (type === \"rule\") {\n return formatRule(item, config, meta, parentField);\n } else if (type == \"switch_group\") {\n return formatSwitch(item, config, meta, parentField);\n } else if (type == \"case_group\") {\n return formatCase(item, config, meta, parentField);\n }\n return undefined;\n};\nvar formatCase = function formatCase(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var type = item.get(\"type\");\n if (type != \"case_group\") {\n meta.errors.push(\"Unexpected child of type \".concat(type, \" inside switch\"));\n return undefined;\n }\n var properties = item.get(\"properties\") || new Map();\n var _formatItemValue = formatItemValue(config, properties, meta, null, parentField, \"!case_value\"),\n _formatItemValue2 = _slicedToArray(_formatItemValue, 3),\n formattedValue = _formatItemValue2[0],\n valueSrc = _formatItemValue2[1],\n valueType = _formatItemValue2[2];\n var cond = formatGroup(item, config, meta, parentField);\n return [cond, formattedValue];\n};\nvar formatSwitch = function formatSwitch(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var properties = item.get(\"properties\") || new Map();\n var children = item.get(\"children1\");\n if (!children) return undefined;\n var cases = children.map(function (currentChild) {\n return formatCase(currentChild, config, meta, null);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n }).toArray();\n if (!cases.length) return undefined;\n if (cases.length == 1 && !cases[0][0]) {\n // only 1 case without condition\n return cases[0][1];\n }\n var filteredCases = [];\n for (var i = 0; i < cases.length; i++) {\n if (i != cases.length - 1 && !cases[i][0]) {\n meta.errors.push(\"No condition for case \".concat(i));\n } else {\n filteredCases.push(cases[i]);\n if (i == cases.length - 1 && cases[i][0]) {\n // no default - add null as default\n filteredCases.push([undefined, null]);\n }\n }\n }\n var left = \"\",\n right = \"\";\n for (var _i = 0; _i < filteredCases.length; _i++) {\n var _filteredCases$_i = _slicedToArray(filteredCases[_i], 2),\n cond = _filteredCases$_i[0],\n value = _filteredCases$_i[1];\n if (value == undefined) value = \"null\";\n if (cond == undefined) cond = \"true\";\n if (_i != filteredCases.length - 1) {\n left += \"(\".concat(cond, \" ? \").concat(value, \" : \");\n right += \")\";\n } else {\n left += \"\".concat(value);\n }\n }\n return left + right;\n};\nvar formatGroup = function formatGroup(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var mode = properties.get(\"mode\");\n var children = item.get(\"children1\") || new List();\n var field = properties.get(\"field\");\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var conjunctionDefinition = config.conjunctions[conjunction];\n var not = properties.get(\"not\");\n var isRuleGroup = type === \"rule_group\";\n var isRuleGroupArray = isRuleGroup && mode != \"struct\";\n var groupField = isRuleGroupArray ? field : parentField;\n var groupFieldDef = getFieldConfig(config, groupField) || {};\n var isSpelArray = groupFieldDef.isSpelArray;\n var fieldSeparator = config.settings.fieldSeparator;\n\n // check op for reverse\n var groupOperator = properties.get(\"operator\");\n if (!groupOperator && (!mode || mode == \"some\")) {\n groupOperator = \"some\";\n }\n var realGroupOperator = checkOp(config, groupOperator, field);\n var isGroupOpRev = realGroupOperator != groupOperator;\n var realGroupOperatorDefinition = groupOperator && getOperatorConfig(config, realGroupOperator, field) || null;\n var isGroup0 = isRuleGroup && (!realGroupOperator || realGroupOperatorDefinition.cardinality == 0);\n\n // build value for aggregation op\n var _formatItemValue3 = formatItemValue(config, properties, meta, realGroupOperator, parentField, null),\n _formatItemValue4 = _slicedToArray(_formatItemValue3, 3),\n formattedValue = _formatItemValue4[0],\n valueSrc = _formatItemValue4[1],\n valueType = _formatItemValue4[2];\n\n // build filter in aggregation\n var list = children.map(function (currentChild) {\n return formatItem(currentChild, config, meta, groupField);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (isRuleGroupArray && !isGroup0) {\n // \"count\" rule can have no \"having\" children, but should have number value\n if (formattedValue == undefined) return undefined;\n } else {\n if (!list.size) return undefined;\n }\n var omitBrackets = isRuleGroup;\n var filter = list.size ? conjunctionDefinition.spelFormatConj(list, conjunction, not, omitBrackets) : null;\n\n // build result\n var ret;\n if (isRuleGroupArray) {\n var formattedField = formatField(meta, config, field, parentField);\n var sep = fieldSeparator || \".\";\n var getSize = sep + (isSpelArray ? \"length\" : \"size()\");\n var fullSize = \"\".concat(formattedField).concat(getSize);\n // https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions-collection-selection\n var filteredSize = filter ? \"\".concat(formattedField, \".?[\").concat(filter, \"]\").concat(getSize) : fullSize;\n var groupValue = isGroup0 ? fullSize : formattedValue;\n // format expression\n ret = formatExpression(meta, config, properties, filteredSize, groupValue, realGroupOperator, valueSrc, valueType, isGroupOpRev);\n } else {\n ret = filter;\n }\n return ret;\n};\nvar buildFnToFormatOp = function buildFnToFormatOp(operator, operatorDefinition, valueType) {\n var spelOp = operatorDefinition.spelOp;\n if (!spelOp) return undefined;\n var isSign = spelOp.includes(\"${0}\");\n var isCompareTo = TypesWithCompareTo[valueType];\n var sop = spelOp;\n var fn;\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n if (isCompareTo) {\n // date1.compareTo(date2) >= 0\n // instead of\n // date1 >= date2\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var compareRes = compareToSign.replace(/\\${(\\w+)}/g, function (_, k) {\n return k == 0 ? field : cardinality > 1 ? values[k - 1] : values;\n });\n return \"\".concat(compareRes, \" \").concat(sop, \" 0\");\n };\n } else if (isSign) {\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n return spelOp.replace(/\\${(\\w+)}/g, function (_, k) {\n return k == 0 ? field : cardinality > 1 ? values[k - 1] : values;\n });\n };\n } else if (cardinality == 0) {\n // should not be\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" \").concat(sop);\n };\n } else if (cardinality == 1) {\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" \").concat(sop, \" \").concat(values);\n };\n }\n return fn;\n};\nvar formatExpression = function formatExpression(meta, config, properties, formattedField, formattedValue, operator, valueSrc, valueType) {\n var isRev = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var field = properties.get(\"field\");\n var opDef = getOperatorConfig(config, operator, field) || {};\n var fieldDef = getFieldConfig(config, field) || {};\n var operatorOptions = properties.get(\"operatorOptions\");\n\n //find fn to format expr\n var fn = opDef.spelFormatOp || buildFnToFormatOp(operator, opDef, valueType);\n if (!fn) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n\n //format expr\n var args = [formattedField, operator, formattedValue, valueSrc, valueType, omit(opDef, opDefKeysToOmit), operatorOptions, fieldDef];\n var ret;\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n\n //rev\n if (isRev) {\n ret = config.settings.spelFormatReverse(ret);\n }\n if (ret === undefined) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported for value source \").concat(valueSrc));\n }\n return ret;\n};\nvar checkOp = function checkOp(config, operator, field) {\n if (!operator) return undefined;\n var opDef = getOperatorConfig(config, operator, field) || {};\n var reversedOp = opDef.reversedOp;\n var revOpDef = getOperatorConfig(config, reversedOp, field) || {};\n var isRev = false;\n var canFormatOp = opDef.spelOp || opDef.spelFormatOp;\n var canFormatRevOp = revOpDef.spelOp || revOpDef.spelFormatOp;\n if (!canFormatOp && !canFormatRevOp) {\n return undefined;\n }\n if (!canFormatOp && canFormatRevOp) {\n isRev = true;\n var _ref = [reversedOp, operator];\n operator = _ref[0];\n reversedOp = _ref[1];\n var _ref2 = [revOpDef, opDef];\n opDef = _ref2[0];\n revOpDef = _ref2[1];\n }\n return operator;\n};\nvar formatRule = function formatRule(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var properties = item.get(\"properties\") || new Map();\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var operator = properties.get(\"operator\");\n if (field == null || operator == null) return undefined;\n\n // check op for reverse\n var realOp = checkOp(config, operator, field);\n if (!realOp) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n var isRev = realOp != operator;\n\n //format value\n var _formatItemValue5 = formatItemValue(config, properties, meta, realOp, parentField, null),\n _formatItemValue6 = _slicedToArray(_formatItemValue5, 3),\n formattedValue = _formatItemValue6[0],\n valueSrc = _formatItemValue6[1],\n valueType = _formatItemValue6[2];\n if (formattedValue === undefined) return undefined;\n\n //format field\n var formattedField = formatLhs(meta, config, field, fieldSrc, parentField);\n if (formattedField === undefined) return undefined;\n\n // format expression\n var res = formatExpression(meta, config, properties, formattedField, formattedValue, realOp, valueSrc, valueType, isRev);\n return res;\n};\nvar formatLhs = function formatLhs(meta, config, field, fieldSrc) {\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (fieldSrc === \"func\") return formatFunc(meta, config, field, parentField);else return formatField(meta, config, field, parentField);\n};\nvar formatItemValue = function formatItemValue(config, properties, meta, operator, parentField) {\n var expectedValueType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var field = properties.get(\"field\");\n var iValueSrc = properties.get(\"valueSrc\");\n var iValueType = properties.get(\"valueType\");\n if (expectedValueType == \"!case_value\" || iValueType && iValueType.get(0) == \"case_value\") {\n field = \"!case_value\";\n }\n var fieldDef = getFieldConfig(config, field) || {};\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var iValue = properties.get(\"value\");\n var asyncListValues = properties.get(\"asyncListValues\");\n var valueSrcs = [];\n var valueTypes = [];\n var formattedValue;\n if (iValue != undefined) {\n var fvalue = iValue.map(function (currentValue, ind) {\n var valueSrc = iValueSrc ? iValueSrc.get(ind) : null;\n var valueType = iValueType ? iValueType.get(ind) : null;\n var cValue = completeValue(currentValue, valueSrc, config);\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, field, operator, widget, valueSrc), [\"factory\"]);\n var fv = formatValue(meta, config, cValue, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, operatorDefinition, parentField, asyncListValues);\n if (fv !== undefined) {\n valueSrcs.push(valueSrc);\n valueTypes.push(valueType);\n }\n return fv;\n });\n var hasUndefinedValues = fvalue.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (!(fvalue.size < cardinality || hasUndefinedValues)) {\n formattedValue = cardinality > 1 ? fvalue.toArray() : cardinality == 1 ? fvalue.first() : null;\n }\n }\n return [formattedValue, valueSrcs.length > 1 ? valueSrcs : valueSrcs[0], valueTypes.length > 1 ? valueTypes : valueTypes[0]];\n};\nvar formatValue = function formatValue(meta, config, currentValue, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, operatorDef) {\n var parentField = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : null;\n var asyncListValues = arguments.length > 10 ? arguments[10] : undefined;\n if (currentValue === undefined) return undefined;\n var ret;\n if (valueSrc == \"field\") {\n ret = formatField(meta, config, currentValue, parentField);\n } else if (valueSrc == \"func\") {\n ret = formatFunc(meta, config, currentValue, parentField);\n } else {\n if (typeof fieldWidgetDef.spelFormatValue === \"function\") {\n var fn = fieldWidgetDef.spelFormatValue;\n var args = [currentValue, _objectSpread(_objectSpread({}, pick(fieldDef, [\"fieldSettings\", \"listValues\"])), {}, {\n asyncListValues: asyncListValues\n }),\n //useful options: valueFormat for date/time\n omit(fieldWidgetDef, widgetDefKeysToOmit)];\n if (operator) {\n args.push(operator);\n args.push(operatorDef);\n }\n if (valueSrc == \"field\") {\n var valFieldDefinition = getFieldConfig(config, currentValue) || {};\n args.push(valFieldDefinition);\n }\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n } else {\n ret = spelEscape(currentValue);\n }\n }\n return ret;\n};\nvar formatField = function formatField(meta, config, field) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (!field) return;\n var fieldSeparator = config.settings.fieldSeparator;\n var fieldDefinition = getFieldConfig(config, field) || {};\n var fieldParts = getFieldParts(field, config);\n var fieldPartsConfigs = getFieldPartsConfigs(field, config, parentField);\n var formatFieldFn = config.settings.formatSpelField;\n var fieldName = formatFieldName(field, config, meta, parentField);\n var fieldPartsMeta = fieldPartsConfigs.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 3),\n key = _ref4[0],\n cnf = _ref4[1],\n parentCnf = _ref4[2];\n var parent;\n if (parentCnf) {\n if (parentCnf.type == \"!struct\" || parentCnf.type == \"!group\" && parentCnf.mode == \"struct\") parent = cnf.isSpelMap ? \"map\" : \"class\";else if (parentCnf.type == \"!group\") parent = cnf.isSpelItemMap ? \"[map]\" : \"[class]\";else parent = \"class\";\n }\n var isSpelVariable = cnf === null || cnf === void 0 ? void 0 : cnf.isSpelVariable;\n return {\n key: key,\n parent: parent,\n isSpelVariable: isSpelVariable,\n fieldSeparator: fieldSeparator\n };\n });\n var formattedField = formatFieldFn.call(config.ctx, fieldName, parentField, fieldParts, fieldPartsMeta, fieldDefinition, config);\n return formattedField;\n};\nvar formatFunc = function formatFunc(meta, config, currentValue) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var funcKey = currentValue.get(\"func\");\n var args = currentValue.get(\"args\");\n var funcConfig = getFuncConfig(config, funcKey);\n if (!funcConfig) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not defined in config\"));\n return undefined;\n }\n var formattedArgs = {};\n var gaps = [];\n var missingArgKeys = [];\n for (var argKey in funcConfig.args) {\n var _argConfig$spelEscape;\n var argConfig = funcConfig.args[argKey];\n var fieldDef = getFieldConfig(config, argConfig);\n var _defaultValue = argConfig.defaultValue,\n isOptional = argConfig.isOptional;\n var defaultValueSrc = _defaultValue !== null && _defaultValue !== void 0 && _defaultValue.func ? \"func\" : \"value\";\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n var argAsyncListValues = argVal ? argVal.get(\"asyncListValues\") : undefined;\n var doEscape = (_argConfig$spelEscape = argConfig.spelEscapeForFormat) !== null && _argConfig$spelEscape !== void 0 ? _argConfig$spelEscape : true;\n var operator = null;\n var widget = getWidgetForFieldOp(config, argConfig, operator, argValueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, widget, argValueSrc), [\"factory\"]);\n var formattedArgVal = formatValue(meta, config, argValue, argValueSrc, argConfig.type, fieldWidgetDef, fieldDef, null, null, parentField, argAsyncListValues);\n if (argValue != undefined && formattedArgVal === undefined) {\n if (argValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n var formattedDefaultVal = void 0;\n if (formattedArgVal === undefined && !isOptional && _defaultValue != undefined) {\n var defaultWidget = getWidgetForFieldOp(config, argConfig, operator, defaultValueSrc);\n var defaultFieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, defaultWidget, defaultValueSrc), [\"factory\"]);\n formattedDefaultVal = formatValue(meta, config, _defaultValue, defaultValueSrc, argConfig.type, defaultFieldWidgetDef, fieldDef, null, null, parentField, argAsyncListValues);\n if (formattedDefaultVal === undefined) {\n if (defaultValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format default value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n }\n var finalFormattedVal = formattedArgVal !== null && formattedArgVal !== void 0 ? formattedArgVal : formattedDefaultVal;\n if (finalFormattedVal !== undefined) {\n if (gaps.length) {\n var _iterator = _createForOfIteratorHelper(gaps),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var missedArgKey = _step.value;\n formattedArgs[missedArgKey] = undefined;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n gaps = [];\n }\n formattedArgs[argKey] = doEscape ? finalFormattedVal : argValue !== null && argValue !== void 0 ? argValue : _defaultValue;\n } else {\n if (!isOptional) missingArgKeys.push(argKey);\n gaps.push(argKey);\n }\n }\n if (missingArgKeys.length) {\n //meta.errors.push(`Missing vals for args ${missingArgKeys.join(\", \")} for func ${funcKey}`);\n return undefined; // uncomplete\n }\n\n var ret;\n if (typeof funcConfig.spelFormatFunc === \"function\") {\n var fn = funcConfig.spelFormatFunc;\n var _args = [formattedArgs];\n ret = fn.call.apply(fn, [config.ctx].concat(_args));\n } else if (funcConfig.spelFunc) {\n // fill arg values\n ret = funcConfig.spelFunc.replace(/\\${(\\w+)}/g, function (found, argKey) {\n var _formattedArgs$argKey;\n return (_formattedArgs$argKey = formattedArgs[argKey]) !== null && _formattedArgs$argKey !== void 0 ? _formattedArgs$argKey : found;\n });\n // remove optional args (from end only)\n var optionalArgs = Object.keys(funcConfig.args || {}).reverse().filter(function (argKey) {\n return !!funcConfig.args[argKey].isOptional;\n });\n var _iterator2 = _createForOfIteratorHelper(optionalArgs),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _argKey = _step2.value;\n if (formattedArgs[_argKey] != undefined) break;\n ret = ret.replace(new RegExp(\"(, )?\" + \"\\\\${\" + _argKey + \"}\", \"g\"), \"\");\n }\n // missing required arg vals\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n ret = ret.replace(/\\${(\\w+)}/g, \"null\");\n } else {\n meta.errors.push(\"Func \".concat(funcKey, \" is not supported\"));\n }\n return ret;\n};","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { SpelExpressionEvaluator } from \"spel2js\";\nimport uuid from \"../utils/uuid\";\nimport { getFieldConfig, getFuncConfig, extendConfig, normalizeField, iterateFuncs } from \"../utils/configUtils\";\nimport { getWidgetForFieldOp } from \"../utils/ruleUtils\";\nimport { loadTree } from \"./tree\";\nimport { defaultConjunction, defaultGroupConjunction } from \"../utils/defaultUtils\";\nimport { logger, isJsonCompatible } from \"../utils/stuff\";\nimport moment from \"moment\";\nimport { compareToSign } from \"../export/spel\";\n\n// https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/expressions.html#expressions\n\n// spel type => raqb type\nvar SpelPrimitiveTypes = {\n number: \"number\",\n string: \"text\",\n \"boolean\": \"boolean\",\n \"null\": \"null\" // should not be\n};\n// spel class => raqb type\nvar SpelPrimitiveClasses = {\n String: \"text\"\n};\nvar ListValueType = \"multiselect\";\nvar isFuncableProperty = function isFuncableProperty(p) {\n return [\"length\"].includes(p);\n};\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\nexport var loadFromSpel = function loadFromSpel(logicTree, config) {\n return _loadFromSpel(logicTree, config, true);\n};\nexport var _loadFromSpel = function _loadFromSpel(spelStr, config) {\n var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //meta is mutable\n var meta = {\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var conv = buildConv(extendedConfig);\n var compiledExpression;\n var convertedObj;\n var jsTree = undefined;\n try {\n var compileRes = SpelExpressionEvaluator.compile(spelStr);\n compiledExpression = compileRes._compiledExpression;\n } catch (e) {\n meta.errors.push(e);\n }\n if (compiledExpression) {\n //logger.debug(\"compiledExpression:\", compiledExpression);\n convertedObj = postprocessCompiled(compiledExpression, meta);\n logger.debug(\"convertedObj:\", convertedObj, meta);\n jsTree = convertToTree(convertedObj, conv, extendedConfig, meta);\n if (jsTree && jsTree.type != \"group\" && jsTree.type != \"switch_group\") {\n jsTree = wrapInDefaultConj(jsTree, extendedConfig, convertedObj[\"not\"]);\n }\n logger.debug(\"jsTree:\", jsTree);\n }\n var immTree = jsTree ? loadTree(jsTree) : undefined;\n if (returnErrors) {\n return [immTree, meta.errors];\n } else {\n if (meta.errors.length) console.warn(\"Errors while importing from SpEL:\", meta.errors);\n return immTree;\n }\n};\nvar postprocessCompiled = function postprocessCompiled(expr, meta) {\n var parentExpr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var type = expr.getType();\n var children = expr.getChildren().map(function (child) {\n return postprocessCompiled(child, meta, expr);\n });\n\n // flatize OR/AND\n if (type == \"op-or\" || type == \"op-and\") {\n children = children.reduce(function (acc, child) {\n var canFlatize = child.type == type && !child.not;\n var flat = canFlatize ? child.children : [child];\n return [].concat(_toConsumableArray(acc), _toConsumableArray(flat));\n }, []);\n }\n\n // unwrap NOT\n if (type == \"op-not\") {\n if (children.length != 1) {\n meta.errors.push(\"Operator NOT should have 1 child, but got \".concat(children.length, \"}\"));\n }\n return _objectSpread(_objectSpread({}, children[0]), {}, {\n not: !(children[0].not || false)\n });\n }\n if (type == \"compound\") {\n // remove `.?[true]`\n children = children.filter(function (child) {\n var isListFix = child.type == \"selection\" && child.children.length == 1 && child.children[0].type == \"boolean\" && child.children[0].val == true;\n return !isListFix;\n });\n // aggregation\n // eg. `results.?[product == 'abc'].length`\n var selection = children.find(function (child) {\n return child.type == \"selection\";\n });\n if (selection && selection.children.length != 1) {\n meta.errors.push(\"Selection should have 1 child, but got \".concat(selection.children.length));\n }\n var filter = selection ? selection.children[0] : null;\n var lastChild = children[children.length - 1];\n var isSize = lastChild.type == \"method\" && lastChild.val.methodName == \"size\" || lastChild.type == \"!func\" && lastChild.methodName == \"size\";\n var isLength = lastChild.type == \"property\" && lastChild.val == \"length\";\n var sourceParts = children.filter(function (child) {\n return child !== selection && child !== lastChild;\n });\n var source = {\n type: \"compound\",\n children: sourceParts\n };\n var isAggr = (isSize || isLength) && convertPath(sourceParts) != null;\n if (isAggr) {\n return {\n type: \"!aggr\",\n filter: filter,\n source: source\n };\n }\n // remove `#this`, `#root`\n children = children.filter(function (child) {\n var isThis = child.type == \"variable\" && child.val == \"this\";\n var isRoot = child.type == \"variable\" && child.val == \"root\";\n return !(isThis || isRoot);\n });\n // indexer\n children = children.map(function (child) {\n if (child.type == \"indexer\" && child.children.length == 1) {\n return {\n type: \"indexer\",\n val: child.children[0].val,\n itype: child.children[0].type\n };\n } else {\n return child;\n }\n });\n // method\n // if (lastChild.type == \"method\") {\n // // seems like obsolete code!\n // debugger\n // const obj = children.filter(child => \n // child !== lastChild\n // );\n // return {\n // type: \"!func\",\n // obj,\n // methodName: lastChild.val.methodName,\n // args: lastChild.val.args\n // };\n // }\n // !func\n if (lastChild.type == \"!func\") {\n var ret = {};\n var curr = ret;\n do {\n var _lastChild, _lastChild2;\n Object.assign(curr, lastChild);\n children = children.filter(function (child) {\n return child !== lastChild;\n });\n lastChild = children[children.length - 1];\n if (((_lastChild2 = lastChild) === null || _lastChild2 === void 0 ? void 0 : _lastChild2.type) == \"!func\") {\n curr.obj = {};\n curr = curr.obj;\n } else {\n if (children.length > 1) {\n curr.obj = {\n type: \"compound\",\n children: children\n };\n } else {\n curr.obj = lastChild;\n }\n }\n } while (((_lastChild = lastChild) === null || _lastChild === void 0 ? void 0 : _lastChild.type) == \"!func\");\n return ret;\n }\n }\n\n // getRaw || getValue\n var val;\n try {\n if (expr.getRaw) {\n // use my fork\n val = expr.getRaw();\n } else if (expr.getValue.length == 0) {\n // getValue not requires context arg -> can use\n val = expr.getValue();\n }\n } catch (e) {\n logger.error(\"[spel2js] Error in getValue()\", e);\n }\n\n // ternary\n if (type == \"ternary\") {\n val = flatizeTernary(children);\n }\n\n // convert method/function args\n if (_typeof(val) === \"object\" && val !== null) {\n if (val.methodName || val.functionName) {\n val.args = val.args.map(function (child) {\n return postprocessCompiled(child, meta, expr);\n });\n }\n }\n // convert list\n if (type == \"list\") {\n val = val.map(function (item) {\n return postprocessCompiled(item, meta, expr);\n });\n\n // fix whole expression wrapped in `{}`\n if (!parentExpr && val.length == 1) {\n return val[0];\n }\n }\n // convert constructor\n if (type == \"constructorref\") {\n var qid = children.find(function (child) {\n return child.type == \"qualifiedidentifier\";\n });\n var cls = qid === null || qid === void 0 ? void 0 : qid.val;\n if (!cls) {\n meta.errors.push(\"Can't find qualifiedidentifier in constructorref children: \".concat(JSON.stringify(children)));\n return undefined;\n }\n var args = children.filter(function (child) {\n return child.type != \"qualifiedidentifier\";\n });\n return {\n type: \"!new\",\n cls: cls,\n args: args\n };\n }\n // convert type\n if (type == \"typeref\") {\n var _qid = children.find(function (child) {\n return child.type == \"qualifiedidentifier\";\n });\n var _cls = _qid === null || _qid === void 0 ? void 0 : _qid.val;\n if (!_cls) {\n meta.errors.push(\"Can't find qualifiedidentifier in typeref children: \".concat(JSON.stringify(children)));\n return undefined;\n }\n var _args = children.filter(function (child) {\n return child.type != \"qualifiedidentifier\";\n });\n return {\n type: \"!type\",\n cls: _cls\n };\n }\n // convert function/method\n if (type == \"function\" || type == \"method\") {\n // `foo()` is method, `#foo()` is function\n // let's use common property `methodName` and just add `isVar` for function\n var _val = val,\n functionName = _val.functionName,\n methodName = _val.methodName,\n _args2 = _val.args;\n return {\n type: \"!func\",\n methodName: functionName || methodName,\n isVar: type == \"function\",\n args: _args2\n };\n }\n return {\n type: type,\n children: children,\n val: val\n };\n};\nvar flatizeTernary = function flatizeTernary(children) {\n var flat = [];\n function _processTernaryChildren(tern) {\n var _tern = _slicedToArray(tern, 3),\n cond = _tern[0],\n if_val = _tern[1],\n else_val = _tern[2];\n flat.push([cond, if_val]);\n if ((else_val === null || else_val === void 0 ? void 0 : else_val.type) == \"ternary\") {\n _processTernaryChildren(else_val.children);\n } else {\n flat.push([undefined, else_val]);\n }\n }\n _processTernaryChildren(children);\n return flat;\n};\nvar buildConv = function buildConv(config) {\n var operators = {};\n var _loop = function _loop(opKey) {\n var opConfig = config.operators[opKey];\n if (opConfig.spelOps) {\n // examples: \"==\", \"eq\", \".contains\", \"matches\" (can be used for starts_with, ends_with)\n opConfig.spelOps.forEach(function (spelOp) {\n var opk = spelOp; // + \"/\" + defaultValue(opConfig.cardinality, 1);\n if (!operators[opk]) operators[opk] = [];\n operators[opk].push(opKey);\n });\n } else if (opConfig.spelOp) {\n var opk = opConfig.spelOp; // + \"/\" + defaultValue(opConfig.cardinality, 1);\n if (!operators[opk]) operators[opk] = [];\n operators[opk].push(opKey);\n } else {\n logger.log(\"[spel] No spelOp for operator \".concat(opKey));\n }\n };\n for (var opKey in config.operators) {\n _loop(opKey);\n }\n var conjunctions = {};\n for (var conjKey in config.conjunctions) {\n var conjunctionDefinition = config.conjunctions[conjKey];\n var ck = conjunctionDefinition.spelConj || conjKey.toLowerCase();\n conjunctions[ck] = conjKey;\n }\n var funcs = {};\n var _iterator = _createForOfIteratorHelper(iterateFuncs(config)),\n _step;\n try {\n var _loop2 = function _loop2() {\n var _step$value = _slicedToArray(_step.value, 2),\n funcPath = _step$value[0],\n funcConfig = _step$value[1];\n var fks = [];\n var spelFunc = funcConfig.spelFunc;\n if (typeof spelFunc === \"string\") {\n var optionalArgs = Object.keys(funcConfig.args || {}).reverse().filter(function (argKey) {\n return !!funcConfig.args[argKey].isOptional || funcConfig.args[argKey].defaultValue != undefined;\n });\n var funcSignMain = spelFunc.replace(/\\${(\\w+)}/g, function (_, _k) {\n return \"?\";\n });\n var funcSignsOptional = optionalArgs.reduce(function (acc, argKey) {\n return [].concat(_toConsumableArray(acc), [[argKey].concat(_toConsumableArray(acc[acc.length - 1] || []))]);\n }, []).map(function (optionalArgKeys) {\n return spelFunc.replace(/(?:, )?\\${(\\w+)}/g, function (found, a) {\n return optionalArgKeys.includes(a) ? \"\" : found;\n }).replace(/\\${(\\w+)}/g, function (_, _k) {\n return \"?\";\n });\n });\n fks = [funcSignMain].concat(_toConsumableArray(funcSignsOptional));\n }\n var _iterator3 = _createForOfIteratorHelper(fks),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _fk = _step3.value;\n if (!funcs[_fk]) funcs[_fk] = [];\n funcs[_fk].push(funcPath);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop2();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var valueFuncs = {};\n for (var w in config.widgets) {\n var widgetDef = config.widgets[w];\n var spelImportFuncs = widgetDef.spelImportFuncs,\n type = widgetDef.type;\n if (spelImportFuncs) {\n var _iterator2 = _createForOfIteratorHelper(spelImportFuncs),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var fk = _step2.value;\n if (typeof fk === \"string\") {\n var fs = fk.replace(/\\${(\\w+)}/g, function (_, k) {\n return \"?\";\n });\n var argsOrder = _toConsumableArray(fk.matchAll(/\\${(\\w+)}/g)).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n _ = _ref2[0],\n k = _ref2[1];\n return k;\n });\n if (!valueFuncs[fs]) valueFuncs[fs] = [];\n valueFuncs[fs].push({\n w: w,\n argsOrder: argsOrder\n });\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n var opFuncs = {};\n for (var op in config.operators) {\n var opDef = config.operators[op];\n var spelOp = opDef.spelOp;\n if (spelOp !== null && spelOp !== void 0 && spelOp.includes(\"${0}\")) {\n var _fs = spelOp.replace(/\\${(\\w+)}/g, function (_, k) {\n return \"?\";\n });\n var _argsOrder = _toConsumableArray(spelOp.matchAll(/\\${(\\w+)}/g)).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n _ = _ref4[0],\n k = _ref4[1];\n return k;\n });\n if (!opFuncs[_fs]) opFuncs[_fs] = [];\n opFuncs[_fs].push({\n op: op,\n argsOrder: _argsOrder\n });\n }\n }\n // Special .compareTo()\n var compareToSS = compareToSign.replace(/\\${(\\w+)}/g, function (_, k) {\n return \"?\";\n });\n opFuncs[compareToSS] = [{\n op: \"!compare\",\n argsOrder: [\"0\", \"1\"]\n }];\n return {\n operators: operators,\n conjunctions: conjunctions,\n funcs: funcs,\n valueFuncs: valueFuncs,\n opFuncs: opFuncs\n };\n};\nvar convertToTree = function convertToTree(spel, conv, config, meta) {\n var parentSpel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!spel) return undefined;\n var res,\n canParseAsArg = true;\n if (spel.type.indexOf(\"op-\") === 0 || spel.type === \"matches\") {\n res = convertOp(spel, conv, config, meta, parentSpel);\n } else if (spel.type == \"!aggr\") {\n var _groupFilter;\n var groupFieldValue = convertToTree(spel.source, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField\n }));\n var groupFilter = convertToTree(spel.filter, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: groupFieldValue === null || groupFieldValue === void 0 ? void 0 : groupFieldValue.value\n }));\n if (((_groupFilter = groupFilter) === null || _groupFilter === void 0 ? void 0 : _groupFilter.type) == \"rule\") {\n groupFilter = wrapInDefaultConj(groupFilter, config, spel.filter.not);\n }\n res = {\n groupFilter: groupFilter,\n groupFieldValue: groupFieldValue\n };\n if (!parentSpel) {\n // !aggr can't be in root, it should be compared with something\n res = undefined;\n meta.errors.push(\"Unexpected !aggr in root\");\n canParseAsArg = false;\n }\n } else if (spel.type == \"ternary\") {\n var children1 = {};\n spel.val.forEach(function (v) {\n var _v = _slicedToArray(v, 2),\n cond = _v[0],\n val = _v[1];\n var caseI = buildCase(cond, val, conv, config, meta, spel);\n if (caseI) {\n children1[caseI.id] = caseI;\n }\n });\n res = {\n type: \"switch_group\",\n id: uuid(),\n children1: children1,\n properties: {}\n };\n }\n if (!res && canParseAsArg) {\n res = convertArg(spel, conv, config, meta, parentSpel);\n }\n if (res && !res.type && !parentSpel) {\n // res is not a rule, it's value at root\n // try to parse whole `\"1\"` as ternary\n var sw = buildSimpleSwitch(spel, conv, config, meta);\n if (sw) {\n res = sw;\n } else {\n res = undefined;\n meta.errors.push(\"Can't convert rule of type \".concat(spel.type, \", it looks like var/literal\"));\n }\n }\n return res;\n};\nvar convertOp = function convertOp(spel, conv, config, meta) {\n var parentSpel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var res;\n var op = spel.type.startsWith(\"op-\") ? spel.type.slice(\"op-\".length) : spel.type;\n\n // unary\n var isUnary = (op == \"minus\" || op == \"plus\") && spel.children.length == 1;\n if (isUnary) {\n spel.isUnary = true;\n return convertOp(spel.children[0], conv, config, meta, spel);\n }\n\n // between\n var isBetweenNormal = op == \"and\" && spel.children.length == 2 && spel.children[0].type == \"op-ge\" && spel.children[1].type == \"op-le\";\n var isBetweenRev = op == \"or\" && spel.children.length == 2 && spel.children[0].type == \"op-lt\" && spel.children[1].type == \"op-gt\";\n var isBetween = isBetweenNormal || isBetweenRev;\n if (isBetween) {\n var _spel$children$0$chil = _slicedToArray(spel.children[0].children, 2),\n left = _spel$children$0$chil[0],\n from = _spel$children$0$chil[1];\n var _spel$children$1$chil = _slicedToArray(spel.children[1].children, 2),\n right = _spel$children$1$chil[0],\n to = _spel$children$1$chil[1];\n var isSameSource = compareArgs(left, right, spel, conv, config, meta, parentSpel);\n if (isSameSource) {\n var _fromValue = from.val;\n var _toValue = to.val;\n var oneSpel = {\n type: \"op-between\",\n children: [left, from, to]\n };\n return convertOp(oneSpel, conv, config, meta, parentSpel);\n }\n }\n\n // find op\n var opKeys = conv.operators[op];\n if (op == \"eq\" && spel.children[1].type == \"null\") {\n opKeys = [\"is_null\"];\n } else if (op == \"ne\" && spel.children[1].type == \"null\") {\n opKeys = [\"is_not_null\"];\n } else if (op == \"le\" && spel.children[1].type == \"string\" && spel.children[1].val == \"\") {\n opKeys = [\"is_empty\"];\n } else if (op == \"gt\" && spel.children[1].type == \"string\" && spel.children[1].val == \"\") {\n opKeys = [\"is_not_empty\"];\n } else if (op == \"between\") {\n opKeys = [\"between\"];\n }\n\n // convert children\n var convertChildren = function convertChildren() {\n var _newChildren;\n var newChildren = spel.children.map(function (child) {\n return convertToTree(child, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField\n }));\n });\n if (newChildren.length >= 2 && ((_newChildren = newChildren) === null || _newChildren === void 0 || (_newChildren = _newChildren[0]) === null || _newChildren === void 0 ? void 0 : _newChildren.type) == \"!compare\") {\n newChildren = newChildren[0].children;\n }\n return newChildren;\n };\n if (op == \"and\" || op == \"or\") {\n var children1 = {};\n var vals = convertChildren();\n vals.forEach(function (v) {\n if (v) {\n var id = uuid();\n v.id = id;\n if (v.type != undefined) {\n children1[id] = v;\n } else {\n meta.errors.push(\"Bad item in AND/OR: \".concat(JSON.stringify(v)));\n }\n }\n });\n res = {\n type: \"group\",\n id: uuid(),\n children1: children1,\n properties: {\n conjunction: conv.conjunctions[op],\n not: spel.not\n }\n };\n } else if (opKeys) {\n var _fieldObj$groupFieldV, _convertedArgs;\n var _vals = convertChildren();\n var fieldObj = _vals[0];\n var convertedArgs = _vals.slice(1);\n var groupField = fieldObj === null || fieldObj === void 0 || (_fieldObj$groupFieldV = fieldObj.groupFieldValue) === null || _fieldObj$groupFieldV === void 0 ? void 0 : _fieldObj$groupFieldV.value;\n var opArg = (_convertedArgs = convertedArgs) === null || _convertedArgs === void 0 ? void 0 : _convertedArgs[0];\n var opKey = opKeys[0];\n if (opKeys.length > 1) {\n var _vals$, _vals$2;\n var valueType = ((_vals$ = _vals[0]) === null || _vals$ === void 0 ? void 0 : _vals$.valueType) || ((_vals$2 = _vals[1]) === null || _vals$2 === void 0 ? void 0 : _vals$2.valueType);\n //todo: it's naive, use valueType\n var field = fieldObj === null || fieldObj === void 0 ? void 0 : fieldObj.value;\n var widgets = opKeys.map(function (op) {\n return {\n op: op,\n widget: getWidgetForFieldOp(config, field, op)\n };\n });\n logger.warn(\"[spel] Spel operator \".concat(op, \" can be mapped to \").concat(opKeys, \".\"), \"widgets:\", widgets, \"vals:\", _vals, \"valueType=\", valueType);\n if (op == \"eq\" || op == \"ne\") {\n var ws = widgets.find(function (_ref5) {\n var op = _ref5.op,\n widget = _ref5.widget;\n return widget && widget != \"field\";\n });\n if (ws) {\n opKey = ws.op;\n }\n }\n }\n\n // some/all/none\n if (fieldObj !== null && fieldObj !== void 0 && fieldObj.groupFieldValue) {\n if (opArg && opArg.groupFieldValue && opArg.groupFieldValue.valueSrc == \"field\" && opArg.groupFieldValue.value == groupField) {\n // group.?[...].size() == group.size()\n opKey = \"all\";\n convertedArgs = [];\n } else if (opKey == \"equal\" && opArg.valueSrc == \"value\" && opArg.valueType == \"number\" && opArg.value == 0) {\n opKey = \"none\";\n convertedArgs = [];\n } else if (opKey == \"greater\" && opArg.valueSrc == \"value\" && opArg.valueType == \"number\" && opArg.value == 0) {\n opKey = \"some\";\n convertedArgs = [];\n }\n }\n var canRev = true;\n var needWrapReverse = false;\n if (spel.not && canRev) {\n var opConfig = config.operators[opKey];\n if (opConfig.reversedOp) {\n opKey = opConfig.reversedOp;\n spel.not = false;\n } else {\n needWrapReverse = true;\n }\n }\n if (!fieldObj) {\n // LHS can't be parsed\n } else if (fieldObj.groupFieldValue) {\n // 1. group\n if (fieldObj.groupFieldValue.valueSrc != \"field\") {\n meta.errors.push(\"Expected group field \".concat(JSON.stringify(fieldObj)));\n }\n res = buildRuleGroup(fieldObj, opKey, convertedArgs, config, meta);\n } else {\n // 2. not group\n if (fieldObj.valueSrc != \"field\" && fieldObj.valueSrc != \"func\") {\n meta.errors.push(\"Expected field/func at LHS, but got \".concat(JSON.stringify(fieldObj)));\n }\n var _field = fieldObj.value;\n res = buildRule(config, meta, _field, opKey, convertedArgs);\n }\n if (needWrapReverse) {\n if (res.type !== \"group\") {\n res = wrapInDefaultConj(res, config, spel.not);\n } else {\n res.properties.not = !res.properties.not;\n }\n }\n } else {\n if (!parentSpel) {\n // try to parse whole `\"str\" + prop + #var` as ternary\n res = buildSimpleSwitch(spel, conv, config, meta);\n }\n // if (!res) {\n // meta.errors.push(`Can't convert op ${op}`);\n // }\n }\n\n return res;\n};\nvar convertPath = function convertPath(parts) {\n var meta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var expectingField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isError = false;\n var res = parts.map(function (c) {\n if (c.type == \"variable\" || c.type == \"property\" || c.type == \"indexer\" && c.itype == \"string\") {\n return c.val;\n } else {\n var _meta$errors, _meta$errors$push;\n isError = true;\n expectingField && (meta === null || meta === void 0 || (_meta$errors = meta.errors) === null || _meta$errors === void 0 || (_meta$errors$push = _meta$errors.push) === null || _meta$errors$push === void 0 ? void 0 : _meta$errors$push.call(_meta$errors, \"Unexpected item in field path compound: \".concat(JSON.stringify(c))));\n }\n });\n return !isError ? res : undefined;\n};\nvar convertArg = function convertArg(spel, conv, config, meta, parentSpel) {\n if (spel == undefined) return undefined;\n var fieldSeparator = config.settings.fieldSeparator;\n if (spel.type == \"variable\" || spel.type == \"property\") {\n // normal field\n var field = normalizeField(config, spel.val, parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField);\n var fieldConfig = getFieldConfig(config, field);\n var isVariable = spel.type == \"variable\";\n return {\n valueSrc: \"field\",\n valueType: fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type,\n isVariable: isVariable,\n value: field\n };\n } else if (spel.type == \"compound\") {\n // complex field\n var parts = convertPath(spel.children, meta);\n if (parts) {\n var _spel$children;\n var _field2 = normalizeField(config, parts.join(fieldSeparator), parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField);\n var _fieldConfig = getFieldConfig(config, _field2);\n var _isVariable = ((_spel$children = spel.children) === null || _spel$children === void 0 || (_spel$children = _spel$children[0]) === null || _spel$children === void 0 ? void 0 : _spel$children.type) == \"variable\";\n return {\n valueSrc: \"field\",\n valueType: _fieldConfig === null || _fieldConfig === void 0 ? void 0 : _fieldConfig.type,\n isVariable: _isVariable,\n value: _field2\n };\n } else {\n // it's not complex field\n }\n } else if (SpelPrimitiveTypes[spel.type]) {\n var value = spel.val;\n var valueType = SpelPrimitiveTypes[spel.type];\n if (parentSpel !== null && parentSpel !== void 0 && parentSpel.isUnary) {\n value = -value;\n }\n return {\n valueSrc: \"value\",\n valueType: valueType,\n value: value\n };\n } else if (spel.type == \"!new\" && SpelPrimitiveClasses[spel.cls.at(-1)]) {\n var args = spel.args.map(function (v) {\n return convertArg(v, conv, config, meta, spel);\n });\n var _value = args === null || args === void 0 ? void 0 : args[0];\n var _valueType = SpelPrimitiveClasses[spel.cls.at(-1)];\n return _objectSpread(_objectSpread({}, _value), {}, {\n valueType: _valueType\n });\n } else if (spel.type == \"list\") {\n var _values$;\n var values = spel.val.map(function (v) {\n return convertArg(v, conv, config, meta, spel);\n });\n var _itemType = values.length ? (_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.valueType : null;\n var _value2 = values.map(function (v) {\n return v === null || v === void 0 ? void 0 : v.value;\n });\n var _valueType2 = ListValueType;\n return {\n valueSrc: \"value\",\n valueType: _valueType2,\n value: _value2\n };\n } else if (spel.type == \"op-plus\" && (parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel.type) == \"ternary\") {\n return buildCaseValueConcat(spel, conv, config, meta);\n }\n var maybe = convertFunc(spel, conv, config, meta, parentSpel);\n if (maybe !== undefined) {\n return maybe;\n }\n meta.errors.push(\"Can't convert arg of type \".concat(spel.type));\n return undefined;\n};\nvar buildFuncSignatures = function buildFuncSignatures(spel) {\n // branches\n var brns = [{\n s: \"\",\n params: [],\n objs: []\n }];\n _buildFuncSignatures(spel, brns);\n return brns.map(function (_ref6) {\n var s = _ref6.s,\n params = _ref6.params;\n return {\n s: s,\n params: params\n };\n }).reverse().filter(function (_ref7) {\n var s = _ref7.s;\n return s !== \"\" && s !== \"?\";\n });\n};\n\n// a.toLower().toUpper()\n// ->\n// ?.toLower().toUpper()\n// ?.toUpper()\nvar _buildFuncSignatures = function _buildFuncSignatures(spel, brns) {\n var params = [],\n s = \"\";\n var type = spel.type,\n methodName = spel.methodName,\n val = spel.val,\n obj = spel.obj,\n args = spel.args,\n isVar = spel.isVar,\n cls = spel.cls,\n children = spel.children;\n var lastChild = children === null || children === void 0 ? void 0 : children[children.length - 1];\n var currBrn = brns[brns.length - 1];\n if (type === \"!func\") {\n // T(DateTimeFormat).forPattern(?).parseDateTime(?) -- ok\n // T(LocalDateTime).parse(?, T(DateTimeFormatter).ofPattern(?)) -- will not work\n var o = obj;\n while (o) {\n var _currBrn$params;\n var _buildFuncSignatures2 = _buildFuncSignatures(_objectSpread(_objectSpread({}, o), {}, {\n obj: null\n }), [{}]),\n _buildFuncSignatures3 = _slicedToArray(_buildFuncSignatures2, 2),\n s1 = _buildFuncSignatures3[0],\n params1 = _buildFuncSignatures3[1];\n if (s1 !== \"?\") {\n // start new branch\n var newBrn = {\n s: currBrn.s,\n params: _toConsumableArray(currBrn.params),\n objs: _toConsumableArray(currBrn.objs)\n };\n // finish old branch\n currBrn.objs.unshift(\"?\");\n currBrn.params.unshift(o);\n // switch\n brns.push(newBrn);\n currBrn = brns[brns.length - 1];\n }\n // step\n currBrn.objs.unshift(s1);\n (_currBrn$params = currBrn.params).unshift.apply(_currBrn$params, _toConsumableArray(params1));\n o = o.type === \"!func\" ? o.obj : null;\n }\n var _iterator4 = _createForOfIteratorHelper(brns),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _brn$objs;\n var brn = _step4.value;\n params = [].concat(_toConsumableArray((brn === null || brn === void 0 ? void 0 : brn.params) || []), _toConsumableArray(args || []));\n s = \"\";\n if (brn !== null && brn !== void 0 && (_brn$objs = brn.objs) !== null && _brn$objs !== void 0 && _brn$objs.length) s += brn.objs.join(\".\") + \".\";\n s += (isVar ? \"#\" : \"\") + methodName;\n s += \"(\" + (args || []).map(function (_) {\n return \"?\";\n }).join(\", \") + \")\";\n brn.s = s;\n brn.params = params;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n } else if (type === \"!new\") {\n // new java.text.SimpleDateFormat('HH:mm:ss').parse('...')\n params = args || [];\n s = \"new \".concat(cls.join(\".\"), \"(\").concat(params.map(function (_) {\n return \"?\";\n }).join(\", \"), \")\");\n } else if (type === \"!type\") {\n // T(java.time.LocalTime).parse('...')\n s = \"T(\".concat(cls.join(\".\"), \")\");\n } else if (type === \"compound\" && lastChild.type === \"property\" && isFuncableProperty(lastChild.val)) {\n // {1,2}.length -- ok\n // 'Hello World'.bytes.length -- will not work\n s = children.map(function (c) {\n var _params;\n if (c === lastChild) return c.val;\n var _buildFuncSignatures4 = _buildFuncSignatures(_objectSpread(_objectSpread({}, c), {}, {\n obj: null\n }), [{}]),\n _buildFuncSignatures5 = _slicedToArray(_buildFuncSignatures4, 2),\n s1 = _buildFuncSignatures5[0],\n params1 = _buildFuncSignatures5[1];\n (_params = params).push.apply(_params, _toConsumableArray(params1));\n return s1;\n }).join(\".\");\n } else {\n params = [spel];\n s = \"?\";\n }\n if (currBrn) {\n currBrn.s = s;\n currBrn.params = params;\n }\n return [s, params];\n};\nvar convertFunc = function convertFunc(spel, conv, config, meta, parentSpel) {\n var _fsigns$;\n // Build signatures\n var convertFuncArg = function convertFuncArg(v) {\n return convertArg(v, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField\n }));\n };\n var fsigns = buildFuncSignatures(spel);\n var firstSign = fsigns === null || fsigns === void 0 || (_fsigns$ = fsigns[0]) === null || _fsigns$ === void 0 ? void 0 : _fsigns$.s;\n if (fsigns.length) logger.debug(\"Signatures for \", spel, \":\", firstSign, fsigns);\n\n // 1. Try to parse as value\n var maybeValue = convertFuncToValue(spel, conv, config, meta, parentSpel, fsigns, convertFuncArg);\n if (maybeValue !== undefined) return maybeValue;\n\n // 2. Try to parse as op\n var maybeOp = convertFuncToOp(spel, conv, config, meta, parentSpel, fsigns, convertFuncArg);\n if (maybeOp !== undefined) return maybeOp;\n\n // 3. Try to parse as func\n var funcKey, funcConfig, argsObj;\n // try func signature matching\n var _iterator5 = _createForOfIteratorHelper(fsigns),\n _step5;\n try {\n var _loop3 = function _loop3() {\n var _step5$value = _step5.value,\n s = _step5$value.s,\n params = _step5$value.params;\n var funcKeys = conv.funcs[s];\n if (funcKeys) {\n // todo: here we can check arg types, if we have function overloading\n funcKey = funcKeys[0];\n funcConfig = getFuncConfig(config, funcKey);\n var _funcConfig = funcConfig,\n spelFunc = _funcConfig.spelFunc;\n var argsArr = params.map(convertFuncArg);\n var argsOrder = _toConsumableArray(spelFunc.matchAll(/\\${(\\w+)}/g)).map(function (_ref8) {\n var _ref9 = _slicedToArray(_ref8, 2),\n _ = _ref9[0],\n k = _ref9[1];\n return k;\n });\n argsObj = Object.fromEntries(argsOrder.map(function (argKey, i) {\n return [argKey, argsArr[i]];\n }));\n return \"break\";\n }\n };\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _ret = _loop3();\n if (_ret === \"break\") break;\n }\n // try `spelImport`\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n if (!funcKey) {\n var _iterator6 = _createForOfIteratorHelper(iterateFuncs(config)),\n _step6;\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _step6$value = _slicedToArray(_step6.value, 2),\n f = _step6$value[0],\n fc = _step6$value[1];\n if (fc.spelImport) {\n var parsed = void 0;\n try {\n parsed = fc.spelImport(spel);\n } catch (_e) {\n // can't be parsed\n }\n if (parsed) {\n funcKey = f;\n funcConfig = getFuncConfig(config, funcKey);\n argsObj = {};\n for (var argKey in parsed) {\n argsObj[argKey] = convertFuncArg(parsed[argKey]);\n }\n }\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n\n // convert\n if (funcKey) {\n var funcArgs = {};\n for (var _argKey in funcConfig.args) {\n var argConfig = funcConfig.args[_argKey];\n var argVal = argsObj[_argKey];\n if (argVal === undefined) {\n argVal = argConfig === null || argConfig === void 0 ? void 0 : argConfig.defaultValue;\n if (argVal === undefined) {\n if (argConfig !== null && argConfig !== void 0 && argConfig.isOptional) {\n //ignore\n } else {\n meta.errors.push(\"No value for arg \".concat(_argKey, \" of func \").concat(funcKey));\n return undefined;\n }\n } else {\n var _argVal;\n argVal = {\n value: argVal,\n valueSrc: (_argVal = argVal) !== null && _argVal !== void 0 && _argVal.func ? \"func\" : \"value\",\n valueType: argConfig.type\n };\n }\n }\n if (argVal) funcArgs[_argKey] = argVal;\n }\n return {\n valueSrc: \"func\",\n value: {\n func: funcKey,\n args: funcArgs\n },\n valueType: funcConfig.returnType\n };\n }\n var methodName = spel.methodName;\n if (methodName) meta.errors.push(\"Signature \".concat(firstSign, \" - failed to convert\"));\n return undefined;\n};\nvar convertFuncToValue = function convertFuncToValue(spel, conv, config, meta, parentSpel, fsigns, convertFuncArg) {\n var errs, foundSign, foundWidget;\n var candidates = [];\n for (var w in config.widgets) {\n var widgetDef = config.widgets[w];\n var spelImportFuncs = widgetDef.spelImportFuncs;\n if (spelImportFuncs) {\n for (var i = 0; i < spelImportFuncs.length; i++) {\n var fj = spelImportFuncs[i];\n if (isObject(fj)) {\n var bag = {};\n if (isJsonCompatible(fj, spel, bag)) {\n for (var k in bag) {\n bag[k] = convertFuncArg(bag[k]);\n }\n candidates.push({\n s: \"widgets.\".concat(w, \".spelImportFuncs[\").concat(i, \"]\"),\n w: w,\n argsObj: bag\n });\n }\n }\n }\n }\n }\n var _iterator7 = _createForOfIteratorHelper(fsigns),\n _step7;\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _step7$value = _step7.value,\n _s = _step7$value.s,\n params = _step7$value.params;\n var found = conv.valueFuncs[_s] || [];\n var _iterator8 = _createForOfIteratorHelper(found),\n _step8;\n try {\n var _loop4 = function _loop4() {\n var _step8$value = _step8.value,\n w = _step8$value.w,\n argsOrder = _step8$value.argsOrder;\n var argsArr = params.map(convertFuncArg);\n var argsObj = Object.fromEntries(argsOrder.map(function (argKey, i) {\n return [argKey, argsArr[i]];\n }));\n candidates.push({\n s: _s,\n w: w,\n argsObj: argsObj\n });\n };\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n _loop4();\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n for (var _i = 0, _candidates = candidates; _i < _candidates.length; _i++) {\n var _candidates$_i = _candidates[_i],\n s = _candidates$_i.s,\n _w = _candidates$_i.w,\n argsObj = _candidates$_i.argsObj;\n var _widgetDef = config.widgets[_w];\n var spelImportValue = _widgetDef.spelImportValue,\n type = _widgetDef.type;\n foundWidget = _w;\n foundSign = s;\n errs = [];\n for (var _k2 in argsObj) {\n if (![\"value\"].includes(argsObj[_k2].valueSrc)) {\n errs.push(\"\".concat(_k2, \" has unsupported value src \").concat(argsObj[_k2].valueSrc));\n }\n }\n var value = argsObj.v.value;\n if (spelImportValue && !errs.length) {\n var _spelImportValue$call = spelImportValue.call(config.ctx, argsObj.v, _widgetDef, argsObj);\n var _spelImportValue$call2 = _slicedToArray(_spelImportValue$call, 2);\n value = _spelImportValue$call2[0];\n errs = _spelImportValue$call2[1];\n if (errs && !Array.isArray(errs)) errs = [errs];\n }\n if (!errs.length) {\n return {\n valueSrc: \"value\",\n valueType: type,\n value: value\n };\n }\n }\n if (foundWidget && errs.length) {\n meta.errors.push(\"Signature \".concat(foundSign, \" - looks like convertable to \").concat(foundWidget, \", but: \").concat(errs.join(\"; \")));\n }\n return undefined;\n};\nvar convertFuncToOp = function convertFuncToOp(spel, conv, config, meta, parentSpel, fsigns, convertFuncArg) {\n var errs, opKey, foundSign;\n var _iterator9 = _createForOfIteratorHelper(fsigns),\n _step9;\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var _step9$value = _step9.value,\n s = _step9$value.s,\n params = _step9$value.params;\n var found = conv.opFuncs[s] || [];\n var _iterator10 = _createForOfIteratorHelper(found),\n _step10;\n try {\n var _loop5 = function _loop5() {\n var _argsArr$filter$find;\n var _step10$value = _step10.value,\n op = _step10$value.op,\n argsOrder = _step10$value.argsOrder;\n var argsArr = params.map(convertFuncArg);\n opKey = op;\n if (op === \"!compare\") {\n if (parentSpel.type.startsWith(\"op-\") && parentSpel.children.length == 2 && parentSpel.children[1].type == \"number\" && parentSpel.children[1].val === 0) {\n return {\n v: {\n type: \"!compare\",\n children: argsArr\n }\n };\n } else {\n errs.push(\"Result of compareTo() should be compared to 0\");\n }\n }\n foundSign = s;\n errs = [];\n var opDef = config.operators[opKey];\n var spelOp = opDef.spelOp,\n valueTypes = opDef.valueTypes;\n var argsObj = Object.fromEntries(argsOrder.map(function (argKey, i) {\n return [argKey, argsArr[i]];\n }));\n var field = argsObj[\"0\"];\n var convertedArgs = Object.keys(argsObj).filter(function (k) {\n return parseInt(k) > 0;\n }).map(function (k) {\n return argsObj[k];\n });\n var valueType = (_argsArr$filter$find = argsArr.filter(function (a) {\n return !!a;\n }).find(function (_ref10) {\n var valueSrc = _ref10.valueSrc;\n return valueSrc === \"value\";\n })) === null || _argsArr$filter$find === void 0 ? void 0 : _argsArr$filter$find.valueType;\n if (valueTypes && valueType && !valueTypes.includes(valueType)) {\n errs.push(\"Op supports types \".concat(valueTypes, \", but got \").concat(valueType));\n }\n if (!errs.length) {\n return {\n v: buildRule(config, meta, field, opKey, convertedArgs, spel)\n };\n }\n };\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var _ret2 = _loop5();\n if (_typeof(_ret2) === \"object\") return _ret2.v;\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n if (opKey && errs.length) {\n meta.errors.push(\"Signature \".concat(foundSign, \" - looks like convertable to \").concat(opKey, \", but: \").concat(errs.join(\"; \")));\n }\n return undefined;\n};\nvar buildRule = function buildRule(config, meta, field, opKey, convertedArgs, spel) {\n var _field3;\n if (convertedArgs.filter(function (v) {\n return v === undefined;\n }).length) {\n return undefined;\n }\n var fieldSrc = (_field3 = field) !== null && _field3 !== void 0 && _field3.func ? \"func\" : \"field\";\n if (isObject(field) && field.valueSrc) {\n // if comed from convertFuncToOp()\n fieldSrc = field.valueSrc;\n field = field.value;\n }\n var fieldConfig = getFieldConfig(config, field);\n if (!fieldConfig) {\n meta.errors.push(\"No config for field \".concat(field));\n return undefined;\n }\n var canRev = true;\n var needWrapReverse = false;\n if (spel !== null && spel !== void 0 && spel.not && canRev) {\n var opConfig = config.operators[opKey];\n if (opConfig.reversedOp) {\n opKey = opConfig.reversedOp;\n spel.not = false;\n } else {\n needWrapReverse = true;\n }\n }\n var widget = getWidgetForFieldOp(config, field, opKey);\n var widgetConfig = config.widgets[widget || fieldConfig.mainWidget];\n var asyncListValuesArr = convertedArgs.map(function (v) {\n return v.asyncListValues;\n }).filter(function (v) {\n return v != undefined;\n });\n var asyncListValues = asyncListValuesArr.length ? asyncListValuesArr[0] : undefined;\n var res = {\n type: \"rule\",\n id: uuid(),\n properties: _objectSpread({\n field: field,\n fieldSrc: fieldSrc,\n operator: opKey,\n value: convertedArgs.map(function (v) {\n return v.value;\n }),\n valueSrc: convertedArgs.map(function (v) {\n return v.valueSrc;\n }),\n valueType: convertedArgs.map(function (v) {\n if (v.valueSrc == \"value\") {\n return (widgetConfig === null || widgetConfig === void 0 ? void 0 : widgetConfig.type) || (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type) || v.valueType;\n }\n return v.valueType;\n })\n }, asyncListValues ? {\n asyncListValues: asyncListValues\n } : {})\n };\n if (needWrapReverse) {\n res = wrapInDefaultConj(res, config, spel === null || spel === void 0 ? void 0 : spel.not);\n if (spel !== null && spel !== void 0 && spel.not) {\n spel.not = false;\n }\n }\n return res;\n};\nvar buildRuleGroup = function buildRuleGroup(_ref11, opKey, convertedArgs, config, meta) {\n var groupFilter = _ref11.groupFilter,\n groupFieldValue = _ref11.groupFieldValue;\n if (groupFieldValue.valueSrc != \"field\") throw \"Bad groupFieldValue: \".concat(JSON.stringify(groupFieldValue));\n var groupField = groupFieldValue.value;\n var groupOpRule = buildRule(config, meta, groupField, opKey, convertedArgs);\n if (!groupOpRule) return undefined;\n var fieldConfig = getFieldConfig(config, groupField);\n var mode = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.mode;\n var res;\n if ((groupFilter === null || groupFilter === void 0 ? void 0 : groupFilter.type) === \"group\") {\n res = _objectSpread(_objectSpread({}, groupFilter || {}), {}, {\n type: \"rule_group\",\n properties: _objectSpread(_objectSpread(_objectSpread({}, groupOpRule.properties), (groupFilter === null || groupFilter === void 0 ? void 0 : groupFilter.properties) || {}), {}, {\n mode: mode\n })\n });\n } else if (groupFilter) {\n // rule_group in rule_group\n res = _objectSpread(_objectSpread({}, groupOpRule || {}), {}, {\n type: \"rule_group\",\n children1: [groupFilter],\n properties: _objectSpread(_objectSpread({}, groupOpRule.properties), {}, {\n mode: mode\n })\n });\n } else {\n res = _objectSpread(_objectSpread({}, groupOpRule || {}), {}, {\n type: \"rule_group\",\n properties: _objectSpread(_objectSpread({}, groupOpRule.properties), {}, {\n mode: mode\n })\n });\n }\n if (!res.id) res.id = uuid();\n return res;\n};\nvar compareArgs = function compareArgs(left, right, spel, conv, config, meta) {\n var parentSpel = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n if (left.type == right.type) {\n if (left.type == \"!aggr\") {\n var _map = [left.source, right.source].map(function (v) {\n return convertArg(v, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField\n }));\n }),\n _map2 = _slicedToArray(_map, 2),\n leftSource = _map2[0],\n rightSource = _map2[1];\n //todo: check same filter\n return leftSource.value == rightSource.value;\n } else {\n var _map3 = [left, right].map(function (v) {\n return convertArg(v, conv, config, meta, _objectSpread(_objectSpread({}, spel), {}, {\n _groupField: parentSpel === null || parentSpel === void 0 ? void 0 : parentSpel._groupField\n }));\n }),\n _map4 = _slicedToArray(_map3, 2),\n leftVal = _map4[0],\n rightVal = _map4[1];\n return leftVal.value == rightVal.value;\n }\n }\n return false;\n};\nvar buildSimpleSwitch = function buildSimpleSwitch(val, conv, config, meta) {\n var children1 = {};\n var cond = null;\n var caseI = buildCase(cond, val, conv, config, meta);\n if (caseI) {\n children1[caseI.id] = caseI;\n }\n var res = {\n type: \"switch_group\",\n id: uuid(),\n children1: children1,\n properties: {}\n };\n return res;\n};\nvar buildCase = function buildCase(cond, val, conv, config, meta) {\n var spel = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var valProperties = buildCaseValProperties(config, meta, conv, val, spel);\n var caseI;\n if (cond) {\n caseI = convertToTree(cond, conv, config, meta, spel);\n if (caseI && caseI.type) {\n if (caseI.type != \"group\") {\n caseI = wrapInDefaultConj(caseI, config);\n }\n caseI.type = \"case_group\";\n } else {\n meta.errors.push(\"Unexpected case: \".concat(JSON.stringify(caseI)));\n caseI = undefined;\n }\n } else {\n caseI = {\n id: uuid(),\n type: \"case_group\",\n properties: {}\n };\n }\n if (caseI) {\n caseI.properties = _objectSpread(_objectSpread({}, caseI.properties), valProperties);\n }\n return caseI;\n};\nvar buildCaseValueConcat = function buildCaseValueConcat(spel, conv, config, meta) {\n var flat = [];\n function _processConcatChildren(children) {\n children.map(function (child) {\n if (child.type == \"op-plus\") {\n _processConcatChildren(child.children);\n } else {\n var convertedChild = convertArg(child, conv, config, meta, spel);\n if (convertedChild) {\n flat.push(convertedChild);\n } else {\n meta.errors.push(\"Can't convert \".concat(child.type, \" in concatenation\"));\n }\n }\n });\n }\n _processConcatChildren(spel.children);\n return {\n valueSrc: \"value\",\n valueType: \"case_value\",\n value: flat\n };\n};\nvar buildCaseValProperties = function buildCaseValProperties(config, meta, conv, val) {\n var spel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var valProperties = {};\n var convVal;\n if ((val === null || val === void 0 ? void 0 : val.type) == \"op-plus\") {\n convVal = buildCaseValueConcat(val, conv, config, meta);\n } else {\n convVal = convertArg(val, conv, config, meta, spel);\n }\n var widgetDef = config.widgets[\"case_value\"];\n var importCaseValue = widgetDef === null || widgetDef === void 0 ? void 0 : widgetDef.spelImportValue;\n if (importCaseValue) {\n var _importCaseValue = importCaseValue(convVal),\n _importCaseValue2 = _slicedToArray(_importCaseValue, 2),\n normVal = _importCaseValue2[0],\n normErrors = _importCaseValue2[1];\n normErrors.map(function (e) {\n return meta.errors.push(e);\n });\n if (normVal) {\n valProperties = {\n value: [normVal],\n valueSrc: [\"value\"],\n valueType: [\"case_value\"]\n };\n }\n } else {\n meta.errors.push(\"No fucntion to import case value\");\n }\n return valProperties;\n};\nvar wrapInDefaultConjRuleGroup = function wrapInDefaultConjRuleGroup(rule, parentField, parentFieldConfig, config, conj) {\n if (!rule) return undefined;\n return {\n type: \"rule_group\",\n id: uuid(),\n children1: _defineProperty({}, rule.id, rule),\n properties: {\n conjunction: conj || defaultGroupConjunction(config, parentFieldConfig),\n not: false,\n field: parentField\n }\n };\n};\nvar wrapInDefaultConj = function wrapInDefaultConj(rule, config) {\n var not = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: \"group\",\n id: uuid(),\n children1: _defineProperty({}, rule.id, rule),\n properties: {\n conjunction: defaultConjunction(config),\n not: not || false\n }\n };\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport Immutable from \"immutable\";\nimport uuid from \"./uuid\";\nimport { getFieldConfig, getOperatorConfig, getFieldParts } from \"./configUtils\";\nimport { getNewValueForFieldOp, getFirstField, getFirstOperator } from \"../utils/ruleUtils\";\nimport { isImmutable } from \"./stuff\";\nimport { jsToImmutable } from \"../import\";\nexport var getDefaultField = function getDefaultField(config) {\n var canGetFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var parentRuleGroupPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var defaultField = config.settings.defaultField;\n var f = (!parentRuleGroupPath ? defaultField : getDefaultSubField(config, parentRuleGroupPath)) || canGetFirst && getFirstField(config, parentRuleGroupPath) || null;\n // if default LHS is func, convert to Immutable\n if (f != null && typeof f !== \"string\" && !isImmutable(f)) {\n f = jsToImmutable(f);\n }\n return f;\n};\nexport var getDefaultSubField = function getDefaultSubField(config) {\n var _config$settings;\n var parentRuleGroupPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!parentRuleGroupPath) return null;\n var fieldSeparator = (config === null || config === void 0 || (_config$settings = config.settings) === null || _config$settings === void 0 ? void 0 : _config$settings.fieldSeparator) || \".\";\n var parentRuleGroupConfig = getFieldConfig(config, parentRuleGroupPath);\n var f = parentRuleGroupConfig === null || parentRuleGroupConfig === void 0 ? void 0 : parentRuleGroupConfig.defaultField;\n if (f) {\n f = [].concat(_toConsumableArray(getFieldParts(parentRuleGroupPath)), [f]).join(fieldSeparator);\n }\n return f;\n};\nexport var getDefaultFieldSrc = function getDefaultFieldSrc(config) {\n var _config$settings$fiel;\n var canGetFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return canGetFirst && ((_config$settings$fiel = config.settings.fieldSources) === null || _config$settings$fiel === void 0 ? void 0 : _config$settings$fiel[0]) || \"field\";\n};\nexport var getDefaultOperator = function getDefaultOperator(config, field) {\n var canGetFirst = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var defaultOperator = config.settings.defaultOperator;\n var fieldConfig = getFieldConfig(config, field);\n var fieldOperators = (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.operators) || [];\n if (defaultOperator && !fieldOperators.includes(defaultOperator)) defaultOperator = null;\n var fieldDefaultOperator = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.defaultOperator;\n if (fieldDefaultOperator && !fieldOperators.includes(fieldDefaultOperator)) fieldDefaultOperator = null;\n if (!fieldDefaultOperator && canGetFirst) fieldDefaultOperator = getFirstOperator(config, field);\n var fieldHasExplicitDefOp = fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig._origDefaultOperator;\n var op = fieldHasExplicitDefOp && fieldDefaultOperator || defaultOperator || fieldDefaultOperator;\n return op;\n};\n\n//used for complex operators like proximity\nexport var defaultOperatorOptions = function defaultOperatorOptions(config, operator, field) {\n var operatorConfig = operator ? getOperatorConfig(config, operator, field) : null;\n if (!operatorConfig) return null; //new Immutable.Map();\n return operatorConfig.options ? new Immutable.Map(operatorConfig.options && operatorConfig.options.defaults || {}) : null;\n};\nexport var defaultRuleProperties = function defaultRuleProperties(config) {\n var parentRuleGroupPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var item = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var canUseDefaultFieldAndOp = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var canGetFirst = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var field = null,\n operator = null,\n fieldSrc = null;\n var showErrorMessage = config.settings.showErrorMessage;\n if (item) {\n var _item$properties, _item$properties2, _item$properties3;\n fieldSrc = item === null || item === void 0 || (_item$properties = item.properties) === null || _item$properties === void 0 ? void 0 : _item$properties.fieldSrc;\n field = item === null || item === void 0 || (_item$properties2 = item.properties) === null || _item$properties2 === void 0 ? void 0 : _item$properties2.field;\n operator = item === null || item === void 0 || (_item$properties3 = item.properties) === null || _item$properties3 === void 0 ? void 0 : _item$properties3.operator;\n } else if (canUseDefaultFieldAndOp) {\n field = getDefaultField(config, canGetFirst, parentRuleGroupPath);\n if (field) {\n fieldSrc = isImmutable(field) ? \"func\" : \"field\";\n } else {\n fieldSrc = getDefaultFieldSrc(config);\n }\n operator = getDefaultOperator(config, field, true);\n } else {\n fieldSrc = getDefaultFieldSrc(config);\n }\n var current = new Immutable.Map({\n fieldSrc: fieldSrc,\n field: field,\n operator: operator,\n value: new Immutable.List(),\n valueSrc: new Immutable.List(),\n //used for complex operators like proximity\n operatorOptions: defaultOperatorOptions(config, operator, field)\n });\n if (showErrorMessage) {\n current = current.set(\"valueError\", new Immutable.List());\n }\n if (field && operator) {\n var _getNewValueForFieldO = getNewValueForFieldOp(config, config, current, field, operator, \"operator\", false),\n newValue = _getNewValueForFieldO.newValue,\n newValueSrc = _getNewValueForFieldO.newValueSrc,\n newValueType = _getNewValueForFieldO.newValueType,\n newValueError = _getNewValueForFieldO.newValueError;\n current = current.set(\"value\", newValue).set(\"valueSrc\", newValueSrc).set(\"valueType\", newValueType);\n if (showErrorMessage) {\n current = current.set(\"valueError\", newValueError);\n }\n }\n return current;\n};\nexport var defaultGroupConjunction = function defaultGroupConjunction(config) {\n var fieldConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n fieldConfig = getFieldConfig(config, fieldConfig); // if `fieldConfig` is field name, not config\n var conjs = fieldConfig && fieldConfig.conjunctions || Object.keys(config.conjunctions);\n if (conjs.length == 1) return conjs[0];\n return config.settings.defaultGroupConjunction || config.settings.defaultConjunction || conjs[0];\n};\nexport var defaultConjunction = function defaultConjunction(config) {\n return config.settings.defaultConjunction || Object.keys(config.conjunctions)[0];\n};\nexport var defaultGroupProperties = function defaultGroupProperties(config) {\n var fieldConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return new Immutable.Map({\n conjunction: defaultGroupConjunction(config, fieldConfig),\n not: false\n });\n};\nexport var defaultItemProperties = function defaultItemProperties(config, item) {\n var _item$properties4;\n return item && item.type == \"group\" ? defaultGroupProperties(config, item === null || item === void 0 || (_item$properties4 = item.properties) === null || _item$properties4 === void 0 ? void 0 : _item$properties4.field) : defaultRuleProperties(config, null, item);\n};\nexport var defaultRule = function defaultRule(id, config) {\n return _defineProperty({}, id, new Immutable.Map({\n type: \"rule\",\n id: id,\n properties: defaultRuleProperties(config)\n }));\n};\nexport var defaultRoot = function defaultRoot(config) {\n var canAddDefaultRule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return new Immutable.Map({\n type: \"group\",\n id: uuid(),\n children1: new Immutable.OrderedMap(canAddDefaultRule ? _objectSpread({}, defaultRule(uuid(), config)) : {}),\n properties: defaultGroupProperties(config)\n });\n};\nexport var createListFromArray = function createListFromArray(ids) {\n return new Immutable.List(ids);\n};\nexport var emptyProperies = function emptyProperies() {\n return new Immutable.Map();\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, getFieldSrc } from \"./configUtils\";\nimport { getOperatorsForField, getWidgetForFieldOp, getNewValueForFieldOp, isCompletedValue, isEmptyRuleProperties } from \"../utils/ruleUtils\";\nimport { defaultValue, deepEqual, logger } from \"../utils/stuff\";\nimport { getItemInListValues } from \"../utils/listValues\";\nimport { defaultOperatorOptions } from \"../utils/defaultUtils\";\nimport { fixPathsInTree } from \"../utils/treeUtils\";\nimport omit from \"lodash/omit\";\nimport { List } from \"immutable\";\nvar typeOf = function typeOf(v) {\n if (_typeof(v) == \"object\" && v !== null && Array.isArray(v)) return \"array\";else return _typeof(v);\n};\nvar isTypeOf = function isTypeOf(v, type) {\n if (typeOf(v) == type) return true;\n if (type == \"number\" && !isNaN(v)) return true; //can be casted\n return false;\n};\nexport var validateAndFixTree = function validateAndFixTree(newTree, _oldTree, newConfig, oldConfig, removeEmptyGroups, removeIncompleteRules) {\n var tree = validateTree(newTree, _oldTree, newConfig, oldConfig, removeEmptyGroups, removeIncompleteRules);\n tree = fixPathsInTree(tree);\n return tree;\n};\nexport var validateTree = function validateTree(tree, _oldTree, config, oldConfig, removeEmptyGroups, removeIncompleteRules) {\n if (removeEmptyGroups === undefined) {\n removeEmptyGroups = config.settings.removeEmptyGroupsOnLoad;\n }\n if (removeIncompleteRules === undefined) {\n removeIncompleteRules = config.settings.removeIncompleteRulesOnLoad;\n }\n var c = {\n config: config,\n oldConfig: oldConfig,\n removeEmptyGroups: removeEmptyGroups,\n removeIncompleteRules: removeIncompleteRules\n };\n return validateItem(tree, [], null, {}, c);\n};\nfunction validateItem(item, path, itemId, meta, c) {\n var type = item.get(\"type\");\n var children = item.get(\"children1\");\n if ((type === \"group\" || type === \"rule_group\" || type == \"case_group\" || type == \"switch_group\") && children && children.size) {\n return validateGroup(item, path, itemId, meta, c);\n } else if (type === \"rule\") {\n return validateRule(item, path, itemId, meta, c);\n } else {\n return item;\n }\n}\nfunction validateGroup(item, path, itemId, meta, c) {\n var removeEmptyGroups = c.removeEmptyGroups;\n var id = item.get(\"id\");\n var children = item.get(\"children1\");\n var oldChildren = children;\n if (!id && itemId) {\n id = itemId;\n item = item.set(\"id\", id);\n meta.sanitized = true;\n }\n\n //validate children\n var submeta = {};\n children = children.map(function (currentChild, childId) {\n return validateItem(currentChild, path.concat(id), childId, submeta, c);\n });\n if (removeEmptyGroups) children = children.filter(function (currentChild) {\n return currentChild != undefined;\n });\n var sanitized = submeta.sanitized || oldChildren.size != children.size;\n if (!children.size && removeEmptyGroups && path.length) {\n sanitized = true;\n item = undefined;\n }\n if (sanitized) meta.sanitized = true;\n if (sanitized && item) item = item.set(\"children1\", children);\n return item;\n}\nfunction validateRule(item, path, itemId, meta, c) {\n var _field, _field$toJS, _field2, _field2$toJS;\n var removeIncompleteRules = c.removeIncompleteRules,\n config = c.config,\n oldConfig = c.oldConfig;\n var showErrorMessage = config.settings.showErrorMessage;\n var id = item.get(\"id\");\n var properties = item.get(\"properties\");\n var field = properties.get(\"field\") || null;\n var fieldSrc = properties.get(\"fieldSrc\") || null;\n var operator = properties.get(\"operator\") || null;\n var operatorOptions = properties.get(\"operatorOptions\");\n var valueSrc = properties.get(\"valueSrc\");\n var value = properties.get(\"value\");\n var valueError = properties.get(\"valueError\");\n var oldSerialized = {\n field: ((_field = field) === null || _field === void 0 || (_field$toJS = _field.toJS) === null || _field$toJS === void 0 ? void 0 : _field$toJS.call(_field)) || field,\n fieldSrc: fieldSrc,\n operator: operator,\n operatorOptions: operatorOptions ? operatorOptions.toJS() : {},\n valueSrc: valueSrc ? valueSrc.toJS() : null,\n value: value ? value.toJS() : null,\n valueError: valueError ? valueError.toJS() : null\n };\n var _wasValid = field && operator && value && !value.includes(undefined);\n if (!id && itemId) {\n id = itemId;\n item = item.set(\"id\", id);\n meta.sanitized = true;\n }\n\n //validate field\n var fieldDefinition = field ? getFieldConfig(config, field) : null;\n if (field && !fieldDefinition) {\n logger.warn(\"No config for field \".concat(field));\n field = null;\n }\n if (field == null) {\n properties = [\"operator\", \"operatorOptions\", \"valueSrc\", \"value\", \"valueError\"].reduce(function (map, key) {\n return map[\"delete\"](key);\n }, properties);\n operator = null;\n }\n if (!fieldSrc) {\n fieldSrc = getFieldSrc(field);\n properties = properties.set(\"fieldSrc\", fieldSrc);\n }\n\n //validate operator\n // Backward compatibility: obsolete operator range_between\n if (operator == \"range_between\" || operator == \"range_not_between\") {\n operator = operator == \"range_between\" ? \"between\" : \"not_between\";\n console.info(\"Fixed operator \".concat(properties.get(\"operator\"), \" to \").concat(operator));\n properties = properties.set(\"operator\", operator);\n }\n var operatorDefinition = operator ? getOperatorConfig(config, operator, field) : null;\n if (operator && !operatorDefinition) {\n console.warn(\"No config for operator \".concat(operator));\n operator = null;\n }\n var availOps = field ? getOperatorsForField(config, field) : [];\n if (field) {\n if (!(availOps !== null && availOps !== void 0 && availOps.length)) {\n console.warn(\"Type of field \".concat(field, \" is not supported\"));\n operator = null;\n } else if (operator && availOps.indexOf(operator) == -1) {\n if (operator == \"is_empty\" || operator == \"is_not_empty\") {\n // Backward compatibility: is_empty #494\n operator = operator == \"is_empty\" ? \"is_null\" : \"is_not_null\";\n console.info(\"Fixed operator \".concat(properties.get(\"operator\"), \" to \").concat(operator, \" for \").concat(field));\n properties = properties.set(\"operator\", operator);\n } else {\n console.warn(\"Operator \".concat(operator, \" is not supported for field \").concat(field));\n operator = null;\n }\n }\n }\n if (operator == null) {\n // do not unset operator ?\n properties = properties[\"delete\"](\"operatorOptions\");\n properties = properties[\"delete\"](\"valueSrc\");\n properties = properties[\"delete\"](\"value\");\n properties = properties[\"delete\"](\"valueError\");\n }\n\n //validate operator options\n operatorOptions = properties.get(\"operatorOptions\");\n var _operatorCardinality = operator ? defaultValue(operatorDefinition.cardinality, 1) : null;\n if (!operator || operatorOptions && !operatorDefinition.options) {\n operatorOptions = null;\n properties = properties[\"delete\"](\"operatorOptions\");\n } else if (operator && !operatorOptions && operatorDefinition.options) {\n operatorOptions = defaultOperatorOptions(config, operator, field);\n properties = properties.set(\"operatorOptions\", operatorOptions);\n }\n\n //validate values\n valueSrc = properties.get(\"valueSrc\");\n value = properties.get(\"value\");\n var canFix = !showErrorMessage;\n var isEndValue = true;\n var _getNewValueForFieldO = getNewValueForFieldOp(config, oldConfig, properties, field, operator, null, canFix, isEndValue),\n newValue = _getNewValueForFieldO.newValue,\n newValueSrc = _getNewValueForFieldO.newValueSrc,\n newValueError = _getNewValueForFieldO.newValueError;\n value = newValue;\n valueSrc = newValueSrc;\n valueError = newValueError;\n properties = properties.set(\"value\", value);\n properties = properties.set(\"valueSrc\", valueSrc);\n if (showErrorMessage) {\n properties = properties.set(\"valueError\", valueError);\n } else {\n properties = properties[\"delete\"](\"valueError\");\n }\n var newSerialized = {\n field: ((_field2 = field) === null || _field2 === void 0 || (_field2$toJS = _field2.toJS) === null || _field2$toJS === void 0 ? void 0 : _field2$toJS.call(_field2)) || field,\n fieldSrc: fieldSrc,\n operator: operator,\n operatorOptions: operatorOptions ? operatorOptions.toJS() : {},\n valueSrc: valueSrc ? valueSrc.toJS() : null,\n value: value ? value.toJS() : null,\n valueError: valueError ? valueError.toJS() : null\n };\n var sanitized = !deepEqual(oldSerialized, newSerialized);\n //const isCompleted = !!operator && !isEmptyRuleProperties(properties.toObject(), config, false);\n var isValueCompleted = value && value.filter(function (v, delta) {\n return !isCompletedValue(v, valueSrc.get(delta), config);\n }).size == 0;\n var isFieldCompleted = isCompletedValue(field, fieldSrc, config);\n var isCompleted = isFieldCompleted && operator && isValueCompleted;\n if (sanitized) meta.sanitized = true;\n if (!isCompleted && removeIncompleteRules) {\n var reason = \"Uncomplete rule\";\n if (!isFieldCompleted) {\n reason = \"Uncomplete LHS\";\n } else {\n var _newSerialized$valueS, _newSerialized$valueS2, _oldSerialized$valueS;\n reason = \"Uncomplete RHS\";\n if ((_newSerialized$valueS = newSerialized.valueSrc) !== null && _newSerialized$valueS !== void 0 && _newSerialized$valueS[0] && ((_newSerialized$valueS2 = newSerialized.valueSrc) === null || _newSerialized$valueS2 === void 0 ? void 0 : _newSerialized$valueS2[0]) != ((_oldSerialized$valueS = oldSerialized.valueSrc) === null || _oldSerialized$valueS === void 0 ? void 0 : _oldSerialized$valueS[0])) {\n // eg. operator `starts_with` supports only valueSrc \"value\"\n reason = \"Bad value src \".concat(newSerialized.valueSrc);\n }\n }\n console.warn(\"[RAQB validate]\", \"Removing rule: \", oldSerialized, \"Reason: \".concat(reason));\n item = undefined;\n } else if (sanitized) item = item.set(\"properties\", properties);\n return item;\n}\n\n/**\n * \n * @param {bool} canFix true is useful for func values to remove bad args\n * @param {bool} isEndValue false if value is in process of editing by user\n * @param {bool} isRawValue false is used only internally from validateFuncValue\n * @return {array} [validError, fixedValue] - if validError === null and canFix == true, fixedValue can differ from value if was fixed\n */\nexport var validateValue = function validateValue(config, leftField, field, operator, value, valueType, valueSrc, asyncListValues) {\n var canFix = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var isEndValue = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n var isRawValue = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : true;\n var validError = null;\n var fixedValue = value;\n if (value != null) {\n if (valueSrc == \"field\") {\n var _validateFieldValue = validateFieldValue(leftField, field, value, valueSrc, valueType, asyncListValues, config, operator, isEndValue, canFix);\n var _validateFieldValue2 = _slicedToArray(_validateFieldValue, 2);\n validError = _validateFieldValue2[0];\n fixedValue = _validateFieldValue2[1];\n } else if (valueSrc == \"func\") {\n var _validateFuncValue = validateFuncValue(leftField, field, value, valueSrc, valueType, asyncListValues, config, operator, isEndValue, canFix);\n var _validateFuncValue2 = _slicedToArray(_validateFuncValue, 2);\n validError = _validateFuncValue2[0];\n fixedValue = _validateFuncValue2[1];\n } else if (valueSrc == \"value\" || !valueSrc) {\n var _validateNormalValue = validateNormalValue(leftField, field, value, valueSrc, valueType, asyncListValues, config, operator, isEndValue, canFix);\n var _validateNormalValue2 = _slicedToArray(_validateNormalValue, 2);\n validError = _validateNormalValue2[0];\n fixedValue = _validateNormalValue2[1];\n }\n if (!validError) {\n var fieldConfig = getFieldConfig(config, field);\n var w = getWidgetForFieldOp(config, field, operator, valueSrc);\n var operatorDefinition = operator ? getOperatorConfig(config, operator, field) : null;\n var fieldWidgetDefinition = omit(getFieldWidgetConfig(config, field, operator, w, valueSrc), [\"factory\"]);\n var rightFieldDefinition = valueSrc == \"field\" ? getFieldConfig(config, value) : null;\n var fieldSettings = fieldWidgetDefinition; // widget definition merged with fieldSettings\n\n var fn = fieldWidgetDefinition.validateValue;\n if (typeof fn == \"function\") {\n var args = [fixedValue, fieldSettings, operator, operatorDefinition];\n if (valueSrc == \"field\") args.push(rightFieldDefinition);\n var validResult = fn.call.apply(fn, [config.ctx].concat(args));\n if (typeof validResult == \"boolean\") {\n if (validResult == false) validError = \"Invalid value\";\n } else {\n validError = validResult;\n }\n }\n }\n }\n if (isRawValue && validError) {\n console.warn(\"[RAQB validate]\", \"Field \".concat(field, \": \").concat(validError));\n }\n return [validError, fixedValue];\n};\nvar validateValueInList = function validateValueInList(value, listValues, canFix, isEndValue, removeInvalidMultiSelectValuesOnLoad) {\n var values = List.isList(value) ? value.toJS() : value instanceof Array ? _toConsumableArray(value) : undefined;\n if (values) {\n var _values$reduce = values.reduce(function (_ref, val) {\n var _ref2 = _slicedToArray(_ref, 2),\n goodVals = _ref2[0],\n badVals = _ref2[1];\n var vv = getItemInListValues(listValues, val);\n if (vv == undefined) {\n return [goodVals, [].concat(_toConsumableArray(badVals), [val])];\n } else {\n return [[].concat(_toConsumableArray(goodVals), [vv.value]), badVals];\n }\n }, [[], []]),\n _values$reduce2 = _slicedToArray(_values$reduce, 2),\n goodValues = _values$reduce2[0],\n badValues = _values$reduce2[1];\n var plural = badValues.length > 1;\n var err = badValues.length ? \"\".concat(plural ? \"Values\" : \"Value\", \" \").concat(badValues.join(\", \"), \" \").concat(plural ? \"are\" : \"is\", \" not in list of values\") : null;\n // always remove bad values at tree validation as user can't unselect them (except AntDesign widget)\n if (removeInvalidMultiSelectValuesOnLoad !== undefined) {\n canFix = removeInvalidMultiSelectValuesOnLoad;\n } else {\n canFix = canFix || isEndValue;\n }\n return [err, canFix ? goodValues : value];\n } else {\n var vv = getItemInListValues(listValues, value);\n if (vv == undefined) {\n return [\"Value \".concat(value, \" is not in list of values\"), value];\n } else {\n value = vv.value;\n }\n return [null, value];\n }\n};\n\n/**\n* \n*/\nvar validateNormalValue = function validateNormalValue(leftField, field, value, valueSrc, valueType, asyncListValues, config) {\n var operator = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n var isEndValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var canFix = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n if (field) {\n var fieldConfig = getFieldConfig(config, field);\n var w = getWidgetForFieldOp(config, field, operator, valueSrc);\n var wConfig = config.widgets[w];\n var wType = wConfig === null || wConfig === void 0 ? void 0 : wConfig.type;\n var jsType = wConfig === null || wConfig === void 0 ? void 0 : wConfig.jsType;\n var fieldSettings = fieldConfig.fieldSettings;\n var listValues = (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.treeValues) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.listValues);\n var isAsyncListValues = !!(fieldSettings !== null && fieldSettings !== void 0 && fieldSettings.asyncFetch);\n // todo: for select/multiselect value can be string or number\n var canSkipCheck = listValues || isAsyncListValues;\n if (valueType && wType && valueType != wType) return [\"Value should have type \".concat(wType, \", but got value of type \").concat(valueType), value];\n if (jsType && !isTypeOf(value, jsType) && !canSkipCheck) {\n return [\"Value should have JS type \".concat(jsType, \", but got value of type \").concat(_typeof(value)), value];\n }\n if (fieldSettings) {\n var realListValues = asyncListValues || listValues;\n if (realListValues && !fieldSettings.allowCustomValues) {\n return validateValueInList(value, realListValues, canFix, isEndValue, config.settings.removeInvalidMultiSelectValuesOnLoad);\n }\n if (fieldSettings.min != null && value < fieldSettings.min) {\n return [\"Value \".concat(value, \" < min \").concat(fieldSettings.min), canFix ? fieldSettings.min : value];\n }\n if (fieldSettings.max != null && value > fieldSettings.max) {\n return [\"Value \".concat(value, \" > max \").concat(fieldSettings.max), canFix ? fieldSettings.max : value];\n }\n }\n }\n return [null, value];\n};\n\n/**\n* \n*/\nvar validateFieldValue = function validateFieldValue(leftField, field, value, _valueSrc, valueType, asyncListValues, config) {\n var operator = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n var isEndValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var canFix = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n var fieldSeparator = config.settings.fieldSeparator;\n var isFuncArg = _typeof(field) == \"object\" && (field === null || field === void 0 ? void 0 : field._isFuncArg);\n var leftFieldStr = Array.isArray(leftField) ? leftField.join(fieldSeparator) : leftField;\n var rightFieldStr = Array.isArray(value) ? value.join(fieldSeparator) : value;\n var rightFieldDefinition = getFieldConfig(config, value);\n if (!rightFieldDefinition) return [\"Unknown field \".concat(value), value];\n if (rightFieldStr == leftFieldStr && !isFuncArg) return [\"Can't compare field \".concat(leftField, \" with itself\"), value];\n if (valueType && valueType != rightFieldDefinition.type) return [\"Field \".concat(value, \" is of type \").concat(rightFieldDefinition.type, \", but expected \").concat(valueType), value];\n return [null, value];\n};\n\n/**\n* \n*/\nvar validateFuncValue = function validateFuncValue(leftField, field, value, _valueSrc, valueType, asyncListValues, config) {\n var operator = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;\n var isEndValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n var canFix = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n var fixedValue = value;\n if (value) {\n var funcKey = value.get(\"func\");\n if (funcKey) {\n var funcConfig = getFuncConfig(config, funcKey);\n if (funcConfig) {\n if (valueType && funcConfig.returnType != valueType) return [\"Function \".concat(funcKey, \" should return value of type \").concat(funcConfig.returnType, \", but got \").concat(valueType), value];\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var args = fixedValue.get(\"args\");\n var argVal = args ? args.get(argKey) : undefined;\n var argDef = getFieldConfig(config, argConfig);\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n if (argValue !== undefined) {\n var _validateValue = validateValue(config, leftField, argDef, operator, argValue, argConfig.type, argValueSrc, asyncListValues, canFix, isEndValue, false),\n _validateValue2 = _slicedToArray(_validateValue, 2),\n argValidError = _validateValue2[0],\n fixedArgVal = _validateValue2[1];\n if (argValidError !== null) {\n if (canFix) {\n fixedValue = fixedValue.deleteIn([\"args\", argKey]);\n if (argConfig.defaultValue !== undefined) {\n fixedValue = fixedValue.setIn([\"args\", argKey, \"value\"], argConfig.defaultValue);\n fixedValue = fixedValue.setIn([\"args\", argKey, \"valueSrc\"], \"value\");\n }\n } else {\n return [\"Invalid value of arg \".concat(argKey, \" for func \").concat(funcKey, \": \").concat(argValidError), value];\n }\n } else if (fixedArgVal !== argValue) {\n fixedValue = fixedValue.setIn([\"args\", argKey, \"value\"], fixedArgVal);\n }\n } else if (isEndValue && argConfig.defaultValue === undefined && !canFix && !argConfig.isOptional) {\n return [\"Value of arg \".concat(argKey, \" for func \").concat(funcKey, \" is required\"), value];\n }\n }\n } else return [\"Unknown function \".concat(funcKey), value];\n } // else it's not function value\n } // empty value\n\n return [null, fixedValue];\n};","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport { getFieldConfig, getFuncConfig, getFuncSignature } from \"../utils/configUtils\";\nimport { filterValueSourcesForField, completeValue, selectTypes } from \"../utils/ruleUtils\";\nimport { validateValue } from \"../utils/validation\";\nimport Immutable from \"immutable\";\n\n// helpers\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\n\n/**\n * @param {Immutable.Map} value\n * @param {object} config\n * @return {Immutable.Map | undefined} - undefined if func value is not complete (missing required arg vals); can return completed value != value\n */\nexport var completeFuncValue = function completeFuncValue(value, config) {\n if (!value) return undefined;\n var funcKey = value.get(\"func\");\n var funcConfig = funcKey && getFuncConfig(config, funcKey);\n if (!funcConfig) return undefined;\n var complValue = value;\n var tmpHasOptional = false;\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var valueSources = argConfig.valueSources,\n isOptional = argConfig.isOptional,\n defaultValue = argConfig.defaultValue;\n var filteredValueSources = filterValueSourcesForField(config, valueSources, argConfig);\n var args = complValue.get(\"args\");\n var argDefaultValueSrc = filteredValueSources.length == 1 ? filteredValueSources[0] : undefined;\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = (argVal ? argVal.get(\"valueSrc\") : undefined) || argDefaultValueSrc;\n if (argValue !== undefined) {\n var completeArgValue = completeValue(argValue, argValueSrc, config);\n if (completeArgValue === undefined) {\n return undefined;\n } else if (completeArgValue !== argValue) {\n complValue = complValue.setIn([\"args\", argKey, \"value\"], completeArgValue);\n }\n if (tmpHasOptional) {\n // has gap\n return undefined;\n }\n } else if (defaultValue !== undefined && !isObject(defaultValue)) {\n complValue = complValue.setIn([\"args\", argKey, \"value\"], getDefaultArgValue(argConfig));\n complValue = complValue.setIn([\"args\", argKey, \"valueSrc\"], \"value\");\n } else if (isOptional) {\n // optional\n tmpHasOptional = true;\n } else {\n // missing value\n return undefined;\n }\n }\n return complValue;\n};\n\n/**\n * @param {Immutable.Map} value \n * @return {array} - [usedFields, badFields]\n */\n// const getUsedFieldsInFuncValue = (value, config) => {\n// let usedFields = [];\n// let badFields = [];\n\n// const _traverse = (value) => {\n// const args = value && value.get(\"args\");\n// if (!args) return;\n// for (const arg of args.values()) {\n// if (arg.get(\"valueSrc\") == \"field\") {\n// const rightField = arg.get(\"value\");\n// if (rightField) {\n// const rightFieldDefinition = config ? getFieldConfig(config, rightField) : undefined;\n// if (config && !rightFieldDefinition)\n// badFields.push(rightField);\n// else\n// usedFields.push(rightField);\n// }\n// } else if (arg.get(\"valueSrc\") == \"func\") {\n// _traverse(arg.get(\"value\"));\n// }\n// }\n// };\n\n// _traverse(value);\n\n// return [usedFields, badFields];\n// };\n\n/**\n * Used @ FuncWidget\n * @param {Immutable.Map} value \n * @param {string} funcKey \n * @param {object} config \n */\nexport var setFunc = function setFunc(value, funcKey, config) {\n var fieldSeparator = config.settings.fieldSeparator;\n value = value || new Immutable.Map();\n if (Array.isArray(funcKey)) {\n // fix for cascader\n funcKey = funcKey.join(fieldSeparator);\n }\n var oldFuncKey = value.get(\"func\");\n var oldArgs = value.get(\"args\");\n value = value.set(\"func\", funcKey);\n var funcConfig = funcKey && getFuncConfig(config, funcKey);\n var newFuncSignature = funcKey && getFuncSignature(config, funcKey);\n var oldFuncSignature = oldFuncKey && getFuncSignature(config, oldFuncKey);\n var keepArgsKeys = getCompatibleArgsOnFuncChange(oldFuncSignature, newFuncSignature, oldArgs, config);\n if (keepArgsKeys.length) {\n var argsKeys = Object.keys(newFuncSignature.args);\n var deleteArgsKeys = argsKeys.filter(function (k) {\n return !keepArgsKeys.includes(k);\n });\n value = deleteArgsKeys.reduce(function (value, k) {\n return value.deleteIn([\"args\", k]);\n }, value);\n } else {\n value = value.set(\"args\", new Immutable.Map());\n }\n\n // defaults\n if (funcConfig) {\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var valueSources = argConfig.valueSources,\n defaultValue = argConfig.defaultValue;\n var filteredValueSources = filterValueSourcesForField(config, valueSources, argConfig);\n var firstValueSrc = filteredValueSources.length ? filteredValueSources[0] : undefined;\n var defaultValueSrc = defaultValue ? isObject(defaultValue) && !!defaultValue.func ? \"func\" : \"value\" : undefined;\n var argDefaultValueSrc = defaultValueSrc || firstValueSrc;\n var hasValue = value.getIn([\"args\", argKey]);\n if (!hasValue) {\n if (defaultValue !== undefined) {\n value = value.setIn([\"args\", argKey, \"value\"], getDefaultArgValue(argConfig));\n }\n if (argDefaultValueSrc) {\n value = value.setIn([\"args\", argKey, \"valueSrc\"], argDefaultValueSrc);\n }\n }\n }\n }\n return value;\n};\nvar getDefaultArgValue = function getDefaultArgValue(_ref) {\n var value = _ref.defaultValue;\n if (isObject(value) && !Immutable.Map.isMap(value) && value.func) {\n return Immutable.fromJS(value, function (k, v) {\n return Immutable.Iterable.isIndexed(v) ? v.toList() : v.toOrderedMap();\n });\n }\n return value;\n};\n\n/**\n* Used @ FuncWidget\n* @param {Immutable.Map} value \n* @param {string} argKey \n* @param {*} argVal \n* @param {object} argConfig \n*/\nexport var setArgValue = function setArgValue(value, argKey, argVal, argConfig, config) {\n if (value && value.get(\"func\")) {\n value = value.setIn([\"args\", argKey, \"value\"], argVal);\n\n // set default arg value source\n var valueSrc = value.getIn([\"args\", argKey, \"valueSrc\"]);\n var valueSources = argConfig.valueSources;\n var filteredValueSources = filterValueSourcesForField(config, valueSources, argConfig);\n var argDefaultValueSrc = filteredValueSources.length == 1 ? filteredValueSources[0] : undefined;\n if (!argDefaultValueSrc && filteredValueSources.includes(\"value\")) {\n argDefaultValueSrc = \"value\";\n }\n if (!valueSrc && argDefaultValueSrc) {\n value = value.setIn([\"args\", argKey, \"valueSrc\"], argDefaultValueSrc);\n }\n }\n return value;\n};\n\n/**\n* Used @ FuncWidget\n* @param {Immutable.Map} value \n* @param {string} argKey \n* @param {string} argValSrc \n* @param {object} argConfig \n*/\nexport var setArgValueSrc = function setArgValueSrc(value, argKey, argValSrc, _argConfig, _config) {\n if (value && value.get(\"func\")) {\n value = value.setIn([\"args\", argKey], new Immutable.Map({\n valueSrc: argValSrc\n }));\n }\n return value;\n};\n\n// see getFuncSignature in configUtils\nexport var getCompatibleArgsOnFuncChange = function getCompatibleArgsOnFuncChange(s1, s2, argVals, config) {\n if ((s1 === null || s1 === void 0 ? void 0 : s1.returnType) != (s2 === null || s2 === void 0 ? void 0 : s2.returnType)) return [];\n var checkIndexes = false;\n var keys = Object.keys(s2.args);\n var compatibleKeys = keys.filter(function (k, i) {\n var arg2 = s2.args[k];\n var arg1 = s1.args[k];\n var oldInd = Object.keys(s1.args).indexOf(k);\n if (!arg1 && (arg2.defaultValue !== undefined || arg2.isOptional)) {\n return true;\n }\n if (checkIndexes && i !== oldInd) {\n return false;\n }\n if ((arg1 === null || arg1 === void 0 ? void 0 : arg1.type) != arg2.type) return false;\n if (selectTypes.includes(arg2.type)) {\n if (!arg1.listValuesType || arg1.listValuesType !== arg2.listValuesType) return false;\n }\n if (argVals) {\n var argVal = argVals.get(k);\n var argValue = argVal === null || argVal === void 0 ? void 0 : argVal.get(\"value\");\n var argValueSrc = argVal === null || argVal === void 0 ? void 0 : argVal.get(\"valueSrc\");\n if (arg2.valueSources && !arg2.valueSources.includes(argValueSrc)) return false;\n var leftField = null,\n operator = null,\n argDef = arg2,\n asyncListValues = null,\n canFix = false,\n isEndValue = true;\n var _validateValue = validateValue(config, leftField, argDef, operator, argValue, argDef.type, argValueSrc, asyncListValues, canFix, isEndValue, false),\n _validateValue2 = _slicedToArray(_validateValue, 2),\n argValidError = _validateValue2[0],\n _fixedArgVal = _validateValue2[1];\n if (argValidError) return false;\n }\n return true;\n });\n return compatibleKeys;\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFieldRawConfig, getFuncConfig, getFieldParts, isFieldDescendantOfField } from \"./configUtils\";\nimport { defaultValue, getFirstDefined } from \"../utils/stuff\";\nimport Immutable from \"immutable\";\nimport { validateValue } from \"../utils/validation\";\nimport last from \"lodash/last\";\nimport { completeFuncValue } from \"./funcUtils\";\nexport var selectTypes = [\"select\", \"multiselect\", \"treeselect\", \"treemultiselect\"];\n\n/**\n * @param {object} config\n * @param {object} oldConfig\n * @param {Immutable.Map} current\n * @param {string} newField\n * @param {string} newOperator\n * @param {string} changedProp\n * @return {object} - {canReuseValue, newValue, newValueSrc, newValueType, newValueError}\n */\nexport var getNewValueForFieldOp = function getNewValueForFieldOp(config) {\n var oldConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var current = arguments.length > 2 ? arguments[2] : undefined;\n var newField = arguments.length > 3 ? arguments[3] : undefined;\n var newOperator = arguments.length > 4 ? arguments[4] : undefined;\n var changedProp = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var canFix = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : true;\n var isEndValue = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;\n if (!oldConfig) oldConfig = config;\n var keepInputOnChangeFieldSrc = config.settings.keepInputOnChangeFieldSrc;\n var currentField = current.get(\"field\");\n var currentFieldType = current.get(\"fieldType\");\n //const currentFieldSrc = current.get(\"fieldSrc\");\n var currentOperator = current.get(\"operator\");\n var currentValue = current.get(\"value\");\n var currentValueSrc = current.get(\"valueSrc\", new Immutable.List());\n var currentValueType = current.get(\"valueType\", new Immutable.List());\n var currentAsyncListValues = current.get(\"asyncListValues\");\n\n //const isValidatingTree = (changedProp === null);\n var _config$settings = config.settings,\n convertableWidgets = _config$settings.convertableWidgets,\n clearValueOnChangeField = _config$settings.clearValueOnChangeField,\n clearValueOnChangeOp = _config$settings.clearValueOnChangeOp,\n showErrorMessage = _config$settings.showErrorMessage;\n\n //const currentOperatorConfig = getOperatorConfig(oldConfig, currentOperator);\n var newOperatorConfig = getOperatorConfig(config, newOperator, newField);\n //const currentOperatorCardinality = currentOperator ? defaultValue(currentOperatorConfig.cardinality, 1) : null;\n var operatorCardinality = newOperator ? defaultValue(newOperatorConfig.cardinality, 1) : null;\n var currentFieldConfig = getFieldConfig(oldConfig, currentField);\n var newFieldConfig = getFieldConfig(config, newField);\n var isOkWithoutField = !currentField && currentFieldType && keepInputOnChangeFieldSrc;\n var currentType = (currentFieldConfig === null || currentFieldConfig === void 0 ? void 0 : currentFieldConfig.type) || currentFieldType;\n var newType = (newFieldConfig === null || newFieldConfig === void 0 ? void 0 : newFieldConfig.type) || !newField && isOkWithoutField && currentType;\n var canReuseValue = (currentField || isOkWithoutField) && currentOperator && newOperator && currentValue != undefined;\n canReuseValue = canReuseValue && (!changedProp || changedProp == \"field\" && !clearValueOnChangeField || changedProp == \"operator\" && !clearValueOnChangeOp);\n canReuseValue = canReuseValue && currentType && newType && currentType == newType;\n if (canReuseValue && selectTypes.includes(newType) && changedProp == \"field\") {\n var newListValuesType = newFieldConfig === null || newFieldConfig === void 0 ? void 0 : newFieldConfig.listValuesType;\n var currentListValuesType = currentFieldConfig === null || currentFieldConfig === void 0 ? void 0 : currentFieldConfig.listValuesType;\n if (newListValuesType && newListValuesType === currentListValuesType) {\n // ok\n } else {\n // different fields of select types has different listValues\n canReuseValue = false;\n }\n }\n\n // compare old & new widgets\n for (var i = 0; i < operatorCardinality; i++) {\n var vs = currentValueSrc.get(i) || null;\n var currentWidget = getWidgetForFieldOp(oldConfig, currentField, currentOperator, vs);\n var newWidget = getWidgetForFieldOp(config, newField, newOperator, vs);\n // need to also check value widgets if we changed operator and current value source was 'field'\n // cause for select type op '=' requires single value and op 'in' requires array value\n var currentValueWidget = vs == \"value\" ? currentWidget : getWidgetForFieldOp(oldConfig, currentField, currentOperator, \"value\");\n var newValueWidget = vs == \"value\" ? newWidget : getWidgetForFieldOp(config, newField, newOperator, \"value\");\n var canReuseWidget = newValueWidget == currentValueWidget || (convertableWidgets[currentValueWidget] || []).includes(newValueWidget) || !currentValueWidget && isOkWithoutField;\n if (!canReuseWidget) {\n canReuseValue = false;\n }\n }\n if (currentOperator != newOperator && [currentOperator, newOperator].includes(\"proximity\")) canReuseValue = false;\n var firstWidgetConfig = getFieldWidgetConfig(config, newField, newOperator, null, currentValueSrc.first());\n var valueSources = getValueSourcesForFieldOp(config, newField, newOperator, null);\n if (!newField && isOkWithoutField) {\n valueSources = Object.keys(config.settings.valueSourcesInfo);\n }\n var valueFixes = {};\n var valueErrors = Array.from({\n length: operatorCardinality\n }, function () {\n return null;\n });\n if (canReuseValue) {\n var _loop = function _loop() {\n var v = currentValue.get(_i);\n var vType = currentValueType.get(_i) || null;\n var vSrc = currentValueSrc.get(_i) || null;\n var isValidSrc = valueSources.find(function (v) {\n return v == vSrc;\n }) != null;\n if (!isValidSrc && _i > 0 && vSrc == null) isValidSrc = true; // make exception for range widgets (when changing op from '==' to 'between')\n var asyncListValues = currentAsyncListValues;\n var _validateValue = validateValue(config, newField, newField, newOperator, v, vType, vSrc, asyncListValues, canFix, isEndValue, true),\n _validateValue2 = _slicedToArray(_validateValue, 2),\n validateError = _validateValue2[0],\n fixedValue = _validateValue2[1];\n var isValid = !validateError;\n // Allow bad value with error message\n // But not on field change - in that case just drop bad value that can't be reused\n // ? Maybe we should also drop bad value on op change?\n // For bad multiselect value we have both error message + fixed value.\n // If we show error message, it will gone on next tree validation\n var fixValue = fixedValue !== v;\n var dropValue = !isValidSrc || !isValid && (changedProp == \"field\" || !showErrorMessage && !fixValue);\n var showValueError = !!validateError && showErrorMessage && !dropValue && !fixValue;\n if (showValueError) {\n valueErrors[_i] = validateError;\n }\n if (fixValue) {\n valueFixes[_i] = fixedValue;\n }\n if (dropValue) {\n canReuseValue = false;\n return \"break\";\n }\n };\n for (var _i = 0; _i < operatorCardinality; _i++) {\n var _ret = _loop();\n if (_ret === \"break\") break;\n }\n }\n\n // reuse value OR get defaultValue for cardinality 1 (it means default range values is not supported yet, todo)\n var newValue = null,\n newValueSrc = null,\n newValueType = null,\n newValueError = null;\n newValue = new Immutable.List(Array.from({\n length: operatorCardinality\n }, function (_ignore, i) {\n var v = undefined;\n if (canReuseValue) {\n if (i < currentValue.size) {\n v = currentValue.get(i);\n if (valueFixes[i] !== undefined) {\n v = valueFixes[i];\n }\n }\n } else if (operatorCardinality == 1) {\n var _newFieldConfig$field;\n v = getFirstDefined([newFieldConfig === null || newFieldConfig === void 0 ? void 0 : newFieldConfig.defaultValue, newFieldConfig === null || newFieldConfig === void 0 || (_newFieldConfig$field = newFieldConfig.fieldSettings) === null || _newFieldConfig$field === void 0 ? void 0 : _newFieldConfig$field.defaultValue, firstWidgetConfig === null || firstWidgetConfig === void 0 ? void 0 : firstWidgetConfig.defaultValue]);\n }\n return v;\n }));\n newValueSrc = new Immutable.List(Array.from({\n length: operatorCardinality\n }, function (_ignore, i) {\n var vs = null;\n if (canReuseValue) {\n if (i < currentValueSrc.size) vs = currentValueSrc.get(i);\n } else if (valueSources.length == 1) {\n vs = valueSources[0];\n } else if (valueSources.length > 1) {\n vs = valueSources[0];\n }\n return vs;\n }));\n if (showErrorMessage) {\n if (newOperatorConfig && newOperatorConfig.validateValues && newValueSrc.toJS().filter(function (vs) {\n return vs == \"value\" || vs == null;\n }).length == operatorCardinality) {\n // last element in `valueError` list is for range validation error\n var jsValues = firstWidgetConfig && firstWidgetConfig.toJS ? newValue.toJS().map(function (v) {\n return firstWidgetConfig.toJS.call(config.ctx, v, firstWidgetConfig);\n }) : newValue.toJS();\n var rangeValidateError = newOperatorConfig.validateValues(jsValues);\n if (showErrorMessage) {\n valueErrors.push(rangeValidateError);\n }\n }\n newValueError = new Immutable.List(valueErrors);\n }\n newValueType = new Immutable.List(Array.from({\n length: operatorCardinality\n }, function (_ignore, i) {\n var vt = null;\n if (canReuseValue) {\n if (i < currentValueType.size) vt = currentValueType.get(i);\n } else if (operatorCardinality == 1 && firstWidgetConfig && firstWidgetConfig.type !== undefined) {\n vt = firstWidgetConfig.type;\n } else if (operatorCardinality == 1 && newFieldConfig && newFieldConfig.type !== undefined) {\n vt = newFieldConfig.type == \"!group\" ? \"number\" : newFieldConfig.type;\n }\n return vt;\n }));\n return {\n canReuseValue: canReuseValue,\n newValue: newValue,\n newValueSrc: newValueSrc,\n newValueType: newValueType,\n newValueError: newValueError,\n operatorCardinality: operatorCardinality\n };\n};\nexport var getFirstField = function getFirstField(config) {\n var parentRuleGroupPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var fieldSeparator = config.settings.fieldSeparator;\n var parentPathArr = getFieldParts(parentRuleGroupPath, config);\n var parentField = parentRuleGroupPath ? getFieldRawConfig(config, parentRuleGroupPath) : config;\n var firstField = parentField,\n key = null,\n keysPath = [];\n do {\n var _firstField;\n var subfields = firstField === config ? config.fields : (_firstField = firstField) === null || _firstField === void 0 ? void 0 : _firstField.subfields;\n if (!subfields || !Object.keys(subfields).length) {\n firstField = key = null;\n break;\n }\n key = Object.keys(subfields)[0];\n keysPath.push(key);\n firstField = subfields[key];\n } while (firstField.type == \"!struct\" || firstField.type == \"!group\");\n return (parentPathArr || []).concat(keysPath).join(fieldSeparator);\n};\nexport var getOperatorsForType = function getOperatorsForType(config, fieldType) {\n var _config$types$fieldTy;\n return ((_config$types$fieldTy = config.types[fieldType]) === null || _config$types$fieldTy === void 0 ? void 0 : _config$types$fieldTy.operators) || null;\n};\nexport var getOperatorsForField = function getOperatorsForField(config, field) {\n var fieldConfig = getFieldConfig(config, field);\n var fieldOps = fieldConfig ? fieldConfig.operators : [];\n return fieldOps;\n};\nexport var getFirstOperator = function getFirstOperator(config, field) {\n var _fieldOps$;\n var fieldOps = getOperatorsForField(config, field);\n return (_fieldOps$ = fieldOps === null || fieldOps === void 0 ? void 0 : fieldOps[0]) !== null && _fieldOps$ !== void 0 ? _fieldOps$ : null;\n};\nexport var getFuncPathLabels = function getFuncPathLabels(field, config) {\n var parentField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return getFieldPathLabels(field, config, parentField, \"funcs\", \"subfields\");\n};\nexport var getFieldPathLabels = function getFieldPathLabels(field, config) {\n var parentField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var fieldsKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"fields\";\n var subfieldsKey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : \"subfields\";\n if (!field) return null;\n var fieldSeparator = config.settings.fieldSeparator;\n var parts = getFieldParts(field, config);\n var parentParts = getFieldParts(parentField, config);\n var res = parts.slice(parentParts.length).map(function (_curr, ind, arr) {\n return arr.slice(0, ind + 1);\n }).map(function (parts) {\n return [].concat(_toConsumableArray(parentParts), _toConsumableArray(parts)).join(fieldSeparator);\n }).map(function (part) {\n var cnf = getFieldRawConfig(config, part, fieldsKey, subfieldsKey);\n return cnf && cnf.label || last(part.split(fieldSeparator));\n }).filter(function (label) {\n return label != null;\n });\n return res;\n};\nexport var getFieldPartsConfigs = function getFieldPartsConfigs(field, config) {\n var parentField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!field) return null;\n var parentFieldDef = parentField && getFieldRawConfig(config, parentField) || null;\n var fieldSeparator = config.settings.fieldSeparator;\n var parts = getFieldParts(field, config);\n var isDescendant = isFieldDescendantOfField(field, parentField, config);\n var parentParts = !isDescendant ? [] : getFieldParts(parentField, config);\n return parts.slice(parentParts.length).map(function (_curr, ind, arr) {\n return arr.slice(0, ind + 1);\n }).map(function (parts) {\n return {\n part: [].concat(_toConsumableArray(parentParts), _toConsumableArray(parts)).join(fieldSeparator),\n key: parts[parts.length - 1]\n };\n }).map(function (_ref) {\n var part = _ref.part,\n key = _ref.key;\n var cnf = getFieldRawConfig(config, part);\n return {\n key: key,\n cnf: cnf\n };\n }).map(function (_ref2, ind, arr) {\n var key = _ref2.key,\n cnf = _ref2.cnf;\n var parentCnf = ind > 0 ? arr[ind - 1].cnf : parentFieldDef;\n return [key, cnf, parentCnf];\n });\n};\nexport var getValueLabel = function getValueLabel(config, field, operator, delta) {\n var valueSrc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var isSpecialRange = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var isFuncArg = field && _typeof(field) == \"object\" && !!field.func && !!field.arg;\n var showLabels = config.settings.showLabels;\n var fieldConfig = getFieldConfig(config, field);\n var fieldWidgetConfig = getFieldWidgetConfig(config, field, operator, null, valueSrc) || {};\n var mergedOpConfig = getOperatorConfig(config, operator, field) || {};\n var cardinality = isSpecialRange ? 1 : mergedOpConfig.cardinality;\n var ret = null;\n if (cardinality > 1) {\n var valueLabels = fieldWidgetConfig.valueLabels || mergedOpConfig.valueLabels;\n if (valueLabels) ret = valueLabels[delta];\n if (ret && _typeof(ret) != \"object\") {\n ret = {\n label: ret,\n placeholder: ret\n };\n }\n if (!ret) {\n ret = {\n label: config.settings.valueLabel + \" \" + (delta + 1),\n placeholder: config.settings.valuePlaceholder + \" \" + (delta + 1)\n };\n }\n } else {\n var label = fieldWidgetConfig.valueLabel;\n var placeholder = fieldWidgetConfig.valuePlaceholder;\n if (isFuncArg) {\n if (!label) label = fieldConfig.label || field.arg;\n if (!placeholder && !showLabels) placeholder = fieldConfig.label || field.arg;\n }\n ret = {\n label: label || config.settings.valueLabel,\n placeholder: placeholder || config.settings.valuePlaceholder\n };\n }\n return ret;\n};\nfunction _getWidgetsAndSrcsForFieldOp(config, field) {\n var operator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var valueSrc = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var widgets = [];\n var valueSrcs = [];\n if (!field) return {\n widgets: widgets,\n valueSrcs: valueSrcs\n };\n var isFuncArg = _typeof(field) == \"object\" && (!!field.func && !!field.arg || field._isFuncArg);\n var fieldConfig = getFieldConfig(config, field);\n var opConfig = operator ? config.operators[operator] : null;\n if (fieldConfig !== null && fieldConfig !== void 0 && fieldConfig.widgets) {\n var _loop2 = function _loop2() {\n var widgetConfig = fieldConfig.widgets[widget];\n if (!config.widgets[widget]) {\n return \"continue\";\n }\n var widgetValueSrc = config.widgets[widget].valueSrc || \"value\";\n var canAdd = true;\n if (widget == \"field\") {\n canAdd = canAdd && filterValueSourcesForField(config, [\"field\"], fieldConfig).length > 0;\n }\n if (widget == \"func\") {\n canAdd = canAdd && filterValueSourcesForField(config, [\"func\"], fieldConfig).length > 0;\n }\n // If can't check operators, don't add\n // Func args don't have operators\n if (valueSrc == \"value\" && !widgetConfig.operators && !isFuncArg && field != \"!case_value\") canAdd = false;\n if (widgetConfig.operators && operator) canAdd = canAdd && widgetConfig.operators.indexOf(operator) != -1;\n if (valueSrc && valueSrc != widgetValueSrc && valueSrc != \"const\") canAdd = false;\n if (opConfig && opConfig.cardinality == 0 && widgetValueSrc != \"value\") canAdd = false;\n if (canAdd) {\n var _fieldConfig$valueSou, _opConfig$valueSource;\n widgets.push(widget);\n var canAddValueSrc = ((_fieldConfig$valueSou = fieldConfig.valueSources) === null || _fieldConfig$valueSou === void 0 ? void 0 : _fieldConfig$valueSou.indexOf(widgetValueSrc)) != -1;\n if ((opConfig === null || opConfig === void 0 || (_opConfig$valueSource = opConfig.valueSources) === null || _opConfig$valueSource === void 0 ? void 0 : _opConfig$valueSource.indexOf(widgetValueSrc)) == -1) canAddValueSrc = false;\n if (canAddValueSrc && !valueSrcs.find(function (v) {\n return v == widgetValueSrc;\n })) valueSrcs.push(widgetValueSrc);\n }\n };\n for (var widget in fieldConfig.widgets) {\n var _ret2 = _loop2();\n if (_ret2 === \"continue\") continue;\n }\n }\n var widgetWeight = function widgetWeight(w) {\n var wg = 0;\n if (fieldConfig.preferWidgets) {\n if (fieldConfig.preferWidgets.includes(w)) wg += 10 - fieldConfig.preferWidgets.indexOf(w);\n } else if (w == fieldConfig.mainWidget) {\n wg += 100;\n }\n if (w == \"field\") {\n wg -= 1;\n }\n if (w == \"func\") {\n wg -= 2;\n }\n return wg;\n };\n widgets.sort(function (w1, w2) {\n return widgetWeight(w2) - widgetWeight(w1);\n });\n return {\n widgets: widgets,\n valueSrcs: valueSrcs\n };\n}\nexport var getWidgetsForFieldOp = function getWidgetsForFieldOp(config, field, operator) {\n var valueSrc = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _getWidgetsAndSrcsFor = _getWidgetsAndSrcsForFieldOp(config, field, operator, valueSrc),\n widgets = _getWidgetsAndSrcsFor.widgets;\n return widgets;\n};\nexport var filterValueSourcesForField = function filterValueSourcesForField(config, valueSrcs, fieldDefinition) {\n var _fieldDefinition$type;\n if (!fieldDefinition) return valueSrcs;\n var fieldType = (_fieldDefinition$type = fieldDefinition.type) !== null && _fieldDefinition$type !== void 0 ? _fieldDefinition$type : fieldDefinition.returnType;\n if (!valueSrcs) valueSrcs = Object.keys(config.settings.valueSourcesInfo);\n return valueSrcs.filter(function (vs) {\n var canAdd = true;\n if (vs == \"field\") {\n if (config.__fieldsCntByType) {\n // tip: LHS field can be used as arg in RHS function\n var minCnt = fieldDefinition._isFuncArg ? 0 : 1;\n canAdd = canAdd && config.__fieldsCntByType[fieldType] > minCnt;\n }\n }\n if (vs == \"func\") {\n if (config.__funcsCntByType) canAdd = canAdd && !!config.__funcsCntByType[fieldType];\n if (fieldDefinition.funcs) canAdd = canAdd && fieldDefinition.funcs.length > 0;\n }\n return canAdd;\n });\n};\nexport var getValueSourcesForFieldOp = function getValueSourcesForFieldOp(config, field, operator) {\n var fieldDefinition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _getWidgetsAndSrcsFor2 = _getWidgetsAndSrcsForFieldOp(config, field, operator, null),\n valueSrcs = _getWidgetsAndSrcsFor2.valueSrcs;\n var filteredValueSrcs = filterValueSourcesForField(config, valueSrcs, fieldDefinition);\n return filteredValueSrcs;\n};\nexport var getWidgetForFieldOp = function getWidgetForFieldOp(config, field, operator) {\n var valueSrc = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _getWidgetsAndSrcsFor3 = _getWidgetsAndSrcsForFieldOp(config, field, operator, valueSrc),\n widgets = _getWidgetsAndSrcsFor3.widgets;\n var widget = null;\n if (widgets.length) widget = widgets[0];\n return widget;\n};\n\n// can use alias (fieldName)\n// even if `parentField` is provided, `field` is still a full path\nexport var formatFieldName = function formatFieldName(field, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n if (!field) return;\n var fieldDef = getFieldConfig(config, field) || {};\n var fieldSeparator = config.settings.fieldSeparator;\n var fieldParts = getFieldParts(field, config);\n var fieldName = Array.isArray(field) ? field.join(fieldSeparator) : field;\n if (options !== null && options !== void 0 && options.useTableName && fieldDef.tableName) {\n // legacy\n var fieldPartsCopy = _toConsumableArray(fieldParts);\n fieldPartsCopy[0] = fieldDef.tableName;\n fieldName = fieldPartsCopy.join(fieldSeparator);\n }\n if (fieldDef.fieldName) {\n fieldName = fieldDef.fieldName;\n }\n if (parentField) {\n var parentFieldDef = getFieldConfig(config, parentField) || {};\n var parentFieldName = parentField;\n if (fieldName.indexOf(parentFieldName + fieldSeparator) == 0) {\n fieldName = fieldName.slice((parentFieldName + fieldSeparator).length);\n // fieldName = \"#this.\" + fieldName; // ? for spel\n } else {\n if (fieldDef.fieldName) {\n // ignore\n } else {\n meta.errors.push(\"Can't cut group \".concat(parentFieldName, \" from field \").concat(fieldName));\n }\n }\n }\n return fieldName;\n};\nexport var isEmptyItem = function isEmptyItem(item, config) {\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var type = item.get(\"type\");\n var mode = item.getIn([\"properties\", \"mode\"]);\n if (type == \"rule_group\" && mode == \"array\") {\n return isEmptyRuleGroupExt(item, config, liteCheck);\n } else if (type == \"group\" || type == \"rule_group\") {\n return isEmptyGroup(item, config, liteCheck);\n } else {\n return isEmptyRule(item, config, liteCheck);\n }\n};\nvar isEmptyRuleGroupExt = function isEmptyRuleGroupExt(item, config) {\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var children = item.get(\"children1\");\n var properties = item.get(\"properties\");\n return isEmptyRuleGroupExtPropertiesAndChildren(properties.toObject(), children, config, liteCheck);\n};\nexport var isEmptyRuleGroupExtPropertiesAndChildren = function isEmptyRuleGroupExtPropertiesAndChildren(properties, children, config) {\n var _config$operators$ope, _config$operators$ope2;\n var liteCheck = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var operator = properties.operator;\n var cardinality = (_config$operators$ope = (_config$operators$ope2 = config.operators[operator]) === null || _config$operators$ope2 === void 0 ? void 0 : _config$operators$ope2.cardinality) !== null && _config$operators$ope !== void 0 ? _config$operators$ope : 1;\n var filledParts = [!isEmptyRuleProperties(properties, config, false), cardinality > 0 ? true : !isEmptyGroupChildren(children, config, liteCheck)];\n var filledCnt = filledParts.filter(function (f) {\n return !!f;\n }).length;\n var isFilled = filledCnt == 2;\n return !isFilled;\n};\nvar isEmptyGroup = function isEmptyGroup(group, config) {\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var children = group.get(\"children1\");\n return isEmptyGroupChildren(children, config, liteCheck);\n};\nexport var isEmptyGroupChildren = function isEmptyGroupChildren(children, config) {\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return !children || children.size == 0 || children.size > 0 && children.filter(function (ch) {\n return !isEmptyItem(ch, config, liteCheck);\n }).size == 0;\n};\nexport var isEmptyRuleProperties = function isEmptyRuleProperties(_ref3, config) {\n var _config$operators$ope3, _config$operators$ope4;\n var field = _ref3.field,\n fieldSrc = _ref3.fieldSrc,\n fieldType = _ref3.fieldType,\n operator = _ref3.operator,\n value = _ref3.value,\n valueSrc = _ref3.valueSrc,\n valueType = _ref3.valueType;\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var cardinality = (_config$operators$ope3 = (_config$operators$ope4 = config.operators[operator]) === null || _config$operators$ope4 === void 0 ? void 0 : _config$operators$ope4.cardinality) !== null && _config$operators$ope3 !== void 0 ? _config$operators$ope3 : 1;\n var filledParts = [liteCheck ? field !== null || fieldType != null : isCompletedValue(field, fieldSrc, config, liteCheck), !!operator, value.filter(function (val, delta) {\n var _valueSrc$get;\n return isCompletedValue(val, (valueSrc === null || valueSrc === void 0 || (_valueSrc$get = valueSrc.get) === null || _valueSrc$get === void 0 ? void 0 : _valueSrc$get.call(valueSrc, delta)) || (valueSrc === null || valueSrc === void 0 ? void 0 : valueSrc[delta]), config, liteCheck);\n }).size >= cardinality];\n var filledCnt = filledParts.filter(function (f) {\n return !!f;\n }).length;\n var isFilled = filledCnt == 3;\n return !isFilled;\n};\nvar isEmptyRule = function isEmptyRule(rule, config) {\n var liteCheck = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var properties = rule.get(\"properties\");\n return isEmptyRuleProperties(properties.toObject(), config, liteCheck);\n};\nexport var isCompletedValue = function isCompletedValue(value, valueSrc, config) {\n var liteCheck = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!liteCheck && valueSrc == \"func\" && value) {\n var funcKey = value.get(\"func\");\n var funcConfig = getFuncConfig(config, funcKey);\n if (funcConfig) {\n var args = value.get(\"args\");\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var argVal = args ? args.get(argKey) : undefined;\n // const argDef = getFieldConfig(config, argConfig);\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n if (argValue == undefined && (argConfig === null || argConfig === void 0 ? void 0 : argConfig.defaultValue) === undefined && !(argConfig !== null && argConfig !== void 0 && argConfig.isOptional)) {\n // arg is not completed\n return false;\n }\n if (argValue != undefined) {\n if (!isCompletedValue(argValue, argValueSrc, config, liteCheck)) {\n // arg is complex and is not completed\n return false;\n }\n }\n }\n // all args are completed\n return true;\n }\n }\n return value != undefined;\n};\n\n/**\n * @param {*} value\n * @param {string} valueSrc - 'value' | 'field' | 'func'\n * @param {object} config\n * @return {* | undefined} - undefined if func value is not complete (missing required arg vals); can return completed value != value\n */\nexport var completeValue = function completeValue(value, valueSrc, config) {\n if (valueSrc == \"func\") return completeFuncValue(value, config);else return value;\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport JL from \"json-logic-js\";\nimport moment from \"moment\";\nexport function applyJsonLogic(logic, data) {\n return JL.apply(logic, data);\n}\nfunction addJsonLogicOperation(name, op) {\n return JL.add_operation(name, op);\n}\nexport var customJsonLogicOperations = {\n CALL: function CALL(fn, ctx) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return fn.call.apply(fn, [ctx].concat(args));\n },\n JSX: function JSX(type, props) {\n return {\n type: type,\n props: props\n };\n },\n mergeObjects: function mergeObjects(obj1, obj2) {\n return _objectSpread(_objectSpread({}, obj1), obj2);\n },\n fromEntries: function fromEntries(entries) {\n return Object.fromEntries(entries);\n },\n strlen: function strlen(str) {\n return (str === null || str === void 0 ? void 0 : str.length) || 0;\n },\n regexTest: function regexTest(str, pattern, flags) {\n return (str === null || str === void 0 ? void 0 : str.match(new RegExp(pattern, flags))) != null;\n },\n now: function now() {\n return new Date();\n },\n date_add: function date_add(date, val, dim) {\n return moment(date).add(val, dim).toDate();\n },\n toLowerCase: function toLowerCase(str) {\n return str.toLowerCase();\n },\n toUpperCase: function toUpperCase(str) {\n return str.toUpperCase();\n }\n};\nexport function addRequiredJsonLogicOperations() {\n for (var k in customJsonLogicOperations) {\n addJsonLogicOperation(k, customJsonLogicOperations[k]);\n }\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport merge from \"lodash/merge\";\nimport pick from \"lodash/pick\";\nimport { isJsonLogic, isJSX, isDirtyJSX, cleanJSX, shallowEqual } from \"./stuff\";\nimport clone from \"clone\";\nimport JL from \"json-logic-js\";\nimport { addRequiredJsonLogicOperations, applyJsonLogic } from \"./jsonLogic\";\nimport { BasicFuncs } from \"..\";\nimport { getFieldRawConfig } from \"./configUtils\";\n\n// Add new operations for JsonLogic\naddRequiredJsonLogicOperations();\nexport { isJSX, isDirtyJSX, cleanJSX, applyJsonLogic };\nfunction applyJsonLogicWithPath(logic, data, path) {\n var ret;\n try {\n ret = JL.apply(logic, data);\n } catch (e) {\n e.message = \"\".concat(path.join(\".\"), \" :: \").concat(e.message);\n throw e;\n }\n return ret;\n}\nfunction callContextFn(_this, fn, args, path) {\n var ret;\n try {\n ret = fn.call.apply(fn, [_this].concat(_toConsumableArray(args)));\n } catch (e) {\n e.message = \"\".concat(path.join(\".\"), \" :: \").concat(e.message);\n throw e;\n }\n return ret;\n}\nexport var configKeys = [\"conjunctions\", \"fields\", \"types\", \"operators\", \"widgets\", \"settings\", \"funcs\", \"ctx\"];\n\n// type: \n// x - iterate (with nesting `subfields`)\n// \"r\" - RenderedReactElement\n// Will be compiled with renderReactElement() into React element rendered with `React.createElement` (`ctx.RCE`)\n// \"rf\" - JsonLogicFunction/string to render React\n// JL data is { props, ctx }\n// Should return {type, props} or string, where type or string - React component\n// Can use { JSX: [\"SomeComponent\", {var: \"props\"}] } or just return \"SomeComponent\"\n// Returned component will be searched in ctx.components/ctx.W/ctx.O, see getReactComponentFromCtx()\n// Will be compiled with compileJsonLogicReact() into function with args (props, ctx) that will return renderReactElement()\n// \"f\" - JsonLogicFunction/string\n// JL data is { args, ctx } plus named args defined in `args` inside `compileMeta`\n// Can use { CALL: [ {var: \"ctx.someFunc\"}, null, {var: \"args[0]\" }] } \n// If string is passed, it's a path to function in ctx (with dot notation)\n// Will be compiled with compileJsonLogic() into function with any args and `this` should be `ctx`\n\nvar compileMetaFieldSettings = {\n asyncFetch: {\n type: \"f\",\n args: [\"search\", \"offset\"]\n },\n labelYes: {\n type: \"r\"\n },\n labelNo: {\n type: \"r\"\n },\n marks: {\n type: \"r\",\n isArr: true\n },\n validateValue: {\n type: \"f\",\n args: [\"val\", \"fieldSettings\", \"op\", \"opDef\", \"rightFieldDef\"]\n }\n};\nvar compileMetaWidget = _objectSpread(_objectSpread({}, compileMetaFieldSettings), {}, {\n factory: {\n type: \"rf\"\n },\n formatValue: {\n type: \"f\",\n args: [\"val\", \"fieldDef\", \"wgtDef\", \"isForDisplay\", \"op\", \"opDef\", \"rightFieldDef\"]\n },\n sqlFormatValue: {\n type: \"f\",\n args: [\"val\", \"fieldDef\", \"wgtDef\", \"op\", \"opDef\", \"rightFieldDef\"]\n },\n spelFormatValue: {\n type: \"f\",\n args: [\"val\", \"fieldDef\", \"wgtDef\", \"op\", \"opDef\", \"rightFieldDef\"]\n },\n spelImportValue: {\n type: \"f\",\n args: [\"val\", \"wgtDef\", \"args\"]\n },\n mongoFormatValue: {\n type: \"f\",\n args: [\"val\", \"fieldDef\", \"wgtDef\", \"op\", \"opDef\"]\n },\n elasticSearchFormatValue: {\n type: \"f\",\n args: [\"queryType\", \"val\", \"op\", \"field\", \"config\"]\n },\n jsonLogic: {\n type: \"f\",\n args: [\"val\", \"fieldDef\", \"wgtDef\", \"op\", \"opDef\"]\n },\n validateValue: {\n type: \"f\",\n args: [\"val\", \"fieldSettings\", \"op\", \"opDef\", \"rightFieldDef\"]\n },\n // obsolete\n toJS: {\n type: \"f\",\n args: [\"val\"]\n }\n});\nvar compileMetaOperator = {\n options: {\n // proximity\n factory: {\n type: \"rf\"\n }\n },\n formatOp: {\n type: \"f\",\n args: [\"field\", \"op\", \"vals\", \"valueSrc\", \"valueType\", \"opDef\", \"operatorOptions\", \"isForDisplay\", \"fieldDef\"]\n },\n mongoFormatOp: {\n type: \"f\",\n args: [\"field\", \"op\", \"vals\", \"useExpr\", \"valueSrc\", \"valueType\", \"opDef\", \"operatorOptions\", \"fieldDef\"]\n },\n sqlFormatOp: {\n type: \"f\",\n args: [\"field\", \"op\", \"vals\", \"valueSrc\", \"valueType\", \"opDef\", \"operatorOptions\", \"fieldDef\"]\n },\n spelFormatOp: {\n type: \"f\",\n args: [\"field\", \"op\", \"vals\", \"valueSrc\", \"valueType\", \"opDef\", \"operatorOptions\", \"fieldDef\"]\n },\n jsonLogic: {\n type: \"f\",\n ignore: \"string\",\n args: [\"field\", \"op\", \"vals\", \"opDef\", \"operatorOptions\", \"fieldDef\"]\n },\n elasticSearchQueryType: {\n type: \"f\",\n ignore: \"string\",\n args: [\"valueType\"]\n },\n textSeparators: {\n type: \"r\",\n isArr: true\n }\n};\nvar compileMetaConjunction = {\n formatConj: {\n type: \"f\",\n args: [\"children\", \"conj\", \"not\", \"isForDisplay\"]\n },\n sqlFormatConj: {\n type: \"f\",\n args: [\"children\", \"conj\", \"not\"]\n },\n spelFormatConj: {\n type: \"f\",\n args: [\"children\", \"conj\", \"not\", \"omitBrackets\"]\n }\n};\nvar compileMetaWidgetForType = {\n widgetProps: compileMetaWidget,\n opProps: compileMetaOperator\n};\nvar compileMetaFunc = {\n renderBrackets: {\n type: \"r\",\n isArr: true\n },\n renderSeps: {\n type: \"r\",\n isArr: true\n },\n jsonLogic: {\n type: \"f\",\n ignore: \"string\",\n args: [\"formattedArgs\"]\n },\n jsonLogicImport: {\n type: \"f\",\n args: [\"val\"]\n },\n spelImport: {\n type: \"f\",\n args: [\"spel\"]\n },\n formatFunc: {\n type: \"f\",\n args: [\"formattedArgs\", \"isForDisplay\"]\n },\n sqlFormatFunc: {\n type: \"f\",\n args: [\"formattedArgs\"]\n },\n mongoFormatFunc: {\n type: \"f\",\n args: [\"formattedArgs\"]\n },\n spelFormatFunc: {\n type: \"f\",\n args: [\"formattedArgs\"]\n }\n};\nvar compileMetaSettings = {\n locale: {\n mui: {\n type: \"f\",\n args: [],\n invokeWith: [],\n ignore: \"jl\"\n }\n },\n canCompareFieldWithField: {\n type: \"f\",\n args: [\"leftField\", \"leftFieldConfig\", \"rightField\", \"rightFieldConfig\", \"op\"]\n },\n formatReverse: {\n type: \"f\",\n args: [\"q\", \"op\", \"reversedOp\", \"operatorDefinition\", \"revOperatorDefinition\", \"isForDisplay\"]\n },\n sqlFormatReverse: {\n type: \"f\",\n args: [\"q\"]\n },\n spelFormatReverse: {\n type: \"f\",\n args: [\"q\"]\n },\n formatField: {\n type: \"f\",\n args: [\"field\", \"parts\", \"label2\", \"fieldDefinition\", \"config\", \"isForDisplay\"]\n },\n formatSpelField: {\n type: \"f\",\n args: [\"field\", \"parentField\", \"parts\", \"partsExt\", \"fieldDefinition\", \"config\"]\n },\n formatAggr: {\n type: \"f\",\n args: [\"whereStr\", \"aggrField\", \"operator\", \"value\", \"valueSrc\", \"valueType\", \"opDef\", \"operatorOptions\", \"isForDisplay\", \"aggrFieldDef\"]\n },\n normalizeListValues: {\n type: \"f\",\n args: [\"listValues\", \"type\", \"fieldSettings\"]\n },\n renderConfirm: {\n type: \"f\",\n args: [\"props\"]\n },\n useConfirm: {\n type: \"f\",\n args: []\n },\n renderField: {\n type: \"rf\"\n },\n renderOperator: {\n type: \"rf\"\n },\n renderFunc: {\n type: \"rf\"\n },\n renderConjs: {\n type: \"rf\"\n },\n renderButton: {\n type: \"rf\"\n },\n renderIcon: {\n type: \"rf\"\n },\n renderButtonGroup: {\n type: \"rf\"\n },\n renderValueSources: {\n type: \"rf\"\n },\n renderFieldSources: {\n type: \"rf\"\n },\n renderProvider: {\n type: \"rf\"\n },\n renderSwitch: {\n type: \"rf\"\n },\n renderSwitchPrefix: {\n type: \"r\"\n },\n renderItem: {\n type: \"rf\"\n },\n renderBeforeWidget: {\n type: \"rf\"\n },\n renderAfterWidget: {\n type: \"rf\"\n },\n renderBeforeActions: {\n type: \"rf\"\n },\n renderAfterActions: {\n type: \"rf\"\n },\n renderRuleError: {\n type: \"rf\"\n }\n};\nvar compileMeta = {\n fields: {\n x: {\n fieldSettings: compileMetaFieldSettings,\n widgets: {\n x: compileMetaWidgetForType\n },\n mainWidgetProps: compileMetaWidget\n }\n },\n widgets: {\n x: compileMetaWidget\n },\n conjunctions: {\n x: compileMetaConjunction\n },\n operators: {\n x: compileMetaOperator\n },\n types: {\n x: {\n widgets: {\n x: compileMetaWidgetForType\n }\n }\n },\n funcs: {\n x: compileMetaFunc\n },\n settings: compileMetaSettings\n};\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\n\n/////////////\n\nexport var compressConfig = function compressConfig(config, baseConfig) {\n if (config.__fieldNames) {\n throw new Error(\"Don't apply `compressConfig()` to extended config\");\n }\n var zipConfig = pick(config, configKeys);\n delete zipConfig.ctx;\n var _clean = function _clean(target, base, path, meta) {\n if (isObject(target)) {\n if (isDirtyJSX(target)) {\n target = cleanJSX(target);\n }\n if (path[0] === \"funcs\" && !base) {\n var funcKey = path[path.length - 1];\n // todo: if there will be change in `BasicFuncs` when funcs can be nested, need to chnage code to find `base`\n base = getFieldRawConfig({\n funcs: meta.BasicFuncs\n }, funcKey, \"funcs\", \"subfields\") || undefined;\n if (base) {\n target[\"$$key\"] = funcKey;\n }\n }\n if (base !== undefined && isObject(base)) {\n for (var k in base) {\n if (Object.prototype.hasOwnProperty.call(base, k)) {\n if (!Object.keys(target).includes(k) || target[k] === undefined && base[k] !== undefined) {\n // deleted in target\n target[k] = \"$$deleted\";\n } else {\n target[k] = _clean(target[k], base[k], [].concat(_toConsumableArray(path), [k]), meta);\n if (target[k] === undefined) {\n delete target[k];\n }\n }\n }\n }\n }\n for (var _k in target) {\n if (Object.prototype.hasOwnProperty.call(target, _k)) {\n if (!base || !Object.keys(base).includes(_k)) {\n var _base;\n // new in target\n target[_k] = _clean(target[_k], (_base = base) === null || _base === void 0 ? void 0 : _base[_k], [].concat(_toConsumableArray(path), [_k]), meta);\n }\n if (target[_k] === undefined) {\n delete target[_k];\n }\n }\n }\n if (Object.keys(target).length === 0) {\n target = undefined;\n }\n } else if (Array.isArray(target)) {\n // don't deep compare arrays, but allow clean JSX inside array\n target.forEach(function (val, ind) {\n target[ind] = _clean(target[ind], undefined, [].concat(_toConsumableArray(path), [ind]), meta);\n });\n }\n if (base !== undefined && shallowEqual(target, base, true)) {\n return undefined;\n }\n if (typeof target === \"function\") {\n throw new Error(\"compressConfig: function at \".concat(path.join(\".\"), \" should be converted to JsonLogic\"));\n }\n return target;\n };\n for (var _i = 0, _configKeys = configKeys; _i < _configKeys.length; _i++) {\n var rootKey = _configKeys[_i];\n if (rootKey === \"ctx\") {\n // ignore\n } else if (rootKey === \"fields\") {\n // just copy\n zipConfig[rootKey] = clone(zipConfig[rootKey]);\n _clean(zipConfig[rootKey], {}, [rootKey]);\n } else if (rootKey === \"funcs\") {\n // leave only diff for every used func\n zipConfig[rootKey] = clone(zipConfig[rootKey] || {});\n for (var k in zipConfig[rootKey]) {\n _clean(zipConfig[rootKey][k], null, [rootKey, k], {\n BasicFuncs: BasicFuncs\n });\n }\n } else {\n // leave only diff\n zipConfig[rootKey] = clone(zipConfig[rootKey]);\n _clean(zipConfig[rootKey], baseConfig[rootKey], [rootKey]);\n }\n }\n return zipConfig;\n};\nexport var decompressConfig = function decompressConfig(zipConfig, baseConfig, ctx) {\n if (!zipConfig.settings.useConfigCompress) {\n throw new Error(\"Please enable `useConfigCompress` in config settings to use decompressConfig()\");\n }\n var unzipConfig = {};\n var _mergeDeep = function _mergeDeep(target, mixin, path) {\n if (isObject(mixin)) {\n if (!isObject(target)) {\n target = {};\n }\n for (var k in mixin) {\n if (Object.prototype.hasOwnProperty.call(mixin, k)) {\n if (mixin[k] === \"$$deleted\") {\n delete target[k];\n } else {\n target[k] = _mergeDeep(target[k], mixin[k], [].concat(_toConsumableArray(path), [k]));\n }\n }\n }\n } else if (Array.isArray(mixin)) {\n // don't merge arrays, just replace\n target = clone(mixin);\n } else {\n target = mixin;\n }\n return target;\n };\n var _resolveAndMergeDeep = function _resolveAndMergeDeep(target, path, meta) {\n // try to resolve by $$key and merge\n var resolved = false;\n if (isObject(target) && Object.prototype.hasOwnProperty.call(target, \"$$key\") && target[\"$$key\"]) {\n var func = getFieldRawConfig({\n funcs: meta.BasicFuncs\n }, target[\"$$key\"], \"funcs\", \"subfields\");\n if (func) {\n // deep merge func <- zip\n delete target[\"$$key\"];\n target = _mergeDeep(clone(func), target, path);\n resolved = true;\n } else {\n throw new Error(\"decompressConfig: basic function not found by key \".concat(target[\"$$key\"], \" at \").concat(path.join(\".\")));\n }\n }\n if (!resolved) {\n if (isObject(target)) {\n // loop through object to find refs ($$key)\n for (var k in target) {\n if (Object.prototype.hasOwnProperty.call(target, k)) {\n target[k] = _resolveAndMergeDeep(target[k], [].concat(_toConsumableArray(path), [k]), meta);\n }\n }\n } else if (Array.isArray(target)) {\n // also loop through array to find refs ($$key)\n var _iterator = _createForOfIteratorHelper(target),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _k2 = _step.value;\n target[_k2] = _resolveAndMergeDeep(target[_k2], [].concat(_toConsumableArray(path), [_k2]), meta);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }\n return target;\n };\n for (var _i2 = 0, _configKeys2 = configKeys; _i2 < _configKeys2.length; _i2++) {\n var rootKey = _configKeys2[_i2];\n if (rootKey === \"ctx\") {\n // simple deep merge\n unzipConfig[rootKey] = merge({}, baseConfig.ctx || {}, ctx || {});\n } else if (rootKey === \"funcs\") {\n // use $$key to pick funcs from BasicFuncs\n unzipConfig[rootKey] = clone(zipConfig[rootKey] || {});\n _resolveAndMergeDeep(unzipConfig[rootKey], [rootKey], {\n BasicFuncs: BasicFuncs\n });\n } else if (rootKey === \"fields\") {\n // just copy\n unzipConfig[rootKey] = clone(zipConfig[rootKey] || {});\n } else {\n // deep merge base <- zip\n unzipConfig[rootKey] = clone(baseConfig[rootKey] || {});\n _mergeDeep(unzipConfig[rootKey], zipConfig[rootKey] || {}, [rootKey]);\n }\n }\n return unzipConfig;\n};\n\n/////////////\n\nexport var compileConfig = function compileConfig(config) {\n if (config.__compliled) {\n return config;\n }\n config = clone(config);\n var opts = {\n ctx: config.ctx\n };\n var logs = [];\n _compileConfigParts(config, config, opts, compileMeta, logs);\n //console.log(logs.join(\"\\n\"));\n\n Object.defineProperty(config, \"__compliled\", {\n enumerable: false,\n writable: false,\n value: true\n });\n return config;\n};\nfunction _compileConfigParts(config, subconfig, opts, meta, logs) {\n var path = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n if (!subconfig) return;\n var isRoot = !path.length;\n for (var k in meta) {\n var submeta = meta[k];\n var newPath = k === \"x\" ? path : [].concat(_toConsumableArray(path), [k]);\n // if (isRoot) {\n // //logs.push(`Cloned ${newPath.join(\".\")}`);\n // config[k] = clone(config[k]);\n // }\n if (submeta.type === \"r\") {\n var targetObj = subconfig;\n var val = targetObj[k];\n if (submeta.isArr) {\n for (var ind in val) {\n var newVal = renderReactElement(val[ind], opts, [].concat(_toConsumableArray(newPath), [ind]));\n if (newVal !== val[ind]) {\n logs.push(\"Compiled \".concat(newPath.join(\".\"), \"[\").concat(ind, \"]\"));\n val[ind] = newVal;\n }\n }\n } else {\n var _newVal = renderReactElement(val, opts, newPath, undefined);\n if (_newVal !== val) {\n logs.push(\"Compiled R \".concat(newPath.join(\".\")));\n targetObj[k] = _newVal;\n }\n }\n } else if (submeta.type === \"rf\") {\n var _targetObj = subconfig;\n var _val = _targetObj[k];\n var _newVal2 = compileJsonLogicReact(_val, opts, newPath, submeta.ignore);\n if (_newVal2 !== _val) {\n logs.push(\"Compiled JL-RF \".concat(newPath.join(\".\")));\n _targetObj[k] = _newVal2;\n }\n } else if (submeta.type === \"f\") {\n var _targetObj2 = subconfig;\n var _val2 = _targetObj2[k];\n var _newVal3 = compileJsonLogic(_val2, opts, newPath, submeta.args, submeta.ignore);\n if (submeta.invokeWith && _newVal3 && typeof _newVal3 === \"function\") {\n var _newVal4;\n _newVal3 = (_newVal4 = _newVal3).call.apply(_newVal4, [null].concat(_toConsumableArray(submeta.invokeWith)));\n }\n if (_newVal3 !== _val2) {\n logs.push(\"Compiled JL-F \".concat(newPath.join(\".\")));\n _targetObj2[k] = _newVal3;\n }\n } else if (k === \"x\") {\n for (var field in subconfig) {\n newPath = [].concat(_toConsumableArray(path), [field]);\n var def = subconfig[field];\n _compileConfigParts(config, def, opts, submeta, logs, newPath);\n if (def.subfields) {\n // tip: need to pass `meta`, not `submeta`\n _compileConfigParts(config, def.subfields, opts, meta, logs, newPath);\n }\n }\n } else {\n var _def = subconfig[k];\n _compileConfigParts(config, _def, opts, submeta, logs, newPath);\n }\n }\n}\nfunction compileJsonLogicReact(jl, opts, path) {\n var ignore = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n if (isJsonLogic(jl)) {\n return function (props, ctx) {\n ctx = ctx || (opts === null || opts === void 0 ? void 0 : opts.ctx); // can use context compile-time if not passed at runtime\n var data = {\n props: props,\n ctx: ctx\n };\n var re = applyJsonLogicWithPath(jl, data, path);\n if (typeof re === \"string\") {\n re = {\n type: re,\n props: props\n };\n }\n var ret = renderReactElement(re, {\n ctx: ctx\n }, path);\n return ret;\n };\n } else if (typeof jl === \"string\") {\n return function (props, ctx) {\n ctx = ctx || (opts === null || opts === void 0 ? void 0 : opts.ctx); // can use context compile-time if not passed at runtime\n var fn = jl.split(\".\").reduce(function (o, k) {\n return o === null || o === void 0 ? void 0 : o[k];\n }, ctx);\n if (fn) {\n return callContextFn(this, fn, [props, ctx], path);\n } else {\n var re = {\n type: jl,\n props: props\n };\n var ret = renderReactElement(re, {\n ctx: ctx\n }, path);\n return ret;\n }\n };\n }\n return jl;\n}\nfunction compileJsonLogic(jl, opts, path, argNames) {\n var ignore = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n if (isJsonLogic(jl) && ignore !== \"jl\") {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var ctx = this || (opts === null || opts === void 0 ? void 0 : opts.ctx); // can use context compile-time if not passed at runtime\n var data = (argNames || []).reduce(function (acc, k, i) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, k, args[i]));\n }, {\n args: args,\n ctx: ctx\n });\n var ret = applyJsonLogicWithPath(jl, data, path);\n return ret;\n }.bind(opts === null || opts === void 0 ? void 0 : opts.ctx);\n } else if (typeof jl === \"string\" && ignore !== \"string\") {\n return function () {\n var ctx = this || (opts === null || opts === void 0 ? void 0 : opts.ctx); // can use context compile-time if not passed at runtime\n var fn = jl.split(\".\").reduce(function (o, k) {\n return o === null || o === void 0 ? void 0 : o[k];\n }, ctx);\n if (fn) {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return callContextFn(this, fn, args, path);\n } else {\n throw new Error(\"\".concat(path.join(\".\"), \" :: Function \").concat(jl, \" is not found in ctx\"));\n }\n }.bind(opts === null || opts === void 0 ? void 0 : opts.ctx);\n }\n return jl;\n}\nfunction getReactComponentFromCtx(name, ctx) {\n var _ctx$components;\n return (ctx === null || ctx === void 0 || (_ctx$components = ctx.components) === null || _ctx$components === void 0 ? void 0 : _ctx$components[name]) || ctx.W[name] || ctx.O[name];\n}\nfunction renderReactElement(jsx, opts, path) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n if (isJSX(jsx)) {\n var _props;\n var type = jsx.type,\n props = jsx.props;\n if (typeof type !== \"string\") {\n throw new Error(\"renderReactElement for \".concat(path.join(\".\"), \": type should be string\"));\n }\n var Cmp = getReactComponentFromCtx(type, opts.ctx) || type.toLowerCase();\n var children;\n if (key !== undefined) {\n props = _objectSpread(_objectSpread({}, props), {}, {\n key: key\n });\n }\n if ((_props = props) !== null && _props !== void 0 && _props.children) {\n children = renderReactElement(props.children, opts, path);\n props = _objectSpread(_objectSpread({}, props), {}, {\n children: children\n });\n }\n var res = opts.ctx.RCE(Cmp, props);\n return res;\n } else if (jsx instanceof Array) {\n return jsx.map(function (el, i) {\n return renderReactElement(el, opts, path, \"\" + i);\n });\n }\n return jsx;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(iterateFuncs),\n _marked2 = /*#__PURE__*/_regeneratorRuntime.mark(iterateFields);\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport merge from \"lodash/merge\";\nimport pick from \"lodash/pick\";\nimport uuid from \"../utils/uuid\";\nimport mergeWith from \"lodash/mergeWith\";\nimport { settings as defaultSettings } from \"../config/default\";\nimport moment from \"moment\";\nimport { mergeArraysSmart, logger, widgetDefKeysToOmit, deepFreeze } from \"./stuff\";\nimport { getWidgetForFieldOp } from \"./ruleUtils\";\nimport clone from \"clone\";\nimport { compileConfig } from \"./configSerialize\";\nexport * from \"./configSerialize\";\n\n/////////////\n\nexport var extendConfig = function extendConfig(config, configId) {\n var canCompile = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //operators, defaultOperator - merge\n //widgetProps (including valueLabel, valuePlaceholder, hideOperator, operatorInlineLabel) - concrete by widget\n\n if (config.__configId) {\n return config;\n }\n\n // Clone (and compile if need)\n if (canCompile && config.settings.useConfigCompress) {\n if (config.__compliled) {\n // already compiled\n config = clone(config);\n } else {\n // will be cloned and compiled\n config = compileConfig(config);\n }\n } else {\n config = clone(config);\n }\n config.settings = mergeWith({}, defaultSettings, config.settings, mergeCustomizerNoArrays);\n config.__fieldsCntByType = {};\n config.__funcsCntByType = {};\n config.__fieldNames = {};\n _extendTypesConfig(config.types, config);\n _extendFieldsConfig(config.fields, config);\n _extendFuncArgsConfig(config.funcs, config);\n var momentLocale = config.settings.locale.moment;\n if (momentLocale) {\n moment.locale(momentLocale);\n }\n Object.defineProperty(config, \"__configId\", {\n enumerable: false,\n writable: false,\n value: configId || uuid()\n });\n deepFreeze(config);\n return config;\n};\nfunction _extendTypesConfig(typesConfig, config) {\n for (var type in typesConfig) {\n var typeConfig = typesConfig[type];\n _extendTypeConfig(type, typeConfig, config);\n }\n}\nfunction _extendTypeConfig(type, typeConfig, config) {\n var operators = null,\n defaultOperator = null;\n typeConfig.mainWidget = typeConfig.mainWidget || Object.keys(typeConfig.widgets).filter(function (w) {\n return w != \"field\" && w != \"func\";\n })[0];\n for (var widget in typeConfig.widgets) {\n var typeWidgetConfig = typeConfig.widgets[widget];\n if (typeWidgetConfig.operators) {\n var typeWidgetOperators = typeWidgetConfig.operators;\n if (typeConfig.excludeOperators) {\n typeWidgetOperators = typeWidgetOperators.filter(function (op) {\n return !typeConfig.excludeOperators.includes(op);\n });\n }\n operators = mergeArraysSmart(operators, typeWidgetOperators);\n }\n if (typeWidgetConfig.defaultOperator) defaultOperator = typeWidgetConfig.defaultOperator;\n if (widget == typeConfig.mainWidget) {\n typeWidgetConfig = merge({}, {\n widgetProps: typeConfig.mainWidgetProps || {}\n }, typeWidgetConfig);\n }\n typeConfig.widgets[widget] = typeWidgetConfig;\n }\n if (!typeConfig.valueSources) typeConfig.valueSources = Object.keys(config.settings.valueSourcesInfo);\n var _iterator = _createForOfIteratorHelper(typeConfig.valueSources),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var valueSrc = _step.value;\n if (valueSrc != \"value\" && !typeConfig.widgets[valueSrc]) {\n typeConfig.widgets[valueSrc] = {};\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (!typeConfig.operators && operators) typeConfig.operators = Array.from(new Set(operators)); //unique\n if (!typeConfig.defaultOperator && defaultOperator) typeConfig.defaultOperator = defaultOperator;\n}\nfunction _extendFieldsConfig(subconfig, config) {\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n for (var field in subconfig) {\n _extendFieldConfig(subconfig[field], config, [].concat(_toConsumableArray(path), [field]));\n if (subconfig[field].subfields) {\n _extendFieldsConfig(subconfig[field].subfields, config, [].concat(_toConsumableArray(path), [field]));\n }\n }\n}\nfunction _extendFuncArgsConfig(subconfig, config) {\n var _config$settings;\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n if (!subconfig) return;\n var fieldSeparator = (config === null || config === void 0 || (_config$settings = config.settings) === null || _config$settings === void 0 ? void 0 : _config$settings.fieldSeparator) || \".\";\n for (var funcKey in subconfig) {\n var funcPath = [].concat(_toConsumableArray(path), [funcKey]).join(fieldSeparator);\n var funcDef = subconfig[funcKey];\n if (funcDef.returnType) {\n if (!config.__funcsCntByType[funcDef.returnType]) config.__funcsCntByType[funcDef.returnType] = 0;\n config.__funcsCntByType[funcDef.returnType]++;\n }\n for (var argKey in funcDef.args) {\n _extendFieldConfig(funcDef.args[argKey], config, null, true);\n }\n\n // isOptional can be only in the end\n if (funcDef.args) {\n var argKeys = Object.keys(funcDef.args);\n var tmpIsOptional = true;\n var _iterator2 = _createForOfIteratorHelper(argKeys.reverse()),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _argKey = _step2.value;\n var argDef = funcDef.args[_argKey];\n if (!tmpIsOptional && argDef.isOptional) {\n logger.info(\"Arg \".concat(_argKey, \" for func \").concat(funcPath, \" can't be optional\"));\n delete argDef.isOptional;\n }\n if (!argDef.isOptional) tmpIsOptional = false;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n if (funcDef.subfields) {\n _extendFuncArgsConfig(funcDef.subfields, config, [].concat(_toConsumableArray(path), [funcKey]));\n }\n }\n}\nfunction _extendFieldConfig(fieldConfig, config) {\n var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isFuncArg = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var operators = null,\n defaultOperator = null;\n var typeConfig = config.types[fieldConfig.type];\n var excludeOperatorsForField = fieldConfig.excludeOperators || [];\n if (fieldConfig.type != \"!struct\" && fieldConfig.type != \"!group\") {\n var keysToPutInFieldSettings = [\"listValues\", \"treeValues\", \"allowCustomValues\", \"validateValue\"];\n if (!fieldConfig.fieldSettings) fieldConfig.fieldSettings = {};\n for (var _i = 0, _keysToPutInFieldSett = keysToPutInFieldSettings; _i < _keysToPutInFieldSett.length; _i++) {\n var k = _keysToPutInFieldSett[_i];\n if (fieldConfig[k]) {\n fieldConfig.fieldSettings[k] = fieldConfig[k];\n delete fieldConfig[k];\n }\n }\n\n // normalize listValues\n if (fieldConfig.fieldSettings.listValues) {\n if (config.settings.normalizeListValues) {\n fieldConfig.fieldSettings.listValues = config.settings.normalizeListValues.call(config.ctx, fieldConfig.fieldSettings.listValues, fieldConfig.type, fieldConfig.fieldSettings);\n }\n }\n // same for treeValues\n if (fieldConfig.fieldSettings.treeValues) {\n if (config.settings.normalizeListValues) {\n fieldConfig.fieldSettings.treeValues = config.settings.normalizeListValues.call(config.ctx, fieldConfig.fieldSettings.treeValues, fieldConfig.type, fieldConfig.fieldSettings);\n }\n }\n if (!typeConfig) {\n //console.warn(`No type config for ${fieldConfig.type}`);\n fieldConfig.disabled = true;\n return;\n }\n if (!isFuncArg) {\n if (!config.__fieldsCntByType[fieldConfig.type]) config.__fieldsCntByType[fieldConfig.type] = 0;\n config.__fieldsCntByType[fieldConfig.type]++;\n }\n if (!fieldConfig.widgets) fieldConfig.widgets = {};\n if (isFuncArg) fieldConfig._isFuncArg = true;\n fieldConfig.mainWidget = fieldConfig.mainWidget || typeConfig.mainWidget;\n fieldConfig.valueSources = fieldConfig.valueSources || typeConfig.valueSources;\n var excludeOperatorsForType = typeConfig.excludeOperators || [];\n var _loop = function _loop() {\n var fieldWidgetConfig = fieldConfig.widgets[widget] || {};\n var typeWidgetConfig = typeConfig.widgets[widget] || {};\n if (!isFuncArg) {\n //todo: why I've excluded isFuncArg ?\n var excludeOperators = [].concat(_toConsumableArray(excludeOperatorsForField), _toConsumableArray(excludeOperatorsForType));\n var shouldIncludeOperators = fieldConfig.preferWidgets && (widget == \"field\" || fieldConfig.preferWidgets.includes(widget)) || excludeOperators.length > 0;\n if (fieldWidgetConfig.operators) {\n var addOperators = fieldWidgetConfig.operators.filter(function (o) {\n return !excludeOperators.includes(o);\n });\n operators = [].concat(_toConsumableArray(operators || []), _toConsumableArray(addOperators));\n } else if (shouldIncludeOperators && typeWidgetConfig.operators) {\n var _addOperators = typeWidgetConfig.operators.filter(function (o) {\n return !excludeOperators.includes(o);\n });\n operators = [].concat(_toConsumableArray(operators || []), _toConsumableArray(_addOperators));\n }\n if (fieldWidgetConfig.defaultOperator) defaultOperator = fieldWidgetConfig.defaultOperator;\n }\n if (widget == fieldConfig.mainWidget) {\n fieldWidgetConfig = merge({}, {\n widgetProps: fieldConfig.mainWidgetProps || {}\n }, fieldWidgetConfig);\n }\n fieldConfig.widgets[widget] = fieldWidgetConfig;\n };\n for (var widget in typeConfig.widgets) {\n _loop();\n }\n if (!isFuncArg) {\n if (!fieldConfig.operators && operators) fieldConfig.operators = Array.from(new Set(operators));\n fieldConfig._origDefaultOperator = fieldConfig.defaultOperator;\n if (!fieldConfig.defaultOperator && defaultOperator) fieldConfig.defaultOperator = defaultOperator;\n }\n }\n var _computeFieldName = computeFieldName(config, path),\n fieldName = _computeFieldName.fieldName,\n inGroup = _computeFieldName.inGroup;\n if (fieldName) {\n fieldConfig.fieldName = fieldName;\n if (!config.__fieldNames[fieldName]) config.__fieldNames[fieldName] = [];\n config.__fieldNames[fieldName].push({\n fullPath: path,\n inGroup: inGroup\n });\n }\n}\n\n/////////////\n\nvar mergeCustomizerNoArrays = function mergeCustomizerNoArrays(objValue, srcValue, _key, _object, _source, _stack) {\n if (Array.isArray(objValue)) {\n return srcValue;\n }\n};\nexport function iterateFuncs(config) {\n return _regeneratorRuntime.wrap(function iterateFuncs$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n return _context.delegateYield(_iterateFields(config, config.funcs || {}, []), \"t0\", 1);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }, _marked);\n}\nexport function iterateFields(config) {\n return _regeneratorRuntime.wrap(function iterateFields$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.delegateYield(_iterateFields(config, config.fields || {}, []), \"t0\", 1);\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _marked2);\n}\nfunction _iterateFields(config, subfields, path) {\n var subfieldsKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"subfields\";\n return /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_config$settings2) {\n var fieldSeparator, fieldKey, fieldConfig;\n return _regeneratorRuntime.wrap(function _callee$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n fieldSeparator = (config === null || config === void 0 || (_config$settings2 = config.settings) === null || _config$settings2 === void 0 ? void 0 : _config$settings2.fieldSeparator) || \".\";\n _context3.t0 = _regeneratorRuntime.keys(subfields);\n case 2:\n if ((_context3.t1 = _context3.t0()).done) {\n _context3.next = 13;\n break;\n }\n fieldKey = _context3.t1.value;\n fieldConfig = subfields[fieldKey];\n if (!fieldConfig[subfieldsKey]) {\n _context3.next = 9;\n break;\n }\n return _context3.delegateYield(_iterateFields(config, fieldConfig[subfieldsKey], [].concat(_toConsumableArray(path), [fieldKey]), subfieldsKey), \"t2\", 7);\n case 7:\n _context3.next = 11;\n break;\n case 9:\n _context3.next = 11;\n return [[].concat(_toConsumableArray(path), [fieldKey]).join(fieldSeparator), fieldConfig];\n case 11:\n _context3.next = 2;\n break;\n case 13:\n case \"end\":\n return _context3.stop();\n }\n }, _callee);\n })();\n}\nexport var getFieldRawConfig = function getFieldRawConfig(config, field) {\n var _config$settings3;\n var fieldsKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"fields\";\n var subfieldsKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"subfields\";\n if (!field) return null;\n if (field == \"!case_value\") {\n return {\n type: \"case_value\",\n mainWidget: \"case_value\",\n widgets: {\n \"case_value\": config.widgets[\"case_value\"]\n }\n };\n }\n var fieldSeparator = (config === null || config === void 0 || (_config$settings3 = config.settings) === null || _config$settings3 === void 0 ? void 0 : _config$settings3.fieldSeparator) || \".\";\n var parts = getFieldParts(field, config);\n var targetFields = config[fieldsKey];\n if (!targetFields) return null;\n var fields = targetFields;\n var fieldConfig = null;\n var path = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n path.push(part);\n var pathKey = path.join(fieldSeparator);\n fieldConfig = fields[pathKey];\n if (i < parts.length - 1) {\n if (fieldConfig && fieldConfig[subfieldsKey]) {\n fields = fieldConfig[subfieldsKey];\n path = [];\n } else {\n fieldConfig = null;\n }\n }\n }\n return fieldConfig;\n};\nvar computeFieldName = function computeFieldName(config, path) {\n if (!path) return {};\n var fieldSeparator = config.settings.fieldSeparator;\n var _reduce = _toConsumableArray(path).reduce(function (_ref, f, i, arr) {\n var computedPath = _ref.computedPath,\n computed = _ref.computed,\n inGroup = _ref.inGroup;\n var fullPath = [].concat(_toConsumableArray(arr.slice(0, i)), [f]);\n var fConfig = getFieldRawConfig(config, fullPath);\n if ((fConfig === null || fConfig === void 0 ? void 0 : fConfig.type) === \"!group\" && i < arr.length - 1) {\n // don't include group in final field name\n inGroup = fullPath.join(fieldSeparator);\n computedPath = [];\n } else if (fConfig !== null && fConfig !== void 0 && fConfig.fieldName) {\n // tip: fieldName overrides path !\n computed = true;\n computedPath = [fConfig.fieldName];\n } else {\n computedPath = [].concat(_toConsumableArray(computedPath), [f]);\n }\n return {\n computedPath: computedPath,\n computed: computed,\n inGroup: inGroup\n };\n }, {\n computedPath: [],\n computed: false,\n inGroup: undefined\n }),\n computedPath = _reduce.computedPath,\n computed = _reduce.computed,\n inGroup = _reduce.inGroup;\n return computed ? {\n fieldName: computedPath.join(fieldSeparator),\n inGroup: inGroup\n } : {};\n};\n\n// if `field` is alias (fieldName), convert to original full path\nexport var normalizeField = function normalizeField(config, field) {\n var _config$__fieldNames$, _config$__fieldNames$2;\n var parentField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // tip: if parentField is present, field is not full path\n var fieldSeparator = config.settings.fieldSeparator;\n var path = [parentField].concat(_toConsumableArray(field.split(fieldSeparator))).filter(function (f) {\n return f != null;\n });\n var findStr = field;\n var normalizedPath = (_config$__fieldNames$ = config.__fieldNames[findStr]) === null || _config$__fieldNames$ === void 0 || (_config$__fieldNames$2 = _config$__fieldNames$.find) === null || _config$__fieldNames$2 === void 0 || (_config$__fieldNames$2 = _config$__fieldNames$2.call(_config$__fieldNames$, function (_ref2) {\n var inGroup = _ref2.inGroup;\n if (inGroup) return parentField === null || parentField === void 0 ? void 0 : parentField.startsWith(inGroup);\n return true;\n })) === null || _config$__fieldNames$2 === void 0 ? void 0 : _config$__fieldNames$2.fullPath;\n return (normalizedPath || path).join(fieldSeparator);\n};\nexport var getFuncSignature = function getFuncSignature(config, func) {\n if (!func) return null;\n var funcConfig = getFieldRawConfig(config, func, \"funcs\", \"subfields\");\n if (!funcConfig) return null;\n var returnType = funcConfig.returnType,\n args = funcConfig.args;\n var argsSignature = Object.fromEntries(Object.entries(args || {}).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n k = _ref4[0],\n v = _ref4[1];\n var argSignature = pick(v, [\"type\", \"valueSources\", \"defaultValue\", \"fieldSettings\",\n // \"asyncListValues\", // not supported\n \"isOptional\"]);\n return [k, argSignature];\n }));\n var signature = {\n returnType: returnType,\n args: argsSignature\n };\n return signature;\n};\nexport var getFuncConfig = function getFuncConfig(config, func) {\n if (!func) return null;\n var funcConfig = getFieldRawConfig(config, func, \"funcs\", \"subfields\");\n if (!funcConfig) return null; //throw new Error(\"Can't find func \" + func + \", please check your config\");\n var typeConfig = config.types[funcConfig.returnType] || {};\n return _objectSpread(_objectSpread(_objectSpread({}, typeConfig), funcConfig), {}, {\n type: funcConfig.returnType || funcConfig.type\n });\n};\nexport var getFuncArgConfig = function getFuncArgConfig(config, funcKey, argKey) {\n var funcConfig = getFuncConfig(config, funcKey);\n if (!funcConfig) return null; //throw new Error(`Can't find func ${funcKey}, please check your config`);\n var argConfig = funcConfig.args && funcConfig.args[argKey] || null;\n if (!argConfig) return null; //throw new Error(`Can't find arg ${argKey} for func ${funcKey}, please check your config`);\n\n //merge, but don't merge operators (rewrite instead)\n var typeConfig = config.types[argConfig.type] || {};\n var ret = mergeWith({}, typeConfig, argConfig || {}, mergeCustomizerNoArrays);\n return ret;\n};\nexport var isFieldDescendantOfField = function isFieldDescendantOfField(field, parentField) {\n var _config$settings4;\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!parentField) return false;\n var fieldSeparator = (config === null || config === void 0 || (_config$settings4 = config.settings) === null || _config$settings4 === void 0 ? void 0 : _config$settings4.fieldSeparator) || \".\";\n var path = getFieldPath(field, config);\n var parentPath = getFieldPath(parentField, config);\n return path.startsWith(parentPath + fieldSeparator);\n};\nexport var getFieldPath = function getFieldPath(field) {\n var _config$settings5;\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (typeof field === \"string\") return field;\n var fieldSeparator = (config === null || config === void 0 || (_config$settings5 = config.settings) === null || _config$settings5 === void 0 ? void 0 : _config$settings5.fieldSeparator) || \".\";\n return getFieldParts(field, config).join(fieldSeparator);\n};\nexport var getFieldParts = function getFieldParts(field) {\n var _config$settings6, _field$get, _field$split;\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!field) return [];\n if (Array.isArray(field)) return field;\n var fieldSeparator = (config === null || config === void 0 || (_config$settings6 = config.settings) === null || _config$settings6 === void 0 ? void 0 : _config$settings6.fieldSeparator) || \".\";\n if (field !== null && field !== void 0 && field.func) {\n return Array.isArray(field.func) ? field.func : field.func.split(fieldSeparator);\n }\n if (field !== null && field !== void 0 && (_field$get = field.get) !== null && _field$get !== void 0 && _field$get.call(field, \"func\")) {\n var _field$get2;\n // immutable\n return field === null || field === void 0 || (_field$get2 = field.get) === null || _field$get2 === void 0 ? void 0 : _field$get2.call(field, \"func\").split(fieldSeparator);\n }\n return (field === null || field === void 0 || (_field$split = field.split) === null || _field$split === void 0 ? void 0 : _field$split.call(field, fieldSeparator)) || [];\n};\nexport var getFieldPathParts = function getFieldPathParts(field, config) {\n var onlyKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (!field) return null;\n var fieldSeparator = config.settings.fieldSeparator;\n var parts = getFieldParts(field, config);\n if (onlyKeys) return parts;else return parts.map(function (_curr, ind, arr) {\n return arr.slice(0, ind + 1);\n }).map(function (parts) {\n return parts.join(fieldSeparator);\n });\n};\nexport var getFieldSrc = function getFieldSrc(field) {\n var _field$get3;\n if (!field) return null;\n if (_typeof(field) == \"object\") {\n if (!field.func && !!field.type) {\n // it's already a config\n return \"field\";\n }\n if (field.func) {\n if (field.func && field.arg) {\n // it's func arg\n return null;\n } else {\n // it's field func\n return \"func\";\n }\n }\n }\n if (field !== null && field !== void 0 && (_field$get3 = field.get) !== null && _field$get3 !== void 0 && _field$get3.call(field, \"func\")) {\n // immutable\n if (field !== null && field !== void 0 && field.get(\"arg\")) {\n // it's func arg\n return null;\n } else {\n // it's field func\n return \"func\";\n }\n }\n return \"field\";\n};\nexport var getFieldConfig = function getFieldConfig(config, field) {\n var _field$get4;\n if (!field) return null;\n if (_typeof(field) == \"object\") {\n if (!field.func && !!field.type) {\n // it's already a config\n // if (!field.defaultOperator) {\n // // if not complete config..\n // // merge, but don't merge operators (rewrite instead)\n // const typeConfig = config.types[field.type] || {};\n // return mergeWith({}, typeConfig, field, mergeCustomizerNoArrays);\n // }\n return field;\n }\n if (field.func) {\n if (field.func && field.arg) {\n // it's func arg\n return getFuncArgConfig(config, field.func, field.arg);\n } else {\n // it's field func\n return getFuncConfig(config, field.func);\n }\n }\n }\n if (field !== null && field !== void 0 && (_field$get4 = field.get) !== null && _field$get4 !== void 0 && _field$get4.call(field, \"func\")) {\n // immutable\n if (field !== null && field !== void 0 && field.get(\"arg\")) {\n // it's func arg\n return getFuncArgConfig(config, field.get(\"func\"), field.get(\"arg\"));\n } else {\n // it's field func\n return getFuncConfig(config, field.get(\"func\"));\n }\n }\n var fieldConfig = getFieldRawConfig(config, field);\n if (!fieldConfig) return null; //throw new Error(\"Can't find field \" + field + \", please check your config\");\n\n //merge, but don't merge operators (rewrite instead)\n var typeConfig = config.types[fieldConfig.type] || {};\n var ret = mergeWith({}, typeConfig, fieldConfig || {}, mergeCustomizerNoArrays);\n return ret;\n};\nexport var getOperatorConfig = function getOperatorConfig(config, operator) {\n var field = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!operator) return null;\n var opConfig = config.operators[operator];\n if (field) {\n var fieldConfig = getFieldConfig(config, field);\n var widget = getWidgetForFieldOp(config, field, operator, null);\n var widgetConfig = config.widgets[widget] || {};\n var fieldWidgetConfig = (fieldConfig && fieldConfig.widgets ? fieldConfig.widgets[widget] : {}) || {};\n var widgetOpProps = (widgetConfig.opProps || {})[operator];\n var fieldWidgetOpProps = (fieldWidgetConfig.opProps || {})[operator];\n var mergedOpConfig = merge({}, opConfig, widgetOpProps, fieldWidgetOpProps);\n return mergedOpConfig;\n } else {\n return opConfig;\n }\n};\nexport var getFieldWidgetConfig = function getFieldWidgetConfig(config, field, operator) {\n var widget = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var valueSrc = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!field) return null;\n if (!(operator || widget) && valueSrc != \"const\" && field != \"!case_value\") return null;\n var fieldConfig = getFieldConfig(config, field);\n if (!widget) widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var widgetConfig = config.widgets[widget] || {};\n var fieldWidgetConfig = (fieldConfig && fieldConfig.widgets ? fieldConfig.widgets[widget] : {}) || {};\n var fieldWidgetProps = fieldWidgetConfig.widgetProps || {};\n var valueFieldSettings = (valueSrc == \"value\" || !valueSrc) && fieldConfig && fieldConfig.fieldSettings || {}; // useful to take 'validateValue'\n var mergedConfig = merge({}, widgetConfig, fieldWidgetProps, valueFieldSettings);\n return mergedConfig;\n};\nexport var _widgetDefKeysToOmit = widgetDefKeysToOmit;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { defaultValue } from \"../utils/stuff\";\nimport { getFieldConfig, getOperatorConfig } from \"../utils/configUtils\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport { formatFieldName } from \"../utils/ruleUtils\";\nimport { Map } from \"immutable\";\n\n/*\n Build tree to http://querybuilder.js.org/ like format\n\n Example:\n {\n \"condition\": \"AND\",\n \"rules\": [\n {\n \"id\": \"price\",\n \"field\": \"price\",\n \"type\": \"double\",\n \"input\": \"text\",\n \"operator\": \"less\",\n \"value\": \"10.25\"\n },\n {\n \"condition\": \"OR\",\n \"rules\": [\n {\n \"id\": \"category\",\n \"field\": \"category\",\n \"type\": \"integer\",\n \"input\": \"select\",\n \"operator\": \"equal\",\n \"value\": \"2\"\n },\n {\n \"id\": \"category\",\n \"field\": \"category\",\n \"type\": \"integer\",\n \"input\": \"select\",\n \"operator\": \"equal\",\n \"value\": \"1\"\n }\n ]\n }\n ]\n }\n */\n\nexport var queryBuilderFormat = function queryBuilderFormat(item, config) {\n //meta is mutable\n var meta = {\n usedFields: []\n };\n var res = formatItem(item, config, meta);\n if (!res) return undefined;\n return _objectSpread(_objectSpread({}, res), meta);\n};\nvar formatItem = function formatItem(item, config, meta) {\n if (!item) return undefined;\n var type = item.get(\"type\");\n var children = item.get(\"children1\");\n if ((type === \"group\" || type === \"rule_group\") && children && children.size) {\n return formatGroup(item, config, meta);\n } else if (type === \"rule\") {\n return formatRule(item, config, meta);\n }\n return undefined;\n};\nvar formatGroup = function formatGroup(item, config, meta) {\n var properties = item.get(\"properties\") || new Map();\n var children = item.get(\"children1\");\n var id = item.get(\"id\");\n var list = children.map(function (currentChild) {\n return formatItem(currentChild, config, meta);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (!list.size) return undefined;\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var not = properties.get(\"not\");\n var resultQuery = {\n id: id,\n rules: list.toList(),\n condition: conjunction.toUpperCase(),\n not: not\n };\n return resultQuery;\n};\nvar formatRule = function formatRule(item, config, meta) {\n var _valueType;\n var properties = item.get(\"properties\") || new Map();\n var id = item.get(\"id\");\n var operator = properties.get(\"operator\");\n var options = properties.get(\"operatorOptions\");\n var field = properties.get(\"field\");\n var value = properties.get(\"value\");\n var valueSrc = properties.get(\"valueSrc\");\n var valueType = properties.get(\"valueType\");\n var hasUndefinedValues = value.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (field == null || operator == null || hasUndefinedValues) return undefined;\n var fieldDefinition = getFieldConfig(config, field) || {};\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var fieldType = fieldDefinition.type || \"undefined\";\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var typeConfig = config.types[fieldDefinition.type] || {};\n var fieldName = formatFieldName(field, config, meta);\n if (value.size < cardinality) return undefined;\n if (meta.usedFields.indexOf(field) == -1) meta.usedFields.push(field);\n value = value.toArray();\n valueSrc = valueSrc.toArray();\n valueType = ((_valueType = valueType) === null || _valueType === void 0 ? void 0 : _valueType.toArray()) || [];\n var values = [];\n for (var i = 0; i < value.length; i++) {\n var val = {\n type: valueType[i],\n value: value[i]\n };\n values.push(val);\n if (valueSrc[i] == \"field\") {\n var secondField = value[i];\n if (meta.usedFields.indexOf(secondField) == -1) meta.usedFields.push(secondField);\n }\n }\n var operatorOptions = options ? options.toJS() : null;\n if (operatorOptions && !Object.keys(operatorOptions).length) operatorOptions = null;\n var ruleQuery = {\n id: id,\n fieldName: fieldName,\n type: fieldType,\n input: typeConfig.mainWidget,\n operator: operator\n };\n if (operatorOptions) ruleQuery.operatorOptions = operatorOptions;\n ruleQuery.values = values;\n return ruleQuery;\n};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { defaultValue, widgetDefKeysToOmit, opDefKeysToOmit } from \"../utils/stuff\";\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, extendConfig, getFieldParts } from \"../utils/configUtils\";\nimport { getWidgetForFieldOp, formatFieldName, completeValue } from \"../utils/ruleUtils\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport { List, Map } from \"immutable\";\nimport omit from \"lodash/omit\";\nimport pick from \"lodash/pick\";\n\n// http://jsonlogic.com/\n\nexport var jsonLogicFormat = function jsonLogicFormat(item, config) {\n //meta is mutable\n var meta = {\n usedFields: [],\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var logic = formatItem(item, extendedConfig, meta, true);\n\n // build empty data\n var errors = meta.errors,\n usedFields = meta.usedFields;\n var fieldSeparator = extendedConfig.settings.fieldSeparator;\n var data = {};\n var _iterator = _createForOfIteratorHelper(usedFields),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var ff = _step.value;\n //const fieldSrc = typeof ff === \"string\" ? \"field\" : \"func\";\n var parts = getFieldParts(ff, config);\n var def = getFieldConfig(extendedConfig, ff) || {};\n var tmp = data;\n for (var i = 0; i < parts.length; i++) {\n var p = parts[i];\n var pdef = getFieldConfig(extendedConfig, parts.slice(0, i + 1)) || {};\n if (i != parts.length - 1) {\n if (pdef.type == \"!group\" && pdef.mode != \"struct\") {\n if (!tmp[p]) tmp[p] = [{}];\n tmp = tmp[p][0];\n } else {\n if (!tmp[p]) tmp[p] = {};\n tmp = tmp[p];\n }\n } else {\n if (!tmp[p]) tmp[p] = null; // can use def.type for sample values\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return {\n errors: errors,\n logic: logic,\n data: data\n };\n};\nvar formatItem = function formatItem(item, config, meta, isRoot) {\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!item) return undefined;\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var isLocked = properties.get(\"isLocked\");\n var lockedOp = config.settings.jsonLogic.lockedOp;\n var ret;\n if (type === \"group\" || type === \"rule_group\") {\n ret = formatGroup(item, config, meta, isRoot, parentField);\n } else if (type === \"rule\") {\n ret = formatRule(item, config, meta, parentField);\n }\n if (isLocked && ret && lockedOp) {\n ret = _defineProperty({}, lockedOp, ret);\n }\n return ret;\n};\nvar formatGroup = function formatGroup(item, config, meta, isRoot) {\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var mode = properties.get(\"mode\");\n var children = item.get(\"children1\") || new List();\n var field = properties.get(\"field\");\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var conjunctionDefinition = config.conjunctions[conjunction];\n var conj = conjunctionDefinition.jsonLogicConj || conjunction.toLowerCase();\n var not = properties.get(\"not\");\n var isRuleGroup = type === \"rule_group\" && !isRoot;\n var groupField = isRuleGroup && mode != \"struct\" ? field : parentField;\n var groupOperator = properties.get(\"operator\");\n var groupOperatorDefinition = groupOperator && getOperatorConfig(config, groupOperator, field) || null;\n var formattedValue = formatItemValue(config, properties, meta, groupOperator, parentField);\n var isGroup0 = isRuleGroup && (!groupOperator || groupOperatorDefinition.cardinality == 0);\n var list = children.map(function (currentChild) {\n return formatItem(currentChild, config, meta, false, groupField);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (isRuleGroup && mode != \"struct\" && !isGroup0) {\n // \"count\" rule can have no \"having\" children, but should have number value\n if (formattedValue == undefined) return undefined;\n } else {\n if (!list.size) return undefined;\n }\n var resultQuery = {};\n if (list.size == 1 && !isRoot) resultQuery = list.first();else resultQuery[conj] = list.toList().toJS();\n\n // revert\n if (not) {\n resultQuery = {\n \"!\": resultQuery\n };\n }\n\n // rule_group (issue #246)\n if (isRuleGroup && mode != \"struct\") {\n var formattedField = formatField(meta, config, field, parentField);\n if (isGroup0) {\n // config.settings.groupOperators\n var op = groupOperator || \"some\";\n resultQuery = _defineProperty({}, op, [formattedField, resultQuery]);\n } else {\n // there is rule for count\n var filter = !list.size ? formattedField : {\n \"filter\": [formattedField, resultQuery]\n };\n var count = {\n \"reduce\": [filter, {\n \"+\": [1, {\n \"var\": \"accumulator\"\n }]\n }, 0]\n };\n resultQuery = formatLogic(config, properties, count, formattedValue, groupOperator);\n }\n }\n return resultQuery;\n};\nvar formatRule = function formatRule(item, config, meta) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var properties = item.get(\"properties\") || new Map();\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var operator = properties.get(\"operator\");\n var operatorOptions = properties.get(\"operatorOptions\");\n operatorOptions = operatorOptions ? operatorOptions.toJS() : null;\n if (operatorOptions && !Object.keys(operatorOptions).length) operatorOptions = null;\n if (field == null || operator == null) return undefined;\n var fieldDefinition = getFieldConfig(config, field) || {};\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var reversedOp = operatorDefinition.reversedOp;\n var revOperatorDefinition = getOperatorConfig(config, reversedOp, field) || {};\n\n // check op\n var isRev = false;\n if (!operatorDefinition.jsonLogic && !revOperatorDefinition.jsonLogic) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n if (!operatorDefinition.jsonLogic && revOperatorDefinition.jsonLogic) {\n isRev = true;\n var _ref = [reversedOp, operator];\n operator = _ref[0];\n reversedOp = _ref[1];\n var _ref2 = [revOperatorDefinition, operatorDefinition];\n operatorDefinition = _ref2[0];\n revOperatorDefinition = _ref2[1];\n }\n var formattedValue = formatItemValue(config, properties, meta, operator, parentField);\n if (formattedValue === undefined) return undefined;\n var formattedField = fieldSrc === \"func\" ? formatFunc(meta, config, field, parentField) : formatField(meta, config, field, parentField);\n if (formattedField === undefined) return undefined;\n return formatLogic(config, properties, formattedField, formattedValue, operator, operatorOptions, fieldDefinition, isRev);\n};\nvar formatItemValue = function formatItemValue(config, properties, meta, operator, parentField) {\n var field = properties.get(\"field\");\n var iValueSrc = properties.get(\"valueSrc\");\n var iValueType = properties.get(\"valueType\");\n var fieldDefinition = getFieldConfig(config, field) || {};\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var iValue = properties.get(\"value\");\n var asyncListValues = properties.get(\"asyncListValues\");\n if (iValue == undefined) return undefined;\n var valueSrcs = [];\n var valueTypes = [];\n var oldUsedFields = meta.usedFields;\n var fvalue = iValue.map(function (currentValue, ind) {\n var valueSrc = iValueSrc ? iValueSrc.get(ind) : null;\n var valueType = iValueType ? iValueType.get(ind) : null;\n var cValue = completeValue(currentValue, valueSrc, config);\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, field, operator, widget, valueSrc), [\"factory\"]);\n var fv = formatValue(meta, config, cValue, valueSrc, valueType, fieldWidgetDef, fieldDefinition, operator, operatorDefinition, parentField, asyncListValues);\n if (fv !== undefined) {\n valueSrcs.push(valueSrc);\n valueTypes.push(valueType);\n }\n return fv;\n });\n var hasUndefinedValues = fvalue.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (fvalue.size < cardinality || hasUndefinedValues) {\n meta.usedFields = oldUsedFields; // restore\n return undefined;\n }\n return cardinality > 1 ? fvalue.toArray() : cardinality == 1 ? fvalue.first() : null;\n};\nvar formatValue = function formatValue(meta, config, currentValue, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, operatorDef) {\n var parentField = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : null;\n var asyncListValues = arguments.length > 10 ? arguments[10] : undefined;\n if (currentValue === undefined) return undefined;\n var ret;\n if (valueSrc == \"field\") {\n ret = formatField(meta, config, currentValue, parentField);\n } else if (valueSrc == \"func\") {\n ret = formatFunc(meta, config, currentValue, parentField);\n } else if (typeof fieldWidgetDef.jsonLogic === \"function\") {\n var fn = fieldWidgetDef.jsonLogic;\n var args = [currentValue, _objectSpread(_objectSpread({}, pick(fieldDef, [\"fieldSettings\", \"listValues\"])), {}, {\n asyncListValues: asyncListValues\n }),\n //useful options: valueFormat for date/time\n omit(fieldWidgetDef, widgetDefKeysToOmit)];\n if (operator) {\n args.push(operator);\n args.push(operatorDef);\n }\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n } else {\n ret = currentValue;\n }\n return ret;\n};\nvar formatFunc = function formatFunc(meta, config, currentValue) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var funcKey = currentValue.get(\"func\");\n var args = currentValue.get(\"args\");\n var funcConfig = getFuncConfig(config, funcKey);\n var funcParts = getFieldParts(funcKey, config);\n var funcLastKey = funcParts[funcParts.length - 1];\n if (!funcConfig) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not defined in config\"));\n return undefined;\n }\n if (!(funcConfig !== null && funcConfig !== void 0 && funcConfig.jsonLogic)) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not supported\"));\n return undefined;\n }\n var formattedArgs = {};\n var gaps = [];\n var missingArgKeys = [];\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var fieldDef = getFieldConfig(config, argConfig);\n var _defaultValue = argConfig.defaultValue,\n isOptional = argConfig.isOptional;\n var defaultValueSrc = _defaultValue !== null && _defaultValue !== void 0 && _defaultValue.func ? \"func\" : \"value\";\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n var operator = null;\n var widget = getWidgetForFieldOp(config, argConfig, operator, argValueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, widget, argValueSrc), [\"factory\"]);\n var formattedArgVal = formatValue(meta, config, argValue, argValueSrc, argConfig.type, fieldWidgetDef, fieldDef, null, null, parentField);\n if (argValue != undefined && formattedArgVal === undefined) {\n if (argValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n var formattedDefaultVal = void 0;\n if (formattedArgVal === undefined && !isOptional && _defaultValue != undefined) {\n var defaultWidget = getWidgetForFieldOp(config, argConfig, operator, defaultValueSrc);\n var defaultFieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, defaultWidget, defaultValueSrc), [\"factory\"]);\n formattedDefaultVal = formatValue(meta, config, _defaultValue, defaultValueSrc, argConfig.type, defaultFieldWidgetDef, fieldDef, null, null, parentField);\n if (formattedDefaultVal === undefined) {\n if (defaultValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format default value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n }\n var finalFormattedVal = formattedArgVal !== null && formattedArgVal !== void 0 ? formattedArgVal : formattedDefaultVal;\n if (finalFormattedVal !== undefined) {\n if (gaps.length) {\n var _iterator2 = _createForOfIteratorHelper(gaps),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var missedArgKey = _step2.value;\n formattedArgs[missedArgKey] = undefined;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n gaps = [];\n }\n formattedArgs[argKey] = finalFormattedVal;\n } else {\n if (!isOptional) missingArgKeys.push(argKey);\n gaps.push(argKey);\n }\n }\n if (missingArgKeys.length) {\n //meta.errors.push(`Missing vals for args ${missingArgKeys.join(\", \")} for func ${funcKey}`);\n return undefined; // uncomplete\n }\n\n var formattedArgsArr = Object.values(formattedArgs);\n var ret;\n if (typeof funcConfig.jsonLogic === \"function\") {\n var fn = funcConfig.jsonLogic;\n var _args = [formattedArgs];\n ret = fn.call.apply(fn, [config.ctx].concat(_args));\n } else {\n var funcName = funcConfig.jsonLogic || funcLastKey;\n var isMethod = !!funcConfig.jsonLogicIsMethod;\n if (isMethod) {\n var obj = formattedArgsArr[0],\n params = formattedArgsArr.slice(1);\n if (params.length) {\n ret = {\n \"method\": [obj, funcName, params]\n };\n } else {\n ret = {\n \"method\": [obj, funcName]\n };\n }\n } else {\n ret = _defineProperty({}, funcName, formattedArgsArr);\n }\n }\n return ret;\n};\nvar formatField = function formatField(meta, config, field) {\n var parentField = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var _config$settings = config.settings,\n fieldSeparator = _config$settings.fieldSeparator,\n jsonLogic = _config$settings.jsonLogic;\n var ret;\n if (field) {\n if (Array.isArray(field)) field = field.join(fieldSeparator);\n var fieldDef = getFieldConfig(config, field) || {};\n var fieldName = formatFieldName(field, config, meta, parentField);\n var varName = fieldDef.jsonLogicVar || (fieldDef.type == \"!group\" ? jsonLogic.groupVarKey : \"var\");\n ret = _defineProperty({}, varName, fieldName);\n if (meta.usedFields.indexOf(field) == -1) meta.usedFields.push(field);\n }\n return ret;\n};\nvar buildFnToFormatOp = function buildFnToFormatOp(operator, operatorDefinition, formattedField, formattedValue) {\n var formatteOp = operator;\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var isReverseArgs = defaultValue(operatorDefinition._jsonLogicIsRevArgs, false);\n if (typeof operatorDefinition.jsonLogic == \"string\") formatteOp = operatorDefinition.jsonLogic;\n var rangeOps = [\"<\", \"<=\", \">\", \">=\"];\n var eqOps = [\"==\", \"!=\"];\n var fn = function fn(field, op, val, opDef, opOpts) {\n if (cardinality == 0 && eqOps.includes(formatteOp)) return _defineProperty({}, formatteOp, [formattedField, null]);else if (cardinality == 0) return _defineProperty({}, formatteOp, formattedField);else if (cardinality == 1 && isReverseArgs) return _defineProperty({}, formatteOp, [formattedValue, formattedField]);else if (cardinality == 1) return _defineProperty({}, formatteOp, [formattedField, formattedValue]);else if (cardinality == 2 && rangeOps.includes(formatteOp)) return _defineProperty({}, formatteOp, [formattedValue[0], formattedField, formattedValue[1]]);else return _defineProperty({}, formatteOp, [formattedField].concat(_toConsumableArray(formattedValue)));\n };\n return fn;\n};\nvar formatLogic = function formatLogic(config, properties, formattedField, formattedValue, operator) {\n var operatorOptions = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n var fieldDefinition = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n var isRev = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : false;\n var field = properties.get(\"field\");\n //const fieldSrc = properties.get(\"fieldSrc\");\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var fn = typeof operatorDefinition.jsonLogic == \"function\" ? operatorDefinition.jsonLogic : buildFnToFormatOp(operator, operatorDefinition, formattedField, formattedValue);\n var args = [formattedField, operator, formattedValue, omit(operatorDefinition, opDefKeysToOmit), operatorOptions, fieldDefinition];\n var ruleQuery = fn.call.apply(fn, [config.ctx].concat(args));\n if (isRev) {\n ruleQuery = {\n \"!\": ruleQuery\n };\n }\n return ruleQuery;\n};","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { defaultValue, widgetDefKeysToOmit, opDefKeysToOmit } from \"../utils/stuff\";\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, getFieldParts, extendConfig } from \"../utils/configUtils\";\nimport { getFieldPathLabels, getWidgetForFieldOp, formatFieldName, completeValue } from \"../utils/ruleUtils\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport omit from \"lodash/omit\";\nimport pick from \"lodash/pick\";\nimport { List, Map } from \"immutable\";\n\n// helpers\nvar isObject = function isObject(v) {\n return _typeof(v) == \"object\" && v !== null && !Array.isArray(v);\n};\nexport var mongodbFormat = function mongodbFormat(tree, config) {\n return _mongodbFormat(tree, config, false);\n};\nexport var _mongodbFormat = function _mongodbFormat(tree, config) {\n var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //meta is mutable\n var meta = {\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var res = formatItem([], tree, extendedConfig, meta);\n if (returnErrors) {\n return [res, meta.errors];\n } else {\n if (meta.errors.length) console.warn(\"Errors while exporting to MongoDb:\", meta.errors);\n return res;\n }\n};\nvar formatItem = function formatItem(parents, item, config, meta) {\n var _not = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var _canWrapExpr = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var _formatFieldName = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;\n var _value = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;\n if (!item) return undefined;\n var type = item.get(\"type\");\n if (type === \"group\" || type === \"rule_group\") {\n return formatGroup(parents, item, config, meta, _not, _canWrapExpr, _formatFieldName, _value);\n } else if (type === \"rule\") {\n return formatRule(parents, item, config, meta, _not, _canWrapExpr, _formatFieldName, _value);\n }\n return undefined;\n};\nvar formatGroup = function formatGroup(parents, item, config, meta) {\n var _not = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var _canWrapExpr = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var _formatFieldName = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;\n var _value = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var children = item.get(\"children1\") || new List();\n var _config$settings = config.settings,\n canShortMongoQuery = _config$settings.canShortMongoQuery,\n fieldSeparator = _config$settings.fieldSeparator;\n var sep = fieldSeparator;\n var hasParentRuleGroup = parents.filter(function (it) {\n return it.get(\"type\") == \"rule_group\";\n }).length > 0;\n var parentPath = parents.filter(function (it) {\n return it.get(\"type\") == \"rule_group\";\n }).map(function (it) {\n return it.get(\"properties\").get(\"field\");\n }).slice(-1).pop();\n var realParentPath = hasParentRuleGroup && parentPath;\n var groupField = type === \"rule_group\" ? properties.get(\"field\") : null;\n var groupFieldName = formatFieldName(groupField, config, meta, realParentPath);\n var groupFieldDef = getFieldConfig(config, groupField) || {};\n var mode = groupFieldDef.mode; //properties.get(\"mode\");\n var canHaveEmptyChildren = groupField && mode == \"array\";\n var not = _not ? !properties.get(\"not\") : properties.get(\"not\");\n var list = children.map(function (currentChild) {\n return formatItem([].concat(_toConsumableArray(parents), [item]), currentChild, config, meta, not, mode != \"array\", mode == \"array\" ? function (f) {\n return \"$$el\".concat(sep).concat(f);\n } : undefined);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (!canHaveEmptyChildren && !list.size) return undefined;\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var conjunctionDefinition = config.conjunctions[conjunction];\n var reversedConj = conjunctionDefinition.reversedConj;\n if (not && reversedConj) {\n conjunction = reversedConj;\n conjunctionDefinition = config.conjunctions[conjunction];\n }\n if (!conjunctionDefinition) return undefined;\n var mongoConj = conjunctionDefinition.mongoConj;\n var resultQuery;\n if (list.size == 1) {\n resultQuery = list.first();\n } else if (list.size > 1) {\n var rules = list.toList().toJS();\n var canShort = canShortMongoQuery && mongoConj == \"$and\";\n if (canShort) {\n resultQuery = rules.reduce(function (acc, rule) {\n if (!acc) return undefined;\n for (var k in rule) {\n if (k[0] == \"$\") {\n acc = undefined;\n break;\n }\n if (acc[k] == undefined) {\n acc[k] = rule[k];\n } else {\n // https://github.com/ukrbublik/react-awesome-query-builder/issues/182\n var prev = acc[k],\n next = rule[k];\n if (!isObject(prev)) {\n prev = {\n \"$eq\": prev\n };\n }\n if (!isObject(next)) {\n next = {\n \"$eq\": next\n };\n }\n var prevOp = Object.keys(prev)[0],\n nextOp = Object.keys(next)[0];\n if (prevOp == nextOp) {\n acc = undefined;\n break;\n }\n acc[k] = Object.assign({}, prev, next);\n }\n }\n return acc;\n }, {});\n }\n if (!resultQuery)\n // can't be shorten\n resultQuery = _defineProperty({}, mongoConj, rules);\n }\n if (groupField) {\n if (mode == \"array\") {\n var totalQuery = {\n \"$size\": {\n \"$ifNull\": [\"$\" + groupFieldName, []]\n }\n };\n var filterQuery = resultQuery ? {\n \"$size\": {\n \"$ifNull\": [{\n \"$filter\": {\n input: \"$\" + groupFieldName,\n as: \"el\",\n cond: resultQuery\n }\n }, []]\n }\n } : totalQuery;\n resultQuery = formatItem(parents, item.set(\"type\", \"rule\"), config, meta, false, false, function (_f) {\n return filterQuery;\n }, totalQuery);\n resultQuery = {\n \"$expr\": resultQuery\n };\n } else {\n resultQuery = _defineProperty({}, groupFieldName, {\n \"$elemMatch\": resultQuery\n });\n }\n }\n return resultQuery;\n};\nvar formatRule = function formatRule(parents, item, config, meta) {\n var _not = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var _canWrapExpr = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var _formatFieldName = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : undefined;\n var _value = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : undefined;\n var properties = item.get(\"properties\") || new Map();\n var hasParentRuleGroup = parents.filter(function (it) {\n return it.get(\"type\") == \"rule_group\";\n }).length > 0;\n var parentPath = parents.filter(function (it) {\n return it.get(\"type\") == \"rule_group\";\n }).map(function (it) {\n return it.get(\"properties\").get(\"field\");\n }).slice(-1).pop();\n var realParentPath = hasParentRuleGroup && parentPath;\n var operator = properties.get(\"operator\");\n var operatorOptions = properties.get(\"operatorOptions\");\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var iValue = properties.get(\"value\");\n var iValueSrc = properties.get(\"valueSrc\");\n var iValueType = properties.get(\"valueType\");\n var asyncListValues = properties.get(\"asyncListValues\");\n if (field == null || operator == null || iValue === undefined) return undefined;\n var fieldDef = getFieldConfig(config, field) || {};\n var operatorDefinition = getOperatorConfig(config, operator, field) || {};\n var reversedOp = operatorDefinition.reversedOp;\n var revOperatorDefinition = getOperatorConfig(config, reversedOp, field) || {};\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var not = _not;\n if (not && reversedOp) {\n var _ref = [reversedOp, operator];\n operator = _ref[0];\n reversedOp = _ref[1];\n var _ref2 = [revOperatorDefinition, operatorDefinition];\n operatorDefinition = _ref2[0];\n revOperatorDefinition = _ref2[1];\n not = false;\n }\n var formattedField;\n var useExpr = false;\n if (fieldSrc == \"func\") {\n var _formatFunc = formatFunc(meta, config, field, realParentPath);\n var _formatFunc2 = _slicedToArray(_formatFunc, 2);\n formattedField = _formatFunc2[0];\n useExpr = _formatFunc2[1];\n } else {\n formattedField = formatFieldName(field, config, meta, realParentPath);\n if (_formatFieldName) {\n useExpr = true;\n formattedField = _formatFieldName(formattedField);\n }\n }\n if (formattedField == undefined) return undefined;\n\n //format value\n var valueSrcs = [];\n var valueTypes = [];\n var fvalue = iValue.map(function (currentValue, ind) {\n var valueSrc = iValueSrc ? iValueSrc.get(ind) : null;\n var valueType = iValueType ? iValueType.get(ind) : null;\n var cValue = completeValue(currentValue, valueSrc, config);\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, field, operator, widget, valueSrc), [\"factory\"]);\n var _formatValue = formatValue(meta, config, cValue, valueSrc, valueType, fieldWidgetDef, fieldDef, realParentPath, operator, operatorDefinition, asyncListValues),\n _formatValue2 = _slicedToArray(_formatValue, 2),\n fv = _formatValue2[0],\n fvUseExpr = _formatValue2[1];\n if (fv !== undefined) {\n useExpr = useExpr || fvUseExpr;\n valueSrcs.push(valueSrc);\n valueTypes.push(valueType);\n }\n return fv;\n });\n var wrapExpr = useExpr && _canWrapExpr;\n var hasUndefinedValues = fvalue.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (fvalue.size < cardinality || hasUndefinedValues) return undefined;\n var formattedValue = cardinality > 1 ? fvalue.toArray() : cardinality == 1 ? fvalue.first() : null;\n\n //build rule\n var fn = operatorDefinition.mongoFormatOp;\n if (!fn) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n var args = [formattedField, operator, _value !== undefined && formattedValue == null ? _value : formattedValue, useExpr, valueSrcs.length > 1 ? valueSrcs : valueSrcs[0], valueTypes.length > 1 ? valueTypes : valueTypes[0], omit(operatorDefinition, opDefKeysToOmit), operatorOptions, fieldDef];\n var ruleQuery = fn.call.apply(fn, [config.ctx].concat(args));\n if (wrapExpr) {\n ruleQuery = {\n \"$expr\": ruleQuery\n };\n }\n if (not) {\n ruleQuery = {\n \"$not\": ruleQuery\n };\n }\n return ruleQuery;\n};\nvar formatValue = function formatValue(meta, config, currentValue, valueSrc, valueType, fieldWidgetDef, fieldDef, parentPath, operator, operatorDef, asyncListValues) {\n if (currentValue === undefined) return [undefined, false];\n var ret;\n var useExpr = false;\n if (valueSrc == \"field\") {\n var _formatRightField = formatRightField(meta, config, currentValue, parentPath);\n var _formatRightField2 = _slicedToArray(_formatRightField, 2);\n ret = _formatRightField2[0];\n useExpr = _formatRightField2[1];\n } else if (valueSrc == \"func\") {\n var _formatFunc3 = formatFunc(meta, config, currentValue, parentPath);\n var _formatFunc4 = _slicedToArray(_formatFunc3, 2);\n ret = _formatFunc4[0];\n useExpr = _formatFunc4[1];\n } else {\n if (typeof fieldWidgetDef.mongoFormatValue === \"function\") {\n var fn = fieldWidgetDef.mongoFormatValue;\n var args = [currentValue, _objectSpread(_objectSpread({}, pick(fieldDef, [\"fieldSettings\", \"listValues\"])), {}, {\n asyncListValues: asyncListValues\n }),\n //useful options: valueFormat for date/time\n omit(fieldWidgetDef, widgetDefKeysToOmit)];\n if (operator) {\n args.push(operator);\n args.push(operatorDef);\n }\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n } else {\n ret = currentValue;\n }\n }\n return [ret, useExpr];\n};\nvar formatRightField = function formatRightField(meta, config, rightField, parentPath) {\n var fieldSeparator = config.settings.fieldSeparator;\n var ret;\n var useExpr = true;\n if (rightField) {\n var rightFieldDefinition = getFieldConfig(config, rightField) || {};\n var fieldParts = getFieldParts(rightField, config);\n var fieldPartsLabels = getFieldPathLabels(rightField, config);\n var fieldFullLabel = fieldPartsLabels ? fieldPartsLabels.join(fieldSeparator) : null;\n var formatFieldFn = config.settings.formatField;\n var rightFieldName = formatFieldName(rightField, config, meta, parentPath);\n var formattedField = formatFieldFn(rightFieldName, fieldParts, fieldFullLabel, rightFieldDefinition, config, false);\n ret = \"$\" + formattedField;\n }\n return [ret, useExpr];\n};\nvar formatFunc = function formatFunc(meta, config, currentValue, parentPath) {\n var useExpr = true;\n var ret;\n var funcKey = currentValue.get(\"func\");\n var args = currentValue.get(\"args\");\n var funcConfig = getFuncConfig(config, funcKey);\n if (!funcConfig) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not defined in config\"));\n return [undefined, false];\n }\n var funcParts = getFieldParts(funcKey, config);\n var funcLastKey = funcParts[funcParts.length - 1];\n var funcName = funcConfig.mongoFunc || funcLastKey;\n var mongoArgsAsObject = funcConfig.mongoArgsAsObject;\n var formattedArgs = {};\n var argsCnt = 0;\n var lastArg = undefined;\n var gaps = [];\n var missingArgKeys = [];\n for (var argKey in funcConfig.args) {\n argsCnt++;\n var argConfig = funcConfig.args[argKey];\n var fieldDef = getFieldConfig(config, argConfig);\n var _defaultValue = argConfig.defaultValue,\n isOptional = argConfig.isOptional;\n var defaultValueSrc = _defaultValue !== null && _defaultValue !== void 0 && _defaultValue.func ? \"func\" : \"value\";\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n var argAsyncListValues = argVal ? argVal.get(\"asyncListValues\") : undefined;\n var operator = null;\n var widget = getWidgetForFieldOp(config, argConfig, operator, argValueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, widget, argValueSrc), [\"factory\"]);\n var _formatValue3 = formatValue(meta, config, argValue, argValueSrc, argConfig.type, fieldWidgetDef, fieldDef, parentPath, null, null, argAsyncListValues),\n _formatValue4 = _slicedToArray(_formatValue3, 2),\n formattedArgVal = _formatValue4[0],\n _argUseExpr = _formatValue4[1];\n if (argValue != undefined && formattedArgVal === undefined) {\n if (argValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return [undefined, false];\n }\n var formattedDefaultVal = void 0;\n if (formattedArgVal === undefined && !isOptional && _defaultValue != undefined) {\n var defaultWidget = getWidgetForFieldOp(config, argConfig, operator, defaultValueSrc);\n var defaultFieldWidgetDef = omit(getFieldWidgetConfig(config, argConfig, operator, defaultWidget, defaultValueSrc), [\"factory\"]);\n var _ = void 0;\n var _formatValue5 = formatValue(meta, config, _defaultValue, defaultValueSrc, argConfig.type, defaultFieldWidgetDef, fieldDef, parentPath, null, null, argAsyncListValues);\n var _formatValue6 = _slicedToArray(_formatValue5, 2);\n formattedDefaultVal = _formatValue6[0];\n _ = _formatValue6[1];\n if (formattedDefaultVal === undefined) {\n if (defaultValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format default value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return [undefined, false];\n }\n }\n var finalFormattedVal = formattedArgVal !== null && formattedArgVal !== void 0 ? formattedArgVal : formattedDefaultVal;\n if (finalFormattedVal !== undefined) {\n if (gaps.length) {\n var _iterator = _createForOfIteratorHelper(gaps),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var missedArgKey = _step.value;\n formattedArgs[missedArgKey] = undefined;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n gaps = [];\n }\n formattedArgs[argKey] = finalFormattedVal;\n lastArg = finalFormattedVal;\n } else {\n if (!isOptional) missingArgKeys.push(argKey);\n gaps.push(argKey);\n }\n }\n if (missingArgKeys.length) {\n //meta.errors.push(`Missing vals for args ${missingArgKeys.join(\", \")} for func ${funcKey}`);\n return [undefined, false]; // uncomplete\n }\n\n if (typeof funcConfig.mongoFormatFunc === \"function\") {\n var fn = funcConfig.mongoFormatFunc;\n var _args = [formattedArgs];\n ret = fn.call.apply(fn, [config.ctx].concat(_args));\n } else if (funcConfig.mongoFormatFunc === null) {\n meta.errors.push(\"Functon \".concat(funcName, \" is not supported\"));\n return [undefined, false];\n } else {\n if (mongoArgsAsObject) ret = _defineProperty({}, funcName, formattedArgs);else if (argsCnt == 1 && lastArg !== undefined) ret = _defineProperty({}, funcName, lastArg);else ret = _defineProperty({}, funcName, Object.values(formattedArgs));\n }\n return [ret, useExpr];\n};","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, getFieldParts, extendConfig } from \"../utils/configUtils\";\nimport { getFieldPathLabels, getWidgetForFieldOp, formatFieldName, completeValue } from \"../utils/ruleUtils\";\nimport omit from \"lodash/omit\";\nimport pick from \"lodash/pick\";\nimport { defaultValue, widgetDefKeysToOmit, opDefKeysToOmit } from \"../utils/stuff\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport { List, Map } from \"immutable\";\nimport { SqlString } from \"../utils/export\";\nexport var sqlFormat = function sqlFormat(tree, config) {\n return _sqlFormat(tree, config, false);\n};\nexport var _sqlFormat = function _sqlFormat(tree, config) {\n var returnErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n //meta is mutable\n var meta = {\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var res = formatItem(tree, extendedConfig, meta);\n if (returnErrors) {\n return [res, meta.errors];\n } else {\n if (meta.errors.length) console.warn(\"Errors while exporting to SQL:\", meta.errors);\n return res;\n }\n};\nvar formatItem = function formatItem(item, config, meta) {\n if (!item) return undefined;\n var type = item.get(\"type\");\n var children = item.get(\"children1\");\n if (type === \"group\" || type === \"rule_group\") {\n return formatGroup(item, config, meta);\n } else if (type === \"rule\") {\n return formatRule(item, config, meta);\n }\n return undefined;\n};\nvar formatGroup = function formatGroup(item, config, meta) {\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var children = item.get(\"children1\") || new List();\n var isRuleGroup = type === \"rule_group\";\n var groupField = isRuleGroup ? properties.get(\"field\") : null;\n var groupFieldDef = getFieldConfig(config, groupField) || {};\n var mode = groupFieldDef.mode;\n if (mode == \"array\") {\n meta.errors.push(\"Aggregation is not supported for \".concat(groupField));\n }\n var not = properties.get(\"not\");\n var canHaveEmptyChildren = false; //isRuleGroup && mode == \"array\";\n var list = children.map(function (currentChild) {\n return formatItem(currentChild, config, meta);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (!canHaveEmptyChildren && !list.size) return undefined;\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var conjunctionDefinition = config.conjunctions[conjunction];\n return conjunctionDefinition.sqlFormatConj(list, conjunction, not);\n};\nvar buildFnToFormatOp = function buildFnToFormatOp(operator, operatorDefinition) {\n var sqlOp = operatorDefinition.sqlOp || operator;\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var fn;\n if (cardinality == 0) {\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" \").concat(sqlOp);\n };\n } else if (cardinality == 1) {\n fn = function fn(field, op, value, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" \").concat(sqlOp, \" \").concat(value);\n };\n } else if (cardinality == 2) {\n // between\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var valFrom = values.first();\n var valTo = values.get(1);\n return \"\".concat(field, \" \").concat(sqlOp, \" \").concat(valFrom, \" AND \").concat(valTo);\n };\n }\n return fn;\n};\nvar formatRule = function formatRule(item, config, meta) {\n var properties = item.get(\"properties\") || new Map();\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var operator = properties.get(\"operator\");\n var operatorOptions = properties.get(\"operatorOptions\");\n var iValueSrc = properties.get(\"valueSrc\");\n var iValueType = properties.get(\"valueType\");\n var iValue = properties.get(\"value\");\n var asyncListValues = properties.get(\"asyncListValues\");\n if (field == null || operator == null) return undefined;\n var fieldDefinition = getFieldConfig(config, field) || {};\n var opDef = getOperatorConfig(config, operator, field) || {};\n var reversedOp = opDef.reversedOp;\n var revOpDef = getOperatorConfig(config, reversedOp, field) || {};\n var cardinality = defaultValue(opDef.cardinality, 1);\n\n // check op\n var isRev = false;\n var canFormatOp = opDef.sqlOp || opDef.sqlFormatOp;\n var canFormatRevOp = revOpDef.sqlOp || revOpDef.sqlFormatOp;\n if (!canFormatOp && !canFormatRevOp) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n if (!canFormatOp && canFormatRevOp) {\n isRev = true;\n var _ref = [reversedOp, operator];\n operator = _ref[0];\n reversedOp = _ref[1];\n var _ref2 = [revOpDef, opDef];\n opDef = _ref2[0];\n revOpDef = _ref2[1];\n }\n\n //format value\n var valueSrcs = [];\n var valueTypes = [];\n var fvalue = iValue.map(function (currentValue, ind) {\n var valueSrc = iValueSrc ? iValueSrc.get(ind) : null;\n var valueType = iValueType ? iValueType.get(ind) : null;\n var cValue = completeValue(currentValue, valueSrc, config);\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDefinition = omit(getFieldWidgetConfig(config, field, operator, widget, valueSrc), [\"factory\"]);\n var fv = formatValue(meta, config, cValue, valueSrc, valueType, fieldWidgetDefinition, fieldDefinition, operator, opDef, asyncListValues);\n if (fv !== undefined) {\n valueSrcs.push(valueSrc);\n valueTypes.push(valueType);\n }\n return fv;\n });\n var hasUndefinedValues = fvalue.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (hasUndefinedValues || fvalue.size < cardinality) return undefined;\n var formattedValue = cardinality == 1 ? fvalue.first() : fvalue;\n\n //find fn to format expr\n var fn = opDef.sqlFormatOp || buildFnToFormatOp(operator, opDef);\n if (!fn) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported\"));\n return undefined;\n }\n\n //format field\n var formattedField = fieldSrc == \"func\" ? formatFunc(meta, config, field) : formatField(meta, config, field);\n if (formattedField == undefined) return undefined;\n\n //format expr\n var args = [formattedField, operator, formattedValue, valueSrcs.length > 1 ? valueSrcs : valueSrcs[0], valueTypes.length > 1 ? valueTypes : valueTypes[0], omit(opDef, opDefKeysToOmit), operatorOptions, fieldDefinition];\n var ret;\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n if (isRev) {\n ret = config.settings.sqlFormatReverse(ret);\n }\n if (ret === undefined) {\n meta.errors.push(\"Operator \".concat(operator, \" is not supported for value source \").concat(valueSrcs.join(\", \")));\n return undefined;\n }\n return ret;\n};\nvar formatValue = function formatValue(meta, config, currentValue, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, operatorDef, asyncListValues) {\n if (currentValue === undefined) return undefined;\n var ret;\n if (valueSrc == \"field\") {\n ret = formatField(meta, config, currentValue);\n } else if (valueSrc == \"func\") {\n ret = formatFunc(meta, config, currentValue);\n } else {\n if (typeof fieldWidgetDef.sqlFormatValue === \"function\") {\n var fn = fieldWidgetDef.sqlFormatValue;\n var args = [currentValue, _objectSpread(_objectSpread({}, pick(fieldDef, [\"fieldSettings\", \"listValues\"])), {}, {\n asyncListValues: asyncListValues\n }),\n //useful options: valueFormat for date/time\n omit(fieldWidgetDef, widgetDefKeysToOmit)];\n if (operator) {\n args.push(operator);\n args.push(operatorDef);\n }\n if (valueSrc == \"field\") {\n var valFieldDefinition = getFieldConfig(config, currentValue) || {};\n args.push(valFieldDefinition);\n }\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n } else {\n if (Array.isArray(currentValue)) {\n ret = currentValue.map(function (v) {\n return SqlString.escape(v);\n });\n } else {\n ret = SqlString.escape(currentValue);\n }\n }\n }\n return ret;\n};\nvar formatField = function formatField(meta, config, field) {\n if (!field) return;\n var fieldSeparator = config.settings.fieldSeparator;\n var fieldDefinition = getFieldConfig(config, field) || {};\n var fieldParts = getFieldParts(field, config);\n var fieldPartsLabels = getFieldPathLabels(field, config);\n var fieldFullLabel = fieldPartsLabels ? fieldPartsLabels.join(fieldSeparator) : null;\n var formatFieldFn = config.settings.formatField;\n var fieldName = formatFieldName(field, config, meta, null, {\n useTableName: true\n });\n var formattedField = formatFieldFn(fieldName, fieldParts, fieldFullLabel, fieldDefinition, config);\n return formattedField;\n};\nvar formatFunc = function formatFunc(meta, config, currentValue) {\n var funcKey = currentValue.get(\"func\");\n var args = currentValue.get(\"args\");\n var funcConfig = getFuncConfig(config, funcKey);\n if (!funcConfig) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not defined in config\"));\n return undefined;\n }\n var funcParts = getFieldParts(funcKey, config);\n var funcLastKey = funcParts[funcParts.length - 1];\n var funcName = funcConfig.sqlFunc || funcLastKey;\n var formattedArgs = {};\n var gaps = [];\n var missingArgKeys = [];\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var fieldDef = getFieldConfig(config, argConfig);\n var _defaultValue = argConfig.defaultValue,\n isOptional = argConfig.isOptional;\n var defaultValueSrc = _defaultValue !== null && _defaultValue !== void 0 && _defaultValue.func ? \"func\" : \"value\";\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n var argAsyncListValues = argVal ? argVal.get(\"asyncListValues\") : undefined;\n var formattedArgVal = formatValue(meta, config, argValue, argValueSrc, argConfig.type, fieldDef, argConfig, null, null, argAsyncListValues);\n if (argValue != undefined && formattedArgVal === undefined) {\n if (argValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n var formattedDefaultVal = void 0;\n if (formattedArgVal === undefined && !isOptional && _defaultValue != undefined) {\n formattedDefaultVal = formatValue(meta, config, _defaultValue, defaultValueSrc, argConfig.type, fieldDef, argConfig, null, null, argAsyncListValues);\n if (formattedDefaultVal === undefined) {\n if (defaultValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format default value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n }\n var finalFormattedVal = formattedArgVal !== null && formattedArgVal !== void 0 ? formattedArgVal : formattedDefaultVal;\n if (finalFormattedVal !== undefined) {\n if (gaps.length) {\n var _iterator = _createForOfIteratorHelper(argKey),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var missedArgKey = _step.value;\n formattedArgs[missedArgKey] = undefined;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n gaps = [];\n }\n formattedArgs[argKey] = finalFormattedVal;\n } else {\n if (!isOptional) missingArgKeys.push(argKey);\n gaps.push(argKey);\n }\n }\n if (missingArgKeys.length) {\n //meta.errors.push(`Missing vals for args ${missingArgKeys.join(\", \")} for func ${funcKey}`);\n return undefined; // uncomplete\n }\n\n var ret;\n if (typeof funcConfig.sqlFormatFunc === \"function\") {\n var fn = funcConfig.sqlFormatFunc;\n var _args = [formattedArgs];\n ret = fn.call.apply(fn, [config.ctx].concat(_args));\n } else {\n var argsStr = Object.entries(formattedArgs).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n k = _ref4[0],\n v = _ref4[1];\n return v;\n }).join(\", \");\n ret = \"\".concat(funcName, \"(\").concat(argsStr, \")\");\n }\n return ret;\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { getFieldConfig, getOperatorConfig, getFieldWidgetConfig, getFuncConfig, getFieldParts, extendConfig } from \"../utils/configUtils\";\nimport { getFieldPathLabels, getWidgetForFieldOp, formatFieldName, completeValue } from \"../utils/ruleUtils\";\nimport omit from \"lodash/omit\";\nimport pick from \"lodash/pick\";\nimport { defaultValue, widgetDefKeysToOmit, opDefKeysToOmit } from \"../utils/stuff\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\nimport { List, Map } from \"immutable\";\nexport var queryString = function queryString(item, config) {\n var isForDisplay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n //meta is mutable\n var meta = {\n errors: []\n };\n var extendedConfig = extendConfig(config, undefined, false);\n var res = formatItem(item, extendedConfig, meta, isForDisplay, null);\n if (meta.errors.length) console.warn(\"Errors while exporting to string:\", meta.errors);\n return res;\n};\nvar formatItem = function formatItem(item, config, meta) {\n var isForDisplay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!item) return undefined;\n var type = item.get(\"type\");\n var children = item.get(\"children1\");\n if (type === \"group\" || type === \"rule_group\") {\n return formatGroup(item, config, meta, isForDisplay, parentField);\n } else if (type === \"rule\") {\n return formatRule(item, config, meta, isForDisplay, parentField);\n }\n return undefined;\n};\nvar formatGroup = function formatGroup(item, config, meta) {\n var isForDisplay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var type = item.get(\"type\");\n var properties = item.get(\"properties\") || new Map();\n var mode = properties.get(\"mode\");\n var children = item.get(\"children1\") || new List();\n var isRuleGroup = type === \"rule_group\";\n // TIP: don't cut group for mode == 'struct' and don't do aggr format (maybe later)\n var groupField = isRuleGroup && mode == \"array\" ? properties.get(\"field\") : null;\n var canHaveEmptyChildren = isRuleGroup && mode == \"array\";\n var not = properties.get(\"not\");\n var list = children.map(function (currentChild) {\n return formatItem(currentChild, config, meta, isForDisplay, groupField);\n }).filter(function (currentChild) {\n return typeof currentChild !== \"undefined\";\n });\n if (!canHaveEmptyChildren && !list.size) return undefined;\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var conjunctionDefinition = config.conjunctions[conjunction];\n var conjStr = list.size ? conjunctionDefinition.formatConj(list, conjunction, not, isForDisplay) : null;\n var ret;\n if (groupField) {\n var aggrArgs = formatRule(item, config, meta, isForDisplay, parentField, true);\n if (aggrArgs) {\n var _config$settings;\n var isRev = aggrArgs.pop();\n var args = [conjStr].concat(_toConsumableArray(aggrArgs));\n ret = (_config$settings = config.settings).formatAggr.apply(_config$settings, _toConsumableArray(args));\n if (isRev) {\n ret = config.settings.formatReverse(ret, null, null, null, null, isForDisplay);\n }\n }\n } else {\n ret = conjStr;\n }\n return ret;\n};\nvar formatItemValue = function formatItemValue(config, properties, meta, _operator, isForDisplay, parentField) {\n var field = properties.get(\"field\");\n var iValueSrc = properties.get(\"valueSrc\");\n var iValueType = properties.get(\"valueType\");\n var fieldDef = getFieldConfig(config, field) || {};\n var operator = _operator || properties.get(\"operator\");\n var operatorDef = getOperatorConfig(config, operator, field) || {};\n var cardinality = defaultValue(operatorDef.cardinality, 1);\n var iValue = properties.get(\"value\");\n var asyncListValues = properties.get(\"asyncListValues\");\n var valueSrcs = [];\n var valueTypes = [];\n var formattedValue;\n if (iValue != undefined) {\n var fvalue = iValue.map(function (currentValue, ind) {\n var valueSrc = iValueSrc ? iValueSrc.get(ind) : null;\n var valueType = iValueType ? iValueType.get(ind) : null;\n var cValue = completeValue(currentValue, valueSrc, config);\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDef = omit(getFieldWidgetConfig(config, field, operator, widget, valueSrc), [\"factory\"]);\n var fv = formatValue(config, meta, cValue, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, operatorDef, isForDisplay, parentField, asyncListValues);\n if (fv !== undefined) {\n valueSrcs.push(valueSrc);\n valueTypes.push(valueType);\n }\n return fv;\n });\n var hasUndefinedValues = fvalue.filter(function (v) {\n return v === undefined;\n }).size > 0;\n if (!(hasUndefinedValues || fvalue.size < cardinality)) {\n formattedValue = cardinality == 1 ? fvalue.first() : fvalue;\n }\n }\n return [formattedValue, valueSrcs.length > 1 ? valueSrcs : valueSrcs[0], valueTypes.length > 1 ? valueTypes : valueTypes[0]];\n};\nvar buildFnToFormatOp = function buildFnToFormatOp(operator, operatorDefinition) {\n var fop = operatorDefinition.labelForFormat || operator;\n var cardinality = defaultValue(operatorDefinition.cardinality, 1);\n var fn;\n if (cardinality == 0) {\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return \"\".concat(field, \" \").concat(fop);\n };\n } else if (cardinality == 1) {\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return \"\".concat(field, \" \").concat(fop, \" \").concat(values);\n };\n } else if (cardinality == 2) {\n // between\n fn = function fn(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n var valFrom = values.first();\n var valTo = values.get(1);\n return \"\".concat(field, \" \").concat(fop, \" \").concat(valFrom, \" AND \").concat(valTo);\n };\n }\n return fn;\n};\nvar formatRule = function formatRule(item, config, meta) {\n var isForDisplay = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var returnArgs = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n var properties = item.get(\"properties\") || new Map();\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var operator = properties.get(\"operator\");\n var operatorOptions = properties.get(\"operatorOptions\");\n if (field == null || operator == null) return undefined;\n var fieldDef = getFieldConfig(config, field) || {};\n var operatorDef = getOperatorConfig(config, operator, field) || {};\n var reversedOp = operatorDef.reversedOp;\n var revOperatorDef = getOperatorConfig(config, reversedOp, field) || {};\n\n //check op\n var isRev = false;\n var fn = operatorDef.formatOp;\n if (!fn && reversedOp) {\n fn = revOperatorDef.formatOp;\n if (fn) {\n isRev = true;\n var _ref = [reversedOp, operator];\n operator = _ref[0];\n reversedOp = _ref[1];\n var _ref2 = [revOperatorDef, operatorDef];\n operatorDef = _ref2[0];\n revOperatorDef = _ref2[1];\n }\n }\n\n //find fn to format expr\n if (!fn) fn = buildFnToFormatOp(operator, operatorDef);\n if (!fn) return undefined;\n\n //format field\n var formattedField = fieldSrc === \"func\" ? formatFunc(config, meta, field, isForDisplay, parentField) : formatField(config, meta, field, isForDisplay, parentField);\n if (formattedField == undefined) return undefined;\n\n //format value\n var _formatItemValue = formatItemValue(config, properties, meta, operator, isForDisplay, parentField),\n _formatItemValue2 = _slicedToArray(_formatItemValue, 3),\n formattedValue = _formatItemValue2[0],\n valueSrc = _formatItemValue2[1],\n valueType = _formatItemValue2[2];\n if (formattedValue === undefined) return undefined;\n var args = [formattedField, operator, formattedValue, valueSrc, valueType, omit(operatorDef, opDefKeysToOmit), operatorOptions, isForDisplay, fieldDef, isRev];\n if (returnArgs) {\n return args;\n } else {\n var _fn;\n //format expr\n var ret = (_fn = fn).call.apply(_fn, [config.ctx].concat(args));\n\n //rev\n if (isRev) {\n ret = config.settings.formatReverse(ret, operator, reversedOp, operatorDef, revOperatorDef, isForDisplay);\n }\n return ret;\n }\n};\nvar formatValue = function formatValue(config, meta, value, valueSrc, valueType, fieldWidgetDef, fieldDef, operator, opDef, isForDisplay) {\n var parentField = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : null;\n var asyncListValues = arguments.length > 11 ? arguments[11] : undefined;\n if (value === undefined) return undefined;\n var ret;\n if (valueSrc == \"field\") {\n ret = formatField(config, meta, value, isForDisplay, parentField);\n } else if (valueSrc == \"func\") {\n ret = formatFunc(config, meta, value, isForDisplay, parentField);\n } else {\n if (typeof fieldWidgetDef.formatValue === \"function\") {\n var fn = fieldWidgetDef.formatValue;\n var args = [value, _objectSpread(_objectSpread({}, pick(fieldDef, [\"fieldSettings\", \"listValues\"])), {}, {\n asyncListValues: asyncListValues\n }),\n //useful options: valueFormat for date/time\n omit(fieldWidgetDef, widgetDefKeysToOmit), isForDisplay];\n if (operator) {\n args.push(operator);\n args.push(opDef);\n }\n if (valueSrc == \"field\") {\n var valFieldDefinition = getFieldConfig(config, value) || {};\n args.push(valFieldDefinition);\n }\n ret = fn.call.apply(fn, [config.ctx].concat(args));\n } else {\n ret = value;\n }\n }\n return ret;\n};\nvar formatField = function formatField(config, meta, field, isForDisplay) {\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var cutParentField = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;\n var _config$settings2 = config.settings,\n fieldSeparator = _config$settings2.fieldSeparator,\n fieldSeparatorDisplay = _config$settings2.fieldSeparatorDisplay;\n var ret = null;\n if (field) {\n var fieldDefinition = getFieldConfig(config, field) || {};\n var fieldParts = getFieldParts(field, config);\n var fieldPartsLabels = getFieldPathLabels(field, config, cutParentField ? parentField : null);\n var fieldFullLabel = fieldPartsLabels ? fieldPartsLabels.join(fieldSeparatorDisplay) : null;\n var fieldLabel2 = fieldDefinition.label2 || fieldFullLabel;\n var formatFieldFn = config.settings.formatField;\n var fieldName = formatFieldName(field, config, meta, cutParentField ? parentField : null, {\n useTableName: true\n });\n ret = formatFieldFn(fieldName, fieldParts, fieldLabel2, fieldDefinition, config, isForDisplay);\n }\n return ret;\n};\nvar formatFunc = function formatFunc(config, meta, funcValue, isForDisplay) {\n var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var funcKey = funcValue.get(\"func\");\n var args = funcValue.get(\"args\");\n var funcConfig = getFuncConfig(config, funcKey);\n if (!funcConfig) {\n meta.errors.push(\"Func \".concat(funcKey, \" is not defined in config\"));\n return undefined;\n }\n var funcParts = getFieldParts(funcKey, config);\n var funcLastKey = funcParts[funcParts.length - 1];\n var funcName = isForDisplay && funcConfig.label || funcLastKey;\n var formattedArgs = {};\n var gaps = [];\n var missingArgKeys = [];\n var formattedArgsWithNames = {};\n for (var argKey in funcConfig.args) {\n var argConfig = funcConfig.args[argKey];\n var fieldDef = getFieldConfig(config, argConfig);\n var _defaultValue = argConfig.defaultValue,\n isOptional = argConfig.isOptional;\n var defaultValueSrc = _defaultValue !== null && _defaultValue !== void 0 && _defaultValue.func ? \"func\" : \"value\";\n var argName = isForDisplay && argConfig.label || argKey;\n var argVal = args ? args.get(argKey) : undefined;\n var argValue = argVal ? argVal.get(\"value\") : undefined;\n var argValueSrc = argVal ? argVal.get(\"valueSrc\") : undefined;\n var argAsyncListValues = argVal ? argVal.get(\"asyncListValues\") : undefined;\n var formattedArgVal = formatValue(config, meta, argValue, argValueSrc, argConfig.type, fieldDef, argConfig, null, null, isForDisplay, parentField, argAsyncListValues);\n if (argValue != undefined && formattedArgVal === undefined) {\n if (argValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n var formattedDefaultVal = void 0;\n if (formattedArgVal === undefined && !isOptional && _defaultValue != undefined) {\n formattedDefaultVal = formatValue(config, meta, _defaultValue, defaultValueSrc, argConfig.type, fieldDef, argConfig, null, null, isForDisplay, parentField, argAsyncListValues);\n if (formattedDefaultVal === undefined) {\n if (defaultValueSrc != \"func\")\n // don't triger error if args value is another uncomplete function\n meta.errors.push(\"Can't format default value of arg \".concat(argKey, \" for func \").concat(funcKey));\n return undefined;\n }\n }\n var finalFormattedVal = formattedArgVal !== null && formattedArgVal !== void 0 ? formattedArgVal : formattedDefaultVal;\n if (finalFormattedVal !== undefined) {\n if (gaps.length) {\n var _iterator = _createForOfIteratorHelper(argKey),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n missedArgKey = _step$value[0],\n missedArgName = _step$value[1];\n formattedArgs[missedArgKey] = undefined;\n //formattedArgsWithNames[missedArgName] = undefined;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n gaps = [];\n }\n formattedArgs[argKey] = finalFormattedVal;\n formattedArgsWithNames[argName] = finalFormattedVal;\n } else {\n if (!isOptional) missingArgKeys.push(argKey);\n gaps.push([argKey, argName]);\n }\n }\n if (missingArgKeys.length) {\n //meta.errors.push(`Missing vals for args ${missingArgKeys.join(\", \")} for func ${funcKey}`);\n return undefined; // uncomplete\n }\n\n var ret = null;\n if (typeof funcConfig.formatFunc === \"function\") {\n var fn = funcConfig.formatFunc;\n var _args = [formattedArgs, isForDisplay];\n ret = fn.call.apply(fn, [config.ctx].concat(_args));\n } else {\n var argsStr = Object.entries(isForDisplay ? formattedArgsWithNames : formattedArgs).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n k = _ref4[0],\n v = _ref4[1];\n return isForDisplay ? \"\".concat(k, \": \").concat(v) : \"\".concat(v);\n }).join(\", \");\n ret = \"\".concat(funcName, \"(\").concat(argsStr, \")\");\n }\n return ret;\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { getWidgetForFieldOp } from \"../utils/ruleUtils\";\nimport { defaultConjunction } from \"../utils/defaultUtils\";\n\n/**\n * Converts a string representation of top_left and bottom_right cords to\n * a ES geo_point required for query\n *\n * @param {string} geoPointString - comma separated string of lat/lon coods\n * @returns {{top_left: {lon: number, lat: number}, bottom_right: {lon: number, lat: number}}} - ES geoPoint formatted object\n * @private\n */\nfunction buildEsGeoPoint(geoPointString) {\n if (geoPointString == null) {\n return null;\n }\n var coordsNumberArray = geoPointString.split(\",\").map(Number);\n return {\n top_left: {\n lat: coordsNumberArray[0],\n lon: coordsNumberArray[1]\n },\n bottom_right: {\n lat: coordsNumberArray[2],\n lon: coordsNumberArray[3]\n }\n };\n}\n\n/**\n * Converts a dateTime string from the query builder to a ES range formatted object\n *\n * @param {string} dateTime - dateTime formatted string\n * @param {string} operator - query builder operator type, see constants.js and query builder docs\n * @returns {{lt: string}|{lte: string}|{gte: string}|{gte: string, lte: string}|undefined} - ES range query parameter\n *\n * @private\n */\nfunction buildEsRangeParameters(value, operator) {\n // -- if value is greater than 1 then we assume this is a between operator : BUG this is wrong, a selectable list can have multiple values\n if (value.length > 1) {\n return {\n gte: \"\".concat(value[0]),\n lte: \"\".concat(value[1])\n };\n } // -- if value is only one we assume this is a date time query for a specific day\n\n var dateTime = value[0]; //TODO: Rethink about this part, what if someone adds a new type of opperator\n\n //todo: move this logic into config\n switch (operator) {\n case \"on_date\": //todo: not used\n case \"not_on_date\":\n case \"equal\":\n case \"select_equals\":\n case \"not_equal\":\n return {\n gte: \"\".concat(dateTime, \"||/d\"),\n lte: \"\".concat(dateTime, \"||+1d\")\n };\n case \"less_or_equal\":\n return {\n lte: \"\".concat(dateTime)\n };\n case \"greater_or_equal\":\n return {\n gte: \"\".concat(dateTime)\n };\n case \"less\":\n return {\n lt: \"\".concat(dateTime)\n };\n case \"greater\":\n return {\n gt: \"\".concat(dateTime)\n };\n default:\n return undefined;\n }\n}\n\n/**\n * Builds the DSL parameters for a Wildcard query\n *\n * @param {string} value - The match value\n * @returns {{value: string}} - The value = value parameter surrounded with * on each end\n * @private\n */\nfunction buildEsWildcardParameters(value) {\n return {\n value: \"*\" + value + \"*\"\n };\n}\n\n/**\n * Takes the match type string from awesome query builder like 'greater_or_equal' and\n * returns the ES occurrence required for bool queries\n *\n * @param {string} combinator - query group type or rule condition\n * @param {bool} not\n * @returns {string} - ES occurrence type. See constants.js\n * @private\n */\nfunction determineOccurrence(combinator, not) {\n //todo: move into config, like mongoConj\n switch (combinator) {\n case \"AND\":\n return not ? \"must_not\" : \"must\";\n // -- AND\n\n case \"OR\":\n return not ? \"should_not\" : \"should\";\n // -- OR\n\n case \"NOT\":\n return not ? \"must\" : \"must_not\";\n // -- NOT AND\n\n default:\n return undefined;\n }\n}\n\n/**\n * Determines what field to query off of given the operator type\n *\n * @param {string} fieldDataType - The type of data\n * @param {string} fullFieldName - A '.' separated string containing the property lineage (including self)\n * @param {string} queryType - The query type\n * @returns {string|*} - will be either the fullFieldName or fullFieldName.keyword\n * @private\n */\n//todo: not used\n// function determineQueryField(fieldDataType, fullFieldName, queryType) {\n// if (fieldDataType === \"boolean\") {\n// return fullFieldName;\n// }\n\n// switch (queryType) {\n// case \"term\":\n// case \"wildcard\":\n// return \"\".concat(fullFieldName, \".keyword\");\n\n// case \"geo_bounding_box\":\n// case \"range\":\n// case \"match\":\n// return fullFieldName;\n\n// default:\n// console.error(\"Can't determine query field for query type \".concat(queryType));\n// return null;\n// }\n// }\n\nfunction buildRegexpParameters(value) {\n return {\n value: value\n };\n}\nfunction determineField(fieldName, config) {\n //todo: ElasticSearchTextField - not used\n //return config.fields[fieldName].ElasticSearchTextField || fieldName;\n return fieldName;\n}\nfunction buildParameters(queryType, value, operator, fieldName, config, syntax) {\n var textField = determineField(fieldName, config);\n switch (queryType) {\n case \"filter\":\n //todo: elasticSearchScript - not used\n return {\n script: config.operators[operator].elasticSearchScript(fieldName, value)\n };\n case \"exists\":\n return {\n field: fieldName\n };\n case \"match\":\n return _defineProperty({}, textField, value[0]);\n case \"term\":\n return syntax === ES_7_SYNTAX ? _defineProperty({}, fieldName, {\n value: value[0]\n }) : _defineProperty({}, fieldName, value[0]);\n\n //todo: not used\n // need to add geo type into RAQB or remove this code\n case \"geo_bounding_box\":\n return _defineProperty({}, fieldName, buildEsGeoPoint(value[0]));\n case \"range\":\n return _defineProperty({}, fieldName, buildEsRangeParameters(value, operator));\n case \"wildcard\":\n return _defineProperty({}, fieldName, buildEsWildcardParameters(value[0]));\n case \"regexp\":\n return _defineProperty({}, fieldName, buildRegexpParameters(value[0]));\n default:\n return undefined;\n }\n}\n/**\n * Handles the building of the group portion of the DSL\n *\n * @param {string} fieldName - The name of the field you are building a rule for\n * @param {string} fieldDataType - The type of data this field holds\n * @param {string} value - The value of this rule\n * @param {string} operator - The condition on how the value is matched\n * @param {string} syntax - The version of ElasticSearch syntax to generate\n * @returns {object} - The ES rule\n * @private\n */\nfunction buildEsRule(fieldName, value, operator, config, valueSrc, syntax) {\n if (!fieldName || !operator || value == undefined) return undefined; // rule is not fully entered\n var op = operator;\n var opConfig = config.operators[op];\n if (!opConfig) return undefined; // unknown operator\n var _opConfig = opConfig,\n elasticSearchQueryType = _opConfig.elasticSearchQueryType;\n\n // not\n var not = false;\n if (!elasticSearchQueryType && opConfig.reversedOp) {\n not = true;\n op = opConfig.reversedOp;\n opConfig = config.operators[op];\n var _opConfig2 = opConfig;\n elasticSearchQueryType = _opConfig2.elasticSearchQueryType;\n }\n\n // handle if value 0 has multiple values like a select in a array\n var widget = getWidgetForFieldOp(config, fieldName, op, valueSrc);\n var widgetConfig = config.widgets[widget];\n if (!widgetConfig) return undefined; // unknown widget\n var elasticSearchFormatValue = widgetConfig.elasticSearchFormatValue;\n\n /** In most cases the queryType will be static however in some casese (like between) the query type will change\n * based on the data type. i.e. a between time will be different than between number, date, letters etc... */\n var queryType;\n if (typeof elasticSearchQueryType === \"function\") {\n queryType = elasticSearchQueryType(widget);\n } else {\n queryType = elasticSearchQueryType;\n }\n if (!queryType) {\n // Not supported\n return undefined;\n }\n\n /** If a widget has a rule on how to format that data then use that otherwise use default way of determineing search parameters\n * */\n var parameters;\n if (typeof elasticSearchFormatValue === \"function\") {\n parameters = elasticSearchFormatValue(queryType, value, op, fieldName, config);\n } else {\n parameters = buildParameters(queryType, value, op, fieldName, config, syntax);\n }\n if (not) {\n return {\n bool: {\n must_not: _defineProperty({}, queryType, _objectSpread({}, parameters))\n }\n };\n } else {\n return _defineProperty({}, queryType, _objectSpread({}, parameters));\n }\n}\n\n/**\n * Handles the building of the group portion of the DSL\n *\n * @param {object} children - The contents of the group\n * @param {string} conjunction - The way the contents of the group are joined together i.e. AND OR\n * @param {bool} not\n * @param {Function} recursiveFxn - The recursive fxn to build the contents of the groups children\n * @private\n * @returns {object} - The ES group\n */\nfunction buildEsGroup(children, conjunction, not, recursiveFxn, config, syntax) {\n if (!children || !children.size) return undefined;\n var childrenArray = children.valueSeq().toArray();\n var occurrence = determineOccurrence(conjunction, not);\n var result = childrenArray.map(function (c) {\n return recursiveFxn(c, config, syntax);\n }).filter(function (v) {\n return v !== undefined;\n });\n if (!result.length) return undefined;\n var resultFlat = result.flat(Infinity);\n return {\n bool: _defineProperty({}, occurrence, resultFlat)\n };\n}\nexport var ES_7_SYNTAX = \"ES_7_SYNTAX\";\nexport var ES_6_SYNTAX = \"ES_6_SYNTAX\";\nexport function elasticSearchFormat(tree, config) {\n var syntax = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ES_6_SYNTAX;\n // -- format the es dsl here\n if (!tree) return undefined;\n var type = tree.get(\"type\");\n var properties = tree.get(\"properties\") || new Map();\n if (type === \"rule\" && properties.get(\"field\")) {\n var _properties$get, _properties$get2;\n // -- field is null when a new blank rule is added\n var operator = properties.get(\"operator\");\n var field = properties.get(\"field\");\n var fieldSrc = properties.get(\"fieldSrc\");\n var value = properties.get(\"value\").toJS();\n var _valueType = (_properties$get = properties.get(\"valueType\")) === null || _properties$get === void 0 ? void 0 : _properties$get.get(0);\n var valueSrc = (_properties$get2 = properties.get(\"valueSrc\")) === null || _properties$get2 === void 0 ? void 0 : _properties$get2.get(0);\n if (valueSrc === \"func\" || fieldSrc == \"func\") {\n // -- elastic search doesn't support functions (that is post processing)\n return;\n }\n if (value && Array.isArray(value[0])) {\n //TODO : Handle case where the value has multiple values such as in the case of a list\n return value[0].map(function (val) {\n return buildEsRule(field, [val], operator, config, valueSrc, syntax);\n });\n } else {\n return buildEsRule(field, value, operator, config, valueSrc, syntax);\n }\n }\n if (type === \"group\" || type === \"rule_group\") {\n var not = properties.get(\"not\");\n var conjunction = properties.get(\"conjunction\");\n if (!conjunction) conjunction = defaultConjunction(config);\n var children = tree.get(\"children1\");\n return buildEsGroup(children, conjunction, not, elasticSearchFormat, config, syntax);\n }\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nvar _excluded = [\"title\", \"value\", \"disabled\", \"groupTitle\", \"grouplabel\", \"renderTitle\", \"children\", \"label\", \"isCustom\", \"isHidden\"];\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { sleep } from \"./stuff\";\nimport { listValuesToArray, getListValue, makeCustomListValue } from \"./listValues\";\n\n// simple polyfill for Next\nvar findLastIndex = function findLastIndex(arr, fn) {\n if (arr.findLastIndex) {\n return arr.findLastIndex(fn);\n } else {\n var ind = _toConsumableArray(arr).reverse().findIndex(fn);\n return ind == -1 ? -1 : arr.length - 1 - ind;\n }\n};\nexport var simulateAsyncFetch = function simulateAsyncFetch(all) {\n var cPageSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var delay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n return /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(search, offset, meta) {\n var pageSize, filtered, pages, currentOffset, currentPage, values, newOffset, hasMore;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n pageSize = (meta === null || meta === void 0 ? void 0 : meta.pageSize) != undefined ? meta.pageSize : cPageSize;\n filtered = listValuesToArray(all).filter(function (_ref2) {\n var title = _ref2.title,\n value = _ref2.value;\n return search == null ? true : title.toUpperCase().indexOf(search.toUpperCase()) != -1 || \"\".concat(value).toUpperCase().indexOf(search.toUpperCase()) != -1;\n });\n pages = pageSize ? Math.ceil(filtered.length / pageSize) : 0;\n currentOffset = offset || 0;\n currentPage = pageSize ? Math.ceil(currentOffset / pageSize) : null;\n values = pageSize ? filtered.slice(currentOffset, currentOffset + pageSize) : filtered;\n newOffset = pageSize ? currentOffset + values.length : null;\n hasMore = pageSize ? newOffset < filtered.length : false;\n if (!delay) {\n _context.next = 11;\n break;\n }\n _context.next = 11;\n return sleep(delay);\n case 11:\n return _context.abrupt(\"return\", {\n values: values,\n hasMore: hasMore\n });\n case 12:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n }();\n};\nexport var mergeListValues = function mergeListValues(values, newValues) {\n var toStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var hideNewValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!newValues) return values;\n var old = values || [];\n var newFiltered = newValues.filter(function (v) {\n return old.find(function (av) {\n return \"\" + av.value == \"\" + v.value;\n }) == undefined;\n }).map(function (v) {\n return hideNewValues ? _objectSpread(_objectSpread({}, v), {}, {\n isHidden: true\n }) : v;\n });\n var merged = toStart ? [].concat(_toConsumableArray(newFiltered), _toConsumableArray(old)) : [].concat(_toConsumableArray(old), _toConsumableArray(newFiltered));\n return merged;\n};\nexport var optionToListValue = function optionToListValue(val, listValues, allowCustomValues) {\n var _val$value;\n var v = val == null || val == \"\" ? undefined : (_val$value = val === null || val === void 0 ? void 0 : val.value) !== null && _val$value !== void 0 ? _val$value : val;\n var item = getListValue(v, listValues);\n var customItem = allowCustomValues && !item ? makeCustomListValue(v) : undefined;\n var listValue = item || customItem;\n var lvs = listValue ? [listValue] : undefined; //not allow []\n return [v, lvs];\n};\nexport var optionsToListValues = function optionsToListValues(vals, listValues, allowCustomValues) {\n var newSelectedListValues = vals.map(function (val, _i) {\n var _val$value2;\n var v = val == null || val == \"\" ? undefined : (_val$value2 = val === null || val === void 0 ? void 0 : val.value) !== null && _val$value2 !== void 0 ? _val$value2 : val;\n var item = getListValue(v, listValues);\n var customItem = allowCustomValues && !item ? makeCustomListValue(v) : undefined;\n var listValue = item || customItem;\n return listValue;\n }).filter(function (o) {\n return o != undefined;\n });\n var newSelectedValues = newSelectedListValues.map(function (o) {\n var _o$value;\n return (_o$value = o === null || o === void 0 ? void 0 : o.value) !== null && _o$value !== void 0 ? _o$value : o;\n });\n if (!newSelectedValues.length) newSelectedValues = undefined; //not allow []\n return [newSelectedValues, newSelectedListValues];\n};\nexport var listValueToOption = function listValueToOption(lv) {\n if (lv == null) return null;\n var title = lv.title,\n value = lv.value,\n disabled = lv.disabled,\n groupTitle = lv.groupTitle,\n grouplabel = lv.grouplabel,\n renderTitle = lv.renderTitle,\n children = lv.children,\n label = lv.label,\n isCustom = lv.isCustom,\n isHidden = lv.isHidden,\n rest = _objectWithoutProperties(lv, _excluded);\n var option = {\n value: value,\n title: title || label || children // fix issue #930 for AntD\n };\n\n if (disabled) option.disabled = disabled;\n if (isCustom) option.isCustom = isCustom;\n if (isHidden) option.isHidden = isHidden;\n // group\n if (groupTitle || grouplabel) option.groupTitle = groupTitle || grouplabel;\n // used only for MUI field autocomplete (if matchesType, render as bold)\n if (renderTitle) option.renderTitle = renderTitle;\n option = _objectSpread(_objectSpread({}, option), rest);\n return option;\n};\nexport var fixListValuesGroupOrder = function fixListValuesGroupOrder(listValues) {\n var newValues = [];\n var groupTitles = [];\n var _iterator = _createForOfIteratorHelper(listValues),\n _step;\n try {\n var _loop = function _loop() {\n var lv = _step.value;\n var i = findLastIndex(newValues, function (lv1) {\n var _lv1$groupTitle, _lv$groupTitle;\n return ((_lv1$groupTitle = lv1.groupTitle) !== null && _lv1$groupTitle !== void 0 ? _lv1$groupTitle : \"\") == ((_lv$groupTitle = lv.groupTitle) !== null && _lv$groupTitle !== void 0 ? _lv$groupTitle : \"\");\n });\n if (lv.groupTitle != undefined && !groupTitles.includes(lv.groupTitle)) {\n groupTitles.push(lv.groupTitle);\n if (groupTitles.length === 1) {\n // fix empty groupTitles\n newValues = newValues.map(function (nv) {\n return _objectSpread(_objectSpread({}, nv), {}, {\n groupTitle: \"\"\n });\n });\n }\n }\n if (lv.groupTitle == undefined && groupTitles.length) {\n // fix empty groupTitle\n lv = _objectSpread(_objectSpread({}, lv), {}, {\n groupTitle: \"\"\n });\n }\n if (i != -1) {\n newValues.splice(i + 1, 0, lv);\n } else {\n newValues.push(lv);\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return newValues;\n};\nexport { getListValue };","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\n//import { customJsonLogicOperations } from \"../utils/jsonLogic\";\n\n// Tip: search for `customJsonLogicOperations` in codebase to see custom JL funcs we use in `jsonLogicCustomOps`\n\nvar NOW = {\n label: \"Now\",\n returnType: \"datetime\",\n jsonLogic: \"now\",\n jsonLogicCustomOps: {\n now: {}\n },\n //spelFunc: \"new java.util.Date()\",\n spelFunc: \"T(java.time.LocalDateTime).now()\",\n sqlFormatFunc: function sqlFormatFunc() {\n return \"NOW()\";\n },\n mongoFormatFunc: function mongoFormatFunc() {\n return new Date();\n },\n formatFunc: function formatFunc() {\n return \"NOW\";\n }\n};\nvar RELATIVE_DATETIME = {\n label: \"Relative\",\n returnType: \"datetime\",\n renderBrackets: [\"\", \"\"],\n renderSeps: [\"\", \"\", \"\"],\n spelFormatFunc: function spelFormatFunc(_ref) {\n var date = _ref.date,\n op = _ref.op,\n val = _ref.val,\n dim = _ref.dim;\n var dimPlural = dim.charAt(0).toUpperCase() + dim.slice(1) + \"s\";\n var method = op + dimPlural;\n return \"\".concat(date, \".\").concat(method, \"(\").concat(val, \")\");\n },\n spelImport: function spelImport(spel) {\n var _spel$methodName;\n var date, op, val, dim;\n var matchRes = (_spel$methodName = spel.methodName) === null || _spel$methodName === void 0 ? void 0 : _spel$methodName.match(/^(minus|plus)(\\w+)s$/);\n if (matchRes) {\n dim = matchRes[2].toLowerCase();\n op = matchRes[1];\n if ([\"minus\", \"plus\"].includes(op)) {\n if ([\"day\", \"week\", \"month\", \"year\"].includes(dim)) {\n op = {\n type: \"string\",\n val: op\n };\n dim = {\n type: \"string\",\n val: dim\n };\n val = spel.args[0];\n date = spel.obj;\n return {\n date: date,\n op: op,\n val: val,\n dim: dim\n };\n }\n }\n }\n },\n jsonLogic: function jsonLogic(_ref2) {\n var date = _ref2.date,\n op = _ref2.op,\n val = _ref2.val,\n dim = _ref2.dim;\n return {\n \"date_add\": [date, val * (op == \"minus\" ? -1 : +1), dim]\n };\n },\n jsonLogicImport: function jsonLogicImport(v) {\n var date = v[\"date_add\"][0];\n var val = Math.abs(v[\"date_add\"][1]);\n var op = v[\"date_add\"][1] >= 0 ? \"plus\" : \"minus\";\n var dim = v[\"date_add\"][2];\n return [date, op, val, dim];\n },\n jsonLogicCustomOps: {\n date_add: {}\n },\n // MySQL\n //todo: other SQL dialects?\n sqlFormatFunc: function sqlFormatFunc(_ref3) {\n var date = _ref3.date,\n op = _ref3.op,\n val = _ref3.val,\n dim = _ref3.dim;\n return \"DATE_ADD(\".concat(date, \", INTERVAL \").concat(parseInt(val) * (op == \"minus\" ? -1 : +1), \" \").concat(dim.replace(/^'|'$/g, \"\"), \")\");\n },\n mongoFormatFunc: null,\n //todo: support?\n formatFunc: function formatFunc(_ref4) {\n var date = _ref4.date,\n op = _ref4.op,\n val = _ref4.val,\n dim = _ref4.dim;\n return !val ? date : \"\".concat(date, \" \").concat(op == \"minus\" ? \"-\" : \"+\", \" \").concat(val, \" \").concat(dim);\n },\n args: {\n date: {\n label: \"Date\",\n type: \"datetime\",\n defaultValue: {\n func: \"NOW\",\n args: []\n },\n valueSources: [\"func\", \"field\", \"value\"],\n spelEscapeForFormat: true\n },\n op: {\n label: \"Op\",\n type: \"select\",\n defaultValue: \"plus\",\n valueSources: [\"value\"],\n mainWidgetProps: {\n customProps: {\n showSearch: false\n }\n },\n fieldSettings: {\n listValues: {\n plus: \"+\",\n minus: \"-\"\n }\n },\n spelEscapeForFormat: false\n },\n val: {\n label: \"Value\",\n type: \"number\",\n fieldSettings: {\n min: 0\n },\n defaultValue: 0,\n valueSources: [\"value\"],\n spelEscapeForFormat: false\n },\n dim: {\n label: \"Dimension\",\n type: \"select\",\n defaultValue: \"day\",\n valueSources: [\"value\"],\n mainWidgetProps: {\n customProps: {\n showSearch: false\n }\n },\n fieldSettings: {\n listValues: {\n day: \"day\",\n week: \"week\",\n month: \"month\",\n year: \"year\"\n }\n },\n spelEscapeForFormat: false\n }\n }\n};\nvar LOWER = {\n label: \"Lowercase\",\n mongoFunc: \"$toLower\",\n jsonLogic: \"toLowerCase\",\n spelFunc: \"${str}.toLowerCase()\",\n //jsonLogicIsMethod: true, // Removed in JsonLogic 2.x due to Prototype Pollution\n jsonLogicCustomOps: {\n toLowerCase: {}\n },\n returnType: \"text\",\n args: {\n str: {\n label: \"String\",\n type: \"text\",\n valueSources: [\"value\", \"field\", \"func\"]\n }\n }\n};\nvar UPPER = {\n label: \"Uppercase\",\n mongoFunc: \"$toUpper\",\n jsonLogic: \"toUpperCase\",\n spelFunc: \"${str}.toUpperCase()\",\n //jsonLogicIsMethod: true, // Removed in JsonLogic 2.x due to Prototype Pollution\n jsonLogicCustomOps: {\n toUpperCase: {}\n },\n returnType: \"text\",\n args: {\n str: {\n label: \"String\",\n type: \"text\",\n valueSources: [\"value\", \"field\", \"func\"]\n }\n }\n};\nvar LINEAR_REGRESSION = {\n label: \"Linear regression\",\n returnType: \"number\",\n formatFunc: function formatFunc(_ref5, _) {\n var coef = _ref5.coef,\n bias = _ref5.bias,\n val = _ref5.val;\n return \"(\".concat(coef, \" * \").concat(val, \" + \").concat(bias, \")\");\n },\n sqlFormatFunc: function sqlFormatFunc(_ref6) {\n var coef = _ref6.coef,\n bias = _ref6.bias,\n val = _ref6.val;\n return \"(\".concat(coef, \" * \").concat(val, \" + \").concat(bias, \")\");\n },\n spelFormatFunc: function spelFormatFunc(_ref7) {\n var coef = _ref7.coef,\n bias = _ref7.bias,\n val = _ref7.val;\n return \"(\".concat(coef, \" * \").concat(val, \" + \").concat(bias, \")\");\n },\n spelImport: function spelImport(spel) {\n var coef, val, bias, a;\n if (spel.type === \"op-plus\") {\n var _spel$children = _slicedToArray(spel.children, 2);\n a = _spel$children[0];\n bias = _spel$children[1];\n if (a.type === \"op-multiply\") {\n var _a$children = _slicedToArray(a.children, 2);\n coef = _a$children[0];\n val = _a$children[1];\n return {\n coef: coef,\n val: val,\n bias: bias\n };\n }\n }\n },\n mongoFormatFunc: function mongoFormatFunc(_ref8) {\n var coef = _ref8.coef,\n bias = _ref8.bias,\n val = _ref8.val;\n return {\n \"$sum\": [{\n \"$multiply\": [coef, val]\n }, bias]\n };\n },\n jsonLogic: function jsonLogic(_ref9) {\n var coef = _ref9.coef,\n bias = _ref9.bias,\n val = _ref9.val;\n return {\n \"+\": [{\n \"*\": [coef, val]\n }, bias]\n };\n },\n jsonLogicImport: function jsonLogicImport(v) {\n var coef = v[\"+\"][0][\"*\"][0];\n var val = v[\"+\"][0][\"*\"][1];\n var bias = v[\"+\"][1];\n return [coef, val, bias];\n },\n renderBrackets: [\"\", \"\"],\n renderSeps: [\" * \", \" + \"],\n args: {\n coef: {\n label: \"Coef\",\n type: \"number\",\n defaultValue: 1,\n valueSources: [\"value\"]\n },\n val: {\n label: \"Value\",\n type: \"number\",\n valueSources: [\"value\", \"field\"]\n },\n bias: {\n label: \"Bias\",\n type: \"number\",\n defaultValue: 0,\n valueSources: [\"value\"]\n }\n }\n};\nexport { LOWER, UPPER, NOW, RELATIVE_DATETIME, LINEAR_REGRESSION };","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport moment from \"moment\";\nimport { SqlString, sqlEmptyValue, mongoEmptyValue, spelEscape, spelFixList, stringifyForDisplay } from \"../utils/export\";\nimport { escapeRegExp } from \"../utils/stuff\";\nimport { getTitleInListValues } from \"../utils/listValues\";\n\n// helpers for mongo format\nexport var mongoFormatOp1 = function mongoFormatOp1(mop, mc, not, field, _op, value, useExpr, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var $field = typeof field == \"string\" && !field.startsWith(\"$\") ? \"$\" + field : field;\n var mv = mc(value, fieldDef);\n if (mv === undefined) return undefined;\n if (not) {\n if (!useExpr && (!mop || mop == \"$eq\")) return _defineProperty({}, field, {\n \"$ne\": mv\n }); // short form\n return !useExpr ? _defineProperty({}, field, {\n \"$not\": _defineProperty({}, mop, mv)\n }) : {\n \"$not\": _defineProperty({}, mop, [$field, mv])\n };\n } else {\n if (!useExpr && (!mop || mop == \"$eq\")) return _defineProperty({}, field, mv); // short form\n return !useExpr ? _defineProperty({}, field, _defineProperty({}, mop, mv)) : _defineProperty({}, mop, [$field, mv]);\n }\n};\nexport var mongoFormatOp2 = function mongoFormatOp2(mops, not, field, _op, values, useExpr, valueSrcs, valueTypes, opDef, operatorOptions, fieldDef) {\n var $field = typeof field == \"string\" && !field.startsWith(\"$\") ? \"$\" + field : field;\n if (not) {\n var _$not3;\n return !useExpr ? _defineProperty({}, field, {\n \"$not\": (_$not3 = {}, _defineProperty(_$not3, mops[0], values[0]), _defineProperty(_$not3, mops[1], values[1]), _$not3)\n }) : {\n \"$not\": {\n \"$and\": [_defineProperty({}, mops[0], [$field, values[0]]), _defineProperty({}, mops[1], [$field, values[1]])]\n }\n };\n } else {\n var _field2;\n return !useExpr ? _defineProperty({}, field, (_field2 = {}, _defineProperty(_field2, mops[0], values[0]), _defineProperty(_field2, mops[1], values[1]), _field2)) : {\n \"$and\": [_defineProperty({}, mops[0], [$field, values[0]]), _defineProperty({}, mops[1], [$field, values[1]])]\n };\n }\n};\nvar ctx = {\n utils: {\n SqlString: SqlString,\n moment: moment,\n mongoFormatOp1: mongoFormatOp1,\n mongoFormatOp2: mongoFormatOp2,\n mongoEmptyValue: mongoEmptyValue,\n escapeRegExp: escapeRegExp,\n sqlEmptyValue: sqlEmptyValue,\n stringifyForDisplay: stringifyForDisplay,\n getTitleInListValues: getTitleInListValues,\n spelEscape: spelEscape,\n spelFixList: spelFixList\n }\n};\nexport default ctx;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { settings as defaultSettings } from \"./default\";\nimport ctx from \"./ctx\";\n\n//---------------------------- conjunctions\n\nvar conjunctions = {\n AND: {\n label: \"And\",\n mongoConj: \"$and\",\n jsonLogicConj: \"and\",\n sqlConj: \"AND\",\n spelConj: \"and\",\n spelConjs: [\"and\", \"&&\"],\n reversedConj: \"OR\",\n formatConj: function formatConj(children, conj, not, isForDisplay) {\n return children.size > 1 ? (not ? \"NOT \" : \"\") + \"(\" + children.join(\" \" + (isForDisplay ? \"AND\" : \"&&\") + \" \") + \")\" : (not ? \"NOT (\" : \"\") + children.first() + (not ? \")\" : \"\");\n },\n sqlFormatConj: function sqlFormatConj(children, conj, not) {\n return children.size > 1 ? (not ? \"NOT \" : \"\") + \"(\" + children.join(\" \" + \"AND\" + \" \") + \")\" : (not ? \"NOT (\" : \"\") + children.first() + (not ? \")\" : \"\");\n },\n spelFormatConj: function spelFormatConj(children, conj, not, omitBrackets) {\n if (not) omitBrackets = false;\n return children.size > 1 ? (not ? \"!\" : \"\") + (omitBrackets ? \"\" : \"(\") + children.join(\" \" + \"&&\" + \" \") + (omitBrackets ? \"\" : \")\") : (not ? \"!(\" : \"\") + children.first() + (not ? \")\" : \"\");\n }\n },\n OR: {\n label: \"Or\",\n mongoConj: \"$or\",\n jsonLogicConj: \"or\",\n sqlConj: \"OR\",\n spelConj: \"or\",\n spelConjs: [\"or\", \"||\"],\n reversedConj: \"AND\",\n formatConj: function formatConj(children, conj, not, isForDisplay) {\n return children.size > 1 ? (not ? \"NOT \" : \"\") + \"(\" + children.join(\" \" + (isForDisplay ? \"OR\" : \"||\") + \" \") + \")\" : (not ? \"NOT (\" : \"\") + children.first() + (not ? \")\" : \"\");\n },\n sqlFormatConj: function sqlFormatConj(children, conj, not) {\n return children.size > 1 ? (not ? \"NOT \" : \"\") + \"(\" + children.join(\" \" + \"OR\" + \" \") + \")\" : (not ? \"NOT (\" : \"\") + children.first() + (not ? \")\" : \"\");\n },\n spelFormatConj: function spelFormatConj(children, conj, not, omitBrackets) {\n if (not) omitBrackets = false;\n return children.size > 1 ? (not ? \"!\" : \"\") + (omitBrackets ? \"\" : \"(\") + children.join(\" \" + \"||\" + \" \") + (omitBrackets ? \"\" : \")\") : (not ? \"!(\" : \"\") + children.first() + (not ? \")\" : \"\");\n }\n }\n};\n\n//---------------------------- operators\n\nvar operators = {\n equal: {\n label: \"==\",\n labelForFormat: \"==\",\n sqlOp: \"=\",\n spelOp: \"==\",\n spelOps: [\"==\", \"eq\"],\n reversedOp: \"not_equal\",\n formatOp: function formatOp(field, op, value, valueSrcs, valueTypes, opDef, operatorOptions, isForDisplay, fieldDef) {\n var opStr = isForDisplay ? \"=\" : opDef.label;\n if (valueTypes == \"boolean\" && isForDisplay) return value == \"No\" ? \"NOT \".concat(field) : \"\".concat(field);else return \"\".concat(field, \" \").concat(opStr, \" \").concat(value);\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_this$utils = this.utils).mongoFormatOp1.apply(_this$utils, [\"$eq\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \"==\",\n elasticSearchQueryType: \"term\"\n },\n not_equal: {\n isNotOp: true,\n label: \"!=\",\n labelForFormat: \"!=\",\n sqlOp: \"<>\",\n spelOp: \"!=\",\n spelOps: [\"!=\", \"ne\"],\n reversedOp: \"equal\",\n formatOp: function formatOp(field, op, value, valueSrcs, valueTypes, opDef, operatorOptions, isForDisplay, fieldDef) {\n if (valueTypes == \"boolean\" && isForDisplay) return value == \"No\" ? \"\".concat(field) : \"NOT \".concat(field);else return \"\".concat(field, \" \").concat(opDef.label, \" \").concat(value);\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils2;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return (_this$utils2 = this.utils).mongoFormatOp1.apply(_this$utils2, [\"$ne\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \"!=\"\n },\n less: {\n label: \"<\",\n labelForFormat: \"<\",\n sqlOp: \"<\",\n spelOp: \"<\",\n spelOps: [\"<\", \"lt\"],\n reversedOp: \"greater_or_equal\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils3;\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return (_this$utils3 = this.utils).mongoFormatOp1.apply(_this$utils3, [\"$lt\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \"<\",\n elasticSearchQueryType: \"range\"\n },\n less_or_equal: {\n label: \"<=\",\n labelForFormat: \"<=\",\n sqlOp: \"<=\",\n spelOp: \"<=\",\n spelOps: [\"<=\", \"le\"],\n reversedOp: \"greater\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils4;\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return (_this$utils4 = this.utils).mongoFormatOp1.apply(_this$utils4, [\"$lte\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \"<=\",\n elasticSearchQueryType: \"range\"\n },\n greater: {\n label: \">\",\n labelForFormat: \">\",\n sqlOp: \">\",\n spelOp: \">\",\n spelOps: [\">\", \"gt\"],\n reversedOp: \"less_or_equal\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils5;\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return (_this$utils5 = this.utils).mongoFormatOp1.apply(_this$utils5, [\"$gt\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \">\",\n elasticSearchQueryType: \"range\"\n },\n greater_or_equal: {\n label: \">=\",\n labelForFormat: \">=\",\n sqlOp: \">=\",\n spelOp: \">=\",\n spelOps: [\">=\", \"ge\"],\n reversedOp: \"less\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils6;\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n return (_this$utils6 = this.utils).mongoFormatOp1.apply(_this$utils6, [\"$gte\", function (v) {\n return v;\n }, false].concat(args));\n },\n jsonLogic: \">=\",\n elasticSearchQueryType: \"range\"\n },\n like: {\n label: \"Contains\",\n labelForFormat: \"Contains\",\n reversedOp: \"not_like\",\n sqlOp: \"LIKE\",\n spelOp: \"${0}.contains(${1})\",\n valueTypes: [\"text\"],\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils7,\n _this = this;\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n return (_this$utils7 = this.utils).mongoFormatOp1.apply(_this$utils7, [\"$regex\", function (v) {\n return typeof v == \"string\" ? _this.utils.escapeRegExp(v) : undefined;\n }, false].concat(args));\n },\n //jsonLogic: (field, op, val) => ({ \"in\": [val, field] }),\n jsonLogic: \"in\",\n _jsonLogicIsRevArgs: true,\n valueSources: [\"value\"],\n elasticSearchQueryType: \"regexp\"\n },\n not_like: {\n isNotOp: true,\n label: \"Not contains\",\n reversedOp: \"like\",\n labelForFormat: \"Not Contains\",\n sqlOp: \"NOT LIKE\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils8,\n _this2 = this;\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n return (_this$utils8 = this.utils).mongoFormatOp1.apply(_this$utils8, [\"$regex\", function (v) {\n return typeof v == \"string\" ? _this2.utils.escapeRegExp(v) : undefined;\n }, true].concat(args));\n },\n valueSources: [\"value\"]\n },\n starts_with: {\n label: \"Starts with\",\n labelForFormat: \"Starts with\",\n sqlOp: \"LIKE\",\n spelOp: \"${0}.startsWith(${1})\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils9,\n _this3 = this;\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n return (_this$utils9 = this.utils).mongoFormatOp1.apply(_this$utils9, [\"$regex\", function (v) {\n return typeof v == \"string\" ? \"^\" + _this3.utils.escapeRegExp(v) : undefined;\n }, false].concat(args));\n },\n jsonLogic: undefined,\n // not supported\n valueSources: [\"value\"]\n },\n ends_with: {\n label: \"Ends with\",\n labelForFormat: \"Ends with\",\n sqlOp: \"LIKE\",\n spelOp: \"${0}.endsWith(${1})\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils10,\n _this4 = this;\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n return (_this$utils10 = this.utils).mongoFormatOp1.apply(_this$utils10, [\"$regex\", function (v) {\n return typeof v == \"string\" ? _this4.utils.escapeRegExp(v) + \"$\" : undefined;\n }, false].concat(args));\n },\n jsonLogic: undefined,\n // not supported\n valueSources: [\"value\"]\n },\n between: {\n label: \"Between\",\n labelForFormat: \"BETWEEN\",\n sqlOp: \"BETWEEN\",\n cardinality: 2,\n formatOp: function formatOp(field, op, values, valueSrcs, valueTypes, opDef, operatorOptions, isForDisplay) {\n var valFrom = values.first();\n var valTo = values.get(1);\n if (isForDisplay) return \"\".concat(field, \" BETWEEN \").concat(valFrom, \" AND \").concat(valTo);else return \"\".concat(field, \" >= \").concat(valFrom, \" && \").concat(field, \" <= \").concat(valTo);\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n var valFrom = values[0];\n var valTo = values[1];\n return \"\".concat(field, \" >= \").concat(valFrom, \" && \").concat(field, \" <= \").concat(valTo);\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils11;\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n return (_this$utils11 = this.utils).mongoFormatOp2.apply(_this$utils11, [[\"$gte\", \"$lte\"], false].concat(args));\n },\n valueLabels: [\"Value from\", \"Value to\"],\n textSeparators: [null, \"and\"],\n reversedOp: \"not_between\",\n jsonLogic: \"<=\",\n validateValues: function validateValues(values) {\n if (values[0] != undefined && values[1] != undefined) {\n return values[0] <= values[1] ? null : \"Invalid range\";\n }\n return null;\n },\n elasticSearchQueryType: function elasticSearchQueryType(type) {\n return type === \"time\" ? \"filter\" : \"range\";\n }\n },\n not_between: {\n isNotOp: true,\n label: \"Not between\",\n labelForFormat: \"NOT BETWEEN\",\n sqlOp: \"NOT BETWEEN\",\n cardinality: 2,\n formatOp: function formatOp(field, op, values, valueSrcs, valueTypes, opDef, operatorOptions, isForDisplay) {\n var valFrom = values.first();\n var valTo = values.get(1);\n if (isForDisplay) return \"\".concat(field, \" NOT BETWEEN \").concat(valFrom, \" AND \").concat(valTo);else return \"(\".concat(field, \" < \").concat(valFrom, \" || \").concat(field, \" > \").concat(valTo, \")\");\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n var valFrom = values[0];\n var valTo = values[1];\n return \"(\".concat(field, \" < \").concat(valFrom, \" || \").concat(field, \" > \").concat(valTo, \")\");\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils12;\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n return (_this$utils12 = this.utils).mongoFormatOp2.apply(_this$utils12, [[\"$gte\", \"$lte\"], true].concat(args));\n },\n valueLabels: [\"Value from\", \"Value to\"],\n textSeparators: [null, \"and\"],\n reversedOp: \"between\",\n validateValues: function validateValues(values) {\n if (values[0] != undefined && values[1] != undefined) {\n return values[0] <= values[1] ? null : \"Invalid range\";\n }\n return null;\n }\n },\n is_empty: {\n label: \"Is empty\",\n labelForFormat: \"IS EMPTY\",\n cardinality: 0,\n reversedOp: \"is_not_empty\",\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return isForDisplay ? \"\".concat(field, \" IS EMPTY\") : \"!\".concat(field);\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var empty = this.utils.sqlEmptyValue(fieldDef);\n return \"COALESCE(\".concat(field, \", \").concat(empty, \") = \").concat(empty);\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n //tip: is empty or null\n return \"\".concat(field, \" <= ''\");\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils13,\n _this5 = this;\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n return (_this$utils13 = this.utils).mongoFormatOp1.apply(_this$utils13, [\"$in\", function (v, fieldDef) {\n return [_this5.utils.mongoEmptyValue(fieldDef), null];\n }, false].concat(args));\n },\n jsonLogic: \"!\"\n },\n is_not_empty: {\n isNotOp: true,\n label: \"Is not empty\",\n labelForFormat: \"IS NOT EMPTY\",\n cardinality: 0,\n reversedOp: \"is_empty\",\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return isForDisplay ? \"\".concat(field, \" IS NOT EMPTY\") : \"!!\".concat(field);\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var empty = this.utils.sqlEmptyValue(fieldDef);\n return \"COALESCE(\".concat(field, \", \").concat(empty, \") <> \").concat(empty);\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n //tip: is not empty and not null\n return \"\".concat(field, \" > ''\");\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils14,\n _this6 = this;\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n return (_this$utils14 = this.utils).mongoFormatOp1.apply(_this$utils14, [\"$nin\", function (v, fieldDef) {\n return [_this6.utils.mongoEmptyValue(fieldDef), null];\n }, false].concat(args));\n },\n jsonLogic: \"!!\",\n elasticSearchQueryType: \"exists\"\n },\n is_null: {\n label: \"Is null\",\n labelForFormat: \"IS NULL\",\n sqlOp: \"IS NULL\",\n cardinality: 0,\n reversedOp: \"is_not_null\",\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return isForDisplay ? \"\".concat(field, \" IS NULL\") : \"!\".concat(field);\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" == null\");\n },\n // check if value is null OR not exists\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils15;\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n return (_this$utils15 = this.utils).mongoFormatOp1.apply(_this$utils15, [\"$eq\", function (v) {\n return null;\n }, false].concat(args));\n },\n jsonLogic: \"==\"\n },\n is_not_null: {\n label: \"Is not null\",\n labelForFormat: \"IS NOT NULL\",\n sqlOp: \"IS NOT NULL\",\n cardinality: 0,\n reversedOp: \"is_null\",\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return isForDisplay ? \"\".concat(field, \" IS NOT NULL\") : \"!!\".concat(field);\n },\n spelFormatOp: function spelFormatOp(field, op, values, valueSrc, valueTypes, opDef, operatorOptions, fieldDef) {\n return \"\".concat(field, \" != null\");\n },\n // check if value exists and is not null\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils16;\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n return (_this$utils16 = this.utils).mongoFormatOp1.apply(_this$utils16, [\"$ne\", function (v) {\n return null;\n }, false].concat(args));\n },\n jsonLogic: \"!=\",\n elasticSearchQueryType: \"exists\"\n },\n select_equals: {\n label: \"==\",\n labelForFormat: \"==\",\n sqlOp: \"=\",\n // enum/set\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n var opStr = isForDisplay ? \"=\" : \"==\";\n return \"\".concat(field, \" \").concat(opStr, \" \").concat(value);\n },\n spelOp: \"==\",\n spelOps: [\"==\", \"eq\"],\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils17;\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n return (_this$utils17 = this.utils).mongoFormatOp1.apply(_this$utils17, [\"$eq\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"select_not_equals\",\n jsonLogic: \"==\",\n elasticSearchQueryType: \"term\"\n },\n select_not_equals: {\n isNotOp: true,\n label: \"!=\",\n labelForFormat: \"!=\",\n sqlOp: \"<>\",\n // enum/set\n formatOp: function formatOp(field, op, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n return \"\".concat(field, \" != \").concat(value);\n },\n spelOp: \"!=\",\n spelOps: [\"!=\", \"ne\"],\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils18;\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n return (_this$utils18 = this.utils).mongoFormatOp1.apply(_this$utils18, [\"$ne\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"select_equals\",\n jsonLogic: \"!=\"\n },\n select_any_in: {\n label: \"Any in\",\n labelForFormat: \"IN\",\n sqlOp: \"IN\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n if (valueSrc == \"value\") return \"\".concat(field, \" IN (\").concat(values.join(\", \"), \")\");else return \"\".concat(field, \" IN (\").concat(values, \")\");\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n if (valueSrc == \"value\") {\n return \"\".concat(field, \" IN (\").concat(values.join(\", \"), \")\");\n } else return undefined; // not supported\n },\n\n valueTypes: [\"multiselect\"],\n spelOp: \"${1}.contains(${0})\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils19;\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n return (_this$utils19 = this.utils).mongoFormatOp1.apply(_this$utils19, [\"$in\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"select_not_any_in\",\n jsonLogic: \"in\",\n elasticSearchQueryType: \"term\"\n },\n select_not_any_in: {\n isNotOp: true,\n label: \"Not in\",\n labelForFormat: \"NOT IN\",\n sqlOp: \"NOT IN\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n if (valueSrc == \"value\") return \"\".concat(field, \" NOT IN (\").concat(values.join(\", \"), \")\");else return \"\".concat(field, \" NOT IN (\").concat(values, \")\");\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n if (valueSrc == \"value\") {\n return \"\".concat(field, \" NOT IN (\").concat(values.join(\", \"), \")\");\n } else return undefined; // not supported\n },\n\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils20;\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n return (_this$utils20 = this.utils).mongoFormatOp1.apply(_this$utils20, [\"$nin\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"select_any_in\"\n },\n // it's not \"contains all\", but \"contains any\" operator\n multiselect_contains: {\n label: \"Contains\",\n labelForFormat: \"CONTAINS\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n if (valueSrc == \"value\") return \"\".concat(field, \" CONTAINS [\").concat(values.join(\", \"), \"]\");else return \"\".concat(field, \" CONTAINS \").concat(values);\n },\n reversedOp: \"multiselect_not_contains\",\n jsonLogic2: \"some-in\",\n jsonLogic: function jsonLogic(field, op, vals) {\n return {\n \"some\": [field, {\n \"in\": [{\n \"var\": \"\"\n }, vals]\n }]\n };\n },\n //spelOp: \"${0}.containsAll(${1})\",\n spelOp: \"T(CollectionUtils).containsAny(${0}, ${1})\",\n elasticSearchQueryType: \"term\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils21;\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n return (_this$utils21 = this.utils).mongoFormatOp1.apply(_this$utils21, [\"$in\", function (v) {\n return v;\n }, false].concat(args));\n }\n },\n multiselect_not_contains: {\n isNotOp: true,\n label: \"Not contains\",\n labelForFormat: \"NOT CONTAINS\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n if (valueSrc == \"value\") return \"\".concat(field, \" NOT CONTAINS [\").concat(values.join(\", \"), \"]\");else return \"\".concat(field, \" NOT CONTAINS \").concat(values);\n },\n reversedOp: \"multiselect_contains\"\n },\n multiselect_equals: {\n label: \"Equals\",\n labelForFormat: \"==\",\n sqlOp: \"=\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n var opStr = isForDisplay ? \"=\" : \"==\";\n if (valueSrc == \"value\") return \"\".concat(field, \" \").concat(opStr, \" [\").concat(values.join(\", \"), \"]\");else return \"\".concat(field, \" \").concat(opStr, \" \").concat(values);\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var _this7 = this;\n if (valueSrc == \"value\")\n // set\n return \"\".concat(field, \" = '\").concat(values.map(function (v) {\n return _this7.utils.SqlString.trim(v);\n }).join(\",\"), \"'\");else return undefined; //not supported\n },\n\n spelOp: \"${0}.equals(${1})\",\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils22;\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n return (_this$utils22 = this.utils).mongoFormatOp1.apply(_this$utils22, [\"$eq\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"multiselect_not_equals\",\n jsonLogic2: \"all-in\",\n jsonLogic: function jsonLogic(field, op, vals) {\n return {\n // it's not \"equals\", but \"includes\" operator - just for example\n \"all\": [field, {\n \"in\": [{\n \"var\": \"\"\n }, vals]\n }]\n };\n },\n elasticSearchQueryType: \"term\"\n },\n multiselect_not_equals: {\n isNotOp: true,\n label: \"Not equals\",\n labelForFormat: \"!=\",\n sqlOp: \"<>\",\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n if (valueSrc == \"value\") return \"\".concat(field, \" != [\").concat(values.join(\", \"), \"]\");else return \"\".concat(field, \" != \").concat(values);\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n var _this8 = this;\n if (valueSrc == \"value\")\n // set\n return \"\".concat(field, \" != '\").concat(values.map(function (v) {\n return _this8.utils.SqlString.trim(v);\n }).join(\",\"), \"'\");else return undefined; //not supported\n },\n\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils23;\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n return (_this$utils23 = this.utils).mongoFormatOp1.apply(_this$utils23, [\"$ne\", function (v) {\n return v;\n }, false].concat(args));\n },\n reversedOp: \"multiselect_equals\"\n },\n proximity: {\n label: \"Proximity search\",\n cardinality: 2,\n valueLabels: [{\n label: \"Word 1\",\n placeholder: \"Enter first word\"\n }, {\n label: \"Word 2\",\n placeholder: \"Enter second word\"\n }],\n textSeparators: [\n //'Word 1',\n //'Word 2'\n ],\n formatOp: function formatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, isForDisplay) {\n var val1 = values.first();\n var val2 = values.get(1);\n var prox = operatorOptions.get(\"proximity\");\n return \"\".concat(field, \" \").concat(val1, \" NEAR/\").concat(prox, \" \").concat(val2);\n },\n sqlFormatOp: function sqlFormatOp(field, op, values, valueSrc, valueType, opDef, operatorOptions, fieldDef) {\n // https://learn.microsoft.com/en-us/sql/relational-databases/search/search-for-words-close-to-another-word-with-near?view=sql-server-ver16#example-1\n var val1 = values.first();\n var val2 = values.get(1);\n var aVal1 = this.utils.SqlString.trim(val1);\n var aVal2 = this.utils.SqlString.trim(val2);\n var prox = operatorOptions.get(\"proximity\");\n return \"CONTAINS(\".concat(field, \", 'NEAR((\").concat(aVal1, \", \").concat(aVal2, \"), \").concat(prox, \")')\");\n },\n mongoFormatOp: undefined,\n // not supported\n jsonLogic: undefined,\n // not supported\n options: {\n optionLabel: \"Near\",\n // label on top of \"near\" selectbox (for config.settings.showLabels==true)\n optionTextBefore: \"Near\",\n // label before \"near\" selectbox (for config.settings.showLabels==false)\n optionPlaceholder: \"Select words between\",\n // placeholder for \"near\" selectbox\n minProximity: 2,\n maxProximity: 10,\n defaults: {\n proximity: 2\n }\n }\n },\n some: {\n label: \"Some\",\n labelForFormat: \"SOME\",\n cardinality: 0,\n jsonLogic: \"some\",\n spelFormatOp: function spelFormatOp(filteredSize) {\n return \"\".concat(filteredSize, \" > 0\");\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils24;\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n return (_this$utils24 = this.utils).mongoFormatOp1.apply(_this$utils24, [\"$gt\", function (v) {\n return 0;\n }, false].concat(args));\n }\n },\n all: {\n label: \"All\",\n labelForFormat: \"ALL\",\n cardinality: 0,\n jsonLogic: \"all\",\n spelFormatOp: function spelFormatOp(filteredSize, op, fullSize) {\n return \"\".concat(filteredSize, \" == \").concat(fullSize);\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils25;\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n return (_this$utils25 = this.utils).mongoFormatOp1.apply(_this$utils25, [\"$eq\", function (v) {\n return v;\n }, false].concat(args));\n }\n },\n none: {\n label: \"None\",\n labelForFormat: \"NONE\",\n cardinality: 0,\n jsonLogic: \"none\",\n spelFormatOp: function spelFormatOp(filteredSize) {\n return \"\".concat(filteredSize, \" == 0\");\n },\n mongoFormatOp: function mongoFormatOp() {\n var _this$utils26;\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n return (_this$utils26 = this.utils).mongoFormatOp1.apply(_this$utils26, [\"$eq\", function (v) {\n return 0;\n }, false].concat(args));\n }\n }\n};\n\n//---------------------------- widgets\n\nvar widgets = {\n text: {\n type: \"text\",\n jsType: \"string\",\n valueSrc: \"value\",\n valueLabel: \"String\",\n valuePlaceholder: \"Enter string\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? this.utils.stringifyForDisplay(val) : JSON.stringify(val);\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.spelEscape(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n if (opDef.sqlOp == \"LIKE\" || opDef.sqlOp == \"NOT LIKE\") {\n return this.utils.SqlString.escapeLike(val, op != \"starts_with\", op != \"ends_with\");\n } else {\n return this.utils.SqlString.escape(val);\n }\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n textarea: {\n type: \"text\",\n jsType: \"string\",\n valueSrc: \"value\",\n valueLabel: \"Text\",\n valuePlaceholder: \"Enter text\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? this.utils.stringifyForDisplay(val) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n if (opDef.sqlOp == \"LIKE\" || opDef.sqlOp == \"NOT LIKE\") {\n return this.utils.SqlString.escapeLike(val, op != \"starts_with\", op != \"ends_with\");\n } else {\n return this.utils.SqlString.escape(val);\n }\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n },\n fullWidth: true\n },\n number: {\n type: \"number\",\n jsType: \"number\",\n valueSrc: \"value\",\n valueLabel: \"Number\",\n valuePlaceholder: \"Enter number\",\n valueLabels: [{\n label: \"Number from\",\n placeholder: \"Enter number from\"\n }, {\n label: \"Number to\",\n placeholder: \"Enter number to\"\n }],\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? this.utils.stringifyForDisplay(val) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef) {\n var isFloat = wgtDef.step && !Number.isInteger(wgtDef.step);\n return this.utils.spelEscape(val, isFloat);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n slider: {\n type: \"number\",\n jsType: \"number\",\n valueSrc: \"value\",\n valueLabel: \"Number\",\n valuePlaceholder: \"Enter number or move slider\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? this.utils.stringifyForDisplay(val) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n select: {\n type: \"select\",\n jsType: \"string\",\n valueSrc: \"value\",\n valueLabel: \"Value\",\n valuePlaceholder: \"Select value\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n var valLabel = this.utils.getTitleInListValues(fieldDef.fieldSettings.listValues || fieldDef.asyncListValues, val);\n return isForDisplay ? this.utils.stringifyForDisplay(valLabel) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n multiselect: {\n type: \"multiselect\",\n jsType: \"array\",\n valueSrc: \"value\",\n valueLabel: \"Values\",\n valuePlaceholder: \"Select values\",\n formatValue: function formatValue(vals, fieldDef, wgtDef, isForDisplay) {\n var _this9 = this;\n var valsLabels = vals.map(function (v) {\n return _this9.utils.getTitleInListValues(fieldDef.fieldSettings.listValues || fieldDef.asyncListValues, v);\n });\n return isForDisplay ? valsLabels.map(this.utils.stringifyForDisplay) : vals.map(JSON.stringify);\n },\n sqlFormatValue: function sqlFormatValue(vals, fieldDef, wgtDef, op, opDef) {\n var _this10 = this;\n return vals.map(function (v) {\n return _this10.utils.SqlString.escape(v);\n });\n },\n spelFormatValue: function spelFormatValue(vals, fieldDef, wgtDef, op, opDef) {\n var isCallable = opDef.spelOp && opDef.spelOp.startsWith(\"${1}\");\n var res = this.utils.spelEscape(vals); // inline list\n if (isCallable) {\n // `{1,2}.contains(1)` NOT works\n // `{1,2}.?[true].contains(1)` works\n res = this.utils.spelFixList(res);\n }\n return res;\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n date: {\n type: \"date\",\n jsType: \"string\",\n valueSrc: \"value\",\n dateFormat: \"DD.MM.YYYY\",\n valueFormat: \"YYYY-MM-DD\",\n valueLabel: \"Date\",\n valuePlaceholder: \"Enter date\",\n valueLabels: [{\n label: \"Date from\",\n placeholder: \"Enter date from\"\n }, {\n label: \"Date to\",\n placeholder: \"Enter date to\"\n }],\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return isForDisplay ? dateVal.format(wgtDef.dateFormat) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return this.utils.SqlString.escape(dateVal.format(\"YYYY-MM-DD\"));\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n var v = dateVal.format(\"YYYY-MM-DD\");\n var fmt = \"yyyy-MM-dd\";\n //return `new java.text.SimpleDateFormat('${fmt}').parse('${v}')`;\n return \"T(java.time.LocalDate).parse('\".concat(v, \"', T(java.time.format.DateTimeFormatter).ofPattern('\").concat(fmt, \"'))\");\n },\n spelImportFuncs: [\n //\"new java.text.SimpleDateFormat(${fmt}).parse(${v})\",\n {\n obj: {\n cls: [\"java\", \"time\", \"LocalDate\"]\n },\n methodName: \"parse\",\n args: [{\n \"var\": \"v\"\n }, {\n obj: {\n cls: [\"java\", \"time\", \"format\", \"DateTimeFormatter\"]\n },\n methodName: \"ofPattern\",\n args: [{\n \"var\": \"fmt\"\n }]\n }]\n }],\n spelImportValue: function spelImportValue(val, wgtDef, args) {\n var _args$fmt, _args$fmt$includes, _args$fmt2, _args$fmt2$toLowerCas;\n if (!wgtDef) return [undefined, \"No widget def to get value format\"];\n if (args !== null && args !== void 0 && (_args$fmt = args.fmt) !== null && _args$fmt !== void 0 && (_args$fmt = _args$fmt.value) !== null && _args$fmt !== void 0 && (_args$fmt$includes = _args$fmt.includes) !== null && _args$fmt$includes !== void 0 && _args$fmt$includes.call(_args$fmt, \" \") || (_args$fmt2 = args.fmt) !== null && _args$fmt2 !== void 0 && (_args$fmt2 = _args$fmt2.value) !== null && _args$fmt2 !== void 0 && (_args$fmt2$toLowerCas = _args$fmt2.toLowerCase) !== null && _args$fmt2$toLowerCas !== void 0 && _args$fmt2$toLowerCas.call(_args$fmt2).includes(\"hh:mm\")) return [undefined, \"Invalid date format \".concat(JSON.stringify(args.fmt))];\n var dateVal = this.utils.moment(val.value, this.utils.moment.ISO_8601);\n if (dateVal.isValid()) {\n return [dateVal.format(wgtDef === null || wgtDef === void 0 ? void 0 : wgtDef.valueFormat), []];\n } else {\n return [undefined, \"Invalid date\"];\n }\n },\n jsonLogic: function jsonLogic(val, fieldDef, wgtDef) {\n return this.utils.moment(val, wgtDef.valueFormat).toDate();\n },\n toJS: function toJS(val, fieldSettings) {\n var dateVal = this.utils.moment(val, fieldSettings.valueFormat);\n return dateVal.isValid() ? dateVal.toDate() : undefined;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return dateVal.isValid() ? dateVal.toDate() : undefined;\n }\n },\n time: {\n type: \"time\",\n jsType: \"string\",\n valueSrc: \"value\",\n timeFormat: \"HH:mm\",\n valueFormat: \"HH:mm:ss\",\n use12Hours: false,\n valueLabel: \"Time\",\n valuePlaceholder: \"Enter time\",\n valueLabels: [{\n label: \"Time from\",\n placeholder: \"Enter time from\"\n }, {\n label: \"Time to\",\n placeholder: \"Enter time to\"\n }],\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return isForDisplay ? dateVal.format(wgtDef.timeFormat) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return this.utils.SqlString.escape(dateVal.format(\"HH:mm:ss\"));\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n var fmt = \"HH:mm:ss\";\n var v = dateVal.format(\"HH:mm:ss\");\n return \"T(java.time.LocalTime).parse('\".concat(v, \"')\");\n //return `new java.text.SimpleDateFormat('${fmt}').parse('${v}')`;\n },\n\n spelImportFuncs: [\"T(java.time.LocalTime).parse(${v})\"\n //\"new java.text.SimpleDateFormat(${fmt}).parse(${v})\"\n ],\n\n spelImportValue: function spelImportValue(val, wgtDef, args) {\n var _args$fmt3, _args$fmt3$toLowerCas, _args$fmt4;\n if (!wgtDef) return [undefined, \"No widget def to get value format\"];\n if (args !== null && args !== void 0 && args.fmt && (!((_args$fmt3 = args.fmt) !== null && _args$fmt3 !== void 0 && (_args$fmt3 = _args$fmt3.value) !== null && _args$fmt3 !== void 0 && (_args$fmt3$toLowerCas = _args$fmt3.toLowerCase) !== null && _args$fmt3$toLowerCas !== void 0 && _args$fmt3$toLowerCas.call(_args$fmt3).includes(\"hh:mm\")) || (_args$fmt4 = args.fmt) !== null && _args$fmt4 !== void 0 && (_args$fmt4 = _args$fmt4.value) !== null && _args$fmt4 !== void 0 && _args$fmt4.includes(\" \"))) return [undefined, \"Invalid time format \".concat(JSON.stringify(args.fmt))];\n var dateVal = this.utils.moment(val.value, \"HH:mm:ss\");\n if (dateVal.isValid()) {\n return [dateVal.format(wgtDef === null || wgtDef === void 0 ? void 0 : wgtDef.valueFormat), []];\n } else {\n return [undefined, \"Invalid date\"];\n }\n },\n jsonLogic: function jsonLogic(val, fieldDef, wgtDef) {\n // return seconds of day\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return dateVal.get(\"hour\") * 60 * 60 + dateVal.get(\"minute\") * 60 + dateVal.get(\"second\");\n },\n toJS: function toJS(val, fieldSettings) {\n // return seconds of day\n var dateVal = this.utils.moment(val, fieldSettings.valueFormat);\n return dateVal.isValid() ? dateVal.get(\"hour\") * 60 * 60 + dateVal.get(\"minute\") * 60 + dateVal.get(\"second\") : undefined;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n // return seconds of day\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return dateVal.get(\"hour\") * 60 * 60 + dateVal.get(\"minute\") * 60 + dateVal.get(\"second\");\n },\n elasticSearchFormatValue: function elasticSearchFormatValue(queryType, value, operator, fieldName) {\n return {\n script: {\n script: {\n source: \"doc[\".concat(fieldName, \"][0].getHour() >== params.min && doc[\").concat(fieldName, \"][0].getHour() <== params.max\"),\n params: {\n min: value[0],\n max: value[1]\n }\n }\n }\n };\n }\n },\n datetime: {\n type: \"datetime\",\n jsType: \"string\",\n valueSrc: \"value\",\n timeFormat: \"HH:mm\",\n dateFormat: \"DD.MM.YYYY\",\n valueFormat: \"YYYY-MM-DD HH:mm:ss\",\n use12Hours: false,\n valueLabel: \"Datetime\",\n valuePlaceholder: \"Enter datetime\",\n valueLabels: [{\n label: \"Datetime from\",\n placeholder: \"Enter datetime from\"\n }, {\n label: \"Datetime to\",\n placeholder: \"Enter datetime to\"\n }],\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return isForDisplay ? dateVal.format(wgtDef.dateFormat + \" \" + wgtDef.timeFormat) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return this.utils.SqlString.escape(dateVal.toDate());\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n var v = dateVal.format(\"YYYY-MM-DD HH:mm:ss\");\n var fmt = \"yyyy-MM-dd HH:mm:ss\";\n //return `new java.text.SimpleDateFormat('${fmt}').parse('${v}')`;\n return \"T(java.time.LocalDateTime).parse('\".concat(v, \"', T(java.time.format.DateTimeFormatter).ofPattern('\").concat(fmt, \"'))\");\n },\n spelImportFuncs: [\n //\"new java.text.SimpleDateFormat(${fmt}).parse(${v})\",\n {\n obj: {\n cls: [\"java\", \"time\", \"LocalDateTime\"]\n },\n methodName: \"parse\",\n args: [{\n \"var\": \"v\"\n }, {\n obj: {\n cls: [\"java\", \"time\", \"format\", \"DateTimeFormatter\"]\n },\n methodName: \"ofPattern\",\n args: [{\n \"var\": \"fmt\"\n }]\n }]\n }],\n spelImportValue: function spelImportValue(val, wgtDef, args) {\n var _args$fmt5, _args$fmt5$includes;\n if (!wgtDef) return [undefined, \"No widget def to get value format\"];\n if (!(args !== null && args !== void 0 && (_args$fmt5 = args.fmt) !== null && _args$fmt5 !== void 0 && (_args$fmt5 = _args$fmt5.value) !== null && _args$fmt5 !== void 0 && (_args$fmt5$includes = _args$fmt5.includes) !== null && _args$fmt5$includes !== void 0 && _args$fmt5$includes.call(_args$fmt5, \" \"))) return [undefined, \"Invalid datetime format \".concat(JSON.stringify(args.fmt))];\n var dateVal = this.utils.moment(val.value, this.utils.moment.ISO_8601);\n if (dateVal.isValid()) {\n return [dateVal.format(wgtDef === null || wgtDef === void 0 ? void 0 : wgtDef.valueFormat), []];\n } else {\n return [undefined, \"Invalid date\"];\n }\n },\n jsonLogic: function jsonLogic(val, fieldDef, wgtDef) {\n return this.utils.moment(val, wgtDef.valueFormat).toDate();\n },\n toJS: function toJS(val, fieldSettings) {\n var dateVal = this.utils.moment(val, fieldSettings.valueFormat);\n return dateVal.isValid() ? dateVal.toDate() : undefined;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n var dateVal = this.utils.moment(val, wgtDef.valueFormat);\n return dateVal.isValid() ? dateVal.toDate() : undefined;\n }\n },\n \"boolean\": {\n type: \"boolean\",\n jsType: \"boolean\",\n valueSrc: \"value\",\n labelYes: \"Yes\",\n labelNo: \"No\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? val ? \"Yes\" : \"No\" : JSON.stringify(!!val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.spelEscape(val);\n },\n defaultValue: false,\n toJS: function toJS(val, fieldSettings) {\n return val;\n },\n mongoFormatValue: function mongoFormatValue(val, fieldDef, wgtDef) {\n return val;\n }\n },\n field: {\n valueSrc: \"field\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay, op, opDef, rightFieldDef) {\n return isForDisplay ? rightFieldDef.label || val : val;\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef, rightFieldDef) {\n return val;\n },\n spelFormatValue: function spelFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return val;\n },\n valueLabel: \"Field to compare\",\n valuePlaceholder: \"Select field to compare\"\n },\n func: {\n valueSrc: \"func\",\n valueLabel: \"Function\",\n valuePlaceholder: \"Select function\"\n },\n case_value: {\n valueSrc: \"value\",\n type: \"case_value\",\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val === \"\" ? null : val);\n },\n spelImportValue: function spelImportValue(val) {\n return [val.value, []];\n }\n }\n};\n\n//---------------------------- types\n\nvar types = {\n text: {\n defaultOperator: \"equal\",\n mainWidget: \"text\",\n widgets: {\n text: {\n operators: [\"equal\", \"not_equal\", \"like\", \"not_like\", \"starts_with\", \"ends_with\", \"proximity\", \"is_empty\", \"is_not_empty\", \"is_null\", \"is_not_null\"],\n widgetProps: {},\n opProps: {}\n },\n textarea: {\n operators: [\"equal\", \"not_equal\", \"like\", \"not_like\", \"starts_with\", \"ends_with\", \"is_empty\", \"is_not_empty\", \"is_null\", \"is_not_null\"],\n widgetProps: {},\n opProps: {}\n },\n field: {\n operators: [\n //unary ops (like `is_empty`) will be excluded anyway, see getWidgetsForFieldOp()\n \"equal\", \"not_equal\", \"proximity\" //can exclude if you want\n ]\n }\n }\n },\n\n number: {\n defaultOperator: \"equal\",\n mainWidget: \"number\",\n widgets: {\n number: {\n operators: [\"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\", \"between\", \"not_between\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n },\n slider: {\n operators: [\"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n date: {\n defaultOperator: \"equal\",\n widgets: {\n date: {\n operators: [\"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\", \"between\", \"not_between\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n time: {\n defaultOperator: \"equal\",\n widgets: {\n time: {\n operators: [\"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\", \"between\", \"not_between\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n datetime: {\n defaultOperator: \"equal\",\n widgets: {\n datetime: {\n operators: [\"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\", \"between\", \"not_between\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n select: {\n mainWidget: \"select\",\n defaultOperator: \"select_equals\",\n widgets: {\n select: {\n operators: [\"select_equals\", \"select_not_equals\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n },\n multiselect: {\n operators: [\"select_any_in\", \"select_not_any_in\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n multiselect: {\n defaultOperator: \"multiselect_equals\",\n widgets: {\n multiselect: {\n operators: [\"multiselect_contains\", \"multiselect_not_contains\", \"multiselect_equals\", \"multiselect_not_equals\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }\n }\n },\n \"boolean\": {\n defaultOperator: \"equal\",\n widgets: {\n \"boolean\": {\n operators: [\"equal\", \"not_equal\", \"is_null\", \"is_not_null\"],\n widgetProps: {\n //you can enable this if you don't use fields as value sources\n // hideOperator: true,\n // operatorInlineLabel: \"is\",\n }\n },\n field: {\n operators: [\"equal\", \"not_equal\"]\n }\n }\n },\n \"!group\": {\n defaultOperator: \"some\",\n mainWidget: \"number\",\n widgets: {\n number: {\n widgetProps: {\n min: 0\n },\n operators: [\n // w/o operand\n \"some\", \"all\", \"none\",\n // w/ operand - count\n \"equal\", \"not_equal\", \"less\", \"less_or_equal\", \"greater\", \"greater_or_equal\", \"between\", \"not_between\"],\n opProps: {\n equal: {\n label: \"Count ==\"\n },\n not_equal: {\n label: \"Count !=\"\n },\n less: {\n label: \"Count <\"\n },\n less_or_equal: {\n label: \"Count <=\"\n },\n greater: {\n label: \"Count >\"\n },\n greater_or_equal: {\n label: \"Count >=\"\n },\n between: {\n label: \"Count between\"\n },\n not_between: {\n label: \"Count not between\"\n }\n }\n }\n }\n },\n \"case_value\": {\n mainWidget: \"case_value\",\n widgets: {\n case_value: {}\n }\n }\n};\n\n//---------------------------- settings\n\nvar settings = _objectSpread(_objectSpread({}, defaultSettings), {}, {\n convertableWidgets: {\n \"number\": [\"slider\", \"rangeslider\"],\n \"slider\": [\"number\", \"rangeslider\"],\n \"rangeslider\": [\"number\", \"slider\"],\n \"text\": [\"textarea\"],\n \"textarea\": [\"text\"]\n },\n formatSpelField: function formatSpelField(field, parentField, parts, partsExt, fieldDefinition, config) {\n var _this11 = this;\n var fieldName = partsExt.map(function (_ref, ind) {\n var key = _ref.key,\n parent = _ref.parent,\n sep = _ref.fieldSeparator;\n if (ind == 0) {\n if (parent == \"[map]\") return \"#this[\".concat(_this11.utils.spelEscape(key), \"]\");else if (parent == \"[class]\") return key;else return key;\n } else {\n if (parent == \"map\" || parent == \"[map]\") return \"[\".concat(_this11.utils.spelEscape(key), \"]\");else if (parent == \"class\" || parent == \"[class]\") return \"\".concat(sep).concat(key);else return \"\".concat(sep).concat(key);\n }\n }).join(\"\");\n if (fieldDefinition.fieldName) {\n fieldName = field;\n }\n if (fieldDefinition.isSpelVariable) {\n fieldName = \"#\" + fieldName;\n }\n return fieldName;\n },\n sqlFormatReverse: function sqlFormatReverse(q) {\n if (q == undefined) return undefined;\n return \"NOT(\" + q + \")\";\n },\n spelFormatReverse: function spelFormatReverse(q) {\n if (q == undefined) return undefined;\n return \"!(\" + q + \")\";\n },\n formatReverse: function formatReverse(q, operator, reversedOp, operatorDefinition, revOperatorDefinition, isForDisplay) {\n if (q == undefined) return undefined;\n if (isForDisplay) return \"NOT (\" + q + \")\";else return \"!(\" + q + \")\";\n },\n formatAggr: function formatAggr(whereStr, aggrField, operator, value, valueSrc, valueType, opDef, operatorOptions, isForDisplay, aggrFieldDef) {\n var labelForFormat = opDef.labelForFormat,\n cardinality = opDef.cardinality;\n if (cardinality == 0) {\n var cond = whereStr ? \" HAVE \".concat(whereStr) : \"\";\n return \"\".concat(labelForFormat, \" OF \").concat(aggrField).concat(cond);\n } else if (cardinality == undefined || cardinality == 1) {\n var _cond = whereStr ? \" WHERE \".concat(whereStr) : \"\";\n return \"COUNT OF \".concat(aggrField).concat(_cond, \" \").concat(labelForFormat, \" \").concat(value);\n } else if (cardinality == 2) {\n var _cond2 = whereStr ? \" WHERE \".concat(whereStr) : \"\";\n var valFrom = value.first();\n var valTo = value.get(1);\n return \"COUNT OF \".concat(aggrField).concat(_cond2, \" \").concat(labelForFormat, \" \").concat(valFrom, \" AND \").concat(valTo);\n }\n },\n jsonLogic: {\n groupVarKey: \"var\",\n altVarKey: \"var\",\n lockedOp: \"locked\"\n },\n canCompareFieldWithField: function canCompareFieldWithField(leftField, leftFieldConfig, rightField, rightFieldConfig) {\n //for type == 'select'/'multiselect' you can check listValues\n return true;\n },\n // enable compare fields\n valueSourcesInfo: {\n value: {\n label: \"Value\"\n },\n field: {\n label: \"Field\",\n widget: \"field\"\n },\n func: {\n label: \"Function\",\n widget: \"func\"\n }\n }\n});\n\n//----------------------------\n\nvar _addMixins = function _addMixins(config, mixins) {\n var doAdd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var mixinFuncs = {\n rangeslider: mixinWidgetRangeslider,\n treeselect: mixinWidgetTreeselect,\n treemultiselect: mixinWidgetTreemultiselect,\n rangeable__date: mixinRangeableWidget(\"date\", \"date\")\n };\n var _iterator = _createForOfIteratorHelper(mixins),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var mixName = _step.value;\n var mixinFunc = mixinFuncs[mixName];\n if (mixinFunc) {\n config = mixinFunc(config, doAdd);\n } else {\n throw new Error(\"Can't \".concat(doAdd ? \"add\" : \"remove\", \" mixin \").concat(mixName));\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return config;\n};\nvar addMixins = function addMixins(config, mixins) {\n return _addMixins(config, mixins, true);\n};\nvar removeMixins = function removeMixins(config, mixins) {\n return _addMixins(config, mixins, false);\n};\nvar mixinRangeableWidget = function mixinRangeableWidget(type, widget) {\n return function (config) {\n var addMixin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var types = config.types;\n types = _objectSpread(_objectSpread({}, types), {}, _defineProperty({}, type, _objectSpread(_objectSpread({}, types[type]), {}, {\n widgets: _objectSpread({}, types[type].widgets)\n })));\n if (addMixin) {\n types[type].widgets[widget] = _objectSpread({\n opProps: {\n between: {\n isSpecialRange: true,\n textSeparators: [null, null]\n },\n not_between: {\n isSpecialRange: true,\n textSeparators: [null, null]\n }\n }\n }, types[type].widgets[widget]);\n } else {\n delete types[type].widgets[widget];\n }\n return _objectSpread(_objectSpread({}, config), {}, {\n types: types\n });\n };\n};\nvar mixinWidgetRangeslider = function mixinWidgetRangeslider(config) {\n var addMixin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var widgets = config.widgets,\n types = config.types;\n widgets = _objectSpread({}, widgets);\n if (addMixin) {\n widgets.rangeslider = _objectSpread({\n type: \"number\",\n jsType: \"number\",\n valueSrc: \"value\",\n valueLabel: \"Range\",\n valuePlaceholder: \"Select range\",\n valueLabels: [{\n label: \"Number from\",\n placeholder: \"Enter number from\"\n }, {\n label: \"Number to\",\n placeholder: \"Enter number to\"\n }],\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n return isForDisplay ? this.utils.stringifyForDisplay(val) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n singleWidget: \"slider\",\n toJS: function toJS(val, fieldSettings) {\n return val;\n }\n }, widgets.rangeslider);\n } else {\n delete widgets.rangeslider;\n }\n types = _objectSpread(_objectSpread({}, types), {}, {\n number: _objectSpread(_objectSpread({}, types.number), {}, {\n widgets: _objectSpread({}, types.number.widgets)\n })\n });\n if (addMixin) {\n types.number.widgets.rangeslider = _objectSpread({\n opProps: {\n between: {\n isSpecialRange: true\n },\n not_between: {\n isSpecialRange: true\n }\n },\n operators: [\"between\", \"not_between\",\n // \"is_empty\",\n // \"is_not_empty\",\n \"is_null\", \"is_not_null\"]\n }, types.number.widgets.rangeslider);\n } else {\n delete types.number.widgets.rangeslider;\n }\n return _objectSpread(_objectSpread({}, config), {}, {\n widgets: widgets,\n types: types\n });\n};\nvar mixinWidgetTreeselect = function mixinWidgetTreeselect(config) {\n var addMixin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var widgets = config.widgets,\n types = config.types;\n widgets = _objectSpread({}, widgets);\n if (addMixin) {\n widgets.treeselect = _objectSpread({\n type: \"treeselect\",\n jsType: \"string\",\n valueSrc: \"value\",\n valueLabel: \"Value\",\n valuePlaceholder: \"Select value\",\n formatValue: function formatValue(val, fieldDef, wgtDef, isForDisplay) {\n var treeData = fieldDef.fieldSettings.treeValues || fieldDef.fieldSettings.listValues || fieldDef.asyncListValues;\n var valLabel = this.utils.getTitleInListValues(treeData, val);\n return isForDisplay ? this.utils.stringifyForDisplay(valLabel) : JSON.stringify(val);\n },\n sqlFormatValue: function sqlFormatValue(val, fieldDef, wgtDef, op, opDef) {\n return this.utils.SqlString.escape(val);\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n }\n }, widgets.treeselect);\n } else {\n delete widgets.treeselect;\n }\n types = _objectSpread({}, types);\n if (addMixin) {\n types.treeselect = _objectSpread({\n mainWidget: \"treeselect\",\n defaultOperator: \"select_equals\",\n widgets: {\n treeselect: {\n operators: [\"select_equals\", \"select_not_equals\"]\n },\n treemultiselect: {\n operators: [\"select_any_in\", \"select_not_any_in\"]\n }\n }\n }, types.treeselect);\n } else {\n delete types.treeselect;\n }\n return _objectSpread(_objectSpread({}, config), {}, {\n widgets: widgets,\n types: types\n });\n};\nvar mixinWidgetTreemultiselect = function mixinWidgetTreemultiselect(config) {\n var addMixin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var widgets = config.widgets,\n types = config.types;\n widgets = _objectSpread({}, widgets);\n if (addMixin) {\n widgets.treemultiselect = _objectSpread({\n type: \"treemultiselect\",\n jsType: \"array\",\n valueSrc: \"value\",\n valueLabel: \"Values\",\n valuePlaceholder: \"Select values\",\n formatValue: function formatValue(vals, fieldDef, wgtDef, isForDisplay) {\n var _this12 = this;\n var treeData = fieldDef.fieldSettings.treeValues || fieldDef.fieldSettings.listValues || fieldDef.asyncListValues;\n var valsLabels = vals.map(function (v) {\n return _this12.utils.getTitleInListValues(treeData, v);\n });\n return isForDisplay ? valsLabels.map(this.utils.stringifyForDisplay) : vals.map(JSON.stringify);\n },\n sqlFormatValue: function sqlFormatValue(vals, fieldDef, wgtDef, op, opDef) {\n var _this13 = this;\n return vals.map(function (v) {\n return _this13.utils.SqlString.escape(v);\n });\n },\n spelFormatValue: function spelFormatValue(val) {\n return this.utils.spelEscape(val);\n },\n toJS: function toJS(val, fieldSettings) {\n return val;\n }\n }, widgets.treemultiselect);\n } else {\n delete widgets.treemultiselect;\n }\n types = _objectSpread({}, types);\n if (addMixin) {\n types.treemultiselect = _objectSpread({\n defaultOperator: \"multiselect_equals\",\n widgets: {\n treemultiselect: {\n operators: [\"multiselect_equals\", \"multiselect_not_equals\"]\n }\n }\n }, types.treemultiselect);\n } else {\n delete types.treemultiselect;\n }\n return _objectSpread(_objectSpread({}, config), {}, {\n widgets: widgets,\n types: types\n });\n};\nexport var ConfigMixins = {\n addMixins: addMixins,\n removeMixins: removeMixins\n};\n\n//----------------------------\n\nvar config = {\n conjunctions: conjunctions,\n operators: operators,\n widgets: widgets,\n types: types,\n settings: settings,\n ctx: ctx\n};\n// Mixin advanced widgets just to allow using it on server-side eg. for export routines\nconfig = addMixins(config, [\"rangeslider\", \"treeselect\", \"treemultiselect\"]);\nexport default config;","export var ADD_GROUP = \"ADD_GROUP\";\nexport var ADD_CASE_GROUP = \"ADD_CASE_GROUP\";\nexport var REMOVE_GROUP = \"REMOVE_GROUP\";\nexport var SET_CONJUNCTION = \"SET_CONJUNCTION\";\nexport var SET_NOT = \"SET_NOT\";\nexport var ADD_RULE = \"ADD_RULE\";\nexport var REMOVE_RULE = \"REMOVE_RULE\";\nexport var SET_FIELD = \"SET_FIELD\";\nexport var SET_FIELD_SRC = \"SET_FIELD_SRC\";\nexport var SET_OPERATOR = \"SET_OPERATOR\";\nexport var SET_VALUE = \"SET_VALUE\";\nexport var SET_VALUE_SRC = \"SET_VALUE_SRC\";\nexport var SET_OPERATOR_OPTION = \"SET_OPERATOR_OPTION\";\nexport var SET_LOCK = \"SET_LOCK\";\nexport var SET_TREE = \"SET_TREE\";\nexport var MOVE_ITEM = \"MOVE_ITEM\";\nexport var PLACEMENT_AFTER = \"after\";\nexport var PLACEMENT_BEFORE = \"before\";\nexport var PLACEMENT_APPEND = \"append\";\nexport var PLACEMENT_PREPEND = \"prepend\";\nexport var SET_DRAG_PROGRESS = \"SET_DRAG_PROGRESS\";\nexport var SET_DRAG_START = \"SET_DRAG_START\";\nexport var SET_DRAG_END = \"SET_DRAG_END\";","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport Immutable from \"immutable\";\nimport { expandTreePath, expandTreeSubpath, getItemByPath, fixPathsInTree, getTotalRulesCountInTree, fixEmptyGroupsInTree, isEmptyTree, hasChildren, removeIsLockedInTree } from \"../utils/treeUtils\";\nimport { defaultRuleProperties, defaultGroupProperties, getDefaultOperator, defaultOperatorOptions, defaultItemProperties } from \"../utils/defaultUtils\";\nimport * as constants from \"./constants\";\nimport uuid from \"../utils/uuid\";\nimport { getFuncConfig, getFieldConfig, getFieldWidgetConfig, getOperatorConfig } from \"../utils/configUtils\";\nimport { getOperatorsForField, getOperatorsForType, getFirstOperator, getWidgetForFieldOp, getNewValueForFieldOp, isEmptyItem, selectTypes } from \"../utils/ruleUtils\";\nimport { deepEqual, defaultValue, applyToJS } from \"../utils/stuff\";\nimport { validateValue } from \"../utils/validation\";\nimport omit from \"lodash/omit\";\nimport mapValues from \"lodash/mapValues\";\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nvar addNewGroup = function addNewGroup(state, path, type, groupUuid, properties, config) {\n var children = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n var meta = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : {};\n var shouldCreateEmptyGroup = config.settings.shouldCreateEmptyGroup;\n var groupPath = path.push(groupUuid);\n var canAddNewRule = !shouldCreateEmptyGroup;\n var isDefaultCase = !!(meta !== null && meta !== void 0 && meta.isDefaultCase);\n var origState = state;\n state = addItem(state, path, type, groupUuid, defaultGroupProperties(config).merge(properties || {}), config, children);\n if (state !== origState) {\n if (!children && !isDefaultCase) {\n state = state.setIn(expandTreePath(groupPath, \"children1\"), new Immutable.OrderedMap());\n\n // Add one empty rule into new group\n if (canAddNewRule) {\n state = addItem(state, groupPath, \"rule\", uuid(), defaultRuleProperties(config), config);\n }\n }\n state = fixPathsInTree(state);\n }\n return state;\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nvar removeGroup = function removeGroup(state, path, config) {\n state = removeItem(state, path);\n var canLeaveEmptyGroup = config.settings.canLeaveEmptyGroup;\n var parentPath = path.slice(0, -1);\n var isEmptyParentGroup = !hasChildren(state, parentPath);\n if (isEmptyParentGroup && !canLeaveEmptyGroup) {\n // check ancestors for emptiness (and delete 'em if empty)\n state = fixEmptyGroupsInTree(state);\n if (isEmptyTree(state) && !canLeaveEmptyGroup) {\n // if whole query is empty, add one empty(!) rule to root\n var canUseDefaultFieldAndOp = false;\n var canGetFirst = false;\n state = addItem(state, new Immutable.List(), \"rule\", uuid(), defaultRuleProperties(config, undefined, undefined, canUseDefaultFieldAndOp, canGetFirst), config);\n }\n }\n state = fixPathsInTree(state);\n return state;\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n */\nvar removeRule = function removeRule(state, path, config) {\n state = removeItem(state, path);\n var canLeaveEmptyGroup = config.settings.canLeaveEmptyGroup;\n var parentPath = path.pop();\n var parent = state.getIn(expandTreePath(parentPath));\n var parentField = parent.getIn([\"properties\", \"field\"]);\n var parentOperator = parent.getIn([\"properties\", \"operator\"]);\n var parentValue = parent.getIn([\"properties\", \"value\", 0]);\n var parentFieldConfig = parentField ? getFieldConfig(config, parentField) : null;\n var parentOperatorConfig = parentOperator ? getOperatorConfig(config, parentOperator, parentField) : null;\n var hasGroupCountRule = parentField && parentOperator && parentOperatorConfig.cardinality != 0; // && parentValue != undefined;\n\n var isParentRuleGroup = parent.get(\"type\") == \"rule_group\";\n var isEmptyParentGroup = !hasChildren(state, parentPath);\n var canLeaveEmpty = isParentRuleGroup ? hasGroupCountRule && parentFieldConfig.initialEmptyWhere : canLeaveEmptyGroup;\n if (isEmptyParentGroup && !canLeaveEmpty) {\n if (isParentRuleGroup) {\n // deleted last rule from rule_group, so delete whole rule_group\n state = state.deleteIn(expandTreePath(parentPath));\n }\n\n // check ancestors for emptiness (and delete 'em if empty)\n state = fixEmptyGroupsInTree(state);\n if (isEmptyTree(state) && !canLeaveEmptyGroup) {\n // if whole query is empty, add one empty(!) rule to root\n var canUseDefaultFieldAndOp = false;\n var canGetFirst = false;\n state = addItem(state, new Immutable.List(), \"rule\", uuid(), defaultRuleProperties(config, undefined, undefined, canUseDefaultFieldAndOp, canGetFirst), config);\n }\n }\n state = fixPathsInTree(state);\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {bool} not\n */\nvar setNot = function setNot(state, path, not) {\n return state.setIn(expandTreePath(path, \"properties\", \"not\"), not);\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {bool} lock\n */\nvar setLock = function setLock(state, path, lock) {\n return removeIsLockedInTree(state.setIn(expandTreePath(path, \"properties\", \"isLocked\"), lock));\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {string} conjunction\n */\nvar setConjunction = function setConjunction(state, path, conjunction) {\n return state.setIn(expandTreePath(path, \"properties\", \"conjunction\"), conjunction);\n};\n\n// convert children deeply from JS to Immutable\nvar _addChildren1 = function _addChildren1(config, item, children) {\n if (children && Array.isArray(children)) {\n item.children1 = new Immutable.OrderedMap(children.reduce(function (map, it) {\n var id1 = uuid();\n var it1 = _objectSpread(_objectSpread({}, it), {}, {\n properties: defaultItemProperties(config, it).merge(it.properties || {}),\n id: id1\n });\n _addChildren1(config, it1, it1.children1);\n //todo: guarantee order\n return _objectSpread(_objectSpread({}, map), {}, _defineProperty({}, id1, new Immutable.Map(it1)));\n }, {}));\n }\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {string} type\n * @param {string} id\n * @param {Immutable.OrderedMap} properties\n * @param {object} config\n */\nvar addItem = function addItem(state, path, type, id, properties, config) {\n var children = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n if (type == \"switch_group\") throw new Error(\"Can't add switch_group programmatically\");\n var _config$settings = config.settings,\n maxNumberOfCases = _config$settings.maxNumberOfCases,\n maxNumberOfRules = _config$settings.maxNumberOfRules,\n maxNesting = _config$settings.maxNesting;\n var rootType = state.get(\"type\");\n var isTernary = rootType == \"switch_group\";\n var targetItem = state.getIn(expandTreePath(path));\n var caseGroup = isTernary ? state.getIn(expandTreePath(path.take(2))) : null;\n var childrenPath = expandTreePath(path, \"children1\");\n var targetChildren = state.getIn(childrenPath);\n var hasChildren = !!targetChildren && targetChildren.size;\n var targetChildrenSize = hasChildren ? targetChildren.size : null;\n var currentNumber, maxNumber;\n if (type == \"case_group\") {\n currentNumber = targetChildrenSize;\n maxNumber = maxNumberOfCases;\n } else if (type == \"group\") {\n currentNumber = path.size;\n maxNumber = maxNesting;\n } else if ((targetItem === null || targetItem === void 0 ? void 0 : targetItem.get(\"type\")) == \"rule_group\") {\n // don't restrict\n } else {\n currentNumber = isTernary ? getTotalRulesCountInTree(caseGroup) : getTotalRulesCountInTree(state);\n maxNumber = maxNumberOfRules;\n }\n var canAdd = maxNumber && currentNumber ? currentNumber < maxNumber : true;\n var item = {\n type: type,\n id: id,\n properties: properties\n };\n _addChildren1(config, item, children);\n var isLastDefaultCase = type == \"case_group\" && hasChildren && targetChildren.last().get(\"children1\") == null;\n if (canAdd) {\n var newChildren = new Immutable.OrderedMap(_defineProperty({}, id, new Immutable.Map(item)));\n if (!hasChildren) {\n state = state.setIn(childrenPath, newChildren);\n } else if (isLastDefaultCase) {\n var _Immutable$OrderedMap2;\n var last = targetChildren.last();\n var newChildrenWithLast = new Immutable.OrderedMap((_Immutable$OrderedMap2 = {}, _defineProperty(_Immutable$OrderedMap2, id, new Immutable.Map(item)), _defineProperty(_Immutable$OrderedMap2, last.get(\"id\"), last), _Immutable$OrderedMap2));\n state = state.deleteIn(expandTreePath(childrenPath, \"children1\", last.get(\"id\")));\n state = state.mergeIn(childrenPath, newChildrenWithLast);\n } else {\n state = state.mergeIn(childrenPath, newChildren);\n }\n state = fixPathsInTree(state);\n }\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n */\nvar removeItem = function removeItem(state, path) {\n state = state.deleteIn(expandTreePath(path));\n state = fixPathsInTree(state);\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} fromPath\n * @param {Immutable.List} toPath\n * @param {string} placement, see constants PLACEMENT_*: PLACEMENT_AFTER, PLACEMENT_BEFORE, PLACEMENT_APPEND, PLACEMENT_PREPEND\n * @param {object} config\n */\nvar moveItem = function moveItem(state, fromPath, toPath, placement, config) {\n var from = getItemByPath(state, fromPath);\n var sourcePath = fromPath.pop();\n var source = fromPath.size > 1 ? getItemByPath(state, sourcePath) : null;\n var sourceChildren = source ? source.get(\"children1\") : null;\n var to = getItemByPath(state, toPath);\n var targetPath = placement == constants.PLACEMENT_APPEND || placement == constants.PLACEMENT_PREPEND ? toPath : toPath.pop();\n var target = placement == constants.PLACEMENT_APPEND || placement == constants.PLACEMENT_PREPEND ? to : toPath.size > 1 ? getItemByPath(state, targetPath) : null;\n var targetChildren = target ? target.get(\"children1\") : null;\n if (!source || !target || !from) return state;\n var isSameParent = source.get(\"id\") == target.get(\"id\");\n var isSourceInsideTarget = targetPath.size < sourcePath.size && deepEqual(targetPath.toArray(), sourcePath.toArray().slice(0, targetPath.size));\n var isTargetInsideSource = targetPath.size > sourcePath.size && deepEqual(sourcePath.toArray(), targetPath.toArray().slice(0, sourcePath.size));\n var sourceSubpathFromTarget = null;\n var targetSubpathFromSource = null;\n if (isSourceInsideTarget) {\n sourceSubpathFromTarget = Immutable.List(sourcePath.toArray().slice(targetPath.size));\n } else if (isTargetInsideSource) {\n targetSubpathFromSource = Immutable.List(targetPath.toArray().slice(sourcePath.size));\n }\n var newTargetChildren = targetChildren,\n newSourceChildren = sourceChildren;\n if (!isTargetInsideSource) newSourceChildren = newSourceChildren[\"delete\"](from.get(\"id\"));\n if (isSameParent) {\n newTargetChildren = newSourceChildren;\n } else if (isSourceInsideTarget) {\n newTargetChildren = newTargetChildren.updateIn(expandTreeSubpath(sourceSubpathFromTarget, \"children1\"), function (_oldChildren) {\n return newSourceChildren;\n });\n }\n if (placement == constants.PLACEMENT_BEFORE || placement == constants.PLACEMENT_AFTER) {\n newTargetChildren = Immutable.OrderedMap().withMutations(function (r) {\n var _iterator = _createForOfIteratorHelper(newTargetChildren.entries()),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n itemId = _step$value[0],\n item = _step$value[1];\n if (itemId == to.get(\"id\") && placement == constants.PLACEMENT_BEFORE) {\n r.set(from.get(\"id\"), from);\n }\n r.set(itemId, item);\n if (itemId == to.get(\"id\") && placement == constants.PLACEMENT_AFTER) {\n r.set(from.get(\"id\"), from);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n });\n } else if (placement == constants.PLACEMENT_APPEND) {\n newTargetChildren = newTargetChildren.merge(_defineProperty({}, from.get(\"id\"), from));\n } else if (placement == constants.PLACEMENT_PREPEND) {\n newTargetChildren = Immutable.OrderedMap(_defineProperty({}, from.get(\"id\"), from)).merge(newTargetChildren);\n }\n if (isTargetInsideSource) {\n newSourceChildren = newSourceChildren.updateIn(expandTreeSubpath(targetSubpathFromSource, \"children1\"), function (_oldChildren) {\n return newTargetChildren;\n });\n newSourceChildren = newSourceChildren[\"delete\"](from.get(\"id\"));\n }\n if (!isSameParent && !isSourceInsideTarget) state = state.updateIn(expandTreePath(sourcePath, \"children1\"), function (_oldChildren) {\n return newSourceChildren;\n });\n if (!isTargetInsideSource) state = state.updateIn(expandTreePath(targetPath, \"children1\"), function (_oldChildren) {\n return newTargetChildren;\n });\n state = fixPathsInTree(state);\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {integer} delta\n * @param {*} srcKey\n */\nvar setFieldSrc = function setFieldSrc(state, path, srcKey, config) {\n var keepInputOnChangeFieldSrc = config.settings.keepInputOnChangeFieldSrc;\n\n // get fieldType for \"memory effect\"\n var currentRule = state.getIn(expandTreePath(path));\n var currentType = currentRule.get(\"type\");\n var currentProperties = currentRule.get(\"properties\");\n var currentField = currentProperties.get(\"field\");\n //const currentFieldSrc = currentProperties.get(\"fieldSrc\");\n var currentFielType = currentProperties.get(\"fieldType\");\n var currentFieldConfig = getFieldConfig(config, currentField);\n var fieldType = (currentFieldConfig === null || currentFieldConfig === void 0 ? void 0 : currentFieldConfig.type) || currentFielType;\n if (!fieldType || fieldType === \"!group\" || fieldType === \"!struct\") {\n fieldType = null;\n }\n var canReuseValue = !selectTypes.includes(fieldType);\n var keepInput = keepInputOnChangeFieldSrc && !isEmptyItem(currentRule, config, true) && canReuseValue;\n if (!keepInput) {\n // clear ALL properties\n state = state.setIn(expandTreePath(path, \"properties\"), defaultRuleProperties(config, null, null, false));\n } else {\n // clear non-relevant properties\n state = state.setIn(expandTreePath(path, \"properties\", \"field\"), null);\n // set fieldType for \"memory effect\"\n state = state.setIn(expandTreePath(path, \"properties\", \"fieldType\"), fieldType);\n }\n\n // set fieldSrc\n state = state.setIn(expandTreePath(path, \"properties\", \"fieldSrc\"), srcKey);\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {string} field\n */\nvar setField = function setField(state, path, newField, config, asyncListValues, __isInternal) {\n var _newFieldConfig$opera;\n var isInternalValueChange;\n if (!newField) return {\n tree: removeItem(state, path),\n isInternalValueChange: isInternalValueChange\n };\n var _config$settings2 = config.settings,\n fieldSeparator = _config$settings2.fieldSeparator,\n setOpOnChangeField = _config$settings2.setOpOnChangeField,\n showErrorMessage = _config$settings2.showErrorMessage,\n keepInputOnChangeFieldSrc = _config$settings2.keepInputOnChangeFieldSrc;\n if (Array.isArray(newField)) newField = newField.join(fieldSeparator);\n var currentType = state.getIn(expandTreePath(path, \"type\"));\n var currentProperties = state.getIn(expandTreePath(path, \"properties\"));\n var wasRuleGroup = currentType == \"rule_group\";\n var currentFieldSrc = currentProperties.get(\"fieldSrc\");\n var newFieldConfig = getFieldConfig(config, newField);\n if (!newFieldConfig) {\n console.warn(\"No config for LHS \".concat(newField));\n return {\n tree: state,\n isInternalValueChange: isInternalValueChange\n };\n }\n var fieldType = newFieldConfig.type;\n if (fieldType === \"!group\" || fieldType === \"!struct\") {\n fieldType = null;\n }\n var currentOperator = currentProperties.get(\"operator\");\n var currentOperatorOptions = currentProperties.get(\"operatorOptions\");\n var currentField = currentProperties.get(\"field\");\n var currentValue = currentProperties.get(\"value\");\n var _currentValueSrc = currentProperties.get(\"valueSrc\", new Immutable.List());\n var _currentValueType = currentProperties.get(\"valueType\", new Immutable.List());\n var isRuleGroup = newFieldConfig.type == \"!group\";\n var isRuleGroupExt = isRuleGroup && newFieldConfig.mode == \"array\";\n var isChangeToAnotherType = wasRuleGroup != isRuleGroup;\n var wasOkWithoutField = !currentField && currentFieldSrc && currentOperator;\n\n // If the newly selected field supports the same operator the rule currently\n // uses, keep it selected.\n var lastOp = newFieldConfig && ((_newFieldConfig$opera = newFieldConfig.operators) === null || _newFieldConfig$opera === void 0 ? void 0 : _newFieldConfig$opera.indexOf(currentOperator)) !== -1 ? currentOperator : null;\n var newOperator = null;\n var availOps = currentFieldSrc === \"func\" ? getOperatorsForType(config, fieldType) : getOperatorsForField(config, newField);\n if (availOps && availOps.length == 1) newOperator = availOps[0];else if (availOps && availOps.length > 1) {\n var _iterator2 = _createForOfIteratorHelper(setOpOnChangeField || []),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var strategy = _step2.value;\n if (strategy == \"keep\" && !isChangeToAnotherType) newOperator = lastOp;else if (strategy == \"default\") newOperator = getDefaultOperator(config, newField, false);else if (strategy == \"first\") newOperator = getFirstOperator(config, newField);\n if (newOperator)\n //found op for strategy\n break;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n if (!isRuleGroup && !newFieldConfig.operators) {\n console.warn(\"Type \".concat(newFieldConfig.type, \" is not supported\"));\n return {\n tree: state,\n isInternalValueChange: isInternalValueChange\n };\n }\n if (wasRuleGroup && !isRuleGroup) {\n state = state.setIn(expandTreePath(path, \"type\"), \"rule\");\n state = state.deleteIn(expandTreePath(path, \"children1\"));\n state = state.setIn(expandTreePath(path, \"properties\"), new Immutable.OrderedMap());\n }\n if (isRuleGroup) {\n state = state.setIn(expandTreePath(path, \"type\"), \"rule_group\");\n var _getNewValueForFieldO = getNewValueForFieldOp(config, config, currentProperties, newField, newOperator, \"field\", true),\n canReuseValue = _getNewValueForFieldO.canReuseValue,\n newValue = _getNewValueForFieldO.newValue,\n newValueSrc = _getNewValueForFieldO.newValueSrc,\n newValueType = _getNewValueForFieldO.newValueType,\n operatorCardinality = _getNewValueForFieldO.operatorCardinality;\n var groupProperties = defaultGroupProperties(config, newFieldConfig).merge({\n field: newField,\n fieldSrc: \"field\",\n mode: newFieldConfig.mode\n });\n if (isRuleGroupExt) {\n groupProperties = groupProperties.merge({\n operator: newOperator,\n value: newValue,\n valueSrc: newValueSrc,\n valueType: newValueType\n });\n }\n state = state.setIn(expandTreePath(path, \"children1\"), new Immutable.OrderedMap());\n state = state.setIn(expandTreePath(path, \"properties\"), groupProperties);\n if (newFieldConfig.initialEmptyWhere && operatorCardinality == 1) {// just `COUNT(grp) > 1` without `HAVING ..`\n // no childeren\n } else {\n state = addItem(state, path, \"rule\", uuid(), defaultRuleProperties(config, newField), config);\n }\n state = fixPathsInTree(state);\n } else {\n state = state.updateIn(expandTreePath(path, \"properties\"), function (map) {\n return map.withMutations(function (current) {\n var _getNewValueForFieldO2 = getNewValueForFieldOp(config, config, current, newField, newOperator, \"field\", true),\n canReuseValue = _getNewValueForFieldO2.canReuseValue,\n newValue = _getNewValueForFieldO2.newValue,\n newValueSrc = _getNewValueForFieldO2.newValueSrc,\n newValueType = _getNewValueForFieldO2.newValueType,\n newValueError = _getNewValueForFieldO2.newValueError;\n if (showErrorMessage) {\n current = current.set(\"valueError\", newValueError);\n }\n var newOperatorOptions = canReuseValue ? currentOperatorOptions : defaultOperatorOptions(config, newOperator, newField);\n isInternalValueChange = __isInternal; //todo: filter edge cases?\n return current.set(\"field\", newField)[\"delete\"](\"fieldType\") // remove \"memory effect\"\n .set(\"fieldSrc\", currentFieldSrc).set(\"operator\", newOperator).set(\"operatorOptions\", newOperatorOptions).set(\"value\", newValue).set(\"valueSrc\", newValueSrc).set(\"valueType\", newValueType)[\"delete\"](\"asyncListValues\");\n });\n });\n }\n return {\n tree: state,\n isInternalValueChange: isInternalValueChange\n };\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {string} operator\n */\nvar setOperator = function setOperator(state, path, newOperator, config) {\n var showErrorMessage = config.settings.showErrorMessage;\n var properties = state.getIn(expandTreePath(path, \"properties\"));\n var children = state.getIn(expandTreePath(path, \"children1\"));\n var currentField = properties.get(\"field\");\n var currentFieldSrc = properties.get(\"fieldSrc\");\n var fieldConfig = getFieldConfig(config, currentField);\n var isRuleGroup = (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type) == \"!group\";\n var operatorConfig = getOperatorConfig(config, newOperator, currentField);\n var operatorCardinality = operatorConfig ? defaultValue(operatorConfig.cardinality, 1) : null;\n state = state.updateIn(expandTreePath(path, \"properties\"), function (map) {\n return map.withMutations(function (current) {\n var currentField = current.get(\"field\");\n var currentOperatorOptions = current.get(\"operatorOptions\");\n var _currentValue = current.get(\"value\", new Immutable.List());\n var _currentValueSrc = current.get(\"valueSrc\", new Immutable.List());\n var _currentOperator = current.get(\"operator\");\n var _getNewValueForFieldO3 = getNewValueForFieldOp(config, config, current, currentField, newOperator, \"operator\", true),\n canReuseValue = _getNewValueForFieldO3.canReuseValue,\n newValue = _getNewValueForFieldO3.newValue,\n newValueSrc = _getNewValueForFieldO3.newValueSrc,\n newValueType = _getNewValueForFieldO3.newValueType,\n newValueError = _getNewValueForFieldO3.newValueError;\n if (showErrorMessage) {\n current = current.set(\"valueError\", newValueError);\n }\n var newOperatorOptions = canReuseValue ? currentOperatorOptions : defaultOperatorOptions(config, newOperator, currentField);\n if (!canReuseValue) {\n current = current[\"delete\"](\"asyncListValues\");\n }\n return current.set(\"operator\", newOperator).set(\"operatorOptions\", newOperatorOptions).set(\"value\", newValue).set(\"valueSrc\", newValueSrc).set(\"valueType\", newValueType);\n });\n });\n if (isRuleGroup) {\n if (operatorCardinality == 0 && children.size == 0) {\n state = addItem(state, path, \"rule\", uuid(), defaultRuleProperties(config, currentField), config);\n }\n }\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {integer} delta\n * @param {*} value\n * @param {string} valueType\n * @param {*} asyncListValues\n * @param {boolean} __isInternal\n */\nvar setValue = function setValue(state, path, delta, value, valueType, config, asyncListValues, __isInternal) {\n var _config$settings3 = config.settings,\n fieldSeparator = _config$settings3.fieldSeparator,\n showErrorMessage = _config$settings3.showErrorMessage;\n var isInternalValueChange;\n var valueSrc = state.getIn(expandTreePath(path, \"properties\", \"valueSrc\", delta + \"\")) || null;\n if (valueSrc === \"field\" && Array.isArray(value)) value = value.join(fieldSeparator);\n var field = state.getIn(expandTreePath(path, \"properties\", \"field\")) || null;\n //const fieldSrc = state.getIn(expandTreePath(path, \"properties\", \"fieldSrc\")) || null;\n var operator = state.getIn(expandTreePath(path, \"properties\", \"operator\")) || null;\n var operatorConfig = getOperatorConfig(config, operator, field);\n var operatorCardinality = operator ? defaultValue(operatorConfig.cardinality, 1) : null;\n var isEndValue = false;\n var calculatedValueType = valueType || calculateValueType(value, valueSrc, config);\n var canFix = false;\n var _validateValue = validateValue(config, field, field, operator, value, calculatedValueType, valueSrc, asyncListValues, canFix, isEndValue, true),\n _validateValue2 = _slicedToArray(_validateValue, 2),\n validateError = _validateValue2[0],\n fixedValue = _validateValue2[1];\n var isValid = !validateError;\n if (fixedValue !== value) {\n // eg, get exact value from listValues (not string)\n value = fixedValue;\n }\n\n // Additional validation for range values\n if (showErrorMessage) {\n var w = getWidgetForFieldOp(config, field, operator, valueSrc);\n var fieldWidgetDefinition = getFieldWidgetConfig(config, field, operator, w, valueSrc);\n var valueSrcs = Array.from({\n length: operatorCardinality\n }, function (_, i) {\n return state.getIn(expandTreePath(path, \"properties\", \"valueSrc\", i + \"\")) || null;\n });\n if (operatorConfig && operatorConfig.validateValues && valueSrcs.filter(function (vs) {\n return vs == \"value\" || vs == null;\n }).length == operatorCardinality) {\n var values = Array.from({\n length: operatorCardinality\n }, function (_, i) {\n return i == delta ? value : state.getIn(expandTreePath(path, \"properties\", \"value\", i + \"\")) || null;\n });\n var jsValues = fieldWidgetDefinition && fieldWidgetDefinition.toJS ? values.map(function (v) {\n return fieldWidgetDefinition.toJS.call(config.ctx, v, fieldWidgetDefinition);\n }) : values;\n var rangeValidateError = operatorConfig.validateValues(jsValues);\n state = state.setIn(expandTreePath(path, \"properties\", \"valueError\", operatorCardinality), rangeValidateError);\n }\n }\n var lastValueArr = state.getIn(expandTreePath(path, \"properties\", \"value\"));\n if (!lastValueArr) {\n state = state.setIn(expandTreePath(path, \"properties\", \"value\"), new Immutable.List(new Array(operatorCardinality))).setIn(expandTreePath(path, \"properties\", \"valueType\"), new Immutable.List(new Array(operatorCardinality))).setIn(expandTreePath(path, \"properties\", \"valueError\"), new Immutable.List(new Array(operatorCardinality)));\n }\n var lastValue = state.getIn(expandTreePath(path, \"properties\", \"value\", delta + \"\"));\n var lastError = state.getIn(expandTreePath(path, \"properties\", \"valueError\", delta));\n var isLastEmpty = lastValue == undefined;\n var isLastError = !!lastError;\n if (isValid || showErrorMessage) {\n state = state.deleteIn(expandTreePath(path, \"properties\", \"asyncListValues\"));\n // set only good value\n if (typeof value === \"undefined\") {\n state = state.setIn(expandTreePath(path, \"properties\", \"value\", delta + \"\"), undefined);\n state = state.setIn(expandTreePath(path, \"properties\", \"valueType\", delta + \"\"), null);\n } else {\n if (asyncListValues) {\n state = state.setIn(expandTreePath(path, \"properties\", \"asyncListValues\"), asyncListValues);\n }\n state = state.setIn(expandTreePath(path, \"properties\", \"value\", delta + \"\"), value);\n state = state.setIn(expandTreePath(path, \"properties\", \"valueType\", delta + \"\"), calculatedValueType);\n isInternalValueChange = __isInternal && !isLastEmpty && !isLastError;\n }\n }\n if (showErrorMessage) {\n state = state.setIn(expandTreePath(path, \"properties\", \"valueError\", delta), validateError);\n }\n if (__isInternal && (isValid && isLastError || !isValid && !isLastError)) {\n state = state.setIn(expandTreePath(path, \"properties\", \"valueError\", delta), validateError);\n isInternalValueChange = false;\n }\n return {\n tree: state,\n isInternalValueChange: isInternalValueChange\n };\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {integer} delta\n * @param {*} srcKey\n */\nvar setValueSrc = function setValueSrc(state, path, delta, srcKey, config) {\n var showErrorMessage = config.settings.showErrorMessage;\n var field = state.getIn(expandTreePath(path, \"properties\", \"field\")) || null;\n var fieldSrc = state.getIn(expandTreePath(path, \"properties\", \"fieldSrc\")) || null;\n var operator = state.getIn(expandTreePath(path, \"properties\", \"operator\")) || null;\n state = state.setIn(expandTreePath(path, \"properties\", \"value\", delta + \"\"), undefined);\n state = state.setIn(expandTreePath(path, \"properties\", \"valueType\", delta + \"\"), null);\n state = state.deleteIn(expandTreePath(path, \"properties\", \"asyncListValues\"));\n if (showErrorMessage) {\n // clear value error\n state = state.setIn(expandTreePath(path, \"properties\", \"valueError\", delta), null);\n\n // if current operator is range, clear possible range error\n var operatorConfig = getOperatorConfig(config, operator, field);\n var operatorCardinality = operator ? defaultValue(operatorConfig.cardinality, 1) : null;\n if (operatorConfig.validateValues) {\n state = state.setIn(expandTreePath(path, \"properties\", \"valueError\", operatorCardinality), null);\n }\n }\n\n // set valueSrc\n if (typeof srcKey === \"undefined\") {\n state = state.setIn(expandTreePath(path, \"properties\", \"valueSrc\", delta + \"\"), null);\n } else {\n state = state.setIn(expandTreePath(path, \"properties\", \"valueSrc\", delta + \"\"), srcKey);\n }\n\n // maybe set default value\n if (srcKey) {\n var properties = state.getIn(expandTreePath(path, \"properties\"));\n // this call should return canReuseValue = false and provide default value\n var _getNewValueForFieldO4 = getNewValueForFieldOp(config, config, properties, field, operator, \"valueSrc\", true),\n canReuseValue = _getNewValueForFieldO4.canReuseValue,\n newValue = _getNewValueForFieldO4.newValue,\n newValueSrc = _getNewValueForFieldO4.newValueSrc,\n newValueType = _getNewValueForFieldO4.newValueType,\n newValueError = _getNewValueForFieldO4.newValueError;\n if (!canReuseValue && newValueSrc.get(delta) == srcKey) {\n state = state.setIn(expandTreePath(path, \"properties\", \"value\", delta + \"\"), newValue.get(delta));\n state = state.setIn(expandTreePath(path, \"properties\", \"valueType\", delta + \"\"), newValueType.get(delta));\n }\n }\n return state;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {Immutable.List} path\n * @param {string} name\n * @param {*} value\n */\nvar setOperatorOption = function setOperatorOption(state, path, name, value) {\n return state.setIn(expandTreePath(path, \"properties\", \"operatorOptions\", name), value);\n};\n\n/**\n * @param {Immutable.Map} state\n */\nvar checkEmptyGroups = function checkEmptyGroups(state, config) {\n var canLeaveEmptyGroup = config.settings.canLeaveEmptyGroup;\n if (!canLeaveEmptyGroup) {\n state = fixEmptyGroupsInTree(state);\n }\n return state;\n};\n\n/**\n * \n */\nvar calculateValueType = function calculateValueType(value, valueSrc, config) {\n var calculatedValueType = null;\n if (value) {\n if (valueSrc === \"field\") {\n var fieldConfig = getFieldConfig(config, value);\n if (fieldConfig) {\n calculatedValueType = fieldConfig.type;\n }\n } else if (valueSrc === \"func\") {\n var funcKey = value.get(\"func\");\n if (funcKey) {\n var funcConfig = getFuncConfig(config, funcKey);\n if (funcConfig) {\n calculatedValueType = funcConfig.returnType;\n }\n }\n }\n }\n return calculatedValueType;\n};\nvar getField = function getField(state, path) {\n var field = state.getIn(expandTreePath(path, \"properties\", \"field\")) || null;\n return field;\n};\nvar emptyDrag = {\n dragging: {\n id: null,\n x: null,\n y: null,\n w: null,\n h: null\n },\n mousePos: {},\n dragStart: {\n id: null\n }\n};\nvar getActionMeta = function getActionMeta(action, state) {\n if (!action || !action.type) return null;\n var actionKeysToOmit = [\"config\", \"asyncListValues\", \"__isInternal\"];\n var actionTypesToIgnore = [constants.SET_TREE, constants.SET_DRAG_START, constants.SET_DRAG_PROGRESS, constants.SET_DRAG_END];\n var meta = mapValues(omit(action, actionKeysToOmit), applyToJS);\n var affectedField = action.path && getField(state.tree, action.path) || action.field;\n if (affectedField) {\n var _affectedField;\n if ((_affectedField = affectedField) !== null && _affectedField !== void 0 && _affectedField.toJS) affectedField = affectedField.toJS();\n meta.affectedField = affectedField;\n }\n if (actionTypesToIgnore.includes(action.type) || action.type.indexOf(\"@@redux\") == 0) meta = null;\n return meta;\n};\n\n/**\n * @param {Immutable.Map} state\n * @param {object} action\n */\nexport default (function (config, tree, getMemoizedTree, setLastTree) {\n var initTree = tree;\n var emptyState = _objectSpread({\n tree: initTree\n }, emptyDrag);\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var unset = {\n __isInternalValueChange: undefined,\n __lastAction: undefined\n };\n var set = {};\n var actionMeta = getActionMeta(action, state);\n switch (action === null || action === void 0 ? void 0 : action.type) {\n case constants.SET_TREE:\n {\n var validatedTree = getMemoizedTree(action.config, action.tree);\n set.tree = validatedTree;\n break;\n }\n case constants.ADD_CASE_GROUP:\n {\n set.tree = addNewGroup(state.tree, action.path, \"case_group\", action.id, action.properties, action.config, action.children, action.meta);\n break;\n }\n case constants.ADD_GROUP:\n {\n set.tree = addNewGroup(state.tree, action.path, \"group\", action.id, action.properties, action.config, action.children, action.meta);\n break;\n }\n case constants.REMOVE_GROUP:\n {\n set.tree = removeGroup(state.tree, action.path, action.config);\n break;\n }\n case constants.ADD_RULE:\n {\n set.tree = addItem(state.tree, action.path, action.ruleType, action.id, action.properties, action.config, action.children);\n break;\n }\n case constants.REMOVE_RULE:\n {\n set.tree = removeRule(state.tree, action.path, action.config);\n break;\n }\n case constants.SET_CONJUNCTION:\n {\n set.tree = setConjunction(state.tree, action.path, action.conjunction);\n break;\n }\n case constants.SET_NOT:\n {\n set.tree = setNot(state.tree, action.path, action.not);\n break;\n }\n case constants.SET_FIELD:\n {\n var _setField = setField(state.tree, action.path, action.field, action.config, action.asyncListValues, action.__isInternal),\n _tree = _setField.tree,\n isInternalValueChange = _setField.isInternalValueChange;\n set.__isInternalValueChange = isInternalValueChange;\n set.tree = _tree;\n break;\n }\n case constants.SET_FIELD_SRC:\n {\n set.tree = setFieldSrc(state.tree, action.path, action.srcKey, action.config);\n break;\n }\n case constants.SET_LOCK:\n {\n set.tree = setLock(state.tree, action.path, action.lock);\n break;\n }\n case constants.SET_OPERATOR:\n {\n set.tree = setOperator(state.tree, action.path, action.operator, action.config);\n break;\n }\n case constants.SET_VALUE:\n {\n var _setValue = setValue(state.tree, action.path, action.delta, action.value, action.valueType, action.config, action.asyncListValues, action.__isInternal),\n _tree2 = _setValue.tree,\n _isInternalValueChange = _setValue.isInternalValueChange;\n set.__isInternalValueChange = _isInternalValueChange;\n set.tree = _tree2;\n break;\n }\n case constants.SET_VALUE_SRC:\n {\n set.tree = setValueSrc(state.tree, action.path, action.delta, action.srcKey, action.config);\n break;\n }\n case constants.SET_OPERATOR_OPTION:\n {\n set.tree = setOperatorOption(state.tree, action.path, action.name, action.value);\n break;\n }\n case constants.MOVE_ITEM:\n {\n set.tree = moveItem(state.tree, action.fromPath, action.toPath, action.placement, action.config);\n break;\n }\n case constants.SET_DRAG_START:\n {\n set.dragStart = action.dragStart;\n set.dragging = action.dragging;\n set.mousePos = action.mousePos;\n break;\n }\n case constants.SET_DRAG_PROGRESS:\n {\n set.mousePos = action.mousePos;\n set.dragging = action.dragging;\n break;\n }\n case constants.SET_DRAG_END:\n {\n set.tree = checkEmptyGroups(state.tree, config);\n set = _objectSpread(_objectSpread({}, set), emptyDrag);\n break;\n }\n default:\n {\n break;\n }\n }\n if (actionMeta) {\n set.__lastAction = actionMeta;\n }\n if (setLastTree && set.tree && state.tree) {\n setLastTree(state.tree);\n }\n return _objectSpread(_objectSpread(_objectSpread({}, state), unset), set);\n };\n});","import Immutable from \"immutable\";\nimport { toImmutableList } from \"../utils/stuff\";\nimport * as constants from \"../stores/constants\";\nimport { defaultRuleProperties, defaultGroupProperties } from \"../utils/defaultUtils\";\nimport uuid from \"../utils/uuid\";\n\n/**\n * @param {object} config\n * @param {Immutable.Map} tree\n */\nexport var setTree = function setTree(config, tree) {\n return {\n type: constants.SET_TREE,\n tree: tree,\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nexport var addRule = function addRule(config, path, properties) {\n var ruleType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : \"rule\";\n var children = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var parentRuleGroupPath = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n return {\n type: constants.ADD_RULE,\n ruleType: ruleType,\n children: children,\n path: toImmutableList(path),\n id: uuid(),\n properties: defaultRuleProperties(config, parentRuleGroupPath).merge(properties || {}),\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n */\nexport var removeRule = function removeRule(config, path) {\n return {\n type: constants.REMOVE_RULE,\n path: toImmutableList(path),\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nexport var addDefaultCaseGroup = function addDefaultCaseGroup(config, path, properties) {\n var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n type: constants.ADD_CASE_GROUP,\n path: toImmutableList(path),\n children: children,\n id: uuid(),\n properties: defaultGroupProperties(config).merge(properties || {}),\n config: config,\n meta: {\n isDefaultCase: true\n }\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nexport var addCaseGroup = function addCaseGroup(config, path, properties) {\n var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n type: constants.ADD_CASE_GROUP,\n path: toImmutableList(path),\n children: children,\n id: uuid(),\n properties: defaultGroupProperties(config).merge(properties || {}),\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {Immutable.Map} properties\n */\nexport var addGroup = function addGroup(config, path, properties) {\n var children = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n type: constants.ADD_GROUP,\n path: toImmutableList(path),\n children: children,\n id: uuid(),\n properties: defaultGroupProperties(config).merge(properties || {}),\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n */\nexport var removeGroup = function removeGroup(config, path) {\n return {\n type: constants.REMOVE_GROUP,\n path: toImmutableList(path),\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Array} fromPath\n * @param {Array} toPath\n * @param {String} placement, see constants PLACEMENT_*\n */\nexport var moveItem = function moveItem(config, fromPath, toPath, placement) {\n return {\n type: constants.MOVE_ITEM,\n fromPath: toImmutableList(fromPath),\n toPath: toImmutableList(toPath),\n placement: placement,\n config: config\n };\n};","import * as constants from \"../stores/constants\";\nimport { toImmutableList } from \"../utils/stuff\";\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {string} conjunction\n */\nexport var setConjunction = function setConjunction(config, path, conjunction) {\n return {\n type: constants.SET_CONJUNCTION,\n path: toImmutableList(path),\n conjunction: conjunction\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {bool} not\n */\nexport var setNot = function setNot(config, path, not) {\n return {\n type: constants.SET_NOT,\n path: toImmutableList(path),\n not: not\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {bool} lock\n */\nexport var setLock = function setLock(config, path, lock) {\n return {\n type: constants.SET_LOCK,\n path: toImmutableList(path),\n lock: lock\n };\n};","import * as constants from \"../stores/constants\";\nimport { toImmutableList } from \"../utils/stuff\";\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {string} field\n */\nexport var setField = function setField(config, path, field, asyncListValues, __isInternal) {\n return {\n type: constants.SET_FIELD,\n path: toImmutableList(path),\n field: field,\n config: config,\n asyncListValues: asyncListValues,\n __isInternal: __isInternal\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {*} srcKey\n */\nexport var setFieldSrc = function setFieldSrc(config, path, srcKey) {\n return {\n type: constants.SET_FIELD_SRC,\n path: toImmutableList(path),\n srcKey: srcKey,\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {string} operator\n */\nexport var setOperator = function setOperator(config, path, operator) {\n return {\n type: constants.SET_OPERATOR,\n path: toImmutableList(path),\n operator: operator,\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {integer} delta\n * @param {*} value\n * @param {string} valueType\n * @param {*} asyncListValues\n * @param {boolean} __isInternal\n */\nexport var setValue = function setValue(config, path, delta, value, valueType, asyncListValues, __isInternal) {\n return {\n type: constants.SET_VALUE,\n path: toImmutableList(path),\n delta: delta,\n value: value,\n valueType: valueType,\n asyncListValues: asyncListValues,\n config: config,\n __isInternal: __isInternal\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {integer} delta\n * @param {*} srcKey\n */\nexport var setValueSrc = function setValueSrc(config, path, delta, srcKey) {\n return {\n type: constants.SET_VALUE_SRC,\n path: toImmutableList(path),\n delta: delta,\n srcKey: srcKey,\n config: config\n };\n};\n\n/**\n * @param {object} config\n * @param {Immutable.List} path\n * @param {string} name\n * @param {*} value\n */\nexport var setOperatorOption = function setOperatorOption(config, path, name, value) {\n return {\n type: constants.SET_OPERATOR_OPTION,\n path: toImmutableList(path),\n name: name,\n value: value,\n config: config\n };\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport * as Export from \"./export\";\nimport * as Import from \"./import\";\nimport * as BasicUtils from \"./utils\";\nimport * as BasicFuncs from \"./config/funcs\";\nimport CoreConfig, { ConfigMixins } from \"./config\";\nimport TreeStore from \"./stores/tree\";\nimport * as TreeActions from \"./actions\";\nvar Utils = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, BasicUtils), Export), Import), {}, {\n ConfigMixins: ConfigMixins\n});\nexport { Utils, Export, Import, BasicFuncs, CoreConfig, TreeStore, TreeActions };","import { TreeStore } from \"@react-awesome-query-builder/core\";\nexport default TreeStore;","import React from \"react\";\nexport default /*#__PURE__*/React.createContext();","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a <Provider>, \") + \"or pass a custom React context provider to <Provider> and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","export var ADD_GROUP = \"ADD_GROUP\";\nexport var ADD_CASE_GROUP = \"ADD_CASE_GROUP\";\nexport var REMOVE_GROUP = \"REMOVE_GROUP\";\nexport var SET_CONJUNCTION = \"SET_CONJUNCTION\";\nexport var SET_NOT = \"SET_NOT\";\nexport var ADD_RULE = \"ADD_RULE\";\nexport var REMOVE_RULE = \"REMOVE_RULE\";\nexport var SET_FIELD = \"SET_FIELD\";\nexport var SET_FIELD_SRC = \"SET_FIELD_SRC\";\nexport var SET_OPERATOR = \"SET_OPERATOR\";\nexport var SET_VALUE = \"SET_VALUE\";\nexport var SET_VALUE_SRC = \"SET_VALUE_SRC\";\nexport var SET_OPERATOR_OPTION = \"SET_OPERATOR_OPTION\";\nexport var SET_LOCK = \"SET_LOCK\";\nexport var SET_TREE = \"SET_TREE\";\nexport var MOVE_ITEM = \"MOVE_ITEM\";\nexport var PLACEMENT_AFTER = \"after\";\nexport var PLACEMENT_BEFORE = \"before\";\nexport var PLACEMENT_APPEND = \"append\";\nexport var PLACEMENT_PREPEND = \"prepend\";\nexport var SET_DRAG_PROGRESS = \"SET_DRAG_PROGRESS\";\nexport var SET_DRAG_START = \"SET_DRAG_START\";\nexport var SET_DRAG_END = \"SET_DRAG_END\";","import * as constants from \"../stores/constants\";\n\n/**\n * @param {Object} mousePos\n * @param {Object} dragging\n */\nexport var setDragProgress = function setDragProgress(mousePos, dragging) {\n return {\n type: constants.SET_DRAG_PROGRESS,\n mousePos: mousePos,\n dragging: dragging\n };\n};\n\n/**\n * @param {Object} dragStart\n * @param {Object} dragging\n * @param {Object} mousePos\n */\nexport var setDragStart = function setDragStart(dragStart, dragging, mousePos) {\n return {\n type: constants.SET_DRAG_START,\n dragStart: dragStart,\n dragging: dragging,\n mousePos: mousePos\n };\n};\n\n/**\n *\n */\nexport var setDragEnd = function setDragEnd() {\n return {\n type: constants.SET_DRAG_END\n };\n};","import { TreeActions } from \"@react-awesome-query-builder/core\";\nimport * as drag from \"./drag\";\nvar tree = TreeActions.tree,\n group = TreeActions.group,\n rule = TreeActions.rule;\nexport { tree, group, rule, drag };","import _typeof from \"@babel/runtime/helpers/typeof\";\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport pick from \"lodash/pick\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n extendConfig = _Utils$ConfigUtils.extendConfig,\n configKeys = _Utils$ConfigUtils.configKeys;\nvar pickConfig = function pickConfig(props) {\n return pick(props, configKeys);\n};\nexport var createConfigMemo = function createConfigMemo() {\n var configStore = new Map();\n var maxSize = 2; // current and prev\n var configId = 0;\n var extendAndStore = function extendAndStore(config) {\n var extendedConfig = extendConfig(config, ++configId);\n if (configStore.size + 1 > maxSize) {\n configStore[\"delete\"](configStore.keys()[0]);\n }\n configStore.set(config, extendedConfig);\n return extendedConfig;\n };\n var findBasic = function findBasic(findConfig) {\n var _iterator = _createForOfIteratorHelper(configStore.keys()),\n _step;\n try {\n var _loop = function _loop() {\n var basicConfig = _step.value;\n var extConfig = configStore.get(basicConfig);\n var found = configKeys.map(function (k) {\n return extConfig[k] === findConfig[k];\n }).filter(function (v) {\n return !v;\n }).length === 0;\n if (found) {\n return {\n v: basicConfig\n };\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return findConfig;\n };\n var findExtended = function findExtended(findConfig) {\n // strict find:\n // return configStore.get(findConfig) || configStore.values().find(ec => ec === findConfig);\n var _iterator2 = _createForOfIteratorHelper(configStore.keys()),\n _step2;\n try {\n var _loop2 = function _loop2() {\n var savedConfig = _step2.value;\n var found = configKeys.map(function (k) {\n return savedConfig[k] === findConfig[k];\n }).filter(function (v) {\n return !v;\n }).length === 0;\n if (found) {\n return {\n v: configStore.get(savedConfig)\n };\n }\n };\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _ret2 = _loop2();\n if (_typeof(_ret2) === \"object\") return _ret2.v;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n var _iterator3 = _createForOfIteratorHelper(configStore.values()),\n _step3;\n try {\n var _loop3 = function _loop3() {\n var extendedConfig = _step3.value;\n var found = configKeys.map(function (k) {\n return extendedConfig[k] === findConfig[k];\n }).filter(function (v) {\n return !v;\n }).length === 0;\n if (found) {\n return {\n v: extendedConfig\n };\n }\n };\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _ret3 = _loop3();\n if (_typeof(_ret3) === \"object\") return _ret3.v;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return null;\n };\n var findOrExtend = function findOrExtend(config) {\n return findExtended(config) || extendAndStore(config);\n };\n return {\n getExtended: function getExtended(props) {\n return findOrExtend(pickConfig(props));\n },\n getBasic: findBasic\n };\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nexport var defaultValue = function defaultValue(value, _default) {\n return typeof value === \"undefined\" ? _default : value;\n};\nexport var truncateString = function truncateString(str, n, useWordBoundary) {\n if (!n || str.length <= n) {\n return str;\n }\n var subString = str.substr(0, n - 1);\n return (useWordBoundary ? subString.substr(0, subString.lastIndexOf(\" \")) : subString) + \"...\";\n};\nexport var immutableEqual = function immutableEqual(v1, v2) {\n if (v1 === v2) {\n return true;\n } else {\n return v1.equals(v2);\n }\n};\n\n// const deepEqual = function(v1, v2) {\n// if (v1 === v2) {\n// return true;\n// } else if (Map.isMap(v1)) {\n// return v1.equals(v2);\n// } else {\n// return JSON.stringify(v1) == JSON.stringify(v2);\n// }\n// };\n\nexport var shallowEqual = function shallowEqual(a, b) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (a === b) {\n return true;\n } else if (Array.isArray(a)) return shallowEqualArrays(a, b, deep);else if (a && typeof a.equals === \"function\") return a.equals(b);else if (_typeof(a) === \"object\") return shallowEqualObjects(a, b, deep);else return a === b;\n};\nfunction shallowEqualArrays(arrA, arrB) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n var len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var isEqual = deep ? shallowEqual(arrA[i], arrB[i], deep) : arrA[i] === arrB[i];\n if (!isEqual) {\n return false;\n }\n }\n return true;\n}\nfunction shallowEqualObjects(objA, objB) {\n var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n var isEqual = deep ? shallowEqual(objA[key], objB[key], deep) : objA[key] === objB[key];\n if (!isEqual) {\n return false;\n }\n }\n return true;\n}\nvar isDev = function isDev() {\n return typeof process !== \"undefined\" && process.env && process.env.NODE_ENV == \"development\";\n};\nexport var getLogger = function getLogger() {\n var devMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var verbose = devMode != undefined ? devMode : isDev();\n return verbose ? console : {\n error: function error() {},\n log: function log() {},\n warn: function warn() {},\n debug: function debug() {},\n info: function info() {}\n };\n};\nexport var logger = getLogger();","import { immutableEqual } from \"../utils/stuff\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nvar validateAndFixTree = Utils.validateAndFixTree;\nexport var createValidationMemo = function createValidationMemo() {\n var originalTree;\n var validatedTree;\n var configId;\n return function (config, tree) {\n var oldConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var sanitizeTree = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n if (!tree) {\n return null;\n }\n if (config.__configId === configId && (immutableEqual(tree, originalTree) || immutableEqual(tree, validatedTree))) {\n return validatedTree;\n } else {\n configId = config.__configId;\n originalTree = tree;\n if (sanitizeTree === false) {\n validatedTree = validateAndFixTree(tree, null, config, oldConfig || config, false, false);\n } else {\n validatedTree = validateAndFixTree(tree, null, config, oldConfig || config);\n }\n return validatedTree;\n }\n };\n};","import React from \"react\";\nimport mapValues from \"lodash/mapValues\";\nimport { shallowEqual } from \"./stuff\";\nvar getReactContainerType = function getReactContainerType(el) {\n if (el._reactRootContainer) {\n return \"root\";\n }\n if (Object.getOwnPropertyNames(el).filter(function (k) {\n return k.startsWith(\"__reactContainer\");\n }).length > 0) {\n return \"container\";\n }\n return undefined;\n};\nvar getReactRootNodeType = function getReactRootNodeType(node) {\n if (!node) {\n return undefined;\n }\n var type = getReactContainerType(node);\n if (type !== undefined) {\n return type;\n } else {\n return getReactRootNodeType(node.parentNode);\n }\n};\nexport var isUsingLegacyReactDomRender = function isUsingLegacyReactDomRender(node) {\n return getReactRootNodeType(node) === \"root\";\n};\nexport var liteShouldComponentUpdate = function liteShouldComponentUpdate(self, config) {\n return function (nextProps, nextState) {\n var prevProps = self.props;\n var prevState = self.state;\n var should = nextProps != prevProps || nextState != prevState;\n if (should) {\n if (prevState == nextState && prevProps != nextProps) {\n var chs = [];\n for (var k in nextProps) {\n var changed = nextProps[k] != prevProps[k];\n if (changed) {\n if (config[k] == \"ignore\") changed = false;else if (config[k] == \"shallow_deep\") changed = !shallowEqual(nextProps[k], prevProps[k], true);else if (config[k] == \"shallow\") changed = !shallowEqual(nextProps[k], prevProps[k]);else if (typeof config[k] == \"function\") changed = config[k](nextProps[k], prevProps[k], nextState);\n }\n if (changed) chs.push(k);\n }\n if (!chs.length) should = false;\n }\n }\n return should;\n };\n};\nexport var pureShouldComponentUpdate = function pureShouldComponentUpdate(self) {\n return function (nextProps, nextState) {\n return !shallowEqual(self.props, nextProps) || !shallowEqual(self.state, nextState);\n };\n};\nvar canUseOldComponentWillReceiveProps = function canUseOldComponentWillReceiveProps() {\n var v = React.version.split(\".\").map(parseInt.bind(null, 10));\n return v[0] == 16 && v[1] < 3 || v[0] < 16;\n};\nexport var useOnPropsChanged = function useOnPropsChanged(obj) {\n // 1. `shouldComponentUpdate` should be called after `componentWillReceiveProps`\n // 2. `shouldComponentUpdate` should not be used for PureComponent\n\n // Because `useOnPropsChanged` can only be applied to `Component` not `PureComponent`, make it pure now\n if (!obj.shouldComponentUpdate) {\n obj.shouldComponentUpdate = pureShouldComponentUpdate(obj);\n }\n if (canUseOldComponentWillReceiveProps()) {\n // Use old method\n obj.componentWillReceiveProps = function (nextProps) {\n obj.onPropsChanged(nextProps);\n };\n } else {\n // Simulate `componentWillReceiveProps` with `shouldComponentUpdate`\n var origShouldComponentUpdate = obj.shouldComponentUpdate;\n var newShouldComponentUpdate = function newShouldComponentUpdate(nextProps, nextState) {\n var shouldNotify = !shallowEqual(obj.props, nextProps);\n if (shouldNotify) {\n obj.onPropsChanged(nextProps);\n }\n var shouldUpdate = origShouldComponentUpdate.call(obj, nextProps, nextState);\n return shouldUpdate;\n };\n obj.shouldComponentUpdate = newShouldComponentUpdate.bind(obj);\n }\n};\nexport var bindActionCreators = function bindActionCreators(actionCreators, config, dispatch) {\n return mapValues(actionCreators, function (actionCreator) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return dispatch(actionCreator.apply(void 0, [config].concat(args)));\n };\n });\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport merge from \"lodash/merge\";\nimport { connect } from \"react-redux\";\nimport context from \"../stores/context\";\nimport PropTypes from \"prop-types\";\nimport * as actions from \"../actions\";\nimport { immutableEqual } from \"../utils/stuff\";\nimport { useOnPropsChanged, liteShouldComponentUpdate, bindActionCreators } from \"../utils/reactUtils\";\nvar Query = /*#__PURE__*/function (_Component) {\n _inherits(Query, _Component);\n var _super = _createSuper(Query);\n function Query(props) {\n var _this;\n _classCallCheck(this, Query);\n _this = _super.call(this, props);\n _this.shouldComponentUpdate = liteShouldComponentUpdate(_assertThisInitialized(_this), {\n tree: function tree(nextValue) {\n if (nextValue === _this.oldValidatedTree && _this.oldValidatedTree === _this.validatedTree) {\n // Got value dispatched from QueryContainer\n // Ignore, because we've just rendered it\n return false;\n }\n return true;\n }\n });\n useOnPropsChanged(_assertThisInitialized(_this));\n _this._updateActions(props);\n\n // For preventive validation (tree and config consistency)\n // When config has changed from QueryContainer, \n // but new dispatched validated tree value is not in redux store yet (tree prop is old)\n _this.validatedTree = props.getMemoizedTree(props.config, props.tree, undefined, props.sanitizeTree);\n _this.oldValidatedTree = _this.validatedTree;\n\n //props.onChange && props.onChange(this.validatedTree, props.config);\n return _this;\n }\n _createClass(Query, [{\n key: \"_updateActions\",\n value: function _updateActions(props) {\n var config = props.config,\n dispatch = props.dispatch;\n this.actions = bindActionCreators(_objectSpread(_objectSpread(_objectSpread({}, actions.tree), actions.group), actions.rule), config, dispatch);\n }\n }, {\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var onChange = nextProps.onChange;\n var oldConfig = this.props.config;\n var newTree = nextProps.tree;\n var oldTree = this.props.tree;\n var newConfig = nextProps.config;\n this.oldValidatedTree = this.validatedTree;\n this.validatedTree = newTree;\n if (oldConfig !== newConfig) {\n this._updateActions(nextProps);\n this.validatedTree = nextProps.getMemoizedTree(newConfig, newTree, oldConfig);\n }\n var validatedTreeChanged = !immutableEqual(this.validatedTree, this.oldValidatedTree);\n if (validatedTreeChanged) {\n var newBasicConfig = nextProps.getBasicConfig(newConfig);\n onChange && onChange(this.validatedTree, newBasicConfig, nextProps.__lastAction);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n renderBuilder = _this$props.renderBuilder,\n dispatch = _this$props.dispatch,\n __isInternalValueChange = _this$props.__isInternalValueChange;\n var builderProps = {\n tree: this.validatedTree,\n actions: this.actions,\n config: config,\n dispatch: dispatch,\n __isInternalValueChange: __isInternalValueChange\n };\n return renderBuilder(builderProps);\n }\n }]);\n return Query;\n}(Component);\nQuery.propTypes = {\n config: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n renderBuilder: PropTypes.func,\n tree: PropTypes.any //instanceOf(Immutable.Map)\n //dispatch: PropTypes.func.isRequired,\n //__isInternalValueChange\n //__lastAction\n //getMemoizedTree: PropTypes.func.isRequired,\n //getBasicConfig: PropTypes.func.isRequired,\n //sanitizeTree\n};\n\nvar ConnectedQuery = connect(function (state) {\n return {\n tree: state.tree,\n __isInternalValueChange: state.__isInternalValueChange,\n __lastAction: state.__lastAction\n };\n}, null, null, {\n context: context\n})(Query);\nConnectedQuery.displayName = \"ConnectedQuery\";\nexport default ConnectedQuery;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component, PureComponent } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport treeStoreReducer from \"../stores/tree\";\nimport context from \"../stores/context\";\nimport { createStore } from \"redux\";\nimport { Provider } from \"react-redux\";\nimport * as actions from \"../actions\";\nimport { createConfigMemo } from \"../utils/configUtils\";\nimport { immutableEqual } from \"../utils/stuff\";\nimport { createValidationMemo } from \"../utils/validation\";\nimport { liteShouldComponentUpdate, useOnPropsChanged } from \"../utils/reactUtils\";\nimport ConnectedQuery from \"./Query\";\nvar defaultRoot = Utils.DefaultUtils.defaultRoot;\nvar QueryContainer = /*#__PURE__*/function (_Component) {\n _inherits(QueryContainer, _Component);\n var _super = _createSuper(QueryContainer);\n function QueryContainer(props, context) {\n var _this;\n _classCallCheck(this, QueryContainer);\n _this = _super.call(this, props, context);\n _this.setLastTree = function (lastTree) {\n if (_this.prevTree) {\n _this.prevprevTree = _this.prevTree;\n }\n _this.prevTree = lastTree;\n };\n _this.shouldComponentUpdate = liteShouldComponentUpdate(_assertThisInitialized(_this), {\n value: function value(nextValue, prevValue, state) {\n return false;\n }\n });\n useOnPropsChanged(_assertThisInitialized(_this));\n var _createConfigMemo = createConfigMemo(),\n getExtended = _createConfigMemo.getExtended,\n getBasic = _createConfigMemo.getBasic;\n _this.getMemoizedConfig = getExtended;\n _this.getBasicConfig = getBasic;\n _this.getMemoizedTree = createValidationMemo();\n var config = _this.getMemoizedConfig(props);\n var shouldCreateEmptyGroup = config.settings.shouldCreateEmptyGroup;\n var canAddDefaultRule = !shouldCreateEmptyGroup; // if prop `value` is not provided, can add default/empty rule?\n var emptyTree = defaultRoot(config, canAddDefaultRule);\n var sanitizeTree = !!props.value;\n var tree = props.value || emptyTree;\n var validatedTree = _this.getMemoizedTree(config, tree, undefined, sanitizeTree);\n var reducer = treeStoreReducer(config, validatedTree, _this.getMemoizedTree, _this.setLastTree);\n var store = createStore(reducer);\n _this.config = config;\n _this.state = {\n store: store\n };\n _this.QueryWrapper = function (pr) {\n return config.settings.renderProvider(pr, config.ctx);\n };\n return _this;\n }\n _createClass(QueryContainer, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n // compare configs\n var prevProps = this.props;\n var oldConfig = this.config;\n var nextConfig = this.getMemoizedConfig(nextProps);\n var isConfigChanged = oldConfig !== nextConfig;\n\n // compare trees\n var storeValue = this.state.store.getState().tree;\n var isTreeChanged = !immutableEqual(nextProps.value, this.props.value) && !immutableEqual(nextProps.value, storeValue);\n var currentTree = isTreeChanged ? nextProps.value || defaultRoot(nextProps) : storeValue;\n var isTreeTrulyChanged = isTreeChanged && !immutableEqual(nextProps.value, this.prevTree) && !immutableEqual(nextProps.value, this.prevprevTree);\n this.sanitizeTree = isTreeTrulyChanged || isConfigChanged;\n if (isConfigChanged) {\n if (prevProps.settings.renderProvider !== nextProps.settings.renderProvider) {\n this.QueryWrapper = function (props) {\n return nextConfig.settings.renderProvider(props, nextConfig.ctx);\n };\n }\n this.config = nextConfig;\n }\n if (isTreeChanged || isConfigChanged) {\n var validatedTree = this.getMemoizedTree(nextConfig, currentTree, oldConfig, this.sanitizeTree);\n //return Promise.resolve().then(() => {\n this.state.store.dispatch(actions.tree.setTree(nextConfig, validatedTree));\n //});\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n // `get_children` is deprecated!\n var _this$props = this.props,\n renderBuilder = _this$props.renderBuilder,\n get_children = _this$props.get_children,\n onChange = _this$props.onChange;\n var store = this.state.store;\n var config = this.config;\n var QueryWrapper = this.QueryWrapper;\n return /*#__PURE__*/React.createElement(QueryWrapper, {\n config: config\n }, /*#__PURE__*/React.createElement(Provider, {\n store: store,\n context: context\n }, /*#__PURE__*/React.createElement(ConnectedQuery, {\n config: config,\n getMemoizedTree: this.getMemoizedTree,\n getBasicConfig: this.getBasicConfig,\n sanitizeTree: this.sanitizeTree,\n onChange: onChange,\n renderBuilder: renderBuilder || get_children\n })));\n }\n }]);\n return QueryContainer;\n}(Component);\nQueryContainer.propTypes = {\n //config\n conjunctions: PropTypes.object.isRequired,\n fields: PropTypes.object.isRequired,\n types: PropTypes.object.isRequired,\n operators: PropTypes.object.isRequired,\n widgets: PropTypes.object.isRequired,\n settings: PropTypes.object.isRequired,\n ctx: PropTypes.object.isRequired,\n onChange: PropTypes.func,\n renderBuilder: PropTypes.func,\n value: PropTypes.any //instanceOf(Immutable.Map)\n};\nexport { QueryContainer as default };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport context from \"../../stores/context\";\nimport { pureShouldComponentUpdate } from \"../../utils/reactUtils\";\nimport { connect } from \"react-redux\";\nimport classNames from \"classnames\";\nvar getFieldConfig = Utils.ConfigUtils.getFieldConfig;\nvar createRuleContainer = function createRuleContainer(Rule) {\n var _class;\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(RuleContainer, _Component);\n var _super = _createSuper(RuleContainer);\n function RuleContainer(props) {\n var _this;\n _classCallCheck(this, RuleContainer);\n _this = _super.call(this, props);\n _this.dummyFn = function () {};\n _this.removeSelf = function () {\n _this.props.actions.removeRule(_this.props.path);\n };\n _this.setLock = function () {\n var lock = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n _this.props.actions.setLock(_this.props.path, lock);\n };\n _this.setField = function (field, asyncListValues, __isInternal) {\n _this.props.actions.setField(_this.props.path, field, asyncListValues, __isInternal);\n };\n _this.setFieldSrc = function (srcKey) {\n _this.props.actions.setFieldSrc(_this.props.path, srcKey);\n };\n _this.setOperator = function (operator) {\n _this.props.actions.setOperator(_this.props.path, operator);\n };\n _this.setOperatorOption = function (name, value) {\n _this.props.actions.setOperatorOption(_this.props.path, name, value);\n };\n _this.setValue = function (delta, value, type, asyncListValues, __isInternal) {\n _this.props.actions.setValue(_this.props.path, delta, value, type, asyncListValues, __isInternal);\n };\n _this.setValueSrc = function (delta, srcKey) {\n _this.props.actions.setValueSrc(_this.props.path, delta, srcKey);\n };\n _this.pureShouldComponentUpdate = pureShouldComponentUpdate(_assertThisInitialized(_this));\n _this.dummyFn.isDummyFn = true;\n return _this;\n }\n _createClass(RuleContainer, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var prevProps = this.props;\n var prevState = this.state;\n var should = this.pureShouldComponentUpdate(nextProps, nextState);\n if (should) {\n if (prevState == nextState && prevProps != nextProps) {\n var draggingId = nextProps.dragging.id || prevProps.dragging.id;\n var isDraggingMe = draggingId == nextProps.id;\n var chs = [];\n for (var k in nextProps) {\n var changed = nextProps[k] != prevProps[k];\n if (k == \"dragging\" && !isDraggingMe) {\n changed = false; //dragging another item -> ignore\n }\n\n if (changed) {\n chs.push(k);\n }\n }\n if (!chs.length) should = false;\n }\n }\n return should;\n }\n }, {\n key: \"render\",\n value: function render() {\n var isDraggingMe = this.props.dragging.id == this.props.id;\n var fieldConfig = getFieldConfig(this.props.config, this.props.field);\n var fieldType = this.props.fieldType || (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.type) || null;\n var showErrorMessage = this.props.config.settings.showErrorMessage;\n var _isGroup = fieldConfig && fieldConfig.type == \"!struct\";\n var isInDraggingTempo = !isDraggingMe && this.props.isDraggingTempo;\n var valueError = this.props.valueError;\n var oneValueError = valueError && valueError.toArray().filter(function (e) {\n return !!e;\n }).shift() || null;\n var hasError = oneValueError != null && showErrorMessage;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"group-or-rule-container\", \"rule-container\", hasError ? \"rule-with-error\" : null),\n \"data-id\": this.props.id\n }, [isDraggingMe ? /*#__PURE__*/React.createElement(Rule, {\n key: \"dragging\",\n id: this.props.id,\n groupId: this.props.groupId,\n isDraggingMe: true,\n isDraggingTempo: true,\n dragging: this.props.dragging,\n setField: this.dummyFn,\n setFieldSrc: this.dummyFn,\n setOperator: this.dummyFn,\n setOperatorOption: this.dummyFn,\n setLock: this.dummyFn,\n removeSelf: this.dummyFn,\n setValue: this.dummyFn,\n setValueSrc: this.dummyFn,\n selectedField: this.props.field || null,\n selectedFieldSrc: this.props.fieldSrc || \"field\",\n selectedFieldType: fieldType,\n parentField: this.props.parentField || null,\n selectedOperator: this.props.operator || null,\n value: this.props.value || null,\n valueSrc: this.props.valueSrc || null,\n valueType: this.props.valueType || null,\n valueError: this.props.valueError || null,\n operatorOptions: this.props.operatorOptions,\n config: this.props.config,\n reordableNodesCnt: this.props.reordableNodesCnt,\n totalRulesCnt: this.props.totalRulesCnt,\n asyncListValues: this.props.asyncListValues,\n isLocked: this.props.isLocked,\n isTrueLocked: this.props.isTrueLocked,\n parentReordableNodesCnt: this.props.parentReordableNodesCnt\n }) : null, /*#__PURE__*/React.createElement(Rule, {\n key: this.props.id,\n id: this.props.id,\n groupId: this.props.groupId,\n isDraggingMe: isDraggingMe,\n isDraggingTempo: isInDraggingTempo,\n onDragStart: this.props.onDragStart,\n setLock: isInDraggingTempo ? this.dummyFn : this.setLock,\n removeSelf: isInDraggingTempo ? this.dummyFn : this.removeSelf,\n setField: isInDraggingTempo ? this.dummyFn : this.setField,\n setFieldSrc: isInDraggingTempo ? this.dummyFn : this.setFieldSrc,\n setOperator: isInDraggingTempo ? this.dummyFn : this.setOperator,\n setOperatorOption: isInDraggingTempo ? this.dummyFn : this.setOperatorOption,\n setValue: isInDraggingTempo ? this.dummyFn : this.setValue,\n setValueSrc: isInDraggingTempo ? this.dummyFn : this.setValueSrc,\n selectedField: this.props.field || null,\n selectedFieldSrc: this.props.fieldSrc || \"field\",\n selectedFieldType: fieldType,\n parentField: this.props.parentField || null,\n selectedOperator: this.props.operator || null,\n value: this.props.value || null,\n valueSrc: this.props.valueSrc || null,\n valueType: this.props.valueType || null,\n valueError: this.props.valueError || null,\n operatorOptions: this.props.operatorOptions,\n config: this.props.config,\n reordableNodesCnt: this.props.reordableNodesCnt,\n totalRulesCnt: this.props.totalRulesCnt,\n asyncListValues: this.props.asyncListValues,\n isLocked: this.props.isLocked,\n isTrueLocked: this.props.isTrueLocked,\n parentReordableNodesCnt: this.props.parentReordableNodesCnt\n })]);\n }\n }]);\n return RuleContainer;\n }(Component), _class.propTypes = {\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string,\n config: PropTypes.object.isRequired,\n path: PropTypes.any.isRequired,\n //instanceOf(Immutable.List)\n operator: PropTypes.string,\n field: PropTypes.any,\n fieldSrc: PropTypes.string,\n fieldType: PropTypes.string,\n actions: PropTypes.object.isRequired,\n //{removeRule: Function, setField, setFieldSrc, setOperator, setOperatorOption, setValue, setValueSrc, ...}\n onDragStart: PropTypes.func,\n value: PropTypes.any,\n //depends on widget\n valueSrc: PropTypes.any,\n asyncListValues: PropTypes.array,\n valueError: PropTypes.any,\n operatorOptions: PropTypes.object,\n reordableNodesCnt: PropTypes.number,\n parentField: PropTypes.string,\n //from RuleGroup\n isLocked: PropTypes.bool,\n isTrueLocked: PropTypes.bool,\n //connected:\n dragging: PropTypes.object,\n //{id, x, y, w, h}\n isDraggingTempo: PropTypes.bool\n }, _class;\n};\nexport default (function (Rule) {\n var ConnectedRuleContainer = connect(function (state) {\n return {\n dragging: state.dragging\n };\n }, null, null, {\n context: context\n })(createRuleContainer(Rule));\n ConnectedRuleContainer.displayName = \"ConnectedRuleContainer\";\n return ConnectedRuleContainer;\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport { connect } from \"react-redux\";\nimport { logger } from \"../../utils/stuff\";\nimport context from \"../../stores/context\";\nimport * as constants from \"../../stores/constants\";\nimport PropTypes from \"prop-types\";\nimport * as actions from \"../../actions\";\nimport { pureShouldComponentUpdate, useOnPropsChanged, isUsingLegacyReactDomRender } from \"../../utils/reactUtils\";\nvar clone = Utils.clone;\nvar getFlatTree = Utils.TreeUtils.getFlatTree;\nvar _isReorderingTree = false;\nvar createSortableContainer = function createSortableContainer(Builder) {\n var _class;\n var CanMoveFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(SortableContainer, _Component);\n var _super = _createSuper(SortableContainer);\n function SortableContainer(props) {\n var _this;\n _classCallCheck(this, SortableContainer);\n _this = _super.call(this, props);\n _this._getEventTarget = function (e, dragStart) {\n return e && e.__mocked_window || document.body || window;\n };\n _this.onDragStart = function (id, dom, e) {\n var treeEl = dom.closest(\".query-builder\");\n if (_this._isUsingLegacyReactDomRender === undefined) {\n _this._isUsingLegacyReactDomRender = isUsingLegacyReactDomRender(treeEl);\n }\n document.body.classList.add(\"qb-dragging\");\n treeEl.classList.add(\"qb-dragging\");\n var treeElContainer = treeEl.closest(\".query-builder-container\") || treeEl;\n treeElContainer = _this._getScrollParent(treeElContainer) || document.body;\n var scrollTop = treeElContainer.scrollTop;\n var _dragEl = _this._getDraggableNodeEl(treeEl);\n var _plhEl = _this._getPlaceholderNodeEl(treeEl);\n var tmpAllGroups = treeEl.querySelectorAll(\".group--children\");\n var anyGroup = tmpAllGroups.length ? tmpAllGroups[0] : null;\n var groupPadding;\n if (anyGroup) {\n groupPadding = window.getComputedStyle(anyGroup, null).getPropertyValue(\"padding-left\");\n groupPadding = parseInt(groupPadding);\n }\n var dragging = {\n id: id,\n x: dom.offsetLeft,\n y: dom.offsetTop,\n w: dom.offsetWidth,\n h: dom.offsetHeight,\n itemInfo: _this.tree.items[id],\n paddingLeft: groupPadding\n };\n var dragStart = {\n id: id,\n x: dom.offsetLeft,\n y: dom.offsetTop,\n scrollTop: scrollTop,\n clientX: e.clientX,\n clientY: e.clientY,\n itemInfo: clone(_this.tree.items[id]),\n treeEl: treeEl,\n treeElContainer: treeElContainer\n };\n var mousePos = {\n clientX: e.clientX,\n clientY: e.clientY\n };\n var target = _this._getEventTarget(e, dragStart);\n _this.eventTarget = target;\n target.addEventListener(\"mousemove\", _this.onDrag);\n target.addEventListener(\"mouseup\", _this.onDragEnd);\n _this.props.setDragStart(dragStart, dragging, mousePos);\n };\n _this.onDrag = function (e) {\n var doHandleDrag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var dragging = Object.assign({}, _this.props.dragging);\n var startDragging = _this.props.dragStart;\n var paddingLeft = dragging.paddingLeft; //this.props.paddingLeft;\n var treeElContainer = startDragging.treeElContainer;\n var scrollTop = treeElContainer.scrollTop;\n dragging.itemInfo = _this.tree.items[dragging.id];\n if (!dragging.itemInfo) {\n return;\n }\n var mousePos = {\n clientX: e.clientX,\n clientY: e.clientY\n };\n var startMousePos = {\n clientX: startDragging.clientX,\n clientY: startDragging.clientY\n };\n if (e.__mock_dom) {\n var treeEl = startDragging.treeEl;\n var dragEl = _this._getDraggableNodeEl(treeEl);\n var plhEl = _this._getPlaceholderNodeEl(treeEl);\n e.__mock_dom({\n treeEl: treeEl,\n dragEl: dragEl,\n plhEl: plhEl\n });\n }\n\n //first init plX/plY\n if (!startDragging.plX) {\n var _treeEl = startDragging.treeEl;\n var _plhEl2 = _this._getPlaceholderNodeEl(_treeEl);\n if (_plhEl2) {\n startDragging.plX = _plhEl2.getBoundingClientRect().left + window.scrollX;\n startDragging.plY = _plhEl2.getBoundingClientRect().top + window.scrollY;\n }\n }\n var startX = startDragging.x;\n var startY = startDragging.y;\n var startClientX = startDragging.clientX;\n var startClientY = startDragging.clientY;\n var startScrollTop = startDragging.scrollTop;\n var pos = {\n x: startX + (e.clientX - startClientX),\n y: startY + (e.clientY - startClientY) + (scrollTop - startScrollTop)\n };\n dragging.x = pos.x;\n dragging.y = pos.y;\n dragging.paddingLeft = paddingLeft;\n dragging.mousePos = mousePos;\n dragging.startMousePos = startMousePos;\n _this.props.setDragProgress(mousePos, dragging);\n var moved = doHandleDrag ? _this.handleDrag(dragging, e, CanMoveFn) : false;\n if (!moved) {\n if (e.preventDefault) e.preventDefault();\n }\n };\n _this.onDragEnd = function () {\n var treeEl = _this.props.dragStart.treeEl;\n _this.props.setDragEnd();\n treeEl.classList.remove(\"qb-dragging\");\n document.body.classList.remove(\"qb-dragging\");\n _this._cacheEls = {};\n var target = _this.eventTarget || _this._getEventTarget();\n target.removeEventListener(\"mousemove\", _this.onDrag);\n target.removeEventListener(\"mouseup\", _this.onDragEnd);\n };\n _this.pureShouldComponentUpdate = pureShouldComponentUpdate(_assertThisInitialized(_this));\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(SortableContainer, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n this.tree = getFlatTree(nextProps.tree);\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var prevProps = this.props;\n var prevState = this.state;\n var should = this.pureShouldComponentUpdate(nextProps, nextState);\n if (should) {\n if (prevState == nextState && prevProps != nextProps) {\n var chs = [];\n for (var k in nextProps) {\n var changed = nextProps[k] != prevProps[k];\n if (changed) {\n //don't render <Builder> on dragging - appropriate redux-connected components will do it\n if (k != \"dragging\" && k != \"mousePos\") chs.push(k);\n }\n }\n if (!chs.length) should = false;\n }\n }\n return should;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(_prevProps, _prevState) {\n var dragging = this.props.dragging;\n var startDragging = this.props.dragStart;\n _isReorderingTree = false;\n if (startDragging && startDragging.id) {\n dragging.itemInfo = this.tree.items[dragging.id];\n if (dragging.itemInfo) {\n if (dragging.itemInfo.index != startDragging.itemInfo.index || dragging.itemInfo.parent != startDragging.itemInfo.parent) {\n var treeEl = startDragging.treeEl;\n var treeElContainer = startDragging.treeElContainer;\n var plhEl = this._getPlaceholderNodeEl(treeEl, true);\n if (plhEl) {\n var plX = plhEl.getBoundingClientRect().left + window.scrollX;\n var plY = plhEl.getBoundingClientRect().top + window.scrollY;\n var oldPlX = startDragging.plX;\n var oldPlY = startDragging.plY;\n var scrollTop = treeElContainer.scrollTop;\n startDragging.plX = plX;\n startDragging.plY = plY;\n startDragging.itemInfo = clone(dragging.itemInfo);\n startDragging.y = plhEl.offsetTop;\n startDragging.x = plhEl.offsetLeft;\n startDragging.clientY += plY - oldPlY;\n startDragging.clientX += plX - oldPlX;\n if (treeElContainer != document.body) startDragging.scrollTop = scrollTop;\n this.onDrag(this.props.mousePos, false);\n }\n }\n }\n }\n }\n }, {\n key: \"_getNodeElById\",\n value: function _getNodeElById(treeEl, indexId) {\n var ignoreCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (indexId == null) return null;\n if (!this._cacheEls) this._cacheEls = {};\n var el = this._cacheEls[indexId];\n if (el && document.contains(el) && !ignoreCache) return el;\n el = treeEl.querySelector('.group-or-rule-container[data-id=\"' + indexId + '\"]');\n this._cacheEls[indexId] = el;\n return el;\n }\n }, {\n key: \"_getDraggableNodeEl\",\n value: function _getDraggableNodeEl(treeEl) {\n var ignoreCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!this._cacheEls) this._cacheEls = {};\n var el = this._cacheEls[\"draggable\"];\n if (el && document.contains(el) && !ignoreCache) return el;\n var els = treeEl.getElementsByClassName(\"qb-draggable\");\n el = els.length ? els[0] : null;\n this._cacheEls[\"draggable\"] = el;\n return el;\n }\n }, {\n key: \"_getPlaceholderNodeEl\",\n value: function _getPlaceholderNodeEl(treeEl) {\n var ignoreCache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!this._cacheEls) this._cacheEls = {};\n var el = this._cacheEls[\"placeholder\"];\n if (el && document.contains(el) && !ignoreCache) return el;\n var els = treeEl.getElementsByClassName(\"qb-placeholder\");\n el = els.length ? els[0] : null;\n this._cacheEls[\"placeholder\"] = el;\n return el;\n }\n }, {\n key: \"_isScrollable\",\n value: function _isScrollable(node) {\n var overflowY = window.getComputedStyle(node)[\"overflow-y\"];\n return (overflowY === \"scroll\" || overflowY === \"auto\") && node.scrollHeight > node.offsetHeight;\n }\n }, {\n key: \"_getScrollParent\",\n value: function _getScrollParent(node) {\n if (node == null) return null;\n if (node === document.body || this._isScrollable(node)) {\n return node;\n } else {\n return this._getScrollParent(node.parentNode);\n }\n }\n }, {\n key: \"handleDrag\",\n value: function handleDrag(dragInfo, e, canMoveFn) {\n var _this2 = this;\n var canMoveBeforeAfterGroup = true;\n var itemInfo = dragInfo.itemInfo;\n var paddingLeft = dragInfo.paddingLeft;\n var moveInfo = null;\n var treeEl = this.props.dragStart.treeEl;\n var dragId = dragInfo.id;\n var dragEl = this._getDraggableNodeEl(treeEl);\n var plhEl = this._getPlaceholderNodeEl(treeEl);\n var dragRect, plhRect, hovRect, treeRect;\n if (dragEl && plhEl) {\n dragRect = dragEl.getBoundingClientRect();\n plhRect = plhEl.getBoundingClientRect();\n if (!plhRect.width) {\n return;\n }\n var dragDirs = {\n hrz: 0,\n vrt: 0\n };\n if (dragRect.top < plhRect.top) dragDirs.vrt = -1; //up\n else if (dragRect.bottom > plhRect.bottom) dragDirs.vrt = +1; //down\n if (dragRect.left > plhRect.left) dragDirs.hrz = +1; //right\n else if (dragRect.left < plhRect.left) dragDirs.hrz = -1; //left\n\n treeRect = treeEl.getBoundingClientRect();\n var trgCoord = {\n x: treeRect.left + (treeRect.right - treeRect.left) / 2,\n y: dragDirs.vrt >= 0 ? dragRect.bottom : dragRect.top\n };\n var hovCNodeEl;\n if (e.__mocked_hov_container) {\n hovCNodeEl = e.__mocked_hov_container;\n } else {\n var hovNodeEl = document.elementFromPoint(trgCoord.x, trgCoord.y - 1);\n hovCNodeEl = hovNodeEl ? hovNodeEl.closest(\".group-or-rule-container\") : null;\n if (!hovCNodeEl && hovNodeEl && hovNodeEl.classList.contains(\"query-builder-container\")) {\n var _hovNodeEl$firstChild;\n // fix 2022-01-24 - get root .group-or-rule-container\n var rootGroupContainer = hovNodeEl === null || hovNodeEl === void 0 || (_hovNodeEl$firstChild = hovNodeEl.firstChild) === null || _hovNodeEl$firstChild === void 0 ? void 0 : _hovNodeEl$firstChild.firstChild;\n if (rootGroupContainer && rootGroupContainer.classList.contains(\"group-or-rule-container\")) {\n hovCNodeEl = rootGroupContainer;\n }\n }\n }\n if (!hovCNodeEl) {\n logger.log(\"out of tree bounds!\");\n } else {\n var isGroup = hovCNodeEl.classList.contains(\"group-container\");\n var hovNodeId = hovCNodeEl.getAttribute(\"data-id\");\n var hovEl = hovCNodeEl;\n var doAppend = false;\n var doPrepend = false;\n if (hovEl) {\n hovRect = hovEl.getBoundingClientRect();\n var hovHeight = hovRect.bottom - hovRect.top;\n var hovII = this.tree.items[hovNodeId];\n if (!hovII) {\n throw new Error(\"There is an issue with rendering. If you use Next.js, please check getServerSideProps() method.\");\n }\n var trgRect = null,\n trgEl = null,\n trgII = null,\n altII = null; //for canMoveBeforeAfterGroup\n\n if (dragDirs.vrt == 0) {\n trgII = itemInfo;\n trgEl = plhEl;\n if (trgEl) trgRect = trgEl.getBoundingClientRect();\n } else {\n if (isGroup) {\n if (dragDirs.vrt > 0) {\n //down\n //take group header (for prepend only)\n var hovInnerEl = hovCNodeEl.getElementsByClassName(\"group--header\");\n var hovEl2 = hovInnerEl.length ? hovInnerEl[0] : null;\n if (hovEl2) {\n var hovRect2 = hovEl2.getBoundingClientRect();\n var hovHeight2 = hovRect2.bottom - hovRect2.top;\n var isOverHover = dragRect.bottom - hovRect2.top > hovHeight2 * 3 / 4;\n if (isOverHover && hovII.top > dragInfo.itemInfo.top) {\n trgII = hovII;\n trgRect = hovRect2;\n trgEl = hovEl2;\n doPrepend = true;\n }\n }\n } else if (dragDirs.vrt < 0) {\n //up\n if (hovII.lev >= itemInfo.lev) {\n //take whole group\n var isClimbToHover = hovRect.bottom - dragRect.top >= 2;\n if (isClimbToHover && hovII.top < dragInfo.itemInfo.top) {\n trgII = hovII;\n trgRect = hovRect;\n trgEl = hovEl;\n doAppend = true;\n }\n }\n }\n if (!doPrepend && !doAppend || canMoveBeforeAfterGroup) {\n //take whole group and check if we can move before/after group\n var _isOverHover = dragDirs.vrt < 0 //up\n ? hovRect.bottom - dragRect.top > hovHeight - 5 : dragRect.bottom - hovRect.top > hovHeight - 5;\n if (_isOverHover) {\n if (!doPrepend && !doAppend) {\n trgII = hovII;\n trgRect = hovRect;\n trgEl = hovEl;\n }\n if (canMoveBeforeAfterGroup) {\n altII = hovII;\n }\n }\n }\n } else {\n //check if we can move before/after group\n var _isOverHover2 = dragDirs.vrt < 0 //up\n ? hovRect.bottom - dragRect.top > hovHeight / 2 : dragRect.bottom - hovRect.top > hovHeight / 2;\n if (_isOverHover2) {\n trgII = hovII;\n trgRect = hovRect;\n trgEl = hovEl;\n }\n }\n }\n var isSamePos = trgII && trgII.id == dragId;\n if (trgRect) {\n var dragLeftOffset = dragRect.left - treeRect.left;\n var trgLeftOffset = trgRect.left - treeRect.left;\n var _trgLev = trgLeftOffset / paddingLeft;\n var dragLev = Math.max(0, Math.round(dragLeftOffset / paddingLeft));\n\n //find all possible moves\n var availMoves = [];\n var altMoves = []; //alternatively can move after/before group, if can't move into it\n if (isSamePos) {\n //do nothing\n } else {\n if (isGroup) {\n if (doAppend) {\n availMoves.push([constants.PLACEMENT_APPEND, trgII, trgII.lev + 1]);\n } else if (doPrepend) {\n availMoves.push([constants.PLACEMENT_PREPEND, trgII, trgII.lev + 1]);\n }\n //alt\n if (canMoveBeforeAfterGroup && altII) {\n // fix 2022-01-24: do prepend/append instead of before/after for root\n var isToRoot = altII.lev == 0;\n // fix 2022-01-25: fix prepend/append instead of before/after for case_group\n var isToCase = altII.type == \"case_group\" && itemInfo.type != \"case_group\";\n var prevCaseId = altII.prev && this.tree.items[altII.prev].caseId;\n var nextCaseId = altII.next && this.tree.items[altII.next].caseId;\n if (itemInfo.caseId == prevCaseId) prevCaseId = null;\n if (itemInfo.caseId == nextCaseId) nextCaseId = null;\n var prevCase = prevCaseId && this.tree.items[prevCaseId];\n var nextCase = nextCaseId && this.tree.items[nextCaseId];\n if (dragDirs.vrt > 0) {\n //down\n if (isToRoot) {\n altMoves.push([constants.PLACEMENT_APPEND, altII, altII.lev + 1]);\n } else if (isToCase && nextCase) {\n altMoves.push([constants.PLACEMENT_PREPEND, nextCase, nextCase.lev + 1]);\n } else {\n altMoves.push([constants.PLACEMENT_AFTER, altII, altII.lev]);\n }\n } else if (dragDirs.vrt < 0) {\n //up\n if (isToRoot) {\n altMoves.push([constants.PLACEMENT_PREPEND, altII, altII.lev + 1]);\n } else if (isToCase && prevCase) {\n altMoves.push([constants.PLACEMENT_APPEND, prevCase, prevCase.lev + 1]);\n } else {\n altMoves.push([constants.PLACEMENT_BEFORE, altII, altII.lev]);\n }\n }\n }\n }\n if (!doAppend && !doPrepend) {\n if (dragDirs.vrt < 0) {\n //up\n availMoves.push([constants.PLACEMENT_BEFORE, trgII, trgII.lev]);\n } else if (dragDirs.vrt > 0) {\n //down\n availMoves.push([constants.PLACEMENT_AFTER, trgII, trgII.lev]);\n }\n }\n }\n\n //add case\n var addCaseII = function addCaseII(am) {\n var toII = am[1];\n var fromCaseII = itemInfo.caseId ? _this2.tree.items[itemInfo.caseId] : null;\n var toCaseII = toII.caseId ? _this2.tree.items[toII.caseId] : null;\n return [].concat(_toConsumableArray(am), [fromCaseII, toCaseII]);\n };\n availMoves = availMoves.map(addCaseII);\n altMoves = altMoves.map(addCaseII);\n\n //sanitize\n availMoves = availMoves.filter(function (am) {\n var placement = am[0];\n var trg = am[1];\n if ((placement == constants.PLACEMENT_BEFORE || placement == constants.PLACEMENT_AFTER) && trg.parent == null) return false;\n if (trg.collapsed && (placement == constants.PLACEMENT_APPEND || placement == constants.PLACEMENT_PREPEND)) return false;\n var isInside = trg.id == itemInfo.id;\n if (!isInside) {\n var tmp = trg;\n while (tmp.parent) {\n tmp = _this2.tree.items[tmp.parent];\n if (tmp.id == itemInfo.id) {\n isInside = true;\n break;\n }\n }\n }\n return !isInside;\n }).map(function (am) {\n var placement = am[0],\n toII = am[1],\n _lev = am[2],\n _fromCaseII = am[3],\n _toCaseII = am[4];\n var toParentII = null;\n if (placement == constants.PLACEMENT_APPEND || placement == constants.PLACEMENT_PREPEND) toParentII = toII;else toParentII = _this2.tree.items[toII.parent];\n if (toParentII && toParentII.parent == null) toParentII = null;\n am[5] = toParentII;\n return am;\n });\n var bestMode = null;\n var filteredMoves = availMoves.filter(function (am) {\n return _this2.canMove(itemInfo, am[1], am[0], am[3], am[4], am[5], canMoveFn);\n });\n if (canMoveBeforeAfterGroup && filteredMoves.length == 0 && altMoves.length > 0) {\n filteredMoves = altMoves.filter(function (am) {\n return _this2.canMove(itemInfo, am[1], am[0], am[3], am[4], am[5], canMoveFn);\n });\n }\n var levs = filteredMoves.map(function (am) {\n return am[2];\n });\n var curLev = itemInfo.lev;\n var allLevs = levs.concat(curLev);\n var closestDragLev = null;\n if (allLevs.indexOf(dragLev) != -1) closestDragLev = dragLev;else if (dragLev > Math.max.apply(Math, _toConsumableArray(allLevs))) closestDragLev = Math.max.apply(Math, _toConsumableArray(allLevs));else if (dragLev < Math.min.apply(Math, _toConsumableArray(allLevs))) closestDragLev = Math.min.apply(Math, _toConsumableArray(allLevs));\n bestMode = filteredMoves.find(function (am) {\n return am[2] == closestDragLev;\n });\n if (!isSamePos && !bestMode && filteredMoves.length) bestMode = filteredMoves[0];\n moveInfo = bestMode;\n }\n }\n }\n }\n if (moveInfo) {\n this.move(itemInfo, moveInfo[1], moveInfo[0], moveInfo[3]);\n\n // logger.log(\"DRAG-N-DROP\", JSON.stringify({\n // dragRect,\n // plhRect,\n // treeRect,\n // hovRect,\n // startMousePos: dragInfo.startMousePos,\n // mousePos: dragInfo.mousePos,\n // }));\n return true;\n }\n return false;\n }\n }, {\n key: \"canMove\",\n value: function canMove(fromII, toII, placement, fromCaseII, toCaseII, toParentII, canMoveFn) {\n if (!fromII || !toII) return false;\n if (fromII.id === toII.id) return false;\n var _this$props$config$se = this.props.config.settings,\n canRegroup = _this$props$config$se.canRegroup,\n canRegroupCases = _this$props$config$se.canRegroupCases,\n maxNesting = _this$props$config$se.maxNesting,\n maxNumberOfRules = _this$props$config$se.maxNumberOfRules,\n canLeaveEmptyCase = _this$props$config$se.canLeaveEmptyCase;\n var newLev = toParentII ? toParentII.lev + 1 : toII.lev;\n var newDepthLev = newLev + (fromII.depth || 0);\n var isBeforeAfter = placement == constants.PLACEMENT_BEFORE || placement == constants.PLACEMENT_AFTER;\n var isPend = placement == constants.PLACEMENT_PREPEND || placement == constants.PLACEMENT_APPEND;\n var isLev1 = isBeforeAfter && toII.lev == 1 || isPend && toII.lev == 0;\n var isParentChange = fromII.parent != toII.parent;\n var isStructChange = isPend || isParentChange;\n // can't move `case_group` anywhere but before/after anoter `case_group`\n var isForbiddenStructChange = fromII.type == \"case_group\" && !isLev1\n // can't restruct `rule_group`\n || fromII.parentType == \"rule_group\" || toII.type == \"rule_group\" || toII.parentType == \"rule_group\"\n // only `case_group` can be placed under `switch_group`\n || fromII.type != \"case_group\" && toII.type == \"case_group\" && isBeforeAfter || fromII.type != \"case_group\" && toII.type == \"switch_group\"\n // can't move rule/group to another case\n || !canRegroupCases && fromII.caseId != toII.caseId;\n var isLockedChange = toII.isLocked || fromII.isLocked || toParentII && toParentII.isLocked;\n if (maxNesting && newDepthLev > maxNesting) return false;\n if (isStructChange && (!canRegroup || isForbiddenStructChange || isLockedChange)) return false;\n if (fromII.type != \"case_group\" && fromII.caseId != toII.caseId) {\n var isLastFromCase = fromCaseII ? fromCaseII._height == 2 : false;\n var newRulesInTargetCase = toCaseII ? toCaseII.leafsCount + 1 : 0;\n if (maxNumberOfRules && newRulesInTargetCase > maxNumberOfRules) return false;\n if (isLastFromCase && !canLeaveEmptyCase) return false;\n }\n if (fromII.type == \"case_group\" && (fromII.isDefaultCase || toII.isDefaultCase || toII.type == \"switch_group\" && placement == constants.PLACEMENT_APPEND)) {\n // leave default case alone\n return false;\n }\n var res = true;\n if (canMoveFn) {\n res = canMoveFn(fromII.node.toJS(), toII.node.toJS(), placement, toParentII ? toParentII.node.toJS() : null);\n }\n return res;\n }\n }, {\n key: \"move\",\n value: function move(fromII, toII, placement, toParentII) {\n if (!this._isUsingLegacyReactDomRender) {\n _isReorderingTree = true;\n }\n //logger.log(\"move\", fromII, toII, placement, toParentII);\n this.props.actions.moveItem(fromII.path, toII.path, placement);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Builder, _extends({}, this.props, {\n onDragStart: this.onDragStart\n }));\n }\n }]);\n return SortableContainer;\n }(Component), _class.propTypes = {\n tree: PropTypes.any.isRequired,\n //instanceOf(Immutable.Map)\n actions: PropTypes.object.isRequired // {moveItem: Function, ..}\n //... see Builder\n }, _class;\n};\nexport default (function (Builder) {\n var CanMoveFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var ConnectedSortableContainer = connect(function (state) {\n return {\n dragging: state.dragging,\n dragStart: state.dragStart,\n mousePos: state.mousePos\n };\n }, {\n setDragStart: actions.drag.setDragStart,\n setDragProgress: actions.drag.setDragProgress,\n setDragEnd: actions.drag.setDragEnd\n }, null, {\n context: context\n })(createSortableContainer(Builder, CanMoveFn));\n ConnectedSortableContainer.displayName = \"ConnectedSortableContainer\";\n return ConnectedSortableContainer;\n});\nexport { _isReorderingTree };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nvar _excluded = [\"isDraggingTempo\", \"isDraggingMe\", \"dragging\"];\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { _isReorderingTree } from \"./SortableContainer\";\nimport classNames from \"classnames\";\nexport default (function (className) {\n return function (GroupOrRule) {\n var _class;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inherits(Draggable, _PureComponent);\n var _super = _createSuper(Draggable);\n function Draggable(props) {\n var _this;\n _classCallCheck(this, Draggable);\n _this = _super.call(this, props);\n _this.handleDraggerMouseDown = function (e) {\n var nodeId = _this.props.id;\n var dom = _this.wrapper.current;\n if (_this.props.onDragStart) {\n _this.props.onDragStart(nodeId, dom, e);\n }\n };\n _this.wrapper = /*#__PURE__*/React.createRef();\n return _this;\n }\n _createClass(Draggable, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n isDraggingTempo = _this$props.isDraggingTempo,\n isDraggingMe = _this$props.isDraggingMe,\n dragging = _this$props.dragging,\n otherProps = _objectWithoutProperties(_this$props, _excluded);\n var isTrueLocked = otherProps.isTrueLocked;\n var styles = {};\n if (isDraggingMe && isDraggingTempo) {\n if (_isReorderingTree) {\n // don't apply old styles for dragging tempo during reorder\n } else {\n styles = {\n top: dragging.y,\n left: dragging.x,\n width: dragging.w\n };\n }\n }\n var cn = classNames(className, \"group-or-rule\", isDraggingMe && isDraggingTempo ? \"qb-draggable\" : null, isDraggingMe && !isDraggingTempo ? \"qb-placeholder\" : null, isTrueLocked ? \"locked\" : null);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cn,\n style: styles,\n ref: this.wrapper,\n \"data-id\": this.props.id\n }, /*#__PURE__*/React.createElement(GroupOrRule, _extends({\n handleDraggerMouseDown: this.handleDraggerMouseDown,\n isDraggingMe: isDraggingMe,\n isDraggingTempo: isDraggingTempo\n }, otherProps)));\n }\n }]);\n return Draggable;\n }(PureComponent), _class.propTypes = {\n isDraggingTempo: PropTypes.bool,\n isDraggingMe: PropTypes.bool,\n onDragStart: PropTypes.func,\n dragging: PropTypes.object,\n //{id, x, y, w, h}\n isLocked: PropTypes.bool,\n isTrueLocked: PropTypes.bool\n }, _class;\n };\n});","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport keys from \"lodash/keys\";\nimport pickBy from \"lodash/pickBy\";\nimport mapValues from \"lodash/mapValues\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getOperatorConfig = _Utils$ConfigUtils.getOperatorConfig;\nvar Operator = /*#__PURE__*/function (_Component) {\n _inherits(Operator, _Component);\n var _super = _createSuper(Operator);\n function Operator(props) {\n var _this;\n _classCallCheck(this, Operator);\n _this = _super.call(this, props);\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(Operator, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"config\", \"selectedField\", \"selectedFieldSrc\", \"selectedFieldType\", \"selectedOperator\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref) {\n var _config$types$selecte;\n var config = _ref.config,\n selectedField = _ref.selectedField,\n selectedFieldType = _ref.selectedFieldType,\n selectedOperator = _ref.selectedOperator;\n var fieldConfig = getFieldConfig(config, selectedField);\n var operators = _toConsumableArray((fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.operators) || ((_config$types$selecte = config.types[selectedFieldType]) === null || _config$types$selecte === void 0 ? void 0 : _config$types$selecte.operators) || []);\n if (!selectedField && !operators.includes(selectedOperator)) {\n // eg. `prox` field was selected, then `fieldSrc` changed to `func`\n // But `text` type excludes `proximity` operator in config, so add manually\n operators.push(selectedOperator);\n }\n var operatorsOptions = mapValues(pickBy(config.operators, function (item, key) {\n return (operators === null || operators === void 0 ? void 0 : operators.indexOf(key)) !== -1;\n }), function (_opts, op) {\n return getOperatorConfig(config, op, selectedField);\n });\n var items = this.buildOptions(config, operatorsOptions, operators);\n var selectedOpts = operatorsOptions[selectedOperator] || {};\n var placeholder = this.props.config.settings.operatorPlaceholder;\n var selectedKey = selectedOperator;\n var selectedKeys = selectedKey ? [selectedKey] : null;\n var selectedPath = selectedKeys;\n var selectedLabel = selectedOpts.label;\n return {\n placeholder: placeholder,\n items: items,\n selectedKey: selectedKey,\n selectedKeys: selectedKeys,\n selectedPath: selectedPath,\n selectedLabel: selectedLabel,\n selectedOpts: selectedOpts,\n fieldConfig: fieldConfig\n };\n }\n }, {\n key: \"buildOptions\",\n value: function buildOptions(config, fields, ops) {\n if (!fields || !ops) return null;\n return keys(fields).sort(function (a, b) {\n return ops.indexOf(a) - ops.indexOf(b);\n }).map(function (fieldKey) {\n var field = fields[fieldKey];\n var label = field.label;\n return {\n key: fieldKey,\n path: fieldKey,\n label: label\n };\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n customProps = _this$props.customProps,\n setOperator = _this$props.setOperator,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var renderOperator = config.settings.renderOperator;\n var renderProps = _objectSpread({\n id: id,\n groupId: groupId,\n config: config,\n customProps: customProps,\n readonly: readonly,\n setField: setOperator\n }, this.meta);\n if (!renderProps.items) return null;\n return renderOperator(renderProps, config.ctx);\n }\n }]);\n return Operator;\n}(Component);\nOperator.propTypes = {\n id: PropTypes.string,\n groupId: PropTypes.string,\n config: PropTypes.object.isRequired,\n selectedField: PropTypes.any,\n selectedFieldType: PropTypes.string,\n selectedFieldSrc: PropTypes.string,\n selectedOperator: PropTypes.string,\n readonly: PropTypes.bool,\n //actions\n setOperator: PropTypes.func.isRequired\n};\nexport { Operator as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport React from \"react\";\nvar Col = function Col(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", props, children);\n};\nvar dummyFn = function dummyFn() {};\nvar DragIcon = function DragIcon() {\n return /*#__PURE__*/React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"gray\",\n width: \"18px\",\n height: \"18px\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h24v24H0V0z\",\n fill: \"none\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n }));\n};\nvar WithConfirmFn = function WithConfirmFn(Cmp) {\n return function (props) {\n var useConfirm = props.config.settings.useConfirm;\n var confirmFn = useConfirm ? useConfirm.call(props.config.ctx, props.config.ctx) : null;\n return /*#__PURE__*/React.createElement(Cmp, _extends({}, props, {\n confirmFn: confirmFn\n }));\n };\n};\nexport { Col, dummyFn, DragIcon, WithConfirmFn };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nimport Operator from \"./Operator\";\nimport { Col } from \"../utils\";\nvar OperatorWrapper = /*#__PURE__*/function (_PureComponent) {\n _inherits(OperatorWrapper, _PureComponent);\n var _super = _createSuper(OperatorWrapper);\n function OperatorWrapper() {\n _classCallCheck(this, OperatorWrapper);\n return _super.apply(this, arguments);\n }\n _createClass(OperatorWrapper, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n selectedField = _this$props.selectedField,\n selectedFieldSrc = _this$props.selectedFieldSrc,\n selectedFieldType = _this$props.selectedFieldType,\n selectedOperator = _this$props.selectedOperator,\n setOperator = _this$props.setOperator,\n selectedFieldParts = _this$props.selectedFieldParts,\n showOperator = _this$props.showOperator,\n showOperatorLabel = _this$props.showOperatorLabel,\n selectedFieldWidgetConfig = _this$props.selectedFieldWidgetConfig,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var operator = showOperator && /*#__PURE__*/React.createElement(Col, {\n key: \"operators-for-\" + (selectedFieldParts || []).join(\"_\"),\n className: \"rule--operator\"\n }, config.settings.showLabels && /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, config.settings.operatorLabel), /*#__PURE__*/React.createElement(Operator, {\n key: \"operator\",\n config: config,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedFieldType: selectedFieldType,\n selectedOperator: selectedOperator,\n setOperator: setOperator,\n readonly: readonly,\n id: id,\n groupId: groupId\n }));\n var hiddenOperator = showOperatorLabel && /*#__PURE__*/React.createElement(Col, {\n key: \"operators-for-\" + (selectedFieldParts || []).join(\"_\"),\n className: \"rule--operator\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--operator-wrapper\"\n }, config.settings.showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, \"\\xA0\") : null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--operator-text-wrapper\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"rule--operator-text\"\n }, selectedFieldWidgetConfig.operatorInlineLabel))));\n return [operator, hiddenOperator];\n }\n }]);\n return OperatorWrapper;\n}(PureComponent);\nexport { OperatorWrapper as default };","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport { truncateString } from \"../../utils/stuff\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport last from \"lodash/last\";\nimport keys from \"lodash/keys\";\nvar getFieldPathLabels = Utils.RuleUtils.getFieldPathLabels;\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getFieldParts = _Utils$ConfigUtils.getFieldParts,\n getFieldPathParts = _Utils$ConfigUtils.getFieldPathParts;\nvar Field = /*#__PURE__*/function (_Component) {\n _inherits(Field, _Component);\n var _super = _createSuper(Field);\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(Field, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"selectedField\", \"selectedFieldSrc\", \"selectedFieldType\", \"config\", \"parentField\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref) {\n var selectedField = _ref.selectedField,\n selectedFieldType = _ref.selectedFieldType,\n config = _ref.config,\n parentField = _ref.parentField;\n var selectedKey = selectedField;\n var _config$settings = config.settings,\n maxLabelsLength = _config$settings.maxLabelsLength,\n fieldSeparatorDisplay = _config$settings.fieldSeparatorDisplay,\n fieldPlaceholder = _config$settings.fieldPlaceholder,\n fieldSeparator = _config$settings.fieldSeparator;\n var isFieldSelected = !!selectedField;\n var placeholder = !isFieldSelected ? truncateString(fieldPlaceholder, maxLabelsLength) : null;\n var currField = isFieldSelected ? getFieldConfig(config, selectedKey) : null;\n var selectedOpts = currField || {};\n var selectedKeys = getFieldPathParts(selectedKey, config);\n var selectedPath = getFieldPathParts(selectedKey, config, true);\n var selectedLabel = this.getFieldLabel(currField, selectedKey, config);\n var partsLabels = getFieldPathLabels(selectedKey, config);\n var selectedFullLabel = partsLabels ? partsLabels.join(fieldSeparatorDisplay) : null;\n if (selectedFullLabel == selectedLabel || parentField) selectedFullLabel = null;\n var selectedAltLabel = selectedOpts.label2;\n var parentFieldPath = getFieldParts(parentField, config);\n var parentFieldConfig = parentField ? getFieldConfig(config, parentField) : null;\n var sourceFields = parentField ? parentFieldConfig && parentFieldConfig.subfields : config.fields;\n var lookingForFieldType = !isFieldSelected && selectedFieldType;\n var items = this.buildOptions(parentFieldPath, config, sourceFields, lookingForFieldType, parentFieldPath);\n\n // Field source has been chnaged, no new field selected, but op & value remains\n var errorText = lookingForFieldType ? \"Please select field\" : null;\n return {\n placeholder: placeholder,\n items: items,\n parentField: parentField,\n selectedKey: selectedKey,\n selectedKeys: selectedKeys,\n selectedPath: selectedPath,\n selectedLabel: selectedLabel,\n selectedOpts: selectedOpts,\n selectedAltLabel: selectedAltLabel,\n selectedFullLabel: selectedFullLabel,\n errorText: errorText\n };\n }\n }, {\n key: \"getFieldLabel\",\n value: function getFieldLabel(fieldOpts, fieldKey, config) {\n if (!fieldKey) return null;\n var maxLabelsLength = config.settings.maxLabelsLength;\n var fieldParts = getFieldParts(fieldKey, config);\n var label = (fieldOpts === null || fieldOpts === void 0 ? void 0 : fieldOpts.label) || last(fieldParts);\n label = truncateString(label, maxLabelsLength);\n return label;\n }\n }, {\n key: \"buildOptions\",\n value: function buildOptions(parentFieldPath, config, fields) {\n var _this2 = this;\n var fieldType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var path = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var optGroup = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;\n if (!fields) return null;\n var _config$settings2 = config.settings,\n fieldSeparator = _config$settings2.fieldSeparator,\n fieldSeparatorDisplay = _config$settings2.fieldSeparatorDisplay;\n var prefix = path !== null && path !== void 0 && path.length ? path.join(fieldSeparator) + fieldSeparator : \"\";\n var countFieldsMatchesType = function countFieldsMatchesType(fields) {\n return Object.keys(fields || {}).reduce(function (acc, fieldKey) {\n var field = fields[fieldKey];\n if (field.type === \"!struct\") {\n return acc + countFieldsMatchesType(field.subfields);\n } else {\n return acc + (field.type === fieldType ? 1 : 0);\n }\n }, 0);\n };\n return keys(fields).map(function (fieldKey) {\n var fullFieldPath = [].concat(_toConsumableArray(path !== null && path !== void 0 ? path : []), [fieldKey]);\n var field = fields[fieldKey];\n var label = _this2.getFieldLabel(field, fullFieldPath, config);\n var partsLabels = getFieldPathLabels(fullFieldPath, config);\n var fullLabel = partsLabels.join(fieldSeparatorDisplay);\n if (fullLabel == label || parentFieldPath !== null && parentFieldPath !== void 0 && parentFieldPath.length) fullLabel = null;\n var altLabel = field.label2;\n var tooltip = field.tooltip;\n var disabled = field.disabled;\n if (field.hideForSelect) return undefined;\n if (field.type == \"!struct\") {\n var items = _this2.buildOptions(parentFieldPath, config, field.subfields, fieldType, fullFieldPath, {\n label: label,\n tooltip: tooltip\n });\n var hasItemsMatchesType = countFieldsMatchesType(field.subfields) > 0;\n return {\n disabled: disabled,\n key: fieldKey,\n path: prefix + fieldKey,\n label: label,\n fullLabel: fullLabel,\n altLabel: altLabel,\n tooltip: tooltip,\n items: items,\n matchesType: hasItemsMatchesType\n };\n } else {\n var matchesType = fieldType !== undefined ? field.type === fieldType : undefined;\n return {\n disabled: disabled,\n key: fieldKey,\n path: prefix + fieldKey,\n label: label,\n fullLabel: fullLabel,\n altLabel: altLabel,\n tooltip: tooltip,\n grouplabel: optGroup === null || optGroup === void 0 ? void 0 : optGroup.label,\n group: optGroup,\n matchesType: matchesType\n };\n }\n }).filter(function (o) {\n return !!o;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n customProps = _this$props.customProps,\n setField = _this$props.setField,\n setFieldSrc = _this$props.setFieldSrc,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var renderField = config.settings.renderField;\n var renderProps = _objectSpread({\n id: id,\n groupId: groupId,\n config: config,\n customProps: customProps,\n readonly: readonly,\n setField: setField,\n setFieldSrc: setFieldSrc\n }, this.meta);\n return renderField(renderProps, config.ctx);\n }\n }]);\n return Field;\n}(Component);\nField.propTypes = {\n id: PropTypes.string,\n groupId: PropTypes.string,\n config: PropTypes.object.isRequired,\n selectedField: PropTypes.any,\n selectedFieldSrc: PropTypes.string,\n selectedFieldType: PropTypes.string,\n parentField: PropTypes.string,\n customProps: PropTypes.object,\n readonly: PropTypes.bool,\n //actions\n setField: PropTypes.func.isRequired,\n setFieldSrc: PropTypes.func\n};\nexport { Field as default };","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport { truncateString } from \"../../utils/stuff\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport last from \"lodash/last\";\nimport keys from \"lodash/keys\";\nvar clone = Utils.clone;\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getFuncConfig = _Utils$ConfigUtils.getFuncConfig,\n getFieldParts = _Utils$ConfigUtils.getFieldParts,\n getFieldPathParts = _Utils$ConfigUtils.getFieldPathParts;\nvar _Utils$RuleUtils = Utils.RuleUtils,\n getFuncPathLabels = _Utils$RuleUtils.getFuncPathLabels,\n getWidgetForFieldOp = _Utils$RuleUtils.getWidgetForFieldOp;\n\n//tip: this.props.value - right value, this.props.field - left value\nvar FuncSelect = /*#__PURE__*/function (_Component) {\n _inherits(FuncSelect, _Component);\n var _super = _createSuper(FuncSelect);\n function FuncSelect(props) {\n var _this;\n _classCallCheck(this, FuncSelect);\n _this = _super.call(this, props);\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(FuncSelect, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForItems = [\"config\", \"field\", \"fieldType\", \"fieldSrc\", \"operator\", \"isFuncArg\", \"isLHS\"];\n var keysForMeta = [\"config\", \"field\", \"fieldType\", \"fieldSrc\", \"value\", \"isLHS\"];\n var needUpdateItems = !this.items || keysForItems.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n if (needUpdateItems) {\n this.items = this.getItems(nextProps, this.meta);\n }\n }\n }, {\n key: \"getItems\",\n value: function getItems(_ref, _ref2) {\n var config = _ref.config,\n field = _ref.field,\n fieldType = _ref.fieldType,\n isLHS = _ref.isLHS,\n operator = _ref.operator,\n parentFuncs = _ref.parentFuncs,\n fieldDefinition = _ref.fieldDefinition,\n isFuncArg = _ref.isFuncArg;\n var lookingForFieldType = _ref2.lookingForFieldType;\n var canUseFuncForField = config.settings.canUseFuncForField;\n var filteredFuncs = this.filterFuncs(config, config.funcs, field, fieldType, isLHS, operator, canUseFuncForField, parentFuncs, isFuncArg, fieldDefinition);\n var items = this.buildOptions(config, filteredFuncs, lookingForFieldType);\n return items;\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref3) {\n var _leftFieldConfig$widg;\n var config = _ref3.config,\n field = _ref3.field,\n fieldType = _ref3.fieldType,\n value = _ref3.value,\n isLHS = _ref3.isLHS,\n isFuncArg = _ref3.isFuncArg;\n var _config$settings = config.settings,\n funcPlaceholder = _config$settings.funcPlaceholder,\n fieldSeparatorDisplay = _config$settings.fieldSeparatorDisplay;\n var selectedFuncKey = value;\n var isFuncSelected = !!value;\n var leftFieldConfig = getFieldConfig(config, field);\n var leftFieldWidgetField = leftFieldConfig === null || leftFieldConfig === void 0 || (_leftFieldConfig$widg = leftFieldConfig.widgets) === null || _leftFieldConfig$widg === void 0 ? void 0 : _leftFieldConfig$widg.field;\n var leftFieldWidgetFieldProps = leftFieldWidgetField && leftFieldWidgetField.widgetProps || {};\n var placeholder = !isFuncSelected ? funcPlaceholder : null;\n var currFunc = isFuncSelected ? getFuncConfig(config, selectedFuncKey) : null;\n var selectedOpts = currFunc || {};\n var selectedKeys = getFieldPathParts(selectedFuncKey, config);\n var selectedPath = getFieldPathParts(selectedFuncKey, config, true);\n var selectedLabel = this.getFuncLabel(currFunc, selectedFuncKey, config);\n var partsLabels = getFuncPathLabels(selectedFuncKey, config);\n var selectedFullLabel = partsLabels ? partsLabels.join(fieldSeparatorDisplay) : null;\n if (selectedFullLabel == selectedLabel) selectedFullLabel = null;\n var isRootFuncAtLHS = isLHS && !isFuncArg;\n var lookingForFieldType = isRootFuncAtLHS && !isFuncSelected && fieldType;\n // Field source has been chnaged, no new func selected, but op & value remains\n var errorText = lookingForFieldType ? \"Please select function\" : null;\n return {\n placeholder: placeholder,\n selectedKey: selectedFuncKey,\n selectedKeys: selectedKeys,\n selectedPath: selectedPath,\n selectedLabel: selectedLabel,\n selectedOpts: selectedOpts,\n selectedFullLabel: selectedFullLabel,\n errorText: errorText,\n lookingForFieldType: lookingForFieldType\n };\n }\n }, {\n key: \"filterFuncs\",\n value: function filterFuncs(config, funcs, leftFieldFullkey, fieldType, isLHS, operator, canUseFuncForField, parentFuncs, isFuncArg, fieldDefinition) {\n funcs = clone(funcs);\n var fieldSeparator = config.settings.fieldSeparator;\n var leftFieldConfig = getFieldConfig(config, leftFieldFullkey);\n var _relyOnWidgetType = false; //TODO: remove this, see issue #758\n var expectedType;\n var targetDefinition = leftFieldConfig;\n var widget = getWidgetForFieldOp(config, leftFieldFullkey, operator, \"value\");\n var widgetConfig = widget && config.widgets[widget];\n if (isFuncArg) {\n targetDefinition = fieldDefinition;\n expectedType = fieldDefinition === null || fieldDefinition === void 0 ? void 0 : fieldDefinition.type;\n } else if (_relyOnWidgetType && widgetConfig) {\n expectedType = widgetConfig.type;\n } else if (leftFieldConfig) {\n expectedType = leftFieldConfig.type;\n } else if (!isLHS) {\n // no field at LHS, but can use type from \"memory effect\"\n expectedType = fieldType;\n }\n function _filter(list, path) {\n for (var funcKey in list) {\n var subfields = list[funcKey].subfields;\n var subpath = (path ? path : []).concat(funcKey);\n var funcFullkey = subpath.join(fieldSeparator);\n var funcConfig = getFuncConfig(config, funcFullkey);\n if (funcConfig.type == \"!struct\") {\n if (_filter(subfields, subpath) == 0) delete list[funcKey];\n } else {\n var _targetDefinition;\n var canUse = !expectedType || funcConfig.returnType == expectedType;\n if ((_targetDefinition = targetDefinition) !== null && _targetDefinition !== void 0 && _targetDefinition.funcs) canUse = canUse && targetDefinition.funcs.includes(funcFullkey);\n if (canUseFuncForField) canUse = canUse && canUseFuncForField(leftFieldFullkey, leftFieldConfig, funcFullkey, funcConfig, operator);\n // don't use func in func (can be configurable, but usually users don't need this)\n if (!funcConfig.allowSelfNesting && parentFuncs && parentFuncs.map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n func = _ref5[0],\n _arg = _ref5[1];\n return func;\n }).includes(funcFullkey)) canUse = false;\n if (!canUse) delete list[funcKey];\n }\n }\n return keys(list).length;\n }\n _filter(funcs, []);\n return funcs;\n }\n }, {\n key: \"buildOptions\",\n value: function buildOptions(config, funcs) {\n var _this2 = this;\n var fieldType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var optGroup = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!funcs) return null;\n var _config$settings2 = config.settings,\n fieldSeparator = _config$settings2.fieldSeparator,\n fieldSeparatorDisplay = _config$settings2.fieldSeparatorDisplay;\n var prefix = path !== null && path !== void 0 && path.length ? path.join(fieldSeparator) + fieldSeparator : \"\";\n var countFieldsMatchesType = function countFieldsMatchesType(fields) {\n return Object.keys(fields || {}).reduce(function (acc, fieldKey) {\n var field = fields[fieldKey];\n if (field.type === \"!struct\") {\n return acc + countFieldsMatchesType(field.subfields);\n } else {\n return acc + (field.type === fieldType ? 1 : 0);\n }\n }, 0);\n };\n return keys(funcs).map(function (funcKey) {\n var fullFuncPath = [].concat(_toConsumableArray(path !== null && path !== void 0 ? path : []), [funcKey]);\n var func = funcs[funcKey];\n var label = _this2.getFuncLabel(func, fullFuncPath, config);\n var partsLabels = getFuncPathLabels(fullFuncPath, config);\n var fullLabel = partsLabels.join(fieldSeparatorDisplay);\n if (fullLabel == label) fullLabel = null;\n var tooltip = func.tooltip;\n if (func.type == \"!struct\") {\n var items = _this2.buildOptions(config, func.subfields, fieldType, fullFuncPath, {\n label: label,\n tooltip: tooltip\n });\n var hasItemsMatchesType = countFieldsMatchesType(func.subfields) > 0;\n return {\n key: funcKey,\n path: prefix + funcKey,\n label: label,\n fullLabel: fullLabel,\n tooltip: tooltip,\n items: items,\n matchesType: hasItemsMatchesType\n };\n } else {\n var matchesType = fieldType !== undefined ? func.returnType === fieldType : undefined;\n return {\n key: funcKey,\n path: prefix + funcKey,\n label: label,\n fullLabel: fullLabel,\n tooltip: tooltip,\n grouplabel: optGroup === null || optGroup === void 0 ? void 0 : optGroup.label,\n group: optGroup,\n matchesType: matchesType\n };\n }\n });\n }\n }, {\n key: \"getFuncLabel\",\n value: function getFuncLabel(funcOpts, funcKey, config) {\n if (!funcKey) return null;\n var fieldSeparator = config.settings.fieldSeparator;\n var maxLabelsLength = config.settings.maxLabelsLength;\n var funcParts = getFieldParts(funcKey, config);\n var label = (funcOpts === null || funcOpts === void 0 ? void 0 : funcOpts.label) || last(funcParts);\n label = truncateString(label, maxLabelsLength);\n return label;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n customProps = _this$props.customProps,\n setValue = _this$props.setValue,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var renderFunc = config.settings.renderFunc;\n var renderProps = _objectSpread({\n config: config,\n customProps: customProps,\n readonly: readonly,\n setField: setValue,\n items: this.items,\n id: id,\n groupId: groupId\n }, this.meta);\n return renderFunc(renderProps, config.ctx);\n }\n }]);\n return FuncSelect;\n}(Component);\nFuncSelect.propTypes = {\n id: PropTypes.string,\n groupId: PropTypes.string,\n config: PropTypes.object.isRequired,\n field: PropTypes.any,\n fieldType: PropTypes.string,\n fieldSrc: PropTypes.string,\n operator: PropTypes.string,\n customProps: PropTypes.object,\n value: PropTypes.string,\n setValue: PropTypes.func.isRequired,\n readonly: PropTypes.bool,\n parentFuncs: PropTypes.array,\n fieldDefinition: PropTypes.object,\n isFuncArg: PropTypes.bool,\n isLHS: PropTypes.bool\n};\nexport { FuncSelect as default };","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"factory\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport omit from \"lodash/omit\";\nvar getTitleInListValues = Utils.ListUtils.getTitleInListValues;\nvar _widgetDefKeysToOmit = Utils.ConfigUtils._widgetDefKeysToOmit;\nexport default (function (_ref) {\n var delta = _ref.delta,\n isFuncArg = _ref.isFuncArg,\n valueSrc = _ref.valueSrc,\n immValue = _ref.value,\n immValueError = _ref.valueError,\n asyncListValues = _ref.asyncListValues,\n isSpecialRange = _ref.isSpecialRange,\n fieldDefinition = _ref.fieldDefinition,\n widget = _ref.widget,\n widgetDefinition = _ref.widgetDefinition,\n widgetValueLabel = _ref.widgetValueLabel,\n valueLabels = _ref.valueLabels,\n textSeparators = _ref.textSeparators,\n setValueHandler = _ref.setValueHandler,\n config = _ref.config,\n field = _ref.field,\n fieldSrc = _ref.fieldSrc,\n fieldType = _ref.fieldType,\n isLHS = _ref.isLHS,\n operator = _ref.operator,\n readonly = _ref.readonly,\n parentField = _ref.parentField,\n parentFuncs = _ref.parentFuncs,\n id = _ref.id,\n groupId = _ref.groupId;\n var widgetFactory = widgetDefinition.factory,\n fieldWidgetProps = _objectWithoutProperties(widgetDefinition, _excluded);\n var isConst = isFuncArg && fieldDefinition.valueSources && fieldDefinition.valueSources.length == 1 && fieldDefinition.valueSources[0] == \"const\";\n var defaultValue = fieldDefinition.defaultValue;\n if (!widgetFactory) {\n return \"?\";\n }\n var value = isSpecialRange ? [immValue.get(0), immValue.get(1)] : immValue ? immValue.get(delta) : undefined;\n var valueError = immValueError && (isSpecialRange ? [immValueError.get(0), immValueError.get(1)] : immValueError.get(delta)) || null;\n if (isSpecialRange && value[0] === undefined && value[1] === undefined) value = undefined;\n var _ref2 = fieldDefinition || {},\n fieldSettings = _ref2.fieldSettings;\n var widgetProps = omit(_objectSpread(_objectSpread(_objectSpread({}, fieldWidgetProps), fieldSettings), {}, {\n config: config,\n field: field,\n fieldSrc: fieldSrc,\n fieldType: fieldType,\n isLHS: isLHS,\n parentField: parentField,\n parentFuncs: parentFuncs,\n fieldDefinition: fieldDefinition,\n operator: operator,\n delta: delta,\n isSpecialRange: isSpecialRange,\n isFuncArg: isFuncArg,\n value: value,\n valueError: valueError,\n label: widgetValueLabel.label,\n placeholder: widgetValueLabel.placeholder,\n placeholders: valueLabels ? valueLabels.placeholder : null,\n textSeparators: textSeparators,\n setValue: setValueHandler,\n readonly: readonly,\n asyncListValues: asyncListValues,\n id: id,\n groupId: groupId\n }), [].concat(_toConsumableArray(_widgetDefKeysToOmit), [\"toJS\"]));\n if (widget == \"field\") {\n //\n }\n if (isConst && defaultValue) {\n var listValues = (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.treeValues) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.listValues);\n if (typeof defaultValue == \"boolean\") {\n return defaultValue ? widgetProps.labelYes || \"YES\" : widgetProps.labelNo || \"NO\";\n } else if (listValues) {\n if (Array.isArray(defaultValue)) return defaultValue.map(function (v) {\n return getTitleInListValues(listValues, v) || v;\n }).join(\", \");else return getTitleInListValues(listValues, defaultValue) || defaultValue;\n }\n return \"\" + defaultValue;\n }\n return widgetFactory(widgetProps, config.ctx);\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport range from \"lodash/range\";\nimport { defaultValue } from \"../../utils/stuff\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport pick from \"lodash/pick\";\nimport WidgetFactory from \"./WidgetFactory\";\nimport classNames from \"classnames\";\nimport { Col } from \"../utils\";\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getOperatorConfig = _Utils$ConfigUtils.getOperatorConfig,\n getFieldWidgetConfig = _Utils$ConfigUtils.getFieldWidgetConfig;\nvar _Utils$RuleUtils = Utils.RuleUtils,\n getValueSourcesForFieldOp = _Utils$RuleUtils.getValueSourcesForFieldOp,\n getWidgetForFieldOp = _Utils$RuleUtils.getWidgetForFieldOp,\n getValueLabel = _Utils$RuleUtils.getValueLabel;\nvar createListFromArray = Utils.DefaultUtils.createListFromArray;\nvar funcArgDummyOpDef = {\n cardinality: 1\n};\nvar Widget = /*#__PURE__*/function (_Component) {\n _inherits(Widget, _Component);\n var _super = _createSuper(Widget);\n function Widget(_props) {\n var _this;\n _classCallCheck(this, Widget);\n _this = _super.call(this, _props);\n _this._setValue = function (isSpecialRange, delta, widgetType, value, asyncListValues, __isInternal) {\n if (isSpecialRange && Array.isArray(value)) {\n var oldRange = [_this.props.value.get(0), _this.props.value.get(1)];\n if (oldRange[0] != value[0]) _this.props.setValue(0, value[0], widgetType, asyncListValues, __isInternal);\n if (oldRange[1] != value[1]) _this.props.setValue(1, value[1], widgetType, asyncListValues, __isInternal);\n } else {\n _this.props.setValue(delta, value, widgetType, asyncListValues, __isInternal);\n }\n };\n _this._onChangeValueSrc = function (delta, srcKey) {\n _this.props.setValueSrc(delta, srcKey);\n };\n _this.renderWidget = function (delta, meta, props) {\n var config = props.config,\n isFuncArg = props.isFuncArg,\n leftField = props.leftField,\n operator = props.operator,\n values = props.value,\n valueError = props.valueError,\n readonly = props.readonly,\n parentField = props.parentField,\n parentFuncs = props.parentFuncs,\n id = props.id,\n groupId = props.groupId,\n fieldSrc = props.fieldSrc,\n fieldType = props.fieldType,\n isLHS = props.isLHS;\n var settings = config.settings;\n var widgets = meta.widgets,\n iValues = meta.iValues,\n aField = meta.aField,\n valueSources = meta.valueSources;\n var value = isFuncArg ? iValues : values;\n var field = isFuncArg ? leftField : aField;\n var _widgets$delta = widgets[delta],\n valueSrc = _widgets$delta.valueSrc,\n valueLabel = _widgets$delta.valueLabel;\n var hasValueSources = valueSources.length > 1 && !readonly;\n var widgetLabel = settings.showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, valueLabel.label) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"widget-\" + field + \"-\" + delta,\n className: classNames(valueSrc == \"func\" ? \"widget--func\" : \"widget--widget\", hasValueSources ? \"widget--has-valuerscs\" : \"widget--has-no-valuerscs\")\n }, valueSrc == \"func\" ? null : widgetLabel, /*#__PURE__*/React.createElement(WidgetFactory, _extends({\n id: id,\n groupId: groupId,\n valueSrc: valueSrc,\n delta: delta,\n value: value,\n valueError: valueError,\n isFuncArg: isFuncArg,\n isLHS: isLHS\n }, pick(meta, [\"isSpecialRange\", \"fieldDefinition\", \"asyncListValues\"]), pick(widgets[delta], [\"widget\", \"widgetDefinition\", \"widgetValueLabel\", \"valueLabels\", \"textSeparators\", \"setValueHandler\"]), {\n config: config,\n field: field,\n fieldSrc: fieldSrc,\n fieldType: fieldType,\n parentField: parentField,\n parentFuncs: parentFuncs,\n operator: operator,\n readonly: readonly\n })));\n };\n _this.renderValueSources = function (delta, meta, props) {\n var config = props.config,\n isFuncArg = props.isFuncArg,\n leftField = props.leftField,\n operator = props.operator,\n readonly = props.readonly;\n var settings = config.settings;\n var valueSources = meta.valueSources,\n widgets = meta.widgets,\n aField = meta.aField;\n var field = isFuncArg ? leftField : aField;\n var _widgets$delta2 = widgets[delta],\n valueSrc = _widgets$delta2.valueSrc,\n setValueSrcHandler = _widgets$delta2.setValueSrcHandler;\n var valueSourcesInfo = settings.valueSourcesInfo,\n renderValueSources = settings.renderValueSources;\n var valueSourcesOptions = valueSources.map(function (srcKey) {\n return [srcKey, {\n label: valueSourcesInfo[srcKey].label\n }];\n });\n var ValueSources = function ValueSources(pr) {\n return renderValueSources(pr, config.ctx);\n };\n var sourceLabel = settings.showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, \"\\xA0\") : null;\n return valueSources.length > 1 && !readonly && /*#__PURE__*/React.createElement(\"div\", {\n key: \"valuesrc-\" + field + \"-\" + delta,\n className: \"widget--valuesrc\"\n }, sourceLabel, /*#__PURE__*/React.createElement(ValueSources, {\n key: \"valuesrc-\" + delta,\n delta: delta,\n valueSources: valueSourcesOptions,\n valueSrc: valueSrc,\n config: config,\n field: field,\n operator: operator,\n setValueSrc: setValueSrcHandler,\n readonly: readonly,\n title: settings.valueSourcesPopupTitle\n }));\n };\n _this.renderSep = function (delta, meta, props) {\n var config = props.config;\n var widgets = meta.widgets;\n var settings = config.settings;\n var sepText = widgets[delta].sepText;\n var sepLabel = settings.showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, \"\\xA0\") : null;\n return sepText && /*#__PURE__*/React.createElement(\"div\", {\n key: \"widget-separators-\" + delta,\n className: classNames(\"widget--sep\", delta == 0 && \"widget--sep-first\")\n }, sepLabel, /*#__PURE__*/React.createElement(\"span\", null, sepText));\n };\n _this.renderWidgetDelta = function (delta) {\n var sep = _this.renderSep(delta, _this.meta, _this.props);\n var sources = _this.renderValueSources(delta, _this.meta, _this.props);\n var widgetCmp = _this.renderWidget(delta, _this.meta, _this.props);\n return [sep, sources, widgetCmp];\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(_props);\n return _this;\n }\n _createClass(Widget, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"config\", \"field\", \"fieldSrc\", \"fieldType\", \"fieldFunc\", \"fieldArg\", \"leftField\", \"operator\", \"valueSrc\", \"isFuncArg\", \"asyncListValues\", \"isLHS\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k]\n //tip: for isFuncArg we need to wrap value in Imm list\n || k == \"isFuncArg\" && nextProps[\"isFuncArg\"] && nextProps[\"value\"] !== prevProps[\"value\"];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref) {\n var _this2 = this;\n var config = _ref.config,\n simpleField = _ref.field,\n fieldSrc = _ref.fieldSrc,\n fieldType = _ref.fieldType,\n fieldFunc = _ref.fieldFunc,\n fieldArg = _ref.fieldArg,\n operator = _ref.operator,\n valueSrcs = _ref.valueSrc,\n values = _ref.value,\n isForRuleGroup = _ref.isForRuleGroup,\n isCaseValue = _ref.isCaseValue,\n isFuncArg = _ref.isFuncArg,\n leftField = _ref.leftField,\n asyncListValues = _ref.asyncListValues;\n var field = isFuncArg ? {\n func: fieldFunc,\n arg: fieldArg\n } : simpleField;\n var isOkWithoutField = !simpleField && fieldType;\n var iValueSrcs = valueSrcs;\n var iValues = values;\n if (isFuncArg || isForRuleGroup || isCaseValue) {\n iValueSrcs = createListFromArray([valueSrcs]);\n iValues = createListFromArray([values]);\n }\n var fieldDefinition = getFieldConfig(config, field);\n if (!fieldDefinition && isOkWithoutField) {\n fieldDefinition = config.types[fieldType];\n }\n var defaultWidget = getWidgetForFieldOp(config, field, operator);\n if (!defaultWidget && isOkWithoutField) {\n var _config$types$fieldTy;\n defaultWidget = (_config$types$fieldTy = config.types[fieldType]) === null || _config$types$fieldTy === void 0 ? void 0 : _config$types$fieldTy.mainWidget;\n }\n var operatorDefinition = isFuncArg ? funcArgDummyOpDef : getOperatorConfig(config, operator, field);\n if ((fieldDefinition == null || operatorDefinition == null) && !isCaseValue) {\n return null;\n }\n var isSpecialRange = operatorDefinition === null || operatorDefinition === void 0 ? void 0 : operatorDefinition.isSpecialRange;\n var isSpecialRangeForSrcField = isSpecialRange && (iValueSrcs.get(0) == \"field\" || iValueSrcs.get(1) == \"field\");\n var isTrueSpecialRange = isSpecialRange && !isSpecialRangeForSrcField;\n var cardinality = isTrueSpecialRange ? 1 : defaultValue(operatorDefinition === null || operatorDefinition === void 0 ? void 0 : operatorDefinition.cardinality, 1);\n if (cardinality === 0) {\n return null;\n }\n var valueSources = getValueSourcesForFieldOp(config, field, operator, fieldDefinition);\n if (!field) {\n valueSources = Object.keys(config.settings.valueSourcesInfo);\n }\n var widgets = range(0, cardinality).map(function (delta) {\n var _widgetDefinition;\n var valueSrc = iValueSrcs.get(delta) || null;\n var widget = getWidgetForFieldOp(config, field, operator, valueSrc);\n var widgetDefinition = getFieldWidgetConfig(config, field, operator, widget, valueSrc);\n if (isSpecialRangeForSrcField) {\n widget = widgetDefinition.singleWidget;\n widgetDefinition = getFieldWidgetConfig(config, field, operator, widget, valueSrc);\n }\n if (!widgetDefinition && isOkWithoutField) {\n widget = [\"func\", \"field\"].includes(valueSrc) ? valueSrc : defaultWidget;\n widgetDefinition = config.widgets[widget];\n }\n var widgetType = (_widgetDefinition = widgetDefinition) === null || _widgetDefinition === void 0 ? void 0 : _widgetDefinition.type;\n var valueLabel = getValueLabel(config, field, operator, delta, valueSrc, isTrueSpecialRange);\n var widgetValueLabel = getValueLabel(config, field, operator, delta, null, isTrueSpecialRange);\n var sepText = operatorDefinition !== null && operatorDefinition !== void 0 && operatorDefinition.textSeparators ? operatorDefinition === null || operatorDefinition === void 0 ? void 0 : operatorDefinition.textSeparators[delta] : null;\n var setValueSrcHandler = _this2._onChangeValueSrc.bind(_this2, delta);\n var valueLabels = null;\n var textSeparators = null;\n if (isSpecialRange) {\n valueLabels = [getValueLabel(config, field, operator, 0), getValueLabel(config, field, operator, 1)];\n valueLabels = {\n placeholder: [valueLabels[0].placeholder, valueLabels[1].placeholder],\n label: [valueLabels[0].label, valueLabels[1].label]\n };\n textSeparators = operatorDefinition === null || operatorDefinition === void 0 ? void 0 : operatorDefinition.textSeparators;\n }\n var setValueHandler = _this2._setValue.bind(_this2, isSpecialRange, delta, widgetType);\n return {\n valueSrc: valueSrc,\n valueLabel: valueLabel,\n widget: widget,\n sepText: sepText,\n setValueSrcHandler: setValueSrcHandler,\n widgetDefinition: widgetDefinition,\n widgetValueLabel: widgetValueLabel,\n valueLabels: valueLabels,\n textSeparators: textSeparators,\n setValueHandler: setValueHandler\n };\n });\n return {\n defaultWidget: defaultWidget,\n fieldDefinition: fieldDefinition,\n operatorDefinition: operatorDefinition,\n isSpecialRange: isTrueSpecialRange,\n cardinality: cardinality,\n valueSources: valueSources,\n widgets: widgets,\n iValues: iValues,\n //correct for isFuncArg\n aField: field,\n //correct for isFuncArg\n asyncListValues: asyncListValues\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.meta) return null;\n var _this$meta = this.meta,\n defaultWidget = _this$meta.defaultWidget,\n cardinality = _this$meta.cardinality;\n if (!defaultWidget) return null;\n var name = defaultWidget;\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--widget rule--widget--\".concat(name.toUpperCase()),\n key: \"widget-col-\" + name\n }, range(0, cardinality).map(this.renderWidgetDelta));\n }\n }]);\n return Widget;\n}(Component);\nWidget.propTypes = {\n config: PropTypes.object.isRequired,\n value: PropTypes.any,\n //instanceOf(Immutable.List)\n valueSrc: PropTypes.any,\n //instanceOf(Immutable.List)\n valueError: PropTypes.any,\n field: PropTypes.any,\n fieldSrc: PropTypes.string,\n fieldType: PropTypes.string,\n operator: PropTypes.string,\n readonly: PropTypes.bool,\n asyncListValues: PropTypes.array,\n id: PropTypes.string,\n groupId: PropTypes.string,\n //actions\n setValue: PropTypes.func,\n setValueSrc: PropTypes.func,\n // for isFuncArg\n isFuncArg: PropTypes.bool,\n fieldFunc: PropTypes.string,\n fieldArg: PropTypes.string,\n leftField: PropTypes.any,\n // for RuleGroupExt\n isForRuleGroup: PropTypes.bool,\n parentField: PropTypes.string,\n // for func in func\n parentFuncs: PropTypes.array,\n isLHS: PropTypes.bool,\n // for case_value\n isCaseValue: PropTypes.bool\n};\nexport { Widget as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component, PureComponent } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport FuncSelect from \"./FuncSelect\";\nimport Widget from \"./Widget\";\nimport { Col } from \"../utils\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nvar getFuncConfig = Utils.ConfigUtils.getFuncConfig;\nvar _Utils$FuncUtils = Utils.FuncUtils,\n setFunc = _Utils$FuncUtils.setFunc,\n setArgValue = _Utils$FuncUtils.setArgValue,\n setArgValueSrc = _Utils$FuncUtils.setArgValueSrc;\nvar FuncWidget = /*#__PURE__*/function (_Component) {\n _inherits(FuncWidget, _Component);\n var _super = _createSuper(FuncWidget);\n function FuncWidget(props) {\n var _this;\n _classCallCheck(this, FuncWidget);\n _this = _super.call(this, props);\n _this.setFunc = function (funcKey) {\n _this.props.setValue(setFunc(_this.props.value, funcKey, _this.props.config));\n };\n _this.setArgValue = function (argKey, argVal, asyncListValues, __isInternal) {\n var config = _this.props.config;\n var funcDefinition = _this.meta.funcDefinition;\n var args = funcDefinition.args;\n var argDefinition = args[argKey];\n _this.props.setValue(setArgValue(_this.props.value, argKey, argVal, argDefinition, config), asyncListValues, __isInternal);\n };\n _this.setArgValueSrc = function (argKey, argValSrc) {\n var config = _this.props.config;\n var funcDefinition = _this.meta.funcDefinition;\n var args = funcDefinition.args;\n var argDefinition = args[argKey];\n _this.props.setValue(setArgValueSrc(_this.props.value, argKey, argValSrc, argDefinition, config));\n };\n _this.renderFuncSelect = function () {\n var _this$props = _this.props,\n config = _this$props.config,\n field = _this$props.field,\n fieldType = _this$props.fieldType,\n fieldSrc = _this$props.fieldSrc,\n isLHS = _this$props.isLHS,\n operator = _this$props.operator,\n customProps = _this$props.customProps,\n value = _this$props.value,\n readonly = _this$props.readonly,\n parentFuncs = _this$props.parentFuncs,\n id = _this$props.id,\n groupId = _this$props.groupId,\n isFuncArg = _this$props.isFuncArg,\n fieldDefinition = _this$props.fieldDefinition;\n var funcKey = value ? value.get(\"func\") : null;\n var selectProps = {\n value: funcKey,\n setValue: _this.setFunc,\n config: config,\n field: field,\n fieldType: fieldType,\n fieldSrc: fieldSrc,\n isLHS: isLHS,\n operator: operator,\n customProps: customProps,\n readonly: readonly,\n parentFuncs: parentFuncs,\n isFuncArg: isFuncArg,\n fieldDefinition: fieldDefinition,\n id: id,\n groupId: groupId\n };\n var _config$settings = config.settings,\n showLabels = _config$settings.showLabels,\n funcLabel = _config$settings.funcLabel;\n var widgetLabel = showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, funcLabel) : null;\n return /*#__PURE__*/React.createElement(Col, {\n key: \"func\",\n className: \"rule--func\"\n }, widgetLabel, /*#__PURE__*/React.createElement(FuncSelect, selectProps));\n };\n _this.renderArgLabel = function (argKey, argDefinition) {\n var valueSources = argDefinition.valueSources,\n type = argDefinition.type,\n showPrefix = argDefinition.showPrefix,\n label = argDefinition.label;\n var config = _this.props.config;\n var isConst = valueSources && valueSources.length == 1 && valueSources[0] == \"const\";\n var forceShow = !config.settings.showLabels && (type == \"boolean\" || isConst) && showPrefix;\n if (!forceShow) return null;\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--func--arg-label\"\n }, label || argKey);\n };\n _this.renderArgLabelSep = function (argKey, argDefinition) {\n var valueSources = argDefinition.valueSources,\n type = argDefinition.type,\n showPrefix = argDefinition.showPrefix;\n var config = _this.props.config;\n var isConst = valueSources && valueSources.length == 1 && valueSources[0] == \"const\";\n var forceShow = !config.settings.showLabels && (type == \"boolean\" || isConst) && showPrefix;\n if (!forceShow) return null;\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--func--arg-label-sep\"\n }, \":\");\n };\n _this.renderArgVal = function (funcKey, argKey, argDefinition) {\n var _this$props2 = _this.props,\n config = _this$props2.config,\n field = _this$props2.field,\n fieldType = _this$props2.fieldType,\n fieldSrc = _this$props2.fieldSrc,\n isLHS = _this$props2.isLHS,\n operator = _this$props2.operator,\n value = _this$props2.value,\n readonly = _this$props2.readonly,\n parentFuncs = _this$props2.parentFuncs,\n id = _this$props2.id,\n groupId = _this$props2.groupId;\n var arg = value ? value.getIn([\"args\", argKey]) : null;\n var argVal = arg ? arg.get(\"value\") : undefined;\n var defaultValueSource = argDefinition.valueSources.length == 1 ? argDefinition.valueSources[0] : undefined;\n var argValSrc = arg ? arg.get(\"valueSrc\") || defaultValueSource || \"value\" : defaultValueSource;\n var widgetProps = {\n config: config,\n fieldFunc: funcKey,\n fieldArg: argKey,\n leftField: field,\n fieldType: fieldType,\n // type of leftField\n fieldSrc: fieldSrc,\n // src of leftField\n isLHS: isLHS,\n operator: null,\n value: argVal,\n valueSrc: argValSrc,\n setValue: _this.setArgValue,\n setValueSrc: _this.setArgValueSrc,\n funcKey: funcKey,\n argKey: argKey,\n argDefinition: argDefinition,\n readonly: readonly,\n parentFuncs: parentFuncs,\n id: id,\n groupId: groupId\n };\n //tip: value & valueSrc will be converted to Immutable.List at <Widget>\n\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--func--arg-value\"\n }, /*#__PURE__*/React.createElement(ArgWidget, widgetProps));\n };\n _this.renderArgSep = function (argKey, argDefinition, argIndex, _ref) {\n var renderSeps = _ref.renderSeps;\n if (!argIndex) return null;\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--func--arg-sep\"\n }, renderSeps ? renderSeps[argIndex - 1] : \", \");\n };\n _this.renderBracketBefore = function (_ref2) {\n var renderBrackets = _ref2.renderBrackets;\n return /*#__PURE__*/React.createElement(Col, {\n key: \"before_args\",\n className: \"rule--func--bracket-before\"\n }, renderBrackets ? renderBrackets[0] : \"(\");\n };\n _this.renderBracketAfter = function (_ref3) {\n var renderBrackets = _ref3.renderBrackets;\n return /*#__PURE__*/React.createElement(Col, {\n key: \"after_args\",\n className: \"rule--func--bracket-after\"\n }, renderBrackets ? renderBrackets[1] : \")\");\n };\n _this.renderFuncArgs = function () {\n var _this$meta = _this.meta,\n funcDefinition = _this$meta.funcDefinition,\n funcKey = _this$meta.funcKey;\n if (!funcKey) return null;\n var _ref4 = funcDefinition || {},\n args = _ref4.args;\n if (!args) return null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, _this.renderBracketBefore(funcDefinition), /*#__PURE__*/React.createElement(Col, {\n key: \"args\",\n className: \"rule--func--args\"\n }, Object.keys(args).map(function (argKey, argIndex) {\n return /*#__PURE__*/React.createElement(Col, {\n key: \"arg-\".concat(argKey, \"-\").concat(argIndex),\n className: \"rule--func--arg\"\n }, _this.renderArgSep(argKey, args[argKey], argIndex, funcDefinition), _this.renderArgLabel(argKey, args[argKey]), _this.renderArgLabelSep(argKey, args[argKey]), _this.renderArgVal(funcKey, argKey, args[argKey]));\n })), _this.renderBracketAfter(funcDefinition));\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(FuncWidget, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"config\", \"field\", \"operator\", \"value\", \"fieldSrc\", \"fieldType\", \"isLHS\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref5) {\n var config = _ref5.config,\n field = _ref5.field,\n operator = _ref5.operator,\n value = _ref5.value;\n var funcKey = value ? value.get(\"func\") : null;\n var funcDefinition = funcKey ? getFuncConfig(config, funcKey) : null;\n return {\n funcDefinition: funcDefinition,\n funcKey: funcKey\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--func--wrapper\"\n }, this.renderFuncSelect(), this.renderFuncArgs());\n }\n }]);\n return FuncWidget;\n}(Component);\nFuncWidget.propTypes = {\n id: PropTypes.string,\n groupId: PropTypes.string,\n config: PropTypes.object.isRequired,\n field: PropTypes.any,\n fieldSrc: PropTypes.string,\n fieldType: PropTypes.string,\n operator: PropTypes.string,\n customProps: PropTypes.object,\n value: PropTypes.object,\n //instanceOf(Immutable.Map) //with keys 'func' and `args`\n setValue: PropTypes.func.isRequired,\n readonly: PropTypes.bool,\n parentFuncs: PropTypes.array,\n fieldDefinition: PropTypes.object,\n isFuncArg: PropTypes.bool,\n isLHS: PropTypes.bool\n};\nexport { FuncWidget as default };\nvar ArgWidget = /*#__PURE__*/function (_Component2) {\n _inherits(ArgWidget, _Component2);\n var _super2 = _createSuper(ArgWidget);\n function ArgWidget(props) {\n var _this2;\n _classCallCheck(this, ArgWidget);\n _this2 = _super2.call(this, props);\n _this2.setValue = function (_delta, value, _widgetType, asyncListValues, __isInternal) {\n var _this2$props = _this2.props,\n setValue = _this2$props.setValue,\n argKey = _this2$props.argKey;\n setValue(argKey, value, asyncListValues, __isInternal);\n };\n _this2.setValueSrc = function (_delta, valueSrc, _widgetType) {\n var _this2$props2 = _this2.props,\n setValueSrc = _this2$props2.setValueSrc,\n argKey = _this2$props2.argKey;\n setValueSrc(argKey, valueSrc);\n };\n useOnPropsChanged(_assertThisInitialized(_this2));\n _this2.onPropsChanged(props);\n return _this2;\n }\n _createClass(ArgWidget, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"parentFuncs\", \"funcKey\", \"argKey\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref6) {\n var parentFuncs = _ref6.parentFuncs,\n funcKey = _ref6.funcKey,\n argKey = _ref6.argKey;\n var newParentFuncs = [].concat(_toConsumableArray(parentFuncs || []), [[funcKey, argKey]]);\n return {\n parentFuncs: newParentFuncs\n };\n }\n }, {\n key: \"render\",\n value: function render() {\n var parentFuncs = this.meta.parentFuncs;\n return /*#__PURE__*/React.createElement(Widget, _extends({}, this.props, {\n setValue: this.setValue,\n setValueSrc: this.setValueSrc,\n isFuncArg: true,\n parentFuncs: parentFuncs\n }));\n }\n }]);\n return ArgWidget;\n}(Component);\nArgWidget.propTypes = {\n funcKey: PropTypes.string.isRequired,\n argKey: PropTypes.string.isRequired,\n setValue: PropTypes.func.isRequired,\n setValueSrc: PropTypes.func.isRequired,\n readonly: PropTypes.bool,\n isLHS: PropTypes.bool,\n parentFuncs: PropTypes.array,\n id: PropTypes.string,\n groupId: PropTypes.string\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nimport Field from \"./Field\";\nimport { Col } from \"../utils\";\nimport FuncWidget from \"./FuncWidget\";\nvar FieldWrapper = /*#__PURE__*/function (_PureComponent) {\n _inherits(FieldWrapper, _PureComponent);\n var _super = _createSuper(FieldWrapper);\n function FieldWrapper() {\n var _this;\n _classCallCheck(this, FieldWrapper);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.renderField = function () {\n var _this$props = _this.props,\n config = _this$props.config,\n classname = _this$props.classname,\n selectedField = _this$props.selectedField,\n selectedFieldSrc = _this$props.selectedFieldSrc,\n selectedFieldType = _this$props.selectedFieldType,\n setField = _this$props.setField,\n parentField = _this$props.parentField,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var supportedFieldSrcs = [\"func\", \"field\"];\n if (!supportedFieldSrcs.includes(selectedFieldSrc)) {\n return \"?\";\n }\n var field = selectedFieldSrc === \"func\" ? /*#__PURE__*/React.createElement(FuncWidget, {\n isLHS: true,\n config: config,\n value: selectedField,\n fieldSrc: selectedFieldSrc,\n fieldType: selectedFieldType,\n parentField: parentField,\n setValue: setField,\n readonly: readonly,\n id: id,\n groupId: groupId,\n key: \"field-func-\" + id\n }) : /*#__PURE__*/React.createElement(Field, {\n config: config,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedFieldType: selectedFieldType,\n parentField: parentField,\n setField: setField,\n customProps: config.settings.customFieldSelectProps,\n readonly: readonly,\n id: id,\n groupId: groupId,\n key: \"field-\" + id\n });\n var fieldLabel = selectedFieldSrc === \"func\" ? config.settings.funcLabel : config.settings.fieldLabel;\n var label = config.settings.showLabels && selectedFieldSrc !== \"func\" && /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, fieldLabel);\n return /*#__PURE__*/React.createElement(\"div\", {\n key: selectedFieldSrc,\n className: classname\n }, label, field);\n };\n _this.renderFieldSources = function () {\n var _this$props2 = _this.props,\n config = _this$props2.config,\n readonly = _this$props2.readonly,\n selectedFieldSrc = _this$props2.selectedFieldSrc,\n setFieldSrc = _this$props2.setFieldSrc,\n id = _this$props2.id;\n var settings = config.settings;\n var fieldSources = settings.fieldSources,\n valueSourcesInfo = settings.valueSourcesInfo,\n renderValueSources = settings.renderValueSources;\n var fieldSourcesOptions = fieldSources.map(function (srcKey) {\n return [srcKey, {\n label: valueSourcesInfo[srcKey].label\n }];\n });\n var ValueSources = function ValueSources(pr) {\n return renderValueSources(pr, config.ctx);\n };\n var sourceLabel = settings.showLabels ? /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, \"\\xA0\") : null;\n return fieldSources.length > 1 && !readonly && /*#__PURE__*/React.createElement(\"div\", {\n key: \"fieldsrc\",\n className: \"rule--fieldsrc\"\n }, sourceLabel, /*#__PURE__*/React.createElement(ValueSources, {\n key: \"fieldsrc-\" + id,\n valueSources: fieldSourcesOptions,\n valueSrc: selectedFieldSrc,\n config: config,\n setValueSrc: setFieldSrc,\n readonly: readonly,\n title: settings.fieldSourcesPopupTitle\n }));\n };\n return _this;\n }\n _createClass(FieldWrapper, [{\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n classname = _this$props3.classname,\n canSelectFieldSource = _this$props3.canSelectFieldSource;\n var fieldSources = canSelectFieldSource && this.renderFieldSources();\n var field = this.renderField();\n if (!canSelectFieldSource) {\n return field;\n } else {\n return /*#__PURE__*/React.createElement(Col, {\n className: \"rule--field-wrapper\"\n }, fieldSources, field);\n }\n }\n }]);\n return FieldWrapper;\n}(PureComponent);\nexport { FieldWrapper as default };","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nvar _excluded = [\"factory\"];\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nvar getOperatorConfig = Utils.ConfigUtils.getOperatorConfig;\nvar OperatorOptions = /*#__PURE__*/function (_PureComponent) {\n _inherits(OperatorOptions, _PureComponent);\n var _super = _createSuper(OperatorOptions);\n function OperatorOptions() {\n _classCallCheck(this, OperatorOptions);\n return _super.apply(this, arguments);\n }\n _createClass(OperatorOptions, [{\n key: \"render\",\n value: function render() {\n if (!this.props.selectedOperator) return null;\n var operatorDefinitions = getOperatorConfig(this.props.config, this.props.selectedOperator, this.props.selectedField);\n if (typeof operatorDefinitions.options === \"undefined\") {\n return null;\n }\n var _operatorDefinitions$ = operatorDefinitions.options,\n optionsFactory = _operatorDefinitions$.factory,\n basicOptionsProps = _objectWithoutProperties(_operatorDefinitions$, _excluded);\n var optionsProps = Object.assign({}, basicOptionsProps, {\n config: this.props.config,\n field: this.props.selectedField,\n fieldSrc: this.props.selectedFieldSrc,\n operator: this.props.selectedOperator,\n options: this.props.operatorOptions,\n setOption: this.props.setOperatorOption,\n readonly: this.props.readonly\n });\n var optionsCmp = optionsFactory(optionsProps, this.props.config.ctx);\n var name = this.props.selectedOperator;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--operator rule--operator--\".concat(name.toUpperCase())\n }, optionsCmp);\n }\n }]);\n return OperatorOptions;\n}(PureComponent);\nOperatorOptions.propTypes = {\n config: PropTypes.object.isRequired,\n operatorOptions: PropTypes.any.isRequired,\n //instanceOf(Immutable.Map)\n selectedField: PropTypes.any,\n selectedFieldSrc: PropTypes.string,\n selectedOperator: PropTypes.string.isRequired,\n readonly: PropTypes.bool,\n //actions\n setOperatorOption: PropTypes.func.isRequired\n};\nexport { OperatorOptions as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport RuleContainer from \"../containers/RuleContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport OperatorWrapper from \"../rule/OperatorWrapper\";\nimport FieldWrapper from \"../rule/FieldWrapper\";\nimport Widget from \"../rule/Widget\";\nimport OperatorOptions from \"../rule/OperatorOptions\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { Col, dummyFn, WithConfirmFn } from \"../utils\";\nimport classNames from \"classnames\";\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getOperatorConfig = _Utils$ConfigUtils.getOperatorConfig,\n getFieldWidgetConfig = _Utils$ConfigUtils.getFieldWidgetConfig,\n getFieldParts = _Utils$ConfigUtils.getFieldParts;\nvar isEmptyRuleProperties = Utils.RuleUtils.isEmptyRuleProperties;\nvar Rule = /*#__PURE__*/function (_Component) {\n _inherits(Rule, _Component);\n var _super = _createSuper(Rule);\n function Rule(props) {\n var _this;\n _classCallCheck(this, Rule);\n _this = _super.call(this, props);\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.removeSelf = _this.removeSelf.bind(_assertThisInitialized(_this));\n _this.setLock = _this.setLock.bind(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(Rule, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForMeta = [\"selectedField\", \"selectedFieldSrc\", \"selectedFieldType\", \"selectedOperator\", \"config\", \"reordableNodesCnt\", \"isLocked\"];\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref) {\n var selectedField = _ref.selectedField,\n selectedFieldType = _ref.selectedFieldType,\n selectedOperator = _ref.selectedOperator,\n config = _ref.config,\n reordableNodesCnt = _ref.reordableNodesCnt,\n isLocked = _ref.isLocked;\n var keepInputOnChangeFieldSrc = config.settings.keepInputOnChangeFieldSrc;\n var selectedFieldParts = getFieldParts(selectedField, config);\n var selectedFieldConfig = getFieldConfig(config, selectedField);\n var isSelectedGroup = selectedFieldConfig && selectedFieldConfig.type == \"!struct\";\n var isOkWithoutField = keepInputOnChangeFieldSrc && selectedFieldType;\n var isFieldSelected = !!selectedField || isOkWithoutField;\n var isFieldAndOpSelected = isFieldSelected && selectedOperator;\n var selectedOperatorConfig = getOperatorConfig(config, selectedOperator, selectedField);\n var selectedOperatorHasOptions = selectedOperatorConfig && selectedOperatorConfig.options != null;\n var selectedFieldWidgetConfig = getFieldWidgetConfig(config, selectedField, selectedOperator, null, null) || {};\n var hideOperator = selectedFieldWidgetConfig.hideOperator;\n var showDragIcon = config.settings.canReorder && reordableNodesCnt > 1 && !isLocked;\n var showOperator = isFieldSelected && !hideOperator;\n var showOperatorLabel = isFieldSelected && hideOperator && selectedFieldWidgetConfig.operatorInlineLabel;\n var showWidget = isFieldAndOpSelected && !isSelectedGroup;\n var showOperatorOptions = isFieldAndOpSelected && selectedOperatorHasOptions;\n return {\n selectedFieldParts: selectedFieldParts,\n selectedFieldWidgetConfig: selectedFieldWidgetConfig,\n showDragIcon: showDragIcon,\n showOperator: showOperator,\n showOperatorLabel: showOperatorLabel,\n showWidget: showWidget,\n showOperatorOptions: showOperatorOptions\n };\n }\n }, {\n key: \"setLock\",\n value: function setLock(lock) {\n this.props.setLock(lock);\n }\n }, {\n key: \"removeSelf\",\n value: function removeSelf() {\n var _this2 = this;\n var _this$props = this.props,\n confirmFn = _this$props.confirmFn,\n config = _this$props.config;\n var _config$settings = config.settings,\n renderConfirm = _config$settings.renderConfirm,\n confirmOptions = _config$settings.removeRuleConfirmOptions;\n var doRemove = function doRemove() {\n _this2.props.removeSelf();\n };\n if (confirmOptions && !this.isEmptyCurrentRule()) {\n renderConfirm.call(config.ctx, _objectSpread(_objectSpread({}, confirmOptions), {}, {\n onOk: doRemove,\n onCancel: null,\n confirmFn: confirmFn\n }), config.ctx);\n } else {\n doRemove();\n }\n }\n }, {\n key: \"_buildWidgetProps\",\n value: function _buildWidgetProps(_ref2) {\n var selectedField = _ref2.selectedField,\n selectedFieldSrc = _ref2.selectedFieldSrc,\n selectedFieldType = _ref2.selectedFieldType,\n selectedOperator = _ref2.selectedOperator,\n operatorOptions = _ref2.operatorOptions,\n value = _ref2.value,\n valueType = _ref2.valueType,\n valueSrc = _ref2.valueSrc,\n asyncListValues = _ref2.asyncListValues,\n valueError = _ref2.valueError,\n parentField = _ref2.parentField;\n return {\n field: selectedField,\n fieldSrc: selectedFieldSrc,\n fieldType: selectedFieldType,\n operator: selectedOperator,\n operatorOptions: operatorOptions,\n value: value,\n valueType: valueType,\n valueSrc: valueSrc,\n asyncListValues: asyncListValues,\n valueError: valueError,\n parentField: parentField\n };\n }\n }, {\n key: \"isEmptyCurrentRule\",\n value: function isEmptyCurrentRule() {\n var config = this.props.config;\n var ruleData = this._buildWidgetProps(this.props);\n return isEmptyRuleProperties(ruleData, config);\n }\n }, {\n key: \"renderField\",\n value: function renderField() {\n var _this$props2 = this.props,\n config = _this$props2.config,\n isLocked = _this$props2.isLocked,\n parentField = _this$props2.parentField,\n groupId = _this$props2.groupId,\n id = _this$props2.id,\n selectedFieldSrc = _this$props2.selectedFieldSrc,\n selectedField = _this$props2.selectedField,\n selectedFieldType = _this$props2.selectedFieldType,\n setField = _this$props2.setField,\n setFieldSrc = _this$props2.setFieldSrc;\n var immutableFieldsMode = config.settings.immutableFieldsMode;\n // tip: don't allow function inside !group (yet)\n\n return /*#__PURE__*/React.createElement(FieldWrapper, {\n key: \"field\",\n classname: classNames(selectedFieldSrc == \"func\" ? \"rule--field--func\" : \"rule--field\"),\n config: config,\n canSelectFieldSource: !parentField,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedFieldType: selectedFieldType,\n setField: !immutableFieldsMode ? setField : dummyFn,\n setFieldSrc: !immutableFieldsMode ? setFieldSrc : dummyFn,\n parentField: parentField,\n readonly: immutableFieldsMode || isLocked,\n id: id,\n groupId: groupId\n });\n }\n }, {\n key: \"renderOperator\",\n value: function renderOperator() {\n var _this$props3 = this.props,\n config = _this$props3.config,\n isLocked = _this$props3.isLocked;\n var _this$meta = this.meta,\n selectedFieldParts = _this$meta.selectedFieldParts,\n selectedFieldWidgetConfig = _this$meta.selectedFieldWidgetConfig,\n showOperator = _this$meta.showOperator,\n showOperatorLabel = _this$meta.showOperatorLabel;\n var immutableOpsMode = config.settings.immutableOpsMode;\n return /*#__PURE__*/React.createElement(OperatorWrapper, {\n key: \"operator\",\n config: config,\n selectedField: this.props.selectedField,\n selectedFieldSrc: this.props.selectedFieldSrc,\n selectedFieldType: this.props.selectedFieldType,\n selectedOperator: this.props.selectedOperator,\n setOperator: !immutableOpsMode ? this.props.setOperator : dummyFn,\n selectedFieldParts: selectedFieldParts,\n showOperator: showOperator,\n showOperatorLabel: showOperatorLabel,\n selectedFieldWidgetConfig: selectedFieldWidgetConfig,\n readonly: immutableOpsMode || isLocked,\n id: this.props.id,\n groupId: this.props.groupId\n });\n }\n }, {\n key: \"renderWidget\",\n value: function renderWidget() {\n var _this$props4 = this.props,\n config = _this$props4.config,\n isLocked = _this$props4.isLocked;\n var showWidget = this.meta.showWidget;\n var immutableValuesMode = config.settings.immutableValuesMode;\n if (!showWidget) return null;\n var widget = /*#__PURE__*/React.createElement(Widget, _extends({\n key: \"values\"\n }, this._buildWidgetProps(this.props), {\n config: config,\n setValue: !immutableValuesMode ? this.props.setValue : dummyFn,\n setValueSrc: !immutableValuesMode ? this.props.setValueSrc : dummyFn,\n readonly: immutableValuesMode || isLocked,\n id: this.props.id,\n groupId: this.props.groupId\n }));\n return /*#__PURE__*/React.createElement(Col, {\n key: \"widget-for-\" + this.props.selectedOperator,\n className: \"rule--value\"\n }, widget);\n }\n }, {\n key: \"renderOperatorOptions\",\n value: function renderOperatorOptions() {\n var config = this.props.config;\n var showOperatorOptions = this.meta.showOperatorOptions;\n var _config$settings2 = config.settings,\n immutableOpsMode = _config$settings2.immutableOpsMode,\n immutableValuesMode = _config$settings2.immutableValuesMode;\n if (!showOperatorOptions) return null;\n var opOpts = /*#__PURE__*/React.createElement(OperatorOptions, {\n key: \"operatorOptions\",\n selectedField: this.props.selectedField,\n selectedOperator: this.props.selectedOperator,\n operatorOptions: this.props.operatorOptions,\n setOperatorOption: !immutableOpsMode ? this.props.setOperatorOption : dummyFn,\n config: config,\n readonly: immutableValuesMode\n });\n return /*#__PURE__*/React.createElement(Col, {\n key: \"op-options-for-\" + this.props.selectedOperator,\n className: \"rule--operator-options\"\n }, opOpts);\n }\n }, {\n key: \"renderBeforeWidget\",\n value: function renderBeforeWidget() {\n var config = this.props.config;\n var renderBeforeWidget = config.settings.renderBeforeWidget;\n return renderBeforeWidget && /*#__PURE__*/React.createElement(Col, {\n key: \"before-widget-for-\" + this.props.selectedOperator,\n className: \"rule--before-widget\"\n }, typeof renderBeforeWidget === \"function\" ? renderBeforeWidget(this.props, config.ctx) : renderBeforeWidget);\n }\n }, {\n key: \"renderAfterWidget\",\n value: function renderAfterWidget() {\n var config = this.props.config;\n var renderAfterWidget = config.settings.renderAfterWidget;\n return renderAfterWidget && /*#__PURE__*/React.createElement(Col, {\n key: \"after-widget-for-\" + this.props.selectedOperator,\n className: \"rule--after-widget\"\n }, typeof renderAfterWidget === \"function\" ? renderAfterWidget(this.props, config.ctx) : renderAfterWidget);\n }\n }, {\n key: \"renderError\",\n value: function renderError() {\n var _this$props5 = this.props,\n config = _this$props5.config,\n valueError = _this$props5.valueError;\n var _config$settings3 = config.settings,\n renderRuleError = _config$settings3.renderRuleError,\n showErrorMessage = _config$settings3.showErrorMessage;\n var oneValueError = valueError && valueError.toArray().filter(function (e) {\n return !!e;\n }).shift() || null;\n return showErrorMessage && oneValueError && /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--error\"\n }, renderRuleError ? renderRuleError({\n error: oneValueError\n }, config.ctx) : oneValueError);\n }\n }, {\n key: \"renderDrag\",\n value: function renderDrag() {\n var handleDraggerMouseDown = this.props.handleDraggerMouseDown;\n var config = this.props.config;\n var showDragIcon = this.meta.showDragIcon;\n var renderIcon = config.settings.renderIcon;\n var Icon = function Icon(pr) {\n return renderIcon === null || renderIcon === void 0 ? void 0 : renderIcon(pr, config.ctx);\n };\n var icon = /*#__PURE__*/React.createElement(Icon, {\n type: \"drag\"\n });\n return showDragIcon && /*#__PURE__*/React.createElement(\"div\", {\n key: \"rule-drag-icon\",\n onMouseDown: handleDraggerMouseDown,\n className: \"qb-drag-handler rule--drag-handler\"\n }, icon);\n }\n }, {\n key: \"renderDel\",\n value: function renderDel() {\n var _this$props6 = this.props,\n config = _this$props6.config,\n isLocked = _this$props6.isLocked;\n var _config$settings4 = config.settings,\n deleteLabel = _config$settings4.deleteLabel,\n immutableGroupsMode = _config$settings4.immutableGroupsMode,\n renderButton = _config$settings4.renderButton,\n renderIcon = _config$settings4.renderIcon,\n canDeleteLocked = _config$settings4.canDeleteLocked;\n var Icon = function Icon(pr) {\n return renderIcon(pr, config.ctx);\n };\n var Btn = function Btn(pr) {\n return renderButton(pr, config.ctx);\n };\n return !immutableGroupsMode && (!isLocked || isLocked && canDeleteLocked) && /*#__PURE__*/React.createElement(Btn, {\n type: \"delRule\",\n onClick: this.removeSelf,\n label: deleteLabel,\n config: config,\n renderIcon: Icon\n });\n }\n }, {\n key: \"renderLock\",\n value: function renderLock() {\n var _this$props7 = this.props,\n config = _this$props7.config,\n isLocked = _this$props7.isLocked,\n isTrueLocked = _this$props7.isTrueLocked,\n id = _this$props7.id;\n var _config$settings5 = config.settings,\n lockLabel = _config$settings5.lockLabel,\n lockedLabel = _config$settings5.lockedLabel,\n showLock = _config$settings5.showLock,\n renderSwitch = _config$settings5.renderSwitch;\n var Switch = function Switch(pr) {\n return renderSwitch(pr, config.ctx);\n };\n return showLock && !(isLocked && !isTrueLocked) && /*#__PURE__*/React.createElement(Switch, {\n type: \"lock\",\n id: id,\n value: isLocked,\n setValue: this.setLock,\n label: lockLabel,\n checkedLabel: lockedLabel,\n hideLabel: true,\n config: config\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$meta2 = this.meta,\n showOperatorOptions = _this$meta2.showOperatorOptions,\n selectedFieldWidgetConfig = _this$meta2.selectedFieldWidgetConfig;\n var _this$props8 = this.props,\n valueSrc = _this$props8.valueSrc,\n value = _this$props8.value,\n config = _this$props8.config;\n var canShrinkValue = valueSrc.first() == \"value\" && !showOperatorOptions && value.size == 1 && selectedFieldWidgetConfig.fullWidth;\n var renderButtonGroup = config.settings.renderButtonGroup;\n var BtnGrp = function BtnGrp(pr) {\n return renderButtonGroup(pr, config.ctx);\n };\n var parts = [this.renderField(), this.renderOperator(), this.renderBeforeWidget(), this.renderWidget(), this.renderAfterWidget(), this.renderOperatorOptions()];\n var body = /*#__PURE__*/React.createElement(\"div\", {\n key: \"rule-body\",\n className: classNames(\"rule--body\", canShrinkValue && \"can--shrink--value\")\n }, parts);\n var error = this.renderError();\n var drag = this.renderDrag();\n var lock = this.renderLock();\n var del = this.renderDel();\n return /*#__PURE__*/React.createElement(React.Fragment, null, drag, /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--body--wrapper\"\n }, body, error), /*#__PURE__*/React.createElement(\"div\", {\n className: \"rule--header\"\n }, /*#__PURE__*/React.createElement(BtnGrp, {\n config: config\n }, lock, del)));\n }\n }]);\n return Rule;\n}(Component);\nRule.propTypes = {\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string,\n selectedField: PropTypes.any,\n selectedFieldSrc: PropTypes.string,\n selectedFieldType: PropTypes.string,\n selectedOperator: PropTypes.string,\n operatorOptions: PropTypes.object,\n config: PropTypes.object.isRequired,\n value: PropTypes.any,\n //depends on widget\n valueSrc: PropTypes.any,\n valueType: PropTypes.any,\n asyncListValues: PropTypes.array,\n isDraggingMe: PropTypes.bool,\n isDraggingTempo: PropTypes.bool,\n parentField: PropTypes.string,\n //from RuleGroup\n valueError: PropTypes.any,\n isLocked: PropTypes.bool,\n isTrueLocked: PropTypes.bool,\n //path: PropTypes.instanceOf(Immutable.List),\n //actions\n handleDraggerMouseDown: PropTypes.func,\n setField: PropTypes.func,\n setFieldSrc: PropTypes.func,\n setOperator: PropTypes.func,\n setOperatorOption: PropTypes.func,\n setLock: PropTypes.func,\n removeSelf: PropTypes.func,\n setValue: PropTypes.func,\n setValueSrc: PropTypes.func,\n reordableNodesCnt: PropTypes.number,\n totalRulesCnt: PropTypes.number,\n parentReordableNodesCnt: PropTypes.number\n};\nexport default RuleContainer(Draggable(\"rule\")(WithConfirmFn(Rule)));","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport mapValues from \"lodash/mapValues\";\nimport context from \"../../stores/context\";\nimport { pureShouldComponentUpdate, useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { connect } from \"react-redux\";\nvar defaultGroupConjunction = Utils.DefaultUtils.defaultGroupConjunction;\nvar createGroupContainer = function createGroupContainer(Group, itemType) {\n var _class;\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(GroupContainer, _Component);\n var _super = _createSuper(GroupContainer);\n function GroupContainer(_props) {\n var _this;\n _classCallCheck(this, GroupContainer);\n _this = _super.call(this, _props);\n _this._selectedConjunction = function (props) {\n props = props || _this.props;\n return props.conjunction || defaultGroupConjunction(props.config, props.field);\n };\n _this.setConjunction = function () {\n var conj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n _this.props.actions.setConjunction(_this.props.path, conj);\n };\n _this.setNot = function () {\n var not = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n _this.props.actions.setNot(_this.props.path, not);\n };\n _this.setLock = function () {\n var lock = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n _this.props.actions.setLock(_this.props.path, lock);\n };\n _this.dummyFn = function () {};\n _this.removeSelf = function () {\n _this.props.actions.removeGroup(_this.props.path);\n };\n _this.addGroup = function () {\n _this.props.actions.addGroup(_this.props.path);\n };\n _this.addCaseGroup = function () {\n _this.props.actions.addCaseGroup(_this.props.path);\n };\n _this.addDefaultCaseGroup = function () {\n _this.props.actions.addDefaultCaseGroup(_this.props.path);\n };\n _this.addRule = function () {\n var parentRuleGroupPath = itemType == \"rule_group\" ? _this.props.field : null;\n _this.props.actions.addRule(_this.props.path, undefined, undefined, undefined, parentRuleGroupPath);\n };\n // for RuleGroup\n _this.setField = function (field, asyncListValues, __isInternal) {\n _this.props.actions.setField(_this.props.path, field, asyncListValues, __isInternal);\n };\n // for RuleGroupExt\n _this.setOperator = function (operator) {\n _this.props.actions.setOperator(_this.props.path, operator);\n };\n _this.setValue = function (delta, value, type) {\n _this.props.actions.setValue(_this.props.path, delta, value, type);\n };\n _this.pureShouldComponentUpdate = pureShouldComponentUpdate(_assertThisInitialized(_this));\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.selectedConjunction = _this._selectedConjunction(_props);\n _this.conjunctionOptions = _this._getConjunctionOptions(_props);\n _this.dummyFn.isDummyFn = true;\n return _this;\n }\n _createClass(GroupContainer, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var prevProps = this.props;\n var prevState = this.state;\n var should = this.pureShouldComponentUpdate(nextProps, nextState);\n if (should) {\n if (prevState == nextState && prevProps != nextProps) {\n var draggingId = nextProps.dragging.id || prevProps.dragging.id;\n var isDraggingMe = draggingId == nextProps.id;\n var chs = [];\n for (var k in nextProps) {\n var changed = nextProps[k] != prevProps[k];\n if (k == \"dragging\" && !isDraggingMe) {\n changed = false; //dragging another item -> ignore\n }\n\n if (changed) {\n chs.push(k);\n }\n }\n if (!chs.length) should = false;\n }\n }\n return should;\n }\n }, {\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var config = nextProps.config,\n id = nextProps.id,\n conjunction = nextProps.conjunction;\n var oldConfig = this.props.config;\n var oldConjunction = this.props.conjunction;\n if (oldConfig != config || oldConjunction != conjunction) {\n this.selectedConjunction = this._selectedConjunction(nextProps);\n this.conjunctionOptions = this._getConjunctionOptions(nextProps);\n }\n }\n }, {\n key: \"_getConjunctionOptions\",\n value: function _getConjunctionOptions(props) {\n var _this2 = this;\n return mapValues(props.config.conjunctions, function (item, index) {\n return {\n id: \"conjunction-\".concat(props.id, \"-\").concat(index),\n name: \"conjunction[\".concat(props.id, \"]\"),\n key: index,\n label: item.label,\n checked: index === _this2._selectedConjunction(props)\n };\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var isDraggingMe = this.props.dragging.id == this.props.id;\n var currentNesting = this.props.path.size;\n var maxNesting = this.props.config.settings.maxNesting;\n var isInDraggingTempo = !isDraggingMe && this.props.isDraggingTempo;\n var fieldType = this.props.fieldType || null;\n\n // Don't allow nesting further than the maximum configured depth and don't\n // allow removal of the root group.\n var allowFurtherNesting = typeof maxNesting === \"undefined\" || currentNesting < maxNesting;\n var isRoot = currentNesting == 1;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group-or-rule-container group-container\",\n \"data-id\": this.props.id\n }, [isDraggingMe ? /*#__PURE__*/React.createElement(Group, {\n key: \"dragging\",\n id: this.props.id,\n groupId: this.props.groupId,\n isDraggingMe: true,\n isDraggingTempo: true,\n dragging: this.props.dragging,\n isRoot: isRoot,\n allowFurtherNesting: allowFurtherNesting,\n conjunctionOptions: this.conjunctionOptions,\n not: this.props.not,\n selectedConjunction: this.selectedConjunction,\n setConjunction: this.dummyFn,\n setNot: this.dummyFn,\n setLock: this.dummyFn,\n removeSelf: this.dummyFn,\n addGroup: this.dummyFn,\n addCaseGroup: this.dummyFn,\n addDefaultCaseGroup: this.dummyFn,\n addRule: this.dummyFn,\n setField: this.dummyFn,\n setOperator: this.dummyFn,\n setValue: this.dummyFn,\n value: this.props.value || null,\n config: this.props.config,\n children1: this.props.children1,\n actions: this.props.actions,\n reordableNodesCnt: this.props.reordableNodesCnt,\n totalRulesCnt: this.props.totalRulesCnt,\n selectedField: this.props.field || null,\n selectedFieldSrc: this.props.fieldSrc || \"field\",\n selectedFieldType: fieldType,\n parentField: this.props.parentField || null,\n selectedOperator: this.props.operator || null,\n isLocked: this.props.isLocked,\n isTrueLocked: this.props.isTrueLocked,\n parentReordableNodesCnt: this.props.parentReordableNodesCnt\n }) : null, /*#__PURE__*/React.createElement(Group, {\n key: this.props.id,\n id: this.props.id,\n groupId: this.props.groupId,\n isDraggingMe: isDraggingMe,\n isDraggingTempo: isInDraggingTempo,\n onDragStart: this.props.onDragStart,\n isRoot: isRoot,\n allowFurtherNesting: allowFurtherNesting,\n conjunctionOptions: this.conjunctionOptions,\n not: this.props.not,\n selectedConjunction: this.selectedConjunction,\n setConjunction: isInDraggingTempo ? this.dummyFn : this.setConjunction,\n setNot: isInDraggingTempo ? this.dummyFn : this.setNot,\n setLock: isInDraggingTempo ? this.dummyFn : this.setLock,\n removeSelf: isInDraggingTempo ? this.dummyFn : this.removeSelf,\n addGroup: isInDraggingTempo ? this.dummyFn : this.addGroup,\n addCaseGroup: isInDraggingTempo ? this.dummyFn : this.addCaseGroup,\n addDefaultCaseGroup: isInDraggingTempo ? this.dummyFn : this.addDefaultCaseGroup,\n addRule: isInDraggingTempo ? this.dummyFn : this.addRule,\n setField: isInDraggingTempo ? this.dummyFn : this.setField,\n setOperator: isInDraggingTempo ? this.dummyFn : this.setOperator,\n setValue: isInDraggingTempo ? this.dummyFn : this.setValue,\n value: this.props.value || null,\n config: this.props.config,\n children1: this.props.children1,\n actions: this.props.actions,\n reordableNodesCnt: this.props.reordableNodesCnt,\n totalRulesCnt: this.props.totalRulesCnt,\n selectedField: this.props.field || null,\n selectedFieldSrc: this.props.fieldSrc || \"field\",\n selectedFieldType: fieldType,\n parentField: this.props.parentField || null,\n selectedOperator: this.props.operator || null,\n isLocked: this.props.isLocked,\n isTrueLocked: this.props.isTrueLocked,\n parentReordableNodesCnt: this.props.parentReordableNodesCnt\n })]);\n }\n }]);\n return GroupContainer;\n }(Component), _class.propTypes = {\n config: PropTypes.object.isRequired,\n actions: PropTypes.object.isRequired,\n //{setConjunction: Function, removeGroup, addGroup, addRule, ...}\n path: PropTypes.any.isRequired,\n //instanceOf(Immutable.List)\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string,\n not: PropTypes.bool,\n conjunction: PropTypes.string,\n children1: PropTypes.any,\n //instanceOf(Immutable.OrderedMap)\n onDragStart: PropTypes.func,\n reordableNodesCnt: PropTypes.number,\n field: PropTypes.any,\n // for RuleGroup\n fieldSrc: PropTypes.string,\n // for RuleGroup\n fieldType: PropTypes.string,\n // for RuleGroup\n parentField: PropTypes.string,\n //from RuleGroup\n isLocked: PropTypes.bool,\n isTrueLocked: PropTypes.bool,\n //connected:\n dragging: PropTypes.object,\n //{id, x, y, w, h}\n isDraggingTempo: PropTypes.bool\n }, _class;\n};\nexport default (function (Group, itemType) {\n var ConnectedGroupContainer = connect(function (state) {\n return {\n dragging: state.dragging\n };\n }, null, null, {\n context: context\n })(createGroupContainer(Group, itemType));\n ConnectedGroupContainer.displayName = \"ConnectedGroupContainer\";\n return ConnectedGroupContainer;\n});","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nvar groupActionsPositionList = {\n topLeft: \"group--actions--tl\",\n topCenter: \"group--actions--tc\",\n topRight: \"group--actions--tr\",\n bottomLeft: \"group--actions--bl\",\n bottomCenter: \"group--actions--bc\",\n bottomRight: \"group--actions--br\"\n};\nvar defaultPosition = \"topRight\";\nexport var GroupActions = /*#__PURE__*/function (_PureComponent) {\n _inherits(GroupActions, _PureComponent);\n var _super = _createSuper(GroupActions);\n function GroupActions() {\n _classCallCheck(this, GroupActions);\n return _super.apply(this, arguments);\n }\n _createClass(GroupActions, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n addRule = _this$props.addRule,\n addGroup = _this$props.addGroup,\n removeSelf = _this$props.removeSelf,\n setLock = _this$props.setLock,\n isLocked = _this$props.isLocked,\n isTrueLocked = _this$props.isTrueLocked,\n id = _this$props.id,\n canAddGroup = _this$props.canAddGroup,\n canAddRule = _this$props.canAddRule,\n canDeleteGroup = _this$props.canDeleteGroup;\n var _config$settings = config.settings,\n immutableGroupsMode = _config$settings.immutableGroupsMode,\n addRuleLabel = _config$settings.addRuleLabel,\n addGroupLabel = _config$settings.addGroupLabel,\n delGroupLabel = _config$settings.delGroupLabel,\n groupActionsPosition = _config$settings.groupActionsPosition,\n renderButton = _config$settings.renderButton,\n renderIcon = _config$settings.renderIcon,\n renderSwitch = _config$settings.renderSwitch,\n renderButtonGroup = _config$settings.renderButtonGroup,\n lockLabel = _config$settings.lockLabel,\n lockedLabel = _config$settings.lockedLabel,\n showLock = _config$settings.showLock,\n canDeleteLocked = _config$settings.canDeleteLocked;\n var Icon = function Icon(pr) {\n return renderIcon(pr, config.ctx);\n };\n var Btn = function Btn(pr) {\n return renderButton(pr, config.ctx);\n };\n var Switch = function Switch(pr) {\n return renderSwitch(pr, config.ctx);\n };\n var BtnGrp = function BtnGrp(pr) {\n return renderButtonGroup(pr, config.ctx);\n };\n var position = groupActionsPositionList[groupActionsPosition || defaultPosition];\n var setLockSwitch = showLock && !(isLocked && !isTrueLocked) && /*#__PURE__*/React.createElement(Switch, {\n type: \"lock\",\n id: id,\n value: isLocked,\n setValue: setLock,\n label: lockLabel,\n checkedLabel: lockedLabel,\n config: config\n });\n var addRuleBtn = !immutableGroupsMode && canAddRule && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addRule\",\n onClick: addRule,\n label: addRuleLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n var addGroupBtn = !immutableGroupsMode && canAddGroup && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addGroup\",\n onClick: addGroup,\n label: addGroupLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n var delGroupBtn = !immutableGroupsMode && canDeleteGroup && (!isLocked || isLocked && canDeleteLocked) && /*#__PURE__*/React.createElement(Btn, {\n type: \"delGroup\",\n onClick: removeSelf,\n label: delGroupLabel,\n config: config,\n renderIcon: Icon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--actions \".concat(position)\n }, /*#__PURE__*/React.createElement(BtnGrp, {\n config: config\n }, setLockSwitch, addRuleBtn, addGroupBtn, delGroupBtn));\n }\n }]);\n return GroupActions;\n}(PureComponent);","import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport startsWith from \"lodash/startsWith\";\nimport GroupContainer from \"../containers/GroupContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport classNames from \"classnames\";\nimport { Item } from \"./Item\";\nimport { GroupActions } from \"./GroupActions\";\nimport { WithConfirmFn, dummyFn } from \"../utils\";\nvar isEmptyGroupChildren = Utils.RuleUtils.isEmptyGroupChildren;\nvar defaultPosition = \"topRight\";\nexport var BasicGroup = /*#__PURE__*/function (_Component) {\n _inherits(BasicGroup, _Component);\n var _super = _createSuper(BasicGroup);\n function BasicGroup(props) {\n var _this;\n _classCallCheck(this, BasicGroup);\n _this = _super.call(this, props);\n _this.childrenClassName = function () {\n return \"\";\n };\n _this.renderBeforeActions = function () {\n var BeforeActions = _this.props.config.settings.renderBeforeActions;\n if (BeforeActions == undefined) return null;\n return typeof BeforeActions === \"function\" ? BeforeActions(_this.props, _this.props.config.ctx) : BeforeActions;\n };\n _this.renderAfterActions = function () {\n var AfterActions = _this.props.config.settings.renderAfterActions;\n if (AfterActions == undefined) return null;\n return typeof AfterActions === \"function\" ? AfterActions(_this.props, _this.props.config.ctx) : AfterActions;\n };\n _this.removeSelf = _this.removeSelf.bind(_assertThisInitialized(_this));\n _this.setLock = _this.setLock.bind(_assertThisInitialized(_this));\n _this.renderItem = _this.renderItem.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(BasicGroup, [{\n key: \"isGroupTopPosition\",\n value: function isGroupTopPosition() {\n return startsWith(this.props.config.settings.groupActionsPosition || defaultPosition, \"top\");\n }\n }, {\n key: \"setLock\",\n value: function setLock(lock) {\n this.props.setLock(lock);\n }\n }, {\n key: \"removeSelf\",\n value: function removeSelf() {\n var _this2 = this;\n var _this$props = this.props,\n confirmFn = _this$props.confirmFn,\n config = _this$props.config;\n var _config$settings = config.settings,\n renderConfirm = _config$settings.renderConfirm,\n confirmOptions = _config$settings.removeGroupConfirmOptions;\n var doRemove = function doRemove() {\n _this2.props.removeSelf();\n };\n if (confirmOptions && !this.isEmptyCurrentGroup()) {\n renderConfirm.call(config.ctx, _objectSpread(_objectSpread({}, confirmOptions), {}, {\n onOk: doRemove,\n onCancel: null,\n confirmFn: confirmFn\n }), config.ctx);\n } else {\n doRemove();\n }\n }\n }, {\n key: \"isEmptyCurrentGroup\",\n value: function isEmptyCurrentGroup() {\n var _this$props2 = this.props,\n children1 = _this$props2.children1,\n config = _this$props2.config;\n return isEmptyGroupChildren(children1, config);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderHeaderWrapper(), this.renderChildrenWrapper(), this.renderFooterWrapper());\n }\n }, {\n key: \"showNot\",\n value: function showNot() {\n var config = this.props.config;\n return config.settings.showNot;\n }\n\n // show conjs for 2+ children?\n }, {\n key: \"showConjs\",\n value: function showConjs() {\n var _this$props3 = this.props,\n conjunctionOptions = _this$props3.conjunctionOptions,\n children1 = _this$props3.children1,\n config = _this$props3.config;\n var conjunctionCount = Object.keys(conjunctionOptions).length;\n return conjunctionCount > 1 || this.showNot();\n }\n }, {\n key: \"isNoChildren\",\n value: function isNoChildren() {\n var children1 = this.props.children1;\n return children1 ? children1.size == 0 : true;\n }\n }, {\n key: \"isOneChild\",\n value: function isOneChild() {\n var children1 = this.props.children1;\n return children1 ? children1.size < 2 : true;\n }\n }, {\n key: \"renderChildrenWrapper\",\n value: function renderChildrenWrapper() {\n var children1 = this.props.children1;\n return children1 && /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-children\",\n className: classNames(\"group--children\", !this.showConjs() ? \"hide--conjs\" : \"\", this.isOneChild() ? \"hide--line\" : \"\", this.isOneChild() ? \"one--child\" : \"\", this.childrenClassName())\n }, this.renderChildren());\n }\n }, {\n key: \"renderHeaderWrapper\",\n value: function renderHeaderWrapper() {\n var isGroupTopPosition = this.isGroupTopPosition();\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-header\",\n className: classNames(\"group--header\", this.isOneChild() ? \"one--child\" : \"\", !this.showConjs() ? \"hide--conjs\" : \"\", this.isOneChild() ? \"hide--line\" : \"\", this.isNoChildren() ? \"no--children\" : \"\")\n }, this.renderHeader(), isGroupTopPosition && this.renderBeforeActions(), isGroupTopPosition && this.renderActions(), isGroupTopPosition && this.renderAfterActions());\n }\n }, {\n key: \"renderFooterWrapper\",\n value: function renderFooterWrapper() {\n var isGroupTopPosition = this.isGroupTopPosition();\n return !isGroupTopPosition && /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-footer\",\n className: \"group--footer\"\n }, this.renderBeforeActions(), this.renderActions(), this.renderAfterActions());\n }\n }, {\n key: \"renderActions\",\n value: function renderActions() {\n var _this$props4 = this.props,\n config = _this$props4.config,\n addRule = _this$props4.addRule,\n addGroup = _this$props4.addGroup,\n isLocked = _this$props4.isLocked,\n isTrueLocked = _this$props4.isTrueLocked,\n id = _this$props4.id;\n return /*#__PURE__*/React.createElement(GroupActions, {\n config: config,\n addRule: addRule,\n addGroup: addGroup,\n canAddGroup: this.canAddGroup(),\n canAddRule: this.canAddRule(),\n canDeleteGroup: this.canDeleteGroup(),\n removeSelf: this.removeSelf,\n setLock: this.setLock,\n isLocked: isLocked,\n isTrueLocked: isTrueLocked,\n id: id\n });\n }\n }, {\n key: \"canAddGroup\",\n value: function canAddGroup() {\n return this.props.allowFurtherNesting;\n }\n }, {\n key: \"canAddRule\",\n value: function canAddRule() {\n var maxNumberOfRules = this.props.config.settings.maxNumberOfRules;\n var totalRulesCnt = this.props.totalRulesCnt;\n if (maxNumberOfRules) {\n return totalRulesCnt < maxNumberOfRules;\n }\n return true;\n }\n }, {\n key: \"canDeleteGroup\",\n value: function canDeleteGroup() {\n return !this.props.isRoot;\n }\n }, {\n key: \"renderChildren\",\n value: function renderChildren() {\n var children1 = this.props.children1;\n return children1 ? children1.map(this.renderItem).toList() : null;\n }\n }, {\n key: \"renderItem\",\n value: function renderItem(item) {\n var props = this.props;\n var config = props.config,\n actions = props.actions,\n onDragStart = props.onDragStart,\n isLocked = props.isLocked;\n var isRuleGroup = item.get(\"type\") == \"group\" && item.getIn([\"properties\", \"field\"]) != null;\n var type = isRuleGroup ? \"rule_group\" : item.get(\"type\");\n return /*#__PURE__*/React.createElement(Item, _extends({}, this.extraPropsForItem(item), {\n key: item.get(\"id\"),\n id: item.get(\"id\"),\n groupId: props.id\n //path={props.path.push(item.get('id'))}\n ,\n path: item.get(\"path\"),\n type: type,\n properties: item.get(\"properties\"),\n config: config,\n actions: actions,\n children1: item.get(\"children1\"),\n reordableNodesCnt: this.reordableNodesCntForItem(item),\n totalRulesCnt: this.totalRulesCntForItem(item),\n parentReordableNodesCnt: this.reordableNodesCnt(),\n onDragStart: onDragStart,\n isDraggingTempo: this.props.isDraggingTempo,\n isParentLocked: isLocked\n }));\n }\n }, {\n key: \"extraPropsForItem\",\n value: function extraPropsForItem(_item) {\n return {};\n }\n }, {\n key: \"reordableNodesCnt\",\n value: function reordableNodesCnt() {\n if (this.props.isLocked) return 0;\n return this.props.reordableNodesCnt;\n }\n }, {\n key: \"totalRulesCntForItem\",\n value: function totalRulesCntForItem(_item) {\n return this.props.totalRulesCnt;\n }\n }, {\n key: \"reordableNodesCntForItem\",\n value: function reordableNodesCntForItem(_item) {\n if (this.props.isLocked) return 0;\n return this.reordableNodesCnt();\n }\n }, {\n key: \"showDragIcon\",\n value: function showDragIcon() {\n var _this$props5 = this.props,\n config = _this$props5.config,\n isRoot = _this$props5.isRoot,\n isLocked = _this$props5.isLocked;\n var reordableNodesCnt = this.reordableNodesCnt();\n return config.settings.canReorder && !isRoot && reordableNodesCnt > 1 && !isLocked;\n }\n }, {\n key: \"renderDrag\",\n value: function renderDrag() {\n var handleDraggerMouseDown = this.props.handleDraggerMouseDown;\n var config = this.props.config;\n var renderIcon = config.settings.renderIcon;\n var Icon = function Icon(pr) {\n return renderIcon === null || renderIcon === void 0 ? void 0 : renderIcon(pr, config.ctx);\n };\n var icon = /*#__PURE__*/React.createElement(Icon, {\n type: \"drag\"\n });\n return this.showDragIcon() && /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-drag-icon\",\n onMouseDown: handleDraggerMouseDown,\n className: \"qb-drag-handler group--drag-handler\"\n }, icon);\n }\n }, {\n key: \"conjunctionOptions\",\n value: function conjunctionOptions() {\n var conjunctionOptions = this.props.conjunctionOptions;\n return conjunctionOptions;\n }\n }, {\n key: \"renderConjs\",\n value: function renderConjs() {\n var _this$props6 = this.props,\n config = _this$props6.config,\n children1 = _this$props6.children1,\n id = _this$props6.id,\n selectedConjunction = _this$props6.selectedConjunction,\n setConjunction = _this$props6.setConjunction,\n not = _this$props6.not,\n setNot = _this$props6.setNot,\n isLocked = _this$props6.isLocked;\n var _config$settings2 = config.settings,\n immutableGroupsMode = _config$settings2.immutableGroupsMode,\n renderConjs = _config$settings2.renderConjs,\n _showNot = _config$settings2.showNot,\n notLabel = _config$settings2.notLabel;\n var conjunctionOptions = this.conjunctionOptions();\n if (!this.showConjs()) return null;\n if (!children1 || !children1.size) return null;\n var renderProps = {\n disabled: this.isOneChild(),\n readonly: immutableGroupsMode || isLocked,\n selectedConjunction: selectedConjunction,\n setConjunction: immutableGroupsMode ? dummyFn : setConjunction,\n conjunctionOptions: conjunctionOptions,\n config: config,\n not: not || false,\n id: id,\n setNot: immutableGroupsMode ? dummyFn : setNot,\n notLabel: notLabel,\n showNot: this.showNot(),\n isLocked: isLocked\n };\n return renderConjs(renderProps, config.ctx);\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--conjunctions\"\n }, this.renderConjs(), this.renderDrag());\n }\n }]);\n return BasicGroup;\n}(Component);\nBasicGroup.propTypes = {\n reordableNodesCnt: PropTypes.number,\n conjunctionOptions: PropTypes.object.isRequired,\n allowFurtherNesting: PropTypes.bool.isRequired,\n isRoot: PropTypes.bool.isRequired,\n not: PropTypes.bool,\n selectedConjunction: PropTypes.string,\n config: PropTypes.object.isRequired,\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string,\n path: PropTypes.any,\n //instanceOf(Immutable.List)\n children1: PropTypes.any,\n //instanceOf(Immutable.OrderedMap)\n isDraggingMe: PropTypes.bool,\n isDraggingTempo: PropTypes.bool,\n isLocked: PropTypes.bool,\n isTrueLocked: PropTypes.bool,\n //actions\n handleDraggerMouseDown: PropTypes.func,\n onDragStart: PropTypes.func,\n addRule: PropTypes.func.isRequired,\n addGroup: PropTypes.func.isRequired,\n removeSelf: PropTypes.func.isRequired,\n setConjunction: PropTypes.func.isRequired,\n setNot: PropTypes.func.isRequired,\n setLock: PropTypes.func.isRequired,\n actions: PropTypes.object.isRequired\n};\nexport default GroupContainer(Draggable(\"group\")(WithConfirmFn(BasicGroup)), \"group\");","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nexport var RuleGroupActions = /*#__PURE__*/function (_PureComponent) {\n _inherits(RuleGroupActions, _PureComponent);\n var _super = _createSuper(RuleGroupActions);\n function RuleGroupActions() {\n _classCallCheck(this, RuleGroupActions);\n return _super.apply(this, arguments);\n }\n _createClass(RuleGroupActions, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n addRule = _this$props.addRule,\n canAddRule = _this$props.canAddRule,\n canDeleteGroup = _this$props.canDeleteGroup,\n removeSelf = _this$props.removeSelf,\n setLock = _this$props.setLock,\n isLocked = _this$props.isLocked,\n isTrueLocked = _this$props.isTrueLocked,\n id = _this$props.id;\n var _config$settings = config.settings,\n immutableGroupsMode = _config$settings.immutableGroupsMode,\n addRuleLabel = _config$settings.addRuleLabel,\n delGroupLabel = _config$settings.delGroupLabel,\n renderButton = _config$settings.renderButton,\n renderIcon = _config$settings.renderIcon,\n renderSwitch = _config$settings.renderSwitch,\n renderButtonGroup = _config$settings.renderButtonGroup,\n lockLabel = _config$settings.lockLabel,\n lockedLabel = _config$settings.lockedLabel,\n showLock = _config$settings.showLock,\n canDeleteLocked = _config$settings.canDeleteLocked;\n var Icon = function Icon(pr) {\n return renderIcon(pr, config.ctx);\n };\n var Btn = function Btn(pr) {\n return renderButton(pr, config.ctx);\n };\n var Switch = function Switch(pr) {\n return renderSwitch(pr, config.ctx);\n };\n var BtnGrp = function BtnGrp(pr) {\n return renderButtonGroup(pr, config.ctx);\n };\n var setLockSwitch = showLock && !(isLocked && !isTrueLocked) && /*#__PURE__*/React.createElement(Switch, {\n type: \"lock\",\n id: id,\n value: isLocked,\n setValue: setLock,\n label: lockLabel,\n checkedLabel: lockedLabel,\n hideLabel: true,\n config: config\n });\n var addRuleBtn = !immutableGroupsMode && canAddRule && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addRuleGroup\",\n onClick: addRule,\n label: addRuleLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n var delGroupBtn = !immutableGroupsMode && canDeleteGroup && (!isLocked || isLocked && canDeleteLocked) && /*#__PURE__*/React.createElement(Btn, {\n type: \"delRuleGroup\",\n onClick: removeSelf,\n label: delGroupLabel,\n config: config,\n renderIcon: Icon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--actions\"\n }, /*#__PURE__*/React.createElement(BtnGrp, {\n config: config\n }, setLockSwitch, addRuleBtn, delGroupBtn));\n }\n }]);\n return RuleGroupActions;\n}(PureComponent);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport GroupContainer from \"../containers/GroupContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport { BasicGroup } from \"./Group\";\nimport { RuleGroupActions } from \"./RuleGroupActions\";\nimport FieldWrapper from \"../rule/FieldWrapper\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { WithConfirmFn } from \"../utils\";\nvar RuleGroup = /*#__PURE__*/function (_BasicGroup) {\n _inherits(RuleGroup, _BasicGroup);\n var _super = _createSuper(RuleGroup);\n function RuleGroup(props) {\n var _this;\n _classCallCheck(this, RuleGroup);\n _this = _super.call(this, props);\n _this.childrenClassName = function () {\n return \"rule_group--children\";\n };\n _this.renderHeaderWrapper = function () {\n return null;\n };\n _this.renderFooterWrapper = function () {\n return null;\n };\n _this.renderConjs = function () {\n return null;\n };\n _this.canAddGroup = function () {\n return false;\n };\n _this.canAddRule = function () {\n return true;\n };\n _this.canDeleteGroup = function () {\n return false;\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(RuleGroup, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {}\n }, {\n key: \"reordableNodesCntForItem\",\n value: function reordableNodesCntForItem(_item) {\n if (this.props.isLocked) return 0;\n var children1 = this.props.children1;\n return (children1 === null || children1 === void 0 ? void 0 : children1.size) || 0;\n }\n }, {\n key: \"renderChildrenWrapper\",\n value: function renderChildrenWrapper() {\n return /*#__PURE__*/React.createElement(React.Fragment, null, this.renderDrag(), this.renderField(), this.renderActions(), _get(_getPrototypeOf(RuleGroup.prototype), \"renderChildrenWrapper\", this).call(this));\n }\n }, {\n key: \"renderField\",\n value: function renderField() {\n var _this$props = this.props,\n config = _this$props.config,\n selectedField = _this$props.selectedField,\n selectedFieldSrc = _this$props.selectedFieldSrc,\n selectedFieldType = _this$props.selectedFieldType,\n setField = _this$props.setField,\n setFieldSrc = _this$props.setFieldSrc,\n parentField = _this$props.parentField,\n id = _this$props.id,\n groupId = _this$props.groupId,\n isLocked = _this$props.isLocked;\n var immutableFieldsMode = config.settings.immutableFieldsMode;\n return /*#__PURE__*/React.createElement(FieldWrapper, {\n key: \"field\",\n classname: \"group--field\",\n config: config,\n canSelectFieldSource: false,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedFieldType: selectedFieldType,\n setField: setField,\n setFieldSrc: setFieldSrc,\n parentField: parentField,\n readonly: immutableFieldsMode || isLocked,\n id: id,\n groupId: groupId\n });\n }\n }, {\n key: \"renderActions\",\n value: function renderActions() {\n var _this$props2 = this.props,\n config = _this$props2.config,\n addRule = _this$props2.addRule,\n isLocked = _this$props2.isLocked,\n isTrueLocked = _this$props2.isTrueLocked,\n id = _this$props2.id;\n return /*#__PURE__*/React.createElement(RuleGroupActions, {\n config: config,\n addRule: addRule,\n canAddRule: this.canAddRule(),\n canDeleteGroup: this.canDeleteGroup(),\n removeSelf: this.removeSelf,\n setLock: this.setLock,\n isLocked: isLocked,\n isTrueLocked: isTrueLocked,\n id: id\n });\n }\n }, {\n key: \"extraPropsForItem\",\n value: function extraPropsForItem(_item) {\n return {\n parentField: this.props.selectedField\n };\n }\n }]);\n return RuleGroup;\n}(BasicGroup);\nRuleGroup.propTypes = _objectSpread(_objectSpread({}, BasicGroup.propTypes), {}, {\n selectedField: PropTypes.any,\n selectedFieldSrc: PropTypes.string,\n parentField: PropTypes.string,\n setField: PropTypes.func,\n setFieldSrc: PropTypes.func\n});\nexport default GroupContainer(Draggable(\"group rule_group\")(WithConfirmFn(RuleGroup)), \"rule_group\");","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nexport var RuleGroupExtActions = /*#__PURE__*/function (_PureComponent) {\n _inherits(RuleGroupExtActions, _PureComponent);\n var _super = _createSuper(RuleGroupExtActions);\n function RuleGroupExtActions() {\n _classCallCheck(this, RuleGroupExtActions);\n return _super.apply(this, arguments);\n }\n _createClass(RuleGroupExtActions, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n addRule = _this$props.addRule,\n canAddRule = _this$props.canAddRule,\n canDeleteGroup = _this$props.canDeleteGroup,\n removeSelf = _this$props.removeSelf,\n setLock = _this$props.setLock,\n isLocked = _this$props.isLocked,\n isTrueLocked = _this$props.isTrueLocked,\n id = _this$props.id;\n var _config$settings = config.settings,\n immutableGroupsMode = _config$settings.immutableGroupsMode,\n addSubRuleLabel = _config$settings.addSubRuleLabel,\n delGroupLabel = _config$settings.delGroupLabel,\n renderButton = _config$settings.renderButton,\n renderIcon = _config$settings.renderIcon,\n renderSwitch = _config$settings.renderSwitch,\n renderButtonGroup = _config$settings.renderButtonGroup,\n lockLabel = _config$settings.lockLabel,\n lockedLabel = _config$settings.lockedLabel,\n showLock = _config$settings.showLock,\n canDeleteLocked = _config$settings.canDeleteLocked;\n var Icon = function Icon(pr) {\n return renderIcon(pr, config.ctx);\n };\n var Btn = function Btn(pr) {\n return renderButton(pr, config.ctx);\n };\n var Switch = function Switch(pr) {\n return renderSwitch(pr, config.ctx);\n };\n var BtnGrp = function BtnGrp(pr) {\n return renderButtonGroup(pr, config.ctx);\n };\n var setLockSwitch = showLock && !(isLocked && !isTrueLocked) && /*#__PURE__*/React.createElement(Switch, {\n type: \"lock\",\n id: id,\n value: isLocked,\n setValue: setLock,\n label: lockLabel,\n checkedLabel: lockedLabel,\n config: config\n });\n var addRuleBtn = !immutableGroupsMode && canAddRule && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addRuleGroupExt\",\n onClick: addRule,\n label: addSubRuleLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n var delGroupBtn = !immutableGroupsMode && canDeleteGroup && (!isLocked || isLocked && canDeleteLocked) && /*#__PURE__*/React.createElement(Btn, {\n type: \"delRuleGroup\",\n onClick: removeSelf,\n label: delGroupLabel,\n config: config,\n renderIcon: Icon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--actions group--actions--tr\"\n }, /*#__PURE__*/React.createElement(BtnGrp, {\n config: config\n }, setLockSwitch, addRuleBtn, delGroupBtn));\n }\n }]);\n return RuleGroupExtActions;\n}(PureComponent);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport GroupContainer from \"../containers/GroupContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport { BasicGroup } from \"./Group\";\nimport { RuleGroupExtActions } from \"./RuleGroupExtActions\";\nimport FieldWrapper from \"../rule/FieldWrapper\";\nimport OperatorWrapper from \"../rule/OperatorWrapper\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { Col, dummyFn, WithConfirmFn } from \"../utils\";\nimport Widget from \"../rule/Widget\";\nimport classNames from \"classnames\";\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getFieldWidgetConfig = _Utils$ConfigUtils.getFieldWidgetConfig;\nvar isEmptyRuleGroupExtPropertiesAndChildren = Utils.RuleUtils.isEmptyRuleGroupExtPropertiesAndChildren;\nvar RuleGroupExt = /*#__PURE__*/function (_BasicGroup) {\n _inherits(RuleGroupExt, _BasicGroup);\n var _super = _createSuper(RuleGroupExt);\n function RuleGroupExt(props) {\n var _this;\n _classCallCheck(this, RuleGroupExt);\n _this = _super.call(this, props);\n _this.childrenClassName = function () {\n return \"rule_group_ext--children\";\n };\n _this.renderFooterWrapper = function () {\n return null;\n };\n _this.canAddGroup = function () {\n return false;\n };\n _this.canAddRule = function () {\n return true;\n };\n _this.canDeleteGroup = function () {\n return true;\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(RuleGroupExt, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {}\n }, {\n key: \"renderHeaderWrapper\",\n value: function renderHeaderWrapper() {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-header\",\n className: classNames(\"group--header\", this.isOneChild() ? \"one--child\" : \"\", this.isOneChild() ? \"hide--line\" : \"\", this.isNoChildren() ? \"no--children\" : \"\", this.showDragIcon() ? \"with--drag\" : \"hide--drag\", this.showConjs() && (!this.isOneChild() || this.showNot()) ? \"with--conjs\" : \"hide--conjs\")\n }, this.renderHeader(), this.renderGroupField(), this.renderActions());\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--conjunctions\"\n }, this.renderConjs(), this.renderDrag());\n }\n }, {\n key: \"renderGroupField\",\n value: function renderGroupField() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--field--count--rule\"\n }, this.renderField(), this.renderOperator(), this.renderWidget());\n }\n }, {\n key: \"showNot\",\n value: function showNot() {\n var _this$props = this.props,\n config = _this$props.config,\n selectedField = _this$props.selectedField,\n selectedOperator = _this$props.selectedOperator;\n var selectedFieldConfig = getFieldConfig(config, selectedField) || {};\n return selectedFieldConfig.showNot != undefined ? selectedFieldConfig.showNot : config.settings.showNot;\n }\n }, {\n key: \"conjunctionOptions\",\n value: function conjunctionOptions() {\n var _this$props2 = this.props,\n config = _this$props2.config,\n selectedField = _this$props2.selectedField,\n selectedOperator = _this$props2.selectedOperator;\n var selectedFieldConfig = getFieldConfig(config, selectedField) || {};\n var conjunctionOptions = _get(_getPrototypeOf(RuleGroupExt.prototype), \"conjunctionOptions\", this).call(this);\n if (selectedFieldConfig.conjunctions) {\n var filtered = {};\n var _iterator = _createForOfIteratorHelper(selectedFieldConfig.conjunctions),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var k = _step.value;\n var options = conjunctionOptions[k];\n if (options) {\n filtered[k] = options;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n conjunctionOptions = filtered;\n }\n return conjunctionOptions;\n }\n }, {\n key: \"renderField\",\n value: function renderField() {\n var _this$props3 = this.props,\n config = _this$props3.config,\n selectedField = _this$props3.selectedField,\n selectedFieldSrc = _this$props3.selectedFieldSrc,\n selectedFieldType = _this$props3.selectedFieldType,\n setField = _this$props3.setField,\n setFieldSrc = _this$props3.setFieldSrc,\n parentField = _this$props3.parentField,\n id = _this$props3.id,\n groupId = _this$props3.groupId,\n isLocked = _this$props3.isLocked;\n var immutableFieldsMode = config.settings.immutableFieldsMode;\n return /*#__PURE__*/React.createElement(FieldWrapper, {\n key: \"field\",\n classname: \"rule--field\",\n config: config,\n canSelectFieldSource: false,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedFieldType: selectedFieldType,\n setField: setField,\n setFieldSrc: setFieldSrc,\n parentField: parentField,\n readonly: immutableFieldsMode || isLocked,\n id: id,\n groupId: groupId\n });\n }\n }, {\n key: \"renderOperator\",\n value: function renderOperator() {\n var _this$props4 = this.props,\n config = _this$props4.config,\n selectedField = _this$props4.selectedField,\n selectedFieldSrc = _this$props4.selectedFieldSrc,\n selectedOperator = _this$props4.selectedOperator,\n setField = _this$props4.setField,\n setOperator = _this$props4.setOperator,\n isLocked = _this$props4.isLocked;\n var immutableFieldsMode = config.settings.immutableFieldsMode;\n var selectedFieldWidgetConfig = getFieldWidgetConfig(config, selectedField, selectedOperator) || {};\n var hideOperator = selectedFieldWidgetConfig.hideOperator;\n var showOperatorLabel = selectedField && hideOperator && selectedFieldWidgetConfig.operatorInlineLabel;\n var showOperator = selectedField && !hideOperator;\n return /*#__PURE__*/React.createElement(OperatorWrapper, {\n key: \"operator\",\n classname: \"group--operator\",\n config: config,\n selectedField: selectedField,\n selectedFieldSrc: selectedFieldSrc,\n selectedOperator: selectedOperator,\n setOperator: setOperator,\n selectedFieldPartsLabels: [\"group\"],\n showOperator: showOperator,\n showOperatorLabel: showOperatorLabel,\n selectedFieldWidgetConfig: selectedFieldWidgetConfig,\n readonly: immutableFieldsMode || isLocked,\n id: this.props.id,\n groupId: this.props.groupId\n });\n }\n }, {\n key: \"isEmptyCurrentGroup\",\n value: function isEmptyCurrentGroup() {\n var _this$props5 = this.props,\n children1 = _this$props5.children1,\n config = _this$props5.config;\n var ruleData = this._buildWidgetProps(this.props);\n return isEmptyRuleGroupExtPropertiesAndChildren(ruleData, children1, config);\n }\n }, {\n key: \"_buildWidgetProps\",\n value: function _buildWidgetProps(_ref) {\n var selectedField = _ref.selectedField,\n selectedFieldSrc = _ref.selectedFieldSrc,\n selectedFieldType = _ref.selectedFieldType,\n selectedOperator = _ref.selectedOperator,\n operatorOptions = _ref.operatorOptions,\n value = _ref.value,\n valueType = _ref.valueType,\n valueSrc = _ref.valueSrc,\n asyncListValues = _ref.asyncListValues,\n valueError = _ref.valueError,\n parentField = _ref.parentField;\n return {\n field: selectedField,\n fieldSrc: selectedFieldSrc,\n fieldType: selectedFieldType,\n operator: selectedOperator,\n operatorOptions: operatorOptions,\n value: value,\n valueType: valueType,\n // new Immutable.List([\"number\"])\n valueSrc: [\"value\"],\n //new Immutable.List([\"value\"]), // should be fixed in isEmptyRuleGroupExtPropertiesAndChildren\n //asyncListValues,\n valueError: null,\n parentField: parentField\n };\n }\n }, {\n key: \"renderWidget\",\n value: function renderWidget() {\n var _this$props6 = this.props,\n config = _this$props6.config,\n selectedField = _this$props6.selectedField,\n selectedOperator = _this$props6.selectedOperator,\n isLocked = _this$props6.isLocked;\n var immutableValuesMode = config.settings.immutableValuesMode;\n var isFieldAndOpSelected = selectedField && selectedOperator;\n var showWidget = isFieldAndOpSelected;\n if (!showWidget) return null;\n var widget = /*#__PURE__*/React.createElement(Widget, _extends({\n key: \"values\",\n isForRuleGroup: true\n }, this._buildWidgetProps(this.props), {\n config: config,\n setValue: !immutableValuesMode ? this.props.setValue : dummyFn,\n setValueSrc: dummyFn,\n readonly: immutableValuesMode || isLocked,\n id: this.props.id,\n groupId: this.props.groupId\n }));\n return /*#__PURE__*/React.createElement(Col, {\n key: \"widget-for-\" + this.props.selectedOperator,\n className: \"rule--value\"\n }, widget);\n }\n }, {\n key: \"renderActions\",\n value: function renderActions() {\n var _this$props7 = this.props,\n config = _this$props7.config,\n addRule = _this$props7.addRule,\n isLocked = _this$props7.isLocked,\n isTrueLocked = _this$props7.isTrueLocked,\n id = _this$props7.id;\n return /*#__PURE__*/React.createElement(RuleGroupExtActions, {\n config: config,\n addRule: addRule,\n canAddRule: this.canAddRule(),\n canDeleteGroup: this.canDeleteGroup(),\n removeSelf: this.removeSelf,\n setLock: this.setLock,\n isLocked: isLocked,\n isTrueLocked: isTrueLocked,\n id: id\n });\n }\n }, {\n key: \"reordableNodesCntForItem\",\n value: function reordableNodesCntForItem(_item) {\n if (this.props.isLocked) return 0;\n var children1 = this.props.children1;\n return (children1 === null || children1 === void 0 ? void 0 : children1.size) || 0;\n }\n }, {\n key: \"extraPropsForItem\",\n value: function extraPropsForItem(_item) {\n return {\n parentField: this.props.selectedField\n };\n }\n }]);\n return RuleGroupExt;\n}(BasicGroup);\nRuleGroupExt.propTypes = _objectSpread(_objectSpread({}, BasicGroup.propTypes), {}, {\n selectedField: PropTypes.any,\n selectedFieldSrc: PropTypes.string,\n selectedOperator: PropTypes.string,\n value: PropTypes.any,\n parentField: PropTypes.string,\n setField: PropTypes.func,\n setFieldSrc: PropTypes.func,\n setOperator: PropTypes.func,\n setValue: PropTypes.func\n});\nexport default GroupContainer(Draggable(\"group rule_group_ext\")(WithConfirmFn(RuleGroupExt)), \"rule_group\");","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nvar groupActionsPositionList = {\n topLeft: \"group--actions--tl\",\n topCenter: \"group--actions--tc\",\n topRight: \"group--actions--tr\",\n bottomLeft: \"group--actions--bl\",\n bottomCenter: \"group--actions--bc\",\n bottomRight: \"group--actions--br\"\n};\nvar defaultPosition = \"topRight\";\nexport var SwitchGroupActions = /*#__PURE__*/function (_PureComponent) {\n _inherits(SwitchGroupActions, _PureComponent);\n var _super = _createSuper(SwitchGroupActions);\n function SwitchGroupActions() {\n _classCallCheck(this, SwitchGroupActions);\n return _super.apply(this, arguments);\n }\n _createClass(SwitchGroupActions, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n addCaseGroup = _this$props.addCaseGroup,\n addDefaultCaseGroup = _this$props.addDefaultCaseGroup,\n setLock = _this$props.setLock,\n isLocked = _this$props.isLocked,\n isTrueLocked = _this$props.isTrueLocked,\n id = _this$props.id,\n canAddGroup = _this$props.canAddGroup,\n canAddDefault = _this$props.canAddDefault;\n var _config$settings = config.settings,\n immutableGroupsMode = _config$settings.immutableGroupsMode,\n addCaseLabel = _config$settings.addCaseLabel,\n addDefaultCaseLabel = _config$settings.addDefaultCaseLabel,\n groupActionsPosition = _config$settings.groupActionsPosition,\n renderButton = _config$settings.renderButton,\n renderIcon = _config$settings.renderIcon,\n renderSwitch = _config$settings.renderSwitch,\n renderButtonGroup = _config$settings.renderButtonGroup,\n lockLabel = _config$settings.lockLabel,\n lockedLabel = _config$settings.lockedLabel,\n showLock = _config$settings.showLock;\n var Icon = function Icon(pr) {\n return renderIcon(pr, config.ctx);\n };\n var Btn = function Btn(pr) {\n return renderButton(pr, config.ctx);\n };\n var Switch = function Switch(pr) {\n return renderSwitch(pr, config.ctx);\n };\n var BtnGrp = function BtnGrp(pr) {\n return renderButtonGroup(pr, config.ctx);\n };\n var position = groupActionsPositionList[groupActionsPosition || defaultPosition];\n var setLockSwitch = showLock && !(isLocked && !isTrueLocked) && /*#__PURE__*/React.createElement(Switch, {\n type: \"lock\",\n id: id,\n value: isLocked,\n setValue: setLock,\n label: lockLabel,\n checkedLabel: lockedLabel,\n config: config\n });\n var addCaseGroupBtn = !immutableGroupsMode && canAddGroup && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addCaseGroup\",\n onClick: addCaseGroup,\n label: addCaseLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n var addDefaultCaseGroupBtn = !immutableGroupsMode && canAddDefault && !isLocked && /*#__PURE__*/React.createElement(Btn, {\n type: \"addDefaultCaseGroup\",\n onClick: addDefaultCaseGroup,\n label: addDefaultCaseLabel,\n readonly: isLocked,\n config: config,\n renderIcon: Icon\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--actions \".concat(position)\n }, /*#__PURE__*/React.createElement(BtnGrp, {\n config: config\n }, setLockSwitch, addCaseGroupBtn, addDefaultCaseGroupBtn));\n }\n }]);\n return SwitchGroupActions;\n}(PureComponent);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport GroupContainer from \"../containers/GroupContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport { BasicGroup } from \"./Group\";\nimport { SwitchGroupActions } from \"./SwitchGroupActions\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { Col, dummyFn, WithConfirmFn } from \"../utils\";\nimport classNames from \"classnames\";\nvar _Utils$TreeUtils = Utils.TreeUtils,\n getTotalReordableNodesCountInTree = _Utils$TreeUtils.getTotalReordableNodesCountInTree,\n getTotalRulesCountInTree = _Utils$TreeUtils.getTotalRulesCountInTree;\nvar SwitchGroup = /*#__PURE__*/function (_BasicGroup) {\n _inherits(SwitchGroup, _BasicGroup);\n var _super = _createSuper(SwitchGroup);\n function SwitchGroup(props) {\n var _this;\n _classCallCheck(this, SwitchGroup);\n _this = _super.call(this, props);\n _this.childrenClassName = function () {\n return \"switch_group--children\";\n };\n _this.renderFooterWrapper = function () {\n return null;\n };\n _this.hasDefaultCase = function () {\n var _this$props$children;\n return ((_this$props$children = _this.props.children1) === null || _this$props$children === void 0 ? void 0 : _this$props$children.size) && _this.props.children1.filter(function (c) {\n return c.get(\"children1\") == null;\n }).size > 0;\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(SwitchGroup, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {}\n }, {\n key: \"canAddGroup\",\n value: function canAddGroup() {\n var _this$props$children2;\n var maxNumberOfCases = this.props.config.settings.maxNumberOfCases;\n var totalCasesCnt = ((_this$props$children2 = this.props.children1) === null || _this$props$children2 === void 0 ? void 0 : _this$props$children2.size) || 0;\n if (maxNumberOfCases) {\n return totalCasesCnt < maxNumberOfCases;\n }\n return true;\n }\n }, {\n key: \"canAddRule\",\n value: function canAddRule() {\n return false;\n }\n }, {\n key: \"reordableNodesCnt\",\n value: function reordableNodesCnt() {\n var _this$props$children3;\n // result will be passed to each case's `parentReordableNodesCnt` prop\n var totalCasesCnt = ((_this$props$children3 = this.props.children1) === null || _this$props$children3 === void 0 ? void 0 : _this$props$children3.size) || 0;\n var casesToReorder = totalCasesCnt;\n if (this.hasDefaultCase()) {\n casesToReorder--;\n }\n return casesToReorder;\n }\n }, {\n key: \"totalRulesCntForItem\",\n value: function totalRulesCntForItem(item) {\n return getTotalRulesCountInTree(item);\n }\n }, {\n key: \"reordableNodesCntForItem\",\n value: function reordableNodesCntForItem(item) {\n var _this$props$children4;\n if (this.props.isLocked) return 0;\n var _this$props$config$se = this.props.config.settings,\n canLeaveEmptyCase = _this$props$config$se.canLeaveEmptyCase,\n canRegroupCases = _this$props$config$se.canRegroupCases;\n var totalCasesCnt = ((_this$props$children4 = this.props.children1) === null || _this$props$children4 === void 0 ? void 0 : _this$props$children4.size) || 0;\n var casesToReorder = totalCasesCnt;\n if (this.hasDefaultCase()) {\n casesToReorder--;\n }\n var nodesInCase = getTotalReordableNodesCountInTree(item);\n var cnt = nodesInCase;\n if (cnt == 1 && canRegroupCases && canLeaveEmptyCase && casesToReorder > 1) cnt = 111;\n return cnt;\n }\n }, {\n key: \"renderHeaderWrapper\",\n value: function renderHeaderWrapper() {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-header\",\n className: classNames(\"group--header\", this.isOneChild() ? \"one--child\" : \"\", this.isOneChild() ? \"hide--line\" : \"\", this.isNoChildren() ? \"no--children\" : \"\", this.showDragIcon() ? \"with--drag\" : \"hide--drag\"\n //this.showConjs() && (!this.isOneChild() || this.showNot()) ? \"with--conjs\" : \"hide--conjs\"\n )\n }, this.renderHeader(), this.renderActions());\n }\n }, {\n key: \"renderHeader\",\n value: function renderHeader() {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--conjunctions\"\n }, this.renderConjs(), this.renderDrag());\n }\n }, {\n key: \"renderConjs\",\n value: function renderConjs() {\n var config = this.props.config;\n var renderSwitchPrefix = config.settings.renderSwitchPrefix;\n return renderSwitchPrefix || null;\n }\n }, {\n key: \"showNot\",\n value: function showNot() {\n return false;\n }\n }, {\n key: \"renderActions\",\n value: function renderActions() {\n var _this$props = this.props,\n config = _this$props.config,\n addCaseGroup = _this$props.addCaseGroup,\n addDefaultCaseGroup = _this$props.addDefaultCaseGroup,\n isLocked = _this$props.isLocked,\n isTrueLocked = _this$props.isTrueLocked,\n id = _this$props.id;\n return /*#__PURE__*/React.createElement(SwitchGroupActions, {\n config: config,\n addCaseGroup: addCaseGroup,\n addDefaultCaseGroup: addDefaultCaseGroup,\n canAddDefault: !this.hasDefaultCase(),\n canAddGroup: this.canAddGroup(),\n setLock: this.setLock,\n isLocked: isLocked,\n isTrueLocked: isTrueLocked,\n id: id\n });\n }\n }]);\n return SwitchGroup;\n}(BasicGroup);\nSwitchGroup.propTypes = _objectSpread({}, BasicGroup.propTypes);\nexport default GroupContainer(Draggable(\"group switch_group\")(WithConfirmFn(SwitchGroup)), \"switch_group\");","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport GroupContainer from \"../containers/GroupContainer\";\nimport Draggable from \"../containers/Draggable\";\nimport { BasicGroup } from \"./Group\";\nimport { GroupActions } from \"./GroupActions\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport { Col, dummyFn, WithConfirmFn } from \"../utils\";\nimport Widget from \"../rule/Widget\";\nimport classNames from \"classnames\";\nvar CaseGroup = /*#__PURE__*/function (_BasicGroup) {\n _inherits(CaseGroup, _BasicGroup);\n var _super = _createSuper(CaseGroup);\n function CaseGroup(props) {\n var _this;\n _classCallCheck(this, CaseGroup);\n _this = _super.call(this, props);\n _this.childrenClassName = function () {\n return \"case_group--children\";\n };\n _this.renderFooterWrapper = function () {\n return null;\n };\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(CaseGroup, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {}\n }, {\n key: \"isDefaultCase\",\n value: function isDefaultCase() {\n return this.props.children1 == undefined;\n }\n }, {\n key: \"reordableNodesCnt\",\n value: function reordableNodesCnt() {\n // `parentReordableNodesCnt` is number of cases to reorder\n return this.props.parentReordableNodesCnt;\n }\n }, {\n key: \"reordableNodesCntForItem\",\n value: function reordableNodesCntForItem(_item) {\n // `reordableNodesCnt` is number of nodes is current case\n if (this.props.isLocked) return 0;\n return this.props.reordableNodesCnt;\n }\n }, {\n key: \"totalRulesCntForItem\",\n value: function totalRulesCntForItem(_item) {\n // `totalRulesCnt` is number of nodes is current case\n return this.props.totalRulesCnt;\n }\n }, {\n key: \"showDragIcon\",\n value: function showDragIcon() {\n // default impl of `showDragIcon()` uses `this.reordableNodesCnt()`\n if (this.isDefaultCase()) return false;\n return _get(_getPrototypeOf(CaseGroup.prototype), \"showDragIcon\", this).call(this);\n }\n }, {\n key: \"renderHeaderWrapper\",\n value: function renderHeaderWrapper() {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: \"group-header\",\n className: classNames(\"group--header\", this.isOneChild() ? \"one--child\" : \"\", this.isOneChild() ? \"hide--line\" : \"\", this.isNoChildren() ? \"no--children\" : \"\", this.showDragIcon() ? \"with--drag\" : \"hide--drag\", this.showConjs() && (!this.isOneChild() || this.showNot()) ? \"with--conjs\" : \"hide--conjs\")\n }, this.renderHeaderLeft(), this.renderHeaderCenter(), this.renderActions());\n }\n }, {\n key: \"renderChildrenWrapper\",\n value: function renderChildrenWrapper() {\n if (this.isDefaultCase()) return null;\n // body has 2 columns: condition & value\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"case_group--body\"\n }, this.renderCondition(), this.renderValue());\n }\n }, {\n key: \"renderHeaderLeft\",\n value: function renderHeaderLeft() {\n if (this.isDefaultCase()) {\n var defaultCaseLabel = this.props.config.settings.defaultCaseLabel;\n return defaultCaseLabel || \"\";\n }\n // default impl:\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"group--conjunctions\"\n }, this.renderConjs(), this.renderDrag());\n }\n }, {\n key: \"renderCondition\",\n value: function renderCondition() {\n if (this.isDefaultCase()) return null;\n return _get(_getPrototypeOf(CaseGroup.prototype), \"renderChildrenWrapper\", this).call(this);\n }\n }, {\n key: \"renderHeaderCenter\",\n value: function renderHeaderCenter() {\n if (this.isDefaultCase()) return this.renderValue();else return null;\n }\n }, {\n key: \"canAddGroup\",\n value: function canAddGroup() {\n if (this.isDefaultCase()) return false;\n return _get(_getPrototypeOf(CaseGroup.prototype), \"canAddGroup\", this).call(this);\n }\n }, {\n key: \"canAddRule\",\n value: function canAddRule() {\n if (this.isDefaultCase()) return false;\n return _get(_getPrototypeOf(CaseGroup.prototype), \"canAddRule\", this).call(this);\n }\n }, {\n key: \"renderValue\",\n value: function renderValue() {\n var _this$props = this.props,\n config = _this$props.config,\n isLocked = _this$props.isLocked,\n value = _this$props.value,\n setValue = _this$props.setValue,\n id = _this$props.id;\n var immutableValuesMode = config.settings.immutableValuesMode;\n var widget = /*#__PURE__*/React.createElement(Widget, {\n key: \"values\",\n isCaseValue: true,\n field: \"!case_value\",\n operator: null,\n value: value,\n valueSrc: \"value\",\n valueError: null,\n config: config,\n setValue: !immutableValuesMode ? setValue : dummyFn,\n setValueSrc: dummyFn,\n readonly: immutableValuesMode || isLocked,\n id: id,\n groupId: null\n });\n return /*#__PURE__*/React.createElement(Col, {\n className: \"case_group--value\"\n }, widget);\n }\n }, {\n key: \"renderActions\",\n value: function renderActions() {\n var _this$props2 = this.props,\n config = _this$props2.config,\n addGroup = _this$props2.addGroup,\n addRule = _this$props2.addRule,\n isLocked = _this$props2.isLocked,\n isTrueLocked = _this$props2.isTrueLocked,\n id = _this$props2.id;\n return /*#__PURE__*/React.createElement(GroupActions, {\n config: config,\n addGroup: addGroup,\n addRule: addRule,\n canAddRule: this.canAddRule(),\n canAddGroup: this.canAddGroup(),\n canDeleteGroup: this.canDeleteGroup(),\n removeSelf: this.removeSelf,\n setLock: this.setLock,\n isLocked: isLocked,\n isTrueLocked: isTrueLocked,\n id: id\n });\n }\n }, {\n key: \"isEmptyCurrentGroup\",\n value: function isEmptyCurrentGroup() {\n // used to confirm self-deletion\n var value = this.props.value;\n var oneValue = value && value.size ? value.get(0) : null;\n var hasValue = oneValue != null && (Array.isArray(oneValue) ? oneValue.length > 0 : true);\n return _get(_getPrototypeOf(CaseGroup.prototype), \"isEmptyCurrentGroup\", this).call(this) && !hasValue;\n }\n }]);\n return CaseGroup;\n}(BasicGroup);\nCaseGroup.propTypes = _objectSpread(_objectSpread({}, BasicGroup.propTypes), {}, {\n parentReordableNodesCnt: PropTypes.number,\n value: PropTypes.any,\n setValue: PropTypes.func\n});\nexport default GroupContainer(Draggable(\"group case_group\")(WithConfirmFn(CaseGroup)), \"case_group\");","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"type\"];\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Rule from \"./Rule\";\nimport Group from \"./Group\";\nimport RuleGroup from \"./RuleGroup\";\nimport RuleGroupExt from \"./RuleGroupExt\";\nimport SwitchGroup from \"./SwitchGroup\";\nimport CaseGroup from \"./CaseGroup\";\nvar types = [\"rule\", \"group\", \"rule_group\", \"switch_group\", \"case_group\"];\nvar getProperties = function getProperties(props) {\n var _props$properties;\n var properties = ((_props$properties = props.properties) === null || _props$properties === void 0 ? void 0 : _props$properties.toObject()) || {};\n var result = _objectSpread({}, properties);\n if (props.isParentLocked) {\n result.isLocked = true;\n }\n if (properties.isLocked) {\n result.isTrueLocked = true;\n }\n return result;\n};\nvar typeMap = {\n rule: function rule(props) {\n return /*#__PURE__*/React.createElement(Rule, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n config: props.config,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n parentField: props.parentField,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n },\n group: function group(props) {\n return /*#__PURE__*/React.createElement(Group, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n config: props.config,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n children1: props.children1,\n parentField: null,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n },\n rule_group: function rule_group(props) {\n return /*#__PURE__*/React.createElement(RuleGroup, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n config: props.config,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n children1: props.children1,\n parentField: props.parentField,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n },\n rule_group_ext: function rule_group_ext(props) {\n return /*#__PURE__*/React.createElement(RuleGroupExt, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n config: props.config,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n children1: props.children1,\n parentField: props.parentField,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n },\n switch_group: function switch_group(props) {\n return /*#__PURE__*/React.createElement(SwitchGroup, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n config: props.config,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n children1: props.children1,\n parentField: null,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n },\n case_group: function case_group(props) {\n return /*#__PURE__*/React.createElement(CaseGroup, _extends({}, getProperties(props), {\n id: props.id,\n groupId: props.groupId,\n path: props.path,\n actions: props.actions,\n config: props.config,\n reordableNodesCnt: props.reordableNodesCnt,\n totalRulesCnt: props.totalRulesCnt,\n onDragStart: props.onDragStart,\n isDraggingTempo: props.isDraggingTempo,\n children1: props.children1,\n parentField: null,\n parentReordableNodesCnt: props.parentReordableNodesCnt\n }));\n }\n};\nvar Item = /*#__PURE__*/function (_PureComponent) {\n _inherits(Item, _PureComponent);\n var _super = _createSuper(Item);\n function Item() {\n _classCallCheck(this, Item);\n return _super.apply(this, arguments);\n }\n _createClass(Item, [{\n key: \"render\",\n value: function render() {\n var _props$properties2;\n var _this$props = this.props,\n type = _this$props.type,\n props = _objectWithoutProperties(_this$props, _excluded);\n var mode = (_props$properties2 = props.properties) === null || _props$properties2 === void 0 ? void 0 : _props$properties2.get(\"mode\");\n var postfix = mode == \"array\" ? \"_ext\" : \"\";\n var renderItem = props.config.settings.renderItem;\n var Cmp = typeMap[type + postfix];\n if (renderItem) {\n return renderItem(_objectSpread(_objectSpread({}, props), {}, {\n type: type,\n itemComponent: Cmp\n }), props.config.ctx);\n }\n if (!Cmp) return null;\n return Cmp(props);\n }\n }]);\n return Item;\n}(PureComponent);\nItem.propTypes = {\n config: PropTypes.object.isRequired,\n id: PropTypes.string.isRequired,\n groupId: PropTypes.string,\n type: PropTypes.oneOf(types).isRequired,\n path: PropTypes.any.isRequired,\n //instanceOf(Immutable.List)\n properties: PropTypes.any.isRequired,\n //instanceOf(Immutable.Map)\n children1: PropTypes.any,\n //instanceOf(Immutable.OrderedMap)\n actions: PropTypes.object.isRequired,\n reordableNodesCnt: PropTypes.number,\n onDragStart: PropTypes.func,\n parentField: PropTypes.string,\n //from RuleGroup\n isDraggingTempo: PropTypes.bool,\n isParentLocked: PropTypes.bool\n};\nexport { Item };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Item } from \"./item/Item\";\nimport SortableContainer from \"./containers/SortableContainer\";\nimport { pureShouldComponentUpdate } from \"../utils/reactUtils\";\nvar _Utils$TreeUtils = Utils.TreeUtils,\n getTotalReordableNodesCountInTree = _Utils$TreeUtils.getTotalReordableNodesCountInTree,\n getTotalRulesCountInTree = _Utils$TreeUtils.getTotalRulesCountInTree;\nvar _Utils$DefaultUtils = Utils.DefaultUtils,\n createListFromArray = _Utils$DefaultUtils.createListFromArray,\n emptyProperies = _Utils$DefaultUtils.emptyProperies;\nvar Builder = /*#__PURE__*/function (_Component) {\n _inherits(Builder, _Component);\n var _super = _createSuper(Builder);\n function Builder(props) {\n var _this;\n _classCallCheck(this, Builder);\n _this = _super.call(this, props);\n _this.pureShouldComponentUpdate = pureShouldComponentUpdate(_assertThisInitialized(_this));\n _this._updPath(props);\n return _this;\n }\n _createClass(Builder, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps, nextState) {\n var prevProps = this.props;\n var should = this.pureShouldComponentUpdate(nextProps, nextState);\n if (should) {\n var chs = [];\n for (var k in nextProps) {\n var changed = nextProps[k] !== prevProps[k];\n if (changed && k != \"__isInternalValueChange\") {\n chs.push(k);\n }\n }\n if (!chs.length) should = false;\n //optimize render\n if (chs.length == 1 && chs[0] == \"tree\" && nextProps.__isInternalValueChange) should = false;\n }\n return should;\n }\n }, {\n key: \"_updPath\",\n value: function _updPath(props) {\n var id = props.tree.get(\"id\");\n this.path = createListFromArray([id]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var tree = this.props.tree;\n var rootType = tree.get(\"type\");\n var isTernary = rootType == \"switch_group\";\n var reordableNodesCnt = isTernary ? null : getTotalReordableNodesCountInTree(tree);\n var totalRulesCnt = isTernary ? null : getTotalRulesCountInTree(tree);\n var id = tree.get(\"id\");\n return /*#__PURE__*/React.createElement(Item, {\n key: id,\n id: id,\n path: this.path,\n type: rootType,\n properties: tree.get(\"properties\") || emptyProperies(),\n config: this.props.config,\n actions: this.props.actions,\n children1: tree.get(\"children1\") || emptyProperies()\n //tree={tree}\n ,\n reordableNodesCnt: reordableNodesCnt,\n totalRulesCnt: totalRulesCnt,\n parentReordableNodesCnt: 0,\n onDragStart: this.props.onDragStart\n });\n }\n }]);\n return Builder;\n}(Component);\nBuilder.propTypes = {\n tree: PropTypes.any.isRequired,\n //instanceOf(Immutable.Map)\n config: PropTypes.object.isRequired,\n actions: PropTypes.object.isRequired,\n onDragStart: PropTypes.func\n};\nexport default SortableContainer(Builder);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { Component } from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport PropTypes from \"prop-types\";\nimport { truncateString } from \"../../utils/stuff\";\nimport { useOnPropsChanged } from \"../../utils/reactUtils\";\nimport last from \"lodash/last\";\nimport keys from \"lodash/keys\";\nvar clone = Utils.clone;\nvar _Utils$ConfigUtils = Utils.ConfigUtils,\n getFieldConfig = _Utils$ConfigUtils.getFieldConfig,\n getFieldParts = _Utils$ConfigUtils.getFieldParts,\n getFieldPathParts = _Utils$ConfigUtils.getFieldPathParts;\nvar _Utils$RuleUtils = Utils.RuleUtils,\n getFieldPathLabels = _Utils$RuleUtils.getFieldPathLabels,\n getWidgetForFieldOp = _Utils$RuleUtils.getWidgetForFieldOp;\n\n//tip: this.props.value - right value, this.props.field - left value\nvar ValueField = /*#__PURE__*/function (_Component) {\n _inherits(ValueField, _Component);\n var _super = _createSuper(ValueField);\n function ValueField(props) {\n var _this;\n _classCallCheck(this, ValueField);\n _this = _super.call(this, props);\n useOnPropsChanged(_assertThisInitialized(_this));\n _this.onPropsChanged(props);\n return _this;\n }\n _createClass(ValueField, [{\n key: \"onPropsChanged\",\n value: function onPropsChanged(nextProps) {\n var prevProps = this.props;\n var keysForItems = [\"config\", \"field\", \"fieldSrc\", \"fieldType\", \"operator\", \"isFuncArg\", \"parentField\"];\n var keysForMeta = [\"config\", \"field\", \"fieldSrc\", \"fieldType\", \"operator\", \"value\", \"placeholder\", \"isFuncArg\", \"parentField\"];\n var needUpdateItems = !this.items || keysForItems.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n var needUpdateMeta = !this.meta || keysForMeta.map(function (k) {\n return nextProps[k] !== prevProps[k];\n }).filter(function (ch) {\n return ch;\n }).length > 0;\n if (needUpdateItems) {\n this.items = this.getItems(nextProps);\n }\n if (needUpdateMeta) {\n this.meta = this.getMeta(nextProps);\n }\n }\n }, {\n key: \"getItems\",\n value: function getItems(_ref) {\n var config = _ref.config,\n field = _ref.field,\n fieldType = _ref.fieldType,\n operator = _ref.operator,\n parentField = _ref.parentField,\n isFuncArg = _ref.isFuncArg,\n fieldDefinition = _ref.fieldDefinition;\n var canCompareFieldWithField = config.settings.canCompareFieldWithField;\n var fieldSeparator = config.settings.fieldSeparator;\n var parentFieldPath = getFieldParts(parentField, config);\n var parentFieldConfig = parentField ? getFieldConfig(config, parentField) : null;\n var sourceFields = parentField ? parentFieldConfig === null || parentFieldConfig === void 0 ? void 0 : parentFieldConfig.subfields : config.fields;\n var filteredFields = this.filterFields(config, sourceFields, field, parentField, parentFieldPath, operator, canCompareFieldWithField, isFuncArg, fieldDefinition, fieldType);\n var items = this.buildOptions(parentFieldPath, config, filteredFields, parentFieldPath);\n return items;\n }\n }, {\n key: \"getMeta\",\n value: function getMeta(_ref2) {\n var _leftFieldConfig$widg;\n var config = _ref2.config,\n field = _ref2.field,\n fieldType = _ref2.fieldType,\n operator = _ref2.operator,\n value = _ref2.value,\n customPlaceholder = _ref2.placeholder,\n isFuncArg = _ref2.isFuncArg,\n parentField = _ref2.parentField;\n var _config$settings = config.settings,\n fieldPlaceholder = _config$settings.fieldPlaceholder,\n fieldSeparatorDisplay = _config$settings.fieldSeparatorDisplay;\n var selectedKey = value;\n var isFieldSelected = !!value;\n var leftFieldConfig = field ? getFieldConfig(config, field) : {};\n var leftFieldWidgetField = leftFieldConfig === null || leftFieldConfig === void 0 || (_leftFieldConfig$widg = leftFieldConfig.widgets) === null || _leftFieldConfig$widg === void 0 ? void 0 : _leftFieldConfig$widg.field;\n var leftFieldWidgetFieldProps = (leftFieldWidgetField === null || leftFieldWidgetField === void 0 ? void 0 : leftFieldWidgetField.widgetProps) || {};\n var placeholder = isFieldSelected ? null : isFuncArg && customPlaceholder || leftFieldWidgetFieldProps.valuePlaceholder || fieldPlaceholder;\n var currField = isFieldSelected ? getFieldConfig(config, selectedKey) : null;\n var selectedOpts = currField || {};\n var selectedKeys = getFieldPathParts(selectedKey, config);\n var selectedPath = getFieldPathParts(selectedKey, config, true);\n var selectedLabel = this.getFieldLabel(currField, selectedKey, config);\n var partsLabels = getFieldPathLabels(selectedKey, config);\n var selectedFullLabel = partsLabels ? partsLabels.join(fieldSeparatorDisplay) : null;\n if (selectedFullLabel == selectedLabel || parentField) selectedFullLabel = null;\n var selectedAltLabel = selectedOpts.label2;\n return {\n placeholder: placeholder,\n selectedKey: selectedKey,\n selectedKeys: selectedKeys,\n selectedPath: selectedPath,\n selectedLabel: selectedLabel,\n selectedOpts: selectedOpts,\n selectedAltLabel: selectedAltLabel,\n selectedFullLabel: selectedFullLabel\n };\n }\n }, {\n key: \"filterFields\",\n value: function filterFields(config, fields, leftFieldFullkey, parentField, parentFieldPath, operator, canCompareFieldWithField, isFuncArg, fieldDefinition, fieldType) {\n fields = clone(fields);\n var fieldSeparator = config.settings.fieldSeparator;\n var leftFieldConfig = getFieldConfig(config, leftFieldFullkey);\n var _relyOnWidgetType = false; //TODO: remove this, see issue #758\n var widget = getWidgetForFieldOp(config, leftFieldFullkey, operator, \"value\");\n var widgetConfig = config.widgets[widget];\n var expectedType;\n if (isFuncArg) {\n expectedType = fieldDefinition === null || fieldDefinition === void 0 ? void 0 : fieldDefinition.type;\n } else if (_relyOnWidgetType && widgetConfig) {\n expectedType = widgetConfig.type;\n } else if (leftFieldConfig) {\n expectedType = leftFieldConfig.type;\n } else {\n // no field at LHS, but can use type from \"memory effect\"\n expectedType = fieldType;\n }\n function _filter(list, path) {\n for (var rightFieldKey in list) {\n var subfields = list[rightFieldKey].subfields;\n var subpath = (path ? path : []).concat(rightFieldKey);\n var rightFieldFullkey = subpath.join(fieldSeparator);\n var rightFieldConfig = getFieldConfig(config, rightFieldFullkey);\n if (!rightFieldConfig) {\n delete list[rightFieldKey];\n } else if (rightFieldConfig.type == \"!struct\" || rightFieldConfig.type == \"!group\") {\n if (_filter(subfields, subpath) == 0) delete list[rightFieldKey];\n } else {\n // tip: LHS field can be used as arg in RHS function\n var canUse = (!expectedType || rightFieldConfig.type == expectedType) && (isFuncArg ? true : rightFieldFullkey != leftFieldFullkey);\n var fn = canCompareFieldWithField || config.settings.canCompareFieldWithField;\n if (fn) canUse = canUse && fn(leftFieldFullkey, leftFieldConfig, rightFieldFullkey, rightFieldConfig, operator);\n if (!canUse) delete list[rightFieldKey];\n }\n }\n return keys(list).length;\n }\n _filter(fields, parentFieldPath || []);\n return fields;\n }\n }, {\n key: \"buildOptions\",\n value: function buildOptions(parentFieldPath, config, fields) {\n var _this2 = this;\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var optGroup = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n if (!fields) return null;\n var _config$settings2 = config.settings,\n fieldSeparator = _config$settings2.fieldSeparator,\n fieldSeparatorDisplay = _config$settings2.fieldSeparatorDisplay;\n var prefix = path !== null && path !== void 0 && path.length ? path.join(fieldSeparator) + fieldSeparator : \"\";\n return keys(fields).map(function (fieldKey) {\n var fullFieldPath = [].concat(_toConsumableArray(path !== null && path !== void 0 ? path : []), [fieldKey]);\n var field = fields[fieldKey];\n var label = _this2.getFieldLabel(field, fullFieldPath, config);\n var partsLabels = getFieldPathLabels(fullFieldPath, config);\n var fullLabel = partsLabels.join(fieldSeparatorDisplay);\n if (fullLabel == label || parentFieldPath) fullLabel = null;\n var altLabel = field.label2;\n var tooltip = field.tooltip;\n if (field.hideForCompare) return undefined;\n if (field.type == \"!struct\" || field.type == \"!group\") {\n return {\n key: fieldKey,\n path: prefix + fieldKey,\n label: label,\n fullLabel: fullLabel,\n altLabel: altLabel,\n tooltip: tooltip,\n items: _this2.buildOptions(parentFieldPath, config, field.subfields, fullFieldPath, {\n label: label,\n tooltip: tooltip\n })\n };\n } else {\n return {\n key: fieldKey,\n path: prefix + fieldKey,\n label: label,\n fullLabel: fullLabel,\n altLabel: altLabel,\n tooltip: tooltip,\n grouplabel: optGroup === null || optGroup === void 0 ? void 0 : optGroup.label,\n group: optGroup\n };\n }\n }).filter(function (o) {\n return !!o;\n });\n }\n }, {\n key: \"getFieldLabel\",\n value: function getFieldLabel(fieldOpts, fieldKey, config) {\n if (!fieldKey) return null;\n var maxLabelsLength = config.settings.maxLabelsLength;\n var fieldParts = getFieldParts(fieldKey, config);\n var label = (fieldOpts === null || fieldOpts === void 0 ? void 0 : fieldOpts.label) || last(fieldParts);\n label = truncateString(label, maxLabelsLength);\n return label;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n config = _this$props.config,\n customProps = _this$props.customProps,\n setValue = _this$props.setValue,\n readonly = _this$props.readonly,\n id = _this$props.id,\n groupId = _this$props.groupId;\n var renderField = config.settings.renderField;\n var renderProps = _objectSpread({\n isValueField: true,\n config: config,\n customProps: customProps,\n setField: setValue,\n readonly: readonly,\n items: this.items,\n id: id,\n groupId: groupId\n }, this.meta);\n return renderField(renderProps, config.ctx);\n }\n }]);\n return ValueField;\n}(Component);\nValueField.propTypes = {\n id: PropTypes.string,\n groupId: PropTypes.string,\n setValue: PropTypes.func.isRequired,\n config: PropTypes.object.isRequired,\n field: PropTypes.any,\n fieldSrc: PropTypes.string,\n fieldType: PropTypes.string,\n value: PropTypes.string,\n operator: PropTypes.string,\n customProps: PropTypes.object,\n readonly: PropTypes.bool,\n parentField: PropTypes.string,\n fieldDefinition: PropTypes.object,\n isFuncArg: PropTypes.bool\n};\nexport { ValueField as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n labelYes = props.labelYes,\n labelNo = props.labelNo,\n readonly = props.readonly,\n _props$customProps = props.customProps,\n customProps = _props$customProps === void 0 ? {} : _props$customProps;\n var customRadioYesProps = customProps.radioYes || {};\n var customRadioNoProps = customProps.radioNo || {};\n var onCheckboxChange = function onCheckboxChange(e) {\n return setValue(e.target.checked);\n };\n var onRadioChange = function onRadioChange(e) {\n return setValue(e.target.value == \"true\");\n };\n\n // return <>\n // <input key={id} type=\"checkbox\" id={id} checked={!!value} disabled={readonly} onChange={onCheckboxChange} />\n // <label style={{display: \"inline\"}} key={id+\"label\"} htmlFor={id}>{value ? labelYes : labelNo}</label>\n // </>;\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\",\n value: true,\n checked: !!value,\n disabled: readonly,\n onChange: onRadioChange\n }, customRadioYesProps)), \" \", labelYes, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\",\n value: false,\n checked: !value,\n disabled: readonly,\n onChange: onRadioChange\n }, customRadioNoProps)), \" \", labelNo);\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n readonly = props.readonly,\n placeholder = props.placeholder,\n maxLength = props.maxLength,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var val = e.target.value;\n if (val === \"\") val = undefined; // don't allow empty value\n setValue(val);\n };\n var textValue = value || \"\";\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"text\",\n value: textValue,\n placeholder: placeholder,\n disabled: readonly,\n onChange: onChange,\n maxLength: maxLength\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n readonly = props.readonly,\n placeholder = props.placeholder,\n maxLength = props.maxLength,\n maxRows = props.maxRows,\n fullWidth = props.fullWidth,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var val = e.target.value;\n if (val === \"\") val = undefined; // don't allow empty value\n setValue(val);\n };\n var textValue = value || \"\";\n return /*#__PURE__*/React.createElement(\"textarea\", _extends({\n value: textValue,\n placeholder: placeholder,\n disabled: readonly,\n onChange: onChange,\n maxLength: maxLength,\n style: {\n width: fullWidth ? \"100%\" : undefined\n }\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nvar moment = Utils.moment;\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n valueFormat = props.valueFormat,\n readonly = props.readonly,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var value = e.target.value;\n if (value == \"\") value = undefined;\n setValue(value);\n };\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"date\",\n value: value || \"\",\n disabled: readonly,\n onChange: onChange\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n valueFormat = props.valueFormat,\n use12Hours = props.use12Hours,\n readonly = props.readonly,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var value = e.target.value;\n if (value == \"\") value = undefined;\n setValue(value);\n };\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"time\",\n value: value || \"\",\n disabled: readonly,\n onChange: onChange\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nvar moment = Utils.moment;\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n valueFormat = props.valueFormat,\n use12Hours = props.use12Hours,\n readonly = props.readonly,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var value = e.target.value;\n if (value == \"\") value = undefined;else value = moment(new Date(value)).format(valueFormat);\n setValue(value);\n };\n var dtValue = value;\n if (!value) dtValue = \"\";else dtValue = moment(value).format(\"YYYY-MM-DDTHH:mm\");\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"datetime-local\",\n value: dtValue,\n disabled: readonly,\n onChange: onChange\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport omit from \"lodash/omit\";\nvar mapListValues = Utils.ListUtils.mapListValues;\nexport default (function (_ref) {\n var listValues = _ref.listValues,\n value = _ref.value,\n setValue = _ref.setValue,\n allowCustomValues = _ref.allowCustomValues,\n readonly = _ref.readonly,\n customProps = _ref.customProps;\n var renderOptions = function renderOptions() {\n return mapListValues(listValues, function (_ref2) {\n var title = _ref2.title,\n value = _ref2.value;\n return /*#__PURE__*/React.createElement(\"option\", {\n key: value,\n value: value\n }, title);\n });\n };\n var getMultiSelectValues = function getMultiSelectValues(multiselect) {\n var values = [];\n var options = multiselect.options;\n for (var i = 0; i < options.length; i++) {\n var opt = options[i];\n if (opt.selected) {\n values.push(opt.value);\n }\n }\n if (!values.length) values = undefined; //not allow []\n return values;\n };\n var onChange = function onChange(e) {\n return setValue(getMultiSelectValues(e.target));\n };\n return /*#__PURE__*/React.createElement(\"select\", _extends({\n multiple: true,\n onChange: onChange,\n value: value,\n disabled: readonly\n }, omit(customProps, [\"showSearch\", \"input\", \"showCheckboxes\"])), renderOptions());\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport omit from \"lodash/omit\";\nvar mapListValues = Utils.ListUtils.mapListValues;\nexport default (function (_ref) {\n var listValues = _ref.listValues,\n value = _ref.value,\n setValue = _ref.setValue,\n allowCustomValues = _ref.allowCustomValues,\n readonly = _ref.readonly,\n customProps = _ref.customProps;\n var renderOptions = function renderOptions() {\n return mapListValues(listValues, function (_ref2) {\n var title = _ref2.title,\n value = _ref2.value;\n return /*#__PURE__*/React.createElement(\"option\", {\n key: value,\n value: value\n }, title);\n });\n };\n var onChange = function onChange(e) {\n return setValue(e.target.value);\n };\n var hasValue = value != null;\n return /*#__PURE__*/React.createElement(\"select\", _extends({\n onChange: onChange,\n value: hasValue ? value : \"\",\n disabled: readonly\n }, omit(customProps, [\"showSearch\", \"input\"])), !hasValue && /*#__PURE__*/React.createElement(\"option\", {\n disabled: true,\n value: \"\"\n }), renderOptions());\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n readonly = props.readonly,\n min = props.min,\n max = props.max,\n step = props.step,\n placeholder = props.placeholder,\n customProps = props.customProps;\n var onChange = function onChange(e) {\n var val = e.target.value;\n if (val === \"\" || val === null) val = undefined;else val = Number(val);\n setValue(val);\n };\n var numberValue = value == undefined ? \"\" : value;\n return /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"number\",\n value: numberValue,\n placeholder: placeholder,\n disabled: readonly,\n min: min,\n max: max,\n step: step,\n onChange: onChange\n }, customProps));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from \"react\";\nexport default (function (props) {\n var value = props.value,\n setValue = props.setValue,\n config = props.config,\n readonly = props.readonly,\n min = props.min,\n max = props.max,\n step = props.step,\n placeholder = props.placeholder,\n _props$customProps = props.customProps,\n customProps = _props$customProps === void 0 ? {} : _props$customProps;\n var customInputProps = customProps.input || {};\n var customSliderProps = customProps.slider || customProps;\n var onChange = function onChange(e) {\n var val = e.target.value;\n if (val === \"\" || val === null) val = undefined;else val = Number(val);\n setValue(val);\n };\n var numberValue = value == undefined ? \"\" : value;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: \"inline-flex\"\n }\n }, /*#__PURE__*/React.createElement(\"input\", _extends({\n key: \"number\",\n type: \"number\",\n value: numberValue,\n placeholder: placeholder,\n disabled: readonly,\n min: min,\n max: max,\n step: step,\n onChange: onChange\n }, customInputProps)), /*#__PURE__*/React.createElement(\"input\", _extends({\n key: \"range\",\n type: \"range\",\n value: numberValue,\n disabled: readonly,\n min: min,\n max: max,\n step: step,\n onChange: onChange\n }, customSliderProps)));\n});","import React from \"react\";\nexport default (function (_ref) {\n var items = _ref.items,\n setField = _ref.setField,\n selectedKey = _ref.selectedKey,\n readonly = _ref.readonly,\n errorText = _ref.errorText;\n var renderOptions = function renderOptions(fields) {\n return fields.map(function (field) {\n var items = field.items,\n path = field.path,\n label = field.label,\n disabled = field.disabled,\n matchesType = field.matchesType;\n if (items) {\n return /*#__PURE__*/React.createElement(\"optgroup\", {\n disabled: disabled,\n key: path,\n label: label\n }, renderOptions(items));\n } else {\n var style = matchesType ? {\n fontWeight: \"bold\"\n } : {};\n return /*#__PURE__*/React.createElement(\"option\", {\n disabled: disabled,\n key: path,\n value: path,\n style: style\n }, label);\n }\n });\n };\n var onChange = function onChange(e) {\n return setField(e.target.value);\n };\n var hasValue = selectedKey != null;\n return /*#__PURE__*/React.createElement(\"select\", {\n onChange: onChange,\n value: hasValue ? selectedKey : \"\",\n disabled: readonly,\n style: {\n color: errorText ? \"red\" : null\n }\n }, !hasValue && /*#__PURE__*/React.createElement(\"option\", {\n disabled: true,\n value: \"\"\n }), renderOptions(items));\n});","import React from \"react\";\nexport default (function (_ref) {\n var id = _ref.id,\n not = _ref.not,\n setNot = _ref.setNot,\n conjunctionOptions = _ref.conjunctionOptions,\n setConjunction = _ref.setConjunction,\n disabled = _ref.disabled,\n readonly = _ref.readonly,\n config = _ref.config,\n showNot = _ref.showNot,\n notLabel = _ref.notLabel;\n var conjsCount = Object.keys(conjunctionOptions).length;\n var lessThenTwo = disabled;\n var forceShowConj = config.settings.forceShowConj;\n var showConj = forceShowConj || conjsCount > 1 && !lessThenTwo;\n var renderOptions = function renderOptions() {\n return Object.keys(conjunctionOptions).map(function (key) {\n var _conjunctionOptions$k = conjunctionOptions[key],\n id = _conjunctionOptions$k.id,\n name = _conjunctionOptions$k.name,\n label = _conjunctionOptions$k.label,\n checked = _conjunctionOptions$k.checked;\n var postfix = setConjunction.isDummyFn ? \"__dummy\" : \"\";\n if ((readonly || disabled) && !checked) return null;\n return [/*#__PURE__*/React.createElement(\"input\", {\n key: id + postfix,\n type: \"radio\",\n id: id + postfix,\n name: name + postfix,\n checked: checked,\n disabled: readonly || disabled,\n value: key,\n onChange: onChange\n }), /*#__PURE__*/React.createElement(\"label\", {\n key: id + postfix + \"label\",\n htmlFor: id + postfix\n }, label)];\n });\n };\n var renderNot = function renderNot() {\n var postfix = \"not\";\n return [/*#__PURE__*/React.createElement(\"input\", {\n key: id + postfix,\n type: \"checkbox\",\n id: id + postfix,\n checked: not,\n disabled: readonly,\n onChange: onNotChange\n }), /*#__PURE__*/React.createElement(\"label\", {\n key: id + postfix + \"label\",\n htmlFor: id + postfix\n }, notLabel || \"NOT\")];\n };\n var onChange = function onChange(e) {\n return setConjunction(e.target.value);\n };\n var onNotChange = function onNotChange(e) {\n return setNot(e.target.checked);\n };\n return [showNot && renderNot(), showConj && renderOptions()];\n});","import React from \"react\";\nvar typeToLabel = {\n \"addRuleGroup\": \"+\",\n \"addRuleGroupExt\": \"+\",\n \"delGroup\": \"x\",\n \"delRuleGroup\": \"x\",\n \"delRule\": \"x\"\n};\nexport default (function (_ref) {\n var type = _ref.type,\n label = _ref.label,\n onClick = _ref.onClick,\n readonly = _ref.readonly;\n var btnLabel = label || typeToLabel[type];\n return /*#__PURE__*/React.createElement(\"button\", {\n onClick: onClick,\n type: \"button\",\n disabled: readonly\n }, btnLabel);\n});","import React from \"react\";\nimport { DragIcon } from \"../../../utils\";\nexport default (function (_ref) {\n var type = _ref.type;\n var typeToIcon = {};\n var icon = typeToIcon[type] || null;\n if (!icon && type === \"drag\") {\n icon = /*#__PURE__*/React.createElement(DragIcon, null);\n }\n return icon;\n});","import React from \"react\";\nexport default (function (_ref) {\n var children = _ref.children,\n config = _ref.config;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n});","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport React from \"react\";\nexport default (function (_ref) {\n var config = _ref.config,\n valueSources = _ref.valueSources,\n valueSrc = _ref.valueSrc,\n title = _ref.title,\n setValueSrc = _ref.setValueSrc,\n readonly = _ref.readonly;\n var renderOptions = function renderOptions(valueSources) {\n return valueSources.map(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n srcKey = _ref3[0],\n info = _ref3[1];\n return /*#__PURE__*/React.createElement(\"option\", {\n key: srcKey,\n value: srcKey\n }, info.label);\n });\n };\n var onChange = function onChange(e) {\n return setValueSrc(e.target.value);\n };\n return /*#__PURE__*/React.createElement(\"select\", {\n onChange: onChange,\n value: valueSrc || \"\",\n disabled: readonly\n }, renderOptions(valueSources));\n});","import React from \"react\";\nexport default (function (_ref) {\n var value = _ref.value,\n setValue = _ref.setValue,\n label = _ref.label,\n id = _ref.id,\n config = _ref.config,\n type = _ref.type;\n var onChange = function onChange(e) {\n return setValue(e.target.checked);\n };\n var postfix = type;\n return [/*#__PURE__*/React.createElement(\"input\", {\n key: id + postfix,\n type: \"checkbox\",\n id: id + postfix,\n checked: !!value,\n onChange: onChange\n }), /*#__PURE__*/React.createElement(\"label\", {\n key: id + postfix + \"label\",\n htmlFor: id + postfix\n }, label)];\n});","export default (function (_ref) {\n var onOk = _ref.onOk,\n okText = _ref.okText,\n cancelText = _ref.cancelText,\n title = _ref.title;\n if (confirm(title)) {\n onOk();\n }\n});","import React from \"react\";\n\n// value widgets\nexport { default as VanillaBooleanWidget } from \"./value/VanillaBoolean\";\nexport { default as VanillaTextWidget } from \"./value/VanillaText\";\nexport { default as VanillaTextAreaWidget } from \"./value/VanillaTextArea\";\nexport { default as VanillaDateWidget } from \"./value/VanillaDate\";\nexport { default as VanillaTimeWidget } from \"./value/VanillaTime\";\nexport { default as VanillaDateTimeWidget } from \"./value/VanillaDateTime\";\nexport { default as VanillaMultiSelectWidget } from \"./value/VanillaMultiSelect\";\nexport { default as VanillaSelectWidget } from \"./value/VanillaSelect\";\nexport { default as VanillaNumberWidget } from \"./value/VanillaNumber\";\nexport { default as VanillaSliderWidget } from \"./value/VanillaSlider\";\n\n// field select widget\nexport { default as VanillaFieldSelect } from \"./core/VanillaFieldSelect\";\n\n// core components\nexport { default as VanillaConjs } from \"./core/VanillaConjs\";\nexport { default as VanillaButton } from \"./core/VanillaButton\";\nexport { default as VanillaIcon } from \"./core/VanillaIcon\";\nexport { default as VanillaButtonGroup } from \"./core/VanillaButtonGroup\";\nexport { default as VanillaValueSources } from \"./core/VanillaValueSources\";\nexport { default as VanillaSwitch } from \"./core/VanillaSwitch\";\nexport { default as vanillaConfirm } from \"./core/vanillaConfirm\";\nexport var VanillaProvider = function VanillaProvider(_ref) {\n var config = _ref.config,\n children = _ref.children;\n return children;\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nimport React, { PureComponent } from \"react\";\nimport PropTypes from \"prop-types\";\nimport range from \"lodash/range\";\nvar Proximity = /*#__PURE__*/function (_PureComponent) {\n _inherits(Proximity, _PureComponent);\n var _super = _createSuper(Proximity);\n function Proximity() {\n var _this;\n _classCallCheck(this, Proximity);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.handleChange = function (value) {\n _this.props.setOption(\"proximity\", parseInt(value));\n };\n return _this;\n }\n _createClass(Proximity, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n defaults = _this$props.defaults,\n options = _this$props.options,\n config = _this$props.config,\n optionLabel = _this$props.optionLabel,\n optionPlaceholder = _this$props.optionPlaceholder,\n customProps = _this$props.customProps,\n minProximity = _this$props.minProximity,\n maxProximity = _this$props.maxProximity,\n optionTextBefore = _this$props.optionTextBefore,\n readonly = _this$props.readonly;\n var settings = config.settings,\n widgets = config.widgets,\n ctx = config.ctx;\n var defaultProximity = defaults ? defaults.proximity : undefined;\n var showLabels = settings.showLabels;\n var selectedProximity = options.get(\"proximity\", defaultProximity);\n var proxValues = range(minProximity, maxProximity + 1).map(function (item) {\n return {\n title: item,\n value: item\n };\n });\n var factory = widgets.select.factory;\n var Select = function Select(props) {\n return factory(props, ctx);\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"operator--PROXIMITY\"\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"operator--options\"\n }, showLabels && /*#__PURE__*/React.createElement(\"label\", {\n className: \"rule--label\"\n }, optionLabel), !showLabels && optionTextBefore && /*#__PURE__*/React.createElement(\"div\", {\n className: \"operator--options--sep\"\n }, /*#__PURE__*/React.createElement(\"span\", null, optionTextBefore)), /*#__PURE__*/React.createElement(Select, _extends({\n config: config,\n value: selectedProximity,\n listValues: proxValues,\n setValue: this.handleChange,\n readonly: readonly,\n placeholder: optionPlaceholder\n }, customProps))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"operator--widgets\"\n }, this.props.children));\n }\n }]);\n return Proximity;\n}(PureComponent);\nProximity.propTypes = {\n config: PropTypes.object.isRequired,\n setOption: PropTypes.func.isRequired,\n options: PropTypes.any.isRequired,\n //instanceOf(Immutable.Map)\n minProximity: PropTypes.number,\n maxProximity: PropTypes.number,\n optionPlaceholder: PropTypes.string,\n optionTextBefore: PropTypes.string,\n optionLabel: PropTypes.string,\n customProps: PropTypes.object,\n readonly: PropTypes.bool\n //children\n};\nProximity.defaultProps = {\n customProps: {},\n minProximity: 2,\n maxProximity: 10,\n optionPlaceholder: \"Select words between\",\n optionLabel: \"Words between\",\n optionTextBefore: null\n};\nexport { Proximity as default };","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React from \"react\";\nimport * as Widgets from \"../components/widgets\";\nimport * as CustomOperators from \"../components/operators\";\nimport { CoreConfig, Utils } from \"@react-awesome-query-builder/core\";\n\n//---------------------------- conjunctions\n\nvar conjunctions = _objectSpread({}, CoreConfig.conjunctions);\n\n//---------------------------- operators\n\nvar operators = _objectSpread(_objectSpread({}, CoreConfig.operators), {}, {\n proximity: _objectSpread(_objectSpread({}, CoreConfig.operators.proximity), {}, {\n options: _objectSpread(_objectSpread({}, CoreConfig.operators.proximity.options), {}, {\n factory: function factory(props, _ref) {\n var RCE = _ref.RCE,\n ProximityOperator = _ref.O.ProximityOperator;\n return RCE(ProximityOperator, props);\n }\n })\n })\n});\n\n//---------------------------- widgets\n\nvar widgets = {\n text: _objectSpread(_objectSpread({}, CoreConfig.widgets.text), {}, {\n factory: function factory(props, _ref2) {\n var RCE = _ref2.RCE,\n VanillaTextWidget = _ref2.W.VanillaTextWidget;\n return RCE(VanillaTextWidget, props);\n }\n }),\n textarea: _objectSpread(_objectSpread({}, CoreConfig.widgets.textarea), {}, {\n factory: function factory(props, _ref3) {\n var RCE = _ref3.RCE,\n VanillaTextAreaWidget = _ref3.W.VanillaTextAreaWidget;\n return RCE(VanillaTextAreaWidget, props);\n }\n }),\n number: _objectSpread(_objectSpread({}, CoreConfig.widgets.number), {}, {\n factory: function factory(props, _ref4) {\n var RCE = _ref4.RCE,\n VanillaNumberWidget = _ref4.W.VanillaNumberWidget;\n return RCE(VanillaNumberWidget, props);\n }\n }),\n slider: _objectSpread(_objectSpread({}, CoreConfig.widgets.slider), {}, {\n factory: function factory(props, _ref5) {\n var RCE = _ref5.RCE,\n VanillaSliderWidget = _ref5.W.VanillaSliderWidget;\n return RCE(VanillaSliderWidget, props);\n }\n }),\n select: _objectSpread(_objectSpread({}, CoreConfig.widgets.select), {}, {\n factory: function factory(props, _ref6) {\n var RCE = _ref6.RCE,\n VanillaSelectWidget = _ref6.W.VanillaSelectWidget;\n return RCE(VanillaSelectWidget, props);\n }\n }),\n multiselect: _objectSpread(_objectSpread({}, CoreConfig.widgets.multiselect), {}, {\n factory: function factory(props, _ref7) {\n var RCE = _ref7.RCE,\n VanillaMultiSelectWidget = _ref7.W.VanillaMultiSelectWidget;\n return RCE(VanillaMultiSelectWidget, props);\n }\n }),\n date: _objectSpread(_objectSpread({}, CoreConfig.widgets.date), {}, {\n factory: function factory(props, _ref8) {\n var RCE = _ref8.RCE,\n VanillaDateWidget = _ref8.W.VanillaDateWidget;\n return RCE(VanillaDateWidget, props);\n }\n }),\n time: _objectSpread(_objectSpread({}, CoreConfig.widgets.time), {}, {\n factory: function factory(props, _ref9) {\n var RCE = _ref9.RCE,\n VanillaTimeWidget = _ref9.W.VanillaTimeWidget;\n return RCE(VanillaTimeWidget, props);\n }\n }),\n datetime: _objectSpread(_objectSpread({}, CoreConfig.widgets.datetime), {}, {\n factory: function factory(props, _ref10) {\n var RCE = _ref10.RCE,\n VanillaDateTimeWidget = _ref10.W.VanillaDateTimeWidget;\n return RCE(VanillaDateTimeWidget, props);\n }\n }),\n \"boolean\": _objectSpread(_objectSpread({}, CoreConfig.widgets[\"boolean\"]), {}, {\n factory: function factory(props, _ref11) {\n var RCE = _ref11.RCE,\n VanillaBooleanWidget = _ref11.W.VanillaBooleanWidget;\n return RCE(VanillaBooleanWidget, props);\n }\n }),\n field: _objectSpread(_objectSpread({}, CoreConfig.widgets.field), {}, {\n factory: function factory(props, _ref12) {\n var RCE = _ref12.RCE,\n ValueFieldWidget = _ref12.W.ValueFieldWidget;\n return RCE(ValueFieldWidget, props);\n },\n customProps: {\n showSearch: true\n }\n }),\n func: _objectSpread(_objectSpread({}, CoreConfig.widgets.func), {}, {\n factory: function factory(props, _ref13) {\n var RCE = _ref13.RCE,\n FuncWidget = _ref13.W.FuncWidget;\n return RCE(FuncWidget, props);\n },\n customProps: {\n //showSearch: true\n }\n }),\n case_value: _objectSpread(_objectSpread({}, CoreConfig.widgets.case_value), {}, {\n // simple text value\n factory: function factory(props, _ref14) {\n var RCE = _ref14.RCE,\n VanillaTextWidget = _ref14.W.VanillaTextWidget;\n return RCE(VanillaTextWidget, props);\n }\n })\n};\n\n//---------------------------- types\n\nvar types = _objectSpread(_objectSpread({}, CoreConfig.types), {}, {\n select: _objectSpread(_objectSpread({}, CoreConfig.types.select), {}, {\n widgets: _objectSpread(_objectSpread({}, CoreConfig.types.select.widgets), {}, {\n select: _objectSpread(_objectSpread({}, CoreConfig.types.select.widgets.select), {}, {\n widgetProps: {\n customProps: {\n showSearch: true\n }\n }\n })\n })\n })\n});\n\n//---------------------------- settings\n\nvar settings = _objectSpread(_objectSpread({}, CoreConfig.settings), {}, {\n renderField: function renderField(props, _ref15) {\n var RCE = _ref15.RCE,\n VanillaFieldSelect = _ref15.W.VanillaFieldSelect;\n return RCE(VanillaFieldSelect, props);\n },\n renderOperator: function renderOperator(props, _ref16) {\n var RCE = _ref16.RCE,\n VanillaFieldSelect = _ref16.W.VanillaFieldSelect;\n return RCE(VanillaFieldSelect, props);\n },\n renderFunc: function renderFunc(props, _ref17) {\n var RCE = _ref17.RCE,\n VanillaFieldSelect = _ref17.W.VanillaFieldSelect;\n return RCE(VanillaFieldSelect, props);\n },\n renderConjs: function renderConjs(props, _ref18) {\n var RCE = _ref18.RCE,\n VanillaConjs = _ref18.W.VanillaConjs;\n return RCE(VanillaConjs, props);\n },\n renderSwitch: function renderSwitch(props, _ref19) {\n var RCE = _ref19.RCE,\n VanillaSwitch = _ref19.W.VanillaSwitch;\n return RCE(VanillaSwitch, props);\n },\n renderButton: function renderButton(props, _ref20) {\n var RCE = _ref20.RCE,\n VanillaButton = _ref20.W.VanillaButton;\n return RCE(VanillaButton, props);\n },\n renderIcon: function renderIcon(props, _ref21) {\n var RCE = _ref21.RCE,\n VanillaIcon = _ref21.W.VanillaIcon;\n return RCE(VanillaIcon, props);\n },\n renderButtonGroup: function renderButtonGroup(props, _ref22) {\n var RCE = _ref22.RCE,\n VanillaButtonGroup = _ref22.W.VanillaButtonGroup;\n return RCE(VanillaButtonGroup, props);\n },\n renderProvider: function renderProvider(props, _ref23) {\n var RCE = _ref23.RCE,\n VanillaProvider = _ref23.W.VanillaProvider;\n return RCE(VanillaProvider, props);\n },\n renderValueSources: function renderValueSources(props, _ref24) {\n var RCE = _ref24.RCE,\n VanillaValueSources = _ref24.W.VanillaValueSources;\n return RCE(VanillaValueSources, props);\n },\n renderFieldSources: function renderFieldSources(props, _ref25) {\n var RCE = _ref25.RCE,\n VanillaValueSources = _ref25.W.VanillaValueSources;\n return RCE(VanillaValueSources, props);\n },\n renderConfirm: function renderConfirm(props, _ref26) {\n var vanillaConfirm = _ref26.W.vanillaConfirm;\n return vanillaConfirm(props);\n },\n renderSwitchPrefix: \"Conditions\",\n customFieldSelectProps: {\n showSearch: true\n },\n defaultSliderWidth: \"200px\",\n defaultSelectWidth: \"200px\",\n defaultSearchWidth: \"100px\",\n defaultMaxRows: 5,\n renderSize: \"small\",\n maxLabelsLength: 100,\n showLock: false,\n showNot: true,\n forceShowConj: false,\n groupActionsPosition: \"topRight\" // oneOf [topLeft, topCenter, topRight, bottomLeft, bottomCenter, bottomRight]\n});\n\n//----------------------------\n\nvar ctx = _objectSpread(_objectSpread({}, CoreConfig.ctx), {}, {\n W: _objectSpread({}, Widgets),\n O: _objectSpread({}, CustomOperators),\n RCE: function RCE(C, P) {\n return /*#__PURE__*/React.createElement(C, P);\n }\n});\n\n//----------------------------\n\nvar config = {\n conjunctions: conjunctions,\n operators: operators,\n widgets: widgets,\n types: types,\n settings: settings,\n ctx: ctx\n};\nconfig = Utils.ConfigMixins.removeMixins(config, [\"rangeslider\", \"treeselect\", \"treemultiselect\"]);\nexport default config;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport React from \"react\";\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport debounce from \"lodash/debounce\";\nvar _Utils$Autocomplete = Utils.Autocomplete,\n mergeListValues = _Utils$Autocomplete.mergeListValues,\n listValueToOption = _Utils$Autocomplete.listValueToOption,\n optionToListValue = _Utils$Autocomplete.optionToListValue,\n optionsToListValues = _Utils$Autocomplete.optionsToListValues,\n fixListValuesGroupOrder = _Utils$Autocomplete.fixListValuesGroupOrder;\nvar _Utils$ListUtils = Utils.ListUtils,\n mapListValues = _Utils$ListUtils.mapListValues,\n listValuesToArray = _Utils$ListUtils.listValuesToArray,\n getListValue = _Utils$ListUtils.getListValue,\n makeCustomListValue = _Utils$ListUtils.makeCustomListValue,\n searchListValue = _Utils$ListUtils.searchListValue,\n getItemInListValues = _Utils$ListUtils.getItemInListValues;\nfunction sleep(delay) {\n return new Promise(function (resolve) {\n setTimeout(resolve, delay);\n });\n}\nvar useListValuesAutocomplete = function useListValuesAutocomplete(_ref, _ref2) {\n var asyncFetch = _ref.asyncFetch,\n useLoadMore = _ref.useLoadMore,\n useAsyncSearch = _ref.useAsyncSearch,\n forceAsyncSearch = _ref.forceAsyncSearch,\n selectedAsyncListValues = _ref.asyncListValues,\n staticListValues = _ref.listValues,\n allowCustomValues = _ref.allowCustomValues,\n selectedValue = _ref.value,\n setValue = _ref.setValue,\n placeholder = _ref.placeholder,\n config = _ref.config;\n var debounceTimeout = _ref2.debounceTimeout,\n multiple = _ref2.multiple,\n uif = _ref2.uif;\n var knownSpecialValues = [\"LOAD_MORE\", \"LOADING_MORE\"];\n var loadMoreTitle = \"Load more...\";\n var loadingMoreTitle = \"Loading more...\";\n var aPlaceholder = forceAsyncSearch ? \"Type to search\" : placeholder;\n\n // state\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n open = _React$useState2[0],\n setOpen = _React$useState2[1];\n var _React$useState3 = React.useState(undefined),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n asyncFetchMeta = _React$useState4[0],\n setAsyncFetchMeta = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n loadingCnt = _React$useState6[0],\n setLoadingCnt = _React$useState6[1];\n var _React$useState7 = React.useState(false),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n isLoadingMore = _React$useState8[0],\n setIsLoadingMore = _React$useState8[1];\n var _React$useState9 = React.useState(\"\"),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n inputValue = _React$useState10[0],\n setInputValue = _React$useState10[1];\n var _React$useState11 = React.useState(undefined),\n _React$useState12 = _slicedToArray(_React$useState11, 2),\n asyncListValues = _React$useState12[0],\n setAsyncListValues = _React$useState12[1];\n\n // ref\n var asyncFectchCnt = React.useRef(0);\n var componentIsMounted = React.useRef(0);\n var isSelectedLoadMore = React.useRef(false);\n\n // compute\n var nSelectedAsyncListValues = listValuesToArray(selectedAsyncListValues);\n var listValues = asyncFetch ? selectedAsyncListValues ? mergeListValues(asyncListValues, nSelectedAsyncListValues, true) : asyncListValues : staticListValues;\n var listValuesToDisplay = asyncFetch ? asyncListValues : staticListValues;\n if (allowCustomValues && inputValue && !searchListValue(inputValue, asyncListValues)) {\n listValuesToDisplay = mergeListValues(listValuesToDisplay, [makeCustomListValue(inputValue)], true);\n }\n if (asyncFetch && !asyncListValues && selectedAsyncListValues && !inputValue && !open && uif === \"antd\") {\n // for initial loading, to resolve \"a\" -> \"A\"\n listValuesToDisplay = listValues;\n }\n if (asyncFetch && !allowCustomValues && selectedAsyncListValues && uif === \"mui\") {\n // to prevent warning, when select A, search E -> A is missing in options\n // MUI: The value provided to Autocomplete is invalid.\n // None of the options match with `\"a\"`.\n // You can use the `isOptionEqualToValue` prop to customize the equality test.\n listValuesToDisplay = mergeListValues(listValuesToDisplay, nSelectedAsyncListValues, true, true);\n }\n //const isDirtyInitialListValues = asyncListValues == undefined && selectedAsyncListValues && selectedAsyncListValues.length && typeof selectedAsyncListValues[0] != \"object\";\n var isLoading = loadingCnt > 0;\n var canInitialLoad = open && asyncFetch && asyncListValues === undefined && (forceAsyncSearch ? inputValue : true);\n var isInitialLoading = canInitialLoad && isLoading;\n var canLoadMore = !isInitialLoading && listValues && listValues.length > 0 && asyncFetchMeta && asyncFetchMeta.hasMore && (asyncFetchMeta.filter || \"\") === inputValue;\n var canShowLoadMore = !isLoading && canLoadMore;\n var options = mapListValues(listValuesToDisplay, listValueToOption);\n var hasValue = selectedValue != null;\n var selectedListValue = !multiple && hasValue ? getListValue(selectedValue, listValues) : null;\n // const selectedListValues = multiple && hasValue ? selectedValue.map(v => getItemInListValues(listValues, v)) : [];\n\n // fetch\n var fetchListValues = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var filter,\n isLoadMore,\n offset,\n meta,\n newAsyncFetchCnt,\n res,\n isFetchCancelled,\n _ref4,\n values,\n hasMore,\n newMeta,\n nValues,\n assumeHasMore,\n newValues,\n realNewMeta,\n _args = arguments;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n filter = _args.length > 0 && _args[0] !== undefined ? _args[0] : null;\n isLoadMore = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;\n // clear obsolete meta\n if (!isLoadMore && asyncFetchMeta) {\n setAsyncFetchMeta(undefined);\n }\n offset = isLoadMore && asyncListValues ? asyncListValues.length : 0;\n meta = isLoadMore && asyncFetchMeta || !useLoadMore && {\n pageSize: 0\n };\n newAsyncFetchCnt = ++asyncFectchCnt.current;\n _context.next = 8;\n return asyncFetch.call(config === null || config === void 0 ? void 0 : config.ctx, filter, offset, meta);\n case 8:\n res = _context.sent;\n isFetchCancelled = asyncFectchCnt.current != newAsyncFetchCnt;\n if (!(isFetchCancelled || !componentIsMounted.current)) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\", null);\n case 12:\n _ref4 = res !== null && res !== void 0 && res.values ? res : {\n values: res\n }, values = _ref4.values, hasMore = _ref4.hasMore, newMeta = _ref4.meta;\n nValues = listValuesToArray(values);\n if (isLoadMore) {\n newValues = mergeListValues(asyncListValues, nValues, false);\n assumeHasMore = newValues.length > asyncListValues.length;\n } else {\n newValues = nValues;\n if (useLoadMore) {\n assumeHasMore = newValues.length > 0;\n }\n }\n\n // save new meta\n realNewMeta = hasMore != null || newMeta != null || assumeHasMore != null ? _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, assumeHasMore != null ? {\n hasMore: assumeHasMore\n } : {}), hasMore != null ? {\n hasMore: hasMore\n } : {}), newMeta != null ? newMeta : {}), {}, {\n filter: filter\n }) : undefined;\n if (realNewMeta) {\n setAsyncFetchMeta(realNewMeta);\n }\n return _context.abrupt(\"return\", newValues);\n case 18:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function fetchListValues() {\n return _ref3.apply(this, arguments);\n };\n }();\n var loadListValues = /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var filter,\n isLoadMore,\n list,\n _args2 = arguments;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n filter = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : null;\n isLoadMore = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : false;\n setLoadingCnt(function (x) {\n return x + 1;\n });\n setIsLoadingMore(isLoadMore);\n _context2.next = 6;\n return fetchListValues(filter, isLoadMore);\n case 6:\n list = _context2.sent;\n if (componentIsMounted.current) {\n _context2.next = 9;\n break;\n }\n return _context2.abrupt(\"return\");\n case 9:\n if (list != null) {\n // tip: null can be used for reject (eg, if user don't want to filter by input)\n setAsyncListValues(list);\n }\n setLoadingCnt(function (x) {\n return x - 1;\n });\n setIsLoadingMore(false);\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function loadListValues() {\n return _ref5.apply(this, arguments);\n };\n }();\n var loadListValuesDebounced = React.useCallback(debounce(loadListValues, debounceTimeout), []);\n React.useEffect(function () {\n componentIsMounted.current++;\n // Initial loading\n if (canInitialLoad && loadingCnt == 0 && asyncFectchCnt.current == 0) {\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return loadListValues();\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }))();\n }\n // Unmount\n return function () {\n componentIsMounted.current--;\n };\n }, [canInitialLoad]);\n\n // Event handlers\n var onOpen = function onOpen() {\n setOpen(true);\n };\n var onClose = /*#__PURE__*/function () {\n var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(_e) {\n var isLoadMoreClick, resetValue;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n isLoadMoreClick = isSelectedLoadMore.current;\n if (isLoadMoreClick) {\n isSelectedLoadMore.current = false;\n if (multiple) {\n // required for MUI\n setOpen(false);\n }\n } else {\n setOpen(false);\n }\n if (!(uif === \"mui\" && !isLoadMoreClick)) {\n _context4.next = 6;\n break;\n }\n // parity with Antd\n resetValue = \"\";\n _context4.next = 6;\n return onInputChange(null, resetValue, \"my-reset\");\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function onClose(_x) {\n return _ref7.apply(this, arguments);\n };\n }();\n var onDropdownVisibleChange = function onDropdownVisibleChange(open) {\n if (open) {\n onOpen();\n } else {\n onClose();\n }\n };\n var isSpecialValue = function isSpecialValue(option) {\n var specialValue = (option === null || option === void 0 ? void 0 : option.specialValue) || (option === null || option === void 0 ? void 0 : option.value);\n return knownSpecialValues.includes(specialValue);\n };\n var onChange = /*#__PURE__*/function () {\n var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(e, val, option) {\n var _option2;\n var isClearingAll, isClearingInput, _option$value, _option, specialValue, shouldIgnore, isAddingCustomOptionFromSearch, _optionsToListValues, _optionsToListValues2, newSelectedValues, newSelectedListValues, _optionToListValue, _optionToListValue2, v, lvs;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n // todo: don't rely on 3rd param. check MUI 6\n isClearingAll = multiple && uif === \"mui\" && option === \"clear\"; // if user removes all chars in search, don't clear selected value\n isClearingInput = !multiple && uif === \"mui\" && option === \"clear\" && (e === null || e === void 0 ? void 0 : e.type) === \"change\";\n if (uif === \"mui\") {\n option = val;\n if (multiple) {\n val = option.map(function (o) {\n var _o$value;\n return (_o$value = o === null || o === void 0 ? void 0 : o.value) !== null && _o$value !== void 0 ? _o$value : o;\n });\n } else {\n val = (_option$value = (_option = option) === null || _option === void 0 ? void 0 : _option.value) !== null && _option$value !== void 0 ? _option$value : option;\n }\n }\n specialValue = multiple && Array.isArray(option) && option.map(function (opt) {\n return opt === null || opt === void 0 ? void 0 : opt.specialValue;\n }).find(function (v) {\n return !!v;\n }) || ((_option2 = option) === null || _option2 === void 0 ? void 0 : _option2.specialValue);\n if (multiple && val && !Array.isArray(val)) {\n val = [].concat(_toConsumableArray(selectedValue || []), [val]);\n option = null;\n }\n // if there are tags AND input and select is opened, clear input first\n shouldIgnore = isClearingAll && val.length === 0 && inputValue && open || isClearingInput;\n if (!shouldIgnore) {\n _context5.next = 8;\n break;\n }\n return _context5.abrupt(\"return\");\n case 8:\n isAddingCustomOptionFromSearch = multiple && val.length && val.length > (selectedValue || []).length && val[val.length - 1] == inputValue && !getListValue(inputValue, asyncListValues);\n if (!(specialValue == \"LOAD_MORE\")) {\n _context5.next = 16;\n break;\n }\n setInputValue(inputValue);\n isSelectedLoadMore.current = true;\n _context5.next = 14;\n return loadListValues(inputValue, true);\n case 14:\n _context5.next = 32;\n break;\n case 16:\n if (!(specialValue == \"LOADING_MORE\")) {\n _context5.next = 20;\n break;\n }\n isSelectedLoadMore.current = true;\n _context5.next = 32;\n break;\n case 20:\n if (!multiple) {\n _context5.next = 30;\n break;\n }\n _optionsToListValues = optionsToListValues(val, listValues, allowCustomValues), _optionsToListValues2 = _slicedToArray(_optionsToListValues, 2), newSelectedValues = _optionsToListValues2[0], newSelectedListValues = _optionsToListValues2[1];\n setValue(newSelectedValues, asyncFetch ? newSelectedListValues : undefined);\n if (!isAddingCustomOptionFromSearch) {\n _context5.next = 28;\n break;\n }\n _context5.next = 26;\n return sleep(0);\n case 26:\n _context5.next = 28;\n return onInputChange(null, \"\", \"my-reset\");\n case 28:\n _context5.next = 32;\n break;\n case 30:\n _optionToListValue = optionToListValue(val, listValues, allowCustomValues), _optionToListValue2 = _slicedToArray(_optionToListValue, 2), v = _optionToListValue2[0], lvs = _optionToListValue2[1];\n setValue(v, asyncFetch ? lvs : undefined);\n case 32:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return function onChange(_x2, _x3, _x4) {\n return _ref8.apply(this, arguments);\n };\n }();\n var onInputChange = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(e, newInputValue, eventType) {\n var shouldIgnore, val, canSearchAsync;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n // eventType=reset used by MUI on:\n // - (single) initial set, select option - e = null, newInputValue = selected (+1 call before with e != null)\n // - (single/multi, -ACV) blur - e != null, newInputValue = ''\n // - (multiple v5, -ACV) blur - e = null, newInputValue = '' # unwanted\n // - (multiple) select option - e != null, newInputValue = ''\n // - (multiple v4) delete tag while searching - e = null, newInputValue = '' # unwanted\n // - (multiple v4) select option while searching - e = null, newInputValue = '' # unwanted\n shouldIgnore = uif === \"mui\" && eventType === \"reset\";\n val = newInputValue;\n if (!(val === loadMoreTitle || val === loadingMoreTitle || shouldIgnore)) {\n _context6.next = 4;\n break;\n }\n return _context6.abrupt(\"return\");\n case 4:\n if (!(newInputValue != inputValue)) {\n _context6.next = 13;\n break;\n }\n setInputValue(val);\n canSearchAsync = useAsyncSearch && (forceAsyncSearch ? !!val : true);\n if (!canSearchAsync) {\n _context6.next = 12;\n break;\n }\n _context6.next = 10;\n return loadListValuesDebounced(val);\n case 10:\n _context6.next = 13;\n break;\n case 12:\n if (useAsyncSearch && forceAsyncSearch) {\n setAsyncListValues([]);\n }\n case 13:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return function onInputChange(_x5, _x6, _x7) {\n return _ref9.apply(this, arguments);\n };\n }();\n\n // Options\n var extendOptions = function extendOptions(options) {\n var filtered = _toConsumableArray(options);\n if (useLoadMore) {\n if (canShowLoadMore) {\n filtered.push({\n specialValue: \"LOAD_MORE\",\n title: loadMoreTitle\n });\n } else if (isLoadingMore) {\n filtered.push({\n specialValue: \"LOADING_MORE\",\n title: loadingMoreTitle,\n disabled: true\n });\n }\n }\n return filtered;\n };\n var getOptionSelected = function getOptionSelected(option, valueOrOption) {\n if (valueOrOption == null) return null;\n var selectedValue = valueOrOption.value != undefined ? valueOrOption.value : valueOrOption;\n return option.value === selectedValue;\n };\n var getOptionDisabled = function getOptionDisabled(valueOrOption) {\n return valueOrOption && valueOrOption.disabled;\n };\n var getOptionIsCustom = function getOptionIsCustom(valueOrOption) {\n var _valueOrOption$value;\n if (valueOrOption !== null && valueOrOption !== void 0 && valueOrOption.isCustom) return true;\n var val = (_valueOrOption$value = valueOrOption === null || valueOrOption === void 0 ? void 0 : valueOrOption.value) !== null && _valueOrOption$value !== void 0 ? _valueOrOption$value : valueOrOption;\n var lv = getListValue(val, listValues);\n return (lv === null || lv === void 0 ? void 0 : lv.isCustom) || false;\n };\n var getOptionLabel = function getOptionLabel(valueOrOption) {\n if (valueOrOption == null) return null;\n var option = valueOrOption.value != undefined ? valueOrOption : listValueToOption(getListValue(valueOrOption, listValues));\n if (!option && valueOrOption.specialValue) {\n // special last 'Load more...' item\n return valueOrOption.title;\n }\n if (!option && allowCustomValues) {\n // there is just string value, it's not item from list\n return valueOrOption;\n }\n if (!option) {\n // weird\n return valueOrOption;\n }\n return option.title || option.label || option.value; // fallback to value\n };\n\n var fixedOptions = uif === \"mui\" ? fixListValuesGroupOrder(options) : options;\n return {\n options: fixedOptions,\n listValues: listValues,\n hasValue: hasValue,\n selectedListValue: selectedListValue,\n open: open,\n onOpen: onOpen,\n onClose: onClose,\n onDropdownVisibleChange: onDropdownVisibleChange,\n onChange: onChange,\n inputValue: inputValue,\n onInputChange: onInputChange,\n canShowLoadMore: canShowLoadMore,\n isInitialLoading: isInitialLoading,\n isLoading: isLoading,\n isLoadingMore: isLoadingMore,\n isSpecialValue: isSpecialValue,\n extendOptions: extendOptions,\n getOptionSelected: getOptionSelected,\n getOptionDisabled: getOptionDisabled,\n getOptionIsCustom: getOptionIsCustom,\n getOptionLabel: getOptionLabel,\n aPlaceholder: aPlaceholder\n };\n};\nexport default useListValuesAutocomplete;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nimport { Utils } from \"@react-awesome-query-builder/core\";\nimport * as ReactUtils from \"./reactUtils\";\nimport { DragIcon } from \"../components/utils\";\nexport default _objectSpread(_objectSpread({}, Utils), {}, {\n ReactUtils: ReactUtils,\n DragIcon: DragIcon\n});","import {\n AnyObject,\n BasicConfig,\n Config,\n JsonTree,\n Operator,\n Settings,\n SimpleField,\n SqlFormatOperator,\n Utils,\n ValueSource,\n Widgets,\n} from '@react-awesome-query-builder/ui';\nimport { List } from 'immutable';\nimport { isString } from 'lodash';\nimport React from 'react';\n\nimport { dateTime, toOption } from '@grafana/data';\nimport { Button, DateTimePicker, Input, Select } from '@grafana/ui';\n\nconst buttonLabels = {\n add: 'Add',\n remove: 'Remove',\n};\n\nexport const emptyInitTree: JsonTree = {\n id: Utils.uuid(),\n type: 'group',\n};\n\nconst TIME_FILTER = 'timeFilter';\nconst macros = [TIME_FILTER];\n\n// Widgets are the components rendered for each field type see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configwidgets\nexport const widgets: Widgets = {\n ...BasicConfig.widgets,\n text: {\n ...BasicConfig.widgets.text,\n factory: function TextInput(props) {\n return (\n <Input\n value={props?.value || ''}\n placeholder={props?.placeholder}\n onChange={(e) => props?.setValue(e.currentTarget.value)}\n />\n );\n },\n },\n number: {\n ...BasicConfig.widgets.number,\n factory: function NumberInput(props) {\n return (\n <Input\n value={props?.value}\n placeholder={props?.placeholder}\n type=\"number\"\n onChange={(e) => props?.setValue(Number.parseInt(e.currentTarget.value, 10))}\n />\n );\n },\n },\n datetime: {\n ...BasicConfig.widgets.datetime,\n factory: function DateTimeInput(props) {\n if (props?.operator === Op.MACROS) {\n return (\n <Select\n id={props.id}\n aria-label=\"Macros value selector\"\n menuShouldPortal\n options={macros.map(toOption)}\n value={props?.value}\n onChange={(val) => props.setValue(val.value)}\n />\n );\n }\n const dateValue = dateTime(props?.value).isValid() ? dateTime(props?.value).utc() : undefined;\n return (\n <DateTimePicker\n onChange={(e) => {\n props?.setValue(e.format(BasicConfig.widgets.datetime.valueFormat));\n }}\n date={dateValue}\n />\n );\n },\n // Function for formatting widget’s value in SQL WHERE query.\n sqlFormatValue: (val, field, widget, operator, operatorDefinition, rightFieldDef) => {\n if (operator === Op.MACROS) {\n if (macros.includes(val)) {\n return val;\n }\n return undefined;\n }\n\n // This is just satisfying the type checker, this should never happen\n if (\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'string' ||\n typeof BasicConfig.widgets.datetime.sqlFormatValue === 'object'\n ) {\n return undefined;\n }\n const func = BasicConfig.widgets.datetime.sqlFormatValue;\n // We need to pass the ctx to this function this way so *this* is correct\n return func?.call(BasicConfig.ctx, val, field, widget, operator, operatorDefinition, rightFieldDef) || '';\n },\n },\n};\n\n// Settings are the configuration options for the query builder see the docs for more info\n// https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc#configsettings\nexport const settings: Settings = {\n ...BasicConfig.settings,\n canRegroup: false,\n maxNesting: 1,\n canReorder: false,\n showNot: false,\n addRuleLabel: buttonLabels.add,\n deleteLabel: buttonLabels.remove,\n // This is the component that renders conjunctions (logical operators)\n renderConjs: function Conjunctions(conjProps) {\n return (\n <Select\n id={conjProps?.id}\n aria-label=\"Conjunction\"\n menuShouldPortal\n options={conjProps?.conjunctionOptions ? Object.keys(conjProps?.conjunctionOptions).map(toOption) : undefined}\n value={conjProps?.selectedConjunction}\n onChange={(val) => conjProps?.setConjunction(val.value!)}\n />\n );\n },\n // This is the component that renders fields\n renderField: function Field(fieldProps) {\n const fields = fieldProps?.config?.fields || {};\n return (\n <Select\n id={fieldProps?.id}\n width={25}\n aria-label=\"Field\"\n menuShouldPortal\n options={fieldProps?.items.map((f) => {\n // @ts-ignore\n const icon = fields[f.key].mainWidgetProps?.customProps?.icon;\n return {\n label: f.label,\n value: f.key,\n icon,\n };\n })}\n value={fieldProps?.selectedKey}\n onChange={(val) => {\n fieldProps?.setField(val.label!);\n }}\n />\n );\n },\n // This is the component used for the Add/Remove buttons\n renderButton: function RAQBButton(buttonProps) {\n return (\n <Button\n type=\"button\"\n title={`${buttonProps?.label} filter`}\n onClick={buttonProps?.onClick}\n variant=\"secondary\"\n size=\"md\"\n icon={buttonProps?.label === buttonLabels.add ? 'plus' : 'times'}\n />\n );\n },\n // This is the component used for the fields operator selector\n renderOperator: function Operator(operatorProps) {\n return (\n <Select\n options={operatorProps?.items.map((op) => ({ label: op.label, value: op.key }))}\n aria-label=\"Operator\"\n menuShouldPortal\n value={operatorProps?.selectedKey}\n onChange={(val) => {\n operatorProps?.setField(val.value || '');\n }}\n />\n );\n },\n};\n\n// add IN / NOT IN operators to text to support multi-value variables\nconst enum Op {\n IN = 'select_any_in',\n NOT_IN = 'select_not_any_in',\n MACROS = 'macros',\n}\nconst customOperators = getCustomOperators(BasicConfig);\nconst textWidget = BasicConfig.types.text.widgets.text;\nconst opers = [...(textWidget.operators || []), Op.IN, Op.NOT_IN];\nconst customTextWidget = {\n ...textWidget,\n operators: opers,\n};\n\nconst customTypes = {\n ...BasicConfig.types,\n text: {\n ...BasicConfig.types.text,\n widgets: {\n ...BasicConfig.types.text.widgets,\n text: customTextWidget,\n },\n },\n datetime: {\n ...BasicConfig.types.datetime,\n widgets: {\n ...BasicConfig.types.datetime.widgets,\n datetime: {\n ...BasicConfig.types.datetime.widgets.datetime,\n operators: [Op.MACROS, ...(BasicConfig.types.datetime.widgets.datetime.operators || [])],\n },\n },\n },\n};\n\n// This is the configuration for the query builder that doesn't include the fields but all the other configuration for the UI\n// Fields should be added dynamically based on returned data\n// See the doc for more info https://github.com/ukrbublik/react-awesome-query-builder/blob/master/CONFIG.adoc\nexport const raqbConfig: Config = {\n ...BasicConfig,\n widgets,\n settings,\n operators: customOperators,\n types: customTypes,\n};\n\nexport type { Config };\n\nconst noop = () => '';\n\nconst isSqlFormatOp = (func: unknown): func is SqlFormatOperator => {\n return typeof func === 'function';\n};\n\nfunction getCustomOperators(config: BasicConfig) {\n const { ...supportedOperators } = config.operators;\n\n // IN operator expects array, override IN formatter for multi-value variables\n const sqlFormatInOpOrNoop = () => {\n const sqlFormatOp = supportedOperators[Op.IN].sqlFormatOp;\n if (isSqlFormatOp(sqlFormatOp)) {\n return sqlFormatOp;\n }\n return noop;\n };\n\n const customSqlInFormatter = (\n field: string,\n op: string,\n value: string | List<string>,\n valueSrc: ValueSource,\n valueType: string,\n opDef: Operator,\n operatorOptions: AnyObject,\n fieldDef: SimpleField\n ) => {\n return sqlFormatInOpOrNoop()(\n field,\n op,\n splitIfString(value),\n valueSrc,\n valueType,\n opDef,\n operatorOptions,\n fieldDef\n );\n };\n // NOT IN operator expects array, override NOT IN formatter for multi-value variables\n const sqlFormatNotInOpOrNoop = () => {\n const sqlFormatOp = supportedOperators[Op.NOT_IN].sqlFormatOp;\n if (isSqlFormatOp(sqlFormatOp)) {\n return sqlFormatOp;\n }\n return noop;\n };\n\n const customSqlNotInFormatter = (\n field: string,\n op: string,\n value: string | List<string>,\n valueSrc: ValueSource,\n valueType: string,\n opDef: Operator,\n operatorOptions: AnyObject,\n fieldDef: SimpleField\n ) => {\n return sqlFormatNotInOpOrNoop()(\n field,\n op,\n splitIfString(value),\n valueSrc,\n valueType,\n opDef,\n operatorOptions,\n fieldDef\n );\n };\n\n const customOperators = {\n ...supportedOperators,\n [Op.IN]: {\n ...supportedOperators[Op.IN],\n sqlFormatOp: customSqlInFormatter,\n },\n [Op.NOT_IN]: {\n ...supportedOperators[Op.NOT_IN],\n sqlFormatOp: customSqlNotInFormatter,\n },\n [Op.MACROS]: {\n label: 'Macros',\n sqlFormatOp: (field: string, _operator: string, value: string | List<string>) => {\n if (value === TIME_FILTER) {\n return `$__timeFilter(${field})`;\n }\n return value;\n },\n },\n };\n\n return customOperators;\n}\n\n// value: string | List<string> but AQB uses a different version of Immutable\nfunction splitIfString(value: any) {\n if (isString(value)) {\n return value.split(',');\n }\n return value;\n}\n","import { injectGlobal } from '@emotion/css';\nimport { Builder, Config, ImmutableTree, Query, Utils } from '@react-awesome-query-builder/ui';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { SQLExpression } from '../../types';\n\nimport { emptyInitTree, raqbConfig } from './AwesomeQueryBuilder';\n\ninterface SQLBuilderWhereRowProps {\n sql: SQLExpression;\n onSqlChange: (sql: SQLExpression) => void;\n config?: Partial<Config>;\n}\n\nexport function WhereRow({ sql, config, onSqlChange }: SQLBuilderWhereRowProps) {\n const [tree, setTree] = useState<ImmutableTree>();\n const configWithDefaults = useMemo(() => ({ ...raqbConfig, ...config }), [config]);\n\n useEffect(() => {\n // Set the initial tree\n if (!tree) {\n const initTree = Utils.checkTree(Utils.loadTree(sql.whereJsonTree ?? emptyInitTree), configWithDefaults);\n setTree(initTree);\n }\n }, [configWithDefaults, sql.whereJsonTree, tree]);\n\n useEffect(() => {\n if (!sql.whereJsonTree) {\n setTree(Utils.checkTree(Utils.loadTree(emptyInitTree), configWithDefaults));\n }\n }, [configWithDefaults, sql.whereJsonTree]);\n\n const onTreeChange = useCallback(\n (changedTree: ImmutableTree, config: Config) => {\n setTree(changedTree);\n const newSql = {\n ...sql,\n whereJsonTree: Utils.getTree(changedTree),\n whereString: Utils.sqlFormat(changedTree, config),\n };\n\n onSqlChange(newSql);\n },\n [onSqlChange, sql]\n );\n\n if (!tree) {\n return null;\n }\n\n return (\n <Query\n {...configWithDefaults}\n value={tree}\n onChange={onTreeChange}\n renderBuilder={(props) => <Builder {...props} />}\n />\n );\n}\n\nfunction flex(direction: string) {\n return `\n display: flex;\n gap: 8px;\n flex-direction: ${direction};`;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\ninjectGlobal`\n .group--header {\n ${flex('row')}\n }\n\n .group-or-rule {\n ${flex('column')}\n .rule {\n flex-direction: row;\n }\n }\n\n .rule--body {\n ${flex('row')}\n }\n\n .group--children {\n ${flex('column')}\n }\n\n .group--conjunctions:empty {\n display: none;\n }\n`;\n","import React from 'react';\nimport useAsync from 'react-use/lib/useAsync';\n\nimport { SelectableValue, VariableWithMultiSupport } from '@grafana/data';\nimport { getTemplateSrv } from '@grafana/runtime';\n\nimport { QueryWithDefaults } from '../../defaults';\nimport { DB, SQLExpression, SQLQuery, SQLSelectableValue } from '../../types';\nimport { useSqlChange } from '../../utils/useSqlChange';\n\nimport { Config } from './AwesomeQueryBuilder';\nimport { WhereRow } from './WhereRow';\n\ninterface WhereRowProps {\n query: QueryWithDefaults;\n fields: SelectableValue[];\n onQueryChange: (query: SQLQuery) => void;\n db: DB;\n}\n\nexport function SQLWhereRow({ query, fields, onQueryChange, db }: WhereRowProps) {\n const state = useAsync(async () => {\n return mapFieldsToTypes(fields);\n }, [fields]);\n\n const { onSqlChange } = useSqlChange({ query, onQueryChange, db });\n\n return (\n <WhereRow\n // TODO: fix key that's used to force clean render or SQLWhereRow - otherwise it doesn't render operators correctly\n key={JSON.stringify(state.value)}\n config={{ fields: state.value || {} }}\n sql={query.sql!}\n onSqlChange={(val: SQLExpression) => {\n const templateVars = getTemplateSrv().getVariables() as VariableWithMultiSupport[];\n removeQuotesForMultiVariables(val, templateVars);\n\n onSqlChange(val);\n }}\n />\n );\n}\n\n// needed for awesome query builder\nfunction mapFieldsToTypes(columns: SQLSelectableValue[]) {\n const fields: Config['fields'] = {};\n for (const col of columns) {\n fields[col.value] = {\n type: col.raqbFieldType || 'text',\n valueSources: ['value'],\n mainWidgetProps: { customProps: { icon: col.icon } },\n };\n }\n return fields;\n}\n\nexport function removeQuotesForMultiVariables(val: SQLExpression, templateVars: VariableWithMultiSupport[]) {\n const multiVariableInWhereString = (tv: VariableWithMultiSupport) =>\n tv.multi && (val.whereString?.includes(`\\${${tv.name}}`) || val.whereString?.includes(`$${tv.name}`));\n\n if (templateVars.some((tv) => multiVariableInWhereString(tv))) {\n val.whereString = val.whereString?.replaceAll(\"')\", ')');\n val.whereString = val.whereString?.replaceAll(\"('\", '(');\n }\n}\n","import React from 'react';\nimport { useAsync } from 'react-use';\n\nimport { EditorRows, EditorRow, EditorField } from '@grafana/experimental';\n\nimport { DB, QueryEditorProps, QueryRowFilter } from '../../types';\nimport { QueryToolbox } from '../query-editor-raw/QueryToolbox';\n\nimport { Preview } from './Preview';\nimport { SQLGroupByRow } from './SQLGroupByRow';\nimport { SQLOrderByRow } from './SQLOrderByRow';\nimport { SQLSelectRow } from './SQLSelectRow';\nimport { SQLWhereRow } from './SQLWhereRow';\n\ninterface VisualEditorProps extends QueryEditorProps {\n db: DB;\n queryRowFilter: QueryRowFilter;\n onValidate: (isValid: boolean) => void;\n}\n\nexport const VisualEditor = ({ query, db, queryRowFilter, onChange, onValidate, range }: VisualEditorProps) => {\n const state = useAsync(async () => {\n const fields = await db.fields(query);\n return fields;\n }, [db, query.dataset, query.table]);\n\n return (\n <>\n <EditorRows>\n <EditorRow>\n <SQLSelectRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n </EditorRow>\n {queryRowFilter.filter && (\n <EditorRow>\n <EditorField label=\"Filter by column value\" optional>\n <SQLWhereRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n </EditorField>\n </EditorRow>\n )}\n {queryRowFilter.group && (\n <EditorRow>\n <EditorField label=\"Group by column\">\n <SQLGroupByRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n </EditorField>\n </EditorRow>\n )}\n {queryRowFilter.order && (\n <EditorRow>\n <SQLOrderByRow fields={state.value || []} query={query} onQueryChange={onChange} db={db} />\n </EditorRow>\n )}\n {queryRowFilter.preview && query.rawSql && (\n <EditorRow>\n <Preview rawSql={query.rawSql} datasourceType={query.datasource?.type} />\n </EditorRow>\n )}\n </EditorRows>\n <QueryToolbox db={db} query={query} onValidate={onValidate} range={range} />\n </>\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { useAsync } from 'react-use';\n\nimport { QueryEditorProps } from '@grafana/data';\nimport { EditorMode } from '@grafana/experimental';\nimport { Space } from '@grafana/ui';\n\nimport { SqlDatasource } from '../datasource/SqlDatasource';\nimport { applyQueryDefaults } from '../defaults';\nimport { SQLQuery, QueryRowFilter, SQLOptions } from '../types';\nimport { haveColumns } from '../utils/sql.utils';\n\nimport { QueryHeader, QueryHeaderProps } from './QueryHeader';\nimport { RawEditor } from './query-editor-raw/RawEditor';\nimport { VisualEditor } from './visual-query-builder/VisualEditor';\n\ninterface SqlQueryEditorProps extends QueryEditorProps<SqlDatasource, SQLQuery, SQLOptions> {\n queryHeaderProps?: Pick<QueryHeaderProps, 'dialect'>;\n}\n\nexport function SqlQueryEditor({\n datasource,\n query,\n onChange,\n onRunQuery,\n range,\n queryHeaderProps,\n}: SqlQueryEditorProps) {\n const [isQueryRunnable, setIsQueryRunnable] = useState(true);\n const db = datasource.getDB();\n\n const { preconfiguredDatabase } = datasource;\n const dialect = queryHeaderProps?.dialect ?? 'other';\n const { loading, error } = useAsync(async () => {\n return () => {\n if (datasource.getDB(datasource.id).init !== undefined) {\n datasource.getDB(datasource.id).init!();\n }\n };\n }, [datasource]);\n\n const queryWithDefaults = applyQueryDefaults(query);\n const [queryRowFilter, setQueryRowFilter] = useState<QueryRowFilter>({\n filter: !!queryWithDefaults.sql?.whereString,\n group: !!queryWithDefaults.sql?.groupBy?.[0]?.property.name,\n order: !!queryWithDefaults.sql?.orderBy?.property.name,\n preview: true,\n });\n const [queryToValidate, setQueryToValidate] = useState(queryWithDefaults);\n\n useEffect(() => {\n return () => {\n if (datasource.getDB(datasource.id).dispose !== undefined) {\n datasource.getDB(datasource.id).dispose!();\n }\n };\n }, [datasource]);\n\n const processQuery = useCallback(\n (q: SQLQuery) => {\n if (isQueryValid(q) && onRunQuery) {\n onRunQuery();\n }\n },\n [onRunQuery]\n );\n\n const onQueryChange = (q: SQLQuery, process = true) => {\n setQueryToValidate(q);\n onChange(q);\n\n if (haveColumns(q.sql?.columns) && q.sql?.columns.some((c) => c.name) && !queryRowFilter.group) {\n setQueryRowFilter({ ...queryRowFilter, group: true });\n }\n\n if (process) {\n processQuery(q);\n }\n };\n\n const onQueryHeaderChange = (q: SQLQuery) => {\n setQueryToValidate(q);\n onChange(q);\n };\n\n if (loading || error) {\n return null;\n }\n\n return (\n <>\n <QueryHeader\n db={db}\n preconfiguredDataset={preconfiguredDatabase}\n onChange={onQueryHeaderChange}\n onRunQuery={onRunQuery}\n onQueryRowChange={setQueryRowFilter}\n queryRowFilter={queryRowFilter}\n query={queryWithDefaults}\n isQueryRunnable={isQueryRunnable}\n dialect={dialect}\n />\n\n <Space v={0.5} />\n\n {queryWithDefaults.editorMode !== EditorMode.Code && (\n <VisualEditor\n db={db}\n query={queryWithDefaults}\n onChange={(q: SQLQuery) => onQueryChange(q, false)}\n queryRowFilter={queryRowFilter}\n onValidate={setIsQueryRunnable}\n range={range}\n />\n )}\n\n {queryWithDefaults.editorMode === EditorMode.Code && (\n <RawEditor\n db={db}\n query={queryWithDefaults}\n queryToValidate={queryToValidate}\n onChange={onQueryChange}\n onRunQuery={onRunQuery}\n onValidate={setIsQueryRunnable}\n range={range}\n />\n )}\n </>\n );\n}\n\nconst isQueryValid = (q: SQLQuery) => {\n return Boolean(q.rawSql);\n};\n","import { AnnotationQuery } from '@grafana/data';\n\nimport { applyQueryDefaults } from '../defaults';\nimport { SQLQuery } from '../types';\n\nexport default function migrateAnnotation(annotation: AnnotationQuery<SQLQuery>) {\n const oldQuery = typeof annotation.rawQuery === 'string' ? annotation.rawQuery : null;\n\n if (!oldQuery) {\n return annotation;\n }\n\n const newQuery = applyQueryDefaults({ refId: 'Annotation', ...(annotation.target ?? {}), rawSql: oldQuery });\n\n return {\n ...annotation,\n rawQuery: undefined,\n workspace: undefined,\n subscription: undefined,\n queryType: undefined,\n target: newQuery,\n };\n}\n","import { lastValueFrom, Observable, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport {\n getDefaultTimeRange,\n DataFrame,\n DataFrameView,\n DataQuery,\n DataQueryRequest,\n DataQueryResponse,\n DataSourceInstanceSettings,\n MetricFindValue,\n ScopedVars,\n CoreApp,\n getSearchFilterScopedVar,\n LegacyMetricFindQueryOptions,\n VariableWithMultiSupport,\n TimeRange,\n} from '@grafana/data';\nimport { EditorMode } from '@grafana/experimental';\nimport {\n BackendDataSourceResponse,\n DataSourceWithBackend,\n FetchResponse,\n getBackendSrv,\n getTemplateSrv,\n toDataQueryResponse,\n TemplateSrv,\n reportInteraction,\n} from '@grafana/runtime';\n\nimport { ResponseParser } from '../ResponseParser';\nimport { SqlQueryEditor } from '../components/QueryEditor';\nimport { MACRO_NAMES } from '../constants';\nimport { DB, SQLQuery, SQLOptions, SqlQueryModel, QueryFormat } from '../types';\nimport migrateAnnotation from '../utils/migration';\n\nimport { isSqlDatasourceDatabaseSelectionFeatureFlagEnabled } from './../components/QueryEditorFeatureFlag.utils';\n\nexport abstract class SqlDatasource extends DataSourceWithBackend<SQLQuery, SQLOptions> {\n id: number;\n responseParser: ResponseParser;\n name: string;\n interval: string;\n db: DB;\n preconfiguredDatabase: string;\n\n constructor(\n instanceSettings: DataSourceInstanceSettings<SQLOptions>,\n protected readonly templateSrv: TemplateSrv = getTemplateSrv()\n ) {\n super(instanceSettings);\n this.name = instanceSettings.name;\n this.responseParser = new ResponseParser();\n this.id = instanceSettings.id;\n const settingsData = instanceSettings.jsonData || {};\n this.interval = settingsData.timeInterval || '1m';\n this.db = this.getDB();\n /*\n The `settingsData.database` will be defined if a default database has been defined in either\n 1) the ConfigurationEditor.tsx, OR 2) the provisioning config file, either under `jsondata.database`, or simply `database`.\n */\n this.preconfiguredDatabase = settingsData.database ?? '';\n this.annotations = {\n prepareAnnotation: migrateAnnotation,\n QueryEditor: SqlQueryEditor,\n };\n }\n\n abstract getDB(dsID?: number): DB;\n\n abstract getQueryModel(target?: SQLQuery, templateSrv?: TemplateSrv, scopedVars?: ScopedVars): SqlQueryModel;\n\n getResponseParser() {\n return this.responseParser;\n }\n\n interpolateVariable = (value: string | string[] | number, variable: VariableWithMultiSupport) => {\n if (typeof value === 'string') {\n if (variable.multi || variable.includeAll) {\n return this.getQueryModel().quoteLiteral(value);\n } else {\n return String(value).replace(/'/g, \"''\");\n }\n }\n\n if (typeof value === 'number') {\n return value;\n }\n\n if (Array.isArray(value)) {\n const quotedValues = value.map((v) => this.getQueryModel().quoteLiteral(v));\n return quotedValues.join(',');\n }\n\n return value;\n };\n\n interpolateVariablesInQueries(queries: SQLQuery[], scopedVars: ScopedVars): SQLQuery[] {\n let expandedQueries = queries;\n if (queries && queries.length > 0) {\n expandedQueries = queries.map((query) => {\n const expandedQuery = {\n ...query,\n datasource: this.getRef(),\n rawSql: this.templateSrv.replace(query.rawSql, scopedVars, this.interpolateVariable),\n rawQuery: true,\n };\n return expandedQuery;\n });\n }\n return expandedQueries;\n }\n\n filterQuery(query: SQLQuery): boolean {\n return !query.hide;\n }\n\n applyTemplateVariables(target: SQLQuery, scopedVars: ScopedVars) {\n return {\n refId: target.refId,\n datasource: this.getRef(),\n rawSql: this.templateSrv.replace(target.rawSql, scopedVars, this.interpolateVariable),\n format: target.format,\n };\n }\n\n query(request: DataQueryRequest<SQLQuery>): Observable<DataQueryResponse> {\n // This logic reenables the previous SQL behavior regarding what databases are available for the user to query.\n if (isSqlDatasourceDatabaseSelectionFeatureFlagEnabled()) {\n const databaseIssue = this.checkForDatabaseIssue(request);\n\n if (!!databaseIssue) {\n const error = new Error(databaseIssue);\n return throwError(() => error);\n }\n }\n\n request.targets.forEach((target) => {\n if (request.app === CoreApp.Dashboard || request.app === CoreApp.PanelViewer) {\n return;\n }\n\n reportInteraction('grafana_sql_query_executed', {\n datasource: target.datasource?.type,\n editorMode: target.editorMode,\n format: target.format,\n app: request.app,\n });\n });\n\n return super.query(request);\n }\n\n private checkForDatabaseIssue(request: DataQueryRequest<SQLQuery>) {\n // If the datasource is Postgres and there is no default database configured - either never configured or removed - return a database issue.\n if (this.type === 'postgres' && !this.preconfiguredDatabase) {\n return `You do not currently have a default database configured for this data source. Postgres requires a default\n database with which to connect. Please configure one through the Data Sources Configuration page, or if you\n are using a provisioning file, update that configuration file with a default database.`;\n }\n\n // No need to check for database change/update issues if the datasource is being used in Explore.\n if (request.app !== CoreApp.Explore) {\n /*\n If a preconfigured datasource database has been added/updated - and the user has built ANY number of queries using a\n database OTHER than the preconfigured one, return a database issue - since those databases are no longer available.\n The user will need to update their queries to use the preconfigured database.\n */\n if (!!this.preconfiguredDatabase) {\n for (const target of request.targets) {\n // Test for database configuration change only if query was made in `builder` mode.\n if (target.editorMode === EditorMode.Builder && target.dataset !== this.preconfiguredDatabase) {\n return `The configuration for this panel's data source has been modified. The previous database used in this panel's\n saved query is no longer available. Please update the query to use the new database option.\n Previous query parameters will be preserved until the query is updated.`;\n }\n }\n }\n }\n\n return;\n }\n\n async metricFindQuery(query: string, options?: LegacyMetricFindQueryOptions): Promise<MetricFindValue[]> {\n const range = options?.range;\n if (range == null) {\n // i cannot create a scenario where this happens, we handle it just to be sure.\n return [];\n }\n\n let refId = 'tempvar';\n if (options && options.variable && options.variable.name) {\n refId = options.variable.name;\n }\n\n const scopedVars = {\n ...options?.scopedVars,\n ...getSearchFilterScopedVar({ query, wildcardChar: '%', options }),\n };\n\n const rawSql = this.templateSrv.replace(query, scopedVars, this.interpolateVariable);\n\n const interpolatedQuery: SQLQuery = {\n refId: refId,\n datasource: this.getRef(),\n rawSql,\n format: QueryFormat.Table,\n };\n\n // NOTE: we can remove this try-catch when https://github.com/grafana/grafana/issues/82250\n // is fixed.\n let response;\n try {\n response = await this.runMetaQuery(interpolatedQuery, range);\n } catch (error) {\n console.error(error);\n throw new Error('error when executing the sql query');\n }\n return this.getResponseParser().transformMetricFindResponse(response);\n }\n\n // NOTE: this always runs with the `@grafana/data/getDefaultTimeRange` time range\n async runSql<T extends object>(query: string, options?: RunSQLOptions) {\n const range = getDefaultTimeRange();\n const frame = await this.runMetaQuery({ rawSql: query, format: QueryFormat.Table, refId: options?.refId }, range);\n return new DataFrameView<T>(frame);\n }\n\n private runMetaQuery(request: Partial<SQLQuery>, range: TimeRange): Promise<DataFrame> {\n const refId = request.refId || 'meta';\n const queries: DataQuery[] = [{ ...request, datasource: request.datasource || this.getRef(), refId }];\n\n return lastValueFrom(\n getBackendSrv()\n .fetch<BackendDataSourceResponse>({\n url: '/api/ds/query',\n method: 'POST',\n headers: this.getRequestHeaders(),\n data: {\n from: range.from.valueOf().toString(),\n to: range.to.valueOf().toString(),\n queries,\n },\n requestId: refId,\n })\n .pipe(\n map((res: FetchResponse<BackendDataSourceResponse>) => {\n const rsp = toDataQueryResponse(res, queries);\n return rsp.data[0] ?? { fields: [] };\n })\n )\n );\n }\n\n targetContainsTemplate(target: SQLQuery) {\n let queryWithoutMacros = target.rawSql;\n MACRO_NAMES.forEach((value) => {\n queryWithoutMacros = queryWithoutMacros?.replace(value, '') || '';\n });\n return this.templateSrv.containsTemplate(queryWithoutMacros);\n }\n}\n\ninterface RunSQLOptions extends LegacyMetricFindQueryOptions {\n refId?: string;\n}\n","import React from 'react';\n\nimport { DataSourceSettings } from '@grafana/data';\nimport { ConfigSubSection, Stack } from '@grafana/experimental';\nimport { config } from '@grafana/runtime';\nimport { Field, Icon, InlineLabel, Input, Label, Switch, Tooltip } from '@grafana/ui';\n\nimport { SQLConnectionLimits, SQLOptions } from '../../types';\n\ninterface Props<T> {\n onOptionsChange: Function;\n options: DataSourceSettings<SQLOptions>;\n}\n\nfunction toNumber(text: string): number {\n if (text.trim() === '') {\n // calling `Number('')` returns zero,\n // so we have to handle this case\n return NaN;\n }\n\n return Number(text);\n}\n\nexport const ConnectionLimits = <T extends SQLConnectionLimits>(props: Props<T>) => {\n const { onOptionsChange, options } = props;\n const jsonData = options.jsonData;\n const autoIdle = jsonData.maxIdleConnsAuto !== undefined ? jsonData.maxIdleConnsAuto : false;\n\n // Update JSON data with new values\n const updateJsonData = (values: {}) => {\n const newOpts = {\n ...options,\n jsonData: {\n ...jsonData,\n ...values,\n },\n };\n\n return onOptionsChange(newOpts);\n };\n\n // For the case of idle connections and connection lifetime\n // use a shared function to update respective properties\n const onJSONDataNumberChanged = (property: keyof SQLConnectionLimits) => {\n return (number?: number) => {\n updateJsonData({ [property]: number });\n };\n };\n\n // When the maximum number of connections is changed\n // see if we have the automatic idle option enabled\n const onMaxConnectionsChanged = (number?: number) => {\n if (autoIdle && number) {\n updateJsonData({\n maxOpenConns: number,\n maxIdleConns: number,\n });\n } else {\n updateJsonData({\n maxOpenConns: number,\n });\n }\n };\n\n // Update auto idle setting when control is toggled\n // and set minimum idle connections if automatic\n // is selected\n const onConnectionIdleAutoChanged = () => {\n let idleConns = undefined;\n let maxConns = undefined;\n\n // If the maximum number of open connections is undefined\n // and we're setting auto idle then set the default amount\n // otherwise take the numeric amount and get the value from that\n if (!autoIdle) {\n if (jsonData.maxOpenConns !== undefined) {\n maxConns = jsonData.maxOpenConns;\n idleConns = jsonData.maxOpenConns;\n }\n } else {\n maxConns = jsonData.maxOpenConns;\n idleConns = jsonData.maxIdleConns;\n }\n\n updateJsonData({\n maxIdleConnsAuto: !autoIdle,\n maxIdleConns: idleConns,\n maxOpenConns: maxConns,\n });\n };\n\n const labelWidth = 40;\n\n return (\n <ConfigSubSection title=\"Connection limits\">\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>Max open</span>\n <Tooltip\n content={\n <span>\n The maximum number of open connections to the database. If <i>Max idle connections</i> is greater\n than 0 and the <i>Max open connections</i> is less than <i>Max idle connections</i>, then\n <i>Max idle connections</i> will be reduced to match the <i>Max open connections</i> limit. If set\n to 0, there is no limit on the number of open connections.\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <Input\n type=\"number\"\n placeholder=\"unlimited\"\n defaultValue={jsonData.maxOpenConns}\n onChange={(e) => {\n const newVal = toNumber(e.currentTarget.value);\n if (!Number.isNaN(newVal)) {\n onMaxConnectionsChanged(newVal);\n }\n }}\n width={labelWidth}\n />\n </Field>\n\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>Auto Max Idle</span>\n <Tooltip\n content={\n <span>\n If enabled, automatically set the number of <i>Maximum idle connections</i> to the same value as\n <i> Max open connections</i>. If the number of maximum open connections is not set it will be set to\n the default ({config.sqlConnectionLimits.maxIdleConns}).\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <Switch value={autoIdle} onChange={onConnectionIdleAutoChanged} />\n </Field>\n\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>Max idle</span>\n <Tooltip\n content={\n <span>\n The maximum number of connections in the idle connection pool.If <i>Max open connections</i> is\n greater than 0 but less than the <i>Max idle connections</i>, then the <i>Max idle connections</i>{' '}\n will be reduced to match the <i>Max open connections</i> limit. If set to 0, no idle connections are\n retained.\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n {autoIdle ? (\n <InlineLabel width={labelWidth}>{options.jsonData.maxIdleConns}</InlineLabel>\n ) : (\n <Input\n type=\"number\"\n placeholder=\"2\"\n defaultValue={jsonData.maxIdleConns}\n onChange={(e) => {\n const newVal = toNumber(e.currentTarget.value);\n if (!Number.isNaN(newVal)) {\n onJSONDataNumberChanged('maxIdleConns')(newVal);\n }\n }}\n width={labelWidth}\n disabled={autoIdle}\n />\n )}\n </Field>\n\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>Max lifetime</span>\n <Tooltip\n content={\n <span>\n The maximum amount of time in seconds a connection may be reused. If set to 0, connections are\n reused forever.\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <Input\n type=\"number\"\n placeholder=\"14400\"\n defaultValue={jsonData.connMaxLifetime}\n onChange={(e) => {\n const newVal = toNumber(e.currentTarget.value);\n if (!Number.isNaN(newVal)) {\n onJSONDataNumberChanged('connMaxLifetime')(newVal);\n }\n }}\n width={labelWidth}\n />\n </Field>\n </ConfigSubSection>\n );\n};\n","import { css } from '@emotion/css';\nimport React from 'react';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useStyles2 } from '@grafana/ui';\n\n// this custom component is necessary because the Grafana UI <Divider /> component is not backwards compatible with Grafana < 10.1.0\nexport const Divider = () => {\n const styles = useStyles2(getStyles);\n return <hr className={styles.horizontalDivider} />;\n};\n\nconst getStyles = (theme: GrafanaTheme2) => {\n return {\n horizontalDivider: css({\n borderTop: `1px solid ${theme.colors.border.weak}`,\n margin: theme.spacing(2, 0),\n width: '100%',\n }),\n };\n};\n","import React from 'react';\n\nimport {\n DataSourceJsonData,\n DataSourcePluginOptionsEditorProps,\n KeyValue,\n onUpdateDatasourceSecureJsonDataOption,\n updateDatasourcePluginResetOption,\n} from '@grafana/data';\nimport { Field, Icon, Label, SecretTextArea, Tooltip, Stack } from '@grafana/ui';\n\nexport interface Props<T extends DataSourceJsonData, S> {\n editorProps: DataSourcePluginOptionsEditorProps<T, S>;\n showCACert?: boolean;\n showKeyPair?: boolean;\n secureJsonFields?: KeyValue<Boolean>;\n labelWidth?: number;\n}\n\nexport const TLSSecretsConfig = <T extends DataSourceJsonData, S extends {} = {}>(props: Props<T, S>) => {\n const { editorProps, showCACert, showKeyPair = true } = props;\n const { secureJsonFields } = editorProps.options;\n return (\n <>\n {showKeyPair ? (\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>TLS/SSL Client Certificate</span>\n <Tooltip\n content={\n <span>\n To authenticate with an TLS/SSL client certificate, provide the client certificate here.\n </span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <SecretTextArea\n placeholder=\"-----BEGIN CERTIFICATE-----\"\n cols={45}\n rows={7}\n isConfigured={secureJsonFields && secureJsonFields.tlsClientCert}\n onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsClientCert')}\n onReset={() => {\n updateDatasourcePluginResetOption(editorProps, 'tlsClientCert');\n }}\n />\n </Field>\n ) : null}\n {showCACert ? (\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>TLS/SSL Root Certificate</span>\n <Tooltip\n content={\n <span>If the selected TLS/SSL mode requires a server root certificate, provide it here.</span>\n }\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <SecretTextArea\n placeholder=\"-----BEGIN CERTIFICATE-----\"\n cols={45}\n rows={7}\n isConfigured={secureJsonFields && secureJsonFields.tlsCACert}\n onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsCACert')}\n onReset={() => {\n updateDatasourcePluginResetOption(editorProps, 'tlsCACert');\n }}\n />\n </Field>\n ) : null}\n {showKeyPair ? (\n <Field\n label={\n <Label>\n <Stack gap={0.5}>\n <span>TLS/SSL Client Key</span>\n <Tooltip\n content={<span>To authenticate with a client TLS/SSL certificate, provide the key here.</span>}\n >\n <Icon name=\"info-circle\" size=\"sm\" />\n </Tooltip>\n </Stack>\n </Label>\n }\n >\n <SecretTextArea\n placeholder=\"-----BEGIN RSA PRIVATE KEY-----\"\n cols={45}\n rows={7}\n isConfigured={secureJsonFields && secureJsonFields.tlsClientKey}\n onChange={onUpdateDatasourceSecureJsonDataOption(editorProps, 'tlsClientKey')}\n onReset={() => {\n updateDatasourcePluginResetOption(editorProps, 'tlsClientKey');\n }}\n />\n </Field>\n ) : null}\n </>\n );\n};\n","import { createMonitoringLogger } from '@grafana/runtime';\n\nexport const sqlPluginLogger = createMonitoringLogger('features.plugins.sql');\n","import { useEffect } from 'react';\n\nimport { DataSourcePluginOptionsEditorProps } from '@grafana/data';\nimport { config } from '@grafana/runtime';\n\nimport { SQLOptions } from '../../types';\nimport { sqlPluginLogger } from '../../utils/logging';\n\n/**\n * 1. Moves the database field from the options object to jsonData.database and empties the database field.\n * 2. If max open connections, max idle connections, and auto idle are all undefined set these to default values.\n */\nexport function useMigrateDatabaseFields<T extends SQLOptions, S = {}>({\n onOptionsChange,\n options,\n}: DataSourcePluginOptionsEditorProps<T, S>) {\n useEffect(() => {\n const jsonData = options.jsonData;\n let newOptions = { ...options };\n let optionsUpdated = false;\n\n // Migrate the database field from the column into the jsonData object\n if (options.database) {\n sqlPluginLogger.logDebug(`Migrating from options.database with value ${options.database} for ${options.name}`);\n newOptions.database = '';\n newOptions.jsonData = { ...jsonData, database: options.database };\n optionsUpdated = true;\n }\n\n // Set default values for max open connections, max idle connection,\n // and auto idle if they're all undefined\n if (\n jsonData.maxOpenConns === undefined &&\n jsonData.maxIdleConns === undefined &&\n jsonData.maxIdleConnsAuto === undefined\n ) {\n const { maxOpenConns, maxIdleConns } = config.sqlConnectionLimits;\n\n sqlPluginLogger.logDebug(\n `Setting default max open connections to ${maxOpenConns} and setting max idle connection to ${maxIdleConns}`\n );\n\n // Spread from the jsonData in new options in case\n // the database field was migrated as well\n newOptions.jsonData = {\n ...newOptions.jsonData,\n maxOpenConns: maxOpenConns,\n maxIdleConns: maxIdleConns,\n maxIdleConnsAuto: true,\n };\n\n // Make sure we issue an update if options changed\n optionsUpdated = true;\n }\n\n // If the maximum connection lifetime hasn't been\n // otherwise set fill in with the default from configuration\n if (jsonData.connMaxLifetime === undefined) {\n const { connMaxLifetime } = config.sqlConnectionLimits;\n\n // Spread new options and add our value\n newOptions.jsonData = {\n ...newOptions.jsonData,\n connMaxLifetime: connMaxLifetime,\n };\n\n // Note that we've updated the options\n optionsUpdated = true;\n }\n\n // Only issue an update if we changed options\n if (optionsUpdated) {\n onOptionsChange(newOptions);\n }\n }, [onOptionsChange, options]);\n}\n","/* globals define,module */\n/*\nUsing a Universal Module Loader that should be browser, require, and AMD friendly\nhttp://ricostacruz.com/cheatsheets/umdjs.html\n*/\n;(function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory();\n } else {\n root.jsonLogic = factory();\n }\n}(this, function() {\n \"use strict\";\n /* globals console:false */\n\n if ( ! Array.isArray) {\n Array.isArray = function(arg) {\n return Object.prototype.toString.call(arg) === \"[object Array]\";\n };\n }\n\n /**\n * Return an array that contains no duplicates (original not modified)\n * @param {array} array Original reference array\n * @return {array} New array with no duplicates\n */\n function arrayUnique(array) {\n var a = [];\n for (var i=0, l=array.length; i<l; i++) {\n if (a.indexOf(array[i]) === -1) {\n a.push(array[i]);\n }\n }\n return a;\n }\n\n var jsonLogic = {};\n var operations = {\n \"==\": function(a, b) {\n return a == b;\n },\n \"===\": function(a, b) {\n return a === b;\n },\n \"!=\": function(a, b) {\n return a != b;\n },\n \"!==\": function(a, b) {\n return a !== b;\n },\n \">\": function(a, b) {\n return a > b;\n },\n \">=\": function(a, b) {\n return a >= b;\n },\n \"<\": function(a, b, c) {\n return (c === undefined) ? a < b : (a < b) && (b < c);\n },\n \"<=\": function(a, b, c) {\n return (c === undefined) ? a <= b : (a <= b) && (b <= c);\n },\n \"!!\": function(a) {\n return jsonLogic.truthy(a);\n },\n \"!\": function(a) {\n return !jsonLogic.truthy(a);\n },\n \"%\": function(a, b) {\n return a % b;\n },\n \"log\": function(a) {\n console.log(a); return a;\n },\n \"in\": function(a, b) {\n if (!b || typeof b.indexOf === \"undefined\") return false;\n return (b.indexOf(a) !== -1);\n },\n \"cat\": function() {\n return Array.prototype.join.call(arguments, \"\");\n },\n \"substr\": function(source, start, end) {\n if (end < 0) {\n // JavaScript doesn't support negative end, this emulates PHP behavior\n var temp = String(source).substr(start);\n return temp.substr(0, temp.length + end);\n }\n return String(source).substr(start, end);\n },\n \"+\": function() {\n return Array.prototype.reduce.call(arguments, function(a, b) {\n return parseFloat(a, 10) + parseFloat(b, 10);\n }, 0);\n },\n \"*\": function() {\n return Array.prototype.reduce.call(arguments, function(a, b) {\n return parseFloat(a, 10) * parseFloat(b, 10);\n });\n },\n \"-\": function(a, b) {\n if (b === undefined) {\n return -a;\n } else {\n return a - b;\n }\n },\n \"/\": function(a, b) {\n return a / b;\n },\n \"min\": function() {\n return Math.min.apply(this, arguments);\n },\n \"max\": function() {\n return Math.max.apply(this, arguments);\n },\n \"merge\": function() {\n return Array.prototype.reduce.call(arguments, function(a, b) {\n return a.concat(b);\n }, []);\n },\n \"var\": function(a, b) {\n var not_found = (b === undefined) ? null : b;\n var data = this;\n if (typeof a === \"undefined\" || a===\"\" || a===null) {\n return data;\n }\n var sub_props = String(a).split(\".\");\n for (var i = 0; i < sub_props.length; i++) {\n if (data === null || data === undefined) {\n return not_found;\n }\n // Descending into data\n data = data[sub_props[i]];\n if (data === undefined) {\n return not_found;\n }\n }\n return data;\n },\n \"missing\": function() {\n /*\n Missing can receive many keys as many arguments, like {\"missing:[1,2]}\n Missing can also receive *one* argument that is an array of keys,\n which typically happens if it's actually acting on the output of another command\n (like 'if' or 'merge')\n */\n\n var missing = [];\n var keys = Array.isArray(arguments[0]) ? arguments[0] : arguments;\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = jsonLogic.apply({\"var\": key}, this);\n if (value === null || value === \"\") {\n missing.push(key);\n }\n }\n\n return missing;\n },\n \"missing_some\": function(need_count, options) {\n // missing_some takes two arguments, how many (minimum) items must be present, and an array of keys (just like 'missing') to check for presence.\n var are_missing = jsonLogic.apply({\"missing\": options}, this);\n\n if (options.length - are_missing.length >= need_count) {\n return [];\n } else {\n return are_missing;\n }\n },\n };\n\n jsonLogic.is_logic = function(logic) {\n return (\n typeof logic === \"object\" && // An object\n logic !== null && // but not null\n ! Array.isArray(logic) && // and not an array\n Object.keys(logic).length === 1 // with exactly one key\n );\n };\n\n /*\n This helper will defer to the JsonLogic spec as a tie-breaker when different language interpreters define different behavior for the truthiness of primitives. E.g., PHP considers empty arrays to be falsy, but Javascript considers them to be truthy. JsonLogic, as an ecosystem, needs one consistent answer.\n\n Spec and rationale here: http://jsonlogic.com/truthy\n */\n jsonLogic.truthy = function(value) {\n if (Array.isArray(value) && value.length === 0) {\n return false;\n }\n return !! value;\n };\n\n\n jsonLogic.get_operator = function(logic) {\n return Object.keys(logic)[0];\n };\n\n jsonLogic.get_values = function(logic) {\n return logic[jsonLogic.get_operator(logic)];\n };\n\n jsonLogic.apply = function(logic, data) {\n // Does this array contain logic? Only one way to find out.\n if (Array.isArray(logic)) {\n return logic.map(function(l) {\n return jsonLogic.apply(l, data);\n });\n }\n // You've recursed to a primitive, stop!\n if ( ! jsonLogic.is_logic(logic) ) {\n return logic;\n }\n\n var op = jsonLogic.get_operator(logic);\n var values = logic[op];\n var i;\n var current;\n var scopedLogic;\n var scopedData;\n var initial;\n\n // easy syntax for unary operators, like {\"var\" : \"x\"} instead of strict {\"var\" : [\"x\"]}\n if ( ! Array.isArray(values)) {\n values = [values];\n }\n\n // 'if', 'and', and 'or' violate the normal rule of depth-first calculating consequents, let each manage recursion as needed.\n if (op === \"if\" || op == \"?:\") {\n /* 'if' should be called with a odd number of parameters, 3 or greater\n This works on the pattern:\n if( 0 ){ 1 }else{ 2 };\n if( 0 ){ 1 }else if( 2 ){ 3 }else{ 4 };\n if( 0 ){ 1 }else if( 2 ){ 3 }else if( 4 ){ 5 }else{ 6 };\n\n The implementation is:\n For pairs of values (0,1 then 2,3 then 4,5 etc)\n If the first evaluates truthy, evaluate and return the second\n If the first evaluates falsy, jump to the next pair (e.g, 0,1 to 2,3)\n given one parameter, evaluate and return it. (it's an Else and all the If/ElseIf were false)\n given 0 parameters, return NULL (not great practice, but there was no Else)\n */\n for (i = 0; i < values.length - 1; i += 2) {\n if ( jsonLogic.truthy( jsonLogic.apply(values[i], data) ) ) {\n return jsonLogic.apply(values[i+1], data);\n }\n }\n if (values.length === i+1) {\n return jsonLogic.apply(values[i], data);\n }\n return null;\n } else if (op === \"and\") { // Return first falsy, or last\n for (i=0; i < values.length; i+=1) {\n current = jsonLogic.apply(values[i], data);\n if ( ! jsonLogic.truthy(current)) {\n return current;\n }\n }\n return current; // Last\n } else if (op === \"or\") {// Return first truthy, or last\n for (i=0; i < values.length; i+=1) {\n current = jsonLogic.apply(values[i], data);\n if ( jsonLogic.truthy(current) ) {\n return current;\n }\n }\n return current; // Last\n } else if (op === \"filter\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n\n if ( ! Array.isArray(scopedData)) {\n return [];\n }\n // Return only the elements from the array in the first argument,\n // that return truthy when passed to the logic in the second argument.\n // For parity with JavaScript, reindex the returned array\n return scopedData.filter(function(datum) {\n return jsonLogic.truthy( jsonLogic.apply(scopedLogic, datum));\n });\n } else if (op === \"map\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n\n if ( ! Array.isArray(scopedData)) {\n return [];\n }\n\n return scopedData.map(function(datum) {\n return jsonLogic.apply(scopedLogic, datum);\n });\n } else if (op === \"reduce\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n initial = typeof values[2] !== \"undefined\" ? values[2] : null;\n\n if ( ! Array.isArray(scopedData)) {\n return initial;\n }\n\n return scopedData.reduce(\n function(accumulator, current) {\n return jsonLogic.apply(\n scopedLogic,\n {current: current, accumulator: accumulator}\n );\n },\n initial\n );\n } else if (op === \"all\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n // All of an empty set is false. Note, some and none have correct fallback after the for loop\n if ( ! Array.isArray(scopedData) || ! scopedData.length) {\n return false;\n }\n for (i=0; i < scopedData.length; i+=1) {\n if ( ! jsonLogic.truthy( jsonLogic.apply(scopedLogic, scopedData[i]) )) {\n return false; // First falsy, short circuit\n }\n }\n return true; // All were truthy\n } else if (op === \"none\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n\n if ( ! Array.isArray(scopedData) || ! scopedData.length) {\n return true;\n }\n for (i=0; i < scopedData.length; i+=1) {\n if ( jsonLogic.truthy( jsonLogic.apply(scopedLogic, scopedData[i]) )) {\n return false; // First truthy, short circuit\n }\n }\n return true; // None were truthy\n } else if (op === \"some\") {\n scopedData = jsonLogic.apply(values[0], data);\n scopedLogic = values[1];\n\n if ( ! Array.isArray(scopedData) || ! scopedData.length) {\n return false;\n }\n for (i=0; i < scopedData.length; i+=1) {\n if ( jsonLogic.truthy( jsonLogic.apply(scopedLogic, scopedData[i]) )) {\n return true; // First truthy, short circuit\n }\n }\n return false; // None were truthy\n }\n\n // Everyone else gets immediate depth-first recursion\n values = values.map(function(val) {\n return jsonLogic.apply(val, data);\n });\n\n\n // The operation is called with \"data\" bound to its \"this\" and \"values\" passed as arguments.\n // Structured commands like % or > can name formal arguments while flexible commands (like missing or merge) can operate on the pseudo-array arguments\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments\n if (operations.hasOwnProperty(op) && typeof operations[op] === \"function\") {\n return operations[op].apply(data, values);\n } else if (op.indexOf(\".\") > 0) { // Contains a dot, and not in the 0th position\n var sub_ops = String(op).split(\".\");\n var operation = operations;\n for (i = 0; i < sub_ops.length; i++) {\n if (!operation.hasOwnProperty(sub_ops[i])) {\n throw new Error(\"Unrecognized operation \" + op +\n \" (failed at \" + sub_ops.slice(0, i+1).join(\".\") + \")\");\n }\n // Descending into operations\n operation = operation[sub_ops[i]];\n }\n\n return operation.apply(data, values);\n }\n\n throw new Error(\"Unrecognized operation \" + op );\n };\n\n jsonLogic.uses_data = function(logic) {\n var collection = [];\n\n if (jsonLogic.is_logic(logic)) {\n var op = jsonLogic.get_operator(logic);\n var values = logic[op];\n\n if ( ! Array.isArray(values)) {\n values = [values];\n }\n\n if (op === \"var\") {\n // This doesn't cover the case where the arg to var is itself a rule.\n collection.push(values[0]);\n } else {\n // Recursion!\n values.forEach(function(val) {\n collection.push.apply(collection, jsonLogic.uses_data(val) );\n });\n }\n }\n\n return arrayUnique(collection);\n };\n\n jsonLogic.add_operation = function(name, code) {\n operations[name] = code;\n };\n\n jsonLogic.rm_operation = function(name) {\n delete operations[name];\n };\n\n jsonLogic.rule_like = function(rule, pattern) {\n // console.log(\"Is \". JSON.stringify(rule) . \" like \" . JSON.stringify(pattern) . \"?\");\n if (pattern === rule) {\n return true;\n } // TODO : Deep object equivalency?\n if (pattern === \"@\") {\n return true;\n } // Wildcard!\n if (pattern === \"number\") {\n return (typeof rule === \"number\");\n }\n if (pattern === \"string\") {\n return (typeof rule === \"string\");\n }\n if (pattern === \"array\") {\n // !logic test might be superfluous in JavaScript\n return Array.isArray(rule) && ! jsonLogic.is_logic(rule);\n }\n\n if (jsonLogic.is_logic(pattern)) {\n if (jsonLogic.is_logic(rule)) {\n var pattern_op = jsonLogic.get_operator(pattern);\n var rule_op = jsonLogic.get_operator(rule);\n\n if (pattern_op === \"@\" || pattern_op === rule_op) {\n // echo \"\\nOperators match, go deeper\\n\";\n return jsonLogic.rule_like(\n jsonLogic.get_values(rule, false),\n jsonLogic.get_values(pattern, false)\n );\n }\n }\n return false; // pattern is logic, rule isn't, can't be eq\n }\n\n if (Array.isArray(pattern)) {\n if (Array.isArray(rule)) {\n if (pattern.length !== rule.length) {\n return false;\n }\n /*\n Note, array order MATTERS, because we're using this array test logic to consider arguments, where order can matter. (e.g., + is commutative, but '-' or 'if' or 'var' are NOT)\n */\n for (var i = 0; i < pattern.length; i += 1) {\n // If any fail, we fail\n if ( ! jsonLogic.rule_like(rule[i], pattern[i])) {\n return false;\n }\n }\n return true; // If they *all* passed, we pass\n } else {\n return false; // Pattern is array, rule isn't\n }\n }\n\n // Not logic, not array, not a === match for rule.\n return false;\n };\n\n return jsonLogic;\n}));\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nmodule.exports = baseRepeat;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var toString = require('./toString');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseRepeat = require('./_baseRepeat'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nmodule.exports = repeat;\n","var baseClamp = require('./_baseClamp'),\n baseToString = require('./_baseToString'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nmodule.exports = startsWith;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"spel2js\"] = factory();\n\telse\n\t\troot[\"spel2js\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The common supertype of all AST nodes in a parsed Spring Expression Language\n * format expression.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createSpelNode(nodeType, position) {\n var node = {},\n type = nodeType || 'Abstract',\n children = [],\n parent = null,\n activeContext;\n\n node._type = type;\n\n node.getType = function () {\n return type;\n };\n node.setType = function (nodeType) {\n type = nodeType;\n };\n\n node.getChildren = function () {\n return children;\n };\n node.addChild = function (childNode) {\n if (!childNode) {\n // See OpMinus and OpPlus: right node can be null for unary mode\n return;\n }\n if (!childNode.setParent) {\n throw {\n name: 'Error',\n message: 'Trying to add a child which is not a node: ' + JSON.stringify(childNode)\n };\n }\n childNode.setParent(node);\n children.push(childNode);\n };\n\n node.getParent = function () {\n return parent;\n };\n node.setParent = function (parentNode) {\n parent = parentNode;\n };\n\n node.getContext = function (state) {\n return activeContext || state.activeContext.peek();\n };\n node.setContext = function (nodeContext) {\n activeContext = nodeContext;\n };\n\n node.getStartPosition = function () {\n return position >> 16;\n };\n\n node.getEndPosition = function () {\n return position & 0xffff;\n };\n\n //must override\n node.getValue = function () {\n throw {\n name: 'MethodNotImplementedException',\n message: 'SpelNode#getValue() must be overridden.'\n };\n };\n\n node.toString = function () {\n var s = 'Kind: ' + node.getType();\n //s += ', Value: ' + node.getValue();\n s += ', Children: [';\n for (var i = 0, l = node.getChildren().length; i < l; i += 1) {\n s += '{' + node.getChildren()[i] + '}, ';\n }\n s += ']';\n return s;\n };\n\n //constructor\n if (position === 0) {\n throw {\n name: 'Error',\n message: 'Position cannot be 0'\n };\n }\n\n for (var _len = arguments.length, operands = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n operands[_key - 2] = arguments[_key];\n }\n\n if (operands) {\n operands.forEach(function (operand) {\n node.addChild(operand);\n });\n }\n\n return node;\n}\n\nvar SpelNode = exports.SpelNode = {\n create: createSpelNode\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Stack = Stack;\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction Stack(startingElements) {\n this.elements = startingElements || [];\n}\n\nStack.prototype.push = function (el) {\n this.elements.push(el);\n return el;\n};\n\nStack.prototype.pop = function () {\n return this.elements.pop();\n};\n\nStack.prototype.peek = function () {\n return this.elements[this.elements.length - 1];\n};\n\nStack.prototype.empty = function () {\n return this.elements.length > 0;\n};\n\nStack.prototype.search = function (el) {\n return this.elements.length - this.elements.indexOf(el);\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nvar types = {\n\n LITERAL_INT: 1, //tested\n\n LITERAL_LONG: 2, //tested\n\n LITERAL_HEXINT: 3, //tested\n\n LITERAL_HEXLONG: 4, //tested\n\n LITERAL_STRING: 5, //tested\n\n LITERAL_REAL: 6, //tested\n\n LITERAL_REAL_FLOAT: 7, //tested\n\n LPAREN: '(', //tested\n\n RPAREN: ')', //tested\n\n COMMA: ',', //tested\n\n IDENTIFIER: 0, //tested\n\n COLON: ':', //tested\n\n HASH: '#', //tested\n\n RSQUARE: ']', //tested\n\n LSQUARE: '[', //tested\n\n LCURLY: '{', //tested\n\n RCURLY: '}', //tested\n\n DOT: '.', //tested\n\n PLUS: '+', //tested\n\n STAR: '*', //tested\n\n MINUS: '-', //tested\n\n SELECT_FIRST: '^[', //tested\n\n SELECT_LAST: '$[', //tested\n\n QMARK: '?', //tested\n\n PROJECT: '![', //tested\n\n DIV: '/', //tested\n\n GE: '>=', //tested\n\n GT: '>', //tested\n\n LE: '<=', //tested\n\n LT: '<', //tested\n\n EQ: '==', //tested\n\n NE: '!=', //tested\n\n MOD: '%', //tested\n\n NOT: '!', //tested\n\n ASSIGN: '=', //tested\n\n INSTANCEOF: 'instanceof', //test fails\n\n MATCHES: 'matches', //test fails\n\n BETWEEN: 'between', //test fails\n\n SELECT: '?[', //tested\n\n POWER: '^', //tested\n\n ELVIS: '?:', //tested\n\n SAFE_NAVI: '?.', //tested\n\n BEAN_REF: '@', //tested\n\n SYMBOLIC_OR: '||', //tested\n\n SYMBOLIC_AND: '&&', //tested\n\n INC: '++', //tested\n\n DEC: '--' //tested\n};\n\nfunction TokenKind(type) {\n this.type = type;\n this.tokenChars = types[type];\n this._hasPayload = typeof types[type] !== 'string';\n if (typeof types[type] === 'number') {\n this._ordinal = types[type];\n }\n}\n\n//create enum\nfor (var t in types) {\n if (types.hasOwnProperty(t)) {\n TokenKind[t] = new TokenKind(t);\n }\n}\n\nTokenKind.prototype.toString = function () {\n return this.type + (this.tokenChars.length !== 0 ? '(' + this.tokenChars + ')' : '');\n};\n\nTokenKind.prototype.getLength = function () {\n return this.tokenChars.length;\n};\n\nTokenKind.prototype.hasPayload = function () {\n return this._hasPayload;\n};\n\nTokenKind.prototype.valueOf = function (id) {\n for (var t in types) {\n if (types.hasOwnProperty(t) && types[t] === id) {\n return TokenKind[t];\n }\n }\n};\n\nTokenKind.prototype.ordinal = function () {\n return this._ordinal;\n};\n\nexports.TokenKind = TokenKind;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StandardContext = exports.SpelExpressionEvaluator = undefined;\n\nvar _SpelExpressionEvaluator = __webpack_require__(4);\n\nvar _StandardContext = __webpack_require__(50);\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Ben March\n * @since 0.2.0\n */\n\nexports.SpelExpressionEvaluator = _SpelExpressionEvaluator.SpelExpressionEvaluator;\nexports.StandardContext = _StandardContext.StandardContext;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SpelExpressionEvaluator = undefined;\n\nvar _SpelExpressionParser = __webpack_require__(5);\n\nvar _Stack = __webpack_require__(1);\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Ben March\n * @since 0.2.0\n */\n\nvar spelExpressionEvaluator = {};\n\nfunction evalCompiled(compiledExpression, context, locals) {\n var activeContext = new _Stack.Stack(),\n state;\n\n if (!context) {\n context = {};\n }\n\n activeContext.push(context);\n\n state = {\n rootContext: context,\n activeContext: activeContext,\n locals: locals\n };\n return compiledExpression.getValue(state);\n}\n\nspelExpressionEvaluator.compile = function (expression) {\n var compiledExpression = (0, _SpelExpressionParser.SpelExpressionParser)().parse(expression);\n return {\n eval: function _eval(context, locals) {\n return evalCompiled(compiledExpression, context, locals);\n },\n _compiledExpression: compiledExpression\n };\n};\n\nspelExpressionEvaluator.eval = function (expression, context, locals) {\n return spelExpressionEvaluator.compile(expression).eval(context, locals);\n};\n\nexports.SpelExpressionEvaluator = spelExpressionEvaluator;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SpelExpressionParser = undefined;\n\nvar _TokenKind = __webpack_require__(2);\n\nvar _Tokenizer = __webpack_require__(6);\n\nvar _BooleanLiteral = __webpack_require__(8);\n\nvar _NumberLiteral = __webpack_require__(9);\n\nvar _StringLiteral = __webpack_require__(10);\n\nvar _NullLiteral = __webpack_require__(11);\n\nvar _FunctionReference = __webpack_require__(12);\n\nvar _MethodReference = __webpack_require__(13);\n\nvar _PropertyReference = __webpack_require__(14);\n\nvar _VariableReference = __webpack_require__(15);\n\nvar _CompoundExpression = __webpack_require__(16);\n\nvar _Indexer = __webpack_require__(17);\n\nvar _Assign = __webpack_require__(18);\n\nvar _OpEQ = __webpack_require__(19);\n\nvar _OpNE = __webpack_require__(20);\n\nvar _OpGE = __webpack_require__(21);\n\nvar _OpGT = __webpack_require__(22);\n\nvar _OpLE = __webpack_require__(23);\n\nvar _OpLT = __webpack_require__(24);\n\nvar _OpPlus = __webpack_require__(25);\n\nvar _OpMinus = __webpack_require__(26);\n\nvar _OpMultiply = __webpack_require__(27);\n\nvar _OpDivide = __webpack_require__(28);\n\nvar _OpModulus = __webpack_require__(29);\n\nvar _OpPower = __webpack_require__(30);\n\nvar _OpInc = __webpack_require__(31);\n\nvar _OpDec = __webpack_require__(32);\n\nvar _OpNot = __webpack_require__(33);\n\nvar _OpAnd = __webpack_require__(34);\n\nvar _OpOr = __webpack_require__(35);\n\nvar _OpMatches = __webpack_require__(36);\n\nvar _Ternary = __webpack_require__(37);\n\nvar _Elvis = __webpack_require__(38);\n\nvar _InlineList = __webpack_require__(39);\n\nvar _InlineMap = __webpack_require__(40);\n\nvar _Selection = __webpack_require__(41);\n\nvar _Projection = __webpack_require__(42);\n\nvar _OpInstanceof = __webpack_require__(43);\n\nvar _OpBetween = __webpack_require__(44);\n\nvar _TypeReference = __webpack_require__(45);\n\nvar _BeanReference = __webpack_require__(46);\n\nvar _Identifier = __webpack_require__(47);\n\nvar _QualifiedIdentifier = __webpack_require__(48);\n\nvar _ConstructorReference = __webpack_require__(49);\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ben March\n * @since 0.2.0\n *\n */\n\nvar SpelExpressionParser = exports.SpelExpressionParser = function SpelExpressionParser() {\n\n var VALID_QUALIFIED_ID_PATTERN = new RegExp('[\\\\p{L}\\\\p{N}_$]+');\n\n var configuration;\n\n // For rules that build nodes, they are stacked here for return\n var constructedNodes = [];\n\n // The expression being parsed\n var expressionString;\n\n // The token stream constructed from that expression string\n var tokenStream;\n\n // length of a populated token stream\n var tokenStreamLength;\n\n // Current location in the token stream when processing tokens\n var tokenStreamPointer;\n\n /**\n * Create a parser with some configured behavior.\n * @param config custom configuration options\n */\n function setConfiguration(config) {\n configuration = config;\n }\n\n function parse(expression, context) {\n try {\n expressionString = expression;\n tokenStream = _Tokenizer.Tokenizer.tokenize(expression);\n tokenStreamLength = tokenStream.length;\n tokenStreamPointer = 0;\n constructedNodes = [];\n var ast = eatExpression();\n if (moreTokens()) {\n raiseInternalException(peekToken().startPos, 'MORE_INPUT', nextToken().toString());\n }\n //Assert.isTrue(this.constructedNodes.isEmpty());\n return ast;\n } catch (e) {\n throw e.message;\n }\n }\n\n //\texpression\n // : logicalOrExpression\n // ( (ASSIGN^ logicalOrExpression)\n //\t | (DEFAULT^ logicalOrExpression)\n //\t | (QMARK^ expression COLON! expression)\n // | (ELVIS^ expression))?;\n function eatExpression() {\n var expr = eatLogicalOrExpression();\n if (moreTokens()) {\n var token = peekToken();\n if (token.getKind() === _TokenKind.TokenKind.ASSIGN) {\n // a=b\n if (expr === null) {\n expr = _NullLiteral.NullLiteral.create(toPosBounds(token.startPos - 1, token.endPos - 1));\n }\n nextToken();\n var assignedValue = eatLogicalOrExpression();\n return _Assign.Assign.create(toPosToken(token), expr, assignedValue);\n }\n\n if (token.getKind() === _TokenKind.TokenKind.ELVIS) {\n // a?:b (a if it isn't null, otherwise b)\n if (expr === null) {\n expr = _NullLiteral.NullLiteral.create(toPosBounds(token.startPos - 1, token.endPos - 2));\n }\n nextToken(); // elvis has left the building\n var valueIfNull = eatExpression();\n if (valueIfNull === null) {\n valueIfNull = _NullLiteral.NullLiteral.create(toPosBounds(token.startPos + 1, token.endPos + 1));\n }\n return _Elvis.Elvis.create(toPosToken(token), expr, valueIfNull);\n }\n\n if (token.getKind() === _TokenKind.TokenKind.QMARK) {\n // a?b:c\n if (expr === null) {\n expr = _NullLiteral.NullLiteral.create(toPosBounds(token.startPos - 1, token.endPos - 1));\n }\n nextToken();\n var ifTrueExprValue = eatExpression();\n eatToken(_TokenKind.TokenKind.COLON);\n var ifFalseExprValue = eatExpression();\n return _Ternary.Ternary.create(toPosToken(token), expr, ifTrueExprValue, ifFalseExprValue);\n }\n }\n return expr;\n }\n\n //logicalOrExpression : logicalAndExpression (OR^ logicalAndExpression)*;\n function eatLogicalOrExpression() {\n var expr = eatLogicalAndExpression();\n while (peekIdentifierToken('or') || peekTokenOne(_TokenKind.TokenKind.SYMBOLIC_OR)) {\n var token = nextToken(); //consume OR\n var rhExpr = eatLogicalAndExpression();\n checkOperands(token, expr, rhExpr);\n expr = _OpOr.OpOr.create(toPosToken(token), expr, rhExpr);\n }\n return expr;\n }\n\n // logicalAndExpression : relationalExpression (AND^ relationalExpression)*;\n function eatLogicalAndExpression() {\n var expr = eatRelationalExpression();\n while (peekIdentifierToken('and') || peekTokenOne(_TokenKind.TokenKind.SYMBOLIC_AND)) {\n var token = nextToken(); // consume 'AND'\n var rhExpr = eatRelationalExpression();\n checkOperands(token, expr, rhExpr);\n expr = _OpAnd.OpAnd.create(toPosToken(token), expr, rhExpr);\n }\n return expr;\n }\n\n // relationalExpression : sumExpression (relationalOperator^ sumExpression)?;\n function eatRelationalExpression() {\n var expr = eatSumExpression();\n var relationalOperatorToken = maybeEatRelationalOperator();\n if (relationalOperatorToken !== null) {\n var token = nextToken(); // consume relational operator token\n var rhExpr = eatSumExpression();\n checkOperands(token, expr, rhExpr);\n var tk = relationalOperatorToken.kind;\n\n if (relationalOperatorToken.isNumericRelationalOperator()) {\n var pos = toPosToken(token);\n if (tk === _TokenKind.TokenKind.GT) {\n return _OpGT.OpGT.create(pos, expr, rhExpr);\n }\n if (tk === _TokenKind.TokenKind.LT) {\n return _OpLT.OpLT.create(pos, expr, rhExpr);\n }\n if (tk === _TokenKind.TokenKind.LE) {\n return _OpLE.OpLE.create(pos, expr, rhExpr);\n }\n if (tk === _TokenKind.TokenKind.GE) {\n return _OpGE.OpGE.create(pos, expr, rhExpr);\n }\n if (tk === _TokenKind.TokenKind.EQ) {\n return _OpEQ.OpEQ.create(pos, expr, rhExpr);\n }\n //Assert.isTrue(tk === TokenKind.NE);\n return _OpNE.OpNE.create(pos, expr, rhExpr);\n }\n\n if (tk === _TokenKind.TokenKind.INSTANCEOF) {\n return _OpInstanceof.OpInstanceof.create(toPosToken(token), expr, rhExpr);\n }\n\n if (tk === _TokenKind.TokenKind.MATCHES) {\n return _OpMatches.OpMatches.create(toPosToken(token), expr, rhExpr);\n }\n\n //Assert.isTrue(tk === TokenKind.BETWEEN);\n return _OpBetween.OpBetween.create(toPosToken(token), expr, rhExpr);\n }\n return expr;\n }\n\n //sumExpression: productExpression ( (PLUS^ | MINUS^) productExpression)*;\n function eatSumExpression() {\n var expr = eatProductExpression();\n while (peekTokenAny(_TokenKind.TokenKind.PLUS, _TokenKind.TokenKind.MINUS, _TokenKind.TokenKind.INC)) {\n var token = nextToken(); //consume PLUS or MINUS or INC\n var rhExpr = eatProductExpression();\n checkRightOperand(token, rhExpr);\n if (token.getKind() === _TokenKind.TokenKind.PLUS) {\n expr = _OpPlus.OpPlus.create(toPosToken(token), expr, rhExpr);\n } else if (token.getKind() === _TokenKind.TokenKind.MINUS) {\n expr = _OpMinus.OpMinus.create(toPosToken(token), expr, rhExpr);\n }\n }\n return expr;\n }\n\n // productExpression: powerExpr ((STAR^ | DIV^| MOD^) powerExpr)* ;\n function eatProductExpression() {\n var expr = eatPowerIncDecExpression();\n while (peekTokenAny(_TokenKind.TokenKind.STAR, _TokenKind.TokenKind.DIV, _TokenKind.TokenKind.MOD)) {\n var token = nextToken(); // consume STAR/DIV/MOD\n var rhExpr = eatPowerIncDecExpression();\n checkOperands(token, expr, rhExpr);\n if (token.getKind() === _TokenKind.TokenKind.STAR) {\n expr = _OpMultiply.OpMultiply.create(toPosToken(token), expr, rhExpr);\n } else if (token.getKind() === _TokenKind.TokenKind.DIV) {\n expr = _OpDivide.OpDivide.create(toPosToken(token), expr, rhExpr);\n } else {\n //Assert.isTrue(token.getKind() === TokenKind.MOD);\n expr = _OpModulus.OpModulus.create(toPosToken(token), expr, rhExpr);\n }\n }\n return expr;\n }\n\n // powerExpr : unaryExpression (POWER^ unaryExpression)? (INC || DEC) ;\n function eatPowerIncDecExpression() {\n var expr = eatUnaryExpression(),\n token;\n\n if (peekTokenOne(_TokenKind.TokenKind.POWER)) {\n token = nextToken(); //consume POWER\n var rhExpr = eatUnaryExpression();\n checkRightOperand(token, rhExpr);\n return _OpPower.OpPower.create(toPosToken(token), expr, rhExpr);\n }\n\n if (expr !== null && peekTokenAny(_TokenKind.TokenKind.INC, _TokenKind.TokenKind.DEC)) {\n token = nextToken(); //consume INC/DEC\n if (token.getKind() === _TokenKind.TokenKind.INC) {\n return _OpInc.OpInc.create(toPosToken(token), true, expr);\n }\n return _OpDec.OpDec.create(toPosToken(token), true, expr);\n }\n\n return expr;\n }\n\n // unaryExpression: (PLUS^ | MINUS^ | BANG^ | INC^ | DEC^) unaryExpression | primaryExpression ;\n function eatUnaryExpression() {\n var token, expr;\n\n if (peekTokenAny(_TokenKind.TokenKind.PLUS, _TokenKind.TokenKind.MINUS, _TokenKind.TokenKind.NOT)) {\n token = nextToken();\n expr = eatUnaryExpression();\n if (token.getKind() === _TokenKind.TokenKind.NOT) {\n return _OpNot.OpNot.create(toPosToken(token), expr);\n }\n\n if (token.getKind() === _TokenKind.TokenKind.PLUS) {\n return _OpPlus.OpPlus.create(toPosToken(token), expr);\n }\n //Assert.isTrue(token.getKind() === TokenKind.MINUS);\n return _OpMinus.OpMinus.create(toPosToken(token), expr);\n }\n if (peekTokenAny(_TokenKind.TokenKind.INC, _TokenKind.TokenKind.DEC)) {\n token = nextToken();\n expr = eatUnaryExpression();\n if (token.getKind() === _TokenKind.TokenKind.INC) {\n return _OpInc.OpInc.create(toPosToken(token), false, expr);\n }\n return _OpDec.OpDec.create(toPosToken(token), false, expr);\n }\n\n return eatPrimaryExpression();\n }\n\n // primaryExpression : startNode (node)? -> ^(EXPRESSION startNode (node)?);\n function eatPrimaryExpression() {\n var nodes = [];\n var start = eatStartNode(); // always a start node\n nodes.push(start);\n while (maybeEatNode()) {\n nodes.push(pop());\n }\n if (nodes.length === 1) {\n return nodes[0];\n }\n return _CompoundExpression.CompoundExpression.create(toPosBounds(start.getStartPosition(), nodes[nodes.length - 1].getEndPosition()), nodes);\n }\n\n // node : ((DOT dottedNode) | (SAFE_NAVI dottedNode) | nonDottedNode)+;\n function maybeEatNode() {\n var expr = null;\n if (peekTokenAny(_TokenKind.TokenKind.DOT, _TokenKind.TokenKind.SAFE_NAVI)) {\n expr = eatDottedNode();\n } else {\n expr = maybeEatNonDottedNode();\n }\n\n if (expr === null) {\n return false;\n } else {\n push(expr);\n return true;\n }\n }\n\n // nonDottedNode: indexer;\n function maybeEatNonDottedNode() {\n if (peekTokenOne(_TokenKind.TokenKind.LSQUARE)) {\n if (maybeEatIndexer()) {\n return pop();\n }\n }\n return null;\n }\n\n //dottedNode\n // : ((methodOrProperty\n //\t | functionOrVar\n // | projection\n // | selection\n // | firstSelection\n // | lastSelection\n // ))\n //\t;\n function eatDottedNode() {\n var token = nextToken(); // it was a '.' or a '?.'\n var nullSafeNavigation = token.getKind() === _TokenKind.TokenKind.SAFE_NAVI;\n if (maybeEatMethodOrProperty(nullSafeNavigation) || maybeEatFunctionOrVar() || maybeEatProjection(nullSafeNavigation) || maybeEatSelection(nullSafeNavigation)) {\n return pop();\n }\n if (peekToken() === null) {\n // unexpectedly ran out of data\n raiseInternalException(token.startPos, 'OOD');\n } else {\n raiseInternalException(token.startPos, 'UNEXPECTED_DATA_AFTER_DOT', toString(peekToken()));\n }\n return null;\n }\n\n // functionOrVar\n // : (POUND ID LPAREN) => function\n // | var\n //\n // function : POUND id=ID methodArgs -> ^(FUNCTIONREF[$id] methodArgs);\n // var : POUND id=ID -> ^(VARIABLEREF[$id]);\n function maybeEatFunctionOrVar() {\n if (!peekTokenOne(_TokenKind.TokenKind.HASH)) {\n return false;\n }\n var token = nextToken();\n var functionOrVariableName = eatToken(_TokenKind.TokenKind.IDENTIFIER);\n var args = maybeEatMethodArgs();\n if (args === null) {\n push(_VariableReference.VariableReference.create(functionOrVariableName.data, toPosBounds(token.startPos, functionOrVariableName.endPos)));\n return true;\n }\n\n push(_FunctionReference.FunctionReference.create(functionOrVariableName.data, toPosBounds(token.startPos, functionOrVariableName.endPos), args));\n return true;\n }\n\n // methodArgs : LPAREN! (argument (COMMA! argument)* (COMMA!)?)? RPAREN!;\n function maybeEatMethodArgs() {\n if (!peekTokenOne(_TokenKind.TokenKind.LPAREN)) {\n return null;\n }\n var args = [];\n consumeArguments(args);\n eatToken(_TokenKind.TokenKind.RPAREN);\n return args;\n }\n\n function eatConstructorArgs(accumulatedArguments) {\n if (!peekTokenOne(_TokenKind.TokenKind.LPAREN)) {\n raiseInternalException(toPosToken(peekToken()), 'MISSING_CONSTRUCTOR_ARGS');\n }\n consumeArguments(accumulatedArguments);\n eatToken(_TokenKind.TokenKind.RPAREN);\n }\n\n /**\n * Used for consuming arguments for either a method or a constructor call\n */\n function consumeArguments(accumulatedArguments) {\n var pos = peekToken().startPos;\n var next;\n do {\n nextToken(); // consume ( (first time through) or comma (subsequent times)\n var token = peekToken();\n if (token === null) {\n raiseInternalException(pos, 'RUN_OUT_OF_ARGUMENTS');\n }\n if (token.getKind() !== _TokenKind.TokenKind.RPAREN) {\n accumulatedArguments.push(eatExpression());\n }\n next = peekToken();\n } while (next !== null && next.kind === _TokenKind.TokenKind.COMMA);\n\n if (next === null) {\n raiseInternalException(pos, 'RUN_OUT_OF_ARGUMENTS');\n }\n }\n\n function positionOf(token) {\n if (token === null) {\n // if null assume the problem is because the right token was\n // not found at the end of the expression\n return expressionString.length;\n }\n return token.startPos;\n }\n\n //startNode\n // : parenExpr | literal\n //\t | type\n //\t | methodOrProperty\n //\t | functionOrVar\n //\t | projection\n //\t | selection\n //\t | firstSelection\n //\t | lastSelection\n //\t | indexer\n //\t | constructor\n function eatStartNode() {\n if (maybeEatLiteral()) {\n return pop();\n } else if (maybeEatParenExpression()) {\n return pop();\n } else if (maybeEatTypeReference() || maybeEatNullReference() || maybeEatConstructorReference() || maybeEatMethodOrProperty(false) || maybeEatFunctionOrVar()) {\n return pop();\n } else if (maybeEatBeanReference()) {\n return pop();\n } else if (maybeEatProjection(false) || maybeEatSelection(false) || maybeEatIndexer()) {\n return pop();\n } else if (maybeEatInlineListOrMap()) {\n return pop();\n } else {\n return null;\n }\n }\n\n // parse: @beanname @'bean.name'\n // quoted if dotted\n function maybeEatBeanReference() {\n if (peekTokenOne(_TokenKind.TokenKind.BEAN_REF)) {\n var beanRefToken = nextToken();\n var beanNameToken = null;\n var beanName = null;\n if (peekTokenOne(_TokenKind.TokenKind.IDENTIFIER)) {\n beanNameToken = eatToken(_TokenKind.TokenKind.IDENTIFIER);\n beanName = beanNameToken.data;\n } else if (peekTokenOne(_TokenKind.TokenKind.LITERAL_STRING)) {\n beanNameToken = eatToken(_TokenKind.TokenKind.LITERAL_STRING);\n beanName = beanNameToken.stringValue();\n beanName = beanName.substring(1, beanName.length() - 1);\n } else {\n raiseInternalException(beanRefToken.startPos, 'INVALID_BEAN_REFERENCE');\n }\n\n var beanReference = _BeanReference.BeanReference.create(toPosToken(beanNameToken), beanName);\n push(beanReference);\n return true;\n }\n return false;\n }\n\n function maybeEatTypeReference() {\n if (peekTokenOne(_TokenKind.TokenKind.IDENTIFIER)) {\n var typeName = peekToken();\n if (typeName.stringValue() !== 'T') {\n return false;\n }\n // It looks like a type reference but is T being used as a map key?\n var token = nextToken();\n if (peekTokenOne(_TokenKind.TokenKind.RSQUARE)) {\n // looks like 'T]' (T is map key)\n push(_PropertyReference.PropertyReference.create(token.stringValue(), toPosToken(token)));\n return true;\n }\n eatToken(_TokenKind.TokenKind.LPAREN);\n var node = eatPossiblyQualifiedId();\n // dotted qualified id\n // Are there array dimensions?\n var dims = 0;\n while (peekTokenConsumeIfMatched(_TokenKind.TokenKind.LSQUARE, true)) {\n eatToken(_TokenKind.TokenKind.RSQUARE);\n dims++;\n }\n eatToken(_TokenKind.TokenKind.RPAREN);\n push(_TypeReference.TypeReference.create(toPosToken(typeName), node, dims));\n return true;\n }\n return false;\n }\n\n function maybeEatNullReference() {\n if (peekTokenOne(_TokenKind.TokenKind.IDENTIFIER)) {\n var nullToken = peekToken();\n if (nullToken.stringValue().toLowerCase() !== 'null') {\n return false;\n }\n nextToken();\n push(_NullLiteral.NullLiteral.create(toPosToken(nullToken)));\n return true;\n }\n return false;\n }\n\n //projection: PROJECT^ expression RCURLY!;\n function maybeEatProjection(nullSafeNavigation) {\n var token = peekToken();\n if (!peekTokenConsumeIfMatched(_TokenKind.TokenKind.PROJECT, true)) {\n return false;\n }\n var expr = eatExpression();\n eatToken(_TokenKind.TokenKind.RSQUARE);\n push(_Projection.Projection.create(nullSafeNavigation, toPosToken(token), expr));\n return true;\n }\n\n // list = LCURLY (element (COMMA element)*) RCURLY\n // map = LCURLY (key ':' value (COMMA key ':' value)*) RCURLY\n function maybeEatInlineListOrMap() {\n var token = peekToken(),\n listElements = [];\n\n if (!peekTokenConsumeIfMatched(_TokenKind.TokenKind.LCURLY, true)) {\n return false;\n }\n var expr = null;\n var closingCurly = peekToken();\n if (peekTokenConsumeIfMatched(_TokenKind.TokenKind.RCURLY, true)) {\n // empty list '{}'\n expr = _InlineList.InlineList.create(toPosBounds(token.startPos, closingCurly.endPos));\n } else if (peekTokenConsumeIfMatched(_TokenKind.TokenKind.COLON, true)) {\n closingCurly = eatToken(_TokenKind.TokenKind.RCURLY);\n // empty map '{:}'\n expr = _InlineMap.InlineMap.create(toPosBounds(token.startPos, closingCurly.endPos));\n } else {\n var firstExpression = eatExpression();\n // Next is either:\n // '}' - end of list\n // ',' - more expressions in this list\n // ':' - this is a map!\n\n if (peekTokenOne(_TokenKind.TokenKind.RCURLY)) {\n // list with one item in it\n listElements.push(firstExpression);\n closingCurly = eatToken(_TokenKind.TokenKind.RCURLY);\n expr = _InlineList.InlineList.create(toPosBounds(token.startPos, closingCurly.endPos), listElements);\n } else if (peekTokenConsumeIfMatched(_TokenKind.TokenKind.COMMA, true)) {\n // multi item list\n listElements.push(firstExpression);\n do {\n listElements.push(eatExpression());\n } while (peekTokenConsumeIfMatched(_TokenKind.TokenKind.COMMA, true));\n closingCurly = eatToken(_TokenKind.TokenKind.RCURLY);\n expr = _InlineList.InlineList.create(toPosToken(token.startPos, closingCurly.endPos), listElements);\n } else if (peekTokenConsumeIfMatched(_TokenKind.TokenKind.COLON, true)) {\n // map!\n var mapElements = [];\n mapElements.push(firstExpression);\n mapElements.push(eatExpression());\n while (peekTokenConsumeIfMatched(_TokenKind.TokenKind.COMMA, true)) {\n mapElements.push(eatExpression());\n eatToken(_TokenKind.TokenKind.COLON);\n mapElements.push(eatExpression());\n }\n closingCurly = eatToken(_TokenKind.TokenKind.RCURLY);\n expr = _InlineMap.InlineMap.create(toPosBounds(token.startPos, closingCurly.endPos), mapElements);\n } else {\n raiseInternalException(token.startPos, 'OOD');\n }\n }\n push(expr);\n return true;\n }\n\n function maybeEatIndexer() {\n var token = peekToken();\n if (!peekTokenConsumeIfMatched(_TokenKind.TokenKind.LSQUARE, true)) {\n return false;\n }\n var expr = eatExpression();\n eatToken(_TokenKind.TokenKind.RSQUARE);\n push(_Indexer.Indexer.create(toPosToken(token), expr));\n return true;\n }\n\n function maybeEatSelection(nullSafeNavigation) {\n var token = peekToken();\n if (!peekSelectToken()) {\n return false;\n }\n nextToken();\n var expr = eatExpression();\n if (expr === null) {\n raiseInternalException(toPosToken(token), 'MISSING_SELECTION_EXPRESSION');\n }\n eatToken(_TokenKind.TokenKind.RSQUARE);\n if (token.getKind() === _TokenKind.TokenKind.SELECT_FIRST) {\n push(_Selection.Selection.create(nullSafeNavigation, _Selection.Selection.FIRST, toPosToken(token), expr));\n } else if (token.getKind() === _TokenKind.TokenKind.SELECT_LAST) {\n push(_Selection.Selection.create(nullSafeNavigation, _Selection.Selection.LAST, toPosToken(token), expr));\n } else {\n push(_Selection.Selection.create(nullSafeNavigation, _Selection.Selection.ALL, toPosToken(token), expr));\n }\n return true;\n }\n\n /**\n * Eat an identifier, possibly qualified (meaning that it is dotted).\n * TODO AndyC Could create complete identifiers (a.b.c) here rather than a sequence of them? (a, b, c)\n */\n function eatPossiblyQualifiedId() {\n var qualifiedIdPieces = [];\n var node = peekToken();\n while (isValidQualifiedId(node)) {\n nextToken();\n if (node.kind !== _TokenKind.TokenKind.DOT) {\n qualifiedIdPieces.push(_Identifier.Identifier.create(node.stringValue(), toPosToken(node)));\n }\n node = peekToken();\n }\n if (!qualifiedIdPieces.length) {\n if (node === null) {\n raiseInternalException(expressionString.length(), 'OOD');\n }\n raiseInternalException(node.startPos, 'NOT_EXPECTED_TOKEN', 'qualified ID', node.getKind().toString().toLowerCase());\n }\n var pos = toPosBounds(qualifiedIdPieces[0].getStartPosition(), qualifiedIdPieces[qualifiedIdPieces.length - 1].getEndPosition());\n return _QualifiedIdentifier.QualifiedIdentifier.create(pos, qualifiedIdPieces);\n }\n\n function isValidQualifiedId(node) {\n if (node === null || node.kind === _TokenKind.TokenKind.LITERAL_STRING) {\n return false;\n }\n if (node.kind === _TokenKind.TokenKind.DOT || node.kind === _TokenKind.TokenKind.IDENTIFIER) {\n return true;\n }\n var value = node.stringValue();\n return value && value.length && VALID_QUALIFIED_ID_PATTERN.test(value);\n }\n\n // This is complicated due to the support for dollars in identifiers. Dollars are normally separate tokens but\n // there we want to combine a series of identifiers and dollars into a single identifier\n function maybeEatMethodOrProperty(nullSafeNavigation) {\n if (peekTokenOne(_TokenKind.TokenKind.IDENTIFIER)) {\n var methodOrPropertyName = nextToken();\n var args = maybeEatMethodArgs();\n if (args === null) {\n // property\n push(_PropertyReference.PropertyReference.create(nullSafeNavigation, methodOrPropertyName.stringValue(), toPosToken(methodOrPropertyName)));\n return true;\n }\n // methodreference\n push(_MethodReference.MethodReference.create(nullSafeNavigation, methodOrPropertyName.stringValue(), toPosToken(methodOrPropertyName), args));\n // TODO what is the end position for a method reference? the name or the last arg?\n return true;\n }\n return false;\n }\n\n //constructor\n //:\t('new' qualifiedId LPAREN) => 'new' qualifiedId ctorArgs -> ^(CONSTRUCTOR qualifiedId ctorArgs)\n function maybeEatConstructorReference() {\n if (peekIdentifierToken('new')) {\n var newToken = nextToken();\n // It looks like a constructor reference but is NEW being used as a map key?\n if (peekTokenOne(_TokenKind.TokenKind.RSQUARE)) {\n // looks like 'NEW]' (so NEW used as map key)\n push(_PropertyReference.PropertyReference.create(newToken.stringValue(), toPosToken(newToken)));\n return true;\n }\n var possiblyQualifiedConstructorName = eatPossiblyQualifiedId();\n var nodes = [];\n nodes.push(possiblyQualifiedConstructorName);\n if (peekTokenOne(_TokenKind.TokenKind.LSQUARE)) {\n // array initializer\n var dimensions = [];\n while (peekTokenConsumeIfMatched(_TokenKind.TokenKind.LSQUARE, true)) {\n if (!peekTokenOne(_TokenKind.TokenKind.RSQUARE)) {\n dimensions.push(eatExpression());\n } else {\n dimensions.push(null);\n }\n eatToken(_TokenKind.TokenKind.RSQUARE);\n }\n if (maybeEatInlineListOrMap()) {\n nodes.push(pop());\n }\n push(_ConstructorReference.ConstructorReference.create(toPosToken(newToken), dimensions, nodes));\n } else {\n // regular constructor invocation\n eatConstructorArgs(nodes);\n // TODO correct end position?\n push(_ConstructorReference.ConstructorReference.create(toPosToken(newToken), nodes));\n }\n return true;\n }\n return false;\n }\n\n function push(newNode) {\n constructedNodes.push(newNode);\n }\n\n function pop() {\n return constructedNodes.pop();\n }\n\n //\tliteral\n // : INTEGER_LITERAL\n //\t| boolLiteral\n //\t| STRING_LITERAL\n // | HEXADECIMAL_INTEGER_LITERAL\n // | REAL_LITERAL\n //\t| DQ_STRING_LITERAL\n //\t| NULL_LITERAL\n function maybeEatLiteral() {\n var token = peekToken();\n if (token === null) {\n return false;\n }\n if (token.getKind() === _TokenKind.TokenKind.LITERAL_INT || token.getKind() === _TokenKind.TokenKind.LITERAL_LONG) {\n push(_NumberLiteral.NumberLiteral.create(parseInt(token.stringValue(), 10), toPosToken(token)));\n } else if (token.getKind() === _TokenKind.TokenKind.LITERAL_REAL || token.getKind() === _TokenKind.TokenKind.LITERAL_REAL_FLOAT) {\n push(_NumberLiteral.NumberLiteral.create(parseFloat(token.stringValue()), toPosToken(token)));\n } else if (token.getKind() === _TokenKind.TokenKind.LITERAL_HEXINT || token.getKind() === _TokenKind.TokenKind.LITERAL_HEXLONG) {\n push(_NumberLiteral.NumberLiteral.create(parseInt(token.stringValue(), 16), toPosToken(token)));\n } else if (peekIdentifierToken('true')) {\n push(_BooleanLiteral.BooleanLiteral.create(true, toPosToken(token)));\n } else if (peekIdentifierToken('false')) {\n push(_BooleanLiteral.BooleanLiteral.create(false, toPosToken(token)));\n } else if (token.getKind() === _TokenKind.TokenKind.LITERAL_STRING) {\n push(_StringLiteral.StringLiteral.create(token.stringValue(), toPosToken(token)));\n } else {\n return false;\n }\n nextToken();\n return true;\n }\n\n //parenExpr : LPAREN! expression RPAREN!;\n function maybeEatParenExpression() {\n if (peekTokenOne(_TokenKind.TokenKind.LPAREN)) {\n nextToken();\n var expr = eatExpression();\n eatToken(_TokenKind.TokenKind.RPAREN);\n push(expr);\n return true;\n } else {\n return false;\n }\n }\n\n // relationalOperator\n // : EQUAL | NOT_EQUAL | LESS_THAN | LESS_THAN_OR_EQUAL | GREATER_THAN\n // | GREATER_THAN_OR_EQUAL | INSTANCEOF | BETWEEN | MATCHES\n function maybeEatRelationalOperator() {\n var token = peekToken();\n if (token === null) {\n return null;\n }\n if (token.isNumericRelationalOperator()) {\n return token;\n }\n if (token.isIdentifier()) {\n var idString = token.stringValue();\n if (idString.toLowerCase() === 'instanceof') {\n return token.asInstanceOfToken();\n }\n if (idString.toLowerCase() === 'matches') {\n return token.asMatchesToken();\n }\n if (idString.toLowerCase() === 'between') {\n return token.asBetweenToken();\n }\n }\n return null;\n }\n\n function eatToken(expectedKind) {\n var token = nextToken();\n if (token === null) {\n raiseInternalException(expressionString.length, 'OOD');\n }\n if (token.getKind() !== expectedKind) {\n raiseInternalException(token.startPos, 'NOT_EXPECTED_TOKEN', expectedKind.toString().toLowerCase(), token.getKind().toString().toLowerCase());\n }\n return token;\n }\n\n function peekTokenOne(desiredTokenKind) {\n return peekTokenConsumeIfMatched(desiredTokenKind, false);\n }\n\n function peekTokenConsumeIfMatched(desiredTokenKind, consumeIfMatched) {\n if (!moreTokens()) {\n return false;\n }\n var token = peekToken();\n if (token.getKind() === desiredTokenKind) {\n if (consumeIfMatched) {\n tokenStreamPointer++;\n }\n return true;\n }\n\n if (desiredTokenKind === _TokenKind.TokenKind.IDENTIFIER) {\n // might be one of the textual forms of the operators (e.g. NE for !== ) - in which case we can treat it as an identifier\n // The list is represented here: Tokenizer.alternativeOperatorNames and those ones are in order in the TokenKind enum\n if (token.getKind().ordinal() >= _TokenKind.TokenKind.DIV.ordinal() && token.getKind().ordinal() <= _TokenKind.TokenKind.NOT.ordinal() && token.data !== null) {\n // if token.data were null, we'd know it wasn'token the textual form, it was the symbol form\n return true;\n }\n }\n return false;\n }\n\n function peekTokenAny() {\n if (!moreTokens()) {\n return false;\n }\n var token = peekToken();\n var args = Array.prototype.slice.call(arguments);\n for (var i = 0, l = args.length; i < l; i += 1) {\n if (token.getKind() === args[i]) {\n return true;\n }\n }\n return false;\n }\n\n function peekIdentifierToken(identifierString) {\n if (!moreTokens()) {\n return false;\n }\n var token = peekToken();\n return token.getKind() === _TokenKind.TokenKind.IDENTIFIER && token.stringValue().toLowerCase() === identifierString.toLowerCase();\n }\n\n function peekSelectToken() {\n if (!moreTokens()) {\n return false;\n }\n var token = peekToken();\n return token.getKind() === _TokenKind.TokenKind.SELECT || token.getKind() === _TokenKind.TokenKind.SELECT_FIRST || token.getKind() === _TokenKind.TokenKind.SELECT_LAST;\n }\n\n function moreTokens() {\n return tokenStreamPointer < tokenStream.length;\n }\n\n function nextToken() {\n if (tokenStreamPointer >= tokenStreamLength) {\n return null;\n }\n return tokenStream[tokenStreamPointer++];\n }\n\n function peekToken() {\n if (tokenStreamPointer >= tokenStreamLength) {\n return null;\n }\n return tokenStream[tokenStreamPointer];\n }\n\n function raiseInternalException(pos, message, expected, actual) {\n if (expected) {\n message += '\\nExpected: ' + expected;\n }\n if (actual) {\n message += '\\nActual: ' + actual;\n }\n throw {\n name: 'InternalParseException',\n message: 'Error occurred while attempting to parse expression \\'' + expressionString + '\\' at position ' + pos + '. Message: ' + message\n };\n }\n\n function toString(token) {\n if (token.getKind().hasPayload()) {\n return token.stringValue();\n }\n return token.getKind().toString().toLowerCase();\n }\n\n function checkOperands(token, left, right) {\n checkLeftOperand(token, left);\n checkRightOperand(token, right);\n }\n\n function checkLeftOperand(token, operandExpression) {\n if (operandExpression === null) {\n raiseInternalException(token.startPos, 'LEFT_OPERAND_PROBLEM');\n }\n }\n\n function checkRightOperand(token, operandExpression) {\n if (operandExpression === null) {\n raiseInternalException(token.startPos, 'RIGHT_OPERAND_PROBLEM');\n }\n }\n\n /**\n * Compress the start and end of a token into a single int.\n */\n function toPosToken(token) {\n return (token.startPos << 16) + token.endPos;\n }\n\n function toPosBounds(start, end) {\n return (start << 16) + end;\n }\n\n return {\n setConfiguration: setConfiguration,\n parse: parse\n };\n};\n\n//not yet implemented\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Tokenizer = undefined;\n\nvar _Token = __webpack_require__(7);\n\nvar _TokenKind = __webpack_require__(2);\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Andy Clement\n * @author Phillip Webb\n * @author Ben March\n * @since 0.2.0\n */\n\nvar ALTERNATIVE_OPERATOR_NAMES = ['DIV', 'EQ', 'GE', 'GT', 'LE', 'LT', 'MOD', 'NE', 'NOT'],\n FLAGS = [],\n IS_DIGIT = 1,\n IS_HEXDIGIT = 2,\n IS_ALPHA = 4;\n\nfunction init() {\n var ch;\n\n for (ch = '0'.charCodeAt(0); ch <= '9'.charCodeAt(0); ch += 1) {\n FLAGS[ch] |= IS_DIGIT | IS_HEXDIGIT;\n }\n for (ch = 'A'.charCodeAt(0); ch <= 'F'.charCodeAt(0); ch += 1) {\n FLAGS[ch] |= IS_HEXDIGIT;\n }\n for (ch = 'a'.charCodeAt(0); ch <= 'f'.charCodeAt(0); ch += 1) {\n FLAGS[ch] |= IS_HEXDIGIT;\n }\n for (ch = 'A'.charCodeAt(0); ch <= 'Z'.charCodeAt(0); ch += 1) {\n FLAGS[ch] |= IS_ALPHA;\n }\n for (ch = 'a'.charCodeAt(0); ch <= 'z'.charCodeAt(0); ch += 1) {\n FLAGS[ch] |= IS_ALPHA;\n }\n}\n\ninit();\n\nfunction tokenize(inputData) {\n var expressionString = inputData,\n toProcess = inputData + '\\0',\n max = toProcess.length,\n pos = 0,\n tokens = [];\n\n function process() {\n var ch;\n\n while (pos < max) {\n ch = toProcess[pos];\n if (isAlphabetic(ch)) {\n lexIdentifier();\n } else {\n switch (ch) {\n case '+':\n if (isTwoCharToken(_TokenKind.TokenKind.INC)) {\n pushPairToken(_TokenKind.TokenKind.INC);\n } else {\n pushCharToken(_TokenKind.TokenKind.PLUS);\n }\n break;\n case '_':\n // the other way to start an identifier\n lexIdentifier();\n break;\n case '-':\n if (isTwoCharToken(_TokenKind.TokenKind.DEC)) {\n pushPairToken(_TokenKind.TokenKind.DEC);\n } else {\n pushCharToken(_TokenKind.TokenKind.MINUS);\n }\n break;\n case ':':\n pushCharToken(_TokenKind.TokenKind.COLON);\n break;\n case '.':\n pushCharToken(_TokenKind.TokenKind.DOT);\n break;\n case ',':\n pushCharToken(_TokenKind.TokenKind.COMMA);\n break;\n case '*':\n pushCharToken(_TokenKind.TokenKind.STAR);\n break;\n case '/':\n pushCharToken(_TokenKind.TokenKind.DIV);\n break;\n case '%':\n pushCharToken(_TokenKind.TokenKind.MOD);\n break;\n case '(':\n pushCharToken(_TokenKind.TokenKind.LPAREN);\n break;\n case ')':\n pushCharToken(_TokenKind.TokenKind.RPAREN);\n break;\n case '[':\n pushCharToken(_TokenKind.TokenKind.LSQUARE);\n break;\n case '#':\n pushCharToken(_TokenKind.TokenKind.HASH);\n break;\n case ']':\n pushCharToken(_TokenKind.TokenKind.RSQUARE);\n break;\n case '{':\n pushCharToken(_TokenKind.TokenKind.LCURLY);\n break;\n case '}':\n pushCharToken(_TokenKind.TokenKind.RCURLY);\n break;\n case '@':\n pushCharToken(_TokenKind.TokenKind.BEAN_REF);\n break;\n case '^':\n if (isTwoCharToken(_TokenKind.TokenKind.SELECT_FIRST)) {\n pushPairToken(_TokenKind.TokenKind.SELECT_FIRST);\n } else {\n pushCharToken(_TokenKind.TokenKind.POWER);\n }\n break;\n case '!':\n if (isTwoCharToken(_TokenKind.TokenKind.NE)) {\n pushPairToken(_TokenKind.TokenKind.NE);\n } else if (isTwoCharToken(_TokenKind.TokenKind.PROJECT)) {\n pushPairToken(_TokenKind.TokenKind.PROJECT);\n } else {\n pushCharToken(_TokenKind.TokenKind.NOT);\n }\n break;\n case '=':\n if (isTwoCharToken(_TokenKind.TokenKind.EQ)) {\n pushPairToken(_TokenKind.TokenKind.EQ);\n } else {\n pushCharToken(_TokenKind.TokenKind.ASSIGN);\n }\n break;\n case '&':\n if (!isTwoCharToken(_TokenKind.TokenKind.SYMBOLIC_AND)) {\n throw {\n name: 'SpelParseException',\n message: 'Missing character \\'&\\' in expression (' + expressionString + ') at position ' + pos\n };\n }\n pushPairToken(_TokenKind.TokenKind.SYMBOLIC_AND);\n break;\n case '|':\n if (!isTwoCharToken(_TokenKind.TokenKind.SYMBOLIC_OR)) {\n throw {\n name: 'SpelParseException',\n message: 'Missing character \\'|\\' in expression (' + expressionString + ') at position ' + pos\n };\n }\n pushPairToken(_TokenKind.TokenKind.SYMBOLIC_OR);\n break;\n case '?':\n if (isTwoCharToken(_TokenKind.TokenKind.SELECT)) {\n pushPairToken(_TokenKind.TokenKind.SELECT);\n } else if (isTwoCharToken(_TokenKind.TokenKind.ELVIS)) {\n pushPairToken(_TokenKind.TokenKind.ELVIS);\n } else if (isTwoCharToken(_TokenKind.TokenKind.SAFE_NAVI)) {\n pushPairToken(_TokenKind.TokenKind.SAFE_NAVI);\n } else {\n pushCharToken(_TokenKind.TokenKind.QMARK);\n }\n break;\n case '$':\n if (isTwoCharToken(_TokenKind.TokenKind.SELECT_LAST)) {\n pushPairToken(_TokenKind.TokenKind.SELECT_LAST);\n } else {\n lexIdentifier();\n }\n break;\n case '>':\n if (isTwoCharToken(_TokenKind.TokenKind.GE)) {\n pushPairToken(_TokenKind.TokenKind.GE);\n } else {\n pushCharToken(_TokenKind.TokenKind.GT);\n }\n break;\n case '<':\n if (isTwoCharToken(_TokenKind.TokenKind.LE)) {\n pushPairToken(_TokenKind.TokenKind.LE);\n } else {\n pushCharToken(_TokenKind.TokenKind.LT);\n }\n break;\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n lexNumericLiteral(ch === '0');\n break;\n case ' ':\n case '\\t':\n case '\\r':\n case '\\n':\n // drift over white space\n pos += 1;\n break;\n case '\\'':\n lexQuotedStringLiteral();\n break;\n case '\"':\n lexDoubleQuotedStringLiteral();\n break;\n case '\\0':\n // hit sentinel at end of value\n pos += 1; // will take us to the end\n break;\n case '\\\\':\n throw {\n name: 'SpelParseException',\n message: 'Unexpected escape character in expression (' + expressionString + ') at position ' + pos\n };\n default:\n throw {\n name: 'SpelParseException',\n message: 'Cannot handle character \\'' + ch + '\\' in expression (' + expressionString + ') at position ' + pos\n };\n }\n }\n }\n }\n\n function lexQuotedStringLiteral() {\n var start = pos,\n terminated = false,\n ch;\n\n while (!terminated) {\n pos += 1;\n ch = toProcess[pos];\n if (ch === '\\'') {\n // may not be the end if the char after is also a '\n if (toProcess[pos + 1] === '\\'') {\n pos += 1; // skip over that too, and continue\n } else {\n terminated = true;\n }\n }\n if (ch.charCodeAt(0) === 0) {\n throw {\n name: 'SpelParseException',\n message: 'Non-terminating quoted string in expression (' + expressionString + ') at position ' + pos\n };\n }\n }\n pos += 1;\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_STRING, subarray(start, pos), start, pos));\n }\n function lexDoubleQuotedStringLiteral() {\n var start = pos,\n terminated = false,\n ch;\n\n while (!terminated) {\n pos += 1;\n ch = toProcess[pos];\n if (ch === '\"') {\n // may not be the end if the char after is also a '\n if (toProcess[pos + 1] === '\"') {\n pos += 1; // skip over that too, and continue\n } else {\n terminated = true;\n }\n }\n if (ch.charCodeAt(0) === 0) {\n throw {\n name: 'SpelParseException',\n message: 'Non-terminating double-quoted string in expression (' + expressionString + ') at position ' + pos\n };\n }\n }\n pos += 1;\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_STRING, subarray(start, pos), start, pos));\n }\n\n // REAL_LITERAL :\n // ('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |\n // ((DECIMAL_DIGIT)+ '.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |\n // ((DECIMAL_DIGIT)+ (EXPONENT_PART) (REAL_TYPE_SUFFIX)?) |\n // ((DECIMAL_DIGIT)+ (REAL_TYPE_SUFFIX));\n // fragment INTEGER_TYPE_SUFFIX : ( 'L' | 'l' );\n // fragment HEX_DIGIT :\n // '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'A'|'B'|'C'|'D'|'E'|'F'|'a'|'b'|'c'|'d'|'e'|'f';\n //\n // fragment EXPONENT_PART : 'e' (SIGN)* (DECIMAL_DIGIT)+ | 'E' (SIGN)*\n // (DECIMAL_DIGIT)+ ;\n // fragment SIGN : '+' | '-' ;\n // fragment REAL_TYPE_SUFFIX : 'F' | 'f' | 'D' | 'd';\n // INTEGER_LITERAL\n // : (DECIMAL_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;\n\n function lexNumericLiteral(firstCharIsZero) {\n var isReal = false,\n start = pos,\n ch = toProcess[pos + 1],\n isHex = ch === 'x' || ch === 'X',\n dotpos,\n endOfNumber,\n possibleSign,\n isFloat;\n\n // deal with hexadecimal\n if (firstCharIsZero && isHex) {\n pos = pos + 1;\n do {\n pos += 1;\n } while (isHexadecimalDigit(toProcess[pos]));\n if (isChar('L', 'l')) {\n pushHexIntToken(subarray(start + 2, pos), true, start, pos);\n pos += 1;\n } else {\n pushHexIntToken(subarray(start + 2, pos), false, start, pos);\n }\n return;\n }\n\n // real numbers must have leading digits\n\n // Consume first part of number\n do {\n pos += 1;\n } while (isDigit(toProcess[pos]));\n\n // a '.' indicates this number is a real\n ch = toProcess[pos];\n if (ch === '.') {\n isReal = true;\n dotpos = pos;\n // carry on consuming digits\n do {\n pos += 1;\n } while (isDigit(toProcess[pos]));\n if (pos === dotpos + 1) {\n // the number is something like '3.'. It is really an int but may be\n // part of something like '3.toString()'. In this case process it as\n // an int and leave the dot as a separate token.\n pos = dotpos;\n pushIntToken(subarray(start, pos), false, start, pos);\n return;\n }\n }\n\n endOfNumber = pos;\n\n // Now there may or may not be an exponent\n\n // is it a long ?\n if (isChar('L', 'l')) {\n if (isReal) {\n // 3.4L - not allowed\n throw {\n name: 'SpelParseException',\n message: 'Real cannot be long in expression (' + expressionString + ') at position ' + pos\n };\n }\n pushIntToken(subarray(start, endOfNumber), true, start, endOfNumber);\n pos += 1;\n } else if (isExponentChar(toProcess[pos])) {\n isReal = true; // if it wasn't before, it is now\n pos += 1;\n possibleSign = toProcess[pos];\n if (isSign(possibleSign)) {\n pos += 1;\n }\n\n // exponent digits\n do {\n pos += 1;\n } while (isDigit(toProcess[pos]));\n isFloat = false;\n if (isFloatSuffix(toProcess[pos])) {\n isFloat = true;\n pos += 1;\n endOfNumber = pos;\n } else if (isDoubleSuffix(toProcess[pos])) {\n pos += 1;\n endOfNumber = pos;\n }\n pushRealToken(subarray(start, pos), isFloat, start, pos);\n } else {\n ch = toProcess[pos];\n isFloat = false;\n if (isFloatSuffix(ch)) {\n isReal = true;\n isFloat = true;\n pos += 1;\n endOfNumber = pos;\n } else if (isDoubleSuffix(ch)) {\n isReal = true;\n pos += 1;\n endOfNumber = pos;\n }\n if (isReal) {\n pushRealToken(subarray(start, endOfNumber), isFloat, start, endOfNumber);\n } else {\n pushIntToken(subarray(start, endOfNumber), false, start, endOfNumber);\n }\n }\n }\n\n function lexIdentifier() {\n var start = pos,\n substring,\n asString,\n idx;\n do {\n pos += 1;\n } while (isIdentifier(toProcess[pos]));\n substring = subarray(start, pos);\n\n // Check if this is the alternative (textual) representation of an operator (see\n // alternativeOperatorNames)\n if (pos - start === 2 || pos - start === 3) {\n asString = substring.toUpperCase();\n idx = ALTERNATIVE_OPERATOR_NAMES.indexOf(asString);\n if (idx >= 0) {\n pushOneCharOrTwoCharToken(_TokenKind.TokenKind.valueOf(asString), start, substring);\n return;\n }\n }\n tokens.push(new _Token.Token(_TokenKind.TokenKind.IDENTIFIER, substring.replace('\\0', ''), start, pos));\n }\n\n function pushIntToken(data, isLong, start, end) {\n if (isLong) {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_LONG, data, start, end));\n } else {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_INT, data, start, end));\n }\n }\n\n function pushHexIntToken(data, isLong, start, end) {\n if (data.length === 0) {\n if (isLong) {\n throw {\n name: 'SpelParseException',\n message: 'Not a long in expression (' + expressionString + ') at position ' + pos\n };\n } else {\n throw {\n name: 'SpelParseException',\n message: 'Not an int in expression (' + expressionString + ') at position ' + pos\n };\n }\n }\n if (isLong) {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_HEXLONG, data, start, end));\n } else {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_HEXINT, data, start, end));\n }\n }\n\n function pushRealToken(data, isFloat, start, end) {\n if (isFloat) {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_REAL_FLOAT, data, start, end));\n } else {\n tokens.push(new _Token.Token(_TokenKind.TokenKind.LITERAL_REAL, data, start, end));\n }\n }\n\n function subarray(start, end) {\n return toProcess.substring(start, end);\n }\n\n /**\n * Check if this might be a two character token.\n */\n function isTwoCharToken(kind) {\n if (kind.tokenChars.length === 2 && toProcess[pos] === kind.tokenChars[0]) {\n return toProcess[pos + 1] === kind.tokenChars[1];\n }\n return false;\n }\n\n /**\n * Push a token of just one character in length.\n */\n function pushCharToken(kind) {\n tokens.push(new _Token.Token(kind, null, pos, pos + 1));\n pos += 1;\n }\n\n /**\n * Push a token of two characters in length.\n */\n function pushPairToken(kind) {\n tokens.push(new _Token.Token(kind, null, pos, pos + 2));\n pos += 2;\n }\n\n function pushOneCharOrTwoCharToken(kind, pos, data) {\n tokens.push(new _Token.Token(kind, data, pos, pos + kind.getLength()));\n }\n\n // ID: ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'$'|'0'..'9'|DOT_ESCAPED)*;\n function isIdentifier(ch) {\n return isAlphabetic(ch) || isDigit(ch) || ch === '_' || ch === '$';\n }\n\n function isChar(a, b) {\n var ch = toProcess[pos];\n return ch === a || ch === b;\n }\n\n function isExponentChar(ch) {\n return ch === 'e' || ch === 'E';\n }\n\n function isFloatSuffix(ch) {\n return ch === 'f' || ch === 'F';\n }\n\n function isDoubleSuffix(ch) {\n return ch === 'd' || ch === 'D';\n }\n\n function isSign(ch) {\n return ch === '+' || ch === '-';\n }\n\n function isDigit(ch) {\n if (ch.charCodeAt(0) > 255) {\n return false;\n }\n return (FLAGS[ch.charCodeAt(0)] & IS_DIGIT) !== 0;\n }\n\n function isAlphabetic(ch) {\n if (ch.charCodeAt(0) > 255) {\n return false;\n }\n return (FLAGS[ch.charCodeAt(0)] & IS_ALPHA) !== 0;\n }\n\n function isHexadecimalDigit(ch) {\n if (ch.charCodeAt(0) > 255) {\n return false;\n }\n return (FLAGS[ch.charCodeAt(0)] & IS_HEXDIGIT) !== 0;\n }\n\n process();\n\n return tokens;\n}\n\nvar Tokenizer = exports.Tokenizer = {\n tokenize: tokenize\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Token = undefined;\n\nvar _TokenKind = __webpack_require__(2);\n\nfunction Token(tokenKind, tokenData, startPos, endPos) {\n this.kind = tokenKind;\n this.startPos = startPos;\n this.endPos = endPos;\n if (tokenData) {\n this.data = tokenData;\n }\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nToken.prototype.getKind = function () {\n return this.kind;\n};\n\nToken.prototype.toString = function () {\n var s = '[';\n s += this.kind.toString();\n if (this.kind.hasPayload()) {\n s += ':' + this.data;\n }\n s += ']';\n s += '(' + this.startPos + ',' + this.endPos + ')';\n return s;\n};\n\nToken.prototype.isIdentifier = function () {\n return this.kind === _TokenKind.TokenKind.IDENTIFIER;\n};\n\nToken.prototype.isNumericRelationalOperator = function () {\n return this.kind === _TokenKind.TokenKind.GT || this.kind === _TokenKind.TokenKind.GE || this.kind === _TokenKind.TokenKind.LT || this.kind === _TokenKind.TokenKind.LE || this.kind === _TokenKind.TokenKind.EQ || this.kind === _TokenKind.TokenKind.NE;\n};\n\nToken.prototype.stringValue = function () {\n return this.data;\n};\n\nToken.prototype.asInstanceOfToken = function () {\n return new Token(_TokenKind.TokenKind.INSTANCEOF, this.startPos, this.endPos);\n};\n\nToken.prototype.asMatchesToken = function () {\n return new Token(_TokenKind.TokenKind.MATCHES, this.startPos, this.endPos);\n};\n\nToken.prototype.asBetweenToken = function () {\n return new Token(_TokenKind.TokenKind.BETWEEN, this.startPos, this.endPos);\n};\n\nToken.prototype.getStartPosition = function () {\n return this.startPos;\n};\n\nToken.prototype.getEndPosition = function () {\n return this.endPos;\n};\n\nexports.Token = Token;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BooleanLiteral = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents the literal values TRUE and FALSE.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(value, position) {\n var node = _SpelNode.SpelNode.create('boolean', position);\n\n node.getValue = function () {\n return value;\n };\n\n node.setValue = function (newValue) {\n /*jshint -W093 */\n return value = newValue;\n /*jshint +W093 */\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar BooleanLiteral = exports.BooleanLiteral = {\n create: createNode\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NumberLiteral = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Expression language AST node that represents a literal number of any kind (since JavaScript only supports doubles anyway)\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(value, position) {\n var node = _SpelNode.SpelNode.create('number', position);\n\n node.getValue = function () {\n return value;\n };\n\n node.setValue = function (newValue) {\n /*jshint -W093 */\n return value = newValue;\n /*jshint +W093 */\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar NumberLiteral = exports.NumberLiteral = {\n create: createNode\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.StringLiteral = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Expression language AST node that represents a string literal.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(value, position) {\n var node = _SpelNode.SpelNode.create('string', position);\n\n function stripQuotes(value) {\n if (value[0] === '\\'' && value[value.length - 1] === '\\'' || value[0] === '\"' && value[value.length - 1] === '\"') {\n value = value.substring(1, value.length - 1);\n }\n\n return value.replace(/''/g, '\\'').replace(/\"\"/g, '\"');\n }\n\n //value cannot be null so no check\n value = stripQuotes(value);\n\n node.getValue = function () {\n return value;\n };\n\n node.setValue = function (newValue) {\n /*jshint -W093 */\n return value = newValue;\n /*jshint +W093 */\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar StringLiteral = exports.StringLiteral = {\n create: createNode\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NullLiteral = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Expression language AST node that represents null.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(value, position) {\n var node = _SpelNode.SpelNode.create('null', position);\n\n node.getValue = function () {\n return null;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar NullLiteral = exports.NullLiteral = {\n create: createNode\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FunctionReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\nvar _Stack = __webpack_require__(1);\n\n/**\n * A function reference is of the form \"#someFunction(a,b,c)\". Functions may be defined in\n * the context prior to the expression being evaluated or within the expression itself\n * using a lambda function definition. For example: Lambda function definition in an\n * expression: \"(#max = {|x,y|$x>$y?$x:$y};max(2,3))\" Calling context defined function:\n * \"#isEven(37)\". Functions may also be static java methods, registered in the context\n * prior to invocation of the expression.\n *\n * <p>Functions are very simplistic, the arguments are not part of the definition (right\n * now), so the names must be unique.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nfunction createNode(functionName, position, args) {\n var node = _SpelNode.SpelNode.create('function', position);\n\n node.getRaw = function () {\n return {\n functionName: functionName,\n args: args\n };\n };\n\n node.getValue = function (state) {\n var locals = state.locals || {},\n context = state.rootContext,\n compiledArgs = [];\n\n //populate arguments\n args.forEach(function (arg) {\n // reset the active context to root context for evaluating argument\n var currentActiveContext = state.activeContext;\n state.activeContext = new _Stack.Stack();\n state.activeContext.push(state.rootContext);\n\n // evaluate argument\n compiledArgs.push(arg.getValue(state));\n\n // reset the active context\n state.activeContext = currentActiveContext;\n });\n\n if (locals[functionName]) {\n return locals[functionName].apply(context, compiledArgs);\n }\n\n throw {\n name: 'FunctionDoesNotExistException',\n message: 'Function \\'' + functionName + '\\' does not exist.'\n };\n };\n\n return node;\n}\n\nvar FunctionReference = exports.FunctionReference = {\n create: createNode\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MethodReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\nvar _Stack = __webpack_require__(1);\n\n/**\n * Expression language AST node that represents a method reference.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ben March\n * @since 0.2.0\n */\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nfunction createNode(nullSafeNavigation, methodName, position, args) {\n var node = _SpelNode.SpelNode.create('method', position);\n\n node.getRaw = function () {\n return {\n methodName: methodName,\n args: args\n };\n };\n\n node.getValue = function (state) {\n var context = state.activeContext.peek(),\n compiledArgs = [],\n method;\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to look up property \\'' + methodName + '\\' for an undefined context.'\n };\n }\n\n //handle safe navigation\n function maybeHandleNullSafeNavigation(member) {\n if (member === undefined || member === null) {\n if (nullSafeNavigation) {\n return null;\n }\n\n throw {\n name: 'NullPointerException',\n message: 'Method ' + methodName + ' does not exist.'\n };\n }\n\n return member;\n }\n\n //populate arguments\n args.forEach(function (arg) {\n // reset the active context to root context for evaluating argument\n var currentActiveContext = state.activeContext;\n state.activeContext = new _Stack.Stack();\n state.activeContext.push(state.rootContext);\n\n // evaluate argument\n compiledArgs.push(arg.getValue(state));\n\n // reset the active context\n state.activeContext = currentActiveContext;\n });\n\n //accessors might not be available\n if (methodName.substr(0, 3) === 'get' && !context[methodName]) {\n return maybeHandleNullSafeNavigation(context[methodName.charAt(3).toLowerCase() + methodName.substring(4)]);\n }\n if (methodName.substr(0, 3) === 'set' && !context[methodName]) {\n /*jshint -W093 */\n return context[methodName.charAt(3).toLowerCase() + methodName.substring(4)] = compiledArgs[0];\n /*jshint +W093 */\n }\n\n //array methods\n if (Array.isArray(context)) {\n //size() -> length\n if (methodName === 'size') {\n return context.length;\n }\n\n if (methodName === 'contains') {\n return context.includes(compiledArgs[0]);\n }\n }\n\n method = maybeHandleNullSafeNavigation(context[methodName]);\n if (method) {\n return method.apply(context, compiledArgs);\n }\n return null;\n };\n\n return node;\n}\n\nvar MethodReference = exports.MethodReference = {\n create: createNode\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PropertyReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a simple property or field reference.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Clark Duplichien\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(nullSafeNavigation, propertyName, position) {\n var node = _SpelNode.SpelNode.create('property', position);\n\n node.getRaw = function () {\n return propertyName;\n };\n\n node.getValue = function (state) {\n var context = state.activeContext.peek();\n\n if (!context) {\n if (nullSafeNavigation) {\n return null;\n }\n\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to look up property \\'' + propertyName + '\\' for an undefined context.'\n };\n }\n\n if (context[propertyName] === undefined || context[propertyName] === null) {\n //handle safe navigation\n if (nullSafeNavigation) {\n return null;\n }\n\n //handle conversion of Java properties to JavaScript properties\n if (propertyName === 'size' && Array.isArray(context)) {\n return context.length;\n }\n\n throw {\n name: 'NullPointerException',\n message: 'Property \\'' + propertyName + '\\' does not exist.'\n };\n }\n\n return context[propertyName];\n };\n\n node.setValue = function (value, state) {\n var context = state.activeContext.peek();\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to assign property \\'' + propertyName + '\\' for an undefined context.'\n };\n }\n\n /*jshint -W093 */\n return context[propertyName] = value;\n /*jshint +W093 */\n };\n\n node.getName = function () {\n return propertyName;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar PropertyReference = exports.PropertyReference = {\n create: createNode\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.VariableReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a variable reference, eg. #someVar. Note this is different to a *local*\n * variable like $someVar\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(variableName, position) {\n var node = _SpelNode.SpelNode.create('variable', position);\n\n node.getRaw = function () {\n return variableName;\n };\n\n node.getValue = function (state) {\n var context = state.activeContext.peek(),\n locals = state.locals;\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to look up variable \\'' + variableName + '\\' for an undefined context.'\n };\n }\n\n //there are 2 keywords (root, this) that need to be dealt with\n if (variableName === 'this') {\n return context;\n }\n if (variableName === 'root') {\n return state.rootContext;\n }\n\n return locals[variableName];\n };\n\n node.setValue = function (value, state) {\n var locals = state.locals;\n\n /*jshint -W093 */\n return locals[variableName] = value;\n /*jshint +W093 */\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar VariableReference = exports.VariableReference = {\n create: createNode\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CompoundExpression = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a DOT separated expression sequence, such as 'property1.property2.methodOne()'\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, expressionComponents) {\n var node = _SpelNode.SpelNode.create.apply(null, ['compound', position].concat(expressionComponents));\n\n function buildContextStack(state) {\n var childrenCount = node.getChildren().length,\n i;\n\n for (i = 0; i < childrenCount; i += 1) {\n if (node.getChildren()[i].getType() === 'indexer') {\n state.activeContext.push(state.activeContext.peek()[node.getChildren()[i].getValue(state)]);\n } else {\n state.activeContext.push(node.getChildren()[i].getValue(state));\n }\n }\n\n return function unbuildContextStack() {\n for (i = 0; i < childrenCount; i += 1) {\n state.activeContext.pop();\n }\n };\n }\n\n node.getValue = function (state) {\n var context = state.activeContext.peek(),\n value;\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to evaluate compound expression with an undefined context.'\n };\n }\n\n var unbuildContextStack = buildContextStack(state);\n\n value = state.activeContext.peek();\n\n unbuildContextStack();\n\n return value;\n };\n\n node.setValue = function (value, state) {\n var unbuildContextStack = buildContextStack(state),\n childCount = node.getChildren().length;\n\n state.activeContext.pop();\n\n value = node.getChildren()[childCount - 1].setValue(value, state);\n\n state.activeContext.push(null);\n\n unbuildContextStack();\n\n return value;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar CompoundExpression = exports.CompoundExpression = {\n create: createNode\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Indexer = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\nvar _Stack = __webpack_require__(1);\n\n/**\n * An Indexer can index into some proceeding structure to access a particular piece of it.\n * Supported structures are: strings / collections (lists/sets) / arrays.\n *\n * @author Andy Clement\n * @author Phillip Webb\n * @author Stephane Nicoll\n * @author Ben March\n * @since 0.2.0\n */\n\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nfunction createNode(position, expressionComponents) {\n var node = _SpelNode.SpelNode.create.apply(null, ['indexer', position].concat(expressionComponents));\n\n node.getValue = function (state) {\n var activeContext = state.activeContext,\n context,\n childrenCount = node.getChildren().length,\n i,\n value;\n\n state.activeContext = new _Stack.Stack();\n state.activeContext.push(state.rootContext);\n\n context = state.activeContext.peek();\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to evaluate compound expression with an undefined context.'\n };\n }\n\n for (i = 0; i < childrenCount; i += 1) {\n state.activeContext.push(node.getChildren()[i].getValue(state));\n }\n\n value = state.activeContext.peek();\n\n for (i = 0; i < childrenCount; i += 1) {\n state.activeContext.pop();\n }\n\n state.activeContext = activeContext;\n\n return value;\n };\n\n //node.setContext(node.getValue());\n\n return node;\n}\n\nvar Indexer = exports.Indexer = {\n create: createNode\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Assign = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents assignment. An alternative to calling setValue() for an expression is to use\n * an assign.\n *\n * <p>Example: 'someNumberProperty=42'\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, property, assignedValue) {\n var node = _SpelNode.SpelNode.create('assign', position, property, assignedValue);\n\n node.getValue = function (state) {\n var context = state.activeContext.peek();\n\n if (!context) {\n throw {\n name: 'ContextDoesNotExistException',\n message: 'Attempting to assign property \\'' + property.getValue(state) + '\\' for an undefined context.'\n };\n }\n\n return property.setValue(assignedValue.getValue(state), state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Assign = exports.Assign = {\n create: createNode\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpEQ = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the equality operator.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-eq', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) === right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpEQ = exports.OpEQ = {\n create: createNode\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpNE = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the not-equal operator.\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-ne', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) !== right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpNE = exports.OpNE = {\n create: createNode\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpGE = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements greater-than-or-equal operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-ge', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) >= right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpGE = exports.OpGE = {\n create: createNode\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpGT = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the greater-than operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-gt', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) > right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpGT = exports.OpGT = {\n create: createNode\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpLE = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the less-than-or-equal operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-le', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) <= right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpLE = exports.OpLE = {\n create: createNode\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpLT = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the less-than operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-lt', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) < right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpLT = exports.OpLT = {\n create: createNode\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpPlus = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * The plus operator will:\n * <ul>\n * <li>add numbers\n * <li>concatenate strings\n * </ul>\n *\n * <p>It can be used as a unary operator for numbers.\n * The standard promotions are performed when the operand types vary (double+int=double).\n * For other options it defers to the registered overloader.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ivo Smid\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-plus', position, left, right);\n\n node.getValue = function (state) {\n if (!right) {\n return +left.getValue(state);\n }\n //javascript will handle string concatenation or addition depending on types\n return left.getValue(state) + right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpPlus = exports.OpPlus = {\n create: createNode\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpMinus = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * The minus operator supports:\n * <ul>\n * <li>subtraction of numbers\n * <li>subtraction of an int from a string of one character\n * (effectively decreasing that character), so 'd'-3='a'\n * </ul>\n *\n * <p>It can be used as a unary operator for numbers.\n * The standard promotions are performed when the operand types vary (double-int=double).\n * For other options it defers to the registered overloader.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-minus', position, left, right);\n\n node.getValue = function (state) {\n if (!right) {\n return -left.getValue(state);\n }\n return left.getValue(state) - right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpMinus = exports.OpMinus = {\n create: createNode\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpMultiply = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the {@code multiply} operator.\n *\n * <p>Conversions and promotions are handled as defined in\n * <a href=\"http://java.sun.com/docs/books/jls/third_edition/html/conversions.html\">Section 5.6.2 of the\n * Java Language Specification</a>, with the addiction of {@code BigDecimal}/{@code BigInteger} management:\n *\n * <p>If any of the operands is of a reference type, unboxing conversion (Section 5.1.8)\n * is performed. Then:<br>\n * If either operand is of type {@code BigDecimal}, the other is converted to {@code BigDecimal}.<br>\n * If either operand is of type double, the other is converted to double.<br>\n * Otherwise, if either operand is of type float, the other is converted to float.<br>\n * If either operand is of type {@code BigInteger}, the other is converted to {@code BigInteger}.<br>\n * Otherwise, if either operand is of type long, the other is converted to long.<br>\n * Otherwise, both operands are converted to type int.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Sam Brannen\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-multiply', position, left, right);\n\n node.getValue = function (state) {\n var leftValue = left.getValue(state),\n rightValue = right.getValue(state);\n\n if (typeof leftValue === 'number' && typeof rightValue === 'number') {\n return leftValue * rightValue;\n }\n\n //repeats (ex. 'abc' * 2 = 'abcabc')\n if (typeof leftValue === 'string' && typeof rightValue === 'number') {\n var s = '',\n i = 0;\n for (; i < rightValue; i += 1) {\n s += leftValue;\n }\n return s;\n }\n\n return null;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpMultiply = exports.OpMultiply = {\n create: createNode\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpDivide = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements division operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-divide', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) / right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpDivide = exports.OpDivide = {\n create: createNode\n};\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpModulus = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the modulus operator.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-modulus', position, left, right);\n\n node.getValue = function (state) {\n return left.getValue(state) % right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpModulus = exports.OpModulus = {\n create: createNode\n};\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpPower = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * The power operator.\n *\n * @author Andy Clement\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, base, exp) {\n var node = _SpelNode.SpelNode.create('op-power', position, base, exp);\n\n node.getValue = function (state) {\n return Math.pow(base.getValue(state), exp.getValue(state));\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpPower = exports.OpPower = {\n create: createNode\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpInc = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Increment operator. Can be used in a prefix or postfix form. This will throw\n * appropriate exceptions if the operand in question does not support increment.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, postfix, int) {\n var node = _SpelNode.SpelNode.create('op-inc', position, int);\n\n node.getValue = function (state) {\n var cur = int.getValue(state);\n int.setValue(cur + 1, state);\n if (postfix) {\n return cur;\n }\n return cur + 1;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpInc = exports.OpInc = {\n create: createNode\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpDec = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Decrement operator. Can be used in a prefix or postfix form. This will throw\n * appropriate exceptions if the operand in question does not support decrement.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Giovanni Dall'Oglio Risso\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, postfix, int) {\n var node = _SpelNode.SpelNode.create('op-dec', position, int);\n\n node.getValue = function (state) {\n var cur = int.getValue(state);\n int.setValue(cur - 1, state);\n if (postfix) {\n return cur;\n }\n return cur - 1;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpDec = exports.OpDec = {\n create: createNode\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpNot = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a NOT operation.\n *\n * @author Andy Clement\n * @author Mark Fisher\n * @author Oliver Becker\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, expr) {\n var node = _SpelNode.SpelNode.create('op-not', position, expr);\n\n node.getValue = function (state) {\n return !expr.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpNot = exports.OpNot = {\n create: createNode\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpAnd = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents the boolean AND operation.\n *\n * @author Andy Clement\n * @author Mark Fisher\n * @author Oliver Becker\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-and', position, left, right);\n\n node.getValue = function (state) {\n //double bang for javascript\n return !!left.getValue(state) && !!right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpAnd = exports.OpAnd = {\n create: createNode\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpOr = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents the boolean OR operation.\n *\n * @author Andy Clement\n * @author Mark Fisher\n * @author Oliver Becker\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('op-or', position, left, right);\n\n node.getValue = function (state) {\n //double bang for javascript\n return !!left.getValue(state) || !!right.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpOr = exports.OpOr = {\n create: createNode\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpMatches = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Implements the matches operator. Matches takes two operands:\n * The first is a String and the second is a Java regex.\n * It will return {@code true} when {@link #getValue} is called\n * if the first operand matches the regex.\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Chris Thielen\n * @since 3.0\n */\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('matches', position, left, right);\n\n /**\n * Check the first operand matches the regex specified as the second operand.\n * @param state the expression state\n * @return {@code true} if the first operand matches the regex specified as the\n * second operand, otherwise {@code false}\n * @throws EvaluationException if there is a problem evaluating the expression\n * (e.g. the regex is invalid)\n */\n node.getValue = function (state) {\n var data = left.getValue(state);\n var regexpString = right.getValue(state);\n\n try {\n var regexp = new RegExp(regexpString);\n return !!regexp.exec(data);\n } catch (error) {\n throw {\n name: 'EvaluationException',\n message: error.toString()\n };\n }\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpMatches = exports.OpMatches = {\n create: createNode\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Ternary = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a ternary expression, for example: \"someCheck()?true:false\".\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, expression, ifTrue, ifFalse) {\n var node = _SpelNode.SpelNode.create('ternary', position, expression, ifTrue, ifFalse);\n\n node.getValue = function (state) {\n return expression.getValue(state) ? ifTrue.getValue(state) : ifFalse.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Ternary = exports.Ternary = {\n create: createNode\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Elvis = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents the elvis operator ?:. For an expression \"a?:b\" if a is not null, the value\n * of the expression is \"a\", if a is null then the value of the expression is \"b\".\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, expression, ifFalse) {\n var node = _SpelNode.SpelNode.create('elvis', position, expression, ifFalse);\n\n node.getValue = function (state) {\n return expression.getValue(state) !== null ? expression.getValue(state) : ifFalse.getValue(state);\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Elvis = exports.Elvis = {\n create: createNode\n};\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InlineList = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represent a list in an expression, e.g. '{1,2,3}'\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, elements) {\n var node = _SpelNode.SpelNode.create('list', position),\n list = [].concat(elements || []);\n\n node.getRaw = function () {\n return list;\n };\n\n node.getValue = function (state) {\n return list.map(function (element) {\n return element.getValue(state);\n });\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar InlineList = exports.InlineList = {\n create: createNode\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InlineMap = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represent a map in an expression, e.g. '{name:'foo',age:12}'\n *\n * @author Andy Clement\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction createNode(position, elements) {\n var node = _SpelNode.SpelNode.create('map', position),\n mapPieces = [].concat(elements || []);\n\n node.getValue = function (state) {\n var key = true,\n keyValue = null,\n map = {};\n\n mapPieces.forEach(function (piece) {\n if (key) {\n //unquoted property names come as type \"property\" but should be treated as strings\n if (piece.getType() === 'property') {\n keyValue = piece.getName();\n } else {\n keyValue = piece.getValue(state);\n }\n } else {\n map[keyValue] = piece.getValue(state);\n }\n key = !key;\n });\n\n return map;\n };\n\n return node;\n} /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar InlineMap = exports.InlineMap = {\n create: createNode\n};\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Selection = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents selection over a map or collection.\n * For example: {1,2,3,4,5,6,7,8,9,10}.?{#isEven(#this) == 'y'} returns [2, 4, 6, 8, 10]\n *\n * <p>Basically a subset of the input data is returned based on the\n * evaluation of the expression supplied as selection criteria.\n *\n * @author Andy Clement\n * @author Mark Fisher\n * @author Sam Brannen\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction matches(element, expr, state) {\n var doesMatch = false;\n state.activeContext.push(element);\n doesMatch = expr.getValue(state);\n state.activeContext.pop();\n return doesMatch;\n}\n\nfunction selectFromArray(collection, whichElement, expr, state) {\n var newCollection = collection.filter(function (element) {\n return matches(element, expr, state);\n });\n\n switch (whichElement) {\n case 'ALL':\n return newCollection;\n case 'FIRST':\n return newCollection[0] || null;\n case 'LAST':\n if (newCollection.length) {\n return newCollection[newCollection.length - 1];\n }\n return null;\n }\n}\n\nfunction selectFromMap(collection, whichElement, expr, state) {\n var newCollection = {},\n entry,\n key,\n entries = [],\n returnValue = {};\n\n for (key in collection) {\n if (collection.hasOwnProperty(key)) {\n entry = {\n key: key,\n value: collection[key]\n };\n if (matches(entry, expr, state)) {\n entries.push(entry);\n }\n }\n }\n\n switch (whichElement) {\n case 'ALL':\n entries.forEach(function (entry) {\n newCollection[entry.key] = entry.value;\n });\n return newCollection;\n case 'FIRST':\n if (entries.length) {\n returnValue[entries[0].key] = entries[0].value;\n return returnValue;\n }\n return null;\n case 'LAST':\n if (entries.length) {\n returnValue[entries[entries.length - 1].key] = entries[entries.length - 1].value;\n return returnValue;\n }\n return null;\n }\n\n entries.forEach(function (entry) {\n newCollection[entry.key] = entry.value;\n });\n}\n\nfunction createNode(nullSafeNavigation, whichElement, position, expr) {\n var node = _SpelNode.SpelNode.create('selection', position, expr);\n\n node.getValue = function (state) {\n var collection = state.activeContext.peek();\n\n if (collection) {\n if (Array.isArray(collection)) {\n return selectFromArray(collection, whichElement, expr, state);\n } else if ((typeof collection === 'undefined' ? 'undefined' : _typeof(collection)) === 'object') {\n return selectFromMap(collection, whichElement, expr, state);\n }\n }\n\n return null;\n };\n\n return node;\n}\n\nvar Selection = exports.Selection = {\n create: createNode,\n FIRST: 'FIRST',\n LAST: 'LAST',\n ALL: 'ALL'\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Projection = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents projection, where a given operation is performed on all elements in some\n * input sequence, returning a new sequence of the same size. For example:\n * \"{1,2,3,4,5,6,7,8,9,10}.!{#isEven(#this)}\" returns \"[n, y, n, y, n, y, n, y, n, y]\"\n *\n * @author Andy Clement\n * @author Mark Fisher\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction projectCollection(collection, expr, state) {\n return collection.map(function (element) {\n var matches;\n state.activeContext.push(element);\n matches = expr.getValue(state);\n state.activeContext.pop();\n return matches;\n });\n}\n\nfunction createNode(nullSafeNavigation, position, expr) {\n var node = _SpelNode.SpelNode.create('projection', position, expr);\n\n node.getValue = function (state) {\n var collection = state.activeContext.peek(),\n entries = [],\n key;\n\n if (Array.isArray(collection)) {\n return projectCollection(collection, expr, state);\n } else if ((typeof collection === 'undefined' ? 'undefined' : _typeof(collection)) === 'object') {\n for (key in collection) {\n if (collection.hasOwnProperty(key)) {\n entries.push(collection[key]);\n }\n }\n return projectCollection(entries, expr, state);\n }\n\n return null;\n };\n\n return node;\n}\n\nvar Projection = exports.Projection = {\n create: createNode\n};\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpInstanceof = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * The operator 'instanceof' checks if an object is of the class specified in the right\n * hand operand, in the same way that {@code instanceof} does in Java.\n *\n * THIS OPERATOR IS NOT IMPLEMENTED AND WILL THROW AN EXCEPTION\n *\n * @author Andy Clement\n * @since 3.0\n */\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('instanceof', position, left, right);\n\n /**\n * Compare the left operand to see it is an instance of the type specified as the\n * right operand. The right operand must be a class.\n * @param state the expression state\n * @return {@code true} if the left operand is an instanceof of the right operand,\n * otherwise {@code false}\n * @throws EvaluationException if there is a problem evaluating the expression\n */\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'OpInstanceOf: Not implemented'\n };\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpInstanceof = exports.OpInstanceof = {\n create: createNode\n};\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OpBetween = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents the between operator. The left operand to between must be a single value and\n * the right operand must be a list - this operator returns true if the left operand is\n * between (using the registered comparator) the two elements in the list. The definition\n * of between being inclusive follows the SQL BETWEEN definition.\n *\n * @author Andy Clement\n * @since 3.0\n */\nfunction createNode(position, left, right) {\n var node = _SpelNode.SpelNode.create('between', position, left, right);\n\n /**\n * Returns a boolean based on whether a value is in the range expressed. The first\n * operand is any value whilst the second is a list of two values - those two values\n * being the bounds allowed for the first operand (inclusive).\n * @param state the expression state\n * @return true if the left operand is in the range specified, false otherwise\n * @throws EvaluationException if there is a problem evaluating the expression\n */\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'OpBetween: Not implemented'\n };\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar OpBetween = exports.OpBetween = {\n create: createNode\n};\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TypeReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a reference to a type, for example\n * {@code \"T(String)\" or \"T(com.somewhere.Foo)\"}.\n *\n * @author Andy Clement\n */\nfunction createNode(position, node, _dims) {\n var node = _SpelNode.SpelNode.create('typeref', position, node);\n\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'TypeReference: Not implemented'\n };\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar TypeReference = exports.TypeReference = {\n create: createNode\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BeanReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * Represents a bean reference to a type, for example <tt>@foo</tt> or <tt>@'foo.bar'</tt>.\n * For a FactoryBean the syntax <tt>&foo</tt> can be used to access the factory itself.\n *\n * @author Andy Clement\n */\nfunction createNode(position, beanName) {\n var node = _SpelNode.SpelNode.create('beanref', position);\n\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'BeanReference: Not implemented'\n };\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar BeanReference = exports.BeanReference = {\n create: createNode\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Identifier = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\n/**\n * An 'identifier' {@link SpelNode}.\n *\n * @author Andy Clement\n * @since 3.0\n */\nfunction createNode(identifierName, position) {\n var node = _SpelNode.SpelNode.create('identifier', position);\n\n node.getRaw = function () {\n return identifierName;\n };\n\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'Identifier: Not implemented'\n };\n };\n\n return node;\n} /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar Identifier = exports.Identifier = {\n create: createNode\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QualifiedIdentifier = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents a dot separated sequence of strings that indicate a package qualified type\n * reference.\n *\n * <p>Example: \"java.lang.String\" as in the expression \"new java.lang.String('hello')\"\n *\n * @author Andy Clement\n * @since 3.0\n */\nfunction createNode(position, pieces) {\n var node = _SpelNode.SpelNode.create.apply(_SpelNode.SpelNode, ['qualifiedidentifier', position].concat(_toConsumableArray(pieces)));\n\n node.getRaw = function () {\n return pieces.map(function (p) {\n return p.getRaw();\n });\n };\n\n node.getValue = function (state) {\n throw {\n name: 'MethodNotImplementedException',\n message: 'QualifiedIdentifier: Not implemented'\n };\n };\n\n return node;\n}\n\nvar QualifiedIdentifier = exports.QualifiedIdentifier = {\n create: createNode\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ConstructorReference = undefined;\n\nvar _SpelNode = __webpack_require__(0);\n\nvar _Stack = __webpack_require__(1);\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } /*\n * Copyright 2002-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Represents the invocation of a constructor. Either a constructor on a regular type or\n * construction of an array. When an array is constructed, an initializer can be specified.\n *\n * <p>Examples:<br>\n * new String('hello world')<br>\n * new int[]{1,2,3,4}<br>\n * new int[3] new int[3]{1,2,3}\n *\n * @author Andy Clement\n * @author Juergen Hoeller\n * @since 3.0\n */\nfunction createNode(position, dimensions, nodes) {\n var isArray = nodes !== undefined;\n var dimension;\n if (isArray) {\n dimension = dimensions.length && dimensions[0] && dimensions[0].getType() === 'number' ? dimensions[0].getValue() : null;\n } else {\n nodes = dimensions;\n dimensions = undefined;\n }\n\n var _nodes = nodes,\n _nodes2 = _toArray(_nodes),\n _qualifiedIdentifier = _nodes2[0],\n args = _nodes2.slice(1);\n\n var node = _SpelNode.SpelNode.create.apply(_SpelNode.SpelNode, ['constructorref', position].concat(_toConsumableArray(nodes)));\n\n node.getRaw = function () {\n return dimension;\n };\n\n node.getValue = function (state) {\n if (isArray && args.length <= 1) {\n var compiledArgs = [];\n\n //populate arguments\n args.forEach(function (arg) {\n // reset the active context to root context for evaluating argument\n var currentActiveContext = state.activeContext;\n state.activeContext = new _Stack.Stack();\n state.activeContext.push(state.rootContext);\n\n // evaluate argument\n compiledArgs.push(arg.getValue(state));\n\n // reset the active context\n state.activeContext = currentActiveContext;\n });\n\n if (args.length === 1) {\n return compiledArgs[0];\n } else {\n return dimension ? new Array(dimension) : [];\n }\n }\n\n throw {\n name: 'MethodNotImplementedException',\n message: 'ConstructorReference: Not implemented'\n };\n };\n\n return node;\n}\n\nvar ConstructorReference = exports.ConstructorReference = {\n create: createNode\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\n * Copyright 2002-2015 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @author Ben March\n * @since 0.2.0\n */\n\nfunction create(authentication, principal) {\n var context = {};\n\n context.authentication = authentication || {};\n context.principal = principal || {};\n\n context.hasRole = function (role) {\n var hasRole = false;\n\n if (!role) {\n return false;\n }\n if (!context.authentication && !Array.isArray(context.authentication.authorities)) {\n return false;\n }\n\n context.authentication.authorities.forEach(function (grantedAuthority) {\n if (grantedAuthority.authority.toLowerCase() === role.toLowerCase()) {\n hasRole = true;\n }\n });\n\n return hasRole;\n };\n\n context.hasPermission = function () /*variable arguments*/{\n var args = Array.prototype.slice.call(arguments);\n\n if (args.length === 1) {\n return context.hasRole(args[0]);\n }\n };\n\n return context;\n}\n\nvar StandardContext = exports.StandardContext = {\n create: create\n};\n\n/***/ })\n/******/ ]);\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _includes = _interopRequireDefault(require(\"lodash/includes\"));\n\nvar _tokenTypes = _interopRequireDefault(require(\"./tokenTypes\"));\n\nvar _Indentation = _interopRequireDefault(require(\"./Indentation\"));\n\nvar _InlineBlock = _interopRequireDefault(require(\"./InlineBlock\"));\n\nvar _Params = _interopRequireDefault(require(\"./Params\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar trimSpacesEnd = function trimSpacesEnd(str) {\n return str.replace(/[\\t ]+$/, '');\n};\n\nvar Formatter =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg\r\n * @param {String} cfg.language\r\n * @param {String} cfg.indent\r\n * @param {Bool} cfg.uppercase\r\n * @param {Integer} cfg.linesBetweenQueries\r\n * @param {Object} cfg.params\r\n * @param {Tokenizer} tokenizer\r\n */\n function Formatter(cfg, tokenizer, tokenOverride) {\n _classCallCheck(this, Formatter);\n\n this.cfg = cfg || {};\n this.indentation = new _Indentation[\"default\"](this.cfg.indent);\n this.inlineBlock = new _InlineBlock[\"default\"]();\n this.params = new _Params[\"default\"](this.cfg.params);\n this.tokenizer = tokenizer;\n this.tokenOverride = tokenOverride;\n this.previousReservedWord = {};\n this.tokens = [];\n this.index = 0;\n }\n /**\r\n * Formats whitespace in a SQL string to make it easier to read.\r\n *\r\n * @param {String} query The SQL query string\r\n * @return {String} formatted query\r\n */\n\n\n _createClass(Formatter, [{\n key: \"format\",\n value: function format(query) {\n this.tokens = this.tokenizer.tokenize(query);\n var formattedQuery = this.getFormattedQueryFromTokens();\n return formattedQuery.trim();\n }\n }, {\n key: \"getFormattedQueryFromTokens\",\n value: function getFormattedQueryFromTokens() {\n var _this = this;\n\n var formattedQuery = '';\n this.tokens.forEach(function (token, index) {\n _this.index = index;\n if (_this.tokenOverride) token = _this.tokenOverride(token, _this.previousReservedWord) || token;\n\n if (token.type === _tokenTypes[\"default\"].WHITESPACE) {// ignore (we do our own whitespace formatting)\n } else if (token.type === _tokenTypes[\"default\"].LINE_COMMENT) {\n formattedQuery = _this.formatLineComment(token, formattedQuery);\n } else if (token.type === _tokenTypes[\"default\"].BLOCK_COMMENT) {\n formattedQuery = _this.formatBlockComment(token, formattedQuery);\n } else if (token.type === _tokenTypes[\"default\"].RESERVED_TOP_LEVEL) {\n formattedQuery = _this.formatTopLevelReservedWord(token, formattedQuery);\n _this.previousReservedWord = token;\n } else if (token.type === _tokenTypes[\"default\"].RESERVED_TOP_LEVEL_NO_INDENT) {\n formattedQuery = _this.formatTopLevelReservedWordNoIndent(token, formattedQuery);\n _this.previousReservedWord = token;\n } else if (token.type === _tokenTypes[\"default\"].RESERVED_NEWLINE) {\n formattedQuery = _this.formatNewlineReservedWord(token, formattedQuery);\n _this.previousReservedWord = token;\n } else if (token.type === _tokenTypes[\"default\"].RESERVED) {\n formattedQuery = _this.formatWithSpaces(token, formattedQuery);\n _this.previousReservedWord = token;\n } else if (token.type === _tokenTypes[\"default\"].OPEN_PAREN) {\n formattedQuery = _this.formatOpeningParentheses(token, formattedQuery);\n } else if (token.type === _tokenTypes[\"default\"].CLOSE_PAREN) {\n formattedQuery = _this.formatClosingParentheses(token, formattedQuery);\n } else if (token.type === _tokenTypes[\"default\"].PLACEHOLDER) {\n formattedQuery = _this.formatPlaceholder(token, formattedQuery);\n } else if (token.value === ',') {\n formattedQuery = _this.formatComma(token, formattedQuery);\n } else if (token.value === ':') {\n formattedQuery = _this.formatWithSpaceAfter(token, formattedQuery);\n } else if (token.value === '.') {\n formattedQuery = _this.formatWithoutSpaces(token, formattedQuery);\n } else if (token.value === ';') {\n formattedQuery = _this.formatQuerySeparator(token, formattedQuery);\n } else {\n formattedQuery = _this.formatWithSpaces(token, formattedQuery);\n }\n });\n return formattedQuery;\n }\n }, {\n key: \"formatLineComment\",\n value: function formatLineComment(token, query) {\n return this.addNewline(query + token.value);\n }\n }, {\n key: \"formatBlockComment\",\n value: function formatBlockComment(token, query) {\n return this.addNewline(this.addNewline(query) + this.indentComment(token.value));\n }\n }, {\n key: \"indentComment\",\n value: function indentComment(comment) {\n return comment.replace(/\\n[\\t ]*/g, '\\n' + this.indentation.getIndent() + ' ');\n }\n }, {\n key: \"formatTopLevelReservedWordNoIndent\",\n value: function formatTopLevelReservedWordNoIndent(token, query) {\n this.indentation.decreaseTopLevel();\n query = this.addNewline(query) + this.equalizeWhitespace(this.formatReservedWord(token.value));\n return this.addNewline(query);\n }\n }, {\n key: \"formatTopLevelReservedWord\",\n value: function formatTopLevelReservedWord(token, query) {\n this.indentation.decreaseTopLevel();\n query = this.addNewline(query);\n this.indentation.increaseTopLevel();\n query += this.equalizeWhitespace(this.formatReservedWord(token.value));\n return this.addNewline(query);\n }\n }, {\n key: \"formatNewlineReservedWord\",\n value: function formatNewlineReservedWord(token, query) {\n return this.addNewline(query) + this.equalizeWhitespace(this.formatReservedWord(token.value)) + ' ';\n } // Replace any sequence of whitespace characters with single space\n\n }, {\n key: \"equalizeWhitespace\",\n value: function equalizeWhitespace(string) {\n return string.replace(/[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]+/g, ' ');\n } // Opening parentheses increase the block indent level and start a new line\n\n }, {\n key: \"formatOpeningParentheses\",\n value: function formatOpeningParentheses(token, query) {\n // Take out the preceding space unless there was whitespace there in the original query\n // or another opening parens or line comment\n var preserveWhitespaceFor = [_tokenTypes[\"default\"].WHITESPACE, _tokenTypes[\"default\"].OPEN_PAREN, _tokenTypes[\"default\"].LINE_COMMENT];\n\n if (!(0, _includes[\"default\"])(preserveWhitespaceFor, this.previousToken().type)) {\n query = trimSpacesEnd(query);\n }\n\n query += this.cfg.uppercase ? token.value.toUpperCase() : token.value;\n this.inlineBlock.beginIfPossible(this.tokens, this.index);\n\n if (!this.inlineBlock.isActive()) {\n this.indentation.increaseBlockLevel();\n query = this.addNewline(query);\n }\n\n return query;\n } // Closing parentheses decrease the block indent level\n\n }, {\n key: \"formatClosingParentheses\",\n value: function formatClosingParentheses(token, query) {\n token.value = this.cfg.uppercase ? token.value.toUpperCase() : token.value;\n\n if (this.inlineBlock.isActive()) {\n this.inlineBlock.end();\n return this.formatWithSpaceAfter(token, query);\n } else {\n this.indentation.decreaseBlockLevel();\n return this.formatWithSpaces(token, this.addNewline(query));\n }\n }\n }, {\n key: \"formatPlaceholder\",\n value: function formatPlaceholder(token, query) {\n return query + this.params.get(token) + ' ';\n } // Commas start a new line (unless within inline parentheses or SQL \"LIMIT\" clause)\n\n }, {\n key: \"formatComma\",\n value: function formatComma(token, query) {\n query = trimSpacesEnd(query) + token.value + ' ';\n\n if (this.inlineBlock.isActive()) {\n return query;\n } else if (/^LIMIT$/i.test(this.previousReservedWord.value)) {\n return query;\n } else {\n return this.addNewline(query);\n }\n }\n }, {\n key: \"formatWithSpaceAfter\",\n value: function formatWithSpaceAfter(token, query) {\n return trimSpacesEnd(query) + token.value + ' ';\n }\n }, {\n key: \"formatWithoutSpaces\",\n value: function formatWithoutSpaces(token, query) {\n return trimSpacesEnd(query) + token.value;\n }\n }, {\n key: \"formatWithSpaces\",\n value: function formatWithSpaces(token, query) {\n var value = token.type === 'reserved' ? this.formatReservedWord(token.value) : token.value;\n return query + value + ' ';\n }\n }, {\n key: \"formatReservedWord\",\n value: function formatReservedWord(value) {\n return this.cfg.uppercase ? value.toUpperCase() : value;\n }\n }, {\n key: \"formatQuerySeparator\",\n value: function formatQuerySeparator(token, query) {\n this.indentation.resetIndentation();\n return trimSpacesEnd(query) + token.value + '\\n'.repeat(this.cfg.linesBetweenQueries || 1);\n }\n }, {\n key: \"addNewline\",\n value: function addNewline(query) {\n query = trimSpacesEnd(query);\n if (!query.endsWith('\\n')) query += '\\n';\n return query + this.indentation.getIndent();\n }\n }, {\n key: \"previousToken\",\n value: function previousToken() {\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return this.tokens[this.index - offset] || {};\n }\n }]);\n\n return Formatter;\n}();\n\nexports[\"default\"] = Formatter;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _repeat = _interopRequireDefault(require(\"lodash/repeat\"));\n\nvar _last = _interopRequireDefault(require(\"lodash/last\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar INDENT_TYPE_TOP_LEVEL = 'top-level';\nvar INDENT_TYPE_BLOCK_LEVEL = 'block-level';\n/**\r\n * Manages indentation levels.\r\n *\r\n * There are two types of indentation levels:\r\n *\r\n * - BLOCK_LEVEL : increased by open-parenthesis\r\n * - TOP_LEVEL : increased by RESERVED_TOP_LEVEL words\r\n */\n\nvar Indentation =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {String} indent Indent value, default is \" \" (2 spaces)\r\n */\n function Indentation(indent) {\n _classCallCheck(this, Indentation);\n\n this.indent = indent || ' ';\n this.indentTypes = [];\n }\n /**\r\n * Returns current indentation string.\r\n * @return {String}\r\n */\n\n\n _createClass(Indentation, [{\n key: \"getIndent\",\n value: function getIndent() {\n return (0, _repeat[\"default\"])(this.indent, this.indentTypes.length);\n }\n /**\r\n * Increases indentation by one top-level indent.\r\n */\n\n }, {\n key: \"increaseTopLevel\",\n value: function increaseTopLevel() {\n this.indentTypes.push(INDENT_TYPE_TOP_LEVEL);\n }\n /**\r\n * Increases indentation by one block-level indent.\r\n */\n\n }, {\n key: \"increaseBlockLevel\",\n value: function increaseBlockLevel() {\n this.indentTypes.push(INDENT_TYPE_BLOCK_LEVEL);\n }\n /**\r\n * Decreases indentation by one top-level indent.\r\n * Does nothing when the previous indent is not top-level.\r\n */\n\n }, {\n key: \"decreaseTopLevel\",\n value: function decreaseTopLevel() {\n if ((0, _last[\"default\"])(this.indentTypes) === INDENT_TYPE_TOP_LEVEL) {\n this.indentTypes.pop();\n }\n }\n /**\r\n * Decreases indentation by one block-level indent.\r\n * If there are top-level indents within the block-level indent,\r\n * throws away these as well.\r\n */\n\n }, {\n key: \"decreaseBlockLevel\",\n value: function decreaseBlockLevel() {\n while (this.indentTypes.length > 0) {\n var type = this.indentTypes.pop();\n\n if (type !== INDENT_TYPE_TOP_LEVEL) {\n break;\n }\n }\n }\n }, {\n key: \"resetIndentation\",\n value: function resetIndentation() {\n this.indentTypes = [];\n }\n }]);\n\n return Indentation;\n}();\n\nexports[\"default\"] = Indentation;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _tokenTypes = _interopRequireDefault(require(\"./tokenTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar INLINE_MAX_LENGTH = 50;\n/**\r\n * Bookkeeper for inline blocks.\r\n *\r\n * Inline blocks are parenthesized expressions that are shorter than INLINE_MAX_LENGTH.\r\n * These blocks are formatted on a single line, unlike longer parenthesized\r\n * expressions where open-parenthesis causes newline and increase of indentation.\r\n */\n\nvar InlineBlock =\n/*#__PURE__*/\nfunction () {\n function InlineBlock() {\n _classCallCheck(this, InlineBlock);\n\n this.level = 0;\n }\n /**\r\n * Begins inline block when lookahead through upcoming tokens determines\r\n * that the block would be smaller than INLINE_MAX_LENGTH.\r\n * @param {Object[]} tokens Array of all tokens\r\n * @param {Number} index Current token position\r\n */\n\n\n _createClass(InlineBlock, [{\n key: \"beginIfPossible\",\n value: function beginIfPossible(tokens, index) {\n if (this.level === 0 && this.isInlineBlock(tokens, index)) {\n this.level = 1;\n } else if (this.level > 0) {\n this.level++;\n } else {\n this.level = 0;\n }\n }\n /**\r\n * Finishes current inline block.\r\n * There might be several nested ones.\r\n */\n\n }, {\n key: \"end\",\n value: function end() {\n this.level--;\n }\n /**\r\n * True when inside an inline block\r\n * @return {Boolean}\r\n */\n\n }, {\n key: \"isActive\",\n value: function isActive() {\n return this.level > 0;\n } // Check if this should be an inline parentheses block\n // Examples are \"NOW()\", \"COUNT(*)\", \"int(10)\", key(`some_column`), DECIMAL(7,2)\n\n }, {\n key: \"isInlineBlock\",\n value: function isInlineBlock(tokens, index) {\n var length = 0;\n var level = 0;\n\n for (var i = index; i < tokens.length; i++) {\n var token = tokens[i];\n length += token.value.length; // Overran max length\n\n if (length > INLINE_MAX_LENGTH) {\n return false;\n }\n\n if (token.type === _tokenTypes[\"default\"].OPEN_PAREN) {\n level++;\n } else if (token.type === _tokenTypes[\"default\"].CLOSE_PAREN) {\n level--;\n\n if (level === 0) {\n return true;\n }\n }\n\n if (this.isForbiddenToken(token)) {\n return false;\n }\n }\n\n return false;\n } // Reserved words that cause newlines, comments and semicolons\n // are not allowed inside inline parentheses block\n\n }, {\n key: \"isForbiddenToken\",\n value: function isForbiddenToken(_ref) {\n var type = _ref.type,\n value = _ref.value;\n return type === _tokenTypes[\"default\"].RESERVED_TOP_LEVEL || type === _tokenTypes[\"default\"].RESERVED_NEWLINE || type === _tokenTypes[\"default\"].COMMENT || type === _tokenTypes[\"default\"].BLOCK_COMMENT || value === ';';\n }\n }]);\n\n return InlineBlock;\n}();\n\nexports[\"default\"] = InlineBlock;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/**\r\n * Handles placeholder replacement with given params.\r\n */\nvar Params =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} params\r\n */\n function Params(params) {\n _classCallCheck(this, Params);\n\n this.params = params;\n this.index = 0;\n }\n /**\r\n * Returns param value that matches given placeholder with param key.\r\n * @param {Object} token\r\n * @param {String} token.key Placeholder key\r\n * @param {String} token.value Placeholder value\r\n * @return {String} param or token.value when params are missing\r\n */\n\n\n _createClass(Params, [{\n key: \"get\",\n value: function get(_ref) {\n var key = _ref.key,\n value = _ref.value;\n\n if (!this.params) {\n return value;\n }\n\n if (key) {\n return this.params[key];\n }\n\n return this.params[this.index++];\n }\n }]);\n\n return Params;\n}();\n\nexports[\"default\"] = Params;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _isEmpty = _interopRequireDefault(require(\"lodash/isEmpty\"));\n\nvar _escapeRegExp = _interopRequireDefault(require(\"lodash/escapeRegExp\"));\n\nvar _tokenTypes = _interopRequireDefault(require(\"./tokenTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Tokenizer =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg\r\n * @param {String[]} cfg.reservedWords Reserved words in SQL\r\n * @param {String[]} cfg.reservedTopLevelWords Words that are set to new line separately\r\n * @param {String[]} cfg.reservedNewlineWords Words that are set to newline\r\n * @param {String[]} cfg.reservedTopLevelWordsNoIndent Words that are top level but have no indentation\r\n * @param {String[]} cfg.stringTypes String types to enable: \"\", '', ``, [], N''\r\n * @param {String[]} cfg.openParens Opening parentheses to enable, like (, [\r\n * @param {String[]} cfg.closeParens Closing parentheses to enable, like ), ]\r\n * @param {String[]} cfg.indexedPlaceholderTypes Prefixes for indexed placeholders, like ?\r\n * @param {String[]} cfg.namedPlaceholderTypes Prefixes for named placeholders, like @ and :\r\n * @param {String[]} cfg.lineCommentTypes Line comments to enable, like # and --\r\n * @param {String[]} cfg.specialWordChars Special chars that can be found inside of words, like @ and #\r\n */\n function Tokenizer(cfg) {\n _classCallCheck(this, Tokenizer);\n\n this.WHITESPACE_REGEX = /^([\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]+)/;\n this.NUMBER_REGEX = /^((\\x2D[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*)?[0-9]+(\\.[0-9]+)?|0x[0-9A-Fa-f]+|0b[01]+)\\b/;\n this.OPERATOR_REGEX = /^(!=|<>|==|<=|>=|!<|!>|\\|\\||::|\\x2D>>|\\x2D>|~~\\*|~~|!~~\\*|!~~|~\\*|!~\\*|!~|:=|(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]))/;\n this.BLOCK_COMMENT_REGEX = /^(\\/\\*(?:[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?(?:\\*\\/|$))/;\n this.LINE_COMMENT_REGEX = this.createLineCommentRegex(cfg.lineCommentTypes);\n this.RESERVED_TOP_LEVEL_REGEX = this.createReservedWordRegex(cfg.reservedTopLevelWords);\n this.RESERVED_TOP_LEVEL_NO_INDENT_REGEX = this.createReservedWordRegex(cfg.reservedTopLevelWordsNoIndent);\n this.RESERVED_NEWLINE_REGEX = this.createReservedWordRegex(cfg.reservedNewlineWords);\n this.RESERVED_PLAIN_REGEX = this.createReservedWordRegex(cfg.reservedWords);\n this.WORD_REGEX = this.createWordRegex(cfg.specialWordChars);\n this.STRING_REGEX = this.createStringRegex(cfg.stringTypes);\n this.OPEN_PAREN_REGEX = this.createParenRegex(cfg.openParens);\n this.CLOSE_PAREN_REGEX = this.createParenRegex(cfg.closeParens);\n this.INDEXED_PLACEHOLDER_REGEX = this.createPlaceholderRegex(cfg.indexedPlaceholderTypes, '[0-9]*');\n this.IDENT_NAMED_PLACEHOLDER_REGEX = this.createPlaceholderRegex(cfg.namedPlaceholderTypes, '[a-zA-Z0-9._$]+');\n this.STRING_NAMED_PLACEHOLDER_REGEX = this.createPlaceholderRegex(cfg.namedPlaceholderTypes, this.createStringPattern(cfg.stringTypes));\n }\n\n _createClass(Tokenizer, [{\n key: \"createLineCommentRegex\",\n value: function createLineCommentRegex(lineCommentTypes) {\n return new RegExp(\"^((?:\".concat(lineCommentTypes.map(function (c) {\n return (0, _escapeRegExp[\"default\"])(c);\n }).join('|'), \").*?(?:\\r\\n|\\r|\\n|$))\"), 'u');\n }\n }, {\n key: \"createReservedWordRegex\",\n value: function createReservedWordRegex(reservedWords) {\n var reservedWordsPattern = reservedWords.join('|').replace(/ /g, '\\\\s+');\n return new RegExp(\"^(\".concat(reservedWordsPattern, \")\\\\b\"), 'iu');\n }\n }, {\n key: \"createWordRegex\",\n value: function createWordRegex() {\n var specialChars = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return new RegExp(\"^([\\\\p{Alphabetic}\\\\p{Mark}\\\\p{Decimal_Number}\\\\p{Connector_Punctuation}\\\\p{Join_Control}\".concat(specialChars.join(''), \"]+)\"), 'u');\n }\n }, {\n key: \"createStringRegex\",\n value: function createStringRegex(stringTypes) {\n return new RegExp('^(' + this.createStringPattern(stringTypes) + ')', 'u');\n } // This enables the following string patterns:\n // 1. backtick quoted string using `` to escape\n // 2. square bracket quoted string (SQL Server) using ]] to escape\n // 3. double quoted string using \"\" or \\\" to escape\n // 4. single quoted string using '' or \\' to escape\n // 5. national character quoted string using N'' or N\\' to escape\n\n }, {\n key: \"createStringPattern\",\n value: function createStringPattern(stringTypes) {\n var patterns = {\n '``': '((`[^`]*($|`))+)',\n '[]': '((\\\\[[^\\\\]]*($|\\\\]))(\\\\][^\\\\]]*($|\\\\]))*)',\n '\"\"': '((\"[^\"\\\\\\\\]*(?:\\\\\\\\.[^\"\\\\\\\\]*)*(\"|$))+)',\n \"''\": \"(('[^'\\\\\\\\]*(?:\\\\\\\\.[^'\\\\\\\\]*)*('|$))+)\",\n \"N''\": \"((N'[^N'\\\\\\\\]*(?:\\\\\\\\.[^N'\\\\\\\\]*)*('|$))+)\"\n };\n return stringTypes.map(function (t) {\n return patterns[t];\n }).join('|');\n }\n }, {\n key: \"createParenRegex\",\n value: function createParenRegex(parens) {\n var _this = this;\n\n return new RegExp('^(' + parens.map(function (p) {\n return _this.escapeParen(p);\n }).join('|') + ')', 'iu');\n }\n }, {\n key: \"escapeParen\",\n value: function escapeParen(paren) {\n if (paren.length === 1) {\n // A single punctuation character\n return (0, _escapeRegExp[\"default\"])(paren);\n } else {\n // longer word\n return '\\\\b' + paren + '\\\\b';\n }\n }\n }, {\n key: \"createPlaceholderRegex\",\n value: function createPlaceholderRegex(types, pattern) {\n if ((0, _isEmpty[\"default\"])(types)) {\n return false;\n }\n\n var typesRegex = types.map(_escapeRegExp[\"default\"]).join('|');\n return new RegExp(\"^((?:\".concat(typesRegex, \")(?:\").concat(pattern, \"))\"), 'u');\n }\n /**\r\n * Takes a SQL string and breaks it into tokens.\r\n * Each token is an object with type and value.\r\n *\r\n * @param {String} input The SQL string\r\n * @return {Object[]} tokens An array of tokens.\r\n * @return {String} token.type\r\n * @return {String} token.value\r\n */\n\n }, {\n key: \"tokenize\",\n value: function tokenize(input) {\n if (!input) return [];\n var tokens = [];\n var token; // Keep processing the string until it is empty\n\n while (input.length) {\n // Get the next token and the token type\n token = this.getNextToken(input, token); // Advance the string\n\n input = input.substring(token.value.length);\n tokens.push(token);\n }\n\n return tokens;\n }\n }, {\n key: \"getNextToken\",\n value: function getNextToken(input, previousToken) {\n return this.getWhitespaceToken(input) || this.getCommentToken(input) || this.getStringToken(input) || this.getOpenParenToken(input) || this.getCloseParenToken(input) || this.getPlaceholderToken(input) || this.getNumberToken(input) || this.getReservedWordToken(input, previousToken) || this.getWordToken(input) || this.getOperatorToken(input);\n }\n }, {\n key: \"getWhitespaceToken\",\n value: function getWhitespaceToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].WHITESPACE,\n regex: this.WHITESPACE_REGEX\n });\n }\n }, {\n key: \"getCommentToken\",\n value: function getCommentToken(input) {\n return this.getLineCommentToken(input) || this.getBlockCommentToken(input);\n }\n }, {\n key: \"getLineCommentToken\",\n value: function getLineCommentToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].LINE_COMMENT,\n regex: this.LINE_COMMENT_REGEX\n });\n }\n }, {\n key: \"getBlockCommentToken\",\n value: function getBlockCommentToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].BLOCK_COMMENT,\n regex: this.BLOCK_COMMENT_REGEX\n });\n }\n }, {\n key: \"getStringToken\",\n value: function getStringToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].STRING,\n regex: this.STRING_REGEX\n });\n }\n }, {\n key: \"getOpenParenToken\",\n value: function getOpenParenToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].OPEN_PAREN,\n regex: this.OPEN_PAREN_REGEX\n });\n }\n }, {\n key: \"getCloseParenToken\",\n value: function getCloseParenToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].CLOSE_PAREN,\n regex: this.CLOSE_PAREN_REGEX\n });\n }\n }, {\n key: \"getPlaceholderToken\",\n value: function getPlaceholderToken(input) {\n return this.getIdentNamedPlaceholderToken(input) || this.getStringNamedPlaceholderToken(input) || this.getIndexedPlaceholderToken(input);\n }\n }, {\n key: \"getIdentNamedPlaceholderToken\",\n value: function getIdentNamedPlaceholderToken(input) {\n return this.getPlaceholderTokenWithKey({\n input: input,\n regex: this.IDENT_NAMED_PLACEHOLDER_REGEX,\n parseKey: function parseKey(v) {\n return v.slice(1);\n }\n });\n }\n }, {\n key: \"getStringNamedPlaceholderToken\",\n value: function getStringNamedPlaceholderToken(input) {\n var _this2 = this;\n\n return this.getPlaceholderTokenWithKey({\n input: input,\n regex: this.STRING_NAMED_PLACEHOLDER_REGEX,\n parseKey: function parseKey(v) {\n return _this2.getEscapedPlaceholderKey({\n key: v.slice(2, -1),\n quoteChar: v.slice(-1)\n });\n }\n });\n }\n }, {\n key: \"getIndexedPlaceholderToken\",\n value: function getIndexedPlaceholderToken(input) {\n return this.getPlaceholderTokenWithKey({\n input: input,\n regex: this.INDEXED_PLACEHOLDER_REGEX,\n parseKey: function parseKey(v) {\n return v.slice(1);\n }\n });\n }\n }, {\n key: \"getPlaceholderTokenWithKey\",\n value: function getPlaceholderTokenWithKey(_ref) {\n var input = _ref.input,\n regex = _ref.regex,\n parseKey = _ref.parseKey;\n var token = this.getTokenOnFirstMatch({\n input: input,\n regex: regex,\n type: _tokenTypes[\"default\"].PLACEHOLDER\n });\n\n if (token) {\n token.key = parseKey(token.value);\n }\n\n return token;\n }\n }, {\n key: \"getEscapedPlaceholderKey\",\n value: function getEscapedPlaceholderKey(_ref2) {\n var key = _ref2.key,\n quoteChar = _ref2.quoteChar;\n return key.replace(new RegExp((0, _escapeRegExp[\"default\"])('\\\\' + quoteChar), 'gu'), quoteChar);\n } // Decimal, binary, or hex numbers\n\n }, {\n key: \"getNumberToken\",\n value: function getNumberToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].NUMBER,\n regex: this.NUMBER_REGEX\n });\n } // Punctuation and symbols\n\n }, {\n key: \"getOperatorToken\",\n value: function getOperatorToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].OPERATOR,\n regex: this.OPERATOR_REGEX\n });\n }\n }, {\n key: \"getReservedWordToken\",\n value: function getReservedWordToken(input, previousToken) {\n // A reserved word cannot be preceded by a \".\"\n // this makes it so in \"my_table.from\", \"from\" is not considered a reserved word\n if (previousToken && previousToken.value && previousToken.value === '.') {\n return;\n }\n\n return this.getTopLevelReservedToken(input) || this.getNewlineReservedToken(input) || this.getTopLevelReservedTokenNoIndent(input) || this.getPlainReservedToken(input);\n }\n }, {\n key: \"getTopLevelReservedToken\",\n value: function getTopLevelReservedToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].RESERVED_TOP_LEVEL,\n regex: this.RESERVED_TOP_LEVEL_REGEX\n });\n }\n }, {\n key: \"getNewlineReservedToken\",\n value: function getNewlineReservedToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].RESERVED_NEWLINE,\n regex: this.RESERVED_NEWLINE_REGEX\n });\n }\n }, {\n key: \"getTopLevelReservedTokenNoIndent\",\n value: function getTopLevelReservedTokenNoIndent(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].RESERVED_TOP_LEVEL_NO_INDENT,\n regex: this.RESERVED_TOP_LEVEL_NO_INDENT_REGEX\n });\n }\n }, {\n key: \"getPlainReservedToken\",\n value: function getPlainReservedToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].RESERVED,\n regex: this.RESERVED_PLAIN_REGEX\n });\n }\n }, {\n key: \"getWordToken\",\n value: function getWordToken(input) {\n return this.getTokenOnFirstMatch({\n input: input,\n type: _tokenTypes[\"default\"].WORD,\n regex: this.WORD_REGEX\n });\n }\n }, {\n key: \"getTokenOnFirstMatch\",\n value: function getTokenOnFirstMatch(_ref3) {\n var input = _ref3.input,\n type = _ref3.type,\n regex = _ref3.regex;\n var matches = input.match(regex);\n\n if (matches) {\n return {\n type: type,\n value: matches[1]\n };\n }\n }\n }]);\n\n return Tokenizer;\n}();\n\nexports[\"default\"] = Tokenizer;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/**\r\n * Constants for token types\r\n */\nvar _default = {\n WHITESPACE: 'whitespace',\n WORD: 'word',\n STRING: 'string',\n RESERVED: 'reserved',\n RESERVED_TOP_LEVEL: 'reserved-top-level',\n RESERVED_TOP_LEVEL_NO_INDENT: 'reserved-top-level-no-indent',\n RESERVED_NEWLINE: 'reserved-newline',\n OPERATOR: 'operator',\n OPEN_PAREN: 'open-paren',\n CLOSE_PAREN: 'close-paren',\n LINE_COMMENT: 'line-comment',\n BLOCK_COMMENT: 'block-comment',\n NUMBER: 'number',\n PLACEHOLDER: 'placeholder'\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Formatter = _interopRequireDefault(require(\"../core/Formatter\"));\n\nvar _Tokenizer = _interopRequireDefault(require(\"../core/Tokenizer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar reservedWords = ['ABS', 'ACTIVATE', 'ALIAS', 'ALL', 'ALLOCATE', 'ALLOW', 'ALTER', 'ANY', 'ARE', 'ARRAY', 'AS', 'ASC', 'ASENSITIVE', 'ASSOCIATE', 'ASUTIME', 'ASYMMETRIC', 'AT', 'ATOMIC', 'ATTRIBUTES', 'AUDIT', 'AUTHORIZATION', 'AUX', 'AUXILIARY', 'AVG', 'BEFORE', 'BEGIN', 'BETWEEN', 'BIGINT', 'BINARY', 'BLOB', 'BOOLEAN', 'BOTH', 'BUFFERPOOL', 'BY', 'CACHE', 'CALL', 'CALLED', 'CAPTURE', 'CARDINALITY', 'CASCADED', 'CASE', 'CAST', 'CCSID', 'CEIL', 'CEILING', 'CHAR', 'CHARACTER', 'CHARACTER_LENGTH', 'CHAR_LENGTH', 'CHECK', 'CLOB', 'CLONE', 'CLOSE', 'CLUSTER', 'COALESCE', 'COLLATE', 'COLLECT', 'COLLECTION', 'COLLID', 'COLUMN', 'COMMENT', 'COMMIT', 'CONCAT', 'CONDITION', 'CONNECT', 'CONNECTION', 'CONSTRAINT', 'CONTAINS', 'CONTINUE', 'CONVERT', 'CORR', 'CORRESPONDING', 'COUNT', 'COUNT_BIG', 'COVAR_POP', 'COVAR_SAMP', 'CREATE', 'CROSS', 'CUBE', 'CUME_DIST', 'CURRENT', 'CURRENT_DATE', 'CURRENT_DEFAULT_TRANSFORM_GROUP', 'CURRENT_LC_CTYPE', 'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_SCHEMA', 'CURRENT_SERVER', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_TIMEZONE', 'CURRENT_TRANSFORM_GROUP_FOR_TYPE', 'CURRENT_USER', 'CURSOR', 'CYCLE', 'DATA', 'DATABASE', 'DATAPARTITIONNAME', 'DATAPARTITIONNUM', 'DATE', 'DAY', 'DAYS', 'DB2GENERAL', 'DB2GENRL', 'DB2SQL', 'DBINFO', 'DBPARTITIONNAME', 'DBPARTITIONNUM', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFAULTS', 'DEFINITION', 'DELETE', 'DENSERANK', 'DENSE_RANK', 'DEREF', 'DESCRIBE', 'DESCRIPTOR', 'DETERMINISTIC', 'DIAGNOSTICS', 'DISABLE', 'DISALLOW', 'DISCONNECT', 'DISTINCT', 'DO', 'DOCUMENT', 'DOUBLE', 'DROP', 'DSSIZE', 'DYNAMIC', 'EACH', 'EDITPROC', 'ELEMENT', 'ELSE', 'ELSEIF', 'ENABLE', 'ENCODING', 'ENCRYPTION', 'END', 'END-EXEC', 'ENDING', 'ERASE', 'ESCAPE', 'EVERY', 'EXCEPTION', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTS', 'EXIT', 'EXP', 'EXPLAIN', 'EXTENDED', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FENCED', 'FETCH', 'FIELDPROC', 'FILE', 'FILTER', 'FINAL', 'FIRST', 'FLOAT', 'FLOOR', 'FOR', 'FOREIGN', 'FREE', 'FULL', 'FUNCTION', 'FUSION', 'GENERAL', 'GENERATED', 'GET', 'GLOBAL', 'GOTO', 'GRANT', 'GRAPHIC', 'GROUP', 'GROUPING', 'HANDLER', 'HASH', 'HASHED_VALUE', 'HINT', 'HOLD', 'HOUR', 'HOURS', 'IDENTITY', 'IF', 'IMMEDIATE', 'IN', 'INCLUDING', 'INCLUSIVE', 'INCREMENT', 'INDEX', 'INDICATOR', 'INDICATORS', 'INF', 'INFINITY', 'INHERIT', 'INNER', 'INOUT', 'INSENSITIVE', 'INSERT', 'INT', 'INTEGER', 'INTEGRITY', 'INTERSECTION', 'INTERVAL', 'INTO', 'IS', 'ISOBID', 'ISOLATION', 'ITERATE', 'JAR', 'JAVA', 'KEEP', 'KEY', 'LABEL', 'LANGUAGE', 'LARGE', 'LATERAL', 'LC_CTYPE', 'LEADING', 'LEAVE', 'LEFT', 'LIKE', 'LINKTYPE', 'LN', 'LOCAL', 'LOCALDATE', 'LOCALE', 'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'LOCATORS', 'LOCK', 'LOCKMAX', 'LOCKSIZE', 'LONG', 'LOOP', 'LOWER', 'MAINTAINED', 'MATCH', 'MATERIALIZED', 'MAX', 'MAXVALUE', 'MEMBER', 'MERGE', 'METHOD', 'MICROSECOND', 'MICROSECONDS', 'MIN', 'MINUTE', 'MINUTES', 'MINVALUE', 'MOD', 'MODE', 'MODIFIES', 'MODULE', 'MONTH', 'MONTHS', 'MULTISET', 'NAN', 'NATIONAL', 'NATURAL', 'NCHAR', 'NCLOB', 'NEW', 'NEW_TABLE', 'NEXTVAL', 'NO', 'NOCACHE', 'NOCYCLE', 'NODENAME', 'NODENUMBER', 'NOMAXVALUE', 'NOMINVALUE', 'NONE', 'NOORDER', 'NORMALIZE', 'NORMALIZED', 'NOT', 'NULL', 'NULLIF', 'NULLS', 'NUMERIC', 'NUMPARTS', 'OBID', 'OCTET_LENGTH', 'OF', 'OFFSET', 'OLD', 'OLD_TABLE', 'ON', 'ONLY', 'OPEN', 'OPTIMIZATION', 'OPTIMIZE', 'OPTION', 'ORDER', 'OUT', 'OUTER', 'OVER', 'OVERLAPS', 'OVERLAY', 'OVERRIDING', 'PACKAGE', 'PADDED', 'PAGESIZE', 'PARAMETER', 'PART', 'PARTITION', 'PARTITIONED', 'PARTITIONING', 'PARTITIONS', 'PASSWORD', 'PATH', 'PERCENTILE_CONT', 'PERCENTILE_DISC', 'PERCENT_RANK', 'PIECESIZE', 'PLAN', 'POSITION', 'POWER', 'PRECISION', 'PREPARE', 'PREVVAL', 'PRIMARY', 'PRIQTY', 'PRIVILEGES', 'PROCEDURE', 'PROGRAM', 'PSID', 'PUBLIC', 'QUERY', 'QUERYNO', 'RANGE', 'RANK', 'READ', 'READS', 'REAL', 'RECOVERY', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'REFRESH', 'REGR_AVGX', 'REGR_AVGY', 'REGR_COUNT', 'REGR_INTERCEPT', 'REGR_R2', 'REGR_SLOPE', 'REGR_SXX', 'REGR_SXY', 'REGR_SYY', 'RELEASE', 'RENAME', 'REPEAT', 'RESET', 'RESIGNAL', 'RESTART', 'RESTRICT', 'RESULT', 'RESULT_SET_LOCATOR', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUND_CEILING', 'ROUND_DOWN', 'ROUND_FLOOR', 'ROUND_HALF_DOWN', 'ROUND_HALF_EVEN', 'ROUND_HALF_UP', 'ROUND_UP', 'ROUTINE', 'ROW', 'ROWNUMBER', 'ROWS', 'ROWSET', 'ROW_NUMBER', 'RRN', 'RUN', 'SAVEPOINT', 'SCHEMA', 'SCOPE', 'SCRATCHPAD', 'SCROLL', 'SEARCH', 'SECOND', 'SECONDS', 'SECQTY', 'SECURITY', 'SENSITIVE', 'SEQUENCE', 'SESSION', 'SESSION_USER', 'SIGNAL', 'SIMILAR', 'SIMPLE', 'SMALLINT', 'SNAN', 'SOME', 'SOURCE', 'SPECIFIC', 'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLID', 'SQLSTATE', 'SQLWARNING', 'SQRT', 'STACKED', 'STANDARD', 'START', 'STARTING', 'STATEMENT', 'STATIC', 'STATMENT', 'STAY', 'STDDEV_POP', 'STDDEV_SAMP', 'STOGROUP', 'STORES', 'STYLE', 'SUBMULTISET', 'SUBSTRING', 'SUM', 'SUMMARY', 'SYMMETRIC', 'SYNONYM', 'SYSFUN', 'SYSIBM', 'SYSPROC', 'SYSTEM', 'SYSTEM_USER', 'TABLE', 'TABLESAMPLE', 'TABLESPACE', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE', 'TO', 'TRAILING', 'TRANSACTION', 'TRANSLATE', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRIM', 'TRUE', 'TRUNCATE', 'TYPE', 'UESCAPE', 'UNDO', 'UNIQUE', 'UNKNOWN', 'UNNEST', 'UNTIL', 'UPPER', 'USAGE', 'USER', 'USING', 'VALIDPROC', 'VALUE', 'VARCHAR', 'VARIABLE', 'VARIANT', 'VARYING', 'VAR_POP', 'VAR_SAMP', 'VCAT', 'VERSION', 'VIEW', 'VOLATILE', 'VOLUMES', 'WHEN', 'WHENEVER', 'WHILE', 'WIDTH_BUCKET', 'WINDOW', 'WITH', 'WITHIN', 'WITHOUT', 'WLM', 'WRITE', 'XMLELEMENT', 'XMLEXISTS', 'XMLNAMESPACES', 'YEAR', 'YEARS'];\nvar reservedTopLevelWords = ['ADD', 'AFTER', 'ALTER COLUMN', 'ALTER TABLE', 'DELETE FROM', 'EXCEPT', 'FETCH FIRST', 'FROM', 'GROUP BY', 'GO', 'HAVING', 'INSERT INTO', 'INTERSECT', 'LIMIT', 'ORDER BY', 'SELECT', 'SET CURRENT SCHEMA', 'SET SCHEMA', 'SET', 'UPDATE', 'VALUES', 'WHERE'];\nvar reservedTopLevelWordsNoIndent = ['INTERSECT', 'INTERSECT ALL', 'MINUS', 'UNION', 'UNION ALL'];\nvar reservedNewlineWords = ['AND', 'CROSS JOIN', 'INNER JOIN', 'JOIN', 'LEFT JOIN', 'LEFT OUTER JOIN', 'OR', 'OUTER JOIN', 'RIGHT JOIN', 'RIGHT OUTER JOIN'];\nvar tokenizer;\n\nvar Db2Formatter =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg Different set of configurations\r\n */\n function Db2Formatter(cfg) {\n _classCallCheck(this, Db2Formatter);\n\n this.cfg = cfg;\n }\n /**\r\n * Formats DB2 query to make it easier to read\r\n *\r\n * @param {String} query The DB2 query string\r\n * @return {String} formatted string\r\n */\n\n\n _createClass(Db2Formatter, [{\n key: \"format\",\n value: function format(query) {\n if (!tokenizer) {\n tokenizer = new _Tokenizer[\"default\"]({\n reservedWords: reservedWords,\n reservedTopLevelWords: reservedTopLevelWords,\n reservedNewlineWords: reservedNewlineWords,\n reservedTopLevelWordsNoIndent: reservedTopLevelWordsNoIndent,\n stringTypes: [\"\\\"\\\"\", \"''\", '``', '[]'],\n openParens: ['('],\n closeParens: [')'],\n indexedPlaceholderTypes: ['?'],\n namedPlaceholderTypes: [':'],\n lineCommentTypes: ['--'],\n specialWordChars: ['#', '@']\n });\n }\n\n return new _Formatter[\"default\"](this.cfg, tokenizer).format(query);\n }\n }]);\n\n return Db2Formatter;\n}();\n\nexports[\"default\"] = Db2Formatter;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Formatter = _interopRequireDefault(require(\"../core/Formatter\"));\n\nvar _Tokenizer = _interopRequireDefault(require(\"../core/Tokenizer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar reservedWords = ['ALL', 'ALTER', 'ANALYZE', 'AND', 'ANY', 'ARRAY', 'AS', 'ASC', 'BEGIN', 'BETWEEN', 'BINARY', 'BOOLEAN', 'BREAK', 'BUCKET', 'BUILD', 'BY', 'CALL', 'CASE', 'CAST', 'CLUSTER', 'COLLATE', 'COLLECTION', 'COMMIT', 'CONNECT', 'CONTINUE', 'CORRELATE', 'COVER', 'CREATE', 'DATABASE', 'DATASET', 'DATASTORE', 'DECLARE', 'DECREMENT', 'DELETE', 'DERIVED', 'DESC', 'DESCRIBE', 'DISTINCT', 'DO', 'DROP', 'EACH', 'ELEMENT', 'ELSE', 'END', 'EVERY', 'EXCEPT', 'EXCLUDE', 'EXECUTE', 'EXISTS', 'EXPLAIN', 'FALSE', 'FETCH', 'FIRST', 'FLATTEN', 'FOR', 'FORCE', 'FROM', 'FUNCTION', 'GRANT', 'GROUP', 'GSI', 'HAVING', 'IF', 'IGNORE', 'ILIKE', 'IN', 'INCLUDE', 'INCREMENT', 'INDEX', 'INFER', 'INLINE', 'INNER', 'INSERT', 'INTERSECT', 'INTO', 'IS', 'JOIN', 'KEY', 'KEYS', 'KEYSPACE', 'KNOWN', 'LAST', 'LEFT', 'LET', 'LETTING', 'LIKE', 'LIMIT', 'LSM', 'MAP', 'MAPPING', 'MATCHED', 'MATERIALIZED', 'MERGE', 'MISSING', 'NAMESPACE', 'NEST', 'NOT', 'NULL', 'NUMBER', 'OBJECT', 'OFFSET', 'ON', 'OPTION', 'OR', 'ORDER', 'OUTER', 'OVER', 'PARSE', 'PARTITION', 'PASSWORD', 'PATH', 'POOL', 'PREPARE', 'PRIMARY', 'PRIVATE', 'PRIVILEGE', 'PROCEDURE', 'PUBLIC', 'RAW', 'REALM', 'REDUCE', 'RENAME', 'RETURN', 'RETURNING', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'SATISFIES', 'SCHEMA', 'SELECT', 'SELF', 'SEMI', 'SET', 'SHOW', 'SOME', 'START', 'STATISTICS', 'STRING', 'SYSTEM', 'THEN', 'TO', 'TRANSACTION', 'TRIGGER', 'TRUE', 'TRUNCATE', 'UNDER', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNNEST', 'UNSET', 'UPDATE', 'UPSERT', 'USE', 'USER', 'USING', 'VALIDATE', 'VALUE', 'VALUED', 'VALUES', 'VIA', 'VIEW', 'WHEN', 'WHERE', 'WHILE', 'WITH', 'WITHIN', 'WORK', 'XOR'];\nvar reservedTopLevelWords = ['DELETE FROM', 'EXCEPT ALL', 'EXCEPT', 'EXPLAIN DELETE FROM', 'EXPLAIN UPDATE', 'EXPLAIN UPSERT', 'FROM', 'GROUP BY', 'HAVING', 'INFER', 'INSERT INTO', 'LET', 'LIMIT', 'MERGE', 'NEST', 'ORDER BY', 'PREPARE', 'SELECT', 'SET CURRENT SCHEMA', 'SET SCHEMA', 'SET', 'UNNEST', 'UPDATE', 'UPSERT', 'USE KEYS', 'VALUES', 'WHERE'];\nvar reservedTopLevelWordsNoIndent = ['INTERSECT', 'INTERSECT ALL', 'MINUS', 'UNION', 'UNION ALL'];\nvar reservedNewlineWords = ['AND', 'INNER JOIN', 'JOIN', 'LEFT JOIN', 'LEFT OUTER JOIN', 'OR', 'OUTER JOIN', 'RIGHT JOIN', 'RIGHT OUTER JOIN', 'XOR'];\nvar tokenizer;\n\nvar N1qlFormatter =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg Different set of configurations\r\n */\n function N1qlFormatter(cfg) {\n _classCallCheck(this, N1qlFormatter);\n\n this.cfg = cfg;\n }\n /**\r\n * Format the whitespace in a N1QL string to make it easier to read\r\n *\r\n * @param {String} query The N1QL string\r\n * @return {String} formatted string\r\n */\n\n\n _createClass(N1qlFormatter, [{\n key: \"format\",\n value: function format(query) {\n if (!tokenizer) {\n tokenizer = new _Tokenizer[\"default\"]({\n reservedWords: reservedWords,\n reservedTopLevelWords: reservedTopLevelWords,\n reservedNewlineWords: reservedNewlineWords,\n reservedTopLevelWordsNoIndent: reservedTopLevelWordsNoIndent,\n stringTypes: [\"\\\"\\\"\", \"''\", '``'],\n openParens: ['(', '[', '{'],\n closeParens: [')', ']', '}'],\n namedPlaceholderTypes: ['$'],\n lineCommentTypes: ['#', '--']\n });\n }\n\n return new _Formatter[\"default\"](this.cfg, tokenizer).format(query);\n }\n }]);\n\n return N1qlFormatter;\n}();\n\nexports[\"default\"] = N1qlFormatter;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Formatter = _interopRequireDefault(require(\"../core/Formatter\"));\n\nvar _Tokenizer = _interopRequireDefault(require(\"../core/Tokenizer\"));\n\nvar _tokenTypes = _interopRequireDefault(require(\"../core/tokenTypes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar reservedWords = ['A', 'ACCESSIBLE', 'AGENT', 'AGGREGATE', 'ALL', 'ALTER', 'ANY', 'ARRAY', 'AS', 'ASC', 'AT', 'ATTRIBUTE', 'AUTHID', 'AVG', 'BETWEEN', 'BFILE_BASE', 'BINARY_INTEGER', 'BINARY', 'BLOB_BASE', 'BLOCK', 'BODY', 'BOOLEAN', 'BOTH', 'BOUND', 'BREADTH', 'BULK', 'BY', 'BYTE', 'C', 'CALL', 'CALLING', 'CASCADE', 'CASE', 'CHAR_BASE', 'CHAR', 'CHARACTER', 'CHARSET', 'CHARSETFORM', 'CHARSETID', 'CHECK', 'CLOB_BASE', 'CLONE', 'CLOSE', 'CLUSTER', 'CLUSTERS', 'COALESCE', 'COLAUTH', 'COLLECT', 'COLUMNS', 'COMMENT', 'COMMIT', 'COMMITTED', 'COMPILED', 'COMPRESS', 'CONNECT', 'CONSTANT', 'CONSTRUCTOR', 'CONTEXT', 'CONTINUE', 'CONVERT', 'COUNT', 'CRASH', 'CREATE', 'CREDENTIAL', 'CURRENT', 'CURRVAL', 'CURSOR', 'CUSTOMDATUM', 'DANGLING', 'DATA', 'DATE_BASE', 'DATE', 'DAY', 'DECIMAL', 'DEFAULT', 'DEFINE', 'DELETE', 'DEPTH', 'DESC', 'DETERMINISTIC', 'DIRECTORY', 'DISTINCT', 'DO', 'DOUBLE', 'DROP', 'DURATION', 'ELEMENT', 'ELSIF', 'EMPTY', 'END', 'ESCAPE', 'EXCEPTIONS', 'EXCLUSIVE', 'EXECUTE', 'EXISTS', 'EXIT', 'EXTENDS', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL', 'FIRST', 'FIXED', 'FLOAT', 'FOR', 'FORALL', 'FORCE', 'FROM', 'FUNCTION', 'GENERAL', 'GOTO', 'GRANT', 'GROUP', 'HASH', 'HEAP', 'HIDDEN', 'HOUR', 'IDENTIFIED', 'IF', 'IMMEDIATE', 'IN', 'INCLUDING', 'INDEX', 'INDEXES', 'INDICATOR', 'INDICES', 'INFINITE', 'INSTANTIABLE', 'INT', 'INTEGER', 'INTERFACE', 'INTERVAL', 'INTO', 'INVALIDATE', 'IS', 'ISOLATION', 'JAVA', 'LANGUAGE', 'LARGE', 'LEADING', 'LENGTH', 'LEVEL', 'LIBRARY', 'LIKE', 'LIKE2', 'LIKE4', 'LIKEC', 'LIMITED', 'LOCAL', 'LOCK', 'LONG', 'MAP', 'MAX', 'MAXLEN', 'MEMBER', 'MERGE', 'MIN', 'MINUTE', 'MLSLABEL', 'MOD', 'MODE', 'MONTH', 'MULTISET', 'NAME', 'NAN', 'NATIONAL', 'NATIVE', 'NATURAL', 'NATURALN', 'NCHAR', 'NEW', 'NEXTVAL', 'NOCOMPRESS', 'NOCOPY', 'NOT', 'NOWAIT', 'NULL', 'NULLIF', 'NUMBER_BASE', 'NUMBER', 'OBJECT', 'OCICOLL', 'OCIDATE', 'OCIDATETIME', 'OCIDURATION', 'OCIINTERVAL', 'OCILOBLOCATOR', 'OCINUMBER', 'OCIRAW', 'OCIREF', 'OCIREFCURSOR', 'OCIROWID', 'OCISTRING', 'OCITYPE', 'OF', 'OLD', 'ON', 'ONLY', 'OPAQUE', 'OPEN', 'OPERATOR', 'OPTION', 'ORACLE', 'ORADATA', 'ORDER', 'ORGANIZATION', 'ORLANY', 'ORLVARY', 'OTHERS', 'OUT', 'OVERLAPS', 'OVERRIDING', 'PACKAGE', 'PARALLEL_ENABLE', 'PARAMETER', 'PARAMETERS', 'PARENT', 'PARTITION', 'PASCAL', 'PCTFREE', 'PIPE', 'PIPELINED', 'PLS_INTEGER', 'PLUGGABLE', 'POSITIVE', 'POSITIVEN', 'PRAGMA', 'PRECISION', 'PRIOR', 'PRIVATE', 'PROCEDURE', 'PUBLIC', 'RAISE', 'RANGE', 'RAW', 'READ', 'REAL', 'RECORD', 'REF', 'REFERENCE', 'RELEASE', 'RELIES_ON', 'REM', 'REMAINDER', 'RENAME', 'RESOURCE', 'RESULT_CACHE', 'RESULT', 'RETURN', 'RETURNING', 'REVERSE', 'REVOKE', 'ROLLBACK', 'ROW', 'ROWID', 'ROWNUM', 'ROWTYPE', 'SAMPLE', 'SAVE', 'SAVEPOINT', 'SB1', 'SB2', 'SB4', 'SEARCH', 'SECOND', 'SEGMENT', 'SELF', 'SEPARATE', 'SEQUENCE', 'SERIALIZABLE', 'SHARE', 'SHORT', 'SIZE_T', 'SIZE', 'SMALLINT', 'SOME', 'SPACE', 'SPARSE', 'SQL', 'SQLCODE', 'SQLDATA', 'SQLERRM', 'SQLNAME', 'SQLSTATE', 'STANDARD', 'START', 'STATIC', 'STDDEV', 'STORED', 'STRING', 'STRUCT', 'STYLE', 'SUBMULTISET', 'SUBPARTITION', 'SUBSTITUTABLE', 'SUBTYPE', 'SUCCESSFUL', 'SUM', 'SYNONYM', 'SYSDATE', 'TABAUTH', 'TABLE', 'TDO', 'THE', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_ABBR', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE', 'TIMEZONE_REGION', 'TO', 'TRAILING', 'TRANSACTION', 'TRANSACTIONAL', 'TRIGGER', 'TRUE', 'TRUSTED', 'TYPE', 'UB1', 'UB2', 'UB4', 'UID', 'UNDER', 'UNIQUE', 'UNPLUG', 'UNSIGNED', 'UNTRUSTED', 'USE', 'USER', 'USING', 'VALIDATE', 'VALIST', 'VALUE', 'VARCHAR', 'VARCHAR2', 'VARIABLE', 'VARIANCE', 'VARRAY', 'VARYING', 'VIEW', 'VIEWS', 'VOID', 'WHENEVER', 'WHILE', 'WITH', 'WORK', 'WRAPPED', 'WRITE', 'YEAR', 'ZONE'];\nvar reservedTopLevelWords = ['ADD', 'ALTER COLUMN', 'ALTER TABLE', 'BEGIN', 'CONNECT BY', 'DECLARE', 'DELETE FROM', 'DELETE', 'END', 'EXCEPT', 'EXCEPTION', 'FETCH FIRST', 'FROM', 'GROUP BY', 'HAVING', 'INSERT INTO', 'INSERT', 'LIMIT', 'LOOP', 'MODIFY', 'ORDER BY', 'SELECT', 'SET CURRENT SCHEMA', 'SET SCHEMA', 'SET', 'START WITH', 'UPDATE', 'VALUES', 'WHERE'];\nvar reservedTopLevelWordsNoIndent = ['INTERSECT', 'INTERSECT ALL', 'MINUS', 'UNION', 'UNION ALL'];\nvar reservedNewlineWords = ['AND', 'CROSS APPLY', 'CROSS JOIN', 'ELSE', 'END', 'INNER JOIN', 'JOIN', 'LEFT JOIN', 'LEFT OUTER JOIN', 'OR', 'OUTER APPLY', 'OUTER JOIN', 'RIGHT JOIN', 'RIGHT OUTER JOIN', 'WHEN', 'XOR'];\n\nvar tokenOverride = function tokenOverride(token, previousReservedToken) {\n if (token.type === _tokenTypes[\"default\"].RESERVED_TOP_LEVEL && token.value === 'SET' && previousReservedToken.value === 'BY') {\n token.type = _tokenTypes[\"default\"].RESERVED;\n return token;\n }\n};\n\nvar tokenizer;\n\nvar PlSqlFormatter =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg Different set of configurations\r\n */\n function PlSqlFormatter(cfg) {\n _classCallCheck(this, PlSqlFormatter);\n\n this.cfg = cfg;\n }\n /**\r\n * Format the whitespace in a PL/SQL string to make it easier to read\r\n *\r\n * @param {String} query The PL/SQL string\r\n * @return {String} formatted string\r\n */\n\n\n _createClass(PlSqlFormatter, [{\n key: \"format\",\n value: function format(query) {\n if (!tokenizer) {\n tokenizer = new _Tokenizer[\"default\"]({\n reservedWords: reservedWords,\n reservedTopLevelWords: reservedTopLevelWords,\n reservedNewlineWords: reservedNewlineWords,\n reservedTopLevelWordsNoIndent: reservedTopLevelWordsNoIndent,\n stringTypes: [\"\\\"\\\"\", \"N''\", \"''\", '``'],\n openParens: ['(', 'CASE', 'BEGIN'],\n closeParens: [')', 'END'],\n indexedPlaceholderTypes: ['?'],\n namedPlaceholderTypes: [':'],\n lineCommentTypes: ['--'],\n specialWordChars: ['_', '$', '#', '.', '@']\n });\n }\n\n return new _Formatter[\"default\"](this.cfg, tokenizer, tokenOverride).format(query);\n }\n }]);\n\n return PlSqlFormatter;\n}();\n\nexports[\"default\"] = PlSqlFormatter;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _Formatter = _interopRequireDefault(require(\"../core/Formatter\"));\n\nvar _Tokenizer = _interopRequireDefault(require(\"../core/Tokenizer\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar reservedWords = ['ACCESSIBLE', 'ACTION', 'AGAINST', 'AGGREGATE', 'ALGORITHM', 'ALL', 'ALTER', 'ANALYSE', 'ANALYZE', 'AS', 'ASC', 'AUTOCOMMIT', 'AUTO_INCREMENT', 'BACKUP', 'BEGIN', 'BETWEEN', 'BINLOG', 'BOTH', 'CASCADE', 'CASE', 'CHANGE', 'CHANGED', 'CHARACTER SET', 'CHARSET', 'CHECK', 'CHECKSUM', 'COLLATE', 'COLLATION', 'COLUMN', 'COLUMNS', 'COMMENT', 'COMMIT', 'COMMITTED', 'COMPRESSED', 'CONCURRENT', 'CONSTRAINT', 'CONTAINS', 'CONVERT', 'CREATE', 'CROSS', 'CURRENT_TIMESTAMP', 'DATABASE', 'DATABASES', 'DAY', 'DAY_HOUR', 'DAY_MINUTE', 'DAY_SECOND', 'DEFAULT', 'DEFINER', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DETERMINISTIC', 'DISTINCT', 'DISTINCTROW', 'DIV', 'DO', 'DROP', 'DUMPFILE', 'DUPLICATE', 'DYNAMIC', 'ELSE', 'ENCLOSED', 'END', 'ENGINE', 'ENGINES', 'ENGINE_TYPE', 'ESCAPE', 'ESCAPED', 'EVENTS', 'EXEC', 'EXECUTE', 'EXISTS', 'EXPLAIN', 'EXTENDED', 'FAST', 'FETCH', 'FIELDS', 'FILE', 'FIRST', 'FIXED', 'FLUSH', 'FOR', 'FORCE', 'FOREIGN', 'FULL', 'FULLTEXT', 'FUNCTION', 'GLOBAL', 'GRANT', 'GRANTS', 'GROUP_CONCAT', 'HEAP', 'HIGH_PRIORITY', 'HOSTS', 'HOUR', 'HOUR_MINUTE', 'HOUR_SECOND', 'IDENTIFIED', 'IF', 'IFNULL', 'IGNORE', 'IN', 'INDEX', 'INDEXES', 'INFILE', 'INSERT', 'INSERT_ID', 'INSERT_METHOD', 'INTERVAL', 'INTO', 'INVOKER', 'IS', 'ISOLATION', 'KEY', 'KEYS', 'KILL', 'LAST_INSERT_ID', 'LEADING', 'LEVEL', 'LIKE', 'LINEAR', 'LINES', 'LOAD', 'LOCAL', 'LOCK', 'LOCKS', 'LOGS', 'LOW_PRIORITY', 'MARIA', 'MASTER', 'MASTER_CONNECT_RETRY', 'MASTER_HOST', 'MASTER_LOG_FILE', 'MATCH', 'MAX_CONNECTIONS_PER_HOUR', 'MAX_QUERIES_PER_HOUR', 'MAX_ROWS', 'MAX_UPDATES_PER_HOUR', 'MAX_USER_CONNECTIONS', 'MEDIUM', 'MERGE', 'MINUTE', 'MINUTE_SECOND', 'MIN_ROWS', 'MODE', 'MODIFY', 'MONTH', 'MRG_MYISAM', 'MYISAM', 'NAMES', 'NATURAL', 'NOT', 'NOW()', 'NULL', 'OFFSET', 'ON DELETE', 'ON UPDATE', 'ON', 'ONLY', 'OPEN', 'OPTIMIZE', 'OPTION', 'OPTIONALLY', 'OUTFILE', 'PACK_KEYS', 'PAGE', 'PARTIAL', 'PARTITION', 'PARTITIONS', 'PASSWORD', 'PRIMARY', 'PRIVILEGES', 'PROCEDURE', 'PROCESS', 'PROCESSLIST', 'PURGE', 'QUICK', 'RAID0', 'RAID_CHUNKS', 'RAID_CHUNKSIZE', 'RAID_TYPE', 'RANGE', 'READ', 'READ_ONLY', 'READ_WRITE', 'REFERENCES', 'REGEXP', 'RELOAD', 'RENAME', 'REPAIR', 'REPEATABLE', 'REPLACE', 'REPLICATION', 'RESET', 'RESTORE', 'RESTRICT', 'RETURN', 'RETURNS', 'REVOKE', 'RLIKE', 'ROLLBACK', 'ROW', 'ROWS', 'ROW_FORMAT', 'SECOND', 'SECURITY', 'SEPARATOR', 'SERIALIZABLE', 'SESSION', 'SHARE', 'SHOW', 'SHUTDOWN', 'SLAVE', 'SONAME', 'SOUNDS', 'SQL', 'SQL_AUTO_IS_NULL', 'SQL_BIG_RESULT', 'SQL_BIG_SELECTS', 'SQL_BIG_TABLES', 'SQL_BUFFER_RESULT', 'SQL_CACHE', 'SQL_CALC_FOUND_ROWS', 'SQL_LOG_BIN', 'SQL_LOG_OFF', 'SQL_LOG_UPDATE', 'SQL_LOW_PRIORITY_UPDATES', 'SQL_MAX_JOIN_SIZE', 'SQL_NO_CACHE', 'SQL_QUOTE_SHOW_CREATE', 'SQL_SAFE_UPDATES', 'SQL_SELECT_LIMIT', 'SQL_SLAVE_SKIP_COUNTER', 'SQL_SMALL_RESULT', 'SQL_WARNINGS', 'START', 'STARTING', 'STATUS', 'STOP', 'STORAGE', 'STRAIGHT_JOIN', 'STRING', 'STRIPED', 'SUPER', 'TABLE', 'TABLES', 'TEMPORARY', 'TERMINATED', 'THEN', 'TO', 'TRAILING', 'TRANSACTIONAL', 'TRUE', 'TRUNCATE', 'TYPE', 'TYPES', 'UNCOMMITTED', 'UNIQUE', 'UNLOCK', 'UNSIGNED', 'USAGE', 'USE', 'USING', 'VARIABLES', 'VIEW', 'WHEN', 'WITH', 'WORK', 'WRITE', 'YEAR_MONTH'];\nvar reservedTopLevelWords = ['ADD', 'AFTER', 'ALTER COLUMN', 'ALTER TABLE', 'DELETE FROM', 'EXCEPT', 'FETCH FIRST', 'FROM', 'GROUP BY', 'GO', 'HAVING', 'INSERT INTO', 'INSERT', 'LIMIT', 'MODIFY', 'ORDER BY', 'SELECT', 'SET CURRENT SCHEMA', 'SET SCHEMA', 'SET', 'UPDATE', 'VALUES', 'WHERE'];\nvar reservedTopLevelWordsNoIndent = ['INTERSECT', 'INTERSECT ALL', 'MINUS', 'UNION', 'UNION ALL'];\nvar reservedNewlineWords = ['AND', 'CROSS APPLY', 'CROSS JOIN', 'ELSE', 'INNER JOIN', 'JOIN', 'LEFT JOIN', 'LEFT OUTER JOIN', 'OR', 'OUTER APPLY', 'OUTER JOIN', 'RIGHT JOIN', 'RIGHT OUTER JOIN', 'WHEN', 'XOR'];\nvar tokenizer;\n\nvar StandardSqlFormatter =\n/*#__PURE__*/\nfunction () {\n /**\r\n * @param {Object} cfg Different set of configurations\r\n */\n function StandardSqlFormatter(cfg) {\n _classCallCheck(this, StandardSqlFormatter);\n\n this.cfg = cfg;\n }\n /**\r\n * Format the whitespace in a Standard SQL string to make it easier to read\r\n *\r\n * @param {String} query The Standard SQL string\r\n * @return {String} formatted string\r\n */\n\n\n _createClass(StandardSqlFormatter, [{\n key: \"format\",\n value: function format(query) {\n if (!tokenizer) {\n tokenizer = new _Tokenizer[\"default\"]({\n reservedWords: reservedWords,\n reservedTopLevelWords: reservedTopLevelWords,\n reservedNewlineWords: reservedNewlineWords,\n reservedTopLevelWordsNoIndent: reservedTopLevelWordsNoIndent,\n stringTypes: [\"\\\"\\\"\", \"N''\", \"''\", '``', '[]'],\n openParens: ['(', 'CASE'],\n closeParens: [')', 'END'],\n indexedPlaceholderTypes: ['?'],\n namedPlaceholderTypes: ['@', ':'],\n lineCommentTypes: ['#', '--']\n });\n }\n\n return new _Formatter[\"default\"](this.cfg, tokenizer).format(query);\n }\n }]);\n\n return StandardSqlFormatter;\n}();\n\nexports[\"default\"] = StandardSqlFormatter;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.format = void 0;\n\nvar _Db2Formatter = _interopRequireDefault(require(\"./languages/Db2Formatter\"));\n\nvar _N1qlFormatter = _interopRequireDefault(require(\"./languages/N1qlFormatter\"));\n\nvar _PlSqlFormatter = _interopRequireDefault(require(\"./languages/PlSqlFormatter\"));\n\nvar _StandardSqlFormatter = _interopRequireDefault(require(\"./languages/StandardSqlFormatter\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * Format whitespace in a query to make it easier to read.\r\n *\r\n * @param {String} query\r\n * @param {Object} cfg\r\n * @param {String} cfg.language Query language, default is Standard SQL\r\n * @param {String} cfg.indent Characters used for indentation, default is \" \" (2 spaces)\r\n * @param {Bool} cfg.uppercase Converts keywords to uppercase\r\n * @param {Integer} cfg.linesBetweenQueries How many line breaks between queries\r\n * @param {Object} cfg.params Collection of params for placeholder replacement\r\n * @return {String}\r\n */\nvar format = function format(query) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n switch (cfg.language) {\n case 'db2':\n return new _Db2Formatter[\"default\"](cfg).format(query);\n\n case 'n1ql':\n return new _N1qlFormatter[\"default\"](cfg).format(query);\n\n case 'pl/sql':\n return new _PlSqlFormatter[\"default\"](cfg).format(query);\n\n case 'sql':\n case undefined:\n return new _StandardSqlFormatter[\"default\"](cfg).format(query);\n\n default:\n throw Error(\"Unsupported SQL dialect: \".concat(cfg.language));\n }\n};\n\nexports.format = format;\nvar _default = {\n format: format\n};\nexports[\"default\"] = _default;","module.exports = require('./lib/SqlString');\n","var SqlString = exports;\n\nvar ID_GLOBAL_REGEXP = /`/g;\nvar QUAL_GLOBAL_REGEXP = /\\./g;\nvar CHARS_GLOBAL_REGEXP = /[\\0\\b\\t\\n\\r\\x1a\\\"\\'\\\\]/g; // eslint-disable-line no-control-regex\nvar CHARS_ESCAPE_MAP = {\n '\\0' : '\\\\0',\n '\\b' : '\\\\b',\n '\\t' : '\\\\t',\n '\\n' : '\\\\n',\n '\\r' : '\\\\r',\n '\\x1a' : '\\\\Z',\n '\"' : '\\\\\"',\n '\\'' : '\\\\\\'',\n '\\\\' : '\\\\\\\\'\n};\n\nSqlString.escapeId = function escapeId(val, forbidQualified) {\n if (Array.isArray(val)) {\n var sql = '';\n\n for (var i = 0; i < val.length; i++) {\n sql += (i === 0 ? '' : ', ') + SqlString.escapeId(val[i], forbidQualified);\n }\n\n return sql;\n } else if (forbidQualified) {\n return '`' + String(val).replace(ID_GLOBAL_REGEXP, '``') + '`';\n } else {\n return '`' + String(val).replace(ID_GLOBAL_REGEXP, '``').replace(QUAL_GLOBAL_REGEXP, '`.`') + '`';\n }\n};\n\nSqlString.escape = function escape(val, stringifyObjects, timeZone) {\n if (val === undefined || val === null) {\n return 'NULL';\n }\n\n switch (typeof val) {\n case 'boolean': return (val) ? 'true' : 'false';\n case 'number': return val + '';\n case 'object':\n if (Object.prototype.toString.call(val) === '[object Date]') {\n return SqlString.dateToString(val, timeZone || 'local');\n } else if (Array.isArray(val)) {\n return SqlString.arrayToList(val, timeZone);\n } else if (Buffer.isBuffer(val)) {\n return SqlString.bufferToString(val);\n } else if (typeof val.toSqlString === 'function') {\n return String(val.toSqlString());\n } else if (stringifyObjects) {\n return escapeString(val.toString());\n } else {\n return SqlString.objectToValues(val, timeZone);\n }\n default: return escapeString(val);\n }\n};\n\nSqlString.arrayToList = function arrayToList(array, timeZone) {\n var sql = '';\n\n for (var i = 0; i < array.length; i++) {\n var val = array[i];\n\n if (Array.isArray(val)) {\n sql += (i === 0 ? '' : ', ') + '(' + SqlString.arrayToList(val, timeZone) + ')';\n } else {\n sql += (i === 0 ? '' : ', ') + SqlString.escape(val, true, timeZone);\n }\n }\n\n return sql;\n};\n\nSqlString.format = function format(sql, values, stringifyObjects, timeZone) {\n if (values == null) {\n return sql;\n }\n\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n var chunkIndex = 0;\n var placeholdersRegex = /\\?+/g;\n var result = '';\n var valuesIndex = 0;\n var match;\n\n while (valuesIndex < values.length && (match = placeholdersRegex.exec(sql))) {\n var len = match[0].length;\n\n if (len > 2) {\n continue;\n }\n\n var value = len === 2\n ? SqlString.escapeId(values[valuesIndex])\n : SqlString.escape(values[valuesIndex], stringifyObjects, timeZone);\n\n result += sql.slice(chunkIndex, match.index) + value;\n chunkIndex = placeholdersRegex.lastIndex;\n valuesIndex++;\n }\n\n if (chunkIndex === 0) {\n // Nothing was replaced\n return sql;\n }\n\n if (chunkIndex < sql.length) {\n return result + sql.slice(chunkIndex);\n }\n\n return result;\n};\n\nSqlString.dateToString = function dateToString(date, timeZone) {\n var dt = new Date(date);\n\n if (isNaN(dt.getTime())) {\n return 'NULL';\n }\n\n var year;\n var month;\n var day;\n var hour;\n var minute;\n var second;\n var millisecond;\n\n if (timeZone === 'local') {\n year = dt.getFullYear();\n month = dt.getMonth() + 1;\n day = dt.getDate();\n hour = dt.getHours();\n minute = dt.getMinutes();\n second = dt.getSeconds();\n millisecond = dt.getMilliseconds();\n } else {\n var tz = convertTimezone(timeZone);\n\n if (tz !== false && tz !== 0) {\n dt.setTime(dt.getTime() + (tz * 60000));\n }\n\n year = dt.getUTCFullYear();\n month = dt.getUTCMonth() + 1;\n day = dt.getUTCDate();\n hour = dt.getUTCHours();\n minute = dt.getUTCMinutes();\n second = dt.getUTCSeconds();\n millisecond = dt.getUTCMilliseconds();\n }\n\n // YYYY-MM-DD HH:mm:ss.mmm\n var str = zeroPad(year, 4) + '-' + zeroPad(month, 2) + '-' + zeroPad(day, 2) + ' ' +\n zeroPad(hour, 2) + ':' + zeroPad(minute, 2) + ':' + zeroPad(second, 2) + '.' +\n zeroPad(millisecond, 3);\n\n return escapeString(str);\n};\n\nSqlString.bufferToString = function bufferToString(buffer) {\n return 'X' + escapeString(buffer.toString('hex'));\n};\n\nSqlString.objectToValues = function objectToValues(object, timeZone) {\n var sql = '';\n\n for (var key in object) {\n var val = object[key];\n\n if (typeof val === 'function') {\n continue;\n }\n\n sql += (sql.length === 0 ? '' : ', ') + SqlString.escapeId(key) + ' = ' + SqlString.escape(val, true, timeZone);\n }\n\n return sql;\n};\n\nSqlString.raw = function raw(sql) {\n if (typeof sql !== 'string') {\n throw new TypeError('argument sql must be a string');\n }\n\n return {\n toSqlString: function toSqlString() { return sql; }\n };\n};\n\nfunction escapeString(val) {\n var chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex = 0;\n var escapedVal = '';\n var match;\n\n while ((match = CHARS_GLOBAL_REGEXP.exec(val))) {\n escapedVal += val.slice(chunkIndex, match.index) + CHARS_ESCAPE_MAP[match[0]];\n chunkIndex = CHARS_GLOBAL_REGEXP.lastIndex;\n }\n\n if (chunkIndex === 0) {\n // Nothing was escaped\n return \"'\" + val + \"'\";\n }\n\n if (chunkIndex < val.length) {\n return \"'\" + escapedVal + val.slice(chunkIndex) + \"'\";\n }\n\n return \"'\" + escapedVal + \"'\";\n}\n\nfunction zeroPad(number, length) {\n number = number.toString();\n while (number.length < length) {\n number = '0' + number;\n }\n\n return number;\n}\n\nfunction convertTimezone(tz) {\n if (tz === 'Z') {\n return 0;\n }\n\n var m = tz.match(/([\\+\\-\\s])(\\d\\d):?(\\d\\d)?/);\n if (m) {\n return (m[1] === '-' ? -1 : 1) * (parseInt(m[2], 10) + ((m[3] ? parseInt(m[3], 10) : 0) / 60)) * 60;\n }\n return false;\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n"],"names":["EditorHeader","children","styles","getStyles","theme","FlexItem","grow","shrink","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","__spreadProps","__objRest","source","exclude","target","InlineSelect","_a","_b","labelProp","props","getSelectStyles","id","components","SelectContainer","ValueContainer","className","SELECT","FROM","WHERE","GROUP","ORDER","BY","DESC","ASC","LIMIT","WITH","AS","SCHEMA","AND","OR","LOGICAL_OPERATORS","EQUALS","NOT_EQUALS","COMPARISON_OPERATORS","STD_OPERATORS","conf","language","COLUMN","RELATIVE_TIME_STRING","MACROS","getStandardSQLCompletionProvider","monaco","_c","provider","f","operators","OperatorType","OperatorType2","MacroType","MacroType2","TokenType","TokenType2","StatementPosition","StatementPosition2","SuggestionKind","SuggestionKind2","CompletionItemPriority","CompletionItemPriority2","CompletionItemKind","CompletionItemKind2","CompletionItemInsertTextRule","CompletionItemInsertTextRule2","EditorMode","EditorMode2","getRandomValues","rnds8","rng","validate","uuid","byteToHex","i","stringify","arr","offset","v4","options","buf","rnds","global","factory","module","SLICE$0","createClass","ctor","superClass","Iterable","isIterable","Seq","KeyedIterable","isKeyed","KeyedSeq","IndexedIterable","isIndexed","IndexedSeq","SetIterable","isAssociative","SetSeq","maybeIterable","IS_ITERABLE_SENTINEL","maybeKeyed","IS_KEYED_SENTINEL","maybeIndexed","IS_INDEXED_SENTINEL","maybeAssociative","isOrdered","maybeOrdered","IS_ORDERED_SENTINEL","DELETE","SHIFT","SIZE","MASK","NOT_SET","CHANGE_LENGTH","DID_ALTER","MakeRef","ref","SetRef","OwnerID","arrCopy","len","newArr","ii","ensureSize","iter","returnTrue","wrapIndex","index","uint32Index","wholeSlice","begin","end","size","resolveBegin","resolveIndex","resolveEnd","defaultIndex","ITERATE_KEYS","ITERATE_VALUES","ITERATE_ENTRIES","REAL_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ITERATOR_SYMBOL","Iterator","next","iteratorValue","type","k","v","iteratorResult","iteratorDone","hasIterator","getIteratorFn","isIterator","maybeIterator","getIterator","iterable","iteratorFn","isArrayLike","emptySequence","seqFromValue","fn","reverse","seqIterate","seqIterator","keyedSeqFromValue","indexedSeqFromValue","isSeq","IS_SEQ_SENTINEL","ArraySeq","array","notSetValue","maxIndex","ObjectSeq","object","keys","IterableSeq","iterator","iterations","step","IteratorSeq","cache","val","maybeSeq","EMPTY_SEQ","seq","maybeIndexedSeqFromValue","useKeys","entry","fromJS","json","converter","fromJSWith","fromJSDefault","parentJSON","isPlainObj","is","valueA","valueB","deepEqual","notAssociative","entries","flipped","_","allEqual","bSize","Repeat","times","EMPTY_REPEAT","searchValue","this$0","other","invariant","condition","error","Range","start","EMPTY_RANGE","possibleIndex","offsetValue","Collection","KeyedCollection","IndexedCollection","SetCollection","imul","c","d","smi","i32","hash","o","h","STRING_HASH_CACHE_MIN_STRLEN","cachedHashString","hashString","hashJSObj","string","stringHashCache","STRING_HASH_CACHE_SIZE","STRING_HASH_CACHE_MAX_SIZE","usingWeakMap","weakMap","UID_HASH_KEY","canDefineProperty","getIENodeHash","objHashUID","isExtensible","node","assertNotInfinite","Map","emptyMap","isMap","map","keyValues","updateMap","keyPath","updater","updatedValue","updateInDeepMap","forceIterator","mergeIntoMapWith","merger","iters","m","deepMerger","deepMergerWith","comparator","OrderedMap","sortFactory","mapper","mutable","MapIterator","ownerID","makeMap","maybeMap","IS_MAP_SENTINEL","MapPrototype","ArrayMapNode","shift","keyHash","didChangeSize","didAlter","removed","idx","exists","MAX_ARRAY_MAP_SIZE","createNodes","isEditable","newEntries","BitmapIndexedNode","bitmap","nodes","bit","popCount","keyHashFrag","newNode","updateNode","MAX_BITMAP_INDEXED_SIZE","expandNodes","isLeafNode","newBitmap","newNodes","setIn","spliceOut","spliceIn","HashArrayMapNode","count","newCount","MIN_HASH_ARRAY_MAP_SIZE","packNodes","HashCollisionNode","mergeIntoNode","ValueNode","keyMatch","mapIteratorFrame","stack","mapIteratorValue","subNode","prev","root","EMPTY_MAP","newRoot","newSize","idx1","idx2","excluding","packedII","packedNodes","including","expandedNodes","iterables","mergeIntoCollectionWith","existing","nextValue","collection","x","mergeIntoMap","keyPathIter","isNotSet","existingValue","newValue","nextExisting","nextUpdated","canEdit","newArray","newLen","after","List","empty","emptyList","isList","makeList","VNode","list","listNodeFor","updateList","values","oldSize","setListBounds","mergeIntoListWith","iterateList","DONE","maybeList","IS_LIST_SENTINEL","ListPrototype","level","originIndex","removingFirst","newChild","oldChild","editable","editableVNode","sizeIndex","left","right","tailPos","getTailOffset","tail","iterateNodeOrLeaf","iterateLeaf","iterateNode","from","to","origin","capacity","EMPTY_LIST","newTail","updateVNode","nodeHas","lowerNode","newLowerNode","rawIndex","owner","oldOrigin","oldCapacity","newOrigin","newCapacity","newLevel","offsetShift","oldTailOffset","newTailOffset","oldTail","beginIndex","maxSize","emptyOrderedMap","isOrderedMap","updateOrderedMap","newMap","newList","makeOrderedMap","maybeOrderedMap","omap","EMPTY_ORDERED_MAP","has","ToKeyedSequence","indexed","reversedSequence","reverseFactory","context","mappedSequence","mapFactory","resolveSize","ToIndexedSequence","ToSetSequence","FromEntriesSequence","validateEntry","indexedIterable","cacheResultThrough","flipFactory","flipSequence","makeSequence","filterFactory","predicate","filterSequence","countByFactory","grouper","groups","groupByFactory","isKeyedIter","coerce","iterableClass","reify","sliceFactory","originalSize","resolvedBegin","resolvedEnd","resolvedSize","sliceSize","sliceSeq","skipped","isSkipping","takeWhileFactory","takeSequence","iterating","skipWhileFactory","skipSequence","skipping","concatFactory","isKeyedIterable","singleton","concatSeq","sum","flattenFactory","depth","flatSequence","stopped","flatDeep","currentDepth","flatMapFactory","interposeFactory","separator","interposedSequence","defaultComparator","maxFactory","maxCompare","comp","zipWithFactory","keyIter","zipper","zipSequence","iterators","isDone","steps","s","Record","defaultValues","name","hasInitialized","RecordType","setProps","RecordTypePrototype","RecordPrototype","recordName","defaultVal","makeRecord","likeRecord","record","prototype","names","setProp","Set","emptySet","isSet","set","updateSet","originalSet","OrderedSet","maybeSet","IS_SET_SENTINEL","SetPrototype","makeSet","EMPTY_SET","emptyOrderedSet","isOrderedSet","maybeOrderedSet","OrderedSetPrototype","makeOrderedSet","EMPTY_ORDERED_SET","Stack","emptyStack","isStack","head","makeStack","maybeStack","IS_STACK_SENTINEL","StackPrototype","EMPTY_STACK","mixin","methods","keyCopier","returnValue","sideEffect","joined","isFirst","reducer","initialReduction","reduction","useFirst","reversed","not","entriesSequence","entryMapper","found","searchKey","searchKeyPath","nested","keyMapper","neg","defaultNegComparator","amount","hashIterable","IterablePrototype","quoteString","KeyedIterablePrototype","removeNum","numArgs","spliced","zipped","interleaved","defaultZipper","ordered","keyed","hashMerge","murmurHashOfSize","Immutable","e","g","l","n","p","q","r","u","w","y","t","z","A","B","C","D","E","F","G","H","I","exports","clone","_instanceof","nativeMap","nativeSet","nativePromise","parent","circular","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","child","proto","resolve","reject","err","__getRegExpFlags","keyChild","valueChild","entryChild","attrs","symbols","symbol","descriptor","allPropertyNames","propertyName","__objToStr","__isDate","__isArray","__isRegExp","re","flags","QueryFormat","QUERY_FORMAT_OPTIONS","backWardToOption","toOption","ResponseParser","frame","textField","valueField","field","QueryEditorPropertyType","QueryEditorExpressionType","createSelectClause","sqlColumns","rawColumn","haveColumns","columns","haveColumn","haveFunction","setGroupByField","setPropertyField","createFunctionField","functionName","applyQueryDefaults","editorMode","ConfirmModal","isOpen","onCancel","onDiscard","onCopy","buttonRef","Modal","Icon","Button","isSqlDatasourceDatabaseSelectionFeatureFlagEnabled","config","DatasetSelector","dataset","db","dialect","onChange","preconfiguredDataset","hasPreconfigCondition","state","useAsync","Select","TableSelector","table","editorModes","QueryHeader","isQueryRunnable","onQueryRowChange","onRunQuery","query","queryRowFilter","copyToClipboard","useCopyToClipboard","showConfirm","setShowConfirm","toRawSql","onEditorModeChange","newEditorMode","onFormatChange","onDatasetChange","onTableChange","datasetDropdownIsAvailable","ev","Tooltip","RadioButtonGroup","Space","EditorRow","EditorField","getStatementPosition","currentToken","statementPositionResolversRegistry","previousNonWhiteSpace","previousKeyword","previousIsSlash","resolvers","positions","resolver","toCompletionItem","range","rest","getStandardSuggestions","suggestionKinds","positionContext","suggestionsRegistry","suggestions","suggestion","registeredSuggestions","su","initSuggestionsKindRegistry","getSuggestionKinds","statementPosition","suggestionsKindRegistry","result","LinkedToken","previous","isType","compareTokenWithValue","curr","ignoreTypes","tokens","token","linkedTokenBuilder","model","position","languageId","current","tokensPerLine","lineIndex","columnIndex","endColumn","sqlToken","getSelectToken","getFromKeywordToken","selectToken","getTableToken","fromToken","nextNonWhiteSpace","defaultTableNameParser","parts","TRIGGER_SUGGEST","initStandardSuggestions","functions","macros","templateSrv","variable","label","m2","createMacroSuggestionItem","argsString","args","initStatementPositionResolvers","sqlEditorLogger","sqlEditorLog","standardSQLLanguageDefinition","STANDARD_SQL_LANGUAGE","LANGUAGES_CACHE","INSTANCE_CACHE","SQLEditor","onBlur","width","height","monacoRef","langUid","uid","id2","formatQuery","onSqlBlur","text","CodeEditor","editor","registerLanguageAndSuggestions","resolveLanguage","languageDefinitionProp","custom","lid","languageDefinition","formatted","customProvider","extendStandardRegistries","languageSuggestionsRegistries","instanceSuggestionsRegistry","completionProvider","kind","ctx","initializeLanguageRegistries","languageRegistries","Registry","func","op","macro","placement","origResolve","ext","applyTo","stbBehaviour","standardSchemas","customSchemaCompletionItems","_a2","_d","_e","tableToken","tableIdentifier","oo","_a3","tableNameParser","QueryEditorRaw","editorLanguageDefinition","queryRef","onRawQueryChange","rawSql","processQuery","newQuery","QueryValidator","onValidate","validationResult","setValidationResult","valueFormatter","validateQuery","useAsyncFn","useDebounce","processErrorMessage","Spinner","splat","QueryToolbox","showTools","onFormatCode","onExpand","isExpanded","validatorProps","style","IconButton","RawEditor","queryToValidate","setIsExpanded","toolboxRef","toolboxMeasure","useMeasure","editorRef","editorMeasure","renderQueryEditor","renderEditor","standalone","renderPlaceholder","formatSQL","sqlFormatter","Preview","datasourceType","copyPreview","labelElement","Field","useSqlChange","onQueryChange","sql","GroupByRow","onSqlChange","onGroupByChange","item","cleaned","newSql","EditorList","makeRenderColumn","onChangeItem","onDeleteItem","InputGroup","AccessoryButton","SQLGroupByRow","fields","sortOrderOptions","OrderByRow","showOffset","onSortOrderChange","onLimitChange","event","onOffsetChange","onOrderByChange","Input","SQLOrderByRow","columnsWithIndices","COMMON_AGGREGATE_FNS","MACRO_NAMES","asteriskValue","SelectRow","format","columnsWithAsterisk","timeSeriesAliasOpts","onColumnChange","column","modifiedItem","onAggregationChange","aggregation","newItem","onAliasChange","alias","removeColumn","addColumn","getColumnValue","parameters","SQLSelectRow","query_builder_seed","timePart","isObject","widgetDefKeysToOmit","opDefKeysToOmit","defaultValue","_default","v1","v2","shallowEqual","deep","shallowEqualArrays","shallowEqualObjects","arrA","arrB","isEqual","objA","objB","aKeys","bKeys","isImmutable","toImmutableList","applyToJS","escapeRegExp","cleanJSX","jsx","jsxKeys","getName","el","_i","isDirtyJSX","_cleaned$props","isJSX","isJsonLogic","logic","isJL","sleep","delay","mergeArraysSmart","arr1","arr2","_ref","orig","_ref2","ind","_ref3","_ref4","_cop","ci","before","_ref5","_ref6","acc","_ref7","_ref8","newOp","rel","relOp","deepFreeze","isJsonCompatible","tpl","bag","path","tv","ov","_tv","_ov","isDev","getLogger","devMode","verbose","getFirstDefined","ret","settings","label2","fieldDefinition","isForDisplay","_createForOfIteratorHelper","allowArrayLike","it","_unsupportedIterableToArray","normalCompletion","didErr","_e2","minLen","_arrayLikeToArray","ownKeys","enumerableOnly","sym","_objectSpread","toListValue","title","makeCustomListValue","lv","listValuesToArray","listValuesObj","listValuesArr","getItemInListValues","listValues","getTitleInListValues","getValueInListValues","mapListValues","mapFn","_iterator","_step","_lv","searchListValue","search","getListValue","selectedValue","expandTreePath","_len","suffix","_key","expandTreeSubpath","_len2","_key2","getItemByPath","tree","res","removeIsLockedInTree","newTree","_processNode","isParentLocked","itemPath","isLocked","_childId","fixPathsInTree","lev","nodeId","currPath","currId","itemId","childId","fixEmptyGroupsInTree","allChildrenGone","getFlatTree","flat","items","realHeight","_flatizeTree","insideCollapsed","insideLocked","insideRuleGroup","info","parentType","caseId","collapsed","childrenIds","_child","isRuleGroup","isLeaf","hasChildren","itemsBefore","top","subinfo","itemsAfter","_bottom","prevId","nextId","getTotalReordableNodesCountInTree","cnt","getTotalRulesCountInTree","getTreeBadFields","badFields","valueError","getLightTree","children1AsArray","properties","getSwitchValues","vals","caseValue","isEmptyTree","getTree","immutableTree","light","loadTree","serTree","isImmutableTree","isTree","jsToImmutable","checkTree","extendedConfig","extendConfig","validateTree","isValidTree","imm","outValue","_outValue$get","_v$toJS","vJs","_e3","arrayUniq","arrayToObject","fc","createMeta","loadFromJsonLogic","logicTree","_loadFromJsonLogic","returnErrors","meta","conv","buildConv","jsTree","convertFromLogic","wrapInDefaultConj","immTree","opKey","opConfig","opk","_opk","conjunctions","conjKey","conjunctionDefinition","ck","funcs","iterateFuncs","_step$value","funcPath","funcConfig","fk","_config$settings$json","groupVarKey","altVarKey","expectedType","fieldConfig","widget","parentField","_isLockedLogic","beforeErrorsCnt","lockedOp","isEmptyOp","isRev","convertFieldRhs","convertFuncRhs","convertValRhs","convertConj","convertOp","afterErrorsCnt","_fieldConfig$fieldSet","widgetConfig","fieldType","valueFormat","dateVal","_dateVal","_valueFormat","asyncListValues","normalizeField","getFieldConfig","convertLhs","isGroup0","jlField","_parse","convertFieldLhs","convertFuncLhs","fieldSrc","having","isGroup","parsed","_v","_v2","filter","init","_v3","_v4","group","_filter","parsedGroup","_parsedGroup","argsArr","funcKey","jsonLogicIsMethod","opts","_vals","returnType","funcKeys","getFuncConfig","_iterator2","_step2","_step2$value","argKeys","argsObj","argKey","argConfig","argVal","_argVal","fieldSeparator","complexFields","_v$properties","_v$properties2","_f$includes","complexFieldsGroupAncestors","ancs","fp","_f","children1","groupToId","_v$properties3","groupAncestors","groupField","ch","parentFieldParts","getFieldParts","groupPath","isInParent","traverseGroupFields","gf","gfc","groupId","wrapInDefaultConjRuleGroup","rule","parentFieldConfig","conj","defaultConjunction","parseRule","arity","submeta","_parseRule","isRevArgs","isAllOrSomeInForMultiselect","eqOps","cardinality","opKeys","jlArgs","rangeOps","_vals2","_vals3","lhs","op2","parseRes","showNot","canRev","havingVals","havingNot","getWidgetForFieldOp","convertedArgs","asyncListValuesArr","SqlString","any_start","any_end","sqlEmptyValue","fieldDef","mongoEmptyValue","spelEscapeString","spelInlineList","toArray","javaType","jt","numberJavaTypes","escapedVals","spelEscape","spelFixList","numberToFloat","arrayToArray","spelFormatConcat","part","spelImportConcat","errors","stringifyForDisplay","compareToSign","TypesWithCompareTo","spelFormat","_spelFormat","formatItem","formatGroup","formatRule","formatSwitch","formatCase","_formatItemValue","formatItemValue","_formatItemValue2","formattedValue","valueSrc","valueType","cond","cases","currentChild","filteredCases","_filteredCases$_i","mode","conjunction","isRuleGroupArray","groupFieldDef","isSpelArray","groupOperator","realGroupOperator","checkOp","isGroupOpRev","realGroupOperatorDefinition","getOperatorConfig","_formatItemValue3","_formatItemValue4","omitBrackets","formattedField","formatField","sep","getSize","fullSize","filteredSize","groupValue","formatExpression","buildFnToFormatOp","operator","operatorDefinition","spelOp","isSign","isCompareTo","sop","opDef","operatorOptions","compareRes","reversedOp","revOpDef","canFormatOp","canFormatRevOp","realOp","_formatItemValue5","_formatItemValue6","formatLhs","formatFunc","expectedValueType","iValueSrc","iValueType","iValue","valueSrcs","valueTypes","fvalue","currentValue","cValue","completeValue","fieldWidgetDef","getFieldWidgetConfig","fv","formatValue","hasUndefinedValues","operatorDef","valFieldDefinition","fieldParts","fieldPartsConfigs","getFieldPartsConfigs","formatFieldFn","fieldName","formatFieldName","fieldPartsMeta","cnf","parentCnf","isSpelVariable","formattedArgs","gaps","missingArgKeys","_argConfig$spelEscape","_defaultValue","isOptional","defaultValueSrc","argValue","argValueSrc","argAsyncListValues","doEscape","formattedArgVal","formattedDefaultVal","defaultWidget","defaultFieldWidgetDef","finalFormattedVal","missedArgKey","_args","_formattedArgs$argKey","optionalArgs","_argKey","SpelPrimitiveTypes","SpelPrimitiveClasses","ListValueType","isFuncableProperty","loadFromSpel","_loadFromSpel","spelStr","compiledExpression","convertedObj","compileRes","postprocessCompiled","convertToTree","expr","parentExpr","canFlatize","isListFix","selection","lastChild","isSize","isLength","sourceParts","isAggr","convertPath","isThis","isRoot","_lastChild","_lastChild2","flatizeTernary","qid","cls","_qid","_cls","_val","methodName","_args2","_processTernaryChildren","tern","_tern","if_val","else_val","_loop","_loop2","fks","spelFunc","funcSignMain","_k","funcSignsOptional","optionalArgKeys","_iterator3","_step3","_fk","valueFuncs","widgetDef","spelImportFuncs","fs","argsOrder","opFuncs","_fs","_argsOrder","compareToSS","spel","parentSpel","canParseAsArg","_groupFilter","groupFieldValue","groupFilter","caseI","buildCase","convertArg","sw","buildSimpleSwitch","isUnary","isBetweenNormal","isBetweenRev","isBetween","_spel$children$0$chil","_spel$children$1$chil","isSameSource","compareArgs","_fromValue","_toValue","oneSpel","convertChildren","_newChildren","newChildren","_fieldObj$groupFieldV","_convertedArgs","fieldObj","opArg","_vals$","_vals$2","widgets","ws","needWrapReverse","buildRuleGroup","_field","buildRule","expectingField","isError","_meta$errors","_meta$errors$push","isVariable","_spel$children","_field2","_fieldConfig","_isVariable","_value","_valueType","_values$","_itemType","_value2","_valueType2","buildCaseValueConcat","maybe","convertFunc","buildFuncSignatures","brns","_buildFuncSignatures","params","isVar","currBrn","_currBrn$params","_buildFuncSignatures2","_buildFuncSignatures3","s1","params1","newBrn","_iterator4","_step4","_brn$objs","brn","_params","_buildFuncSignatures4","_buildFuncSignatures5","_fsigns$","convertFuncArg","fsigns","firstSign","maybeValue","convertFuncToValue","maybeOp","convertFuncToOp","_iterator5","_step5","_loop3","_step5$value","_funcConfig","_ref9","_ret","_iterator6","_step6","_step6$value","funcArgs","errs","foundSign","foundWidget","candidates","fj","_iterator7","_step7","_step7$value","_s","_iterator8","_step8","_loop4","_step8$value","_candidates","_candidates$_i","_w","_widgetDef","spelImportValue","_k2","_spelImportValue$call","_spelImportValue$call2","_iterator9","_step9","_step9$value","_iterator10","_step10","_loop5","_argsArr$filter$find","_step10$value","_ref10","_ret2","_field3","_ref11","groupOpRule","_map","_map2","leftSource","rightSource","_map3","_map4","leftVal","rightVal","valProperties","buildCaseValProperties","_processConcatChildren","convertedChild","convVal","importCaseValue","_importCaseValue","_importCaseValue2","normVal","normErrors","getDefaultField","canGetFirst","parentRuleGroupPath","defaultField","getDefaultSubField","getFirstField","_config$settings","parentRuleGroupConfig","getDefaultFieldSrc","_config$settings$fiel","getDefaultOperator","defaultOperator","fieldOperators","fieldDefaultOperator","getFirstOperator","fieldHasExplicitDefOp","defaultOperatorOptions","operatorConfig","defaultRuleProperties","canUseDefaultFieldAndOp","showErrorMessage","_item$properties","_item$properties2","_item$properties3","_getNewValueForFieldO","getNewValueForFieldOp","newValueSrc","newValueType","newValueError","conjs","defaultGroupProperties","defaultItemProperties","_item$properties4","defaultRule","defaultRoot","canAddDefaultRule","createListFromArray","ids","emptyProperies","typeOf","isTypeOf","validateAndFixTree","_oldTree","newConfig","oldConfig","removeEmptyGroups","removeIncompleteRules","validateItem","validateGroup","validateRule","oldChildren","sanitized","_field$toJS","_field2$toJS","oldSerialized","_wasValid","getFieldSrc","availOps","getOperatorsForField","_operatorCardinality","canFix","isEndValue","newSerialized","isValueCompleted","delta","isCompletedValue","isFieldCompleted","isCompleted","reason","_newSerialized$valueS","_newSerialized$valueS2","_oldSerialized$valueS","validateValue","leftField","isRawValue","validError","fixedValue","_validateFieldValue","validateFieldValue","_validateFieldValue2","_validateFuncValue","validateFuncValue","_validateFuncValue2","_validateNormalValue","validateNormalValue","_validateNormalValue2","fieldWidgetDefinition","rightFieldDefinition","fieldSettings","validResult","validateValueInList","removeInvalidMultiSelectValuesOnLoad","_values$reduce","goodVals","badVals","vv","_values$reduce2","goodValues","badValues","plural","wConfig","wType","jsType","isAsyncListValues","canSkipCheck","realListValues","_valueSrc","isFuncArg","leftFieldStr","rightFieldStr","argDef","_validateValue","_validateValue2","argValidError","fixedArgVal","completeFuncValue","complValue","tmpHasOptional","valueSources","filteredValueSources","filterValueSourcesForField","argDefaultValueSrc","completeArgValue","getDefaultArgValue","setFunc","oldFuncKey","oldArgs","newFuncSignature","getFuncSignature","oldFuncSignature","keepArgsKeys","getCompatibleArgsOnFuncChange","argsKeys","deleteArgsKeys","firstValueSrc","hasValue","setArgValue","setArgValueSrc","argValSrc","_argConfig","_config","s2","argVals","checkIndexes","compatibleKeys","arg2","arg1","oldInd","selectTypes","_fixedArgVal","newField","newOperator","changedProp","keepInputOnChangeFieldSrc","currentField","currentFieldType","currentOperator","currentValueSrc","currentValueType","currentAsyncListValues","convertableWidgets","clearValueOnChangeField","clearValueOnChangeOp","newOperatorConfig","operatorCardinality","currentFieldConfig","newFieldConfig","isOkWithoutField","currentType","newType","canReuseValue","newListValuesType","currentListValuesType","vs","currentWidget","newWidget","currentValueWidget","newValueWidget","canReuseWidget","firstWidgetConfig","getValueSourcesForFieldOp","valueFixes","valueErrors","vType","vSrc","isValidSrc","validateError","isValid","fixValue","dropValue","showValueError","_ignore","_newFieldConfig$field","jsValues","rangeValidateError","vt","parentPathArr","getFieldRawConfig","firstField","keysPath","_firstField","subfields","getOperatorsForType","_config$types$fieldTy","fieldOps","_fieldOps$","getFuncPathLabels","getFieldPathLabels","fieldsKey","subfieldsKey","parentParts","_curr","parentFieldDef","isDescendant","isFieldDescendantOfField","getValueLabel","isSpecialRange","showLabels","fieldWidgetConfig","mergedOpConfig","valueLabels","placeholder","_getWidgetsAndSrcsForFieldOp","widgetValueSrc","canAdd","_fieldConfig$valueSou","_opConfig$valueSource","canAddValueSrc","widgetWeight","wg","w1","w2","getWidgetsForFieldOp","_getWidgetsAndSrcsFor","_fieldDefinition$type","minCnt","_getWidgetsAndSrcsFor2","filteredValueSrcs","_getWidgetsAndSrcsFor3","fieldPartsCopy","parentFieldName","isEmptyItem","liteCheck","isEmptyRuleGroupExt","isEmptyGroup","isEmptyRule","isEmptyRuleGroupExtPropertiesAndChildren","_config$operators$ope","_config$operators$ope2","filledParts","isEmptyRuleProperties","isEmptyGroupChildren","filledCnt","isFilled","_config$operators$ope3","_config$operators$ope4","_valueSrc$get","applyJsonLogic","data","addJsonLogicOperation","customJsonLogicOperations","obj1","obj2","str","pattern","date","dim","addRequiredJsonLogicOperations","applyJsonLogicWithPath","callContextFn","_this","configKeys","compileMetaFieldSettings","compileMetaWidget","compileMetaOperator","compileMetaConjunction","compileMetaWidgetForType","compileMetaFunc","compileMetaSettings","compileMeta","compressConfig","baseConfig","zipConfig","_clean","base","_base","_configKeys","rootKey","decompressConfig","unzipConfig","_mergeDeep","_resolveAndMergeDeep","resolved","_i2","_configKeys2","compileConfig","logs","_compileConfigParts","subconfig","newPath","targetObj","newVal","renderReactElement","_newVal","_targetObj","_newVal2","compileJsonLogicReact","_targetObj2","_val2","_newVal3","compileJsonLogic","_newVal4","def","_def","jl","ignore","argNames","getReactComponentFromCtx","_ctx$components","_props","Cmp","_marked","_marked2","iterateFields","configId","canCompile","mergeCustomizerNoArrays","_extendTypesConfig","_extendFieldsConfig","_extendFuncArgsConfig","momentLocale","typesConfig","typeConfig","_extendTypeConfig","typeWidgetConfig","typeWidgetOperators","_extendFieldConfig","funcDef","tmpIsOptional","excludeOperatorsForField","keysToPutInFieldSettings","_keysToPutInFieldSett","excludeOperatorsForType","excludeOperators","shouldIncludeOperators","addOperators","_addOperators","_computeFieldName","computeFieldName","inGroup","objValue","srcValue","_object","_source","_stack","_context","_iterateFields","_context2","_callee","_config$settings2","fieldKey","_context3","_config$settings3","targetFields","pathKey","_reduce","computedPath","computed","fullPath","fConfig","_config$__fieldNames$","_config$__fieldNames$2","findStr","normalizedPath","argsSignature","argSignature","signature","getFuncArgConfig","_config$settings4","getFieldPath","parentPath","_config$settings5","_config$settings6","_field$get","_field$split","_field$get2","getFieldPathParts","onlyKeys","_field$get3","_field$get4","widgetOpProps","fieldWidgetOpProps","fieldWidgetProps","valueFieldSettings","mergedConfig","_widgetDefKeysToOmit","queryBuilderFormat","resultQuery","secondField","ruleQuery","jsonLogicFormat","usedFields","ff","tmp","pdef","groupOperatorDefinition","formatLogic","revOperatorDefinition","oldUsedFields","funcParts","funcLastKey","formattedArgsArr","funcName","isMethod","jsonLogic","varName","formatteOp","isReverseArgs","opOpts","mongodbFormat","_mongodbFormat","parents","_not","_canWrapExpr","_formatFieldName","canShortMongoQuery","hasParentRuleGroup","realParentPath","groupFieldName","canHaveEmptyChildren","reversedConj","mongoConj","rules","canShort","prevOp","nextOp","totalQuery","filterQuery","useExpr","_formatFunc","_formatFunc2","_formatValue","_formatValue2","fvUseExpr","wrapExpr","_formatRightField","formatRightField","_formatRightField2","_formatFunc3","_formatFunc4","rightField","fieldPartsLabels","fieldFullLabel","rightFieldName","mongoArgsAsObject","argsCnt","lastArg","_formatValue3","_formatValue4","_argUseExpr","_formatValue5","_formatValue6","sqlFormat","_sqlFormat","sqlOp","valFrom","valTo","argsStr","queryString","conjStr","aggrArgs","_operator","fop","returnArgs","revOperatorDef","_fn","cutParentField","fieldSeparatorDisplay","fieldLabel2","funcValue","formattedArgsWithNames","argName","missedArgName","buildEsGeoPoint","geoPointString","coordsNumberArray","buildEsRangeParameters","dateTime","buildEsWildcardParameters","determineOccurrence","combinator","buildRegexpParameters","determineField","buildParameters","queryType","syntax","ES_7_SYNTAX","buildEsRule","_opConfig","elasticSearchQueryType","_opConfig2","elasticSearchFormatValue","buildEsGroup","recursiveFxn","childrenArray","occurrence","resultFlat","ES_6_SYNTAX","elasticSearchFormat","_properties$get","_properties$get2","asyncGeneratorStep","gen","_next","_throw","arg","self","_excluded","findLastIndex","simulateAsyncFetch","all","cPageSize","pageSize","filtered","pages","currentOffset","currentPage","newOffset","hasMore","_x","_x2","_x3","mergeListValues","newValues","toStart","hideNewValues","old","newFiltered","av","merged","optionToListValue","allowCustomValues","_val$value","customItem","listValue","lvs","optionsToListValues","newSelectedListValues","_val$value2","newSelectedValues","_o$value","listValueToOption","disabled","groupTitle","grouplabel","renderTitle","isCustom","isHidden","option","fixListValuesGroupOrder","groupTitles","lv1","_lv1$groupTitle","_lv$groupTitle","nv","NOW","RELATIVE_DATETIME","dimPlural","method","_spel$methodName","matchRes","LOWER","UPPER","LINEAR_REGRESSION","coef","bias","_a$children","mongoFormatOp1","mop","mc","_op","$field","mv","mongoFormatOp2","mops","_$not3","opStr","_this$utils","_this$utils2","_this$utils3","_len3","_key3","_this$utils4","_len4","_key4","_this$utils5","_len5","_key5","_this$utils6","_len6","_key6","_this$utils7","_len7","_key7","_this$utils8","_this2","_len8","_key8","_this$utils9","_this3","_len9","_key9","_this$utils10","_this4","_len10","_key10","_this$utils11","_len11","_key11","_this$utils12","_len12","_key12","_this$utils13","_this5","_len13","_key13","_this$utils14","_this6","_len14","_key14","_this$utils15","_len15","_key15","_this$utils16","_len16","_key16","_this$utils17","_len17","_key17","_this$utils18","_len18","_key18","_this$utils19","_len19","_key19","_this$utils20","_len20","_key20","_this$utils21","_len21","_key21","_this7","_this$utils22","_len22","_key22","_this8","_this$utils23","_len23","_key23","val1","val2","prox","aVal1","aVal2","_this$utils24","_len24","_key24","_this$utils25","_len25","_key25","_this$utils26","_len26","_key26","wgtDef","isFloat","valLabel","_this9","valsLabels","_this10","isCallable","fmt","_args$fmt","_args$fmt$includes","_args$fmt2","_args$fmt2$toLowerCas","_args$fmt3","_args$fmt3$toLowerCas","_args$fmt4","_args$fmt5","_args$fmt5$includes","rightFieldDef","partsExt","_this11","whereStr","aggrField","aggrFieldDef","labelForFormat","_cond","_cond2","leftFieldConfig","rightFieldConfig","_addMixins","mixins","doAdd","mixinFuncs","mixinWidgetRangeslider","mixinWidgetTreeselect","mixinWidgetTreemultiselect","mixinRangeableWidget","mixName","mixinFunc","addMixins","removeMixins","addMixin","types","treeData","_this12","_this13","ConfigMixins","ADD_GROUP","ADD_CASE_GROUP","REMOVE_GROUP","SET_CONJUNCTION","SET_NOT","ADD_RULE","REMOVE_RULE","SET_FIELD","SET_FIELD_SRC","SET_OPERATOR","SET_VALUE","SET_VALUE_SRC","SET_OPERATOR_OPTION","SET_LOCK","SET_TREE","MOVE_ITEM","PLACEMENT_AFTER","PLACEMENT_BEFORE","PLACEMENT_APPEND","PLACEMENT_PREPEND","SET_DRAG_PROGRESS","SET_DRAG_START","SET_DRAG_END","addNewGroup","groupUuid","shouldCreateEmptyGroup","canAddNewRule","isDefaultCase","origState","addItem","removeGroup","removeItem","canLeaveEmptyGroup","isEmptyParentGroup","removeRule","parentOperator","parentValue","parentOperatorConfig","hasGroupCountRule","isParentRuleGroup","canLeaveEmpty","setNot","setLock","lock","setConjunction","_addChildren1","id1","it1","maxNumberOfCases","maxNumberOfRules","maxNesting","rootType","isTernary","targetItem","caseGroup","childrenPath","targetChildren","targetChildrenSize","currentNumber","maxNumber","isLastDefaultCase","_Immutable$OrderedMap2","last","newChildrenWithLast","moveItem","fromPath","toPath","sourcePath","sourceChildren","targetPath","isSameParent","isSourceInsideTarget","isTargetInsideSource","sourceSubpathFromTarget","targetSubpathFromSource","newTargetChildren","newSourceChildren","_oldChildren","setFieldSrc","srcKey","currentRule","currentProperties","currentFielType","keepInput","setField","__isInternal","_newFieldConfig$opera","isInternalValueChange","setOpOnChangeField","wasRuleGroup","currentFieldSrc","currentOperatorOptions","_currentValueSrc","_currentValueType","isRuleGroupExt","isChangeToAnotherType","wasOkWithoutField","lastOp","strategy","groupProperties","_getNewValueForFieldO2","newOperatorOptions","setOperator","_currentValue","_currentOperator","_getNewValueForFieldO3","setValue","calculatedValueType","calculateValueType","lastValueArr","lastValue","lastError","isLastEmpty","isLastError","setValueSrc","_getNewValueForFieldO4","setOperatorOption","checkEmptyGroups","getField","emptyDrag","getActionMeta","action","actionKeysToOmit","actionTypesToIgnore","affectedField","_affectedField","getMemoizedTree","setLastTree","initTree","emptyState","unset","actionMeta","validatedTree","_setField","_tree","_setValue","_tree2","_isInternalValueChange","setTree","addRule","ruleType","addDefaultCaseGroup","addCaseGroup","addGroup","Utils","defaultNoopBatch","callback","batch","setBatch","newBatch","getBatch","createListenerCollection","first","listener","listeners","isSubscribed","nullListeners","store","parentSub","unsubscribe","addNestedSub","trySubscribe","notifyNestedSubs","handleChangeWrapper","subscription","tryUnsubscribe","Provider","contextValue","previousState","Context","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","stringifyComponent","Comp","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","unsubscribeWrapper","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$withRef","withRef","_ref2$forwardRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","createChildSelector","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","didStoreComeFromProps","didStoreComeFromContext","_useMemo2","overriddenContextValue","_useReducer","_useReducer$","previousStateUpdateResult","renderedWrappedComponent","renderedChild","Connect","forwarded","keysA","keysB","bindActionCreators","actionCreators","dispatch","boundActionCreators","actionCreator","wrapMapToPropsConstant","getConstant","constant","constantSelector","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","whenMapDispatchToPropsIsFunction","mapDispatchToProps","whenMapDispatchToPropsIsMissing","whenMapDispatchToPropsIsObject","whenMapStateToPropsIsFunction","mapStateToProps","whenMapStateToPropsIsMissing","defaultMergeProps","stateProps","dispatchProps","wrapMergePropsFunc","mergeProps","areMergedPropsEqual","hasRunOnce","mergedProps","nextMergedProps","whenMergePropsIsFunction","whenMergePropsIsOmitted","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","match","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","_useReduxContext","useStore","createDispatchHook","useDispatch","refEquality","useSelectorWithStoreAndSubscription","selector","equalityFn","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","selectedState","newSelectedState","newStoreState","_newSelectedState","createSelectorHook","useSelector","setDragProgress","mousePos","dragging","setDragStart","dragStart","setDragEnd","_Utils$ConfigUtils","pickConfig","createConfigMemo","configStore","extendAndStore","findBasic","findConfig","basicConfig","extConfig","findExtended","savedConfig","_ret3","findOrExtend","truncateString","useWordBoundary","subString","immutableEqual","createValidationMemo","originalTree","sanitizeTree","getReactContainerType","getReactRootNodeType","isUsingLegacyReactDomRender","liteShouldComponentUpdate","nextProps","prevProps","prevState","should","chs","changed","pureShouldComponentUpdate","canUseOldComponentWillReceiveProps","useOnPropsChanged","origShouldComponentUpdate","newShouldComponentUpdate","shouldNotify","shouldUpdate","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","NewTarget","Query","_Component","_super","oldTree","validatedTreeChanged","newBasicConfig","_this$props","renderBuilder","__isInternalValueChange","builderProps","ConnectedQuery","connect","QueryContainer","lastTree","prevValue","_createConfigMemo","getExtended","getBasic","emptyTree","pr","nextConfig","isConfigChanged","storeValue","isTreeChanged","currentTree","isTreeTrulyChanged","get_children","QueryWrapper","createRuleContainer","Rule","_class","RuleContainer","draggingId","isDraggingMe","_isGroup","isInDraggingTempo","oneValueError","hasError","ConnectedRuleContainer","_isReorderingTree","createSortableContainer","Builder","CanMoveFn","SortableContainer","dom","treeEl","treeElContainer","scrollTop","_dragEl","_plhEl","tmpAllGroups","anyGroup","groupPadding","doHandleDrag","startDragging","paddingLeft","startMousePos","dragEl","plhEl","_treeEl","_plhEl2","startX","startY","startClientX","startClientY","startScrollTop","pos","moved","_prevProps","_prevState","plX","plY","oldPlX","oldPlY","indexId","ignoreCache","els","overflowY","dragInfo","canMoveFn","canMoveBeforeAfterGroup","itemInfo","moveInfo","dragId","dragRect","plhRect","hovRect","treeRect","dragDirs","trgCoord","hovCNodeEl","hovNodeEl","_hovNodeEl$firstChild","rootGroupContainer","hovNodeId","hovEl","doAppend","doPrepend","hovHeight","hovII","trgRect","trgEl","trgII","altII","hovInnerEl","hovEl2","hovRect2","hovHeight2","isOverHover","isClimbToHover","_isOverHover","_isOverHover2","isSamePos","dragLeftOffset","trgLeftOffset","_trgLev","dragLev","availMoves","altMoves","isToRoot","isToCase","prevCaseId","nextCaseId","prevCase","nextCase","addCaseII","am","toII","fromCaseII","toCaseII","trg","isInside","_lev","_fromCaseII","_toCaseII","toParentII","bestMode","filteredMoves","levs","curLev","allLevs","closestDragLev","fromII","_this$props$config$se","canRegroup","canRegroupCases","canLeaveEmptyCase","newLev","newDepthLev","isBeforeAfter","isPend","isLev1","isParentChange","isStructChange","isForbiddenStructChange","isLockedChange","isLastFromCase","newRulesInTargetCase","ConnectedSortableContainer","GroupOrRule","_PureComponent","Draggable","isDraggingTempo","otherProps","isTrueLocked","cn","Operator","keysForMeta","needUpdateMeta","_config$types$selecte","selectedField","selectedFieldType","selectedOperator","operatorsOptions","_opts","selectedOpts","selectedKey","selectedKeys","selectedPath","selectedLabel","ops","customProps","readonly","renderOperator","renderProps","Col","dummyFn","DragIcon","WithConfirmFn","useConfirm","confirmFn","OperatorWrapper","selectedFieldSrc","selectedFieldParts","showOperator","showOperatorLabel","selectedFieldWidgetConfig","hiddenOperator","maxLabelsLength","fieldPlaceholder","isFieldSelected","currField","partsLabels","selectedFullLabel","selectedAltLabel","parentFieldPath","sourceFields","lookingForFieldType","errorText","fieldOpts","optGroup","prefix","countFieldsMatchesType","fullFieldPath","fullLabel","altLabel","tooltip","hasItemsMatchesType","matchesType","renderField","_Utils$RuleUtils","FuncSelect","keysForItems","needUpdateItems","isLHS","parentFuncs","canUseFuncForField","filteredFuncs","_leftFieldConfig$widg","funcPlaceholder","selectedFuncKey","isFuncSelected","leftFieldWidgetField","leftFieldWidgetFieldProps","currFunc","isRootFuncAtLHS","leftFieldFullkey","_relyOnWidgetType","targetDefinition","subpath","funcFullkey","_targetDefinition","canUse","_arg","fullFuncPath","funcOpts","renderFunc","immValue","immValueError","widgetDefinition","widgetValueLabel","textSeparators","setValueHandler","widgetFactory","isConst","widgetProps","funcArgDummyOpDef","Widget","widgetType","oldRange","iValues","aField","_widgets$delta","valueLabel","hasValueSources","widgetLabel","WidgetFactory","_widgets$delta2","setValueSrcHandler","valueSourcesInfo","renderValueSources","valueSourcesOptions","ValueSources","sourceLabel","sepText","sepLabel","sources","widgetCmp","simpleField","fieldFunc","fieldArg","isForRuleGroup","isCaseValue","iValueSrcs","isSpecialRangeForSrcField","isTrueSpecialRange","_widgetDefinition","_this$meta","_Utils$FuncUtils","FuncWidget","funcDefinition","argDefinition","selectProps","funcLabel","showPrefix","forceShow","_this$props2","defaultValueSource","ArgWidget","argIndex","renderSeps","renderBrackets","_Component2","_super2","_delta","_widgetType","_this2$props","_this2$props2","newParentFuncs","FieldWrapper","classname","supportedFieldSrcs","fieldLabel","fieldSources","fieldSourcesOptions","_this$props3","canSelectFieldSource","OperatorOptions","operatorDefinitions","_operatorDefinitions$","optionsFactory","basicOptionsProps","optionsProps","optionsCmp","reordableNodesCnt","selectedFieldConfig","isSelectedGroup","isFieldAndOpSelected","selectedOperatorConfig","selectedOperatorHasOptions","hideOperator","showDragIcon","showWidget","showOperatorOptions","renderConfirm","confirmOptions","doRemove","ruleData","immutableFieldsMode","immutableOpsMode","_this$props4","immutableValuesMode","renderBeforeWidget","renderAfterWidget","_this$props5","renderRuleError","handleDraggerMouseDown","renderIcon","icon","_this$props6","deleteLabel","immutableGroupsMode","renderButton","canDeleteLocked","Btn","_this$props7","lockLabel","lockedLabel","showLock","renderSwitch","Switch","_this$meta2","_this$props8","canShrinkValue","renderButtonGroup","BtnGrp","body","drag","del","createGroupContainer","Group","itemType","GroupContainer","oldConjunction","currentNesting","allowFurtherNesting","ConnectedGroupContainer","groupActionsPositionList","defaultPosition","GroupActions","removeSelf","canAddGroup","canAddRule","canDeleteGroup","addRuleLabel","addGroupLabel","delGroupLabel","groupActionsPosition","setLockSwitch","addRuleBtn","addGroupBtn","delGroupBtn","BasicGroup","BeforeActions","AfterActions","conjunctionOptions","conjunctionCount","isGroupTopPosition","totalRulesCnt","actions","onDragStart","Item","_item","selectedConjunction","renderConjs","_showNot","notLabel","_superPropBase","property","getPrototypeOf","_get","receiver","desc","RuleGroupActions","RuleGroup","_BasicGroup","RuleGroupExtActions","addSubRuleLabel","RuleGroupExt","SwitchGroupActions","canAddDefault","addCaseLabel","addDefaultCaseLabel","addCaseGroupBtn","addDefaultCaseGroupBtn","_Utils$TreeUtils","SwitchGroup","_this$props$children","_this$props$children2","totalCasesCnt","_this$props$children3","casesToReorder","_this$props$children4","nodesInCase","renderSwitchPrefix","CaseGroup","defaultCaseLabel","oneValue","getProperties","_props$properties","typeMap","_props$properties2","postfix","renderItem","_Utils$DefaultUtils","ValueField","canCompareFieldWithField","filteredFields","customPlaceholder","rightFieldKey","rightFieldFullkey","labelYes","labelNo","_props$customProps","customRadioYesProps","customRadioNoProps","onCheckboxChange","onRadioChange","maxLength","textValue","maxRows","fullWidth","use12Hours","dtValue","renderOptions","getMultiSelectValues","multiselect","opt","min","max","numberValue","customInputProps","customSliderProps","conjsCount","lessThenTwo","forceShowConj","showConj","_conjunctionOptions$k","checked","renderNot","onNotChange","typeToLabel","onClick","btnLabel","typeToIcon","onOk","okText","cancelText","VanillaProvider","Proximity","defaults","optionLabel","optionPlaceholder","minProximity","maxProximity","optionTextBefore","defaultProximity","selectedProximity","proxValues","RCE","ProximityOperator","VanillaTextWidget","VanillaTextAreaWidget","VanillaNumberWidget","VanillaSliderWidget","VanillaSelectWidget","VanillaMultiSelectWidget","VanillaDateWidget","VanillaTimeWidget","VanillaDateTimeWidget","VanillaBooleanWidget","_ref12","ValueFieldWidget","_ref13","_ref14","_ref15","VanillaFieldSelect","_ref16","_ref17","_ref18","VanillaConjs","_ref19","VanillaSwitch","_ref20","VanillaButton","_ref21","VanillaIcon","_ref22","VanillaButtonGroup","_ref23","_ref24","VanillaValueSources","_ref25","_ref26","vanillaConfirm","P","_Utils$Autocomplete","_Utils$ListUtils","useListValuesAutocomplete","asyncFetch","useLoadMore","useAsyncSearch","forceAsyncSearch","selectedAsyncListValues","staticListValues","debounceTimeout","multiple","uif","knownSpecialValues","loadMoreTitle","loadingMoreTitle","aPlaceholder","_React$useState","_React$useState2","open","setOpen","_React$useState3","_React$useState4","asyncFetchMeta","setAsyncFetchMeta","_React$useState5","_React$useState6","loadingCnt","setLoadingCnt","_React$useState7","_React$useState8","isLoadingMore","setIsLoadingMore","_React$useState9","_React$useState10","inputValue","setInputValue","_React$useState11","_React$useState12","setAsyncListValues","asyncFectchCnt","componentIsMounted","isSelectedLoadMore","nSelectedAsyncListValues","listValuesToDisplay","isLoading","canInitialLoad","isInitialLoading","canLoadMore","canShowLoadMore","selectedListValue","fetchListValues","isLoadMore","newAsyncFetchCnt","isFetchCancelled","newMeta","nValues","assumeHasMore","realNewMeta","loadListValues","_callee2","loadListValuesDebounced","_callee3","onOpen","onClose","_callee4","isLoadMoreClick","resetValue","_context4","onInputChange","onDropdownVisibleChange","isSpecialValue","specialValue","_callee5","_option2","isClearingAll","isClearingInput","_option$value","_option","shouldIgnore","isAddingCustomOptionFromSearch","_optionsToListValues","_optionsToListValues2","_optionToListValue","_optionToListValue2","_context5","_x4","_callee6","newInputValue","eventType","canSearchAsync","_context6","_x5","_x6","_x7","extendOptions","getOptionSelected","valueOrOption","getOptionDisabled","getOptionIsCustom","_valueOrOption$value","getOptionLabel","fixedOptions","buttonLabels","emptyInitTree","TIME_FILTER","dateValue","DateTimePicker","conjProps","fieldProps","buttonProps","operatorProps","Op","customOperators","getCustomOperators","textWidget","opers","customTextWidget","customTypes","raqbConfig","noop","isSqlFormatOp","supportedOperators","sqlFormatInOpOrNoop","sqlFormatOp","customSqlInFormatter","splitIfString","sqlFormatNotInOpOrNoop","customSqlNotInFormatter","WhereRow","configWithDefaults","onTreeChange","changedTree","flex","direction","SQLWhereRow","mapFieldsToTypes","templateVars","removeQuotesForMultiVariables","col","multiVariableInWhereString","VisualEditor","EditorRows","SqlQueryEditor","datasource","queryHeaderProps","setIsQueryRunnable","preconfiguredDatabase","loading","queryWithDefaults","setQueryRowFilter","setQueryToValidate","isQueryValid","process","onQueryHeaderChange","migrateAnnotation","annotation","oldQuery","SqlDatasource","DataSourceWithBackend","instanceSettings","settingsData","queries","scopedVars","expandedQueries","request","databaseIssue","throwError","refId","interpolatedQuery","response","DataFrameView","lastValueFrom","queryWithoutMacros","toNumber","ConnectionLimits","onOptionsChange","jsonData","autoIdle","updateJsonData","newOpts","onJSONDataNumberChanged","number","onMaxConnectionsChanged","onConnectionIdleAutoChanged","idleConns","maxConns","labelWidth","ConfigSubSection","Label","InlineLabel","Divider","TLSSecretsConfig","editorProps","showCACert","showKeyPair","secureJsonFields","SecretTextArea","sqlPluginLogger","useMigrateDatabaseFields","newOptions","optionsUpdated","maxOpenConns","maxIdleConns","connMaxLifetime","arrayUnique","operations","temp","not_found","sub_props","missing","need_count","are_missing","scopedLogic","scopedData","initial","datum","accumulator","sub_ops","operation","code","pattern_op","rule_op","baseAssignValue","eq","assignMergeValue","baseFor","baseMergeDeep","keysIn","safeGet","baseMerge","srcIndex","customizer","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray","isArrayLikeObject","isBuffer","isFunction","isPlainObject","isTypedArray","toPlainObject","mergeFunc","stacked","isCommon","isArr","isBuff","isTyped","MAX_SAFE_INTEGER","nativeFloor","baseRepeat","identity","overRest","setToString","baseRest","arrayMap","baseValues","isIterateeCall","createAssigner","assigner","length","guard","toString","reRegExpChar","reHasRegExpChar","baseIndexOf","isString","toInteger","nativeMax","includes","fromIndex","isObjectLike","baseKeys","getTag","isPrototype","mapTag","setTag","objectProto","hasOwnProperty","isEmpty","tag","baseGetTag","stringTag","baseForOwn","baseIteratee","mapValues","iteratee","merge","mergeWith","basePickBy","getAllKeysIn","pickBy","repeat","baseClamp","baseToString","startsWith","toFinite","remainder","copyObject","modules","installedModules","moduleId","getter","__webpack_require__","createSpelNode","nodeType","activeContext","childNode","parentNode","nodeContext","operands","operand","SpelNode","startingElements","TokenKind","_SpelExpressionEvaluator","_StandardContext","_SpelExpressionParser","_Stack","spelExpressionEvaluator","evalCompiled","locals","expression","_TokenKind","_Tokenizer","_BooleanLiteral","_NumberLiteral","_StringLiteral","_NullLiteral","_FunctionReference","_MethodReference","_PropertyReference","_VariableReference","_CompoundExpression","_Indexer","_Assign","_OpEQ","_OpNE","_OpGE","_OpGT","_OpLE","_OpLT","_OpPlus","_OpMinus","_OpMultiply","_OpDivide","_OpModulus","_OpPower","_OpInc","_OpDec","_OpNot","_OpAnd","_OpOr","_OpMatches","_Ternary","_Elvis","_InlineList","_InlineMap","_Selection","_Projection","_OpInstanceof","_OpBetween","_TypeReference","_BeanReference","_Identifier","_QualifiedIdentifier","_ConstructorReference","SpelExpressionParser","VALID_QUALIFIED_ID_PATTERN","configuration","constructedNodes","expressionString","tokenStream","tokenStreamLength","tokenStreamPointer","setConfiguration","parse","ast","eatExpression","moreTokens","raiseInternalException","peekToken","nextToken","eatLogicalOrExpression","toPosBounds","assignedValue","toPosToken","valueIfNull","ifTrueExprValue","eatToken","ifFalseExprValue","eatLogicalAndExpression","peekIdentifierToken","peekTokenOne","rhExpr","checkOperands","eatRelationalExpression","eatSumExpression","relationalOperatorToken","maybeEatRelationalOperator","tk","eatProductExpression","peekTokenAny","checkRightOperand","eatPowerIncDecExpression","eatUnaryExpression","eatPrimaryExpression","eatStartNode","maybeEatNode","pop","eatDottedNode","maybeEatNonDottedNode","push","maybeEatIndexer","nullSafeNavigation","maybeEatMethodOrProperty","maybeEatFunctionOrVar","maybeEatProjection","maybeEatSelection","functionOrVariableName","maybeEatMethodArgs","consumeArguments","eatConstructorArgs","accumulatedArguments","positionOf","maybeEatLiteral","maybeEatParenExpression","maybeEatTypeReference","maybeEatNullReference","maybeEatConstructorReference","maybeEatBeanReference","maybeEatInlineListOrMap","beanRefToken","beanNameToken","beanName","beanReference","typeName","eatPossiblyQualifiedId","dims","peekTokenConsumeIfMatched","nullToken","listElements","closingCurly","firstExpression","mapElements","peekSelectToken","qualifiedIdPieces","isValidQualifiedId","methodOrPropertyName","newToken","possiblyQualifiedConstructorName","dimensions","idString","expectedKind","desiredTokenKind","consumeIfMatched","identifierString","message","expected","actual","checkLeftOperand","operandExpression","_Token","ALTERNATIVE_OPERATOR_NAMES","FLAGS","IS_DIGIT","IS_HEXDIGIT","IS_ALPHA","tokenize","inputData","toProcess","isAlphabetic","lexIdentifier","isTwoCharToken","pushPairToken","pushCharToken","lexNumericLiteral","lexQuotedStringLiteral","lexDoubleQuotedStringLiteral","terminated","subarray","firstCharIsZero","isReal","isHex","dotpos","endOfNumber","possibleSign","isHexadecimalDigit","isChar","pushHexIntToken","isDigit","pushIntToken","isExponentChar","isFloatSuffix","isDoubleSuffix","pushRealToken","substring","asString","isIdentifier","pushOneCharOrTwoCharToken","isLong","Tokenizer","Token","tokenKind","tokenData","startPos","endPos","_SpelNode","createNode","BooleanLiteral","NumberLiteral","stripQuotes","StringLiteral","NullLiteral","compiledArgs","currentActiveContext","FunctionReference","maybeHandleNullSafeNavigation","member","MethodReference","PropertyReference","variableName","VariableReference","expressionComponents","buildContextStack","childrenCount","unbuildContextStack","childCount","CompoundExpression","Indexer","Assign","OpEQ","OpNE","OpGE","OpGT","OpLE","OpLT","OpPlus","OpMinus","leftValue","rightValue","OpMultiply","OpDivide","OpModulus","exp","OpPower","int","cur","OpInc","OpDec","OpNot","OpAnd","OpOr","regexpString","regexp","OpMatches","ifTrue","ifFalse","Ternary","Elvis","elements","element","InlineList","mapPieces","keyValue","piece","InlineMap","_typeof","matches","doesMatch","selectFromArray","whichElement","newCollection","selectFromMap","Selection","projectCollection","Projection","OpInstanceof","OpBetween","_dims","TypeReference","BeanReference","identifierName","Identifier","_toConsumableArray","pieces","QualifiedIdentifier","_toArray","dimension","_nodes","_nodes2","_qualifiedIdentifier","ConstructorReference","create","authentication","principal","role","hasRole","grantedAuthority","StandardContext","_includes","_interopRequireDefault","_tokenTypes","_Indentation","_InlineBlock","_Params","_classCallCheck","instance","Constructor","_defineProperties","_createClass","protoProps","staticProps","trimSpacesEnd","Formatter","cfg","tokenizer","tokenOverride","formattedQuery","comment","preserveWhitespaceFor","_repeat","_last","INDENT_TYPE_TOP_LEVEL","INDENT_TYPE_BLOCK_LEVEL","Indentation","indent","INLINE_MAX_LENGTH","InlineBlock","Params","_isEmpty","_escapeRegExp","lineCommentTypes","reservedWords","reservedWordsPattern","specialChars","stringTypes","patterns","parens","paren","typesRegex","input","previousToken","regex","parseKey","quoteChar","_Formatter","reservedTopLevelWords","reservedTopLevelWordsNoIndent","reservedNewlineWords","Db2Formatter","N1qlFormatter","previousReservedToken","PlSqlFormatter","StandardSqlFormatter","_Db2Formatter","_N1qlFormatter","_PlSqlFormatter","_StandardSqlFormatter","ID_GLOBAL_REGEXP","QUAL_GLOBAL_REGEXP","CHARS_GLOBAL_REGEXP","CHARS_ESCAPE_MAP","forbidQualified","stringifyObjects","timeZone","escapeString","chunkIndex","placeholdersRegex","valuesIndex","dt","year","month","day","hour","minute","second","millisecond","tz","convertTimezone","zeroPad","buffer","escapedVal","_regeneratorRuntime","define","wrap","Generator","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","invoke","callInvokeWithMethodAndArg","maybeInvokeDelegate","pushTryEntry","resetTryEntry","handle","runtime"],"sourceRoot":""}
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
static
---
0755
0.c88fc16b6533c8976681.js
11857 bytes
0644
0.c88fc16b6533c8976681.js.map
46011 bytes
0644
1118.6d1cbbd2070e00a7483d.js
9459 bytes
0644
1118.6d1cbbd2070e00a7483d.js.map
22012 bytes
0644
1121.6c31bf81768d3312b0d4.js
11557 bytes
0644
1121.6c31bf81768d3312b0d4.js.map
40274 bytes
0644
1122.1b3b5a9bdf4a2fc70a83.js
4310 bytes
0644
1122.1b3b5a9bdf4a2fc70a83.js.map
9301 bytes
0644
1133.cd705902767ed2e9bf55.js
107191 bytes
0644
1133.cd705902767ed2e9bf55.js.map
459177 bytes
0644
1216.ddb58ad09e0c4e3f4079.js
12860 bytes
0644
1216.ddb58ad09e0c4e3f4079.js.map
47906 bytes
0644
1282.2347f27d5b3a18a42a1e.js
2965 bytes
0644
1282.2347f27d5b3a18a42a1e.js.map
6699 bytes
0644
1345.8570fef914aafab94513.js
2223 bytes
0644
1345.8570fef914aafab94513.js.map
5201 bytes
0644
1347.8ad23b870a6e21306189.js
32035 bytes
0644
1347.8ad23b870a6e21306189.js.map
89851 bytes
0644
1420.f2553cafc235b7c32261.js
14576 bytes
0644
1420.f2553cafc235b7c32261.js.map
32839 bytes
0644
1438.897db349b7f48a15b9eb.js
2830 bytes
0644
1438.897db349b7f48a15b9eb.js.map
6911 bytes
0644
1446.babd36e7134aac1046c4.js
1832 bytes
0644
1446.babd36e7134aac1046c4.js.map
3282 bytes
0644
1488.ff35935a06f41b02b6cc.js
316 bytes
0644
1488.ff35935a06f41b02b6cc.js.map
1206 bytes
0644
1560.30962127c91e5eae9982.js
8916 bytes
0644
1560.30962127c91e5eae9982.js.map
20515 bytes
0644
1660.e1f66118fb028d12074f.js
21866 bytes
0644
1660.e1f66118fb028d12074f.js.map
71039 bytes
0644
1698.68ff1ef08e94a87836b3.js
12570 bytes
0644
1698.68ff1ef08e94a87836b3.js.map
46006 bytes
0644
1708.f42a783c0f6c7a317d49.js
2249 bytes
0644
1708.f42a783c0f6c7a317d49.js.map
2954 bytes
0644
1710.d96221051fceaf8c89dd.js
10172 bytes
0644
1710.d96221051fceaf8c89dd.js.map
22097 bytes
0644
1740.e57d920c47a11759ade4.js
6204 bytes
0644
1740.e57d920c47a11759ade4.js.map
13740 bytes
0644
1888.0ede69d3190c536744b9.js
6822 bytes
0644
1888.0ede69d3190c536744b9.js.map
15421 bytes
0644
1914.58113477b565d57e8bfe.js
10710 bytes
0644
1914.58113477b565d57e8bfe.js.map
23555 bytes
0644
198.b84c0e4f5759344ae05a.js
8267 bytes
0644
198.b84c0e4f5759344ae05a.js.map
19446 bytes
0644
205.6c51b5e35c8147226738.js
3542 bytes
0644
205.6c51b5e35c8147226738.js.map
8376 bytes
0644
2058.0e5df44647184aaf02e2.js
1252 bytes
0644
2058.0e5df44647184aaf02e2.js.map
4744 bytes
0644
2077.12b2df3682085a92a810.js
34133 bytes
0644
2077.12b2df3682085a92a810.js.map
122011 bytes
0644
2094.259625d8acf28b9c7361.js
16518 bytes
0644
2094.259625d8acf28b9c7361.js.map
41269 bytes
0644
21.afca69f2d336e287a655.js
6172 bytes
0644
21.afca69f2d336e287a655.js.map
17305 bytes
0644
2136.9c8dcd43d3af327f51f5.js
498667 bytes
0644
2136.9c8dcd43d3af327f51f5.js.map
1908011 bytes
0644
2228.cf629cf4a83c5b6c2671.js
269 bytes
0644
2228.cf629cf4a83c5b6c2671.js.map
457 bytes
0644
2244.9324c28eca7d2ffb7568.js
3396 bytes
0644
2244.9324c28eca7d2ffb7568.js.map
7683 bytes
0644
2261.ac6a26854d5acee00776.js
106373 bytes
0644
2261.ac6a26854d5acee00776.js.map
478562 bytes
0644
2278.bdd73b14b6337c6b14e4.js
5754 bytes
0644
2278.bdd73b14b6337c6b14e4.js.map
13399 bytes
0644
2398.3de0e7aa3057b7dcf9da.js
8016 bytes
0644
2398.3de0e7aa3057b7dcf9da.js.map
18383 bytes
0644
2514.c86950e9813e27962050.js
1983 bytes
0644
2514.c86950e9813e27962050.js.map
4863 bytes
0644
2571.345ecfd2b82551018f2e.js
162139 bytes
0644
2571.345ecfd2b82551018f2e.js.map
2046 bytes
0644
2586.972e9a7d564398afee76.js
6385 bytes
0644
2586.972e9a7d564398afee76.js.map
14676 bytes
0644
2658.f4100815829c4d37d35c.js
5432 bytes
0644
2658.f4100815829c4d37d35c.js.map
13650 bytes
0644
2686.2fbaa7db9c01d59cad8d.js
2815 bytes
0644
2686.2fbaa7db9c01d59cad8d.js.map
6564 bytes
0644
2692.20098ad0182743d98d62.js
2282 bytes
0644
2692.20098ad0182743d98d62.js.map
5680 bytes
0644
2694.a31d749361a36eb167da.js
2726 bytes
0644
2694.a31d749361a36eb167da.js.map
3618 bytes
0644
2745.2e5ec1fdf377d2940fb4.js
33584 bytes
0644
2745.2e5ec1fdf377d2940fb4.js.map
120277 bytes
0644
2962.4c3147d8ee365fe296ef.js
7640 bytes
0644
2962.4c3147d8ee365fe296ef.js.map
17621 bytes
0644
3042.248a4194805a8500fd28.js
19010 bytes
0644
3042.248a4194805a8500fd28.js.map
38148 bytes
0644
3062.4e9a427c2a59d53f902e.js
4663 bytes
0644
3062.4e9a427c2a59d53f902e.js.map
10650 bytes
0644
3082.c09cff56c35d736ee8b6.js
52872 bytes
0644
3082.c09cff56c35d736ee8b6.js.map
56822 bytes
0644
3096.8d41728a4f5010bc56a2.js
4378 bytes
0644
3096.8d41728a4f5010bc56a2.js.map
10739 bytes
0644
3098.f22ad6dab13d06477be0.js
31462 bytes
0644
3098.f22ad6dab13d06477be0.js.map
85588 bytes
0644
3182.1d531f28507c00e391fc.js
13817 bytes
0644
3182.1d531f28507c00e391fc.js.map
26653 bytes
0644
3407.666eb88a718e66b93f72.js
34425 bytes
0644
3407.666eb88a718e66b93f72.js.map
103716 bytes
0644
3418.d31d882b87bd5a2ef66f.js
33061 bytes
0644
3418.d31d882b87bd5a2ef66f.js.map
114234 bytes
0644
3541.8d063e3d43d55745d89b.js
20582 bytes
0644
3541.8d063e3d43d55745d89b.js.map
67154 bytes
0644
3543.eecef49ce94da5ee0418.js
136752 bytes
0644
3543.eecef49ce94da5ee0418.js.map
446118 bytes
0644
3622.976b1aef94b333e450b9.js
1260 bytes
0644
3622.976b1aef94b333e450b9.js.map
2819 bytes
0644
3686.102abfc00452299017bb.js
87 bytes
0644
3718.3993946b7a0eb8f64b4d.js
23620 bytes
0644
3718.3993946b7a0eb8f64b4d.js.map
92024 bytes
0644
3726.3adfe210678d2cd26969.js
31765 bytes
0644
3726.3adfe210678d2cd26969.js.map
118227 bytes
0644
398.4e93ffb675609ea7a9c6.js
2990 bytes
0644
398.4e93ffb675609ea7a9c6.js.map
7145 bytes
0644
4114.953b39a9ce57caa0e87a.js
2536 bytes
0644
4114.953b39a9ce57caa0e87a.js.map
6028 bytes
0644
4120.67bf5d203ed4a2eb5f1b.js
3229 bytes
0644
4120.67bf5d203ed4a2eb5f1b.js.map
7533 bytes
0644
4209.c7060d489834063658f5.js
17352 bytes
0644
4209.c7060d489834063658f5.js.map
30980 bytes
0644
4254.c5f4a5512b252e3a5796.js
71716 bytes
0644
4254.c5f4a5512b252e3a5796.js.map
237783 bytes
0644
4289.d5662b0904798ff437e9.js
16496 bytes
0644
4289.d5662b0904798ff437e9.js.map
32015 bytes
0644
4334.bc078c368a20ed3257b6.js
2598 bytes
0644
4334.bc078c368a20ed3257b6.js.map
6308 bytes
0644
4630.b604ea691184ba563d59.js
5585 bytes
0644
4630.b604ea691184ba563d59.js.map
11866 bytes
0644
4680.358dfdd92851f69ecc97.js
4573 bytes
0644
4680.358dfdd92851f69ecc97.js.map
10841 bytes
0644
4698.696713071ff5d9929a11.js
3682 bytes
0644
4698.696713071ff5d9929a11.js.map
8967 bytes
0644
4787.bd938ea7cb58d64ee246.js
738 bytes
0644
4787.bd938ea7cb58d64ee246.js.map
2168 bytes
0644
4839.17a10e0ceca3eb8954b4.js
39585 bytes
0644
4839.17a10e0ceca3eb8954b4.js.map
145699 bytes
0644
494.8cf705bc1ea509187c88.js
3796 bytes
0644
494.8cf705bc1ea509187c88.js.map
8987 bytes
0644
4958.cd447d877778fc5af081.js
4923 bytes
0644
4958.cd447d877778fc5af081.js.map
11000 bytes
0644
4962.0da526ad79f816a15985.js
2242 bytes
0644
4962.0da526ad79f816a15985.js.map
4978 bytes
0644
50.7b1e44d5b9dbbed566be.js
617497 bytes
0644
50.7b1e44d5b9dbbed566be.js.map
2271464 bytes
0644
5017.003cacead1bba1cba035.js
3567142 bytes
0644
5017.003cacead1bba1cba035.js.map
13214665 bytes
0644
5130.4d31108de97088a3b014.js
2850 bytes
0644
5130.4d31108de97088a3b014.js.map
6536 bytes
0644
5196.064b914693b6a5591a48.js
4035 bytes
0644
5196.064b914693b6a5591a48.js.map
10273 bytes
0644
5240.eceb5f73f807ac22d800.js
704 bytes
0644
5240.eceb5f73f807ac22d800.js.map
2618 bytes
0644
5277.ce6608b6f47246e32767.js
269 bytes
0644
5277.ce6608b6f47246e32767.js.map
457 bytes
0644
5280.4348c762594edebf7d0e.js
16657 bytes
0644
5280.4348c762594edebf7d0e.js.map
89146 bytes
0644
5356.eabc0dc2021a3814a65f.js
10156 bytes
0644
5356.eabc0dc2021a3814a65f.js.map
25249 bytes
0644
5358.7c5e9e1b192582f3082d.js
6173 bytes
0644
5358.7c5e9e1b192582f3082d.js.map
19652 bytes
0644
5364.ac21c32fd45a27bc998a.js
3070 bytes
0644
5364.ac21c32fd45a27bc998a.js.map
7368 bytes
0644
5398.d0c11aa7c1232f4afe44.js
81872 bytes
0644
5398.d0c11aa7c1232f4afe44.js.map
769414 bytes
0644
5428.e85b0800b30feca9d7dc.js
330175 bytes
0644
5428.e85b0800b30feca9d7dc.js.map
530929 bytes
0644
5511.93023985e5c5efe49ae2.js
21275 bytes
0644
5511.93023985e5c5efe49ae2.js.map
93188 bytes
0644
5550.9284e42acc3f2bbdfc9d.js
7039 bytes
0644
5550.9284e42acc3f2bbdfc9d.js.map
16382 bytes
0644
558.701e8b4db7b852c4a10d.js
12211 bytes
0644
558.701e8b4db7b852c4a10d.js.map
24505 bytes
0644
5618.638c32d58d896f3f7261.js
3348 bytes
0644
5618.638c32d58d896f3f7261.js.map
8181 bytes
0644
5648.cb3fd92dbbc06f7d45d2.js
57392 bytes
0644
5648.cb3fd92dbbc06f7d45d2.js.map
60585 bytes
0644
5786.db7abc3b8e4f474a8f7b.js
5325 bytes
0644
5786.db7abc3b8e4f474a8f7b.js.map
11885 bytes
0644
5807.f05d997ece5811bbc849.js
2922915 bytes
0644
5807.f05d997ece5811bbc849.js.map
10524334 bytes
0644
5950.30ec6aaa9dcece6c3b3c.js
4616249 bytes
0644
5950.30ec6aaa9dcece6c3b3c.js.map
19277501 bytes
0644
6018.f4de7ac19ac8f0c774e6.js
5861 bytes
0644
6018.f4de7ac19ac8f0c774e6.js.map
13314 bytes
0644
6029.0549a3fcb50e73c4b256.js
409895 bytes
0644
6029.0549a3fcb50e73c4b256.js.map
998408 bytes
0644
6185.883629fcc773b4968b24.js
2258 bytes
0644
6185.883629fcc773b4968b24.js.map
4788 bytes
0644
6263.e4ef9aaa3073ebacc3a5.js
54594 bytes
0644
6263.e4ef9aaa3073ebacc3a5.js.map
242030 bytes
0644
6302.257b2eb06c25ee74090e.js
8440 bytes
0644
6302.257b2eb06c25ee74090e.js.map
19322 bytes
0644
6359.f824c85233ec703f8cea.js
11411 bytes
0644
6359.f824c85233ec703f8cea.js.map
41881 bytes
0644
6377.45d36c143a694fc45bd3.js
20571 bytes
0644
6377.45d36c143a694fc45bd3.js.map
79590 bytes
0644
6378.27b1e6d863a0a3b85962.js
977993 bytes
0644
6378.27b1e6d863a0a3b85962.js.map
3865587 bytes
0644
6414.192cf271de6ecbbbcb11.js
3984 bytes
0644
6414.192cf271de6ecbbbcb11.js.map
9134 bytes
0644
6446.b4b93ee91aa1bb57ea93.js
7731 bytes
0644
6446.b4b93ee91aa1bb57ea93.js.map
17485 bytes
0644
6464.f379e014f9909e621de6.js
34429 bytes
0644
6464.f379e014f9909e621de6.js.map
113303 bytes
0644
6499.9f52e0855fd4782a8b45.js
78297 bytes
0644
6499.9f52e0855fd4782a8b45.js.map
273155 bytes
0644
6587.bfb1ca0c32c6f325b0df.js
135004 bytes
0644
6587.bfb1ca0c32c6f325b0df.js.map
541974 bytes
0644
660.838743295c2108f3492d.js
43101 bytes
0644
660.838743295c2108f3492d.js.map
100340 bytes
0644
6678.a615dbe07b8a3e591e66.js
14725 bytes
0644
6678.a615dbe07b8a3e591e66.js.map
51145 bytes
0644
680.1a328432fae403eacab3.js
53846 bytes
0644
680.1a328432fae403eacab3.js.map
57615 bytes
0644
6830.0c200fec1efc2be388e2.js
5811 bytes
0644
6830.0c200fec1efc2be388e2.js.map
13972 bytes
0644
6934.fa19d392db34411fb300.js
168944 bytes
0644
6934.fa19d392db34411fb300.js.map
540337 bytes
0644
6940.9c5d3a2dcf9d7d58fa2c.js
3408 bytes
0644
6940.9c5d3a2dcf9d7d58fa2c.js.map
8039 bytes
0644
6969.f8f153735314f9426000.js
1119 bytes
0644
6969.f8f153735314f9426000.js.map
4230 bytes
0644
6990.cc2f5674128929a3f870.js
4418 bytes
0644
6990.cc2f5674128929a3f870.js.map
10503 bytes
0644
7048.117de444b1e1cb5a1360.js
4365 bytes
0644
7048.117de444b1e1cb5a1360.js.map
10316 bytes
0644
7166.480da6892ee84ee8bb53.js
593985 bytes
0644
7166.480da6892ee84ee8bb53.js.map
2430098 bytes
0644
7200.dc60128b9d612fc7b5b0.js
3634 bytes
0644
7200.dc60128b9d612fc7b5b0.js.map
8184 bytes
0644
7246.3adf293a34fa2043387b.js
4306 bytes
0644
7246.3adf293a34fa2043387b.js.map
9084 bytes
0644
7400.024c96bd5b99b8b47a63.js
14112 bytes
0644
7400.024c96bd5b99b8b47a63.js.map
64001 bytes
0644
7409.24316c87d08c1053c46a.js
3287 bytes
0644
7409.24316c87d08c1053c46a.js.map
11649 bytes
0644
7455.845968885abe369e6479.js
19801 bytes
0644
7455.845968885abe369e6479.js.map
77213 bytes
0644
7466.09e6e197d2507f62097d.js
11670 bytes
0644
7466.09e6e197d2507f62097d.js.map
24830 bytes
0644
7515.95323f0dfbd0de010e5c.js
1083 bytes
0644
7515.95323f0dfbd0de010e5c.js.map
1321 bytes
0644
7613.6334cff4df12cc157522.js
808779 bytes
0644
7613.6334cff4df12cc157522.js.map
991378 bytes
0644
7836.6a7e4207e70fc2dc235f.js
7192 bytes
0644
7836.6a7e4207e70fc2dc235f.js.map
17613 bytes
0644
7882.1a3cc418752c83396970.js
3743 bytes
0644
7882.1a3cc418752c83396970.js.map
14950 bytes
0644
7886.485c46f14540aa23cf70.js
8668 bytes
0644
7886.485c46f14540aa23cf70.js.map
20124 bytes
0644
7914.2b1a06c504df18e20fe4.js
2390 bytes
0644
7914.2b1a06c504df18e20fe4.js.map
6418 bytes
0644
7982.6761217193d3060dbf0e.js
188973 bytes
0644
7982.6761217193d3060dbf0e.js.map
1737667 bytes
0644
8054.094788468423bb88ee68.js
38124 bytes
0644
8054.094788468423bb88ee68.js.map
132296 bytes
0644
8107.92bd414247a1d05c014f.js
5144 bytes
0644
8107.92bd414247a1d05c014f.js.map
15320 bytes
0644
8230.2eedae6021a4715c6dea.js
2413 bytes
0644
8230.2eedae6021a4715c6dea.js.map
5812 bytes
0644
8332.f4b05d2f028641445650.js
3177 bytes
0644
8332.f4b05d2f028641445650.js.map
7186 bytes
0644
8334.c95ec0eb6900c0cf7e89.js
7803 bytes
0644
8334.c95ec0eb6900c0cf7e89.js.map
17714 bytes
0644
8390.1fd9505094c8cf8830ab.js
2096 bytes
0644
8390.1fd9505094c8cf8830ab.js.map
5157 bytes
0644
84.a6f8658e6a033d642231.js
30608 bytes
0644
84.a6f8658e6a033d642231.js.map
142543 bytes
0644
8494.4470c87b7093ddf70db7.js
2180 bytes
0644
8494.4470c87b7093ddf70db7.js.map
4863 bytes
0644
8542.1391ab96a455b01963a7.js
1514 bytes
0644
8542.1391ab96a455b01963a7.js.map
3249 bytes
0644
8566.e05562713181c6ca30fe.js
3852 bytes
0644
8566.e05562713181c6ca30fe.js.map
8781 bytes
0644
8730.3dcdd8cbf22c63b45d78.js
2109 bytes
0644
8730.3dcdd8cbf22c63b45d78.js.map
2893 bytes
0644
8786.1b0e43b80c82c73e2096.js
1535 bytes
0644
8786.1b0e43b80c82c73e2096.js.map
4055 bytes
0644
8902.37d0b14aa6ef24687b7b.js
2673 bytes
0644
8902.37d0b14aa6ef24687b7b.js.map
5993 bytes
0644
8990.5a822b8788ebf0bdba81.js
3969 bytes
0644
8990.5a822b8788ebf0bdba81.js.map
9161 bytes
0644
9034.200fc7a09b466256c9a9.js
3486 bytes
0644
9034.200fc7a09b466256c9a9.js.map
8180 bytes
0644
9038.7ae2448b9cc5c423aeca.js
4937 bytes
0644
9038.7ae2448b9cc5c423aeca.js.map
11973 bytes
0644
9118.3121c6b96ec7dc211973.js
48311 bytes
0644
9118.3121c6b96ec7dc211973.js.map
62149 bytes
0644
9150.9eb62d45f9b21cb38850.js
10056 bytes
0644
9150.9eb62d45f9b21cb38850.js.map
21143 bytes
0644
9199.9897e268d6d13e834d4c.js
2307 bytes
0644
9199.9897e268d6d13e834d4c.js.map
8853 bytes
0644
9320.c403e78b78aa6df1d0bd.js
336139 bytes
0644
9320.c403e78b78aa6df1d0bd.js.map
1624993 bytes
0644
9355.421530b20c759bb75633.js
22098 bytes
0644
9355.421530b20c759bb75633.js.map
66961 bytes
0644
9384.a0d5fc49f1b15b3e311e.js
2855 bytes
0644
9384.a0d5fc49f1b15b3e311e.js.map
3717 bytes
0644
9390.fa2af7f3d3d9600c08ee.js
4201 bytes
0644
9390.fa2af7f3d3d9600c08ee.js.map
9682 bytes
0644
946.f2494c0c39a9590349b9.js
9194 bytes
0644
946.f2494c0c39a9590349b9.js.map
22193 bytes
0644
9510.4cfa85a51931dc20573a.js
2949 bytes
0644
9510.4cfa85a51931dc20573a.js.map
6939 bytes
0644
9521.de2a74ca5eb365810ca5.js
46306 bytes
0644
9521.de2a74ca5eb365810ca5.js.map
51040 bytes
0644
9538.996ade7a03ccdb01942d.js
64493 bytes
0644
9538.996ade7a03ccdb01942d.js.map
49212 bytes
0644
9569.a8d60b39654a160cb917.js
27965 bytes
0644
9569.a8d60b39654a160cb917.js.map
99160 bytes
0644
9643.b408884004ca73c102bc.js
627 bytes
0644
9643.b408884004ca73c102bc.js.map
2195 bytes
0644
968.22e079d28acb4131d34c.js
4001 bytes
0644
968.22e079d28acb4131d34c.js.map
9740 bytes
0644
970.a61e37b9b897c8098261.js
5239 bytes
0644
970.a61e37b9b897c8098261.js.map
13858 bytes
0644
9711.d6e977bd60f0e5ba673d.js
13555 bytes
0644
9711.d6e977bd60f0e5ba673d.js.map
43973 bytes
0644
9737.3340c89ea96d33307cc7.js
1001 bytes
0644
9737.3340c89ea96d33307cc7.js.map
3504 bytes
0644
9739.5a801055fcf72bf4d06f.js
1147 bytes
0644
9739.5a801055fcf72bf4d06f.js.map
4390 bytes
0644
9772.49e918c9331237552c0b.js
141 bytes
0644
9772.49e918c9331237552c0b.js.map
416 bytes
0644
9838.b8f01dc360f0c2151291.js
4003 bytes
0644
9838.b8f01dc360f0c2151291.js.map
8118 bytes
0644
AdminAuthentication.b7044adf53b669e61a87.js
22504 bytes
0644
AdminAuthentication.b7044adf53b669e61a87.js.map
67352 bytes
0644
AdminEditOrgPage.96fb6c37346641f44246.js
6369 bytes
0644
AdminEditOrgPage.96fb6c37346641f44246.js.map
20602 bytes
0644
AdminFeatureTogglesPage.22157fe31f358f1c4f09.js
4939 bytes
0644
AdminFeatureTogglesPage.22157fe31f358f1c4f09.js.map
16531 bytes
0644
AdminListOrgsPage.f01c8496fd635e20124b.js
2702 bytes
0644
AdminListOrgsPage.f01c8496fd635e20124b.js.map
7735 bytes
0644
AdminSettings.845c6def917892a0c1f9.js
1903 bytes
0644
AdminSettings.845c6def917892a0c1f9.js.map
5580 bytes
0644
AlertAmRoutes.10a0d9a23a082caf12c8.js
54554 bytes
0644
AlertAmRoutes.10a0d9a23a082caf12c8.js.map
208792 bytes
0644
AlertGroups.efd523dc41621f9f7935.js
10088 bytes
0644
AlertGroups.efd523dc41621f9f7935.js.map
39108 bytes
0644
AlertRuleListIndex.f0b17a6119cc5ea575ed.js
44623 bytes
0644
AlertRuleListIndex.f0b17a6119cc5ea575ed.js.map
156842 bytes
0644
AlertRuleListLegacy.8e675db4469232c87308.js
6270 bytes
0644
AlertRuleListLegacy.8e675db4469232c87308.js.map
18086 bytes
0644
AlertSilences.4ff252ad4c0057124d5d.js
24687 bytes
0644
AlertSilences.4ff252ad4c0057124d5d.js.map
83377 bytes
0644
AlertTabCtrl.d3377d127a336a69beb5.js
9844 bytes
0644
AlertTabCtrl.d3377d127a336a69beb5.js.map
27934 bytes
0644
AlertingAdmin.e62f9c73a69abe6a1ac0.js
10523 bytes
0644
AlertingAdmin.e62f9c73a69abe6a1ac0.js.map
37393 bytes
0644
AlertingFeatureTogglePage.f971bb7b2ad4ceb0acbd.js
672 bytes
0644
AlertingFeatureTogglePage.f971bb7b2ad4ceb0acbd.js.map
1220 bytes
0644
AlertingHome.0d6be993ef4a3df37345.js
33492 bytes
0644
AlertingHome.0d6be993ef4a3df37345.js.map
106868 bytes
0644
AlertingRedirectToRule.37a0040f89e20b99b751.js
3648 bytes
0644
AlertingRedirectToRule.37a0040f89e20b99b751.js.map
10875 bytes
0644
AlertingRuleForm.66bb5b2724b31ae6a5a4.js
79931 bytes
0644
AlertingRuleForm.66bb5b2724b31ae6a5a4.js.map
292923 bytes
0644
AlertingUpgrade.c757b99e306db50cdb16.js
31333 bytes
0644
AlertingUpgrade.c757b99e306db50cdb16.js.map
98330 bytes
0644
AngularApp.7e72879caebef22a5217.js
72809 bytes
0644
AngularApp.7e72879caebef22a5217.js.map
102853 bytes
0644
ApiKeysPage.12b0cd511f7b1e9c50dc.js
8422 bytes
0644
ApiKeysPage.12b0cd511f7b1e9c50dc.js.map
23375 bytes
0644
BenchmarksPage.3a183df3d44714f9a96a.js
2941 bytes
0644
BenchmarksPage.3a183df3d44714f9a96a.js.map
9749 bytes
0644
ChangePasswordPage.5e0562f6a9674bd95cfe.js
470 bytes
0644
ChangePasswordPage.5e0562f6a9674bd95cfe.js.map
1195 bytes
0644
Connections.b53c715b9b9a782d8647.js
32448 bytes
0644
Connections.b53c715b9b9a782d8647.js.map
112998 bytes
0644
CorrelationsFeatureToggle.71addced22f59948b708.js
674 bytes
0644
CorrelationsFeatureToggle.71addced22f59948b708.js.map
1149 bytes
0644
CorrelationsPage.4e02feddf752bdf7cfe6.js
22725 bytes
0644
CorrelationsPage.4e02feddf752bdf7cfe6.js.map
69262 bytes
0644
CreateTeam.dbde5b87278cf087cc5e.js
3046 bytes
0644
CreateTeam.dbde5b87278cf087cc5e.js.map
9594 bytes
0644
DashboardImport.06e6c4c03113061aae6c.js
18153 bytes
0644
DashboardImport.06e6c4c03113061aae6c.js.map
58242 bytes
0644
DashboardListPage.dac1fe75fbaa4f9b1c23.js
30967 bytes
0644
DashboardListPage.dac1fe75fbaa4f9b1c23.js.map
108517 bytes
0644
DashboardPage.5e50193556ad6b828f5d.js
2786 bytes
0644
DashboardPage.5e50193556ad6b828f5d.js.map
8754 bytes
0644
DashboardPageProxy.9a6d60e5cac89c11c71c.js
65136 bytes
0644
DashboardPageProxy.9a6d60e5cac89c11c71c.js.map
226791 bytes
0644
DataTrailsPage.aa19ca6750eb3f91ac5d.js
331 bytes
0644
DataTrailsPage.aa19ca6750eb3f91ac5d.js.map
582 bytes
0644
EditNotificationChannelLegacy.75122e6dbfb215d89d81.js
10507 bytes
0644
EditNotificationChannelLegacy.75122e6dbfb215d89d81.js.map
37444 bytes
0644
EmbeddedDashboard.3856404d3d608c739864.js
1768 bytes
0644
EmbeddedDashboard.3856404d3d608c739864.js.map
5917 bytes
0644
FolderAlerting.a0fe69e3574320c8a74a.js
9633 bytes
0644
FolderAlerting.a0fe69e3574320c8a74a.js.map
29985 bytes
0644
FolderLibraryPanelsPage.95dd7bf6735e202a79d2.js
8599 bytes
0644
FolderLibraryPanelsPage.95dd7bf6735e202a79d2.js.map
25919 bytes
0644
LibraryPanelsPage.4a952d4aa9c21984995a.js
2704 bytes
0644
LibraryPanelsPage.4a952d4aa9c21984995a.js.map
7623 bytes
0644
ListPublicDashboardPage.469a693c4011a5193fcd.js
4713 bytes
0644
ListPublicDashboardPage.469a693c4011a5193fcd.js.map
14309 bytes
0644
MuteTimings.cb66b37f52c9ee3ce1da.js
20855 bytes
0644
MuteTimings.cb66b37f52c9ee3ce1da.js.map
58932 bytes
0644
NewNotificationChannelLegacy.1d57814bc534bb1a3681.js
9785 bytes
0644
NewNotificationChannelLegacy.1d57814bc534bb1a3681.js.map
32951 bytes
0644
NewOrgPage.2bb0e1cab09f0cbd0310.js
1325 bytes
0644
NewOrgPage.2bb0e1cab09f0cbd0310.js.map
3158 bytes
0644
NotificationsListLegacyPage.33212668898a6db361a8.js
2547 bytes
0644
NotificationsListLegacyPage.33212668898a6db361a8.js.map
6671 bytes
0644
NotificationsListPage.1eb9cb05bf88eee08291.js
1620 bytes
0644
NotificationsListPage.1eb9cb05bf88eee08291.js.map
3378 bytes
0644
NotificationsPage.d26b90d7348139106351.js
4646 bytes
0644
NotificationsPage.d26b90d7348139106351.js.map
25381 bytes
0644
OrgDetailsPage.2d5c98f188683c2e1d3b.js
6742 bytes
0644
OrgDetailsPage.2d5c98f188683c2e1d3b.js.map
17850 bytes
0644
PlaylistEditPage.d14b3673a1bb03ca0dbb.js
6892 bytes
0644
PlaylistEditPage.d14b3673a1bb03ca0dbb.js.map
19989 bytes
0644
PlaylistNewPage.13696f39b95b8416ede2.js
6583 bytes
0644
PlaylistNewPage.13696f39b95b8416ede2.js.map
19084 bytes
0644
PlaylistPage.8f45dcc09add615f90e8.js
7895 bytes
0644
PlaylistPage.8f45dcc09add615f90e8.js.map
25502 bytes
0644
PlaylistStartPage.8be462b13a24cddee188.js
275 bytes
0644
PlaylistStartPage.8be462b13a24cddee188.js.map
698 bytes
0644
PluginListPage.815b65d32380d0a800f7.js
12167 bytes
0644
PluginListPage.815b65d32380d0a800f7.js.map
43537 bytes
0644
PluginPage.c790de5e17a0b728dd3a.js
314 bytes
0644
PluginPage.c790de5e17a0b728dd3a.js.map
668 bytes
0644
ProfileFeatureTogglePage.a14257ebc5da1e8c85e0.js
552 bytes
0644
ProfileFeatureTogglePage.a14257ebc5da1e8c85e0.js.map
1012 bytes
0644
PublicDashboardPage.51c7c24941781e091898.js
4295 bytes
0644
PublicDashboardPage.51c7c24941781e091898.js.map
14393 bytes
0644
SelectOrgPage.695c19a5101a3a03ee28.js
1124 bytes
0644
SelectOrgPage.695c19a5101a3a03ee28.js.map
2993 bytes
0644
SendResetMailPage.f16b7172a87070f57227.js
1736 bytes
0644
SendResetMailPage.f16b7172a87070f57227.js.map
4350 bytes
0644
ServerStats.3fbd2493deb8f4598755.js
3863 bytes
0644
ServerStats.3fbd2493deb8f4598755.js.map
11534 bytes
0644
ServiceAccountCreatePage.4f989fb6cd2a41193ff0.js
2440 bytes
0644
ServiceAccountCreatePage.4f989fb6cd2a41193ff0.js.map
7939 bytes
0644
ServiceAccountPage.bc7c35b63b03ccc89628.js
14806 bytes
0644
ServiceAccountPage.bc7c35b63b03ccc89628.js.map
51593 bytes
0644
ServiceAccountsPage.baaa08c045390c05e276.js
14565 bytes
0644
ServiceAccountsPage.baaa08c045390c05e276.js.map
46399 bytes
0644
SignupInvited.81ad56aceb8dd1839e15.js
2360 bytes
0644
SignupInvited.81ad56aceb8dd1839e15.js.map
6096 bytes
0644
SnapshotListPage.519c760ed66124a771ff.js
3061 bytes
0644
SnapshotListPage.519c760ed66124a771ff.js.map
9043 bytes
0644
SoloPanelPage.c729750a88c3fa90d1cc.js
3229 bytes
0644
SoloPanelPage.c729750a88c3fa90d1cc.js.map
12316 bytes
0644
SoloPanelPageOld.6518c21ccaf29701fa97.js
1727 bytes
0644
SoloPanelPageOld.6518c21ccaf29701fa97.js.map
5509 bytes
0644
StoragePage.9b93a99e75f7f2842c11.js
14081 bytes
0644
StoragePage.9b93a99e75f7f2842c11.js.map
48740 bytes
0644
SupportBundles.567d512b3f919b8112e4.js
3058 bytes
0644
SupportBundles.567d512b3f919b8112e4.js.map
8751 bytes
0644
SupportBundlesCreate.fc6b6e4cf6366f751081.js
2779 bytes
0644
SupportBundlesCreate.fc6b6e4cf6366f751081.js.map
8882 bytes
0644
TeamList.2e23d37c91734f608f09.js
9019 bytes
0644
TeamList.2e23d37c91734f608f09.js.map
30348 bytes
0644
TeamPages.4f6177b4c6ec769c72d8.js
22839 bytes
0644
TeamPages.4f6177b4c6ec769c72d8.js.map
66001 bytes
0644
TestStuffPage.8ddabdd17d265b771b17.js
2654 bytes
0644
TestStuffPage.8ddabdd17d265b771b17.js.map
8058 bytes
0644
UserCreatePage.72e86cf2c9a3ce50cff3.js
1470 bytes
0644
UserCreatePage.72e86cf2c9a3ce50cff3.js.map
3788 bytes
0644
UserInvitePage.c8243c9cee4b06e10222.js
2576 bytes
0644
UserInvitePage.c8243c9cee4b06e10222.js.map
6594 bytes
0644
UserListPage.acbb5778a782ca90c7ba.js
25463 bytes
0644
UserListPage.acbb5778a782ca90c7ba.js.map
79671 bytes
0644
UserProfileEditPage.7cc4c218d9e4664250e3.js
14593 bytes
0644
UserProfileEditPage.7cc4c218d9e4664250e3.js.map
42901 bytes
0644
UsersListPage.1b61c82d62ca416b6f2f.js
8800 bytes
0644
UsersListPage.1b61c82d62ca416b6f2f.js.map
30059 bytes
0644
alert-rules-drawer-content.1fd9de3b496d077a5f3a.js
957 bytes
0644
alert-rules-drawer-content.1fd9de3b496d077a5f3a.js.map
3199 bytes
0644
alert-rules-toolbar-button.6f275f0d03748b6c297d.js
1429 bytes
0644
alert-rules-toolbar-button.6f275f0d03748b6c297d.js.map
4041 bytes
0644
alertmanagerPlugin.d13ca72afb3f996bb284.js
3810 bytes
0644
alertmanagerPlugin.d13ca72afb3f996bb284.js.map
10753 bytes
0644
app.b11fde05d43f9632a473.js
920821 bytes
0644
app.b11fde05d43f9632a473.js.map
69088 bytes
0644
assets-manifest.json
280835 bytes
0644
azureMonitorPlugin.0bc37a9d4e3bd8421cc0.js
232 bytes
0644
azureMonitorPlugin.0bc37a9d4e3bd8421cc0.js.map
600 bytes
0644
brace.fcd4b1c7e8b9264ab02c.js
371235 bytes
0644
brace.fcd4b1c7e8b9264ab02c.js.map
1132097 bytes
0644
canvasPanel.a46aa5e57d26b1fcc380.js
485254 bytes
0644
canvasPanel.a46aa5e57d26b1fcc380.js.map
2136916 bytes
0644
cloudMonitoringPlugin.c6ea431eae8e9ad2c7b1.js
198 bytes
0644
cloudMonitoringPlugin.c6ea431eae8e9ad2c7b1.js.map
555 bytes
0644
cloudwatchPlugin.06ef34f60000c4f7ea37.js
192 bytes
0644
cloudwatchPlugin.06ef34f60000c4f7ea37.js.map
544 bytes
0644
dark.7fa24d1908c1c96e6fcc.js
134 bytes
0644
elasticsearchPlugin.3f2edb012f5162b48903.js
214 bytes
0644
elasticsearchPlugin.3f2edb012f5162b48903.js.map
583 bytes
0644
explore-feature-toggle-page.897d9f08c342ad4c0702.js
612 bytes
0644
explore-feature-toggle-page.897d9f08c342ad4c0702.js.map
1280 bytes
0644
explore.476912733278e2a99729.js
165810 bytes
0644
explore.476912733278e2a99729.js.map
579148 bytes
0644
geomapPanel.14b9605971a38c51d262.js
417078 bytes
0644
geomapPanel.14b9605971a38c51d262.js.map
540371 bytes
0644
grafana.dark.8c716fbcf630eae84ced.css
209089 bytes
0644
grafana.light.b8b3904788f25480f4a1.css
209047 bytes
0644
grafanaPlugin.1cb208185a89de28dc3a.js
8654 bytes
0644
grafanaPlugin.1cb208185a89de28dc3a.js.map
28174 bytes
0644
graphPlugin.f47f722cdfc0ceb85136.js
70277 bytes
0644
graphPlugin.f47f722cdfc0ceb85136.js.map
243430 bytes
0644
graphitePlugin.d59175976346917781fe.js
75305 bytes
0644
graphitePlugin.d59175976346917781fe.js.map
272016 bytes
0644
heatmapPanel.f6f29a53ed0f682b4404.js
37545 bytes
0644
heatmapPanel.f6f29a53ed0f682b4404.js.map
158066 bytes
0644
influxdbPlugin.140a7777089f9559c11c.js
68843 bytes
0644
influxdbPlugin.140a7777089f9559c11c.js.map
265085 bytes
0644
jaegerPlugin.d254fd4a19ef0cb5b4f5.js
19727 bytes
0644
jaegerPlugin.d254fd4a19ef0cb5b4f5.js.map
65603 bytes
0644
light.af65e5ce03b9ed0aa2b1.js
134 bytes
0644
loki-query-field.a588d587d9d762b18f22.js
191 bytes
0644
loki-query-field.a588d587d9d762b18f22.js.map
548 bytes
0644
lokiPlugin.77364509de280321b6f8.js
185 bytes
0644
lokiPlugin.77364509de280321b6f8.js.map
536 bytes
0644
mixedPlugin.f36bd557a883d9a67538.js
180 bytes
0644
mssqlPlugin.88775f59ced74c2283c5.js
20457 bytes
0644
mssqlPlugin.88775f59ced74c2283c5.js.map
61420 bytes
0644
mysqlPlugin.72fb44411afd8165d201.js
17323 bytes
0644
mysqlPlugin.72fb44411afd8165d201.js.map
45415 bytes
0644
nodeGraphPanel.9a7cdd8efdae281cbe28.js
2107 bytes
0644
nodeGraphPanel.9a7cdd8efdae281cbe28.js.map
7132 bytes
0644
opentsdbPlugin.418b8c8ea0d97ed99edb.js
22866 bytes
0644
opentsdbPlugin.418b8c8ea0d97ed99edb.js.map
82180 bytes
0644
parcaPlugin.7f2e6dde7161b08ceed2.js
11184 bytes
0644
parcaPlugin.7f2e6dde7161b08ceed2.js.map
42340 bytes
0644
postgresPlugin.f88c598bae2653ae177b.js
18902 bytes
0644
postgresPlugin.f88c598bae2653ae177b.js.map
54304 bytes
0644
prom-query-field.ff217c474ea457bdd65e.js
14104 bytes
0644
prom-query-field.ff217c474ea457bdd65e.js.map
76811 bytes
0644
prometheusPlugin.2ba02c28d3f7293e903e.js
224 bytes
0644
prometheusPlugin.2ba02c28d3f7293e903e.js.map
699 bytes
0644
pyroscopePlugin.eb14b78419d619d90dca.js
22269 bytes
0644
pyroscopePlugin.eb14b78419d619d90dca.js.map
86896 bytes
0644
react-monaco-editor.988b1aa5e90b11f9941a.js
15759 bytes
0644
react-monaco-editor.988b1aa5e90b11f9941a.js.map
51544 bytes
0644
runtime.4b7e1b5735d2ed64b824.js
13640 bytes
0644
runtime.4b7e1b5735d2ed64b824.js.map
35122 bytes
0644
tableOldPlugin.8c72b8399d197aeebe16.js
25242 bytes
0644
tableOldPlugin.8c72b8399d197aeebe16.js.map
80497 bytes
0644
tempoPlugin.efa8c2a55984263b4b61.js
182 bytes
0644
tempoPlugin.efa8c2a55984263b4b61.js.map
529 bytes
0644
testDataDSPlugin.9717509b124d754e4f35.js
120550 bytes
0644
testDataDSPlugin.9717509b124d754e4f35.js.map
303302 bytes
0644
visjs-network.d93b3aa71ac24c8cde84.js
459653 bytes
0644
visjs-network.d93b3aa71ac24c8cde84.js.map
1951742 bytes
0644
zipkinPlugin.70f0f24b6d0b6e673ccb.js
13172 bytes
0644
zipkinPlugin.70f0f24b6d0b6e673ccb.js.map
46861 bytes
0644
N4ST4R_ID | Naxtarrr