@itwin/reports-config-widget-react 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/operation/rebuild/all.log +9 -0
- package/.rush/temp/operation/rebuild/state.json +3 -0
- package/.rush/temp/package-deps_rebuild.json +36 -32
- package/.rush/temp/shrinkwrap-deps.json +90 -36
- package/CHANGELOG.json +33 -0
- package/CHANGELOG.md +18 -1
- package/lib/cjs/reports-config-widget-react.d.ts +5 -0
- package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
- package/lib/cjs/reports-config-widget-react.js +11 -0
- package/lib/cjs/reports-config-widget-react.js.map +1 -1
- package/lib/cjs/test/AddMappingModal.test.js +15 -28
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
- package/lib/cjs/test/BulkExtractor.test.js +13 -19
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
- package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
- package/lib/cjs/test/DeleteModal.test.js +4 -62
- package/lib/cjs/test/DeleteModal.test.js.map +1 -1
- package/lib/cjs/test/ReportAction.test.js +13 -78
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +2 -35
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
- package/lib/cjs/test/ReportMappings.test.js +38 -91
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +19 -72
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/test/test-utils.d.ts +3 -8
- package/lib/cjs/test/test-utils.d.ts.map +1 -1
- package/lib/cjs/test/test-utils.js +8 -33
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +4 -4
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.d.ts +4 -4
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +23 -22
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/BulkExtractor.d.ts +4 -4
- package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/cjs/widget/components/BulkExtractor.js +6 -6
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.d.ts +4 -5
- package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +9 -13
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.scss +6 -3
- package/lib/cjs/widget/components/ReportAction.d.ts +4 -5
- package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +15 -15
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +4 -4
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportHorizontalTile.js +27 -12
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +24 -9
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts +4 -6
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +37 -47
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +3 -3
- package/lib/cjs/widget/components/Reports.d.ts +6 -1
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +42 -83
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts +18 -0
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsConfigContext.js +87 -0
- package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -0
- package/lib/cjs/widget/components/ReportsContainer.d.ts +14 -0
- package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +28 -16
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsHeader.d.ts +7 -0
- package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsHeader.js +20 -0
- package/lib/cjs/widget/components/ReportsHeader.js.map +1 -0
- package/lib/cjs/widget/components/ReportsRouter.d.ts +8 -0
- package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsRouter.js +52 -0
- package/lib/cjs/widget/components/ReportsRouter.js.map +1 -0
- package/lib/cjs/widget/components/SearchBar.js +1 -2
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +1 -1
- package/lib/cjs/widget/components/SelectIModel.d.ts +3 -3
- package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.js +6 -26
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/utils.d.ts +1 -1
- package/lib/cjs/widget/components/utils.d.ts.map +1 -1
- package/lib/cjs/widget/components/utils.js.map +1 -1
- package/lib/cjs/widget/context/BulkExtractorContext.d.ts +10 -0
- package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -0
- package/lib/cjs/widget/context/{ReportsApiConfigContext.js → BulkExtractorContext.js} +7 -10
- package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +16 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.js +43 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -0
- package/lib/esm/reports-config-widget-react.d.ts +5 -0
- package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
- package/lib/esm/reports-config-widget-react.js +5 -0
- package/lib/esm/reports-config-widget-react.js.map +1 -1
- package/lib/esm/test/AddMappingModal.test.js +16 -29
- package/lib/esm/test/AddMappingModal.test.js.map +1 -1
- package/lib/esm/test/BulkExtractor.test.js +14 -17
- package/lib/esm/test/BulkExtractor.test.js.map +1 -1
- package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
- package/lib/esm/test/DeleteModal.test.js +5 -44
- package/lib/esm/test/DeleteModal.test.js.map +1 -1
- package/lib/esm/test/ReportAction.test.js +14 -60
- package/lib/esm/test/ReportAction.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +3 -36
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
- package/lib/esm/test/ReportMappings.test.js +37 -90
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +20 -54
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/test/test-utils.d.ts +3 -8
- package/lib/esm/test/test-utils.d.ts.map +1 -1
- package/lib/esm/test/test-utils.js +7 -31
- package/lib/esm/test/test-utils.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js +4 -4
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.d.ts +4 -4
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +25 -24
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/BulkExtractor.d.ts +4 -4
- package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/esm/widget/components/BulkExtractor.js +7 -8
- package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.d.ts +4 -5
- package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +9 -13
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/HorizontalTile.scss +6 -3
- package/lib/esm/widget/components/ReportAction.d.ts +4 -5
- package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportAction.js +14 -16
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts +4 -4
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportHorizontalTile.js +4 -5
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +1 -2
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.d.ts +4 -6
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +39 -49
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +3 -3
- package/lib/esm/widget/components/Reports.d.ts +6 -1
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +45 -86
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/ReportsConfigContext.d.ts +18 -0
- package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsConfigContext.js +64 -0
- package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -0
- package/lib/esm/widget/components/ReportsContainer.d.ts +14 -0
- package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +28 -17
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsHeader.d.ts +7 -0
- package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsHeader.js +13 -0
- package/lib/esm/widget/components/ReportsHeader.js.map +1 -0
- package/lib/esm/widget/components/ReportsRouter.d.ts +8 -0
- package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsRouter.js +45 -0
- package/lib/esm/widget/components/ReportsRouter.js.map +1 -0
- package/lib/esm/widget/components/SearchBar.js +1 -2
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +1 -1
- package/lib/esm/widget/components/SelectIModel.d.ts +3 -3
- package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
- package/lib/esm/widget/components/SelectIModel.js +7 -27
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/utils.d.ts +1 -1
- package/lib/esm/widget/components/utils.d.ts.map +1 -1
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/context/BulkExtractorContext.d.ts +10 -0
- package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -0
- package/lib/esm/widget/context/BulkExtractorContext.js +11 -0
- package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +16 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.js +20 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -0
- package/lib/public/locales/en/ReportsConfigWidget.json +2 -1
- package/package.json +4 -4
- package/public/locales/en/ReportsConfigWidget.json +2 -1
- package/reports-config-widget-react.build.error.log +1 -14
- package/reports-config-widget-react.build.log +2 -60
- package/src/reports-config-widget-react.ts +6 -0
- package/src/test/AddMappingModal.test.tsx +20 -37
- package/src/test/BulkExtractor.test.ts +15 -17
- package/src/test/DeleteModal.test.tsx +4 -73
- package/src/test/ReportAction.test.tsx +17 -90
- package/src/test/ReportMappingHorizontalTile.test.tsx +3 -54
- package/src/test/ReportMappings.test.tsx +50 -135
- package/src/test/Reports.test.tsx +21 -80
- package/src/test/test-utils.tsx +9 -49
- package/src/widget/components/ActionPanel.tsx +16 -14
- package/src/widget/components/AddMappingsModal.tsx +39 -39
- package/src/widget/components/BulkExtractor.ts +11 -10
- package/src/widget/components/DeleteModal.tsx +14 -20
- package/src/widget/components/HorizontalTile.scss +6 -3
- package/src/widget/components/ReportAction.tsx +15 -30
- package/src/widget/components/ReportHorizontalTile.tsx +10 -11
- package/src/widget/components/ReportMappingHorizontalTile.tsx +2 -3
- package/src/widget/components/ReportMappings.scss +3 -3
- package/src/widget/components/ReportMappings.tsx +66 -69
- package/src/widget/components/Reports.tsx +143 -187
- package/src/widget/components/ReportsConfigContext.tsx +95 -0
- package/src/widget/components/ReportsContainer.tsx +47 -21
- package/src/widget/components/ReportsHeader.tsx +27 -0
- package/src/widget/components/ReportsRouter.tsx +63 -0
- package/src/widget/components/SearchBar.scss +1 -1
- package/src/widget/components/SearchBar.tsx +2 -2
- package/src/widget/components/SelectIModel.tsx +11 -29
- package/src/widget/components/utils.tsx +1 -1
- package/src/widget/context/{ReportsApiConfigContext.tsx → BulkExtractorContext.tsx} +9 -10
- package/src/widget/context/ReportsConfigApiContext.tsx +39 -0
- package/coverage/clover.xml +0 -838
- package/coverage/coverage-final.json +0 -29
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -206
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +0 -193
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/test/index.html +0 -116
- package/coverage/lcov-report/src/test/test-utils.tsx.html +0 -316
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +0 -286
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +0 -241
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +0 -604
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +0 -661
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +0 -106
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +0 -385
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +0 -187
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +0 -145
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +0 -139
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +0 -151
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +0 -190
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +0 -176
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +0 -295
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +0 -208
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +0 -289
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +0 -262
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +0 -517
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +0 -475
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +0 -469
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +0 -1078
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +0 -877
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +0 -223
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +0 -271
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +0 -391
- package/coverage/lcov-report/src/widget/components/index.html +0 -371
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +0 -562
- package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +0 -166
- package/coverage/lcov-report/src/widget/context/index.html +0 -116
- package/coverage/lcov-report/src/widget/hooks/index.html +0 -116
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +0 -295
- package/coverage/lcov-report/src/widget/index.html +0 -116
- package/coverage/lcov.info +0 -1594
- package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts +0 -9
- package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
- package/lib/cjs/widget/context/ReportsApiConfigContext.js.map +0 -1
- package/lib/esm/widget/context/ReportsApiConfigContext.d.ts +0 -9
- package/lib/esm/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
- package/lib/esm/widget/context/ReportsApiConfigContext.js +0 -14
- package/lib/esm/widget/context/ReportsApiConfigContext.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reports.test.js","sourceRoot":"","sources":["../../../src/test/Reports.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,qCAAmC;AACnC,mDAM4B;AAC5B,0DAAuD;AAMvD,wDAAmD;AACnD,gEAA6D;AAC7D,6BAA2B;AAC3B,mCAAuC;AACvC,6CAA+B;AAK/B,wEAGsC;AACtC,4DAAoC;AAEpC,6EAAoD;AACpD,+EAA4E;AAG5E,MAAM,WAAW,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC1C,MAAM,YAAY,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAE3C,MAAM,cAAc,GAAG,GAAqB,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,KAAK,CAAC,IAAI,CACjB,EAAE,MAAM,EAAE,eAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EACrD,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACb,EAAE,EAAE,GAAG,eAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE;QAC9B,WAAW,EAAE,aAAa,KAAK,EAAE;QACjC,WAAW,EAAE,wBAAwB,KAAK,EAAE;QAC5C,OAAO,EAAE,KAAK;QACd,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,EAAE;aACT;SACF;KACF,CAAC,CACH;IACD,MAAM,EAAE;QACN,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;SACT;KACF;CACF,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAoB,CAAC;AAC3D,MAAM,oBAAoB,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAoB,CAAC;AACjE,MAAM,0BAA0B,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAA0B,CAAC;AAE7E,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC;IAC3C,yBAAyB,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM;CACvD,CAAC,CAAC,CAAC;AAEJ,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,CAAC;IACtD,cAAc,EAAE,GAAG,EAAE,CAAC,oBAAoB;CAC3C,CAAC,CAAC,CAAC;AAEJ,MAAM,MAAM,GAAG,kBAAW,EAAE,CAAC;AAE7B,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,sDAAsD;IACrD,MAAc,CAAC,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,CAAC,yDAAyD;IAEpI,MAAM,2BAAW,CAAC,OAAO,EAAE,CAAC;IAC5B,MAAM,oCAAY,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAgB,CAAC;IACrD,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAA4C,CAAC;IAC9E,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvE,cAAc;SACX,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;SAC5B,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;IACpE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;IAElE,oBAAoB;SACjB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;SAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,4CAAoB,EAAE,CAAC,CAAC;IAE7C,0BAA0B;SACvB,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC/D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3B,oBAAoB;SACjB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACtB,OAAO,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAEpD,oCAAY,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,sBAAS,CAAC,qBAAqB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,yCAAmB,CAAC,UAAU,EAAE,CAAC;IACvC,MAAM,CAAC,MAAM,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,GAAG,EAAE;IACZ,sBAAS,CAAC,oBAAoB,EAAE,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;AAExC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CACR,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC1B,CAAC;QACJ,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,mBAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3C,IAAI,EAAE,qBAAqB;SAC5B,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5B,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CACR,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC1B,CAAC;QACJ,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,mBAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3C,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5B,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;;QAChC,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,CACF,CAAC;QAEF,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAEpB,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,mBAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACjE,wDAAwD;QACxD,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEpE,KAAK,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE;YAC/D,MAAM,iBAAiB,GAAG,mBAAM,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CACJ,iBAAiB,CAAC,SAAS,CACzB,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,KAAK,EAAE,WAAW,mCAAI,EAAE,CAChD,CACF,CAAC,iBAAiB,EAAE,CAAC;YACtB,MAAM,CACJ,iBAAiB,CAAC,UAAU,CAC1B,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,KAAK,EAAE,WAAW,mCAAI,EAAE,CAChD,CACF,CAAC,iBAAiB,EAAE,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,iBAAiB,GAAG,mBAAM,CAC9B,mBAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,mBAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/B,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,2BAA2B,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QACjE,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,EACD,UAAI,CAAC,MAAM,CACT,GAAG,iDAAuB,+BAA+B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAClF,EAAE,EACF,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAClD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACtD,CAAC;YACF,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,iBAAiB,GAAG,mBAAM,CAC9B,mBAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,mBAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,oCAAoC;QACpC,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAEvD,MAAM,YAAY,GAAG,mBAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC9C,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE/B,MAAM,sCAAyB,CAAC,GAAG,EAAE,CACnC,mBAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAC1C,CAAC;QACF,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAElE,4BAA4B;QAC5B,MAAM,CAAC,mBAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAC3D,2BAA2B,GAAG,CAAC,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;;QACnC,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,YAAY,GAAG,mBAAM,CAAC,mBAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAC1E,QAAQ,CACT,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,mBAAM,CAAC,SAAS,CAAC,SAAS,EAAE;YAC9C,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,oBAAS,CAAC,IAAI,CAClB,WAAW,EACX,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CACrC,CAAC;QACF,MAAM,CAAC,mBAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,CACJ,mBAAM,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CACvD,CAAC,iBAAiB,EAAE,CAAC;QAEtB,oCAAoC;QACpC,MAAM,oBAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,oBAAS,CAAC,IAAI,CAClB,WAAW,EACX,MAAA,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,mCAAI,EAAE,CAC3C,CAAC;QACF,MAAM,CAAC,mBAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,CACJ,mBAAM,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CACvD,CAAC,iBAAiB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,iBAAiB,GAAG,mBAAM,CAC9B,mBAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAChD,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,mBAAM,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,8BAA8B;QAC9B,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,aAAa,GAAqB,cAAc,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,CACR,UAAI,CAAC,GAAG,CACN,GAAG,iDAAuB,6BAA6B,EACvD,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvE,CAAC,CACF,CACF,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAM,CAAC,8BAAC,iBAAO,OAAG,CAAC,CAAC;QAErC,MAAM,sCAAyB,CAAC,GAAG,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,mBAAM,CAAC,SAAS,CACjC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CACrC,CAAC;QACF,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,CAAC,mBAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport {\n render,\n screen,\n TestUtils,\n waitForElementToBeRemoved,\n within,\n} from \"../test/test-utils\";\nimport { Reports } from \"../widget/components/Reports\";\nimport type {\n IModelConnection,\n SelectionSet,\n SelectionSetEvent,\n} from \"@itwin/core-frontend\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { rest } from \"msw\";\nimport { setupServer } from \"msw/node\";\nimport * as moq from \"typemoq\";\nimport type {\n SelectionManager,\n SelectionScopesManager,\n} from \"@itwin/presentation-frontend\";\nimport {\n Presentation,\n SelectionChangeEvent,\n} from \"@itwin/presentation-frontend\";\nimport faker from \"@faker-js/faker\";\nimport type { ReportCollection } from \"@itwin/insights-client\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\n\nconst reportsFactory = (): ReportCollection => ({\n reports: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n displayName: `mOcKRePoRT${index}`,\n description: `mOcKRePoRTDeScRiPtIoN${index}`,\n deleted: false,\n _links: {\n project: {\n href: \"\",\n },\n },\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nconst selectionManagerMock = moq.Mock.ofType<SelectionManager>();\nconst selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\njest.mock(\"../widget/components/ReportMappings\", () => ({\n ReportMappings: () => \"MockReportMappings\",\n}));\n\nconst server = setupServer();\n\nbeforeAll(async () => {\n // This is required by the i18n module within iTwin.js\n (global as any).XMLHttpRequest = require(\"xmlhttprequest\").XMLHttpRequest; // eslint-disable-line @typescript-eslint/no-var-requires\n\n await NoRenderApp.startup();\n await Presentation.initialize();\n const selectionSet = moq.Mock.ofType<SelectionSet>();\n const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();\n selectionSet.setup((x) => x.elements).returns(() => new Set([]));\n selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);\n connectionMock\n .setup((x) => x.selectionSet)\n .returns(() => selectionSet.object);\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n selectionManagerMock\n .setup((x) => x.selectionChange)\n .returns(() => new SelectionChangeEvent());\n\n selectionScopesManagerMock\n .setup(async (x) => x.getSelectionScopes(connectionMock.object))\n .returns(async () => []);\n selectionManagerMock\n .setup((x) => x.scopes)\n .returns(() => selectionScopesManagerMock.object);\n\n Presentation.setSelectionManager(selectionManagerMock.object);\n await TestUtils.initializeUiFramework(connectionMock.object);\n await ReportsConfigWidget.initialize();\n server.listen();\n});\n\nafterAll(() => {\n TestUtils.terminateUiFramework();\n server.close();\n});\n\nafterEach(() => server.resetHandlers());\n\ndescribe(\"Reports View\", () => {\n it(\"call to action button should be clickable with no reports\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const ctaButton = screen.getByRole(\"button\", {\n name: /createonereportcta/i,\n });\n await user.click(ctaButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"be able to add new report\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const newButton = screen.getByRole(\"button\", {\n name: /new/i,\n });\n await user.click(newButton);\n expect(screen.getByText(/addreport/i)).toBeInTheDocument();\n });\n\n it(\"list all reports\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const horizontalTiles = screen.getAllByTestId(\"horizontal-tile\");\n // TODO check for all descriptions and names and imodels\n expect(horizontalTiles).toHaveLength(mockedReports?.reports.length);\n\n for (const [index, horizontalTile] of horizontalTiles.entries()) {\n const reportMappingTile = within(horizontalTile);\n expect(\n reportMappingTile.getByText(\n mockedReports?.reports[index].displayName ?? \"\"\n )\n ).toBeInTheDocument();\n expect(\n reportMappingTile.getByTitle(\n mockedReports?.reports[index].description ?? \"\"\n )\n ).toBeInTheDocument();\n }\n });\n\n it(\"able to modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"remove a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n const mockedReportsOriginalLength = mockedReports.reports.length;\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n ),\n rest.delete(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockedReports.reports[0].id\n }`,\n async (_req, res, ctx) => {\n mockedReports.reports = mockedReports.reports.filter(\n (report) => report.id !== mockedReports.reports[0].id\n );\n return res(ctx.delay(100), ctx.status(204));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const removeButton = screen.getByRole(\"menuitem\", { name: /remove/i });\n await user.click(removeButton);\n // Delete modal dialog should appear\n expect(screen.getByRole(\"dialog\")).toBeInTheDocument();\n\n const deleteButton = screen.getByRole(\"button\", {\n name: /delete/i,\n });\n\n await user.click(deleteButton);\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/rcw-loading-delete/i)\n );\n await waitForElementToBeRemoved(() => screen.getByRole(\"dialog\"));\n\n // Should be one less report\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(\n mockedReportsOriginalLength - 1\n );\n });\n\n it(\"search for a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const searchButton = within(screen.getByTestId(/rcw-search-bar/i)).getByRole(\n \"button\"\n );\n await user.click(searchButton);\n const searchInput = screen.getByRole(\"textbox\", {\n name: /search\\-textbox/i,\n });\n\n // Be an exact match on display name.\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].displayName\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n\n // Be an exact match on description.\n await userEvent.clear(searchInput);\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].description ?? \"\"\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n });\n\n it(\"modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n // Modify report should appear\n expect(screen.getByText(/modifyreport/i)).toBeInTheDocument();\n });\n\n it(\"click a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const reportName = screen.getByText(\n mockedReports.reports[0].displayName\n );\n await user.click(reportName);\n expect(screen.getByText(/MockReportMappings/i)).toBeInTheDocument();\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"Reports.test.js","sourceRoot":"","sources":["../../../src/test/Reports.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport {\n render,\n screen,\n waitForElementToBeRemoved,\n within,\n} from \"../test/test-utils\";\nimport { Reports } from \"../widget/components/Reports\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { rest } from \"msw\";\nimport { setupServer } from \"msw/node\";\nimport faker from \"@faker-js/faker\";\nimport type { ReportCollection } from \"@itwin/insights-client\";\nimport userEvent from \"@testing-library/user-event\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\n\nconst reportsFactory = (): ReportCollection => ({\n reports: Array.from(\n { length: faker.datatype.number({ min: 3, max: 5 }) },\n (_, index) => ({\n id: `${faker.datatype.uuid()}`,\n displayName: `mOcKRePoRT${index}`,\n description: `mOcKRePoRTDeScRiPtIoN${index}`,\n deleted: false,\n _links: {\n project: {\n href: \"\",\n },\n },\n })\n ),\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n});\n\nconst server = setupServer();\n\nbeforeAll(async () => {\n const localization = new EmptyLocalization();\n await ReportsConfigWidget.initialize(localization);\n server.listen();\n});\n\nafterAll(() => {\n server.close();\n});\n\nafterEach(() => server.resetHandlers());\n\ndescribe(\"Reports View\", () => {\n it(\"call to action button should be clickable with no reports\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const onClickAddMock = jest.fn();\n\n const { user } = render(<Reports onClickAddReport={onClickAddMock} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const ctaButton = screen.getByRole(\"button\", {\n name: /createonereportcta/i,\n });\n await user.click(ctaButton);\n expect(onClickAddMock).toBeCalled();\n });\n\n it(\"be able to add new report\", async () => {\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(\n ctx.delay(500),\n ctx.status(200),\n ctx.json({ reports: [] })\n );\n }\n )\n );\n\n const onClickAddMock = jest.fn();\n const { user } = render(<Reports onClickAddReport={onClickAddMock} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const newButton = screen.getByRole(\"button\", {\n name: /new/i,\n });\n await user.click(newButton);\n expect(onClickAddMock).toBeCalled();\n });\n\n it(\"list all reports\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n const horizontalTiles = screen.getAllByTestId(\"horizontal-tile\");\n // TODO check for all descriptions and names and imodels\n expect(horizontalTiles).toHaveLength(mockedReports?.reports.length);\n\n for (const [index, horizontalTile] of horizontalTiles.entries()) {\n const reportMappingTile = within(horizontalTile);\n expect(\n reportMappingTile.getByText(\n mockedReports?.reports[index].displayName ?? \"\"\n )\n ).toBeInTheDocument();\n expect(\n reportMappingTile.getByTitle(\n mockedReports?.reports[index].description ?? \"\"\n )\n ).toBeInTheDocument();\n }\n });\n\n it(\"able to modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(500), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n const onClickModifyMock = jest.fn();\n const { user } = render(<Reports onClickReportModify={onClickModifyMock} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n\n expect(onClickModifyMock).toBeCalled();\n });\n\n it(\"remove a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n const mockedReportsOriginalLength = mockedReports.reports.length;\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n ),\n rest.delete(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockedReports.reports[0].id\n }`,\n async (_req, res, ctx) => {\n mockedReports.reports = mockedReports.reports.filter(\n (report) => report.id !== mockedReports.reports[0].id\n );\n return res(ctx.delay(100), ctx.status(204));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const removeButton = screen.getByRole(\"menuitem\", { name: /remove/i });\n await user.click(removeButton);\n // Delete modal dialog should appear\n expect(screen.getByRole(\"dialog\")).toBeInTheDocument();\n\n const deleteButton = screen.getByRole(\"button\", {\n name: /delete/i,\n });\n\n await user.click(deleteButton);\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/rcw-loading-delete/i)\n );\n await waitForElementToBeRemoved(() => screen.getByRole(\"dialog\"));\n\n // Should be one less report\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(\n mockedReportsOriginalLength - 1\n );\n });\n\n it(\"search for a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n\n const { user } = render(<Reports />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const searchButton = screen.getByTestId(/rcw-search-button/i);\n\n await user.click(searchButton);\n const searchInput = screen.getByRole(\"textbox\", {\n name: /search\\-textbox/i,\n });\n\n // Be an exact match on display name.\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].displayName\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n\n // Be an exact match on description.\n await userEvent.clear(searchInput);\n await userEvent.type(\n searchInput,\n mockedReports.reports[0].description ?? \"\"\n );\n expect(screen.getAllByTestId(\"horizontal-tile\")).toHaveLength(1);\n expect(\n screen.getByText(mockedReports.reports[0].displayName)\n ).toBeInTheDocument();\n });\n\n it(\"modify a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n const onClickModifyMock = jest.fn();\n const { user } = render(<Reports onClickReportModify={onClickModifyMock} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const firstMenuDropdown = within(\n screen.getAllByTestId(/tile-action-button/i)[0]\n ).getByRole(\"button\");\n await user.click(firstMenuDropdown);\n const modifyButton = screen.getByRole(\"menuitem\", { name: /modify/i });\n await user.click(modifyButton);\n expect(onClickModifyMock).toBeCalled();\n });\n\n it(\"click a report\", async () => {\n const mockedReports: ReportCollection = reportsFactory();\n server.use(\n rest.get(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(200), ctx.status(200), ctx.json(mockedReports));\n }\n )\n );\n const onClickTitleMock = jest.fn();\n const { user } = render(<Reports onClickReportTitle={onClickTitleMock} />);\n\n await waitForElementToBeRemoved(() => screen.getByText(/loading/i));\n\n const reportName = screen.getByText(\n mockedReports.reports[0].displayName\n );\n await user.click(reportName);\n expect(onClickTitleMock).toBeCalled();\n });\n});\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import type {
|
|
3
|
-
import type { IModelConnection } from "@itwin/core-frontend";
|
|
2
|
+
import type { ReportsConfigContextProps } from "../widget/components/ReportsConfigContext";
|
|
4
3
|
export declare const mockAccessToken: () => Promise<string>;
|
|
5
|
-
declare
|
|
4
|
+
export declare const mockITwinId: string;
|
|
5
|
+
declare function render(ui: React.ReactElement, contextProps?: Partial<ReportsConfigContextProps>, { ...options }?: {}): {
|
|
6
6
|
container: HTMLElement;
|
|
7
7
|
baseElement: HTMLElement;
|
|
8
8
|
debug: (baseElement?: Element | DocumentFragment | (Element | DocumentFragment)[] | undefined, maxLength?: number | undefined, options?: any) => void;
|
|
@@ -61,9 +61,4 @@ declare function render(ui: React.ReactElement, { ...options }?: {}): {
|
|
|
61
61
|
};
|
|
62
62
|
export * from "@testing-library/react";
|
|
63
63
|
export { render };
|
|
64
|
-
export declare class TestUtils {
|
|
65
|
-
static createAppStore(): Store;
|
|
66
|
-
static initializeUiFramework(_?: IModelConnection): Promise<void>;
|
|
67
|
-
static terminateUiFramework(): void;
|
|
68
|
-
}
|
|
69
64
|
//# sourceMappingURL=test-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAG3F,eAAO,MAAM,eAAe,uBAAgC,CAAC;AAK7D,eAAO,MAAM,WAAW,EAAE,MAAsB,CAAC;AAEjD,iBAAS,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7G;AAED,cAAc,wBAAwB,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -25,26 +25,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
25
25
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.
|
|
28
|
+
exports.render = exports.mockITwinId = exports.mockAccessToken = void 0;
|
|
29
29
|
/*---------------------------------------------------------------------------------------------
|
|
30
30
|
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
31
31
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
const React = __importStar(require("react"));
|
|
34
34
|
const react_1 = require("@testing-library/react");
|
|
35
|
-
const ReportsApiConfigContext_1 = require("../widget/context/ReportsApiConfigContext");
|
|
36
|
-
const redux_1 = require("redux");
|
|
37
|
-
const appui_react_1 = require("@itwin/appui-react");
|
|
38
|
-
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
39
35
|
const user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
40
|
-
const
|
|
36
|
+
const ReportsConfigContext_1 = require("../widget/components/ReportsConfigContext");
|
|
41
37
|
const mockAccessToken = async () => "Bearer eyJhbGci";
|
|
42
38
|
exports.mockAccessToken = mockAccessToken;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
exports.mockITwinId = "mockiTwinId";
|
|
40
|
+
function render(ui, contextProps, { ...options } = {}) {
|
|
41
|
+
const Wrapper = ({ children }) => {
|
|
42
|
+
var _a;
|
|
43
|
+
return (React.createElement(ReportsConfigContext_1.ReportsConfigContext, { getAccessToken: exports.mockAccessToken, iTwinId: (_a = contextProps === null || contextProps === void 0 ? void 0 : contextProps.iTwinId) !== null && _a !== void 0 ? _a : exports.mockITwinId, ...contextProps }, children));
|
|
44
|
+
};
|
|
48
45
|
return {
|
|
49
46
|
user: user_event_1.default.setup(),
|
|
50
47
|
...react_1.render(ui, { wrapper: Wrapper, ...options }),
|
|
@@ -52,26 +49,4 @@ function render(ui, { ...options } = {}) {
|
|
|
52
49
|
}
|
|
53
50
|
exports.render = render;
|
|
54
51
|
__exportStar(require("@testing-library/react"), exports);
|
|
55
|
-
class TestUtils {
|
|
56
|
-
static createAppStore() {
|
|
57
|
-
const rootReducer = redux_1.combineReducers({
|
|
58
|
-
frameworkState: appui_react_1.FrameworkReducer,
|
|
59
|
-
});
|
|
60
|
-
return redux_1.createStore(rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ &&
|
|
61
|
-
window.__REDUX_DEVTOOLS_EXTENSION__());
|
|
62
|
-
}
|
|
63
|
-
static async initializeUiFramework(_) {
|
|
64
|
-
const store = this.createAppStore();
|
|
65
|
-
await appui_react_1.UiFramework.initialize(store);
|
|
66
|
-
// Set the iModelConnection in the Redux store
|
|
67
|
-
// Can not get it to function as intended. Store does not update with the iModel connection
|
|
68
|
-
// if (imodel)
|
|
69
|
-
// UiFramework.setIModelConnection(imodel);
|
|
70
|
-
appui_react_1.SyncUiEventDispatcher.setTimeoutPeriod(0); // disables non-immediate event processing.
|
|
71
|
-
}
|
|
72
|
-
static terminateUiFramework() {
|
|
73
|
-
ReportsConfigWidget_1.ReportsConfigWidget.terminate();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.TestUtils = TestUtils;
|
|
77
52
|
//# sourceMappingURL=test-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,kDAA6D;AAC7D,
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../../src/test/test-utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,6CAA+B;AAC/B,kDAA6D;AAC7D,6EAAoD;AAEpD,oFAAiF;AAE1E,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC;AAAhD,QAAA,eAAe,mBAAiC;AAKhD,QAAA,WAAW,GAAW,aAAa,CAAC;AAEjD,SAAS,MAAM,CAAC,EAAsB,EAAE,YAAiD,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;IAC5G,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,EAAE;;QAAC,OAAA,CAC9C,oBAAC,2CAAoB,IACnB,cAAc,EAAE,uBAAe,EAC/B,OAAO,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,mCAAI,mBAAW,KACzC,YAAY,IAEf,QAAQ,CACY,CACxB,CAAA;KAAA,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,oBAAS,CAAC,KAAK,EAAE;QACvB,GAAG,cAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;KACnD,CAAC;AACJ,CAAC;AAIQ,wBAAM;AAFf,yDAAuC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport { render as rtlRender } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport type { ReportsConfigContextProps } from \"../widget/components/ReportsConfigContext\";\nimport { ReportsConfigContext } from \"../widget/components/ReportsConfigContext\";\n\nexport const mockAccessToken = async () => \"Bearer eyJhbGci\";\n\ninterface WrapperProps {\n children?: React.ReactNode;\n}\nexport const mockITwinId: string = \"mockiTwinId\";\n\nfunction render(ui: React.ReactElement, contextProps?: Partial<ReportsConfigContextProps>, { ...options } = {}) {\n const Wrapper = ({ children }: WrapperProps) => (\n <ReportsConfigContext\n getAccessToken={mockAccessToken}\n iTwinId={contextProps?.iTwinId ?? mockITwinId}\n {...contextProps}\n >\n {children}\n </ReportsConfigContext>\n );\n\n return {\n user: userEvent.setup(),\n ...rtlRender(ui, { wrapper: Wrapper, ...options }),\n };\n}\n\nexport * from \"@testing-library/react\";\n// override React Testing Library's render with our own\nexport { render };\n"]}
|