From c279a3f784ec65586f213b6634d4ef7b312854c8 Mon Sep 17 00:00:00 2001 From: Buddha Wang Date: Fri, 1 Jan 2021 20:38:06 +0800 Subject: [PATCH] Support supervised table labeling/training/prediction with new data schema. (#828) * added new icons * feat: support table tag creation * feat: support labeling * fix: zoomIn keyboar shortcut for macOS * fix: appId * fix: icons scr url (#593) * Alex krasn/rtl refactor to functional components (#594) * refactor to funct componenet - tableTagConfig.tsx * tagInputItemLabel.tsx- refactor to functional component * fix format error detected by tslint * support dropdown options (#603) * support dropdown options * add format filter on cell type choice * reset format on type change * add default theme to dropdowns * refactor: introduce and lift state of table body * Alex krasn/rtl create table view styles (#620) * styles (resize pane WIP) * styles * enable feature (#621) * Alex krasn/rtl support validation of user input on config table (#611) * -merge with changes * feat: enable user input validation * add strings * fix wording * - on save show only generic error message * custom error message for textfield * reset type and format of rows/columnst on save + refactor * refactor: support interfaces and lift state for labeling * feat: persist table labeling * feat: enable deleting headers (#627) * feat: table view styles (#629) * feat: table view styles * add styles for 'cells' * feat: table preview (#630) * Alex krasn/rtl eanble reordering of headers (#631) * enable reordering * fix checkmark and addButton styles * pipe line test fix * styles fix * fix resize pane width * fix: allow deleting and reassigning of table regions * feat: add table label description * fix: support selecting regions without opening table labeling * fix: react unique keys errors * fix: selection behaviour + refactor * disable move btns when a selection reached list's edges * disable delete btns when it's just one row/col * makes inputs placeholder less visible * support large tables in tableConfig + support resize pane (#634) * support large tables in tableConfig + support resize pane * cleanup * support large tables in tableLabeling * fix: buttons container nesting * fix: setup initial container width, and setup min and max headers width * add reconfigure btn to tableLabeling.tsx + some styling * add HOW TO label the table * add strings to tableLabeling.tsx * disable "table" type as an option for headers type * fix: spelling * feat: not allow tag type change if it is tableTag * disable tagtype and format from table tag dropdown submenu * delete table type options for all other tags (not table) * fix: support reconfigure button * fix: scroll unnecessary scrollbar in tableLabeling * refactor: rename + types * support row dynamic table in tableTagConfig * support table name in tableTagLabeling.tsx * support view of row dynamic tables in tableTagLabeling.tsx table view * add reconfig button to tag menu items * add table tag color bar under table name in table labeling view * add "Add row" btn for labeling row dynamic tables * fix: wording and strings for Confirm message on reconfigure table * fix: trim all inputted names during config validation * fix: on resize right splitpane to width less than min allowed * support rowDynamic table in tableLabeling table view * fix: table labeling view styles * add row indices for tableLabel table view * add indices in tableConfig + support some reconfig func * fix: dont show "Row #" for fixed tables in tableTagLabeling.tsx * fix: restore right pane size for basic input mode * feat: support row dynamic labeling * fix: tableName validation erorr * fix: show one row for rowDynmic in preview * refactor: validateInputAndSave * refactor: support adding rows for row dynamic tables * refactor: support row dynamic labeling * fix: trim rows * merge master into RTL branch (#647) * merge master into RTL branch * fix an API icon * add stings to tableConfig * fix: typo in tableTagToAdd * tableLabeling: refactor, styles, strings * tableLabeling: add spanish strings * refactor: optimize inputs validation * fix: TableElements enum spelling * fix: use correct table format values * fix: spelling * enable reconfigure button from tag menu dropdown * refactor: remove not needed customizer * fix: conditional Enum for headersFormatAndTypeOptions * feat: support reconfigure table map * feat: cross out columns when renaming * fix: scrollbar visibilty + style adjustments * fix: scroll issue on open * feat: support tracking changed and deleted headers * autofocus on last added input * fix: delete extra colon * fix: class name for renamed header + forgoten variable * enable reconfigure [cancel] button * styles for renamed headers * display original col/row name on reconfigure * fix: delete autofocus on btns * fix: revert accidentally deleted ref + whitespaces * display table name in preview * fix: support deleted headers and style change * feat: support reconfig deleting fields * feat: support deleting tables * fix margin + and Lunk styles * restore deleted row/col: Link => ActionButton * fix: splitpane and labelng/config styles * add: tag color for reconfigure * fix: tableName color for config * feat: support saving reconfigure * analyze results * fix: delete red table border * fix reconfigure name validation and toast message * fix on reconfigure projectAction assets update * add higlight table results in analyze * feat: redraw canvas with changed regions * fix: add reconfigure support for tag name change * handle long row/col names without spaces * temp fix for unique column names in analyzeOutput.json * feat: handle long col and row names in tableTagConfig * feat: enable drawn region icon and selection marks * feat: add progress to table reconfigure * feat: support rowKeys and columnKeys for analysis * feat: support tracking column and row count * fix: reconfigure progess spinner styles * feat: highlight table cell bounding box on mouse enter * fix: reconfigure state on close() * fix: commnet out testing config in predictPage * fix: check for rowKeys in updatedAssetMetadata * fix: on reconfigure when adding columns (rdt) * new row/col headers icons * fix: update asset after reconfigure * fix: check if theres tags * fix: update document bounding boxes after reconfigure * fix: handle region reset after reconfigure * refactor: hardcode to preview.3 api * feat: support rename of table tag * merge with master as of 11/16 * feat: enable table support for labeledTags filter * fix: table labeling issues * fix issue of "Trained label doesn't show as manually labeled after revisioni" (cherry picked from commit d17e8a0c7ab3c421a9868f2e0eed684672f9b7ea) * fix: display analyze results * Merge branch 'stew-ro/support-table-labeling' of https://github.com/microsoft/OCR-Form-Tools into rtl_merge_with_master * support new schema for prediction * support highlighting of tableTag and tableCell in editor page * display table in tag view and support highlight after schema change * feat: support row/col header selectionMark logic * display column header after schema change in prediction results * handle empty rows after schema change predict * use fieldType Object and Array for new schema * write new schema to field.json * fix on 'definitions' undefiened on reconfigure * support writing to field.json and removing rowKeys and columnKey logic * fix: remove label type when invalid * fix: use default rows and columns if field is null * feat: support label files for new schema * support encoding * fix decoding and encoding logic * fix remove label with empy value * update taginput toolbar * change row dynamic starting index to zero * support reconfigure after schema change * support drawn region logic for table labeling * support encoding for refactoring table * support rename and delete tag * support empty table for analysis * fix: support empty tables for analysis * Fix pipeline build failures. Co-authored-by: alex-krasn Co-authored-by: stew-ro Co-authored-by: alex-krasn <64093224+alex-krasn@users.noreply.github.com> Co-authored-by: Alex Chen Co-authored-by: Starain chen Co-authored-by: Alexander Krasnorutskiy --- CHANGELOG.md | 746 +++++------ package.json | 3 + src/assets/sass/fabric-icons-inline.scss | 24 +- src/common/constants.ts | 2 + src/common/localization/en-us.ts | 50 +- src/common/localization/es-cl.ts | 39 +- src/common/mockFactory.ts | 1 + src/common/strings.ts | 76 +- src/common/themes.ts | 6 +- src/common/utils.ts | 77 +- src/config/fabric-icons.json | 46 +- src/models/applicationState.ts | 101 +- src/providers/storage/azureBlobStorage.ts | 2 +- .../components/common/confirm/confirm.scss | 9 + .../components/common/confirm/confirm.tsx | 39 +- .../documentFilePicker.scss | 1 + .../components/common/imageMap/imageMap.tsx | 6 +- .../common/tagInput/tableTagConfig.scss | 219 ++++ .../common/tagInput/tableTagConfig.tsx | 1153 +++++++++++++++++ .../common/tagInput/tableTagLabeling.scss | 91 ++ .../common/tagInput/tableTagLabeling.tsx | 171 +++ .../components/common/tagInput/tagInput.scss | 14 + .../common/tagInput/tagInput.test.tsx | 10 + .../components/common/tagInput/tagInput.tsx | 402 +++--- .../common/tagInput/tagInputItem.test.tsx | 2 + .../common/tagInput/tagInputItem.tsx | 140 +- .../common/tagInput/tagInputItemLabel.tsx | 64 +- .../common/tagInput/tagInputToolbar.tsx | 22 +- .../components/pages/editorPage/canvas.scss | 4 +- .../pages/editorPage/canvas.test.tsx | 1 + .../components/pages/editorPage/canvas.tsx | 386 +++++- .../pages/editorPage/canvasCommandBar.tsx | 18 +- .../pages/editorPage/editorPage.test.tsx | 1 - .../pages/editorPage/editorPage.tsx | 427 +++++- .../prebuiltPredict/layoutPredictPage.tsx | 1 + .../pages/prebuiltPredict/tableHelper.ts | 4 +- .../components/pages/predict/predictPage.scss | 60 +- .../components/pages/predict/predictPage.tsx | 323 ++++- .../pages/predict/predictResult.tsx | 131 +- .../projectSettings/projectSettingsPage.tsx | 1 + .../components/pages/train/trainPage.tsx | 1 - src/redux/actions/projectActions.test.ts | 5 +- src/redux/actions/projectActions.ts | 100 +- src/redux/reducers/currentProjectReducer.ts | 3 +- src/registerIcons.ts | 11 + src/services/assetService.test.ts | 5 +- src/services/assetService.ts | 311 +++-- src/services/projectService.ts | 137 +- yarn.lock | 14 +- 49 files changed, 4464 insertions(+), 996 deletions(-) create mode 100644 src/react/components/common/confirm/confirm.scss create mode 100644 src/react/components/common/tagInput/tableTagConfig.scss create mode 100644 src/react/components/common/tagInput/tableTagConfig.tsx create mode 100644 src/react/components/common/tagInput/tableTagLabeling.scss create mode 100644 src/react/components/common/tagInput/tableTagLabeling.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index 95edf2bb..17148a06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,373 +1,373 @@ -# FoTT Changelog -## What's new in Form Recognizer? -Click [here](https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/whats-new) to see what's new in Form Recognizer. - -## Released conatiner's currently referenced commit -2.1-Preview's released container image, tracked by the `latest-preview` image tag in our [docker hub repository](https://hub.docker.com/_/microsoft-azure-cognitive-services-custom-form-labeltool), currently references **2.1-preview.2-b6b9a2f (12-10-2020)** - -## Commit history -### 2.1-preview.2-b6b9a2f (12-10-2020) -* update appVersion to 2.1.2 ([#808](https://github.com/microsoft/OCR-Form-Tools/commit/b6b9a2f131485d08541a1e85f6af59ebfbeca773)) -* add locale in prebuiltPredictPage ([#772](https://github.com/microsoft/OCR-Form-Tools/commit/06d9c16a7c1fe64a95d835878dcb8dabb8c7e485)) ([#776](https://github.com/microsoft/OCR-Form-Tools/commit/06d9c16a7c1fe64a95d835878dcb8dabb8c7e485)) -* Stew ro/cherry pick 347e21e 2b6ead7 ([#766](https://github.com/microsoft/OCR-Form-Tools/commit/ca59cee26587e1aee49507abd75c0683d67f541f)) -* Cherry pick 34ce14d a7ccb34 ([#763](https://github.com/microsoft/OCR-Form-Tools/commit/244c23df700791794990eb6f7e196bcf9ff9c844)) -* Stew ro/cherry pick ab5a8a8 abfffbb ([#760](https://github.com/microsoft/OCR-Form-Tools/commit/93b7a2d4d7688cda4baa4cfd704b2666df524174)) -* refactor: disable api version selection ([#755](https://github.com/microsoft/OCR-Form-Tools/commit/be1f18db0b7073dad106f443f343aa221dea7fc6)) -* refactor: disable draw region button ([#756](https://github.com/microsoft/OCR-Form-Tools/commit/8816a85761a795f3f0b34b87360236cadd80a735)) -* feat: support null text values in analyze results ([#744](https://github.com/microsoft/OCR-Form-Tools/commit/0ddb7f1275d6f195c2af9f0b7053987e01a5d677)) -* feat: support rowspan and column span for layout tables ([#754](https://github.com/microsoft/OCR-Form-Tools/commit/6994ac929146e25370d1461e4e502773de3d5503)) -* Update changelog ([#750](https://github.com/microsoft/OCR-Form-Tools/commit/acba3966ce960e474dfd3d97510b07c108e7b39f)) -* check whether the label data is null ([#753](https://github.com/microsoft/OCR-Form-Tools/commit/f6ef41ac1500e52f3714eda6e99187e016e1b223)) -* fix issue of 773 ([#740](https://github.com/microsoft/OCR-Form-Tools/commit/9d35e79393cdb0de678e9ec6b850daf5a4df5c96)) - -### 2.1-preview.1-2e50498 (11-09-2020) -* fix: enable api version selection ([#736](https://github.com/microsoft/OCR-Form-Tools/commit/2e5049883bd1550ba80210edca7db4233d7a15fa)) -* fix: labeling doesn't work via shortcuts on the new project or empty tags ([#677](https://github.com/microsoft/OCR-Form-Tools/commit/f11291940b776ceb8ba7708e6f58dc2572f7b01b)) -* fix: remove setting project state in project form on change ([#732](https://github.com/microsoft/OCR-Form-Tools/commit/25eb59bfa85b755cd877b02ffda71d0cec70a106)) -* handle training state logical ([#731](https://github.com/microsoft/OCR-Form-Tools/commit/569adf161ad89106ab1fbf51429841c5955e0e4b)) -* fix issue of "After running Layout an all documents FoTT sometimes does not ends" ([#723](https://github.com/microsoft/OCR-Form-Tools/commit/6203e2cd814c95e2bef165f3fb518a566166c26d)) -* set includeTextDetails=true in prebuilt predict ([#722](https://github.com/microsoft/OCR-Form-Tools/commit/ba04cebb63a5b05a369ba954a99dfdc7c9bb9b41)) -* fix issue of "Auto-labeling while switching assets in asset preview causes an error" ([#721](https://github.com/microsoft/OCR-Form-Tools/commit/59fe4e2778a644335da9766fd1382d56086220c1)) -* feat: support api version config ([#717](https://github.com/microsoft/OCR-Form-Tools/commit/c81b2323aaa2b26b0bc0f7922de1e12445fbb627)) -* update homepage style ([#724](https://github.com/microsoft/OCR-Form-Tools/commit/fc769f41c169083098f9250c9ce18ca4881cc336)) -* issuefix: update getBoundingBox ([#730](https://github.com/microsoft/OCR-Form-Tools/commit/f0cb5db337364b2f0355928616d1f7d9637a454a)) -* clone with lodash cloneDeep ([#728](https://github.com/microsoft/OCR-Form-Tools/commit/d6bca5fcf2262a467ede781916a01f50d805b30f)) -* remain auto label state while no label data ([#727](https://github.com/microsoft/OCR-Form-Tools/commit/a79d556a3935e387b0798ecfda8de9c8b1538250)) -* deep copy asset metadata ([#725](https://github.com/microsoft/OCR-Form-Tools/commit/ba8c1100e9adf517e35ec50fd513383d9e84d630)) -* Yongbing chen/receipt predicting ([#626](https://github.com/microsoft/OCR-Form-Tools/commit/e638cd8e3be8926e966a5afc86fb53ac0f092977)) - -### 2.1-preview.1-32cfaea (11-06-2020) -* Starain chen/clean autolabel data while training ([#712](https://github.com/microsoft/OCR-Form-Tools/commit/32cfaea023e96c8aa00560a3f30134683ee25757)) -* fix issue of deleting tag ([#703](https://github.com/microsoft/OCR-Form-Tools/commit/282d55700ea9fdf4cac2b0f20901e8ff6115819e)) - -### 2.1-preview.1-c7ed086 (11-04-2020) -* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/c7ed08612876af8bb619a080f6740fceabb4e67c)) -* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/d696b8a25438590fb44c5159b3142b17178f25d2)) -* fix: use constant if no api version specified ([#684](https://github.com/microsoft/OCR-Form-Tools/commit/8ccdab83f079d976f6521bc08c50d917900483c0)) -* auto labeled tag design & replacing between text with draw region ([#670](https://github.com/microsoft/OCR-Form-Tools/commit/757e0dd85b3c69c6642674e48e9d3549807fecbd)) - -### 2.1-preview.1-aab6938 (11-03-2020) -* Fix the issue that git-commit-info.txt could be override ([#683](https://github.com/microsoft/OCR-Form-Tools/commit/aab69380a8e1f7f113011a7c6b6ed406c4329555)) -* fix: use existing git hash when not in git repository ([#682](https://github.com/microsoft/OCR-Form-Tools/commit/586fbb0ce51c27ae42ca857a372e8e8d5dea21d1)) -* Stew ro/use api version selected in project settings ([#678](https://github.com/microsoft/OCR-Form-Tools/commit/bed69a3f64b0da7590ca3c54e8de369844c6bcd9)) -* refactor: change drawn region icon ([#675](https://github.com/microsoft/OCR-Form-Tools/commit/5614da2681bb8fadf9d3db3ff95aa62362d00175)) - -### 2.1-preview.1-3485d33 (10-30-2020) -* feat: add bmp support for analyze page ([#672](https://github.com/microsoft/OCR-Form-Tools/commit/3485d33eca96321cf667c5c8eba22cc60af42e23)) -* Alex krasn/bugfix on hotkeys when canvas not loaded yet ([#664](https://github.com/microsoft/OCR-Form-Tools/commit/b0404c6276f8fe55292c929e2ca431ed31ef6442)) - -### 2.1-preview.1-7166cda (10-29-2020) -* fix: use node to update status bar with latest git commit ([#671](https://github.com/microsoft/OCR-Form-Tools/commit/7166cdae5763a93feee52842af8e2246fedbf818)) -* change OCR to Layout in UI (Actions) ([#666](https://github.com/microsoft/OCR-Form-Tools/commit/ac604b6bd43eb4c3ba8929a97b308c833d0e6c13)) -* Yongbing chen/hitl update notify message ([#651](https://github.com/microsoft/OCR-Form-Tools/commit/0fa559a4b28c6648eaa17ec047ebb9caabbdc9c7)) - -### 2.1-preview.1-6d775ae (10-27-2020) -* Yongbing chen/ui adjustment with designers feedback ([#662](https://github.com/microsoft/OCR-Form-Tools/commit/6d775ae8d4495ca31d110e500b86d3c0eed6a954)) - -### 2.1-preview.1-c86b6de (10-23-2020) -* Fix the issue that git-commit-info.txt could be override ([#668](https://github.com/microsoft/OCR-Form-Tools/commit/c86b6de35ecd5d004dfb64f8f857d06f0557a00d)) -* Xinxl/fix hash ([#667](https://github.com/microsoft/OCR-Form-Tools/commit/cb27cbd74ff890dc7e13865d89ca5e16b0807fbb)) - -### 2.1-preview.1-0aae169 (10-22-2020) -* Alex krasn/fix confidence level bar styles ([#657](https://github.com/microsoft/OCR-Form-Tools/commit/0aae1690351f3de27114e6cbebd2c077be8e9016)) - -### 2.1-preview.1-d644459 (10-21-2020) -* refactor: change error styling and wording for project sharing ([#653](https://github.com/microsoft/OCR-Form-Tools/commit/d644459e4c9b1f82b1ed2d5b537960b0f16184da)) -* fix: sort models after loading next page in model compose ([#659](https://github.com/microsoft/OCR-Form-Tools/commit/9818d6301ef613155951381598f9ad4cf8ff6e3c)) -* Alex krasn/serialize javascript vulnerability ([#612](https://github.com/microsoft/OCR-Form-Tools/commit/66b03303b1325634371ebdb3923acaa6722be89f)) -* update asset labelingState when load local project ([#660](https://github.com/microsoft/OCR-Form-Tools/commit/1aa3daaeeb1c8a4773e7b6236fc6462335e410f9)) - -### 2.1-preview.1-28c54fc (10-20-2020) -* fix: check for local connections ([#654](https://github.com/microsoft/OCR-Form-Tools/commit/28c54fcc31defe1c4ebcf685675768b99c8e00c8)) -* get last commit hash code in current branch and show on status bar ([#642](https://github.com/microsoft/OCR-Form-Tools/commit/88c547995d31f945177da70141f997e441b3259c)) -* new feature: tags in current page ([#640](https://github.com/microsoft/OCR-Form-Tools/commit/af5396fe8e63b88b90d16953e17ce2006afe782e)) - -### 2.1-preview.1-6c1ee2b (10-16-2020) -* adjust editor view offset ([#646](https://github.com/microsoft/OCR-Form-Tools/commit/6c1ee2b6b4f1bcf28b1c9081b21f0a8783518c80)) - -### 2.1-preview.1-b92e4b3 (10-15-2020) -* reword asset states ([#644](https://github.com/microsoft/OCR-Form-Tools/commit/b92e4b3d5a786a852c319c05697eea331c147cee)) - -### 2.1-preview.1-4544e52 (10-14-2020) -* feat: support apiVersion selection from project settings ([#641](https://github.com/microsoft/OCR-Form-Tools/commit/4544e5255cf2356a4ddf353f7a63994c1a0865da)) - -### 2.1-preview.1-94f12bb (10-13-2020) -* new feature: highlight current tag ([#628](https://github.com/microsoft/OCR-Form-Tools/commit/94f12bb4e925a86fdfba8e25d8b0346169daea1e)) -* new feature: human in the loop auto labeling ([#571](https://github.com/microsoft/OCR-Form-Tools/commit/c1f227daa3decd52320f58d151755b206280cedd)) - -### 2.1-preview.1-7d1f871 (10-10-2020) -* Update CHANGELOG.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/7d1f87193b3917f2140ab9bcce04c64e7aceb823)) - -### 2.1-preview.1-1f33130 (10-09-2020) -* fix: support image map interactions for container releases([#639](https://github.com/microsoft/OCR-Form-Tools/commit/e015973aee152b8a8b22fc2fe32ce80bdd2b46ea)) - -### 2.1-preview.1-6d4e93b (10-07-2020) -* Fix: use file type library for mime type validation ([#636](https://github.com/microsoft/OCR-Form-Tools/commit/6d4e93bca8a4e3d677c765ed5596bde502766e2e)) - -### 2.1-preview.1-355ca0b (09-30-2020) -* feat: add spinner in saving project, can avoid multiple commit ([#617](https://github.com/microsoft/OCR-Form-Tools/commit/355ca0b156b2d44aafd2eaaccf2fc52385c7f5f8)) - -### 2.1-preview.1-53044f7 (09-29-2020) -* fix: refresh currentProjects when load project ([#615](https://github.com/microsoft/OCR-Form-Tools/commit/53044f72dd9c9c72557c74c00605ba05ee50205d)) -* sync related region color when tag color changed ([#598](https://github.com/microsoft/OCR-Form-Tools/commit/3044cc51a9166877bb4f01f28753171b82c04ccd)) -* feat: add current list item style ([#601](https://github.com/microsoft/OCR-Form-Tools/commit/3e503e75513e44e6a90bd013d8dd15c3096cd7e9)) -* fix: remove project from app if security token does not exist ([#468](https://github.com/microsoft/OCR-Form-Tools/commit/730e1963a06f038a4efa9750fcef4be6f15a8460)) - -### 2.1-preview.1-d859d38 (09-27-2020) -* fix ,update document state when preview (#317) ([#471](https://github.com/microsoft/OCR-Form-Tools/commit/d859d38ecc1f96b194ffa130a1840f5a7d9b1a9b)) -* refactor: change the confidence value format to percentage ([#461](https://github.com/microsoft/OCR-Form-Tools/commit/e806b4e0dfcc68e6408e2130a46a318637a482a8)) - -### 2.1-preview.1-7a3f7a7 (09-25-2020) -* security: upgrade node-forge ([#622](https://github.com/microsoft/OCR-Form-Tools/commit/7a3f7a773c8b01f443afaad89d7974a5bbb0b869)) -* fix: disable move tag and support renaming when searching ([#618](https://github.com/microsoft/OCR-Form-Tools/commit/cac1e8e6cfb2805a6540f9e80d564a0ff8be81c7)) - -### 2.1-preview.1-4163edc (09-23-2020) -* docs: add latest tag reference to changelog ([#608](https://github.com/microsoft/OCR-Form-Tools/commit/4163edc18bc65234e263703fc829d2f297953385)) -* fix: use region instead of drawnRegion for labelType in label file ([#582](https://github.com/microsoft/OCR-Form-Tools/commit/ffafc200249a1c47698fedb279b4b55cef0190ba)) -* docs: update readme with docker hub info ([#604](https://github.com/microsoft/OCR-Form-Tools/commit/63bbea076d598d0286095fa0eca48d8c9d0ed706)) -* fix: remove opening browser for yarn start ([#605](https://github.com/microsoft/OCR-Form-Tools/commit/f6c4dc3585df71d09252a28f65e835a594389118)) -* fix: update changelog updater script ([#607](https://github.com/microsoft/OCR-Form-Tools/commit/7c4848c3a72259562c0461f0e2eadfb4a660fa64)) - -### 2.1-preview.1-f2db74e (09-17-2020) -* docs: udpate changlog with docker image reference ([#590](https://github.com/microsoft/OCR-Form-Tools/commit/f2db74e322c32338eba3b2df06c01a51cfb7ebc1)) - -### 2.1-preview.1-1a6b78e (09-16-2020) -* fix: normalize folder path starting with a period ([#592](https://github.com/microsoft/OCR-Form-Tools/commit/1a6b78e054235da3188aafbe65636a8c18b439bf)) -* fix: change label folder uri title ([#588](https://github.com/microsoft/OCR-Form-Tools/commit/7e4233e568d94817e23dda5ef5513b9ee7475d11)) - -### 2.1-preview.1-6a1ced5 (09-15-2020) -* fix: initialize drag pan for analyze page ([#586](https://github.com/microsoft/OCR-Form-Tools/commit/6a1ced5a0bfb03ceba515faddbfa010ac8451460)) -* fix: zoomIn keyboar shortcut for macOS ([#581](https://github.com/microsoft/OCR-Form-Tools/commit/5afeebfee28e10e390f073990f90348c5117475f)) -* fix: appId ([#584](https://github.com/microsoft/OCR-Form-Tools/commit/e053b151441e956641ed05c29106d02358a40792)) -* fix: remove escape quote from release script ([#579](https://github.com/microsoft/OCR-Form-Tools/commit/bd5d51e8e15809b95f15bc495f7d0f91fecfc22d)) -* Stew ro/support drag pan for release ([#576](https://github.com/microsoft/OCR-Form-Tools/commit/77620eccd21d564473c81b43341f59de22339248)) - -### 2.1-preview.1-0633507 (09-14-2020) -* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/0633507aa767f996add313ced06c2365c5f240c8)) - -### 2.1-preview.1-8d2286f (09-13-2020) -* persist trainPage inputs in localStorage ([#568](https://github.com/microsoft/OCR-Form-Tools/commit/8d2286f50236e41fe5540dbb9b161ea88bbf2d7a)) - -### 2.1-preview.1-bb23e31 (09-11-2020) -* build(deps): bump node-fetch from 2.6.0 to 2.6.1 ([#575](https://github.com/microsoft/OCR-Form-Tools/commit/bb23e3199c5721338241c8c5ccc0bda104fd15f8)) -* fix: support multiple env files ([#574](https://github.com/microsoft/OCR-Form-Tools/commit/cf64a8ddde05e7e73cad37d271f5d6dfa61c5d7f)) -* fix: "Azure blob storage" error on on premise scenario ([#572](https://github.com/microsoft/OCR-Form-Tools/commit/46f0bc59f3a531c366bc2c7cec955d2cb6ed7cd6)) -* fix ([#563](https://github.com/microsoft/OCR-Form-Tools/commit/28c792e10692e3cc1f511852ffc9fdbc8dcdda8a)) - -### 2.1-preview.1-7e828ff (09-10-2020) -* fix: allow training with placeholder ([#569](https://github.com/microsoft/OCR-Form-Tools/commit/7e828ff02ff8a22b64b4b7d16787d77afb76af62)) -* docs: update changelog ([#564](https://github.com/microsoft/OCR-Form-Tools/commit/1dec72c5df3206554a1e0864b65cc769835785fd)) -* Yongbing chen/human in the loop ([#517](https://github.com/microsoft/OCR-Form-Tools/commit/be9d56481510e3033bcd705743c1ee9aeee20522)) -* fix: support project folder in project settings for local file system ([#559](https://github.com/microsoft/OCR-Form-Tools/commit/b92b73bb8076f9b9bb55dd38fcd223b7b93eaa2e)) -* feat: enable canvas rotation ([#553](https://github.com/microsoft/OCR-Form-Tools/commit/c27a110251df1fc7a595524846e20fd09c79f915)) -* fix: handle tag is undefined error ([#557](https://github.com/microsoft/OCR-Form-Tools/commit/7e4d3fbbc3a2bf925c126cd2b3f493cca48e7a62)) - -### 2.1-preview.1-193520e (09-08-2020) -* fix: accept selection of only .fott files for open local project ([#554](https://github.com/microsoft/OCR-Form-Tools/commit/193520e2c3e40b58c3612507efc2249aaf4e9d05)) -* fix: use default shared folder for label URI when training ([#551](https://github.com/microsoft/OCR-Form-Tools/commit/656de2ff07c2083affc2adf52f1a56c5a9c024b8)) -* fix: show label folder uri while training ([#539](https://github.com/microsoft/OCR-Form-Tools/commit/0ad389c06328cd6428653bb7d94d5af716e02ab7)) -* feat: add canvas command bar to analyze page with only zoom buttons ([#549](https://github.com/microsoft/OCR-Form-Tools/commit/895b52740cd1e8d61b5b021e6c0d992f44ce8052)) - - ### 2.1-preview.1-4852c84 (09-05-2020) -* fix buttons styles - makes them more visible ([#526](https://github.com/microsoft/OCR-Form-Tools/commit/4852c8429d25b5569c3335b014da5972cbcc6162)) - -### 2.1-preview.1-343ea16 (09-04-2020) -* refactor: remove array for drawn region labels ([#542](https://github.com/microsoft/OCR-Form-Tools/commit/343ea16e18199ab5098395ae8b7a164cd8bab55e)) -* fix: add key prop to region icon ([#540](https://github.com/microsoft/OCR-Form-Tools/commit/87b69093f2d35d91a2a939c46ac66ba4d22a5cb7)) - -### 2.1-preview.1-b370c9a (09-02-2020) -* fix: resize canvas on asset preview resize ([#535](https://github.com/microsoft/OCR-Form-Tools/commit/b370c9a9bcf7da416944c626f6d4fd7bd29088bb)) - -### 2.1-preview.1-de1c304 (08-31-2020) -* refactor: upgrade tsconfig es2017 to esnext ([#531](https://github.com/microsoft/OCR-Form-Tools/commit/de1c30410b860c9576108f076ec4dd8273e61a79)) - -### 2.1-preview.1-530545c (08-28-2020) -* fix: remove existing bounding boxes from document on analyze ([#523](https://github.com/microsoft/OCR-Form-Tools/commit/6a1aedfb89b0499a0f4782e16ccbd8a06887841d)) -* feat: enable download JSON of trained model ([#513](https://github.com/microsoft/OCR-Form-Tools/commits/master)) - -### 2.1-preview.1-529a0e8 (08-27-2020) -* fix: show loading indicator while loading model info ([#514](https://github.com/microsoft/OCR-Form-Tools/commit/529a0e819f4cb405e290f34d18d15c487a7bcfad)) -* docs: update telemetry disclaimer ([#521](https://github.com/microsoft/OCR-Form-Tools/pull/521)) -* fix: disable clearing of drawn regions on analyze page ([#518](https://github.com/microsoft/OCR-Form-Tools/commit/298d7c97da1278996d2ee6020d3face0785bc4eb)) - -### 2.1-preview.1-b2d9a0b (08-26-2020) -* docs: notice that telemetry is disabled ([#501](https://github.com/microsoft/OCR-Form-Tools/commit/b2d9a0b008ebf350dfcb5fe897fc5dfe0d4d5cb6)) - -### 2.1-preview.1-d9db4ee (08-24-2020) -* refactor: upgrade storage-blob to v12.1.2 ([#509](https://github.com/microsoft/OCR-Form-Tools/commit/d9db4ee027240a82feef5b54e5e406c3793d8050)) -* feat: support region labeling ([#481](https://github.com/microsoft/OCR-Form-Tools/commit/dd78ed06761a341908bdb1b09e73fd1f2868431c)) -* feat: support adding model to recent models from compose page ([#510](https://github.com/microsoft/OCR-Form-Tools/commit/65fc92b5737ceea14ff89aa78052be26835ad0ae)) - -### 2.1-preview.1-2402cba (08-17-2020) -* fix: notify error message when open project with invalid security token ([#506](https://github.com/microsoft/OCR-Form-Tools/commit/2402cbaf73eba47ad188f851227c04cd44a208d4)) - -### 2.1-preview.1-a8ef8fa (08-17-2020) -* fix: don't allow create or update connection with duplicate name ([#486](https://github.com/microsoft/OCR-Form-Tools/commit/a8ef8fab603b3d2c08c533cb5dfe67da117942a0)) - -### 2.1-preview.1-530545c (08-14-2020) -* fix: "failed to fetch()" error ([#491](https://github.com/microsoft/OCR-Form-Tools/commit/530545c7cd2b4a3ff444e9c7e1f40c68d4a7376c)) -* fix: sync layer visibility ([#497](https://github.com/microsoft/OCR-Form-Tools/commit/bea552b28acb9b652ffaedf40009d6df5a3197ef)) -* refactor: disable telemetry service ([#498](https://github.com/microsoft/OCR-Form-Tools/commit/6e3628cf174f954693380aab6ebd2dabe027ac6d)) -* fix: change share class name for adblocker chrome extension ([#492](https://github.com/microsoft/OCR-Form-Tools/commit/aa8a73afc6344f3164e79f236d5fa4bb0f64d364)) - -### 2.1-preview.1-da405b3 (08-10-2020) -* fix: restrict tag type through hot keys ([#482](https://github.com/microsoft/OCR-Form-Tools/commit/da405b354428b829e895a35a020736b1d88c153f)) -* docs: add share project description to README ([#488](https://github.com/microsoft/OCR-Form-Tools/commit/7ee215f735a84aaa30201748d19207bcc6a05580)) - -### 2.1-preview.1-29d1f93 (08-07-2020) -* fix: handle multi selection of non-compatible types with multi-selection tool ([#487](https://github.com/microsoft/OCR-Form-Tools/commit/29d1f93a290e55fdd84f8cf2ee9a914fed702beb)) - -### 2.1-preview.1-cef225f (08-06-2020) -* fix: handle undefined image map error ([#462](https://github.com/microsoft/OCR-Form-Tools/commit/cc9e9bfc8fe00bb0ed154edb791446f28060af4e)) -* fix: handle undefined image map error ([#479](https://github.com/microsoft/OCR-Form-Tools/commit/cef225f3346628e79c46e799303400965f1d3c96)) - -### 2.1-preview.1-76945df (08-05-2020) -* fix: use english for telemetry reporting ([#472](https://github.com/microsoft/OCR-Form-Tools/commit/76945df3bdf9caba3ba13f4541e17e75b9574b33)) -* fix: resolve unhandled exeptions and new message for OCR service on 400 ([#470](https://github.com/microsoft/OCR-Form-Tools/commit/76381bc659a365ead19387b933485530d2d5edc3)) -* feature: enable popup with composed model info ([#460](https://github.com/microsoft/OCR-Form-Tools/commit/c1f5d803f047e5ca0d18fea6383b3baf56d116ff)) - -### 2.1-preview.1-f4d53ce (08-03-2020) -* fix: bump elliptic from 6.5.2 to 6.5.3 ([#469](https://github.com/microsoft/OCR-Form-Tools/commit/f4d53cec967194445885bd3748096f0a3ce10715)) -* feat: add modelCompose icon and created time ([#466](https://github.com/microsoft/OCR-Form-Tools/commit/2fa32ef5f77ec7bb44bf42e9fc0a5fdf7f0330c3)) - -### 2.1-preview.1-78996ea (07-31-2020) -* refactor: relocate share button ([#464](https://github.com/microsoft/OCR-Form-Tools/commit/78996ea65616b28d7471b59f4f16f254d7d33127)) - -### 2.1-preview.1-0e1b637 (07-29-2020) -* feat: show only ready models in the list ([#459](https://github.com/microsoft/OCR-Form-Tools/commit/0e1b637003f289c56955342f44963003c1543436)) - -### 2.1-preview.1-84f8285 (07-27-2020) -* fix: show message on model composition fail ([#457](https://github.com/microsoft/OCR-Form-Tools/commit/84f82859122ff298bcfcca78e821e8bfe437bb78)) -* refactor: add background on popup table ([#446](https://github.com/microsoft/OCR-Form-Tools/commit/27f60df5617da2efba8ffdd601233e0c0f4c8e3e)) - -### 2.1-preview.1-79264e3 (07-24-2020) -* fix: handle rejection for security token not found when opening projects ([#441](https://github.com/microsoft/OCR-Form-Tools/commit/79264e3fddfb2c80b88bf8ca21df1e869082ffcf)) -* fix: show more refined error message for model not found analysis error ([#454](https://github.com/microsoft/OCR-Form-Tools/commit/1cb4133dca0092559e7524dfad8c0bf54502dc81)) -* feat: support group selection of words with drawn bounding box ([#447](https://github.com/microsoft/OCR-Form-Tools/commit/b4332a926b1925024a33731a90d303c0b171935b)) -* feat: add apiVersion to telemetry ([#448](https://github.com/microsoft/OCR-Form-Tools/commit/55be5427e4a2f9c8cf393d446049527c55f841d4)) -* fix: margin for filenames in asset preview ([#451](https://github.com/microsoft/OCR-Form-Tools/commit/fe8258f9c7ceba663a66708b19bc0e6556e777ad)) -* docs: add telemetry disclaimer to readme ([#449](https://github.com/microsoft/OCR-Form-Tools/commit/87356a1cf6678bb9494e83178bf6282ca366921f)) - -### 2.1-preview.1-9b5b99d (07-23-2020) -* docs: add get-sas.png (https://github.com/microsoft/OCR-Form-Tools/commit/9b5b99d5468661481ae8165593d5a74471366429) -* doc: add a screenshot of getting SAS token (https://github.com/microsoft/OCR-Form-Tools/commit/87b1062125ed106ff73c036e33f1bf7a5f2c3def) -* fix: handle undefined error for pdf asset preview memory cleaning ([#442](https://github.com/microsoft/OCR-Form-Tools/commit/9b5b99d5468661481ae8165593d5a74471366429)) -* fix: remove duplicate models in model composed model list ([#439](https://github.com/microsoft/OCR-Form-Tools/commit/7fcc9ccfdb6634326ddd6cbfe99b423300b94131)) -* feat: enable internal telemetry ([#431](https://github.com/microsoft/OCR-Form-Tools/commit/41294c8aa19c82643fe0df669c21a0112668e0dd)) - -### 2.1-preview.1-f4b4d5d (07-21-2020) -* fix: use table for model selection info ([#438](https://github.com/microsoft/OCR-Form-Tools/commit/f4b4d5ded4b7e0ff2116ba3b8f97e49fbf30b7c0)) -* fix: reset model name after training ([#434](https://github.com/microsoft/OCR-Form-Tools/commit/ed919a016b150d0938aee25b5550bacf29f04e83)) -* fix: wait for loadeding project with sharing project ([#435](https://github.com/microsoft/OCR-Form-Tools/commit/fc4cb96d2a9d0920c3bbbd9c2000fb4b1b7ac9c0)) - -### 2.1-preview.1-46dbb2b (07-20-2020) -* fix: handle no recent models for model compose ([#432](https://github.com/microsoft/OCR-Form-Tools/commit/46dbb2be9ee6100a8f3e6a443ad5e734c60954bb)) -* refactor: use new model compose icon ([#425](https://github.com/microsoft/OCR-Form-Tools/commit/932fb3fd7f84636e97035f4cafadc87cff18b3b3)) -* fix: support long model names for model selection ([#427](https://github.com/microsoft/OCR-Form-Tools/commit/a0fa2daf4cd3286f7f58dc2919fd202115e8d5be)) -* feat add recent models to top of model compose page's list ([#430](https://github.com/microsoft/OCR-Form-Tools/commit/cf8de6be61b95bfe8c937946df71ea81aecb35f9)) -* fix: check valid connection ([#428](https://github.com/microsoft/OCR-Form-Tools/commit/9cb6c5830afddc9317ffdfe6927b581c4d39ba39)) - -### 2.1-preview.1-162a766 (07-17-2020) -* refactor: make confidence results same as JSON results ([#409](https://github.com/microsoft/OCR-Form-Tools/commit/162a7660cfe32b72c4954a147269c5d2b7f55a08)) -* fix: prevent user from leaving page while composing ([#422](https://github.com/microsoft/OCR-Form-Tools/commit/63e179d0152d2f8f2ee764443785efa24e5f7dce)) -* feat: support model selection ([#419](https://github.com/microsoft/OCR-Form-Tools/commit/b4c4cc5a8a980aaa6530e7a4a5a1c43e77494c75)) -* feat: share project ([#344](https://github.com/microsoft/OCR-Form-Tools/commit/d059580cfefa053670c45c5d8ec7bf250bc4db27)) - -### 2.1-preview.1-89be3ac (07-15-2020) -* fix: on assetFormat undefined ([#413](https://github.com/microsoft/OCR-Form-Tools/commit/89be3ac5b614e91607d7fb8065ad32b69886040d)) -* fix: make sure token names are unique ([#404](https://github.com/microsoft/OCR-Form-Tools/commit/d8fa6141cff4d00ba22e95ef4f5dcc9102e1c1c2)) -* fix: model info enclosing element error on [#407](https://github.com/microsoft/OCR-Form-Tools/issues/407) ([#408](https://github.com/microsoft/OCR-Form-Tools/commit/8cc421c3fee0e781211efb0aeb2b345075012daa)) -* fix: display composed icon for composed model with attribute ([#399](https://github.com/microsoft/OCR-Form-Tools/commit/18fb4d71052b9355c8d5a4f7dde956ba17ca30fa)) - -### 2.1-preview.1-b67191c (07-09-2020) -* fix: don't allow choosing not-ready models for compose ([#394](https://github.com/microsoft/OCR-Form-Tools/commit/b67191cdbc872b9004be30aa4b4dfde9a88dfe37)) -* feat: track five most recent project models ([#395](https://github.com/microsoft/OCR-Form-Tools/commit/05850603d51a6786c8b6e8b4a553db020df56158)) - -### 2.1-preview.1-abc6376 (07-08-2020) -* feat: enable model info in analyze results ([#383](https://github.com/microsoft/OCR-Form-Tools/commit/abc63767e97dd28a6bb9028e03f2225e6ac0f1ab)) -* fix: check invalid provider options before project actions ([#390](https://github.com/microsoft/OCR-Form-Tools/commit/212647d4327d9e18e9248a2d39086eeaab404979)) - -### 2.1-preview.1-a334cfc (07-07-2020) -* fix: hide extra scrollbars for model compose view ([#380](https://github.com/microsoft/OCR-Form-Tools/commit/a334cfc45fc5ab137682ad2b48dd0ec1585055dc)) -* fix: handle version change state mutation error ([#382](https://github.com/microsoft/OCR-Form-Tools/commit/8991cc0c92f2f5cbd226f7e1c5c0825b7af8937c)) -* fix: handle pdf worker terminated error ([#381](https://github.com/microsoft/OCR-Form-Tools/commit/adc0498c31bfd5ba57ab98c373e73575589ab1e1)) - -### 2.1-preview.1-7192170 (07-02-2020) -* feat: support release ([#361](https://github.com/microsoft/OCR-Form-Tools/commit/7192170d73d24a43e7fff18cd2c6bae7f208f1b0)) - -### 2.1-preview.1-978dabc (07-01-2020) -* feat: support document management ([#374](https://github.com/microsoft/OCR-Form-Tools/commit/978dabc3ba877ed4215865cba2a583fb785a2894)) - -### 2.1-preview.1-56a4b89 (06-30-2020) -* fix: wait until composed model is ready ([#369](https://github.com/microsoft/OCR-Form-Tools/commit/56a4b89f370f2fd72c6bc275376205e7fffe6a9e)) - -### 2.1-preview.1-6114d64 (06-23-2020) -* fix: update OCR version ([#335](https://github.com/microsoft/OCR-Form-Tools/commit/6114d6456b27a59335e534eef72cefd1b2f15737)) -* feat: support electron for on premise solution ([#333](https://github.com/microsoft/OCR-Form-Tools/commit/ca0bd0c2ab46b7b587e5bfbc60c29b62bb325297)) - -### 2.1-preview.1-8297b18 (06-19-2020) -* refactor: put api version in constants ([#332](https://github.com/microsoft/OCR-Form-Tools/commit/8297b18a084be86bc4c986a1a332cb40bd807d1b)) - -### 2.1-preview.1-3b7f803 (06-18-2020) -* feat: enable model compose (preview) ([#328](https://github.com/microsoft/OCR-Form-Tools/commit/3b7f803407b82191706120bb9f12b82de1955704)) -* fix: quick reordering tags ([#322](https://github.com/microsoft/OCR-Form-Tools/commit/3cc5267ef8617590adb3d4966f75cfed64604f00)) -* feat: localization for canvas commandbar items ([#319](https://github.com/microsoft/OCR-Form-Tools/commit/253b9c90eb4923e7fde015a7216905fa32a8dcfa)) -* feat: enable re-run OCR ([#297](https://github.com/microsoft/OCR-Form-Tools/commit/cbe9b0ed1c48f54c100b31b7f04706a969df2dd5)) -* fix: capitalize python in analyze page ([#320](https://github.com/microsoft/OCR-Form-Tools/commit/96626636a96a3d19030df283ac794fa9c2aab18c)) -* fix: fix spelling correction for string match ([#318](https://github.com/microsoft/OCR-Form-Tools/commit/28e53cefcf0bb462d547d6e38b24c480c03b946f)) -* feature: keep prediction in UI ([#285](https://github.com/microsoft/OCR-Form-Tools/commit/dad98b9bd1d305a6bfeb2846ef4067da186ff801)) - -### 2.0.0-1c39800 (06-05-2020) -* feat: add description - how to delete info ([#292](https://github.com/microsoft/OCR-Form-Tools/commit/1c39800b1152f186dfc19834bb969abbc4fe0ac2)) -* feat: enable download analyze script ([#304](https://github.com/microsoft/OCR-Form-Tools/commit/9c97ed0ff9b0aa72ec9a197fc92f3a5998135c36)) -* fix: check ocrread results before getting image extent ([#296](https://github.com/microsoft/OCR-Form-Tools/commit/61dba02fc6f19eb854e1f499e475b1336e6171b9)) -* feat: Add better error message for CORS ([#289](https://github.com/microsoft/OCR-Form-Tools/commit/8f210792b4d84e424b00499efb540b0e27e9fdad)) - -### 2.0.0-2760166 (05-30-2020) -* fix: fix mime check bug for jpeg/jpg and tiff ([#291](https://github.com/microsoft/OCR-Form-Tools/commit/2760166bcb809bbfdc207b01db49f00153318624)) -* refactor: simplify shortcut descriptions ([#277](https://github.com/microsoft/OCR-Form-Tools/commit/db95b0e2510f6cef9bc7279fe0a19dce239c816e)) - -### 2.0.0-a5e4e07 (05-21-2020) -* feature: show table view when table icon is clicked ([#271](https://github.com/microsoft/OCR-Form-Tools/commit/a5e4e079d4c0d1c7c52e3b015c0ddf9b8601bbf2)) - -### 2.0.0-814276a (05-20-2020) -* fix: modify skip button according to feedback comments ([#264](https://github.com/microsoft/OCR-Form-Tools/commit/814276af6f4259844854798adf0c56bd606b2363)) -* feature: keyboard shortcuts and tips ([#258](https://github.com/microsoft/OCR-Form-Tools/commit/37aa859a80dc0213a118313558ad21ba424008e7)) -* feat: add electron mode from VoTT project ([#260](https://github.com/microsoft/OCR-Form-Tools/commit/2a3383d4a0f100a39ed40627bdffb9b48f78f5df)) -* refactor: use forEach instead of map in handleFeatureSelect ([#259](https://github.com/microsoft/OCR-Form-Tools/commit/c1c590c463743d187fda2429a628e27c6c42012f)) - -### 2.0.0-0061645 (05-13-2020) -* build: update nginx base image version to 1.18.0-alpine ([#255](https://github.com/microsoft/OCR-Form-Tools/commit/0061645871806595e4fe2ab5991cc494afa26b31)) -* fix: assign empty string when predict item's fieldName is undefined ([#254](https://github.com/microsoft/OCR-Form-Tools/commit/d4d919f678b1f162f48c87ee5223281e57945a0a)) -* fix: overlaping left split pane ([#252](https://github.com/microsoft/OCR-Form-Tools/commit/2e8c351f74c385b8627ee6ea39f974e5e048ea8d)) -* refactor: change predict to analyze in UI while keeping predict term ([#147](https://github.com/microsoft/OCR-Form-Tools/commit/c9aa58e36a10a35083249a8080c2cfb9fccf3733)) -### 2.0.0-7c7ba93 (05-07-2020) -* fix: check null value from post processed value ([#248](https://github.com/microsoft/OCR-Form-Tools/commit/a361189c527bfffd6417f90a2521ad40b2b3f205)) -* feat: enable outputting to file for analyze script ([#246](https://github.com/microsoft/OCR-Form-Tools/commit/7c7ba937f140490775b788d63ef2c7ed63ca40f1)) -### 2.0.0-9d91800 (05-06-2020) -* fix: prevent user from changing tag types when invalid ([#224](https://github.com/microsoft/OCR-Form-Tools/commit/d8823a33591db5c5dc9a0af753e007167218a3e3)) -* fix: prevent user from adding multiple checkboxes to a single tag ([#224](https://github.com/microsoft/OCR-Form-Tools/commit/d8823a33591db5c5dc9a0af753e007167218a3e3)) -* fix: display error when inputted SAS doesn't contain token ([#243](https://github.com/microsoft/OCR-Form-Tools/commit/9826ca8504549f23057c9cad1baebc5e9d1f6fe7)) -### 2.0.0-25d3298 (05-04-2020) -* feat: track document count for tags ([#231](https://github.com/microsoft/OCR-Form-Tools/commit/70a6e43dc54239cdc153d5d328b17c1dfa0f085f)) -* fix: display error when inputted service URI contains path or query ([#234](https://github.com/microsoft/OCR-Form-Tools/commit/04a16961b37ad5b5d01fc4c93addaaf69cbf0e72)) -* feat: add link in status bar to CHANGELOG ([#233](https://github.com/microsoft/OCR-Form-Tools/commit/e66646a13263239213580378bbd2d8462d7e22b6)) -### 2.0.0-f6c8ffa (05-01-2020) -* refactor: change checkbox to selectionMark ([#223](https://github.com/microsoft/OCR-Form-Tools/commit/f6c8ffad6edf23f6241f314e9456da92bc1a8402)) -### 2.0.0-f3e42f6 (04-30-2020) -* feat: display post-processed value in analyzed results ([#229](https://github.com/microsoft/OCR-Form-Tools/commit/f3e42f6e8e9e934f1a241921dbe4a1e8d311bb46)) -### 2.0.0-f068866 (04-28-2020) -* fix: hide sprin in tag input control when open an empty folder ([#220](https://github.com/microsoft/OCR-Form-Tools/commit/f0688668df2e676fce9749fad8ec9d39e56697cf)) -* perf: cache images, reduce canvas size, and fix memory leak for asset preview ([#218](https://github.com/microsoft/OCR-Form-Tools/commit/e8ad9a3bebf2a1ae210e0e1fa3eebba564592c4c)) -### 2.0.0-595a512 (04-24-2020) -* fix: align rotated picture asset with OCR result -### 2.0.0-51c02cc (04-20-2020) -* fix: scrollbar fix when page size changes -* fix: Add split pane to fix too long tag name is invisible in right sidebar -### 2.0.0-202fb2f (04-20-2020) -* perf: improve assets loading performance and fix some bugs -### 2.0.0-bce554e (04-16-2020) -* perf: improve Azure Blob file list performance -* feat: support URL upload for predicting file -### 2.0.0-ef18425 (04-09-2020) -* feat: enable checkbox labeling (preview) +# FoTT Changelog +## What's new in Form Recognizer? +Click [here](https://docs.microsoft.com/en-us/azure/cognitive-services/form-recognizer/whats-new) to see what's new in Form Recognizer. + +## Released conatiner's currently referenced commit +2.1-Preview's released container image, tracked by the `latest-preview` image tag in our [docker hub repository](https://hub.docker.com/_/microsoft-azure-cognitive-services-custom-form-labeltool), currently references **2.1-preview.1-1f33130 (10-09-2020)** + +## Commit history +### 2.1-preview.2-b6b9a2f (12-10-2020) +* update appVersion to 2.1.2 ([#808](https://github.com/microsoft/OCR-Form-Tools/commit/b6b9a2f131485d08541a1e85f6af59ebfbeca773)) +* add locale in prebuiltPredictPage ([#772](https://github.com/microsoft/OCR-Form-Tools/commit/06d9c16a7c1fe64a95d835878dcb8dabb8c7e485)) ([#776](https://github.com/microsoft/OCR-Form-Tools/commit/06d9c16a7c1fe64a95d835878dcb8dabb8c7e485)) +* Stew ro/cherry pick 347e21e 2b6ead7 ([#766](https://github.com/microsoft/OCR-Form-Tools/commit/ca59cee26587e1aee49507abd75c0683d67f541f)) +* Cherry pick 34ce14d a7ccb34 ([#763](https://github.com/microsoft/OCR-Form-Tools/commit/244c23df700791794990eb6f7e196bcf9ff9c844)) +* Stew ro/cherry pick ab5a8a8 abfffbb ([#760](https://github.com/microsoft/OCR-Form-Tools/commit/93b7a2d4d7688cda4baa4cfd704b2666df524174)) +* refactor: disable api version selection ([#755](https://github.com/microsoft/OCR-Form-Tools/commit/be1f18db0b7073dad106f443f343aa221dea7fc6)) +* refactor: disable draw region button ([#756](https://github.com/microsoft/OCR-Form-Tools/commit/8816a85761a795f3f0b34b87360236cadd80a735)) +* feat: support null text values in analyze results ([#744](https://github.com/microsoft/OCR-Form-Tools/commit/0ddb7f1275d6f195c2af9f0b7053987e01a5d677)) +* feat: support rowspan and column span for layout tables ([#754](https://github.com/microsoft/OCR-Form-Tools/commit/6994ac929146e25370d1461e4e502773de3d5503)) +* Update changelog ([#750](https://github.com/microsoft/OCR-Form-Tools/commit/acba3966ce960e474dfd3d97510b07c108e7b39f)) +* check whether the label data is null ([#753](https://github.com/microsoft/OCR-Form-Tools/commit/f6ef41ac1500e52f3714eda6e99187e016e1b223)) +* fix issue of 773 ([#740](https://github.com/microsoft/OCR-Form-Tools/commit/9d35e79393cdb0de678e9ec6b850daf5a4df5c96)) + +### 2.1-preview.1-2e50498 (11-09-2020) +* fix: enable api version selection ([#736](https://github.com/microsoft/OCR-Form-Tools/commit/2e5049883bd1550ba80210edca7db4233d7a15fa)) +* fix: labeling doesn't work via shortcuts on the new project or empty tags ([#677](https://github.com/microsoft/OCR-Form-Tools/commit/f11291940b776ceb8ba7708e6f58dc2572f7b01b)) +* fix: remove setting project state in project form on change ([#732](https://github.com/microsoft/OCR-Form-Tools/commit/25eb59bfa85b755cd877b02ffda71d0cec70a106)) +* handle training state logical ([#731](https://github.com/microsoft/OCR-Form-Tools/commit/569adf161ad89106ab1fbf51429841c5955e0e4b)) +* fix issue of "After running Layout an all documents FoTT sometimes does not ends" ([#723](https://github.com/microsoft/OCR-Form-Tools/commit/6203e2cd814c95e2bef165f3fb518a566166c26d)) +* set includeTextDetails=true in prebuilt predict ([#722](https://github.com/microsoft/OCR-Form-Tools/commit/ba04cebb63a5b05a369ba954a99dfdc7c9bb9b41)) +* fix issue of "Auto-labeling while switching assets in asset preview causes an error" ([#721](https://github.com/microsoft/OCR-Form-Tools/commit/59fe4e2778a644335da9766fd1382d56086220c1)) +* feat: support api version config ([#717](https://github.com/microsoft/OCR-Form-Tools/commit/c81b2323aaa2b26b0bc0f7922de1e12445fbb627)) +* update homepage style ([#724](https://github.com/microsoft/OCR-Form-Tools/commit/fc769f41c169083098f9250c9ce18ca4881cc336)) +* issuefix: update getBoundingBox ([#730](https://github.com/microsoft/OCR-Form-Tools/commit/f0cb5db337364b2f0355928616d1f7d9637a454a)) +* clone with lodash cloneDeep ([#728](https://github.com/microsoft/OCR-Form-Tools/commit/d6bca5fcf2262a467ede781916a01f50d805b30f)) +* remain auto label state while no label data ([#727](https://github.com/microsoft/OCR-Form-Tools/commit/a79d556a3935e387b0798ecfda8de9c8b1538250)) +* deep copy asset metadata ([#725](https://github.com/microsoft/OCR-Form-Tools/commit/ba8c1100e9adf517e35ec50fd513383d9e84d630)) +* Yongbing chen/receipt predicting ([#626](https://github.com/microsoft/OCR-Form-Tools/commit/e638cd8e3be8926e966a5afc86fb53ac0f092977)) + +### 2.1-preview.1-32cfaea (11-06-2020) +* Starain chen/clean autolabel data while training ([#712](https://github.com/microsoft/OCR-Form-Tools/commit/32cfaea023e96c8aa00560a3f30134683ee25757)) +* fix issue of deleting tag ([#703](https://github.com/microsoft/OCR-Form-Tools/commit/282d55700ea9fdf4cac2b0f20901e8ff6115819e)) + +### 2.1-preview.1-c7ed086 (11-04-2020) +* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/c7ed08612876af8bb619a080f6740fceabb4e67c)) +* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/d696b8a25438590fb44c5159b3142b17178f25d2)) +* fix: use constant if no api version specified ([#684](https://github.com/microsoft/OCR-Form-Tools/commit/8ccdab83f079d976f6521bc08c50d917900483c0)) +* auto labeled tag design & replacing between text with draw region ([#670](https://github.com/microsoft/OCR-Form-Tools/commit/757e0dd85b3c69c6642674e48e9d3549807fecbd)) + +### 2.1-preview.1-aab6938 (11-03-2020) +* Fix the issue that git-commit-info.txt could be override ([#683](https://github.com/microsoft/OCR-Form-Tools/commit/aab69380a8e1f7f113011a7c6b6ed406c4329555)) +* fix: use existing git hash when not in git repository ([#682](https://github.com/microsoft/OCR-Form-Tools/commit/586fbb0ce51c27ae42ca857a372e8e8d5dea21d1)) +* Stew ro/use api version selected in project settings ([#678](https://github.com/microsoft/OCR-Form-Tools/commit/bed69a3f64b0da7590ca3c54e8de369844c6bcd9)) +* refactor: change drawn region icon ([#675](https://github.com/microsoft/OCR-Form-Tools/commit/5614da2681bb8fadf9d3db3ff95aa62362d00175)) + +### 2.1-preview.1-3485d33 (10-30-2020) +* feat: add bmp support for analyze page ([#672](https://github.com/microsoft/OCR-Form-Tools/commit/3485d33eca96321cf667c5c8eba22cc60af42e23)) +* Alex krasn/bugfix on hotkeys when canvas not loaded yet ([#664](https://github.com/microsoft/OCR-Form-Tools/commit/b0404c6276f8fe55292c929e2ca431ed31ef6442)) + +### 2.1-preview.1-7166cda (10-29-2020) +* fix: use node to update status bar with latest git commit ([#671](https://github.com/microsoft/OCR-Form-Tools/commit/7166cdae5763a93feee52842af8e2246fedbf818)) +* change OCR to Layout in UI (Actions) ([#666](https://github.com/microsoft/OCR-Form-Tools/commit/ac604b6bd43eb4c3ba8929a97b308c833d0e6c13)) +* Yongbing chen/hitl update notify message ([#651](https://github.com/microsoft/OCR-Form-Tools/commit/0fa559a4b28c6648eaa17ec047ebb9caabbdc9c7)) + +### 2.1-preview.1-6d775ae (10-27-2020) +* Yongbing chen/ui adjustment with designers feedback ([#662](https://github.com/microsoft/OCR-Form-Tools/commit/6d775ae8d4495ca31d110e500b86d3c0eed6a954)) + +### 2.1-preview.1-c86b6de (10-23-2020) +* Fix the issue that git-commit-info.txt could be override ([#668](https://github.com/microsoft/OCR-Form-Tools/commit/c86b6de35ecd5d004dfb64f8f857d06f0557a00d)) +* Xinxl/fix hash ([#667](https://github.com/microsoft/OCR-Form-Tools/commit/cb27cbd74ff890dc7e13865d89ca5e16b0807fbb)) + +### 2.1-preview.1-0aae169 (10-22-2020) +* Alex krasn/fix confidence level bar styles ([#657](https://github.com/microsoft/OCR-Form-Tools/commit/0aae1690351f3de27114e6cbebd2c077be8e9016)) + +### 2.1-preview.1-d644459 (10-21-2020) +* refactor: change error styling and wording for project sharing ([#653](https://github.com/microsoft/OCR-Form-Tools/commit/d644459e4c9b1f82b1ed2d5b537960b0f16184da)) +* fix: sort models after loading next page in model compose ([#659](https://github.com/microsoft/OCR-Form-Tools/commit/9818d6301ef613155951381598f9ad4cf8ff6e3c)) +* Alex krasn/serialize javascript vulnerability ([#612](https://github.com/microsoft/OCR-Form-Tools/commit/66b03303b1325634371ebdb3923acaa6722be89f)) +* update asset labelingState when load local project ([#660](https://github.com/microsoft/OCR-Form-Tools/commit/1aa3daaeeb1c8a4773e7b6236fc6462335e410f9)) + +### 2.1-preview.1-28c54fc (10-20-2020) +* fix: check for local connections ([#654](https://github.com/microsoft/OCR-Form-Tools/commit/28c54fcc31defe1c4ebcf685675768b99c8e00c8)) +* get last commit hash code in current branch and show on status bar ([#642](https://github.com/microsoft/OCR-Form-Tools/commit/88c547995d31f945177da70141f997e441b3259c)) +* new feature: tags in current page ([#640](https://github.com/microsoft/OCR-Form-Tools/commit/af5396fe8e63b88b90d16953e17ce2006afe782e)) + +### 2.1-preview.1-6c1ee2b (10-16-2020) +* adjust editor view offset ([#646](https://github.com/microsoft/OCR-Form-Tools/commit/6c1ee2b6b4f1bcf28b1c9081b21f0a8783518c80)) + +### 2.1-preview.1-b92e4b3 (10-15-2020) +* reword asset states ([#644](https://github.com/microsoft/OCR-Form-Tools/commit/b92e4b3d5a786a852c319c05697eea331c147cee)) + +### 2.1-preview.1-4544e52 (10-14-2020) +* feat: support apiVersion selection from project settings ([#641](https://github.com/microsoft/OCR-Form-Tools/commit/4544e5255cf2356a4ddf353f7a63994c1a0865da)) + +### 2.1-preview.1-94f12bb (10-13-2020) +* new feature: highlight current tag ([#628](https://github.com/microsoft/OCR-Form-Tools/commit/94f12bb4e925a86fdfba8e25d8b0346169daea1e)) +* new feature: human in the loop auto labeling ([#571](https://github.com/microsoft/OCR-Form-Tools/commit/c1f227daa3decd52320f58d151755b206280cedd)) + +### 2.1-preview.1-7d1f871 (10-10-2020) +* Update CHANGELOG.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/7d1f87193b3917f2140ab9bcce04c64e7aceb823)) + +### 2.1-preview.1-1f33130 (10-09-2020) +* fix: support image map interactions for container releases([#639](https://github.com/microsoft/OCR-Form-Tools/commit/e015973aee152b8a8b22fc2fe32ce80bdd2b46ea)) + +### 2.1-preview.1-6d4e93b (10-07-2020) +* Fix: use file type library for mime type validation ([#636](https://github.com/microsoft/OCR-Form-Tools/commit/6d4e93bca8a4e3d677c765ed5596bde502766e2e)) + +### 2.1-preview.1-355ca0b (09-30-2020) +* feat: add spinner in saving project, can avoid multiple commit ([#617](https://github.com/microsoft/OCR-Form-Tools/commit/355ca0b156b2d44aafd2eaaccf2fc52385c7f5f8)) + +### 2.1-preview.1-53044f7 (09-29-2020) +* fix: refresh currentProjects when load project ([#615](https://github.com/microsoft/OCR-Form-Tools/commit/53044f72dd9c9c72557c74c00605ba05ee50205d)) +* sync related region color when tag color changed ([#598](https://github.com/microsoft/OCR-Form-Tools/commit/3044cc51a9166877bb4f01f28753171b82c04ccd)) +* feat: add current list item style ([#601](https://github.com/microsoft/OCR-Form-Tools/commit/3e503e75513e44e6a90bd013d8dd15c3096cd7e9)) +* fix: remove project from app if security token does not exist ([#468](https://github.com/microsoft/OCR-Form-Tools/commit/730e1963a06f038a4efa9750fcef4be6f15a8460)) + +### 2.1-preview.1-d859d38 (09-27-2020) +* fix ,update document state when preview (#317) ([#471](https://github.com/microsoft/OCR-Form-Tools/commit/d859d38ecc1f96b194ffa130a1840f5a7d9b1a9b)) +* refactor: change the confidence value format to percentage ([#461](https://github.com/microsoft/OCR-Form-Tools/commit/e806b4e0dfcc68e6408e2130a46a318637a482a8)) + +### 2.1-preview.1-7a3f7a7 (09-25-2020) +* security: upgrade node-forge ([#622](https://github.com/microsoft/OCR-Form-Tools/commit/7a3f7a773c8b01f443afaad89d7974a5bbb0b869)) +* fix: disable move tag and support renaming when searching ([#618](https://github.com/microsoft/OCR-Form-Tools/commit/cac1e8e6cfb2805a6540f9e80d564a0ff8be81c7)) + +### 2.1-preview.1-4163edc (09-23-2020) +* docs: add latest tag reference to changelog ([#608](https://github.com/microsoft/OCR-Form-Tools/commit/4163edc18bc65234e263703fc829d2f297953385)) +* fix: use region instead of drawnRegion for labelType in label file ([#582](https://github.com/microsoft/OCR-Form-Tools/commit/ffafc200249a1c47698fedb279b4b55cef0190ba)) +* docs: update readme with docker hub info ([#604](https://github.com/microsoft/OCR-Form-Tools/commit/63bbea076d598d0286095fa0eca48d8c9d0ed706)) +* fix: remove opening browser for yarn start ([#605](https://github.com/microsoft/OCR-Form-Tools/commit/f6c4dc3585df71d09252a28f65e835a594389118)) +* fix: update changelog updater script ([#607](https://github.com/microsoft/OCR-Form-Tools/commit/7c4848c3a72259562c0461f0e2eadfb4a660fa64)) + +### 2.1-preview.1-f2db74e (09-17-2020) +* docs: udpate changlog with docker image reference ([#590](https://github.com/microsoft/OCR-Form-Tools/commit/f2db74e322c32338eba3b2df06c01a51cfb7ebc1)) + +### 2.1-preview.1-1a6b78e (09-16-2020) +* fix: normalize folder path starting with a period ([#592](https://github.com/microsoft/OCR-Form-Tools/commit/1a6b78e054235da3188aafbe65636a8c18b439bf)) +* fix: change label folder uri title ([#588](https://github.com/microsoft/OCR-Form-Tools/commit/7e4233e568d94817e23dda5ef5513b9ee7475d11)) + +### 2.1-preview.1-6a1ced5 (09-15-2020) +* fix: initialize drag pan for analyze page ([#586](https://github.com/microsoft/OCR-Form-Tools/commit/6a1ced5a0bfb03ceba515faddbfa010ac8451460)) +* fix: zoomIn keyboar shortcut for macOS ([#581](https://github.com/microsoft/OCR-Form-Tools/commit/5afeebfee28e10e390f073990f90348c5117475f)) +* fix: appId ([#584](https://github.com/microsoft/OCR-Form-Tools/commit/e053b151441e956641ed05c29106d02358a40792)) +* fix: remove escape quote from release script ([#579](https://github.com/microsoft/OCR-Form-Tools/commit/bd5d51e8e15809b95f15bc495f7d0f91fecfc22d)) +* Stew ro/support drag pan for release ([#576](https://github.com/microsoft/OCR-Form-Tools/commit/77620eccd21d564473c81b43341f59de22339248)) + +### 2.1-preview.1-0633507 (09-14-2020) +* Update README.md([#??](https://github.com/microsoft/OCR-Form-Tools/commit/0633507aa767f996add313ced06c2365c5f240c8)) + +### 2.1-preview.1-8d2286f (09-13-2020) +* persist trainPage inputs in localStorage ([#568](https://github.com/microsoft/OCR-Form-Tools/commit/8d2286f50236e41fe5540dbb9b161ea88bbf2d7a)) + +### 2.1-preview.1-bb23e31 (09-11-2020) +* build(deps): bump node-fetch from 2.6.0 to 2.6.1 ([#575](https://github.com/microsoft/OCR-Form-Tools/commit/bb23e3199c5721338241c8c5ccc0bda104fd15f8)) +* fix: support multiple env files ([#574](https://github.com/microsoft/OCR-Form-Tools/commit/cf64a8ddde05e7e73cad37d271f5d6dfa61c5d7f)) +* fix: "Azure blob storage" error on on premise scenario ([#572](https://github.com/microsoft/OCR-Form-Tools/commit/46f0bc59f3a531c366bc2c7cec955d2cb6ed7cd6)) +* fix ([#563](https://github.com/microsoft/OCR-Form-Tools/commit/28c792e10692e3cc1f511852ffc9fdbc8dcdda8a)) + +### 2.1-preview.1-7e828ff (09-10-2020) +* fix: allow training with placeholder ([#569](https://github.com/microsoft/OCR-Form-Tools/commit/7e828ff02ff8a22b64b4b7d16787d77afb76af62)) +* docs: update changelog ([#564](https://github.com/microsoft/OCR-Form-Tools/commit/1dec72c5df3206554a1e0864b65cc769835785fd)) +* Yongbing chen/human in the loop ([#517](https://github.com/microsoft/OCR-Form-Tools/commit/be9d56481510e3033bcd705743c1ee9aeee20522)) +* fix: support project folder in project settings for local file system ([#559](https://github.com/microsoft/OCR-Form-Tools/commit/b92b73bb8076f9b9bb55dd38fcd223b7b93eaa2e)) +* feat: enable canvas rotation ([#553](https://github.com/microsoft/OCR-Form-Tools/commit/c27a110251df1fc7a595524846e20fd09c79f915)) +* fix: handle tag is undefined error ([#557](https://github.com/microsoft/OCR-Form-Tools/commit/7e4d3fbbc3a2bf925c126cd2b3f493cca48e7a62)) + +### 2.1-preview.1-193520e (09-08-2020) +* fix: accept selection of only .fott files for open local project ([#554](https://github.com/microsoft/OCR-Form-Tools/commit/193520e2c3e40b58c3612507efc2249aaf4e9d05)) +* fix: use default shared folder for label URI when training ([#551](https://github.com/microsoft/OCR-Form-Tools/commit/656de2ff07c2083affc2adf52f1a56c5a9c024b8)) +* fix: show label folder uri while training ([#539](https://github.com/microsoft/OCR-Form-Tools/commit/0ad389c06328cd6428653bb7d94d5af716e02ab7)) +* feat: add canvas command bar to analyze page with only zoom buttons ([#549](https://github.com/microsoft/OCR-Form-Tools/commit/895b52740cd1e8d61b5b021e6c0d992f44ce8052)) + + ### 2.1-preview.1-4852c84 (09-05-2020) +* fix buttons styles - makes them more visible ([#526](https://github.com/microsoft/OCR-Form-Tools/commit/4852c8429d25b5569c3335b014da5972cbcc6162)) + +### 2.1-preview.1-343ea16 (09-04-2020) +* refactor: remove array for drawn region labels ([#542](https://github.com/microsoft/OCR-Form-Tools/commit/343ea16e18199ab5098395ae8b7a164cd8bab55e)) +* fix: add key prop to region icon ([#540](https://github.com/microsoft/OCR-Form-Tools/commit/87b69093f2d35d91a2a939c46ac66ba4d22a5cb7)) + +### 2.1-preview.1-b370c9a (09-02-2020) +* fix: resize canvas on asset preview resize ([#535](https://github.com/microsoft/OCR-Form-Tools/commit/b370c9a9bcf7da416944c626f6d4fd7bd29088bb)) + +### 2.1-preview.1-de1c304 (08-31-2020) +* refactor: upgrade tsconfig es2017 to esnext ([#531](https://github.com/microsoft/OCR-Form-Tools/commit/de1c30410b860c9576108f076ec4dd8273e61a79)) + +### 2.1-preview.1-530545c (08-28-2020) +* fix: remove existing bounding boxes from document on analyze ([#523](https://github.com/microsoft/OCR-Form-Tools/commit/6a1aedfb89b0499a0f4782e16ccbd8a06887841d)) +* feat: enable download JSON of trained model ([#513](https://github.com/microsoft/OCR-Form-Tools/commits/master)) + +### 2.1-preview.1-529a0e8 (08-27-2020) +* fix: show loading indicator while loading model info ([#514](https://github.com/microsoft/OCR-Form-Tools/commit/529a0e819f4cb405e290f34d18d15c487a7bcfad)) +* docs: update telemetry disclaimer ([#521](https://github.com/microsoft/OCR-Form-Tools/pull/521)) +* fix: disable clearing of drawn regions on analyze page ([#518](https://github.com/microsoft/OCR-Form-Tools/commit/298d7c97da1278996d2ee6020d3face0785bc4eb)) + +### 2.1-preview.1-b2d9a0b (08-26-2020) +* docs: notice that telemetry is disabled ([#501](https://github.com/microsoft/OCR-Form-Tools/commit/b2d9a0b008ebf350dfcb5fe897fc5dfe0d4d5cb6)) + +### 2.1-preview.1-d9db4ee (08-24-2020) +* refactor: upgrade storage-blob to v12.1.2 ([#509](https://github.com/microsoft/OCR-Form-Tools/commit/d9db4ee027240a82feef5b54e5e406c3793d8050)) +* feat: support region labeling ([#481](https://github.com/microsoft/OCR-Form-Tools/commit/dd78ed06761a341908bdb1b09e73fd1f2868431c)) +* feat: support adding model to recent models from compose page ([#510](https://github.com/microsoft/OCR-Form-Tools/commit/65fc92b5737ceea14ff89aa78052be26835ad0ae)) + +### 2.1-preview.1-2402cba (08-17-2020) +* fix: notify error message when open project with invalid security token ([#506](https://github.com/microsoft/OCR-Form-Tools/commit/2402cbaf73eba47ad188f851227c04cd44a208d4)) + +### 2.1-preview.1-a8ef8fa (08-17-2020) +* fix: don't allow create or update connection with duplicate name ([#486](https://github.com/microsoft/OCR-Form-Tools/commit/a8ef8fab603b3d2c08c533cb5dfe67da117942a0)) + +### 2.1-preview.1-530545c (08-14-2020) +* fix: "failed to fetch()" error ([#491](https://github.com/microsoft/OCR-Form-Tools/commit/530545c7cd2b4a3ff444e9c7e1f40c68d4a7376c)) +* fix: sync layer visibility ([#497](https://github.com/microsoft/OCR-Form-Tools/commit/bea552b28acb9b652ffaedf40009d6df5a3197ef)) +* refactor: disable telemetry service ([#498](https://github.com/microsoft/OCR-Form-Tools/commit/6e3628cf174f954693380aab6ebd2dabe027ac6d)) +* fix: change share class name for adblocker chrome extension ([#492](https://github.com/microsoft/OCR-Form-Tools/commit/aa8a73afc6344f3164e79f236d5fa4bb0f64d364)) + +### 2.1-preview.1-da405b3 (08-10-2020) +* fix: restrict tag type through hot keys ([#482](https://github.com/microsoft/OCR-Form-Tools/commit/da405b354428b829e895a35a020736b1d88c153f)) +* docs: add share project description to README ([#488](https://github.com/microsoft/OCR-Form-Tools/commit/7ee215f735a84aaa30201748d19207bcc6a05580)) + +### 2.1-preview.1-29d1f93 (08-07-2020) +* fix: handle multi selection of non-compatible types with multi-selection tool ([#487](https://github.com/microsoft/OCR-Form-Tools/commit/29d1f93a290e55fdd84f8cf2ee9a914fed702beb)) + +### 2.1-preview.1-cef225f (08-06-2020) +* fix: handle undefined image map error ([#462](https://github.com/microsoft/OCR-Form-Tools/commit/cc9e9bfc8fe00bb0ed154edb791446f28060af4e)) +* fix: handle undefined image map error ([#479](https://github.com/microsoft/OCR-Form-Tools/commit/cef225f3346628e79c46e799303400965f1d3c96)) + +### 2.1-preview.1-76945df (08-05-2020) +* fix: use english for telemetry reporting ([#472](https://github.com/microsoft/OCR-Form-Tools/commit/76945df3bdf9caba3ba13f4541e17e75b9574b33)) +* fix: resolve unhandled exeptions and new message for OCR service on 400 ([#470](https://github.com/microsoft/OCR-Form-Tools/commit/76381bc659a365ead19387b933485530d2d5edc3)) +* feature: enable popup with composed model info ([#460](https://github.com/microsoft/OCR-Form-Tools/commit/c1f5d803f047e5ca0d18fea6383b3baf56d116ff)) + +### 2.1-preview.1-f4d53ce (08-03-2020) +* fix: bump elliptic from 6.5.2 to 6.5.3 ([#469](https://github.com/microsoft/OCR-Form-Tools/commit/f4d53cec967194445885bd3748096f0a3ce10715)) +* feat: add modelCompose icon and created time ([#466](https://github.com/microsoft/OCR-Form-Tools/commit/2fa32ef5f77ec7bb44bf42e9fc0a5fdf7f0330c3)) + +### 2.1-preview.1-78996ea (07-31-2020) +* refactor: relocate share button ([#464](https://github.com/microsoft/OCR-Form-Tools/commit/78996ea65616b28d7471b59f4f16f254d7d33127)) + +### 2.1-preview.1-0e1b637 (07-29-2020) +* feat: show only ready models in the list ([#459](https://github.com/microsoft/OCR-Form-Tools/commit/0e1b637003f289c56955342f44963003c1543436)) + +### 2.1-preview.1-84f8285 (07-27-2020) +* fix: show message on model composition fail ([#457](https://github.com/microsoft/OCR-Form-Tools/commit/84f82859122ff298bcfcca78e821e8bfe437bb78)) +* refactor: add background on popup table ([#446](https://github.com/microsoft/OCR-Form-Tools/commit/27f60df5617da2efba8ffdd601233e0c0f4c8e3e)) + +### 2.1-preview.1-79264e3 (07-24-2020) +* fix: handle rejection for security token not found when opening projects ([#441](https://github.com/microsoft/OCR-Form-Tools/commit/79264e3fddfb2c80b88bf8ca21df1e869082ffcf)) +* fix: show more refined error message for model not found analysis error ([#454](https://github.com/microsoft/OCR-Form-Tools/commit/1cb4133dca0092559e7524dfad8c0bf54502dc81)) +* feat: support group selection of words with drawn bounding box ([#447](https://github.com/microsoft/OCR-Form-Tools/commit/b4332a926b1925024a33731a90d303c0b171935b)) +* feat: add apiVersion to telemetry ([#448](https://github.com/microsoft/OCR-Form-Tools/commit/55be5427e4a2f9c8cf393d446049527c55f841d4)) +* fix: margin for filenames in asset preview ([#451](https://github.com/microsoft/OCR-Form-Tools/commit/fe8258f9c7ceba663a66708b19bc0e6556e777ad)) +* docs: add telemetry disclaimer to readme ([#449](https://github.com/microsoft/OCR-Form-Tools/commit/87356a1cf6678bb9494e83178bf6282ca366921f)) + +### 2.1-preview.1-9b5b99d (07-23-2020) +* docs: add get-sas.png (https://github.com/microsoft/OCR-Form-Tools/commit/9b5b99d5468661481ae8165593d5a74471366429) +* doc: add a screenshot of getting SAS token (https://github.com/microsoft/OCR-Form-Tools/commit/87b1062125ed106ff73c036e33f1bf7a5f2c3def) +* fix: handle undefined error for pdf asset preview memory cleaning ([#442](https://github.com/microsoft/OCR-Form-Tools/commit/9b5b99d5468661481ae8165593d5a74471366429)) +* fix: remove duplicate models in model composed model list ([#439](https://github.com/microsoft/OCR-Form-Tools/commit/7fcc9ccfdb6634326ddd6cbfe99b423300b94131)) +* feat: enable internal telemetry ([#431](https://github.com/microsoft/OCR-Form-Tools/commit/41294c8aa19c82643fe0df669c21a0112668e0dd)) + +### 2.1-preview.1-f4b4d5d (07-21-2020) +* fix: use table for model selection info ([#438](https://github.com/microsoft/OCR-Form-Tools/commit/f4b4d5ded4b7e0ff2116ba3b8f97e49fbf30b7c0)) +* fix: reset model name after training ([#434](https://github.com/microsoft/OCR-Form-Tools/commit/ed919a016b150d0938aee25b5550bacf29f04e83)) +* fix: wait for loadeding project with sharing project ([#435](https://github.com/microsoft/OCR-Form-Tools/commit/fc4cb96d2a9d0920c3bbbd9c2000fb4b1b7ac9c0)) + +### 2.1-preview.1-46dbb2b (07-20-2020) +* fix: handle no recent models for model compose ([#432](https://github.com/microsoft/OCR-Form-Tools/commit/46dbb2be9ee6100a8f3e6a443ad5e734c60954bb)) +* refactor: use new model compose icon ([#425](https://github.com/microsoft/OCR-Form-Tools/commit/932fb3fd7f84636e97035f4cafadc87cff18b3b3)) +* fix: support long model names for model selection ([#427](https://github.com/microsoft/OCR-Form-Tools/commit/a0fa2daf4cd3286f7f58dc2919fd202115e8d5be)) +* feat add recent models to top of model compose page's list ([#430](https://github.com/microsoft/OCR-Form-Tools/commit/cf8de6be61b95bfe8c937946df71ea81aecb35f9)) +* fix: check valid connection ([#428](https://github.com/microsoft/OCR-Form-Tools/commit/9cb6c5830afddc9317ffdfe6927b581c4d39ba39)) + +### 2.1-preview.1-162a766 (07-17-2020) +* refactor: make confidence results same as JSON results ([#409](https://github.com/microsoft/OCR-Form-Tools/commit/162a7660cfe32b72c4954a147269c5d2b7f55a08)) +* fix: prevent user from leaving page while composing ([#422](https://github.com/microsoft/OCR-Form-Tools/commit/63e179d0152d2f8f2ee764443785efa24e5f7dce)) +* feat: support model selection ([#419](https://github.com/microsoft/OCR-Form-Tools/commit/b4c4cc5a8a980aaa6530e7a4a5a1c43e77494c75)) +* feat: share project ([#344](https://github.com/microsoft/OCR-Form-Tools/commit/d059580cfefa053670c45c5d8ec7bf250bc4db27)) + +### 2.1-preview.1-89be3ac (07-15-2020) +* fix: on assetFormat undefined ([#413](https://github.com/microsoft/OCR-Form-Tools/commit/89be3ac5b614e91607d7fb8065ad32b69886040d)) +* fix: make sure token names are unique ([#404](https://github.com/microsoft/OCR-Form-Tools/commit/d8fa6141cff4d00ba22e95ef4f5dcc9102e1c1c2)) +* fix: model info enclosing element error on [#407](https://github.com/microsoft/OCR-Form-Tools/issues/407) ([#408](https://github.com/microsoft/OCR-Form-Tools/commit/8cc421c3fee0e781211efb0aeb2b345075012daa)) +* fix: display composed icon for composed model with attribute ([#399](https://github.com/microsoft/OCR-Form-Tools/commit/18fb4d71052b9355c8d5a4f7dde956ba17ca30fa)) + +### 2.1-preview.1-b67191c (07-09-2020) +* fix: don't allow choosing not-ready models for compose ([#394](https://github.com/microsoft/OCR-Form-Tools/commit/b67191cdbc872b9004be30aa4b4dfde9a88dfe37)) +* feat: track five most recent project models ([#395](https://github.com/microsoft/OCR-Form-Tools/commit/05850603d51a6786c8b6e8b4a553db020df56158)) + +### 2.1-preview.1-abc6376 (07-08-2020) +* feat: enable model info in analyze results ([#383](https://github.com/microsoft/OCR-Form-Tools/commit/abc63767e97dd28a6bb9028e03f2225e6ac0f1ab)) +* fix: check invalid provider options before project actions ([#390](https://github.com/microsoft/OCR-Form-Tools/commit/212647d4327d9e18e9248a2d39086eeaab404979)) + +### 2.1-preview.1-a334cfc (07-07-2020) +* fix: hide extra scrollbars for model compose view ([#380](https://github.com/microsoft/OCR-Form-Tools/commit/a334cfc45fc5ab137682ad2b48dd0ec1585055dc)) +* fix: handle version change state mutation error ([#382](https://github.com/microsoft/OCR-Form-Tools/commit/8991cc0c92f2f5cbd226f7e1c5c0825b7af8937c)) +* fix: handle pdf worker terminated error ([#381](https://github.com/microsoft/OCR-Form-Tools/commit/adc0498c31bfd5ba57ab98c373e73575589ab1e1)) + +### 2.1-preview.1-7192170 (07-02-2020) +* feat: support release ([#361](https://github.com/microsoft/OCR-Form-Tools/commit/7192170d73d24a43e7fff18cd2c6bae7f208f1b0)) + +### 2.1-preview.1-978dabc (07-01-2020) +* feat: support document management ([#374](https://github.com/microsoft/OCR-Form-Tools/commit/978dabc3ba877ed4215865cba2a583fb785a2894)) + +### 2.1-preview.1-56a4b89 (06-30-2020) +* fix: wait until composed model is ready ([#369](https://github.com/microsoft/OCR-Form-Tools/commit/56a4b89f370f2fd72c6bc275376205e7fffe6a9e)) + +### 2.1-preview.1-6114d64 (06-23-2020) +* fix: update OCR version ([#335](https://github.com/microsoft/OCR-Form-Tools/commit/6114d6456b27a59335e534eef72cefd1b2f15737)) +* feat: support electron for on premise solution ([#333](https://github.com/microsoft/OCR-Form-Tools/commit/ca0bd0c2ab46b7b587e5bfbc60c29b62bb325297)) + +### 2.1-preview.1-8297b18 (06-19-2020) +* refactor: put api version in constants ([#332](https://github.com/microsoft/OCR-Form-Tools/commit/8297b18a084be86bc4c986a1a332cb40bd807d1b)) + +### 2.1-preview.1-3b7f803 (06-18-2020) +* feat: enable model compose (preview) ([#328](https://github.com/microsoft/OCR-Form-Tools/commit/3b7f803407b82191706120bb9f12b82de1955704)) +* fix: quick reordering tags ([#322](https://github.com/microsoft/OCR-Form-Tools/commit/3cc5267ef8617590adb3d4966f75cfed64604f00)) +* feat: localization for canvas commandbar items ([#319](https://github.com/microsoft/OCR-Form-Tools/commit/253b9c90eb4923e7fde015a7216905fa32a8dcfa)) +* feat: enable re-run OCR ([#297](https://github.com/microsoft/OCR-Form-Tools/commit/cbe9b0ed1c48f54c100b31b7f04706a969df2dd5)) +* fix: capitalize python in analyze page ([#320](https://github.com/microsoft/OCR-Form-Tools/commit/96626636a96a3d19030df283ac794fa9c2aab18c)) +* fix: fix spelling correction for string match ([#318](https://github.com/microsoft/OCR-Form-Tools/commit/28e53cefcf0bb462d547d6e38b24c480c03b946f)) +* feature: keep prediction in UI ([#285](https://github.com/microsoft/OCR-Form-Tools/commit/dad98b9bd1d305a6bfeb2846ef4067da186ff801)) + +### 2.0.0-1c39800 (06-05-2020) +* feat: add description - how to delete info ([#292](https://github.com/microsoft/OCR-Form-Tools/commit/1c39800b1152f186dfc19834bb969abbc4fe0ac2)) +* feat: enable download analyze script ([#304](https://github.com/microsoft/OCR-Form-Tools/commit/9c97ed0ff9b0aa72ec9a197fc92f3a5998135c36)) +* fix: check ocrread results before getting image extent ([#296](https://github.com/microsoft/OCR-Form-Tools/commit/61dba02fc6f19eb854e1f499e475b1336e6171b9)) +* feat: Add better error message for CORS ([#289](https://github.com/microsoft/OCR-Form-Tools/commit/8f210792b4d84e424b00499efb540b0e27e9fdad)) + +### 2.0.0-2760166 (05-30-2020) +* fix: fix mime check bug for jpeg/jpg and tiff ([#291](https://github.com/microsoft/OCR-Form-Tools/commit/2760166bcb809bbfdc207b01db49f00153318624)) +* refactor: simplify shortcut descriptions ([#277](https://github.com/microsoft/OCR-Form-Tools/commit/db95b0e2510f6cef9bc7279fe0a19dce239c816e)) + +### 2.0.0-a5e4e07 (05-21-2020) +* feature: show table view when table icon is clicked ([#271](https://github.com/microsoft/OCR-Form-Tools/commit/a5e4e079d4c0d1c7c52e3b015c0ddf9b8601bbf2)) + +### 2.0.0-814276a (05-20-2020) +* fix: modify skip button according to feedback comments ([#264](https://github.com/microsoft/OCR-Form-Tools/commit/814276af6f4259844854798adf0c56bd606b2363)) +* feature: keyboard shortcuts and tips ([#258](https://github.com/microsoft/OCR-Form-Tools/commit/37aa859a80dc0213a118313558ad21ba424008e7)) +* feat: add electron mode from VoTT project ([#260](https://github.com/microsoft/OCR-Form-Tools/commit/2a3383d4a0f100a39ed40627bdffb9b48f78f5df)) +* refactor: use forEach instead of map in handleFeatureSelect ([#259](https://github.com/microsoft/OCR-Form-Tools/commit/c1c590c463743d187fda2429a628e27c6c42012f)) + +### 2.0.0-0061645 (05-13-2020) +* build: update nginx base image version to 1.18.0-alpine ([#255](https://github.com/microsoft/OCR-Form-Tools/commit/0061645871806595e4fe2ab5991cc494afa26b31)) +* fix: assign empty string when predict item's fieldName is undefined ([#254](https://github.com/microsoft/OCR-Form-Tools/commit/d4d919f678b1f162f48c87ee5223281e57945a0a)) +* fix: overlaping left split pane ([#252](https://github.com/microsoft/OCR-Form-Tools/commit/2e8c351f74c385b8627ee6ea39f974e5e048ea8d)) +* refactor: change predict to analyze in UI while keeping predict term ([#147](https://github.com/microsoft/OCR-Form-Tools/commit/c9aa58e36a10a35083249a8080c2cfb9fccf3733)) +### 2.0.0-7c7ba93 (05-07-2020) +* fix: check null value from post processed value ([#248](https://github.com/microsoft/OCR-Form-Tools/commit/a361189c527bfffd6417f90a2521ad40b2b3f205)) +* feat: enable outputting to file for analyze script ([#246](https://github.com/microsoft/OCR-Form-Tools/commit/7c7ba937f140490775b788d63ef2c7ed63ca40f1)) +### 2.0.0-9d91800 (05-06-2020) +* fix: prevent user from changing tag types when invalid ([#224](https://github.com/microsoft/OCR-Form-Tools/commit/d8823a33591db5c5dc9a0af753e007167218a3e3)) +* fix: prevent user from adding multiple checkboxes to a single tag ([#224](https://github.com/microsoft/OCR-Form-Tools/commit/d8823a33591db5c5dc9a0af753e007167218a3e3)) +* fix: display error when inputted SAS doesn't contain token ([#243](https://github.com/microsoft/OCR-Form-Tools/commit/9826ca8504549f23057c9cad1baebc5e9d1f6fe7)) +### 2.0.0-25d3298 (05-04-2020) +* feat: track document count for tags ([#231](https://github.com/microsoft/OCR-Form-Tools/commit/70a6e43dc54239cdc153d5d328b17c1dfa0f085f)) +* fix: display error when inputted service URI contains path or query ([#234](https://github.com/microsoft/OCR-Form-Tools/commit/04a16961b37ad5b5d01fc4c93addaaf69cbf0e72)) +* feat: add link in status bar to CHANGELOG ([#233](https://github.com/microsoft/OCR-Form-Tools/commit/e66646a13263239213580378bbd2d8462d7e22b6)) +### 2.0.0-f6c8ffa (05-01-2020) +* refactor: change checkbox to selectionMark ([#223](https://github.com/microsoft/OCR-Form-Tools/commit/f6c8ffad6edf23f6241f314e9456da92bc1a8402)) +### 2.0.0-f3e42f6 (04-30-2020) +* feat: display post-processed value in analyzed results ([#229](https://github.com/microsoft/OCR-Form-Tools/commit/f3e42f6e8e9e934f1a241921dbe4a1e8d311bb46)) +### 2.0.0-f068866 (04-28-2020) +* fix: hide sprin in tag input control when open an empty folder ([#220](https://github.com/microsoft/OCR-Form-Tools/commit/f0688668df2e676fce9749fad8ec9d39e56697cf)) +* perf: cache images, reduce canvas size, and fix memory leak for asset preview ([#218](https://github.com/microsoft/OCR-Form-Tools/commit/e8ad9a3bebf2a1ae210e0e1fa3eebba564592c4c)) +### 2.0.0-595a512 (04-24-2020) +* fix: align rotated picture asset with OCR result +### 2.0.0-51c02cc (04-20-2020) +* fix: scrollbar fix when page size changes +* fix: Add split pane to fix too long tag name is invisible in right sidebar +### 2.0.0-202fb2f (04-20-2020) +* perf: improve assets loading performance and fix some bugs +### 2.0.0-bce554e (04-16-2020) +* perf: improve Azure Blob file list performance +* feat: support URL upload for predicting file +### 2.0.0-ef18425 (04-09-2020) +* feat: enable checkbox labeling (preview) diff --git a/package.json b/package.json index 70c05d4f..c16cc959 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,9 @@ "reactstrap": "^8.2.0", "redux": "^4.0.4", "redux-thunk": "^2.3.0", + "rfdc": "^1.1.4", + "rimraf": "^3.0.2", + "serialize-javascript": "^5.0.1", "shortid": "^2.2.15", "utif": "^3.1.0", "vott-react": "^0.2.12" diff --git a/src/assets/sass/fabric-icons-inline.scss b/src/assets/sass/fabric-icons-inline.scss index 21b28afe..75596903 100644 --- a/src/assets/sass/fabric-icons-inline.scss +++ b/src/assets/sass/fabric-icons-inline.scss @@ -3,7 +3,7 @@ */ @font-face { font-family: 'FabricMDL2Icons'; - src: url('data:application/octet-stream;base64,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') format('truetype'); + src: url('data:application/octet-stream;base64,d09GRgABAAAAACioAA4AAAAASngABBHsAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABRAAAAEgAAABgLdt/1WNtYXAAAAGMAAABoAAAA7LcF8/3Y3Z0IAAAAywAAAAgAAAAKgnZCa9mcGdtAAADTAAAAPAAAAFZ/J7mjmdhc3AAAAQ8AAAADAAAAAwACAAbZ2x5ZgAABEgAAB5KAAA3FKExlRtoZWFkAAAilAAAADUAAAA2AukV6WhoZWEAACLMAAAAGwAAACQQAggCaG10eAAAIugAAABYAAAAshqnDe9sb2NhAAAjQAAAALAAAACwDiIbzm1heHAAACPwAAAAHQAAACAAeQJGbmFtZQAAJBAAAAP3AAAJ+oyZ8k9wb3N0AAAoCAAAABQAAAAg/1EAznByZXAAACgcAAAAiQAAANN4vfIOeJxjYGH/zjiBgZWBgXUWqzEDA6M0hGa+yJDGJMTBysrFyMQIBgxAIMCAAL7BCgoMDo+n/ljCAeZDSAawOhYIT4GBAQAUQQlXeJxjYGBgZoBgGQZGIMnAtAbIYwTzWZgmAOkFDA0MbAwKj6c+Xv94x+NXj988fvf4/eOPj789mfbkyJNjT44/533O95z/ueBzoefCz6WfyzyXf674XOe57nOr53bPvZ/7Pg9+nvO84Hn5877nV1/wv5B7MeHF9BeLX6x5ceLFm5eKL5VfGr10e2X1RvzNibeqb9veHn6X+W7v+5L3/e//fGD+oPnR7mPGx2UfV36a+unwpyOfGT4zfTb8XP958zfvb77f1ny7+d3sB9+PJf//MzAQdKEAVhd6gV2YDXZhL9yF0/C6MINEF/KCXCizVWaOzBSZDJlUmSSZBJlYmXDpvdKTpPuleyW+SPySZJf4JPFd4qPEe4mXEm8kvkk8kLgpcVnilsQRiTMSeyWWSSyWmCvRK+EuwSb+UrxXvEO8VrxUPErcXJxZnEnsi9hD0XciQsJJwmxCy4SyBI8JFgvsFVgsYClgKMDF94PvPN8kvgm8S3kreKt4bXmtePl4DvL0cf7g/Mo5gzOHU4DDin0pJPYHN2BkG2gXDDwAADZyEQZ4nGPQYghlKGBoYFjFyMDYwOzAeIDBAYsIEAAAqhwHlXicXY+/TsNADMZzJLSEJ0A6IZ11KkOViJ3phksk1CUlDOelgNRKpO+AlIXFA8/ibhnzYgjMEf4utr/P+ny/c6f5yXx2nKVHKilWnDfhoNQLDurtmf35IU/vNmVhTNV5VvdlwWoJomtOF/VNsGjI0PWWTG0eH7acLWKXxY7w0nDShk7qbQB2qL/HHeJVPJLFI4QS30/xfYxL+rUsVobTiyasA/des/OoAUzFYxN49BoQf8ikP3VnE+NsOWXbwE5zgkSfygL3RJqE+0uPf/Wgkv+G+23Iv6tB9U3c9Bb0h2HBgrChl2fbUAkaYPkOhPxkxgABAAIACAAK//8AD3icnXsLfBPXme85czQzMjYysiwLhC0jyyPZxhbYsiQexhbEgA3hEcyWRAICgRAggebBoyQkOdAACY/SlN4+srlJG+p0m4Zk89wmdLfebrp0Q2mzcTe9je/dvU1Cbrst3ebX9gbLmmG/78yMLMukSWt7Zs6cOWfO6zv/7/9935hI5ElCHA/IewgjKiFJd9CtBd3BJ9m/516WXtaXEHlP9ugXHcsJ/FDioe+rl5QWIsONr4QmqXoqnfPkPGl2SmmBFLuUzu2AcvDjhF9SCuW8QXfIHYwH3TG3k+RSPJdiA9xhXdlALgXlf09+r05UJ2L5EqqW0Ai8u4T6HBnp+bS+TF+Wlp7Xl6elF6QX0g4y5lZfDkWgOQdRiKJm1SxJkrvIEfLX0HJllbdS8cpMU1SPzOqUUF04xDRPOAJZ7eF4eyKueeREErLaErG2qhgUqvJpHtpJ4+3hSDIiR2nEE1GjNFSnqBHV46Kqpvpc1FtZ5VN9WoD6mC8ZoLG2RNKXZJ00KSdpW0DyVrqkUF1Uird3Sp62TrhG4d4F+QFJ+ZBSyh43fjbZ320c+HpJRQn8fd040O2fbPzsccooNfTHaSM8pffbT+n98JQ2Pm48KDkc0m8+ZXxQOz/c9cYXfTN9k2dMPvVGVzg1zfjgU78xn9Ly8U9p+adyX1j+0Ja5c7c8tNy+Jjf0NDb2bEhaV0f9n9cZvXAgxv+BtqDFfHO/GdvVwqfjuiptL+wWXnVe0DFxJRKsMXcSlYOUlqNUUZBUGpeDZsJJdGLAofJhEGSKwsyHdJIbYhojQ1zTia5JQ4zAA3iqDoBsqmQymQ53KPIxd5DBCqmwZI6Yu4R68MbF1ET9XOotoV6Z8yzhMuH8j+/95PrU7tPnLu6XBvTUzbNu2rAhseZ/7L7O8zf0vtc5PWbslgg3oOgIl3hs08kM33/x3OndKcr1lJ5iXCqdUlV/+8lvrr39zvP0GD12XsiuPbZSGJuXTIVeTZRKaAsrocESFpE1lbopXhRO4eWU50iOmCmDO6D+cEB6R3pHh/MHRrlR/gHemSnHAPwYMH14lWCOjJP0DnrHyMnPXL78GUhzegemcMokpupKBvd2iQQbUD2dW5dbl2Y60yXGnsitTzMjh8sAc8gZV7mDEw+JkLnQ2yKpD37MPSVTo6HKylB0qnVlUz8uw8ELbj7RlaDMUJhXhZMWkkGZsbsRtPoRi9v7Mha0NyqN26mg/cxr9zuWH4hCrj22vSu2ZtcCgyzYtSbWtf3Ytal1p/ctXrzv9DqJ2Ck99YmKgWCFlu1bgyWw7Jp9y0Ic8+3neDU+QRmxNjb2NpJ5ZD4hWiXgXoS6AMSiDiHfbQEH4KIaUGkROLGgN+gkdQG/J/dfGy7eu/HFRw+sbWtbe+DRFzea6dUryv9q74mTh7d2Zgf2vvloJvPom3ut679IXOeLqps8bNKK1YV1zPS9FzeUr9517OSDO3ul5wuqiavEeYHOSMJKVTn8gLKSS3KE6uqjEvSyAuAVlUjI7WLQVxhFJ4xGAoROyu4naeW5nb2Hzr5nZE+cMLLvnT3Uu+Sh1+4xfgt7cfffH+5J7f7Guff233Px3Dd2pzY+88HDderbLd8zRox/etoqjXWp/Lnj1Pmr73Vzg9DGWd8a/MMBs4ZZ+0u06r1vNtxDxswx6syJ0F+AEBm0pqm1nOSywCEVMMDoS9M+1pfGPCeBTKrRZ9LGM2xVGoGoD2DoDOgsJ+o9GBsqPrUvd4nnLqXZGfj9PfNczqqKuM31EbOOop5xElFHSlLALqrCs1xfmnk487AXcn3sTDp3SVUuZ5kHuzq6D6aRawp2a34btPk6GYhFXltNp7ZYqOH8DlHuXXli27yObcdXjPDtZ4+tXHns7PbojIZt+48v+fQPvrLJHV+3qKFh0bo4X3T36XWLDu5YPWVp38pj2zo6th1b6eAdtxy/Du+wFtYu6dzUXb/8oe/qHqyDdWFf3L2o6dpbF4SwDSwrOAftJ0zWVR1xSStB1iGfzknMSOfWsycYolMacUqUlRhhSiZfFhajALnWsdPsdDrHcsxaQ0rEnEwhNYBihAbYmEnpohYVou3hGTSogtpX3yirKFMQX4YFgClw+4ZCsoj2QD+czvPZl887nVJpWV04MsnGokmRcF3ZG6w/lwFVNMJLQ87XX3eGSsVa2nKUwFVxBKQKW+ibqRRJBiRLzKMOsRawPWG1O6V6BzlBFVtuQeafNv7JGPleyz0N33yPVn1pVGov3nPgD4NPJWkjgMc1A7+iTicZu0t2nqOVT9Y9/MEzGwu3SM/hv9/NQVf89p7XHloi5KePcJDTDCkD7YQMLQJzg79qhIK2FEkHAanr0/kVovO+tNKiAx5QeIuaya1Kr8oNIT4wbVVa72Maps0cofvMOXCRStB8qJEBnKiMNAxlkgLNKpG0KIvQTpYXSydpm5kd0o88Jmsz9y9YeHcmPrxo+1dDjtnG0MhM2juhJbUqKhtTovXe4Oyl08OzW5unKM8t2A91HpP2QZ22eObukT2hr253zKFatnRVdFWqZQJ7Z0pz6+zw9KWzg9766BTBOcy+hQQqCeB0wVqEIxTJZLw9SaMUMbWY5smpIvDL/ZfH7w8XgGMRfMJ4xuBs7neesN/vYe48Do+QYtgE+Rmk/WqLyccBC2BhWkYG9cE0HWSD8uDIm1I0bUTZmzgMhXCkPDCWWhhNC2klcTIbxhRy54XeHYoH81quhjZK8SANuiur4B6Ycsgdo9ahEh5oX9SQIw2L2gOwxCjllKO8SxYvQUEP+x3EH9aBM1HrUHg2hVWwsjzAub1DOAhNNuUPh/0DDniBecBPSX7+y4Fp+EA6sO8RkBFYjSRMPrJ2b6UqFoPG3CE1kvQx0BKYpj4QTm8wPoMmfRSLmSuWIB7HgFiLkRRegNnxn7yceenYFZhO0dEVcEfhtjX9UsaYi72CI+XHargkUC2svn2FHHsp87LxHIwVKmKaruB8d/rljPGWqAAHmZDvvwz7BnEmSDTQyzj782wLSv4LxwGWl95nnEpTT3bgLxoSa0nrq+jOtPHbv/5LBifw69uWTKEkuYFmhCOgkMFMUlRlOmimaR7Ysm7V3iswTB81RzCDumGb+CqCKpn+i++c3lXVUOFuqNp1+pVfNDXR0PONqem+3znlyikueo/LUzEJzv5K2fk7X3Oq8XlaR8kVcvet39eWNzUt175/690wzKburz37yo30ZIcUqPBgLZdxyFVZUSN1GHfc+MqzX+s23kLMl6C3YOYib108nrcWb2MPYDL1Bag3ZEKwAxKJpADgFcdRs5l6CjWcrf3s60nqz55PNTTxnvufPvf2bbe9fe7p+3t4U0PqfJb6ZVJYFV+l88LKeHXwxUfPP9D33No9P37q8NqZM9cefurHe9Y+1/fA+aPI8yQKbEBpERykDLRdPOj1oDghHaBAzVv0UzoIxyCngyABbFD/nHRn2miSv5VdQ98S9TmCgqjfCvWB5HpMfFNqaAgmQ8lPRAgAjoFMpVac4tuXNjb3rN2wtqeZW1ebe/LGpdv5KQ48QyRWrH7wjg3pGzbv6hkYgOSN6TQkba5qvqiARyG+AjPRTOG4GluVi5cmOOpXUC8J4f1I0qq/W4S2f4cChLJN+I4iXC7C7fuuwlVFPdTdjitXyBUnVdHcLAWZagfBgnUA0MTOBanoXTDOqsCIhFG5KPCqWFvSHTUTVb6EeKBeYWARZQ1ZGoGFY8S4D7t336c/T+nffm7R6RsofXhn+4EllGZOdx99kdIv3so+axhGjkkHDUniOeMgNQ7mNmw4uDMx6+A6R09zy8FE+/aDawFEEfO54IqlxA0ISkxdDcDiiUU0hHdxuIMqHwHbkGUo51p/f45LGujxDAqSAVoaTMyhEY0CgBvw2z8EvQXrlvIsF2vIRRsesKdroIU8qTT3Fry/hGrIjeWBIjPN0BhaslwlehyaPC8PFNtwUioHJRh/STqf43rc5EwOGI7jgmBwgIvIrB0XLlwYw8tVMV5ijs1tjRPZk5MYW4YfoY8oW/RHRmKOC/SrcCYX6CPGFmULfQQzlS0XcvAuhE71frDJK2BU2ihWqPjCTuarU6kKkBZvDzMkK5CpfKexJzENmMPkLHG8P7ll5iytxpu7tu4Ie9E7/a9yw8aR9cyZg82v8mmJ3kZt9szmySN+hUyO1ldxKHikDgrWBJqMLbnL6+k+po7YvgExv1Nhj8wlXbBLxmwNl4MhMOVNoqiDgdZww35mA4f++Naz93Z33/vsW388VJi+66evfOW2jo7bvvLKT++689/s9L89z/FnfHEzrRJR6M7RCnZlpHoAEAV8aarJlwoZrW3GSfWeUU4r+i3Y7LtnD/f2Hj77rslN7TuqnDDdJ6bLpSANTPZqpa03XebjKlhp7KJM7TktFazTD3aRvTOEsGixiHmLNhlsaDzhFoGtf4VIIP60X+f9/ZTAdiAOznXiOHBAJ+wAGgMoOLIoyftHhhjwIaznADnmKO5c+E+wfeHviQiLrADMWJ5lmqs8brZSNGUMcGOApnjqIyZn//bXvn18czK5+fi3X9tekHakzHo0JZGPmqBhPq6albZtJtCfARIlbfaeUGHGLNroMD0ksOOBvMMEwhhCMKFgPnH/jFCly1g3/Jxgixta5scaGmfUSv8Xt3mW0Lh7nsb+lz7Nyje+ppLs3xhcvl5GeukPVOdekQVh9FTXVXvwHQBQK6TtwTAlIgu9fwRXFBZAxT4ygQLFzJF4TGR2x91iyt1ed3CKFLQX303tAxYD8G5Y4JzBLV8bsw7b95aDlc4CfmWhNUst4MVSLnr+Vhy88AxigJ1Eu9zqazkwxBmkm2we9SfQkCfmCUVCQGjKaQy5FdJvd8y0jEzmEglF0DovVI9yHoKrfF70XqPKrEI3tddFR70T2Yl3/nr3f94168O7wUpe84/XM1BDr2/ZQv1LYzMXNlf6Zl6b+FSU0knVjVNC0eqyMv/0QE1LYJL0mbZVc6bVdd0wqzrhr4pNDSW0yiXdNe2+mgUq2sIc5J1K0i79+Nfo3gmVE7LZEu8E/VfSV4y3p0e1zpXTZ96wsHHpPZOnT/MEZnbU+GMNk6u01ql6cO6qtmR6fmhC6Y2TPFOa5gQXrPZWXO92oQ9gEDYt+knAIgB1y0IedJTIZ9LGMzCfxtNpeoleUiam6XWXc6oq7g0P1vspUeRnVV3UE2ybxTxUXp0xPEZFhq6CyrRPWpY2PPQSvEuVLuuCVuXl3JahOOnFXYoGUTyYXx2LHElJYQRaGk9RAwz5osSKlgW0HAjTFWIIszjvIiJI9nh1rDca1GzupwWjvbFqpIQvFWtEQBsDgSSLFt0IQC7Wad+0pscfWttq88fWtSF/z5pN7Xg/ztdKkC9a+HP1PTIDxgo8JgmolN8OcB+LW872q9zjLgHqoqPbG0eIlgdmXL76rSI0DWApkA5q7hXy8Tm27200DjAV97PZCc3qjexTwWICCwpsKDIuLKBl3n8/c/GiOBdECBKaFSEYsh/CucBmdgg/n1tYcUQ4PGSbOeFM2IdjSNKGgTNRLTskwzrlYKiA+dw8oDNDWc1JhowhdBmBrSzGZx5kNA4A7VWQKtBKASFzJTQugAkpJY6QFqAUvJLrMekCulJ0IV+MSOi/BFQC8IRFkfljRp1R9xhgUY9EfijxH0qE9mQFflFixg8wbbaP4/3/0P4M0Eor0TuJ5hrOpyJOgDYwsWFxAoMOZjghTmDXJX1qlQ8t1LE0XahRkwyH3EA41bsVZX/r/lCsfW8sUFsbiO1tj4Ug46q5xhLbW2Bdja1iLokjI2k4As0YovrHvmY013ij4GXi6gCBHCZiaQwguPBK4XMcpO/LZxxn8n4V+Yx+StjaksfRp5+iO9LGJclj+VUEVnALw3En1ZoaHdmp5kUqhupELB/kmfcSR8WBhykAEhl7DygqCfnHzQ6oinegXsQdFOYF+zevLVDIFQEMJrRAstD3O6bsqBZQAEVkApMK649bTPCixSRDPk0+O9ZCjkRZxG15SS0NA7YMKyT7gH2+TkaLkI8WCATma8VB0ZQd1Zi9dfWc0k1nnzwRn7W+O4w5C3avaQt3r5+F921rdi/AkuFr1icn3HbmFwfK5vTdMrKveE0pL85hqSJBchD73ZGF62cpHZsfXG3sgbdtnY152M7srX1zyliZmWf37hbIO/CLM7dNSK6/JiwNFL00e31Rxi+L+2HtcUnoFhWYZ0hgLQiGC9RauaAhoORxc1u6xPSD+tDMwCA0mhywvsmtEf0cj3lyP3CSmvl1sOzfaepN1Aaq9RgYGdKFmp6Mt7HW5Z+gg/UBmMB/6ZyJNdqvlbn+nmeySrdjeDIQ722KLIFKYG1IP6qpHvYGaiMlUOlIHfTTQ06pO9RLgHq1pBXtDtqe6KJURds8HAEqEqVym5UjtnoALko5pUmkJ1U+6hOBdFxmzKWku+tdad87Xf039D40x3glTRc1t9CB1O6WB42OB1taYdLZt5pboJB+xCpEF6eNeEsrTj0Wo6+x1A39Xe/oR97t6m5pNl5N08VzHvqwFZ882LI7hUvnuHbOQ71YSNonCtFF6dx5fAZL2IotiXgIGioyyrmP1OP8C7MuhLKM7ErEg2GP2lIs8zm3nFjF+47fMoejmtO5LYhgD6f6vrxnRVluhMllK/Z8uY8O2NQQmLYtS7beMte9DLQWxhvK6SdZbnbgky4z+TNWt9BWNvX+R1prtqr5k1YanWhy3D9tlWUtHiwc/yY2kQGBnWvJfaNYI5wjxYGocmoT2YA0l5rhqjwwhYoDWaOwFY6ILzRswFHUSCcdjWRxno9aoV+qa/fNqwNTwssabdfcttKm2d1adNW8UGjeqqjWPbupdNv2V49dd92xV7dHZ0RuvfdY784fPLI59xM7IHbLq72ZxPFlK45vnTdv6/EVy44nMr2vyvnoFy8Idu1bDBw6EZ3otn2B9XObfNjMjOvmhXxNc+uxEWysZN5NC7XlR88ag3bwbFlvJjkH34/tzElmepcV+MqrSDVIdROZS1aQTWQXOYR+ksoJVFFZMA4ylUiCJu6kzTRG8ZMVL54p4I8MhxfyWNLFVMSjThop8uWwAhDH+RyNJLqLvKc1YGfMf+CHh79nvHn0hLF+6XXvSh37rlA/7Xg5u7Nm7jTjbXogtiVmHK+ZXcOWN6ejq+iUTac2x+XjH/7Hjzdv+kYPfWLPW0eLnapFTHbkov3gCil+7CSpl43XjPev7NNfe/e6pfSJE0dp9B+O/PCB+TkeTTfftErfAk3TXbEt7elpc2uekXZsuvAfHx6X45tP3bTxZ3uM9T39e4tdsnTcNwi5/IJSweONMSVQyIFBkMNCxm2WLRAnmMybnD7LmrAPn+XGRW4HSAIEFiNpqPuR2UljzvqptNGHMWYPsIFhLiwLAyqA5VpgpeoToRQFa+kSU3JZ0SeLsxT2yY7pBd1J22dm/5YIswd4kBO7IZonHAPaWdEL+2B3UU8uyxTjUpqeMfpkjPoYwkciug9Mo8CE1ndAp6lH9N/Si/dBnxLAsDXSTpYCs0+CEApPMIhVIkkVy9oy6UUChVaL2KYwbOywbLrpxR6PWa77JWllfcZIJm6Zv/L41o76kDFw71HetPzTi+ggLl19Z61x2u2hPYfKa8vREe+QDjWxuPDa/3zHTd/N3LTr//HPU//w6/MbmpT/nR4+naH/Eqrv2Hp85fxbEjS1zfhdf+a50yfn6A/i+nvcdF1t578ekhy4qeGVhz573vTfh7Wb4u3o0V/1PH4xYO1VB+xbl+U5rQOt0AyaNgHs61rLdyno8xRqn/70rTsuDLaYoJgmzcRfL66d6cogozJB/+QdUtFhYhlpyCmRmSoEuWWWFzsz9HHujfE5oDY5GnHWnyKsQM5Jgf9YgpdPQOsKTKqQFzZAiA2wgctgn3CMKly2wojMrnMJ5LeNLCJpy7b3FXrJYt5RJ6mEEZyPC/WosJMGjcH0qfHer0If2RH9Z0/FGwI5/jHQ5AALYZC2pL+gjfejjfFNLv/c+f3r/2EL1YrBxhgHNjBuj2X7xgRDJxT9hPECB2ENTIM5FYmk0IQOuWDMOBdyETd3ko/yGNoTMi3c/tTP9cNmd8fHqcb300HMsldxJGpfsKZlwk2vrt3/+snlZuMfM5nCZ5u3xSeCZWxGUcUeEZFr/KbMnf9ey0q6EzHEURaPeakwrazXy/GRvE8Ev9zAdEe3ZImZ0CSKQHMUObsb+AZMZ/+9jhLxLYNptCO+mzYT2ldVIsor4hJ4CE9BzELREBiBaMt70RuggPEvCW8BNx0FwmtgDOmEoStdyDrj6C9AoDedBQ50hGjZIdFuWb7dJkDLZSAN28j95GFymjxHzpGfk18XRCxcrIbaUf55aIxFTKsNO2OG9wssNIcv2CnTujAUxLA01FSoGXGea4afPeIMLzVzQc48ZkQXvWBQpRYMAY+oW2sFe8MzaNisO52KOjFRA/thVhFb1HzUZQXDwWRQaHuX+AgEbsuFIggz8dnZpFBcq2mudqFZdUV8hOCqmV6jxUOTMo++SZMGD/sp8YcpwS+R8Ksibfb82REKSBSBhGakrAh47n2OKTxN9Yd9FaWRpkiZnfhG2F9RvsPlDvsnuXe6JvWF/e5aZ6fTusgb7Jr+g2E/li+t8EX8ZWFMVBkf+MOTXDvdk/xht2tHufE/oUat2x+2LgrHaGLXzps3xhpS85fGXrBtxBdjS+anGmIbb97ZhePMplLYVfYIjgHHcgO/ec3GvX19ezeuuZmzKVYH4KRvsOPyxkh4amWtU3a7J4qEo8I9UTrkD5dcU1IDTU9Y4AzQG/3hivLbXZOmiov+9XzdUn94YoVbdk6rnKq5KioczloJHroDzgUT4FID76DzJ7luL6+AO3ERX3hbumwe6QbGuZbcTvaSY+Rx8gL5PsghEWahcFTLVZWjCJxIaoqd8oRtb3VwVJ0zeFBCfe66CMMvgGD9URbmUB8TbihaREXloEqTUaoVM9RiV8S4CH+VTwMbLIgEuJOangnTwZXXDH8bbkJM8HqNRiq8resWN1JqNHq9CBK9nc8mMHfhnpDUHdqzEPP8/h81Nxld+jZpRsvnkxuD0nrjCe1Wx6POyhJ5gvxc68xKz8/H+WWNi8Ch6Jf/salZH/fo5mKMZbyoyNSuO0J0b6nXOfJdp7eU7g3dwbrw0bRqML2nhezPal+p3yBQlv1aKVMEHi5c265OVH/NcAyL9wWlgwuvx/zujo5uzGpaEcw9ktxcT68zymsZceu/ldub6T9TZWZC1yVKpUoPOy1NK+4frzV+8nD95r8rzh8p7rc+bmiUz20/W+Z3ufxlZ9vnCtANznHDKDyjX/Yic9KIJuTOA/ZOnbCoi6wVD34XToFPyNQHBJYij1VSRe33U0BW4z/1QeOXgLyZHCBwP9PoECV6RidSv+NqMen+HKc+KUqrGMb+oDzPZaR+Haogjy3wB6JvvTDihJEmgkqGWZQZWbvpgDWZOrd9seq495hMPf82+9CC7kYzYOUOEtOtZ6AnmBQw8/ydaK6A5+VGm4YbbPqj+g8HWHmNktWI2X/B/ln+zZL1oo/vf+GRD7iNebV56PkWhse3RMbE4vL8VcRvLEzyWfGMmIhHxyxtXHRg6yFQhfYxpmfCrwq2Dqdj/i5zYQqZf9b8ivOIiOkY4kMjUOZWDFDEMKxrFlZghJs/1PqK34xv4McVZgyTFHxfPDp380HPbya7R/lF/gCKw6xDxk9V8X8X6hSh8FHHgrkJZn1cxGZlt/m/DcCIQXdTsEPFt+7uyipfgCH+QdF4EOrLINpjpSjfZSaVTiyLzOqZTiUpJ9csWDC3qmcpjENqynx+Kzuy+Mj2+SNkcjw2w13ln8ikL3fvmTFnWw1NVbcu0HIvzpzhbmmNsT9ITqdKJzfWuvX71abErEoMChkFIRFakOaLote3NKzuTZQComvu2SfXOe5aeNNjdy5QaN2SO1euokQtn1zhmx5tCwxn4zM7vrTC8SNtQWt11tVxc9g1tcqlOBSFemd1XTNtak/vfI/9rYKKs+01fbB2CJ6agWEM+Y/Gcoe5+HzbgTE3bn88REVYn+Fy4usmIEe13jk2nmbKX0GUX/PapLAg5Hy1A0oX9EJ8VjAyat3rBVZ+YVzaEAYbzX+rhOUV/DbzzzXawD61xzSJVIKdWk2mkXrSYH6vRVVzFCBwGKNSQ+hDYKPdn5IPl475pFcddWYnZHLFuKLDiLS506DvlB8YjbZTEcPKwr4CkeN5t2f1kgi6Qfmo6/NFL7v/Co7QmCp7K08J4fmoEeliThahZ7QVPaM/rq4JJHqahGt0yZE66SXvfwPyKafeAAB4nGNgZGBgYBF8I/ewqSSe3+YrAzcHAwjs/3uwAUTfPvm1/v9/BgYORrA4JwMTiAIAg3gM2QAAAHicY2BkYOBgAAEOhv9AwMHIwMiACpgAXIMEGgB4nGPVYljGwcAgzMDA8JmBjQECmBkaGGAgGAgZGJcyMUN5IHAZKr8aKBPMCGT//w/TwQgjQXwgZrzMeAVqEliEEaS3AapOmIkBKxCG26+KJgPUCwCERxCvAAAAFgAqAEIAZAFUAXgBwgIEAhoCbgLoA0QDmgO+A9gD8gRQBGYEfAS+BRIFQAWOBd4F9AZOBq4HHgd2B9wH/Ag+CJ4I7gkgCVgJZgmMCdAKJgp6CroLFgtoC74MUgxuDIoM+g1YDY4Nxg4GDooOoA7aDvAPBg+4EAwQehC0EPwRPhHkErAS+hNEE7oUQBRaFNYVVBWgFdwXIBhcGKgYzBkIGSwZahnKGnwaphsQG4p4nGNgZGBgCGd4w8DLAAKMYJILhBkjQUwAJCsBwQAAAHictVRPaxw3FH/r3cQuaUwJFHLUoRTHLLOOGzBNTiZpTvHFCYZcCtoZ7YzI7EhImgwTcugxh36MXgL9FKWFHnvuJ+i5px773pNmdx1vg1voDqP56en9/b2nBYC7oy9hBPH3Fb4Rj+AO7iLegV34JuExyp8lPEH8bcI34FOwCd+Ez+BtwrvwNXyf8B58Dr8kfAsO4feEb49+Hk0S3ofDnV8xymjyCe6KnT8THsEX44uEd2B//CbhMcrfJTxB/GPCN+Du+LeEb4IY/5HwLrjJXsJ7cDgZ/NyCF5MfEr49fjf5K+F9eLH33U/vxfHR/RNxpnNnvFkE8dg4a5wM2jSZOK1rca7LKnhxrrxyr1WRPZVzp3Nx9uTZsTj1XgV/rsq2lu7qwVXJhXIePYsH2dFJPKXDePZclUYJ7YUUwclCLaV7JcxChEpt5Fc601oS52ZpZaOVz7YmX4VgH85mXddly+E8Q5tZ6K0pnbRVP1uYJvjZ2ty31tZaFYIOMvHStGIpe9F6hUlgYiQWwYjcKRnUVBTa21r2UyGbQlin8TRHFYVf6YVVbqlDQHfznouoda4a8oUHXhg3gAVFmF4t1TpTtHmYCmIebadkMwTQjegqnVcbmXUYVDd53RbYplX2pql7caDvCbWcYy5rdfTwsWxZvdBNKZzyATtFrK4DkPnK1yNm4EBjlKCW1AKnMWphuqY2srjMnoxUKUflGAyFaxtsG0ShqEzSqVRtLzOKw9j0SZ0agg6Rn0rPNeacXb/b8B4EHMMR3IcTRGegIQcHBjy+Cwgoe4zI4Z2nVaJEI2ogw5NTqPERcI6yEio887xT+FWo/RrXAjWfot0c9+SbYjzBf5ZjtvesSXZkVUKL/iRqXsfiOjoXnIdPOQt4gNkcYaWbtoPlpt1zzsbgKlCHqpL4BmagQOmSs3yFMmKJTirW3cZfyfsWGRy0c/wucS8xJ81sZf+CeeI5oPQhzPDp+MnQ34f2WYozQ9yzl5L9WPTQo3TB3qja2dbonnO22BHNfRQrC+r9S65JMBM9flvmLjIRGRu0SWa4aocaVIeCKe4L1rPc8Z4lxAfFsdyZaJsnLyrtJfu23FeqOfAZWc05j6ETNVdEVkNe0cJzF9wVyWJVw/RaXbW8L9Amx/2U+YozH+NOV3E+rEDzJHbMU47rds66VClp51hNy3NXbOWebGpGB6h/D780ofPEyzbvMYf/yu3ae8GeSpQ5nuOQ7tQwq9sqGKJfzevRxgxQJbGWwPGGW0D+Y60FSjqu3PCt/NjsyUtTpbgvJq2xqohbvlktW1K2QzcHP6RZ803+5xmN/4xN6sza+3BDdGKZ5ofynTPTsbf/w93+G0RXOJAAeJxjYGYAg/9+DOUMmCAcACmBAh94nNvAoM2wiZGTSZtxExeI3M7Vmhtqq8rAob2dOzXYQU8GxOKJ8LDQkASxeJ3NteWFQSw+HRUZER4Qi19OQpiPA8QS4OPhZGcBsQTBAMQS2jChIMAAyGLYzgg3mgluNDPcaBa40axwo9nkJKFGs8ON5oAbzQk3epMwI7v2BgYF19pMCRcAxAEoGgAAAA==') format('truetype'); } .ms-Icon { @@ -19,6 +19,7 @@ // Mixins @mixin ms-Icon--Add { content: "\E710"; } @mixin ms-Icon--AddField { content: "\E4C7"; } + @mixin ms-Icon--AddTable { content: "\E4C6"; } @mixin ms-Icon--AddTo { content: "\ECC8"; } @mixin ms-Icon--AlertSolid { content: "\F331"; } @mixin ms-Icon--AutoEnhanceOff { content: "\E78E"; } @@ -46,15 +47,19 @@ @mixin ms-Icon--Down { content: "\E74B"; } @mixin ms-Icon--Download { content: "\E896"; } @mixin ms-Icon--Edit { content: "\E70F"; } + @mixin ms-Icon--EditTable { content: "\E4C4"; } @mixin ms-Icon--FieldChanged { content: "\F2C3"; } @mixin ms-Icon--FieldNotChanged { content: "\F2C4"; } @mixin ms-Icon--Filter { content: "\E71C"; } + @mixin ms-Icon--FixedColumnWidth { content: "\E3EA"; } @mixin ms-Icon--GroupedList { content: "\EF74"; } @mixin ms-Icon--GroupList { content: "\F168"; } @mixin ms-Icon--Help { content: "\E897"; } @mixin ms-Icon--Hide3 { content: "\F6AC"; } @mixin ms-Icon--Home { content: "\E80F"; } @mixin ms-Icon--Info { content: "\E946"; } + @mixin ms-Icon--InsertColumnsRight { content: "\F64B"; } + @mixin ms-Icon--InsertRowsBelow { content: "\F64D"; } @mixin ms-Icon--Insights { content: "\E3AF"; } @mixin ms-Icon--KeyPhraseExtraction { content: "\E395"; } @mixin ms-Icon--Label { content: "\E932"; } @@ -83,11 +88,17 @@ @mixin ms-Icon--StatusCircleCheckmark { content: "\F13E"; } @mixin ms-Icon--System { content: "\E770"; } @mixin ms-Icon--Table { content: "\ED86"; } + @mixin ms-Icon--TableBrandedColumn { content: "\E3F1"; } + @mixin ms-Icon--TableBrandedRow { content: "\E3EE"; } + @mixin ms-Icon--TableFirstColumn { content: "\E3EF"; } + @mixin ms-Icon--TableGroup { content: "\F6D9"; } + @mixin ms-Icon--TableHeaderRow { content: "\E3EC"; } @mixin ms-Icon--Tag { content: "\E8EC"; } @mixin ms-Icon--TagGroup { content: "\E3F6"; } @mixin ms-Icon--TextDocument { content: "\F029"; } @mixin ms-Icon--TextField { content: "\EDC3"; } @mixin ms-Icon--Up { content: "\E74A"; } + @mixin ms-Icon--UpdateRestore { content: "\E777"; } @mixin ms-Icon--View { content: "\E890"; } @mixin ms-Icon--WarningSolid { content: "\F736"; } @mixin ms-Icon--ZoomIn { content: "\E8A3"; } @@ -97,6 +108,7 @@ // Classes .ms-Icon--Add:before { @include ms-Icon--Add } .ms-Icon--AddField:before { @include ms-Icon--AddField } + .ms-Icon--AddTable:before { @include ms-Icon--AddTable } .ms-Icon--AddTo:before { @include ms-Icon--AddTo } .ms-Icon--AlertSolid:before { @include ms-Icon--AlertSolid } .ms-Icon--AutoEnhanceOff:before { @include ms-Icon--AutoEnhanceOff } @@ -124,15 +136,19 @@ .ms-Icon--Down:before { @include ms-Icon--Down } .ms-Icon--Download:before { @include ms-Icon--Download } .ms-Icon--Edit:before { @include ms-Icon--Edit } + .ms-Icon--EditTable:before { @include ms-Icon--EditTable } .ms-Icon--FieldChanged:before { @include ms-Icon--FieldChanged } .ms-Icon--FieldNotChanged:before { @include ms-Icon--FieldNotChanged } .ms-Icon--Filter:before { @include ms-Icon--Filter } + .ms-Icon--FixedColumnWidth:before { @include ms-Icon--FixedColumnWidth } .ms-Icon--GroupedList:before { @include ms-Icon--GroupedList } .ms-Icon--GroupList:before { @include ms-Icon--GroupList } .ms-Icon--Help:before { @include ms-Icon--Help } .ms-Icon--Hide3:before { @include ms-Icon--Hide3 } .ms-Icon--Home:before { @include ms-Icon--Home } .ms-Icon--Info:before { @include ms-Icon--Info } + .ms-Icon--InsertColumnsRight:before { @include ms-Icon--InsertColumnsRight } + .ms-Icon--InsertRowsBelow:before { @include ms-Icon--InsertRowsBelow } .ms-Icon--Insights:before { @include ms-Icon--Insights } .ms-Icon--KeyPhraseExtraction:before { @include ms-Icon--KeyPhraseExtraction } .ms-Icon--Label:before { @include ms-Icon--Label } @@ -161,11 +177,17 @@ .ms-Icon--StatusCircleCheckmark:before { @include ms-Icon--StatusCircleCheckmark } .ms-Icon--System:before { @include ms-Icon--System } .ms-Icon--Table:before { @include ms-Icon--Table } + .ms-Icon--TableBrandedColumn:before { @include ms-Icon--TableBrandedColumn } + .ms-Icon--TableBrandedRow:before { @include ms-Icon--TableBrandedRow } + .ms-Icon--TableFirstColumn:before { @include ms-Icon--TableFirstColumn } + .ms-Icon--TableGroup:before { @include ms-Icon--TableGroup } + .ms-Icon--TableHeaderRow:before { @include ms-Icon--TableHeaderRow } .ms-Icon--Tag:before { @include ms-Icon--Tag } .ms-Icon--TagGroup:before { @include ms-Icon--TagGroup } .ms-Icon--TextDocument:before { @include ms-Icon--TextDocument } .ms-Icon--TextField:before { @include ms-Icon--TextField } .ms-Icon--Up:before { @include ms-Icon--Up } + .ms-Icon--UpdateRestore:before { @include ms-Icon--UpdateRestore } .ms-Icon--View:before { @include ms-Icon--View } .ms-Icon--WarningSolid:before { @include ms-Icon--WarningSolid } .ms-Icon--ZoomIn:before { @include ms-Icon--ZoomIn } diff --git a/src/common/constants.ts b/src/common/constants.ts index 68a0ee55..0377228e 100644 --- a/src/common/constants.ts +++ b/src/common/constants.ts @@ -42,6 +42,8 @@ export const constants = { autoLabelBatchSizeMax: 10, autoLabelBatchSizeMin: 3, showOriginLabelsByDefault: true, + fieldsSchema: "http://www.azure.com/schema/formrecognizer/fields.json", + labelsSchema: "http://www.azure.com/schema/formrecognizer/labels.json", pdfjsWorkerSrc(version: string) { return `https://fotts.azureedge.net/npm/pdfjs-dist/${version}/pdf.worker.js`; diff --git a/src/common/localization/en-us.ts b/src/common/localization/en-us.ts index 0610098c..02662fc8 100644 --- a/src/common/localization/en-us.ts +++ b/src/common/localization/en-us.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import {IAppStrings} from "../strings"; +import { IAppStrings } from "../strings"; /*eslint-disable no-template-curly-in-string, no-multi-str*/ @@ -271,7 +271,7 @@ export const english: IAppStrings = { localFile: "Local file", url: "URL", }, - layoutPredict:{ + layoutPredict: { layout: "Layout", title: "Layout analyze", inProgress: "Analysis in progress...", @@ -337,7 +337,43 @@ export const english: IAppStrings = { autoLabel: "Auto-labeled: ", revised: "Revised: ", }, + regionTableTags: { + configureTag: { + errors: { + atLeastOneColumn: "Please assign at least one column.", + atLeastOneRow: "Please assign at least one row.", + checkFields: "Please check if you filled out all required fields correctly.", + assignTagName: "Tag name cannot be empty", + notUniqueTagName: "Tag name should be unique", + emptyTagName: "Please assign name for your table tag.", + emptyName: "Name cannot be empty", + notUniqueName: "Name should be unique", + notCompatibleTableColOrRowType: "\${kind}\ type is not compatible with this type. If you want to change type of this \${kind}\, please remove or assign all labels which using this \${kind}\ in your project.", + } + }, + tableLabeling: { + title: "Label table", + tableName: "Table name", + description: { + title: "To start labeling your table:", + stepOne: "Select the words on the document you want to label", + stepTwo: "Click the table cell you want to label selected words to", + }, + buttons: { + done: "Done", + reconfigureTable: "Reconfigure table", + addRow: "Add row" + }, + }, + confirm: { + reconfigure: { + title: "Reconfigure tag", + message: "Are you sure you want to reconfigure this tag? \n It will be reconfigured for all documents.", + } + } + }, toolbar: { + addTable: "Add new table tag", add: "Add new tag", onlyShowCurrentPageTags: "Only show tags used in current page", showAllTags: "Show all tags", @@ -524,7 +560,7 @@ export const english: IAppStrings = { runOcrOnAllDocuments: "Run Layout on all documents", runAutoLabelingCurrentDocument: "Auto-label the current document", runAutoLabelingOnMultipleUnlabeledDocuments: "Auto-label multiple unlabeled documents", - noPredictModelOnProject: "Predict model not avaliable, please train the model first.", + noPredictModelOnProject: "Predict model not available, please train the model first.", } } }, @@ -620,8 +656,8 @@ export const english: IAppStrings = { description: "Select all labels for a tag on document and press 'delete' key" }, groupSelect: { - name: "Select multiple words by drawing a bounding box around encompased words", - description: "Press and hold the shift key. Then, click and hold left mouse button. Then, drag the pointer to draw the bounding box around encompased words" + name: "Select multiple words by drawing a bounding box around encompassed words", + description: "Press and hold the shift key. Then, click and hold left mouse button. Then, drag the pointer to draw the bounding box around encompassed words" } }, headers: { @@ -642,7 +678,7 @@ export const english: IAppStrings = { }, genericRenderError: { title: "Error Loading Application", - message: "An error occured while rendering the application. Please try again", + message: "An error occurred while rendering the application. Please try again", }, projectInvalidSecurityToken: { title: "Error loading project file", @@ -777,7 +813,7 @@ export const english: IAppStrings = { tokenNameExist: "Warning! You already have token with same name as in shared project. Please create a new token, and update the existing project which uses ''${sharedTokenName}'' with new token name." }, copy: { - success: "Project token copied to clipboard and ready to share. Reciever of project token can click 'Open Cloud Project' from the Home page to use shared token.", + success: "Project token copied to clipboard and ready to share. Receiver of project token can click 'Open Cloud Project' from the Home page to use shared token.", } }, }; diff --git a/src/common/localization/es-cl.ts b/src/common/localization/es-cl.ts index 2c2a290c..728dca27 100644 --- a/src/common/localization/es-cl.ts +++ b/src/common/localization/es-cl.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT license. -import {IAppStrings} from "../strings"; +import { IAppStrings } from "../strings"; /*eslint-disable no-template-curly-in-string, no-multi-str*/ @@ -336,7 +336,44 @@ export const spanish: IAppStrings = { autoLabel: "Auto-etiquetado: ", revised: "Revisado: ", }, + regionTableTags: { + configureTag: { + errors: { + atLeastOneColumn: "Asigne al menos una columna.", + atLeastOneRow: "Asigne al menos una fila.", + checkFields: "Verifique si completó todos los campos obligatorios correctamente.", + assignTagName: "El nombre de la etiqueta no puede estar vacío.", + notUniqueTagName: "El nombre de la etiqueta debe ser único", + emptyTagName: "Asigne un nombre para la etiqueta de su mesa.", + emptyName: "El nombre no puede estar vacío", + notUniqueName: "El nombre debe ser único", + notCompatibleTableColOrRowType: "El tipo $ {kind} no es compatible con este tipo. Si desea cambiar el tipo de este $ {kind}, elimine o asigne todas las etiquetas que usan este $ {kind} en su proyecto." + } + }, + tableLabeling: { + title: "Tabla de etiquetas", + tableName: "Nombre de la tabla", + description: { + title: "Para comenzar a etiquetar su mesa:", + stepOne: "Seleccione las palabras del documento que desea etiquetar", + stepTwo: "Haga clic en la celda de la tabla a la que desea etiquetar las palabras seleccionadas", + }, + buttons: { + done: "Hecho", + reconfigureTable: "Reconfigurar la tabla", + addRow: "Añadir fila" + } + }, + confirm: { + reconfigure: { + title: "Reconfigurar etiqueta", + message: "¿Está seguro de que desea volver a configurar esta etiqueta?\n Se volverá a configurar para todos los documentos.", + } + } + + }, toolbar: { + addTable: "Agregar nueva etiqueta", add: "Agregar nueva etiqueta", onlyShowCurrentPageTags: "Mostrar solo las etiquetas utilizadas en la página actual", showAllTags: "Mostrar todas las etiquetas", diff --git a/src/common/mockFactory.ts b/src/common/mockFactory.ts index 9062df19..f80714d4 100644 --- a/src/common/mockFactory.ts +++ b/src/common/mockFactory.ts @@ -489,6 +489,7 @@ export default class MockFactory { saveAssetMetadataAndCleanEmptyLabel: jest.fn(()=> Promise.resolve()), updateProjectTag: jest.fn(() => Promise.resolve()), deleteProjectTag: jest.fn(() => Promise.resolve()), + reconfigureTableTag: jest.fn(() => Promise.resolve()), }; } diff --git a/src/common/strings.ts b/src/common/strings.ts index 9a7249de..052f76ff 100644 --- a/src/common/strings.ts +++ b/src/common/strings.ts @@ -306,22 +306,23 @@ export interface IAppStrings { color: string, } toolbar: { - add: string, - onlyShowCurrentPageTags: string, - showAllTags: string, + add: string; + addTable: string; + contextualMenu: string; + delete: string; + edit: string; + format: string; + lock: string; + moveDown: string; + moveUp: string; + rename: string; + search: string; + type: string; + vertiline: string; + onlyShowCurrentPageTags:string, + showAllTags:string, showOriginLabels: string hideOriginLabels: string, - contextualMenu: string, - delete: string, - edit: string, - format: string, - lock: string, - moveDown: string, - moveUp: string, - rename: string, - search: string, - type: string, - vertiline: string, } colors: { white: string, @@ -346,12 +347,47 @@ export interface IAppStrings { notCompatibleTagType: string, checkboxPerTagLimit: string, notCompatibleWithDrawnRegionTag: string, - replaceAllExitingLabels: string, - replaceAllExitingLabelsTitle: string, + replaceAllExitingLabels:string, + replaceAllExitingLabelsTitle:string, }, - preText: { - autoLabel: string, - revised: string, + preText:{ + autoLabel:string, + revised:string, + } + regionTableTags: { + configureTag: { + errors: { + atLeastOneColumn: string, + atLeastOneRow: string, + checkFields: string, + assignTagName: string, + notUniqueTagName: string, + emptyTagName: string, + emptyName: string, + notUniqueName: string, + notCompatibleTableColOrRowType: string; + }, + }, + tableLabeling: { + title: string, + description: { + title: string, + stepOne: string, + stepTwo: string, + }, + tableName: string, + buttons: { + done: string, + reconfigureTable: string, + addRow: string, + } + }, + confirm: { + reconfigure: { + title: string, + message: string, + } + } } }; connections: { @@ -677,7 +713,7 @@ interface IErrorMetadata { message: string, } -interface IStrings extends LocalizedStringsMethods, IAppStrings { } +interface IStrings extends LocalizedStringsMethods, IAppStrings {} export const strings: IStrings = new LocalizedStrings({ en: english, diff --git a/src/common/themes.ts b/src/common/themes.ts index 4859da72..2cfbdd53 100644 --- a/src/common/themes.ts +++ b/src/common/themes.ts @@ -1,4 +1,4 @@ -import {createTheme, IPalette} from "@fluentui/react"; +import {createTheme, IPalette, DefaultPalette} from "@fluentui/react"; const rightPaneDefaultButtonPalette = { themePrimary: "#E9ECEF", @@ -306,6 +306,7 @@ const subMenuPalette = { const rightPaneDefaultButtonTheme = createTheme({palette: rightPaneDefaultButtonPalette}); const defaultDarkTheme = createTheme({palette: DarkDefaultPalette}); +const defaultTheme = createTheme({palette: DefaultPalette}); const whiteTheme = createTheme({palette: whiteButtonPalette}); const redTheme = createTheme({palette: redButtonPalette}); const greenTheme = createTheme({palette: greenButtonPalette}); @@ -356,6 +357,9 @@ export function getGreenWithWhiteBackgroundTheme() { export function getDefaultDarkTheme() { return defaultDarkTheme; } +export function getDefaultTheme() { + return defaultTheme; +} export function getSubMenuTheme() { return subMenuTheme; diff --git a/src/common/utils.ts b/src/common/utils.ts index d4722568..37f4bb36 100644 --- a/src/common/utils.ts +++ b/src/common/utils.ts @@ -2,9 +2,10 @@ // Licensed under the MIT license. import Guard from "./guard"; -import { IProject, ISecurityToken, IProviderOptions, ISecureString, ITag } from "../models/applicationState"; +import { IProject, ISecurityToken, IProviderOptions, ISecureString, ITag, FieldType, FieldFormat } from "../models/applicationState"; import { encryptObject, decryptObject, encrypt, decrypt } from "./crypto"; import UTIF from "utif"; +import { useState, useEffect } from 'react'; import {constants} from "./constants"; import _ from "lodash"; import JsZip from 'jszip'; @@ -198,7 +199,7 @@ export async function throttle(max: number, arr: T[], worker: (payload: T) => } export function delay(ms: number) { - return new Promise((resolve) => { + return new Promise((resolve) => { setTimeout(() => { resolve(); }, ms); @@ -361,6 +362,64 @@ export function fixedEncodeURIComponent(str: string) { }) } + +/** + * Filters tag's format according to chosen tag's type + * @param FieldType The json object + * @returns [] of corresponding tag's formats + */ +export function filterFormat(type: FieldType | string): any[] { + switch (type) { + case FieldType.String: + return [ + FieldFormat.NotSpecified, + FieldFormat.Alphanumeric, + FieldFormat.NoWhiteSpaces, + ]; + case FieldType.Number: + return [ + FieldFormat.NotSpecified, + FieldFormat.Currency, + ]; + case FieldType.Date: + return [ + FieldFormat.NotSpecified, + FieldFormat.DMY, + FieldFormat.MDY, + FieldFormat.YMD, + ]; + case FieldType.Object: + case FieldType.Array: + return [ + FieldFormat.NotSpecified, + ]; + default: + return [ FieldFormat.NotSpecified ]; + } +} + +/** + * UseDebounce - custom React hook for handling fast changing values, the hook re-call only if value or delay changes + * @param value The value to be changed + * @param delay - delay after which the change will be registered in milliseconds + */ +export function useDebounce(value: any, delay: number) { + const [debouncedValue, setDebouncedValue] = useState(value); + useEffect( + () => { + // Update debounced value after delay + const delayHandler = setTimeout(() => { + setDebouncedValue(value); + }, delay); + // cleanup + return () => { + clearTimeout(delayHandler); + }; + }, + [value, delay] + ); + return debouncedValue; + } export function getAPIVersion(projectAPIVersion: string): string { return (constants.enableAPIVersionSelection && projectAPIVersion) ? projectAPIVersion : constants.apiVersion; } @@ -416,6 +475,20 @@ export function downloadFile(data: any, fileName: string, prefix?: string): void fileLink.click(); } +export function getTagCategory (tagType: string) { + switch (tagType) { + case FieldType.SelectionMark: + case "checkbox": + return "checkbox"; + case FieldType.Object: + return FieldType.Object; + case FieldType.Array: + return FieldType.Array; + default: + return "text"; + } +} + export type zipData = { fileName: string; data: any; diff --git a/src/config/fabric-icons.json b/src/config/fabric-icons.json index c29704e7..8f2c19b5 100644 --- a/src/config/fabric-icons.json +++ b/src/config/fabric-icons.json @@ -15,12 +15,12 @@ "unicode": "E4C7" }, { - "name": "AddTo", - "unicode": "ECC8" + "name": "AddTable", + "unicode": "E4C6" }, { - "name": "AlertSolid", - "unicode": "F331" + "name": "AddTo", + "unicode": "ECC8" }, { "name": "AutoEnhanceOff", @@ -30,6 +30,10 @@ "name": "AutoEnhanceOn", "unicode": "E78D" }, + { + "name": "AlertSolid", + "unicode": "F331" + }, { "name": "AzureAPIManagement", "unicode": "F37F" @@ -122,6 +126,10 @@ "name": "Edit", "unicode": "E70F" }, + { + "name": "EditTable", + "unicode": "E4C4" + }, { "name": "FieldChanged", "unicode": "F2C3" @@ -134,6 +142,10 @@ "name": "Filter", "unicode": "E71C" }, + { + "name": "FixedColumnWidth", + "unicode": "E3EA" + }, { "name": "GroupedList", "unicode": "EF74" @@ -158,6 +170,14 @@ "name": "Info", "unicode": "E946" }, + { + "name": "InsertColumnsRight", + "unicode": "F64B" + }, + { + "name": "InsertRowsBelow", + "unicode": "F64D" + }, { "name": "Insights", "unicode": "E3AF" @@ -270,6 +290,18 @@ "name": "Table", "unicode": "ED86" }, + { + "name": "TableBrandedColumn", + "unicode": "E3F1" + }, + { + "name": "TableBrandedRow", + "unicode": "E3EE" + }, + { + "name": "TableGroup", + "unicode": "F6D9" + }, { "name": "Tag", "unicode": "E8EC" @@ -290,6 +322,10 @@ "name": "Up", "unicode": "E74A" }, + { + "name": "UpdateRestore", + "unicode": "E777" + }, { "name": "View", "unicode": "E890" @@ -307,4 +343,4 @@ "unicode": "E71F" } ] -} \ No newline at end of file +} diff --git a/src/models/applicationState.ts b/src/models/applicationState.ts index feadddfb..559c17f8 100644 --- a/src/models/applicationState.ts +++ b/src/models/applicationState.ts @@ -119,11 +119,28 @@ export interface IFileInfo { * @member color - User editable color associated to tag */ export interface ITag { - name: string, - color: string, - type: FieldType, - format: FieldFormat, - documentCount?: number, + name: string; + color: string; + type: FieldType; + format: FieldFormat; + documentCount?: number; +} + +export interface ITableTag extends ITag { + fields?: ITableField[]; + itemType?: string; + definition?: ITableDefinition, + visualizationHint?: TableVisualizationHint, +} + +export enum TableHeaderTypeAndFormat { + Rows = "rows", + Columns = "columns" +} + +export enum TableVisualizationHint { + Horizontal = "horizontal", + Vertical = "vertical", } /** @@ -217,7 +234,14 @@ export interface IRegion { boundingBox?: IBoundingBox, value?: string, pageNumber: number, + isTableRegion?: boolean, changed?: boolean, + +} + +export interface ITableRegion extends IRegion { + rowKey: string, + columnKey: string, } /** @@ -228,6 +252,8 @@ export interface ILabelData { document: string, labelingState?: AssetLabelingState; labels: ILabel[], + tableLabels?: ITableLabel[], + $schema?: string, } /** @@ -244,6 +270,18 @@ export interface ILabel { revised?: boolean; } +export interface ITableLabel { + tableKey: string, + labels: ITableCellLabel[], +} + +export interface ITableCellLabel { + rowKey: string, + columnKey: string, + value: IFormRegion[], + revised?: boolean; +} + /** * @name - IFormRegion * @description - Defines a region which consumed by FormRecognizer @@ -290,13 +328,39 @@ export interface ISecurityToken { } export interface IField { - fieldKey: string, - fieldType: FieldType, - fieldFormat: FieldFormat, + fieldKey: string; + fieldType: FieldType; + fieldFormat: FieldFormat; +} + +export interface ITableKeyField extends IField { + documentCount?: number; +} + +export interface ITableField extends IField { + itemType?: string; + fields?: ITableField[]; + visualizationHint?: TableVisualizationHint; +} + +export interface ITableDefinition extends IField { + itemType?: string; + fields?: ITableField[]; +} + +export interface ITableConfigItem { + name: string, + format: string, + type: string; + originalName?: string; + originalFormat?: string, + originalType?: string; } export interface IFieldInfo { + schema?: string, fields: IField[], + definitions?: any, } export interface IRecentModel { @@ -434,12 +498,21 @@ export enum FieldType { Time = "time", Integer = "integer", SelectionMark = "selectionMark", + Array = "array", + Object = "object", } export enum LabelType { DrawnRegion = "region" } +export enum TableElements { + rows = "rows", + row = "row", + columns = "columns", + column = "column", +} + export enum FieldFormat { NotSpecified = "not-specified", Currency = "currency", @@ -463,3 +536,15 @@ export enum ImageMapParent { Predict = "predict", Editor = "editor", } + +export enum TagInputMode { + Basic = "basic", + ConfigureTable = "configureTable", + LabelTable = "labelTable", +} + +export enum AnalyzedTagsMode { + default = "default", + LoadingRecentModel = "loadingRecentModel", + ViewTable = "viewTable", +} diff --git a/src/providers/storage/azureBlobStorage.ts b/src/providers/storage/azureBlobStorage.ts index 43060279..1608ce69 100644 --- a/src/providers/storage/azureBlobStorage.ts +++ b/src/providers/storage/azureBlobStorage.ts @@ -256,7 +256,7 @@ export class AzureBlobStorage implements IStorageProvider { return asset; } } - else{ + else { return null; } } diff --git a/src/react/components/common/confirm/confirm.scss b/src/react/components/common/confirm/confirm.scss new file mode 100644 index 00000000..94e54731 --- /dev/null +++ b/src/react/components/common/confirm/confirm.scss @@ -0,0 +1,9 @@ +@import './../../../../assets/sass/theme.scss'; + +.spinner-container { + display: flex; + width: 16rem; + height: 4rem; + align-items: center; + justify-content: center; +} diff --git a/src/react/components/common/confirm/confirm.tsx b/src/react/components/common/confirm/confirm.tsx index e58f851a..48b2ed3d 100644 --- a/src/react/components/common/confirm/confirm.tsx +++ b/src/react/components/common/confirm/confirm.tsx @@ -11,9 +11,12 @@ import { ITheme, PrimaryButton, DefaultButton, + SpinnerSize, + Spinner } from "@fluentui/react"; import { MessageFormatHandler } from "../messageBox/messageBox"; -import { getDarkTheme } from "../../../../common/themes"; +import { getDarkTheme, getDefaultDarkTheme } from "../../../../common/themes"; +import "./confirm.scss"; /** * Properties for Confirm Component @@ -26,6 +29,7 @@ import { getDarkTheme } from "../../../../common/themes"; export interface IConfirmProps { title?: string; message: string | ReactElement | MessageFormatHandler; + loadMessage?: string; confirmButtonText?: string; cancelButtonText?: string; confirmButtonTheme?: ITheme; @@ -40,6 +44,7 @@ export interface IConfirmProps { export interface IConfirmState { params: any[]; hideDialog: boolean; + loading: boolean; } /** @@ -54,12 +59,14 @@ export default class Confirm extends React.Component @@ -78,15 +86,26 @@ export default class Confirm extends React.Component