From df545e4ec64271307b1979feb5e786f449433639 Mon Sep 17 00:00:00 2001 From: Ghislain B Date: Mon, 25 Jan 2021 10:28:06 -0500 Subject: [PATCH] feat(editors): add Clone functionality to Composite Editor (#236) * feat(editors): add Clone functionality to Composite Editor - clone allows you to select a row and clone it, the benefit is that it opens the Composite Editor with the selected row data context and then it allows you to edit anything in the form before doing the actual clone * fix(editors): Composite Editor input change should process only once - in some cases we could fall into an infinite loop if a field changes another field which changes the first field and we fall into inifinite... to resolve this, we can provide an extra paramater "triggeredBy" ("user" or "system") and the developer can change his code to make sure a system change doesn't run more than once to avoid the infinite loop from happening * refactor: add proper onSave callbacks for the Clone modal type - add new cloned item data context to the onSave - add applyChangesCallback to the onSave - add post callback code to the mdal type switch/case * fix(formatters): Complex Object Formatter rename `complexFieldLabel` - rename from `complexFieldLabel` to `complexField` but keep previous property as an alternative to avoid breaking anyone's code * fix(metrics): refresh metrics also when providing new data to DataView * refactor: add onSave to all modal type and remove applyChanges callback - the applyChanges callback is kind of unnecessary, we could remove it. If developer wants to refresh the grid, it's his own decision and won't interfere with this applyChanges anyway. This way is better because we no longer require the user to call the applyChanges callback and we didn't want to rely on that for all the other create/clone/edit which can now also benefit from this * fix(metrics): use onRowsOrCountChanged to refresh metrics * fix(pinning): recalculate frozen idx properly when column shown changes - when using ColumnPicker, GridMenu or hiding a column via HeaderMenu, it has to recalculate the frozenColumn index because SlickGrid doesn't take care of that and the previous fix that I implement sometimes become out of sync. This PR simplifies the frozenColumn index position, it will simply update it when the index is different, as simple as that. --- .eslintrc | 5 +- .../assets/i18n/en.json | 3 +- .../assets/i18n/fr.json | 3 +- .../webpack-demo-vanilla-bundle/package.json | 14 +- .../src/examples/example12.html | 17 +- .../src/examples/example12.ts | 77 ++- package.json | 10 +- packages/common/package.json | 6 +- packages/common/src/constants.ts | 3 +- .../__tests__/autoCompleteEditor.spec.ts | 28 +- .../editors/__tests__/checkboxEditor.spec.ts | 8 +- .../src/editors/__tests__/dateEditor.spec.ts | 8 +- .../editors/__tests__/dualInputEditor.spec.ts | 8 +- .../src/editors/__tests__/floatEditor.spec.ts | 12 +- .../editors/__tests__/integerEditor.spec.ts | 12 +- .../editors/__tests__/longTextEditor.spec.ts | 8 +- .../editors/__tests__/selectEditor.spec.ts | 28 +- .../editors/__tests__/sliderEditor.spec.ts | 8 +- .../src/editors/__tests__/textEditor.spec.ts | 8 +- .../common/src/editors/autoCompleteEditor.ts | 31 +- packages/common/src/editors/checkboxEditor.ts | 9 +- packages/common/src/editors/dateEditor.ts | 9 +- .../common/src/editors/dualInputEditor.ts | 7 +- packages/common/src/editors/floatEditor.ts | 9 +- packages/common/src/editors/integerEditor.ts | 9 +- packages/common/src/editors/longTextEditor.ts | 9 +- packages/common/src/editors/selectEditor.ts | 32 +- packages/common/src/editors/sliderEditor.ts | 9 +- packages/common/src/editors/textEditor.ts | 9 +- .../enums/compositeEditorModalType.type.ts | 2 +- packages/common/src/enums/index.ts | 1 + packages/common/src/enums/plainFunc.type.ts | 2 + .../common/src/filters/autoCompleteFilter.ts | 2 +- .../common/src/filters/dateRangeFilter.ts | 4 +- packages/common/src/filters/inputFilter.ts | 2 +- .../common/src/filters/nativeSelectFilter.ts | 2 +- packages/common/src/filters/selectFilter.ts | 2 +- packages/common/src/filters/sliderFilter.ts | 2 +- .../common/src/filters/sliderRangeFilter.ts | 2 +- .../src/formatters/complexObjectFormatter.ts | 21 +- .../common/src/formatters/formatters.index.ts | 3 +- packages/common/src/global-grid-options.ts | 1 + ...mpositeEditorOpenDetailOption.interface.ts | 27 +- .../collectionOverrideArgs.interface.ts | 7 + .../common/src/interfaces/locale.interface.ts | 3 + .../src/interfaces/slickDataView.interface.ts | 13 +- .../src/interfaces/slickGrid.interface.ts | 4 +- .../styles/_variables-theme-salesforce.scss | 1 + packages/composite-editor-component/README.md | 3 +- .../composite-editor-component/package.json | 2 +- .../slick-composite-editor.component.spec.ts | 502 ++++++++++++++---- .../src/slick-composite-editor.component.ts | 435 +++++++++------ packages/empty-warning-component/package.json | 2 +- .../slickgrid-vanilla-bundle.zip | Bin 697955 -> 699134 bytes packages/vanilla-bundle/package.json | 4 +- .../__tests__/slick-vanilla-grid.spec.ts | 35 +- .../components/slick-vanilla-grid-bundle.ts | 79 +-- test/cypress/integration/example12.spec.js | 76 +++ test/mockSlickEvent.ts | 10 +- test/translateServiceStub.ts | 2 + yarn.lock | 436 +++++---------- 61 files changed, 1315 insertions(+), 771 deletions(-) create mode 100644 packages/common/src/enums/plainFunc.type.ts diff --git a/.eslintrc b/.eslintrc index 8643dc33d..b58e83672 100644 --- a/.eslintrc +++ b/.eslintrc @@ -68,8 +68,7 @@ "@typescript-eslint/no-this-alias": "error", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-unused-vars-experimental": "error", + "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/prefer-for-of": "off", "@typescript-eslint/prefer-function-type": "error", "@typescript-eslint/prefer-namespace-keyword": "error", @@ -184,4 +183,4 @@ "use-isnan": "error", "valid-typeof": "off" } -} +} \ No newline at end of file diff --git a/examples/webpack-demo-vanilla-bundle/assets/i18n/en.json b/examples/webpack-demo-vanilla-bundle/assets/i18n/en.json index 4dc685044..1ff5bcb08 100644 --- a/examples/webpack-demo-vanilla-bundle/assets/i18n/en.json +++ b/examples/webpack-demo-vanilla-bundle/assets/i18n/en.json @@ -8,6 +8,7 @@ "CLEAR_ALL_GROUPING": "Clear all Grouping", "CLEAR_ALL_SORTING": "Clear all Sorting", "CLEAR_FROZEN_COLUMNS": "Clear Frozen Columns", + "CLONE": "Clone", "COLLAPSE_ALL_GROUPS": "Collapse all Groups", "COLUMNS": "Columns", "COMMANDS": "Commands", @@ -88,4 +89,4 @@ "TASK_X": "Task {{x}}", "TITLE": "Title", "TRUE": "True" -} +} \ No newline at end of file diff --git a/examples/webpack-demo-vanilla-bundle/assets/i18n/fr.json b/examples/webpack-demo-vanilla-bundle/assets/i18n/fr.json index 38ba9676f..aa1ca065d 100644 --- a/examples/webpack-demo-vanilla-bundle/assets/i18n/fr.json +++ b/examples/webpack-demo-vanilla-bundle/assets/i18n/fr.json @@ -8,6 +8,7 @@ "CLEAR_ALL_GROUPING": "Supprimer tous les groupes", "CLEAR_ALL_SORTING": "Supprimer tous les tris", "CLEAR_FROZEN_COLUMNS": "Libérer les colonnes gelées", + "CLONE": "Cloner", "COLLAPSE_ALL_GROUPS": "Réduire tous les groupes", "COLUMNS": "Colonnes", "COMMANDS": "Commandes", @@ -89,4 +90,4 @@ "TITLE": "Titre", "TITLE.NAME": "Nom du Titre", "TRUE": "Vrai" -} +} \ No newline at end of file diff --git a/examples/webpack-demo-vanilla-bundle/package.json b/examples/webpack-demo-vanilla-bundle/package.json index 3aa9cd54f..3c772aa19 100644 --- a/examples/webpack-demo-vanilla-bundle/package.json +++ b/examples/webpack-demo-vanilla-bundle/package.json @@ -35,8 +35,8 @@ "devDependencies": { "@types/jquery": "^3.5.5", "@types/moment": "^2.13.0", - "@types/node": "^14.14.20", - "@types/webpack": "^4.41.25", + "@types/node": "^14.14.22", + "@types/webpack": "^4.41.26", "clean-webpack-plugin": "^3.0.0", "copy-webpack-plugin": "^7.0.0", "css-loader": "^5.0.1", @@ -44,15 +44,15 @@ "fork-ts-checker-webpack-plugin": "^6.1.0", "html-loader": "^1.3.2", "html-webpack-plugin": "next", - "mini-css-extract-plugin": "^1.3.3", + "mini-css-extract-plugin": "^1.3.4", "node-sass": "5.0.0", - "sass-loader": "^10.1.0", + "sass-loader": "^10.1.1", "style-loader": "^2.0.0", "ts-loader": "^8.0.14", "ts-node": "^9.1.1", "url-loader": "^4.1.1", - "webpack": "^5.12.3", - "webpack-cli": "^4.3.1", - "webpack-dev-server": "^3.11.1" + "webpack": "^5.16.0", + "webpack-cli": "^4.4.0", + "webpack-dev-server": "^3.11.2" } } \ No newline at end of file diff --git a/examples/webpack-demo-vanilla-bundle/src/examples/example12.html b/examples/webpack-demo-vanilla-bundle/src/examples/example12.html index c743de318..afc496fcd 100644 --- a/examples/webpack-demo-vanilla-bundle/src/examples/example12.html +++ b/examples/webpack-demo-vanilla-bundle/src/examples/example12.html @@ -41,29 +41,36 @@

+

+

+

diff --git a/examples/webpack-demo-vanilla-bundle/src/examples/example12.ts b/examples/webpack-demo-vanilla-bundle/src/examples/example12.ts index 6b0a635f4..9d48eab2e 100644 --- a/examples/webpack-demo-vanilla-bundle/src/examples/example12.ts +++ b/examples/webpack-demo-vanilla-bundle/src/examples/example12.ts @@ -11,6 +11,7 @@ import { Formatters, GridOption, LongTextEditorOption, + OnCompositeEditorChangeEventArgs, SlickNamespace, SortComparers, @@ -187,13 +188,21 @@ export class Example12 { // collectionOptions: { // addCustomFirstEntry: { value: '', label: '--none--' } // }, + // collectionOverride: (_collectionInput, args) => { + // const originalCollection = args.originalCollections || []; + // const duration = args?.dataContext?.duration ?? args?.compositeEditorOptions?.formValues?.duration; + // if (duration === 10) { + // return originalCollection.filter(itemCollection => +itemCollection.value !== 1); + // } + // return originalCollection; + // }, // massUpdate: true, minValue: 0, maxValue: 100, // }, // }, { id: 'start', name: 'Start', field: 'start', sortable: true, minWidth: 100, formatter: Formatters.dateUs, columnGroup: 'Period', - type: FieldType.dateIso, outputType: FieldType.dateUs, + type: FieldType.dateUs, outputType: FieldType.dateUs, filterable: true, filter: { model: Filters.compoundDate }, editor: { model: Editors.date, massUpdate: true, params: { hideClearButton: false } }, }, @@ -213,7 +222,7 @@ export class Example12 { { id: 'finish', name: 'Finish', field: 'finish', sortable: true, minWidth: 100, formatter: Formatters.dateUs, columnGroup: 'Period', - type: FieldType.dateIso, outputType: FieldType.dateUs, + type: FieldType.dateUs, outputType: FieldType.dateUs, filterable: true, filter: { model: Filters.compoundDate }, editor: { model: Editors.date, @@ -428,19 +437,21 @@ export class Example12 { const randomTime = Math.floor((Math.random() * 59)); const randomFinish = new Date(randomFinishYear, (randomMonth + 1), randomDay, randomTime, randomTime, randomTime); const randomPercentComplete = Math.floor(Math.random() * 100) + 15; // make it over 15 for E2E testing purposes + const percentCompletion = randomPercentComplete > 100 ? (i > 5 ? 100 : 88) : randomPercentComplete; // don't use 100 unless it's over index 5, for E2E testing purposes + const isCompleted = percentCompletion === 100; tmpArray[i] = { id: i, title: 'Task ' + i, duration: Math.floor(Math.random() * 100) + 10, - percentComplete: randomPercentComplete > 100 ? 100 : randomPercentComplete, + percentComplete: percentCompletion, analysis: { - percentComplete: randomPercentComplete > 100 ? 100 : randomPercentComplete, + percentComplete: percentCompletion, }, start: new Date(randomYear, randomMonth, randomDay, randomDay, randomTime, randomTime, randomTime), - finish: (i % 3 === 0 && (randomFinish > new Date() && i > 3)) ? randomFinish : '', // make sure the random date is earlier than today and it's index is bigger than 3 + finish: (isCompleted || (i % 3 === 0 && (randomFinish > new Date() && i > 3)) ? (isCompleted ? new Date() : randomFinish) : ''), // make sure the random date is earlier than today and it's index is bigger than 3 cost: (i % 33 === 0) ? null : Math.round(Math.random() * 10000) / 100, - completed: (i % 3 === 0 && (randomFinish > new Date() && i > 3)), + completed: (isCompleted || (i % 3 === 0 && (randomFinish > new Date() && i > 3))), product: { id: this.mockProducts()[randomItemId]?.id, itemName: this.mockProducts()[randomItemId]?.itemName, }, origin: (i % 2) ? { code: 'CA', name: 'Canada' } : { code: 'US', name: 'United States' }, }; @@ -516,15 +527,27 @@ export class Example12 { } handleOnCompositeEditorChange(event) { - const args = event && event.detail && event.detail.args; - const columnDef = args?.column; - const formValues = args?.formValues; + const args = event.detail.args as OnCompositeEditorChangeEventArgs; + const columnDef = args.column as Column; + const formValues = args.formValues; + + // you can dynamically change a select dropdown collection, + // if you need to re-render the editor for the list to be reflected + // if (columnDef.id === 'duration') { + // const editor = this.compositeEditorInstance.editors['percentComplete2'] as SelectEditor; + // const newCollection = editor.finalCollection; + // editor.renderDomElement(newCollection); + // } // you can change any other form input values when certain conditions are met if (columnDef.id === 'percentComplete' && formValues.percentComplete === 100) { this.compositeEditorInstance.changeFormInputValue('completed', true); this.compositeEditorInstance.changeFormInputValue('finish', new Date()); // this.compositeEditorInstance.changeFormInputValue('product', { id: 0, itemName: 'Sleek Metal Computer' }); + + // you can even change a value that is not part of the form (but is part of the grid) + // but you will have to bypass the error thrown by providing `true` as the 3rd argument + // this.compositeEditorInstance.changeFormInputValue('cost', 9999.99, true); } // you can also change some editor options (not all Editors supports this functionality, so far only these Editors AutoComplete, Date MultipleSelect & SingleSelect) @@ -874,6 +897,9 @@ export class Example12 { case 'create': modalTitle = 'Inserting New Task'; break; + case 'clone': + modalTitle = 'Clone - {{title}}'; + break; case 'edit': modalTitle = 'Editing - {{title}} (id: {{id}})'; // 'Editing - {{title}} ({{product.itemName}})' break; @@ -894,17 +920,28 @@ export class Example12 { // viewColumnLayout: 2, // choose from 'auto', 1, 2, or 3 (defaults to 'auto') onClose: () => Promise.resolve(confirm('You have unsaved changes, are you sure you want to close this window?')), onError: (error) => alert(error.message), - onSave: (formValues, selection, applyChangesCallback) => { - return new Promise((resolve, reject) => { - setTimeout(() => { - if (formValues.percentComplete > 50) { - applyChangesCallback(formValues, selection); - resolve(true); - } else { - reject('Unfortunately we only accept a minimum of 50% Completion...'); - } - }, 250); - }); + onSave: (formValues, _selection, dataContext) => { + const serverResponseDelay = 250; + + // simulate a backend server call which will reject if the "% Complete" is below 50% + // when processing a mass update or mass selection + if (modalType === 'mass-update' || modalType === 'mass-selection') { + return new Promise((resolve, reject) => { + setTimeout(() => { + if (formValues.percentComplete >= 50) { + resolve(true); + } else { + reject('Unfortunately we only accept a minimum of 50% Completion...'); + } + }, serverResponseDelay); + }); + } else { + // also simulate a server cal for any other modal type (create/clone/edit) + // we'll just apply the change without any rejection from the server and + // note that we also have access to the "dataContext" which is only available for these modal + console.log(`new ${modalType}d item`, dataContext); + return new Promise(resolve => setTimeout(() => resolve(true), serverResponseDelay)); + } } }); }, openDelay); diff --git a/package.json b/package.json index bd2817570..3f190d1ee 100644 --- a/package.json +++ b/package.json @@ -50,11 +50,11 @@ }, "devDependencies": { "@types/jest": "^26.0.20", - "@types/node": "^14.14.20", - "@typescript-eslint/eslint-plugin": "^4.12.0", - "@typescript-eslint/parser": "^4.12.0", - "cypress": "^6.2.1", - "eslint": "^7.17.0", + "@types/node": "^14.14.22", + "@typescript-eslint/eslint-plugin": "^4.14.0", + "@typescript-eslint/parser": "^4.14.0", + "cypress": "^6.3.0", + "eslint": "^7.18.0", "eslint-plugin-import": "^2.22.1", "eslint-plugin-prefer-arrow": "^1.2.2", "http-server": "^0.12.3", diff --git a/packages/common/package.json b/packages/common/package.json index 7076d1d83..bc865436b 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -72,13 +72,13 @@ "slickgrid": "^2.4.32" }, "devDependencies": { - "@types/dompurify": "^2.2.0", + "@types/dompurify": "^2.2.1", "@types/jquery": "^3.5.5", "@types/moment": "^2.13.0", - "autoprefixer": "^10.2.1", + "autoprefixer": "^10.2.3", "copyfiles": "^2.4.1", "cross-env": "^7.0.3", - "mini-css-extract-plugin": "^1.3.3", + "mini-css-extract-plugin": "^1.3.4", "node-sass": "5.0.0", "nodemon": "^2.0.7", "npm-run-all": "^4.1.5", diff --git a/packages/common/src/constants.ts b/packages/common/src/constants.ts index 9ba58b4b1..225f49371 100644 --- a/packages/common/src/constants.ts +++ b/packages/common/src/constants.ts @@ -11,6 +11,7 @@ export class Constants { TEXT_CLEAR_ALL_GROUPING: 'Clear all Grouping', TEXT_CLEAR_ALL_SORTING: 'Clear all Sorting', TEXT_CLEAR_FROZEN_COLUMNS: 'Clear Frozen Columns', + TEXT_CLONE: 'Clone', TEXT_COLLAPSE_ALL_GROUPS: 'Collapse all Groups', TEXT_CONTAINS: 'Contains', TEXT_COLUMNS: 'Columns', @@ -23,7 +24,7 @@ export class Constants { TEXT_ERROR_ENABLE_CELL_NAVIGATION_REQUIRED: 'Composite Editor requires the flag "enableCellNavigation" to be set to True in your Grid Options.', TEXT_ERROR_NO_CHANGES_DETECTED: 'Sorry we could not detect any changes.', TEXT_ERROR_NO_EDITOR_FOUND: 'We could not find any Editor in your Column Definition.', - TEXT_ERROR_NO_RECORD_FOUND: 'No records selected for edit operation.', + TEXT_ERROR_NO_RECORD_FOUND: 'No records selected for edit or clone operation.', TEXT_ERROR_ROW_NOT_EDITABLE: 'Current row is not editable.', TEXT_ERROR_ROW_SELECTION_REQUIRED: 'You must select some rows before trying to apply new value(s).', TEXT_EXPAND_ALL_GROUPS: 'Expand all Groups', diff --git a/packages/common/src/editors/__tests__/autoCompleteEditor.spec.ts b/packages/common/src/editors/__tests__/autoCompleteEditor.spec.ts index 998fa926d..e5b93ee04 100644 --- a/packages/common/src/editors/__tests__/autoCompleteEditor.spec.ts +++ b/packages/common/src/editors/__tests__/autoCompleteEditor.spec.ts @@ -801,7 +801,7 @@ describe('AutoCompleteEditor', () => { expect(editor.getValue()).toBe('Male'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: 'male' }, editors: {}, + formValues: { gender: 'male' }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -834,7 +834,7 @@ describe('AutoCompleteEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: '' }, editors: {}, + formValues: { gender: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.attr('disabled')).toEqual('disabled'); @@ -879,7 +879,7 @@ describe('AutoCompleteEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.attr('disabled')).toEqual('disabled'); expect(editor.editorDomElement.val()).toEqual(''); @@ -904,8 +904,28 @@ describe('AutoCompleteEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: 'female' }, editors: {}, + formValues: { gender: 'female' }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); + + describe('collectionOverride callback option', () => { + it('should create the editor and expect a different collection outputed when using the override', () => { + const activeCellMock = { row: 0, cell: 0 }; + jest.spyOn(gridStub, 'getActiveCell').mockReturnValue(activeCellMock); + const onCompositeEditorSpy = jest.spyOn(gridStub.onCompositeEditorChange, 'notify').mockReturnValue(false); + mockColumn.internalColumnEditor = { + collection: ['Other', 'Male', 'Female'], + collectionOverride: (inputCollection) => inputCollection.filter(item => item !== 'other') + }; + editor = new AutoCompleteEditor(editorArguments); + editor.setValue('Male', true); + + expect(editor.getValue()).toBe('Male'); + expect(onCompositeEditorSpy).toHaveBeenCalledWith({ + ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, + formValues: { gender: 'Male' }, editors: {}, triggeredBy: 'system', + }, expect.anything()); + }); + }); }); }); diff --git a/packages/common/src/editors/__tests__/checkboxEditor.spec.ts b/packages/common/src/editors/__tests__/checkboxEditor.spec.ts index 99201969f..ba6af7e36 100644 --- a/packages/common/src/editors/__tests__/checkboxEditor.spec.ts +++ b/packages/common/src/editors/__tests__/checkboxEditor.spec.ts @@ -405,7 +405,7 @@ describe('CheckboxEditor', () => { expect(editor.getValue()).toBe(true); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { isActive: true }, editors: {}, + formValues: { isActive: true }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -438,7 +438,7 @@ describe('CheckboxEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { isActive: false }, editors: {}, + formValues: { isActive: false }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.disabled).toEqual(true); @@ -483,7 +483,7 @@ describe('CheckboxEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.disabled).toEqual(true); expect(editor.editorDomElement.checked).toEqual(false); @@ -508,7 +508,7 @@ describe('CheckboxEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { isActive: true }, editors: {}, + formValues: { isActive: true }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/dateEditor.spec.ts b/packages/common/src/editors/__tests__/dateEditor.spec.ts index 1f2aaf535..7ede740ec 100644 --- a/packages/common/src/editors/__tests__/dateEditor.spec.ts +++ b/packages/common/src/editors/__tests__/dateEditor.spec.ts @@ -524,7 +524,7 @@ describe('DateEditor', () => { expect(editor.getValue()).toContain('2001-01-02'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { startDate: '2001-01-02' }, editors: {}, + formValues: { startDate: '2001-01-02' }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -557,7 +557,7 @@ describe('DateEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { startDate: '' }, editors: {}, + formValues: { startDate: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.flatInstance._input.disabled).toEqual(true); @@ -602,7 +602,7 @@ describe('DateEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.flatInstance._input.disabled).toEqual(true); expect(editor.flatInstance._input.value).toEqual(''); @@ -629,7 +629,7 @@ describe('DateEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { startDate: '2001-01-02' }, editors: {}, + formValues: { startDate: '2001-01-02' }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/dualInputEditor.spec.ts b/packages/common/src/editors/__tests__/dualInputEditor.spec.ts index ad7d71c40..49e94fec1 100644 --- a/packages/common/src/editors/__tests__/dualInputEditor.spec.ts +++ b/packages/common/src/editors/__tests__/dualInputEditor.spec.ts @@ -876,7 +876,7 @@ describe('DualInputEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { from: '', to: '' }, editors: {}, + formValues: { from: '', to: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.leftInput.disabled).toEqual(true); @@ -903,7 +903,7 @@ describe('DualInputEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.leftInput.disabled).toEqual(true); @@ -932,7 +932,7 @@ describe('DualInputEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { from: 4, to: 5 }, editors: {}, + formValues: { from: 4, to: 5 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); @@ -957,7 +957,7 @@ describe('DualInputEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { from: 4, to: 5 }, editors: {} + formValues: { from: 4, to: 5 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/floatEditor.spec.ts b/packages/common/src/editors/__tests__/floatEditor.spec.ts index edd43901f..59a12ff29 100644 --- a/packages/common/src/editors/__tests__/floatEditor.spec.ts +++ b/packages/common/src/editors/__tests__/floatEditor.spec.ts @@ -642,7 +642,7 @@ describe('FloatEditor', () => { expect(editor.getValue()).toBe('123'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 123 }, editors: {}, + formValues: { price: 123 }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -675,7 +675,7 @@ describe('FloatEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: '' }, editors: {} + formValues: { price: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.disabled).toEqual(true); @@ -720,7 +720,7 @@ describe('FloatEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.disabled).toEqual(true); expect(editor.editorDomElement.value).toEqual(''); @@ -746,7 +746,7 @@ describe('FloatEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 35 }, editors: {} + formValues: { price: 35 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); @@ -770,7 +770,7 @@ describe('FloatEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 35 }, editors: {} + formValues: { price: 35 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); @@ -794,7 +794,7 @@ describe('FloatEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 35 }, editors: {} + formValues: { price: 35 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/integerEditor.spec.ts b/packages/common/src/editors/__tests__/integerEditor.spec.ts index abebad022..be1fab8ba 100644 --- a/packages/common/src/editors/__tests__/integerEditor.spec.ts +++ b/packages/common/src/editors/__tests__/integerEditor.spec.ts @@ -572,7 +572,7 @@ describe('IntegerEditor', () => { expect(editor.getValue()).toBe('123'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 123 }, editors: {}, + formValues: { price: 123 }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -605,7 +605,7 @@ describe('IntegerEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: '' }, editors: {} + formValues: { price: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.disabled).toEqual(true); @@ -628,7 +628,7 @@ describe('IntegerEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.disabled).toEqual(true); expect(editor.editorDomElement.value).toEqual(''); @@ -650,7 +650,7 @@ describe('IntegerEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.disabled).toEqual(true); expect(editor.editorDomElement.value).toEqual(''); @@ -676,7 +676,7 @@ describe('IntegerEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 35 }, editors: {} + formValues: { price: 35 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); @@ -700,7 +700,7 @@ describe('IntegerEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 35 }, editors: {} + formValues: { price: 35 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/longTextEditor.spec.ts b/packages/common/src/editors/__tests__/longTextEditor.spec.ts index 7e43dfabb..28869c558 100644 --- a/packages/common/src/editors/__tests__/longTextEditor.spec.ts +++ b/packages/common/src/editors/__tests__/longTextEditor.spec.ts @@ -770,7 +770,7 @@ describe('LongTextEditor', () => { expect(editor.getValue()).toBe('task 2'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: 'task 2' }, editors: {}, + formValues: { title: 'task 2' }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -803,7 +803,7 @@ describe('LongTextEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: '' }, editors: {}, + formValues: { title: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.attr('disabled')).toEqual('disabled'); @@ -848,7 +848,7 @@ describe('LongTextEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.attr('disabled')).toEqual('disabled'); expect(editor.editorDomElement.val()).toEqual(''); @@ -875,7 +875,7 @@ describe('LongTextEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: 'task 2' }, editors: {}, + formValues: { title: 'task 2' }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/selectEditor.spec.ts b/packages/common/src/editors/__tests__/selectEditor.spec.ts index f14789910..746a94cbe 100644 --- a/packages/common/src/editors/__tests__/selectEditor.spec.ts +++ b/packages/common/src/editors/__tests__/selectEditor.spec.ts @@ -794,7 +794,7 @@ describe('SelectEditor', () => { expect(editor.getValue()).toEqual(['male']); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: ['male'] }, editors: {}, + formValues: { gender: ['male'] }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -828,7 +828,7 @@ describe('SelectEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: [] }, editors: {} + formValues: { gender: [] }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editorBtnElm.classList.contains('disabled')).toEqual(true); @@ -854,7 +854,7 @@ describe('SelectEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {} + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editorBtnElm.classList.contains('disabled')).toEqual(true); @@ -881,8 +881,28 @@ describe('SelectEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { gender: ['male'] }, editors: {} + formValues: { gender: ['male'] }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); + + describe('collectionOverride callback option', () => { + it('should create the editor and expect a different collection outputed when using the override', () => { + const activeCellMock = { row: 0, cell: 0 }; + jest.spyOn(gridStub, 'getActiveCell').mockReturnValue(activeCellMock); + const onCompositeEditorSpy = jest.spyOn(gridStub.onCompositeEditorChange, 'notify').mockReturnValue(false); + mockColumn.internalColumnEditor = { + collection: [{ value: 'male', label: 'male' }, { value: 'female', label: 'female' }, { value: 'other', label: 'other' }], + collectionOverride: (inputCollection) => inputCollection.filter(item => item.value !== 'other') + }; + editor = new SelectEditor(editorArguments, true); + editor.setValue(['male'], true); + + expect(editor.getValue()).toEqual(['male']); + expect(onCompositeEditorSpy).toHaveBeenCalledWith({ + ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, + formValues: { gender: ['male'] }, editors: {}, triggeredBy: 'system', + }, expect.anything()); + }); + }); }); }); diff --git a/packages/common/src/editors/__tests__/sliderEditor.spec.ts b/packages/common/src/editors/__tests__/sliderEditor.spec.ts index 944eec854..c05fac81d 100644 --- a/packages/common/src/editors/__tests__/sliderEditor.spec.ts +++ b/packages/common/src/editors/__tests__/sliderEditor.spec.ts @@ -477,7 +477,7 @@ describe('SliderEditor', () => { expect(editor.getValue()).toBe('95'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 95 }, editors: {}, + formValues: { price: 95 }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -510,7 +510,7 @@ describe('SliderEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 0 }, editors: {} + formValues: { price: 0 }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorInputDomElement.attr('disabled')).toEqual('disabled'); @@ -535,7 +535,7 @@ describe('SliderEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {} + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorInputDomElement.attr('disabled')).toEqual('disabled'); @@ -561,7 +561,7 @@ describe('SliderEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { price: 93 }, editors: {} + formValues: { price: 93 }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/__tests__/textEditor.spec.ts b/packages/common/src/editors/__tests__/textEditor.spec.ts index 99fd9615a..9bb808d36 100644 --- a/packages/common/src/editors/__tests__/textEditor.spec.ts +++ b/packages/common/src/editors/__tests__/textEditor.spec.ts @@ -537,7 +537,7 @@ describe('TextEditor', () => { expect(editor.getValue()).toBe('task 1'); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: 'task 1' }, editors: {}, + formValues: { title: 'task 1' }, editors: {}, triggeredBy: 'system', }, expect.anything()); }); @@ -570,7 +570,7 @@ describe('TextEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: '' }, editors: {} + formValues: { title: '' }, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(disableSpy).toHaveBeenCalledWith(true); expect(editor.editorDomElement.disabled).toEqual(true); @@ -615,7 +615,7 @@ describe('TextEditor', () => { expect(getCellSpy).toHaveBeenCalled(); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: {}, editors: {}, + formValues: {}, editors: {}, triggeredBy: 'user', }, expect.anything()); expect(editor.editorDomElement.disabled).toEqual(true); expect(editor.editorDomElement.value).toEqual(''); @@ -642,7 +642,7 @@ describe('TextEditor', () => { expect(onBeforeEditSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub }); expect(onCompositeEditorSpy).toHaveBeenCalledWith({ ...activeCellMock, column: mockColumn, item: mockItemData, grid: gridStub, - formValues: { title: 'task 2' }, editors: {} + formValues: { title: 'task 2' }, editors: {}, triggeredBy: 'user', }, expect.anything()); }); }); diff --git a/packages/common/src/editors/autoCompleteEditor.ts b/packages/common/src/editors/autoCompleteEditor.ts index a11e96f09..2d88bf229 100644 --- a/packages/common/src/editors/autoCompleteEditor.ts +++ b/packages/common/src/editors/autoCompleteEditor.ts @@ -4,6 +4,7 @@ import { FieldType, KeyCode, } from '../enums/index'; import { AutocompleteOption, CollectionCustomStructure, + CollectionOverrideArgs, Column, ColumnEditor, CompositeEditorOption, @@ -64,6 +65,9 @@ export class AutoCompleteEditor implements Editor { forceUserInput: boolean; + /** Final collection displayed in the UI, that is after processing filter/sort/override */ + finalCollection: any[] = []; + constructor(private args: EditorArguments) { if (!args) { throw new Error('[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.'); @@ -78,8 +82,8 @@ export class AutoCompleteEditor implements Editor { } /** Getter of the Collection */ - get editorCollection(): any[] { - return this.columnDef?.internalColumnEditor?.collection ?? []; + get collection(): any[] { + return this.columnEditor?.collection ?? []; } /** Getter for the Editor DOM Element */ @@ -237,7 +241,7 @@ export class AutoCompleteEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -248,8 +252,8 @@ export class AutoCompleteEditor implements Editor { if (fieldName !== undefined) { // if we have a collection defined, we will try to find the string within the collection and return it - if (Array.isArray(this.editorCollection) && this.editorCollection.length > 0) { - newValue = findOrDefault(this.editorCollection, (collectionItem: any) => { + if (Array.isArray(this.collection) && this.collection.length > 0) { + newValue = findOrDefault(this.collection, (collectionItem: any) => { if (collectionItem && typeof state === 'object' && collectionItem.hasOwnProperty(this.labelName)) { return (collectionItem.hasOwnProperty(this.labelName) && collectionItem[this.labelName].toString()) === (state.hasOwnProperty(this.labelName) && state[this.labelName].toString()); } else if (collectionItem && typeof state === 'string' && collectionItem.hasOwnProperty(this.labelName)) { @@ -371,7 +375,7 @@ export class AutoCompleteEditor implements Editor { this.disable(isCellEditable === false); } - protected handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + protected handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -389,7 +393,10 @@ export class AutoCompleteEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } // this function should be PRIVATE but for unit tests purposes we'll make it public until a better solution is found @@ -483,9 +490,17 @@ export class AutoCompleteEditor implements Editor { // user could also override the collection if (this.columnEditor?.collectionOverride) { - finalCollection = this.columnEditor.collectionOverride(finalCollection, { column: this.columnDef, dataContext: this.args.item, grid: this.grid }); + const overrideArgs: CollectionOverrideArgs = { column: this.columnDef, dataContext: this.args.item, grid: this.grid, originalCollections: this.collection }; + if (this.args.compositeEditorOptions) { + const { formValues, modalType } = this.args.compositeEditorOptions; + overrideArgs.compositeEditorOptions = { formValues, modalType }; + } + finalCollection = this.columnEditor.collectionOverride(finalCollection, overrideArgs); } + // keep reference of the final collection displayed in the UI + this.finalCollection = finalCollection; + // user might provide his own custom structure // jQuery UI autocomplete requires a label/value pair, so we must remap them when user provide different ones if (Array.isArray(finalCollection)) { diff --git a/packages/common/src/editors/checkboxEditor.ts b/packages/common/src/editors/checkboxEditor.ts index 9fc8f24ce..92222a0f3 100644 --- a/packages/common/src/editors/checkboxEditor.ts +++ b/packages/common/src/editors/checkboxEditor.ts @@ -155,7 +155,7 @@ export class CheckboxEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -256,7 +256,7 @@ export class CheckboxEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -274,6 +274,9 @@ export class CheckboxEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } } diff --git a/packages/common/src/editors/dateEditor.ts b/packages/common/src/editors/dateEditor.ts index e1bf7423b..615bd252d 100644 --- a/packages/common/src/editors/dateEditor.ts +++ b/packages/common/src/editors/dateEditor.ts @@ -265,7 +265,7 @@ export class DateEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(compositeEditorOptions); + this.handleChangeOnCompositeEditor(compositeEditorOptions, 'system'); } } } @@ -400,7 +400,7 @@ export class DateEditor implements Editor { setTimeout(() => this._lastTriggeredByClearDate = false); // reset flag after a cycle } - private handleChangeOnCompositeEditor(compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -418,6 +418,9 @@ export class DateEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, new Slick.EventData()); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + new Slick.EventData() + ); } } diff --git a/packages/common/src/editors/dualInputEditor.ts b/packages/common/src/editors/dualInputEditor.ts index d241817d5..629f53fc8 100644 --- a/packages/common/src/editors/dualInputEditor.ts +++ b/packages/common/src/editors/dualInputEditor.ts @@ -469,7 +469,7 @@ export class DualInputEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const leftInputId = this.columnEditor.params?.leftInput?.field ?? ''; @@ -493,7 +493,10 @@ export class DualInputEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(rightInputId)) { delete compositeEditorOptions.formValues[rightInputId]; } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } private handleChangeOnCompositeEditorDebounce(event: KeyboardEvent) { diff --git a/packages/common/src/editors/floatEditor.ts b/packages/common/src/editors/floatEditor.ts index bfaf1215e..c848b08ea 100644 --- a/packages/common/src/editors/floatEditor.ts +++ b/packages/common/src/editors/floatEditor.ts @@ -189,7 +189,7 @@ export class FloatEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -305,7 +305,7 @@ export class FloatEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -323,7 +323,10 @@ export class FloatEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } /** When the input value changes (this will cover the input spinner arrows on the right) */ diff --git a/packages/common/src/editors/integerEditor.ts b/packages/common/src/editors/integerEditor.ts index 3be9c8001..9f67a38a0 100644 --- a/packages/common/src/editors/integerEditor.ts +++ b/packages/common/src/editors/integerEditor.ts @@ -164,7 +164,7 @@ export class IntegerEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -267,7 +267,7 @@ export class IntegerEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -285,7 +285,10 @@ export class IntegerEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } /** When the input value changes (this will cover the input spinner arrows on the right) */ diff --git a/packages/common/src/editors/longTextEditor.ts b/packages/common/src/editors/longTextEditor.ts index 9b1b44647..8976cb790 100644 --- a/packages/common/src/editors/longTextEditor.ts +++ b/packages/common/src/editors/longTextEditor.ts @@ -228,7 +228,7 @@ export class LongTextEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -412,7 +412,7 @@ export class LongTextEditor implements Editor { } } - private handleChangeOnCompositeEditor(event: JQuery.Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: JQuery.Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -430,7 +430,10 @@ export class LongTextEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } /** diff --git a/packages/common/src/editors/selectEditor.ts b/packages/common/src/editors/selectEditor.ts index 3cf6c7a7d..1c8e111d1 100644 --- a/packages/common/src/editors/selectEditor.ts +++ b/packages/common/src/editors/selectEditor.ts @@ -3,6 +3,7 @@ import { FieldType } from './../enums/index'; import { CollectionCustomStructure, CollectionOption, + CollectionOverrideArgs, Column, ColumnEditor, CompositeEditorOption, @@ -82,6 +83,9 @@ export class SelectEditor implements Editor { /** SlickGrid Grid object */ grid: SlickGrid; + /** Final collection displayed in the UI, that is after processing filter/sort/override */ + finalCollection: any[] = []; + constructor(protected args: EditorArguments, protected isMultipleSelect: boolean) { if (!args) { throw new Error('[Slickgrid-Universal] Something is wrong with this grid, an Editor must always have valid arguments.'); @@ -324,7 +328,7 @@ export class SelectEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(compositeEditorOptions); + this.handleChangeOnCompositeEditor(compositeEditorOptions, 'system'); } } } @@ -625,19 +629,27 @@ export class SelectEditor implements Editor { } // assign the collection to a temp variable before filtering/sorting the collection - let newCollection = collection; + let finalCollection = collection; // user might want to filter and/or sort certain items of the collection - newCollection = this.filterCollection(newCollection); - newCollection = this.sortCollection(newCollection); + finalCollection = this.filterCollection(finalCollection); + finalCollection = this.sortCollection(finalCollection); // user could also override the collection if (this.columnEditor?.collectionOverride) { - newCollection = this.columnEditor.collectionOverride(newCollection, { column: this.columnDef, dataContext: this.args.item, grid: this.grid }); + const overrideArgs: CollectionOverrideArgs = { column: this.columnDef, dataContext: this.args.item, grid: this.grid, originalCollections: this.collection }; + if (this.args.compositeEditorOptions) { + const { formValues, modalType } = this.args.compositeEditorOptions; + overrideArgs.compositeEditorOptions = { formValues, modalType }; + } + finalCollection = this.columnEditor.collectionOverride(finalCollection, overrideArgs); } + // keep reference of the final collection displayed in the UI + this.finalCollection = finalCollection; + // step 1, create HTML string template - const editorTemplate = this.buildTemplateHtmlString(newCollection); + const editorTemplate = this.buildTemplateHtmlString(finalCollection); // step 2, create the DOM Element of the editor // also subscribe to the onClose event @@ -723,6 +735,7 @@ export class SelectEditor implements Editor { this.$editorElm = $(editorTemplate); if (this.$editorElm && typeof this.$editorElm.appendTo === 'function') { + $(this.args.container).empty(); this.$editorElm.appendTo(this.args.container); } @@ -740,7 +753,7 @@ export class SelectEditor implements Editor { } } - protected handleChangeOnCompositeEditor(compositeEditorOptions: CompositeEditorOption) { + protected handleChangeOnCompositeEditor(compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -758,7 +771,10 @@ export class SelectEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, new Slick.EventData()); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + new Slick.EventData() + ); } // refresh the jquery object because the selected checkboxes were already set diff --git a/packages/common/src/editors/sliderEditor.ts b/packages/common/src/editors/sliderEditor.ts index 53be2e77a..af30548d6 100644 --- a/packages/common/src/editors/sliderEditor.ts +++ b/packages/common/src/editors/sliderEditor.ts @@ -184,7 +184,7 @@ export class SliderEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -312,7 +312,7 @@ export class SliderEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -330,6 +330,9 @@ export class SliderEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } } diff --git a/packages/common/src/editors/textEditor.ts b/packages/common/src/editors/textEditor.ts index 67c81660c..f9a3c6f22 100644 --- a/packages/common/src/editors/textEditor.ts +++ b/packages/common/src/editors/textEditor.ts @@ -158,7 +158,7 @@ export class TextEditor implements Editor { // if it's set by a Composite Editor, then also trigger a change for it const compositeEditorOptions = this.args.compositeEditorOptions; if (compositeEditorOptions) { - this.handleChangeOnCompositeEditor(null, compositeEditorOptions); + this.handleChangeOnCompositeEditor(null, compositeEditorOptions, 'system'); } } } @@ -256,7 +256,7 @@ export class TextEditor implements Editor { this.disable(isCellEditable === false); } - private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption) { + private handleChangeOnCompositeEditor(event: Event | null, compositeEditorOptions: CompositeEditorOption, triggeredBy: 'user' | 'system' = 'user') { const activeCell = this.grid.getActiveCell(); const column = this.args.column; const columnId = this.columnDef?.id ?? ''; @@ -274,7 +274,10 @@ export class TextEditor implements Editor { if (this.disabled && isExcludeDisabledFieldFormValues && compositeEditorOptions.formValues.hasOwnProperty(columnId)) { delete compositeEditorOptions.formValues[columnId]; // when the input is disabled we won't include it in the form result object } - grid.onCompositeEditorChange.notify({ ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors }, { ...new Slick.EventData(), ...event }); + grid.onCompositeEditorChange.notify( + { ...activeCell, item, grid, column, formValues: compositeEditorOptions.formValues, editors: compositeEditorOptions.editors, triggeredBy }, + { ...new Slick.EventData(), ...event } + ); } private handleOnInputChange(event: KeyboardEvent) { diff --git a/packages/common/src/enums/compositeEditorModalType.type.ts b/packages/common/src/enums/compositeEditorModalType.type.ts index 24294e11b..c9650b0c8 100644 --- a/packages/common/src/enums/compositeEditorModalType.type.ts +++ b/packages/common/src/enums/compositeEditorModalType.type.ts @@ -1 +1 @@ -export type CompositeEditorModalType = 'create' | 'edit' | 'auto-mass' | 'mass-update' | 'mass-selection'; +export type CompositeEditorModalType = 'create' | 'edit' | 'clone' | 'auto-mass' | 'mass-update' | 'mass-selection'; diff --git a/packages/common/src/enums/index.ts b/packages/common/src/enums/index.ts index 875b1f8f8..d6bc1673b 100644 --- a/packages/common/src/enums/index.ts +++ b/packages/common/src/enums/index.ts @@ -15,6 +15,7 @@ export * from './gridStateType.enum'; export * from './keyCode.enum'; export * from './operatorString.type'; export * from './operatorType.enum'; +export * from './plainFunc.type'; export * from './searchTerm.type'; export * from './slickControlList.enum'; export * from './slickPluginList.enum'; diff --git a/packages/common/src/enums/plainFunc.type.ts b/packages/common/src/enums/plainFunc.type.ts new file mode 100644 index 000000000..11022e0db --- /dev/null +++ b/packages/common/src/enums/plainFunc.type.ts @@ -0,0 +1,2 @@ +/** Just a plain simple, without argument, function call which returns `void` (could be override via the generic T) */ +export type PlainFunc = () => T; \ No newline at end of file diff --git a/packages/common/src/filters/autoCompleteFilter.ts b/packages/common/src/filters/autoCompleteFilter.ts index 2f16cecaa..178a4185d 100644 --- a/packages/common/src/filters/autoCompleteFilter.ts +++ b/packages/common/src/filters/autoCompleteFilter.ts @@ -122,7 +122,7 @@ export class AutoCompleteFilter implements Filter { /** Getter of the Operator to use when doing the filter comparing */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/filters/dateRangeFilter.ts b/packages/common/src/filters/dateRangeFilter.ts index de7083cde..286460013 100644 --- a/packages/common/src/filters/dateRangeFilter.ts +++ b/packages/common/src/filters/dateRangeFilter.ts @@ -68,7 +68,7 @@ export class DateRangeFilter implements Filter { /** Getter of the Operator to use when doing the filter comparing */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ @@ -204,7 +204,7 @@ export class DateRangeFilter implements Filter { wrap: true, closeOnSelect: true, locale: currentLocale, - onChange: (selectedDates: Date[] | Date, _dateStr: string, _instance: any) => { + onChange: (selectedDates: Date[] | Date) => { if (Array.isArray(selectedDates)) { this._currentDates = selectedDates; const outFormat = mapMomentDateFormatWithFieldType(this.columnDef.outputType || this.columnFilter.type || this.columnDef.type || FieldType.dateIso); diff --git a/packages/common/src/filters/inputFilter.ts b/packages/common/src/filters/inputFilter.ts index 4becc1a9b..ab2eeb600 100644 --- a/packages/common/src/filters/inputFilter.ts +++ b/packages/common/src/filters/inputFilter.ts @@ -43,7 +43,7 @@ export class InputFilter implements Filter { /** Getter of the Operator to use when doing the filter comparing */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/filters/nativeSelectFilter.ts b/packages/common/src/filters/nativeSelectFilter.ts index f2d5da894..5f20bfcce 100644 --- a/packages/common/src/filters/nativeSelectFilter.ts +++ b/packages/common/src/filters/nativeSelectFilter.ts @@ -39,7 +39,7 @@ export class NativeSelectFilter implements Filter { /** Getter for the current Operator */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/filters/selectFilter.ts b/packages/common/src/filters/selectFilter.ts index 180cbb7c3..196cef03e 100644 --- a/packages/common/src/filters/selectFilter.ts +++ b/packages/common/src/filters/selectFilter.ts @@ -85,7 +85,7 @@ export class SelectFilter implements Filter { /** Getter for the Filter Operator */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/filters/sliderFilter.ts b/packages/common/src/filters/sliderFilter.ts index 258f7412f..6f9304133 100644 --- a/packages/common/src/filters/sliderFilter.ts +++ b/packages/common/src/filters/sliderFilter.ts @@ -48,7 +48,7 @@ export class SliderFilter implements Filter { /** Getter for the current Operator */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/filters/sliderRangeFilter.ts b/packages/common/src/filters/sliderRangeFilter.ts index a99950bfd..412970f2d 100644 --- a/packages/common/src/filters/sliderRangeFilter.ts +++ b/packages/common/src/filters/sliderRangeFilter.ts @@ -67,7 +67,7 @@ export class SliderRangeFilter implements Filter { /** Getter of the Operator to use when doing the filter comparing */ get operator(): OperatorType | OperatorString { - return this.columnFilter && this.columnFilter.operator || this.defaultOperator; + return this.columnFilter?.operator ?? this.defaultOperator; } /** Setter for the filter operator */ diff --git a/packages/common/src/formatters/complexObjectFormatter.ts b/packages/common/src/formatters/complexObjectFormatter.ts index 65e713a72..0a42d62cc 100644 --- a/packages/common/src/formatters/complexObjectFormatter.ts +++ b/packages/common/src/formatters/complexObjectFormatter.ts @@ -2,9 +2,10 @@ import { Formatter } from './../interfaces/index'; /** * Takes a complex data object and return the data under that property (for example: "user.firstName" will return the first name "John") - * You can pass the complex structure in the "field" or the "params: { complexField: string }" properties. + * You can pass the complex structure in the "field" (field: "user.firstName") or in the "params" (labelKey: "firstName", params: { complexField: "user" }) properties. * For example:: * this.columnDefs = [{ id: 'username', field: 'user.firstName', ... }] + * OR this.columnDefs = [{ id: 'username', field: 'user', labelKey: 'firstName', params: { complexField: 'user' }, ... }] * OR this.columnDefs = [{ id: 'username', field: 'user', params: { complexField: 'user.firstName' }, ... }] */ export const complexObjectFormatter: Formatter = (_row, _cell, cellValue, columnDef, dataContext) => { @@ -13,24 +14,24 @@ export const complexObjectFormatter: Formatter = (_row, _cell, cellValue, column } const columnParams = columnDef.params || {}; - const complexFieldLabel = columnParams && columnParams.complexFieldLabel || columnDef.field; + const complexField = columnParams?.complexField ?? columnParams?.complexFieldLabel ?? columnDef.field; - if (!complexFieldLabel) { + if (!complexField) { throw new Error(`For the Formatters.complexObject to work properly, you need to tell it which property of the complex object to use. There are 3 ways to provide it: - 1- via the generic "params" with a "complexFieldLabel" property on your Column Definition, example: this.columnDefs = [{ id: 'user', field: 'user', params: { complexFieldLabel: 'user.firstName' } }] - 2- via the generic "params" with a "complexFieldLabel" and a "labelKey" property on your Column Definition, example: this.columnDefs = [{ id: 'user', field: 'user', labelKey: 'firstName' params: { complexFieldLabel: 'user' } }] + 1- via the generic "params" with a "complexField" property on your Column Definition, example: this.columnDefs = [{ id: 'user', field: 'user', params: { complexField: 'user.firstName' } }] + 2- via the generic "params" with a "complexField" and a "labelKey" property on your Column Definition, example: this.columnDefs = [{ id: 'user', field: 'user', labelKey: 'firstName', params: { complexField: 'user' } }] 3- via the field name that includes a dot notation, example: this.columnDefs = [{ id: 'user', field: 'user.firstName'}] `); } - if (columnDef.labelKey && dataContext.hasOwnProperty(complexFieldLabel)) { - return dataContext[complexFieldLabel] && dataContext[complexFieldLabel][columnDef.labelKey]; + if (columnDef.labelKey && dataContext.hasOwnProperty(complexField)) { + return dataContext[complexField]?.[columnDef.labelKey]; } - // when complexFieldLabel includes the dot ".", we will do the split and get the value from the complex object + // when complexField includes the dot ".", we will do the split and get the value from the complex object // however we also need to make sure that the complex objet exist, else we'll return the cell value (original value) - if (typeof complexFieldLabel === 'string' && complexFieldLabel.indexOf('.') > 0) { - let outputValue = complexFieldLabel.split('.').reduce((obj, i) => (obj && obj.hasOwnProperty(i) ? obj[i] : ''), dataContext); + if (typeof complexField === 'string' && complexField.indexOf('.') > 0) { + let outputValue = complexField.split('.').reduce((obj, i) => (obj?.hasOwnProperty(i) ? obj[i] : ''), dataContext); if (typeof outputValue === 'object' && Object.entries(outputValue).length === 0) { outputValue = ''; // return empty string when value ends up being an empty object } diff --git a/packages/common/src/formatters/formatters.index.ts b/packages/common/src/formatters/formatters.index.ts index d37a504e0..6589e1d50 100644 --- a/packages/common/src/formatters/formatters.index.ts +++ b/packages/common/src/formatters/formatters.index.ts @@ -83,9 +83,10 @@ export const Formatters = { /** * Takes a complex data object and return the data under that property (for example: "user.firstName" will return the first name "John") - * You can pass the complex structure in the "field" or the "params: { complexField: string }" properties. + * You can pass the complex structure in the "field" (field: "user.firstName") or in the "params" (labelKey: "firstName", params: { complexField: "user" }) properties. * For example:: * this.columnDefs = [{ id: 'username', field: 'user.firstName', ... }] + * OR this.columnDefs = [{ id: 'username', field: 'user', labelKey: 'firstName', params: { complexField: 'user' }, ... }] * OR this.columnDefs = [{ id: 'username', field: 'user', params: { complexField: 'user.firstName' }, ... }] */ complex: complexObjectFormatter, diff --git a/packages/common/src/global-grid-options.ts b/packages/common/src/global-grid-options.ts index 7a8953ee5..a9b7ba1c8 100644 --- a/packages/common/src/global-grid-options.ts +++ b/packages/common/src/global-grid-options.ts @@ -38,6 +38,7 @@ export const GlobalGridOptions: GridOption = { compositeEditorOptions: { labels: { cancelButtonKey: 'CANCEL', + cloneButtonKey: 'CLONE', massSelectionButtonKey: 'APPLY_TO_SELECTION', massSelectionStatusKey: 'X_OF_Y_MASS_SELECTED', massUpdateButtonKey: 'APPLY_MASS_UPDATE', diff --git a/packages/common/src/interfaces/CompositeEditorOpenDetailOption.interface.ts b/packages/common/src/interfaces/CompositeEditorOpenDetailOption.interface.ts index 0d7a25d56..29dd81bd2 100644 --- a/packages/common/src/interfaces/CompositeEditorOpenDetailOption.interface.ts +++ b/packages/common/src/interfaces/CompositeEditorOpenDetailOption.interface.ts @@ -51,6 +51,12 @@ export interface CompositeEditorOpenDetailOption { /** Defaults to "CANCEL", translation key used for the Cancel button label. */ cancelButtonKey?: string; + /** Defaults to "Clone", override the Clone button label used by a modal type of "clone" */ + cloneButton?: string; + + /** Defaults to "CLONE", translation key used for the Clone button label used by a modal type of "clone" */ + cloneButtonKey?: string; + /** Defaults to "Update Selection", override the Mass Selection button label */ massSelectionButton?: string; @@ -102,12 +108,27 @@ export interface CompositeEditorOpenDetailOption { */ viewColumnLayout?: 1 | 2 | 3 | 'auto'; - /** onClose callback allows user to add a confirm dialog or any other code before closing the modal window, returning false will cancel the modal closing. */ + /** + * onClose callback allows user to add a confirm dialog or any other code before closing the modal window, returning false will cancel the modal closing. + * NOTE: this won't be called when there's no changes done in the form. + */ onClose?: () => Promise; /** onError callback allows user to override what the system does when an error (error message & type) is thrown, defaults to console.log */ onError?: (error: OnErrorOption) => void; - /** The "onSave" callback will be triggered after user clicked saved button, user can execute his own code and possibly apply the changes if he wishes to. */ - onSave?: (formValues: any, selection: CompositeEditorSelection, applyChangesCallback: (formValues: any, selection: CompositeEditorSelection) => void) => Promise; + /** + * onSave callback will be triggered (when defined) after user clicked the save/apply button, + * this callback is used when connecting a backend server with custom code to execute after clicking the save/apply button + */ + onSave?: ( + /** object containing all composite editor form values, each value is defined by its column id */ + formValues: any, + + /** current selection of row indexes & data context Ids */ + selection: CompositeEditorSelection, + + /** optional item data context that is returned only when the modal type is clone/create/edit */ + dataContext?: any + ) => Promise; } diff --git a/packages/common/src/interfaces/collectionOverrideArgs.interface.ts b/packages/common/src/interfaces/collectionOverrideArgs.interface.ts index 371aa2dcd..fe7e2c429 100644 --- a/packages/common/src/interfaces/collectionOverrideArgs.interface.ts +++ b/packages/common/src/interfaces/collectionOverrideArgs.interface.ts @@ -1,3 +1,4 @@ +import { CompositeEditorOption } from './compositeEditorOption.interface'; import { Column, SlickGrid } from './index'; export interface CollectionOverrideArgs { @@ -9,4 +10,10 @@ export interface CollectionOverrideArgs { /** Slick Grid object */ grid: SlickGrid; + + /** Potential Composite Editor option when triggered by the Composite Editor modal window */ + compositeEditorOptions?: Pick; + + /** Original collection provided to the editor (without being filtered/sorted or overridden) */ + originalCollections: any[]; } \ No newline at end of file diff --git a/packages/common/src/interfaces/locale.interface.ts b/packages/common/src/interfaces/locale.interface.ts index c1d32a2eb..d5c0b1393 100644 --- a/packages/common/src/interfaces/locale.interface.ts +++ b/packages/common/src/interfaces/locale.interface.ts @@ -29,6 +29,9 @@ export interface Locale { /** Text "Clear Frozen Columns" shown in Grid Menu */ TEXT_CLEAR_FROZEN_COLUMNS: string; + /** Text "Clone" displayed in the Composite Editor with a "clone" modal type. */ + TEXT_CLONE?: string; + /** Text "Columns" title displayed in the Column Picker & Grid Menu (when enabled) */ TEXT_COLUMNS: string; diff --git a/packages/common/src/interfaces/slickDataView.interface.ts b/packages/common/src/interfaces/slickDataView.interface.ts index d66e3257a..3d86cdb49 100644 --- a/packages/common/src/interfaces/slickDataView.interface.ts +++ b/packages/common/src/interfaces/slickDataView.interface.ts @@ -86,10 +86,13 @@ export interface SlickDataView { /** Get row index in the dataset by its Id */ getIdxById(id: string | number): number | undefined; + /** Get item count, full dataset length */ + getItemCount(): number; + /** Get item metadata at specific index */ getItemMetadata(index: number): any; - /** Get dataset length */ + /** Get row count (rows in displayed current page) */ getLength(): number; /** Get Paging Options */ @@ -221,7 +224,7 @@ export interface SlickDataView { export interface OnGroupExpandedEventArgs { level: number; groupingKey: string | number; } export interface OnGroupCollapsedEventArgs { level: number; groupingKey: string | number; } -export interface OnRowCountChangedEventArgs { previous: number; current: number; dataView: SlickDataView; callingOnRowsChanged: boolean; } -export interface OnRowsChangedEventArgs { rows: number[]; dataView: SlickDataView; calledOnRowCountChanged: boolean; } -export interface OnRowsOrCountChangedEventArgs { rowsDiff: number[]; previousRowCount: number; currentRowCount: number; rowCountChanged: boolean; rowsChanged: boolean; dataView: SlickDataView; } -export interface OnSetItemsCalledEventArgs { idProperty: string; } +export interface OnRowCountChangedEventArgs { previous: number; current: number; itemCount: number; dataView: SlickDataView; callingOnRowsChanged: boolean; } +export interface OnRowsChangedEventArgs { rows: number[]; itemCount: number; dataView: SlickDataView; calledOnRowCountChanged: boolean; } +export interface OnRowsOrCountChangedEventArgs { rowsDiff: number[]; previousRowCount: number; currentRowCount: number; itemCount: number; rowCountChanged: boolean; rowsChanged: boolean; dataView: SlickDataView; } +export interface OnSetItemsCalledEventArgs { idProperty: string; itemCount: number; } diff --git a/packages/common/src/interfaces/slickGrid.interface.ts b/packages/common/src/interfaces/slickGrid.interface.ts index c24815079..107413b7a 100644 --- a/packages/common/src/interfaces/slickGrid.interface.ts +++ b/packages/common/src/interfaces/slickGrid.interface.ts @@ -11,12 +11,12 @@ import { PagingInfo, SingleColumnSort, SlickCellSelectionModel, + SlickCompositeEditor, SlickDataView, SlickEditorLock, SlickEvent, SlickRowSelectionModel, } from './index'; -import { SlickCompositeEditor } from './slickCompositeEditor.interface'; export interface SlickGrid { /** @@ -536,7 +536,7 @@ export interface OnCellCssStylesChangedEventArgs extends SlickGridEventData { ke export interface OnColumnsDragEventArgs extends SlickGridEventData { triggeredByColumn: string; resizeHandle: HTMLElement; } export interface OnColumnsReorderedEventArgs extends SlickGridEventData { impactedColumns: Column[]; } export interface OnColumnsResizedEventArgs extends SlickGridEventData { triggeredByColumn: string; } -export interface OnCompositeEditorChangeEventArgs extends SlickGridEventData { row: number; cell: number; item: any; column: Column; formValues: any; editors: { [columnId: string]: Editor; }; } +export interface OnCompositeEditorChangeEventArgs extends SlickGridEventData { row: number; cell: number; item: any; column: Column; formValues: any; editors: { [columnId: string]: Editor; }; triggeredBy?: 'user' | 'system'; } export interface OnClickEventArgs extends SlickGridEventData { row: number; cell: number; } export interface OnDblClickEventArgs extends SlickGridEventData { row: number; cell: number; } export interface OnFooterContextMenuEventArgs extends SlickGridEventData { column: Column; } diff --git a/packages/common/src/styles/_variables-theme-salesforce.scss b/packages/common/src/styles/_variables-theme-salesforce.scss index 820a3b797..d18e8c2c2 100644 --- a/packages/common/src/styles/_variables-theme-salesforce.scss +++ b/packages/common/src/styles/_variables-theme-salesforce.scss @@ -175,6 +175,7 @@ $slider-editor-height: 24px !default; $slider-filter-thumb-color: #3C97DD !default; $slider-filter-runnable-track-bgcolor: #ECEBEA !default; $row-selected-color: #ECEBEA !default; +$row-highlight-background-color: lighten($highlight-color, 50%) !default; $row-mouse-hover-color: #f3f2f2 !default; $row-mouse-hover-box-shadow: 0 0 0 2px #dddbda !default; $detail-view-icon-collapse-color: $primary-color !default; diff --git a/packages/composite-editor-component/README.md b/packages/composite-editor-component/README.md index bccab42fd..3c0a37e18 100644 --- a/packages/composite-editor-component/README.md +++ b/packages/composite-editor-component/README.md @@ -14,9 +14,10 @@ Vanilla Bundle implementation of a Composite Editor Modal Window which can do the following - Create +- Clone (allows you to clone & edit a row, it's like a copy+edit in a single action) - Update - Mass Update Changes -- Mass Selection Changes (similar to Mass Update but only for the selected items) +- Mass Selection Changes (similar to Mass Update but only for the selected items/rows) ### Installation Follow the instruction provided in the main [README](https://github.com/ghiscoding/slickgrid-universal#installation). diff --git a/packages/composite-editor-component/package.json b/packages/composite-editor-component/package.json index bbab705f5..02506ec9c 100644 --- a/packages/composite-editor-component/package.json +++ b/packages/composite-editor-component/package.json @@ -42,7 +42,7 @@ "dompurify": "^2.2.6" }, "devDependencies": { - "@types/webpack": "^4.41.25", + "@types/webpack": "^4.41.26", "cross-env": "^7.0.3", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2" diff --git a/packages/composite-editor-component/src/slick-composite-editor.component.spec.ts b/packages/composite-editor-component/src/slick-composite-editor.component.spec.ts index 1cc2533f6..2c7052e9e 100644 --- a/packages/composite-editor-component/src/slick-composite-editor.component.spec.ts +++ b/packages/composite-editor-component/src/slick-composite-editor.component.spec.ts @@ -26,6 +26,8 @@ const gridOptionsMock = { labels: { cancelButton: 'Cancel', cancelButtonKey: 'CANCEL', + cloneButton: 'Clone', + cloneButtonKey: 'CLONE', massSelectionButton: 'Update Selection', massSelectionButtonKey: 'APPLY_TO_SELECTION', massSelectionStatus: '{{x}} of {{y}} selected', @@ -125,7 +127,7 @@ describe('CompositeEditorService', () => { let div: HTMLDivElement; let translateService: TranslateServiceStub; const columnsMock: Column[] = [ - { id: 'field1', field: 'field1', width: 100, name: 'Field 1', nameKey: 'TITLE', editor: { model: Editors.text } }, + { id: 'productName', field: 'productName', width: 100, name: 'Product', nameKey: 'PRODUCT', editor: { model: Editors.text } }, { id: 'field2', field: 'field2', width: 75, name: 'Field 2' }, { id: 'field3', field: 'field3', width: 75, name: 'Field 3', nameKey: 'DURATION', editor: { model: Editors.date, massUpdate: true }, columnGroup: 'Group Name', columnGroupKey: 'GROUP_NAME' } ]; @@ -201,7 +203,7 @@ describe('CompositeEditorService', () => { setTimeout(() => { component.openDetails(mockModalOptions); - expect(spyOnError).toHaveBeenCalledWith({ type: 'error', code: 'ENABLE_ADD_ROW_REQUIRED', message: 'Composite Editor requires the flag "enableAddRow" to be set to True in your Grid Options when creating a new item.', }); + expect(spyOnError).toHaveBeenCalledWith({ type: 'error', code: 'ENABLE_ADD_ROW_REQUIRED', message: 'Composite Editor requires the flag "enableAddRow" to be set to True in your Grid Options when cloning/creating a new item.', }); done(); }); }); @@ -269,7 +271,7 @@ describe('CompositeEditorService', () => { setTimeout(() => { component.openDetails(mockModalOptions); - expect(spyOnError).toHaveBeenCalledWith({ type: 'warning', code: 'NO_RECORD_FOUND', message: 'No records selected for edit operation.' }); + expect(spyOnError).toHaveBeenCalledWith({ type: 'warning', code: 'NO_RECORD_FOUND', message: 'No records selected for edit or clone operation.' }); done(); }); }); @@ -328,7 +330,7 @@ describe('CompositeEditorService', () => { }); it('should make sure Slick-Composite-Editor is being created and rendered with 1 column layout', () => { - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); component = new SlickCompositeEditorComponent(); @@ -339,9 +341,9 @@ describe('CompositeEditorService', () => { const compositeHeaderElm = compositeContainerElm.querySelector('.slick-editor-modal-header') as HTMLSelectElement; const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; @@ -351,7 +353,7 @@ describe('CompositeEditorService', () => { expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); expect(compositeHeaderElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group expect(compositeTitleElm).toBeTruthy(); expect(compositeTitleElm.textContent).toBe('Details'); @@ -359,7 +361,7 @@ describe('CompositeEditorService', () => { expect(compositeFooterElm).toBeTruthy(); expect(compositeFooterCancelBtnElm).toBeTruthy(); expect(compositeFooterSaveBtnElm).toBeTruthy(); - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); }); it('should make sure Slick-Composite-Editor is being created and rendered with 2 columns layout when having more than 8 but less than 15 column definitions', () => { @@ -478,7 +480,7 @@ describe('CompositeEditorService', () => { }); it('should execute "onClose" callback when user confirms the closing of the modal when "onClose" callback is defined', (done) => { - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); const getEditSpy = jest.spyOn(gridStub, 'getEditController'); const cancelSpy = jest.spyOn(gridStub.getEditController(), 'cancelCurrentEdit'); @@ -489,8 +491,8 @@ describe('CompositeEditorService', () => { component = new SlickCompositeEditorComponent(); component.init(gridStub, container); component.openDetails(mockModalOptions); - component.editors = { field1: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed - gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct, formValues: { field1: 'test' }, editors: {}, grid: gridStub }); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct, formValues: { productName: 'test' }, editors: {}, grid: gridStub }); const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; @@ -498,9 +500,9 @@ describe('CompositeEditorService', () => { const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; - const field1DetailCellElm = field1DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; compositeFooterCancelBtnElm.click(); setTimeout(() => { @@ -510,8 +512,8 @@ describe('CompositeEditorService', () => { expect(compositeHeaderElm).toBeTruthy(); expect(compositeTitleElm).toBeTruthy(); expect(compositeTitleElm.textContent).toBe('Details'); - expect(field1LabelElm.textContent).toBe('Field 1'); - expect(field1DetailCellElm.classList.contains('modified')).toBe(true); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); expect(compositeFooterCancelBtnElm).toBeTruthy(); expect(spyOnClose).toHaveBeenCalled(); expect(getEditSpy).toHaveBeenCalledTimes(2); @@ -521,7 +523,7 @@ describe('CompositeEditorService', () => { }); it('should NOT execute "onClose" callback when user confirms the closing of the modal when "onClose" callback is defined', (done) => { - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); const cancelSpy = jest.spyOn(gridStub.getEditController(), 'cancelCurrentEdit'); @@ -539,9 +541,9 @@ describe('CompositeEditorService', () => { const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; - const field1DetailCellElm = field1DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; compositeFooterCancelBtnElm.click(); setTimeout(() => { @@ -552,8 +554,8 @@ describe('CompositeEditorService', () => { expect(compositeHeaderElm).toBeTruthy(); expect(compositeTitleElm).toBeTruthy(); expect(compositeTitleElm.textContent).toBe('Details'); - expect(field1LabelElm.textContent).toBe('Field 1'); - expect(field1DetailCellElm.classList.contains('modified')).toBe(false); // false since formValues: fieldX doesn't exist + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(false); // false since formValues: fieldX doesn't exist expect(compositeFooterCancelBtnElm).toBeTruthy(); expect(spyOnClose).toHaveBeenCalled(); expect(cancelSpy).not.toHaveBeenCalled(); @@ -686,52 +688,334 @@ describe('CompositeEditorService', () => { expect(saveSpy).toHaveBeenCalled(); }); - it('should execute "onAddNewRow" callback when triggered by a new item', () => { - const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; - const mockProduct1 = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; - const mockProduct2 = { address: { zip: 345678 }, product: { name: 'Product DEF', price: 22.33 } }; - jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); - jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); - const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); - const saveSpy = jest.spyOn(gridStub.getEditController(), 'commitCurrentEdit'); + describe('clone modal type', () => { + afterEach(() => { + jest.clearAllMocks(); + }); - const mockModalOptions = { headerTitle: 'Details', modalType: 'create' } as CompositeEditorOpenDetailOption; - component = new SlickCompositeEditorComponent(); - component.init(gridStub, container); - component.openDetails(mockModalOptions); - component.editors = { field1: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + it('should add a new cloned item in the grid and leave the selected row be to cloned untouched when the "Clone" button is clicked', () => { + const mockProduct1 = { id: 222, productName: 'Product 1', address: { zip: 123456 }, price: 12.55 }; + const mockProduct2 = { id: 333, productName: 'Product 2', address: { zip: 456789 }, price: 33.44 }; + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const currentEditorMock = { validate: jest.fn() }; + jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct2); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + jest.spyOn(dataViewStub, 'getItemById').mockReturnValue(null); + jest.spyOn(gridStub, 'getCellEditor').mockReturnValue(currentEditorMock as any); + jest.spyOn(currentEditorMock, 'validate').mockReturnValue({ valid: true, msg: null }); + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); - const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; - const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; - const compositeFooterSaveBtnElm = compositeFooterElm.querySelector('.btn-save') as HTMLSelectElement; - const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; - const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; - const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; - const field1DetailCellElm = field1DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const mockOnClose = jest.fn(); + const mockModalOptions = { headerTitle: 'Details', modalType: 'clone', insertNewId: 3, onClose: mockOnClose } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { productName: 'Product Cloned' }, editors: {}, grid: gridStub }); + const disposeSpy = jest.spyOn(component, 'dispose'); + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeContainerElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; - gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { field1: 'test' }, editors: {}, grid: gridStub }); + compositeFooterSaveBtnElm.click(); - compositeFooterSaveBtnElm.click(); - gridStub.onAddNewRow.notify({ grid: gridStub, item: mockProduct2, column: columnsMock[0] }); + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(compositeFooterCancelBtnElm).toBeTruthy(); + expect(gridSrvAddItemSpy).toHaveBeenCalledWith({ ...mockProduct2, id: 3, productName: 'Product Cloned' }, undefined); + expect(disposeSpy).toHaveBeenCalled(); + }); - expect(component).toBeTruthy(); - expect(component.constructor).toBeDefined(); - expect(compositeContainerElm).toBeTruthy(); - expect(compositeHeaderElm).toBeTruthy(); - expect(compositeTitleElm).toBeTruthy(); - expect(compositeTitleElm.textContent).toBe('Details'); - expect(field1LabelElm.textContent).toBe('Field 1'); - expect(field1DetailCellElm.classList.contains('modified')).toBe(true); - expect(gridSrvAddItemSpy).toHaveBeenCalledWith({ ...mockProduct2, id: 2 }, undefined); - expect(saveSpy).toHaveBeenCalled(); + it('should throw an error when trying to clone an item with an Id that already exist in the grid', () => { + const mockProduct1 = { id: 222, productName: 'Product 1', address: { zip: 123456 }, price: 12.55 }; + const mockProduct2 = { id: 333, productName: 'Product 2', address: { zip: 456789 }, price: 33.44 }; + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const currentEditorMock = { validate: jest.fn() }; + jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct2); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + jest.spyOn(dataViewStub, 'getItemById').mockReturnValue(mockProduct1); // find existing item + jest.spyOn(gridStub, 'getCellEditor').mockReturnValue(currentEditorMock as any); + jest.spyOn(currentEditorMock, 'validate').mockReturnValue({ valid: true, msg: null }); + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); + + const mockOnClose = jest.fn(); + const mockOnError = jest.fn(); + const mockModalOptions = { headerTitle: 'Details', modalType: 'clone', insertNewId: 222, onClose: mockOnClose, onError: mockOnError } as CompositeEditorOpenDetailOption; + const spyOnError = jest.spyOn(mockModalOptions, 'onError'); + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { productName: 'Product Cloned' }, editors: {}, grid: gridStub }); + const disposeSpy = jest.spyOn(component, 'dispose'); + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeContainerElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + + compositeFooterSaveBtnElm.click(); + + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(compositeFooterCancelBtnElm).toBeTruthy(); + expect(gridSrvAddItemSpy).not.toHaveBeenCalled(); + expect(disposeSpy).toHaveBeenCalled(); + expect(spyOnError).toHaveBeenCalledWith({ type: 'error', code: 'ITEM_ALREADY_EXIST', message: 'The item object which you are trying to add already exist with the same Id:: 222' }); + }); + + it('should handle saving and grid changes when "Clone" save button is clicked and user provides a custom "onSave" async function', (done) => { + const mockProduct1 = { id: 222, productName: 'Product 1', address: { zip: 123456 }, price: 12.55 }; + const mockProduct2 = { id: 333, productName: 'Product 2', address: { zip: 456789 }, price: 33.44 }; + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const currentEditorMock = { validate: jest.fn() }; + jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct2); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + jest.spyOn(dataViewStub, 'getItemById').mockReturnValue(null); + jest.spyOn(gridStub, 'getCellEditor').mockReturnValue(currentEditorMock as any); + jest.spyOn(currentEditorMock, 'validate').mockReturnValue({ valid: true, msg: null }); + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + const cancelCommitSpy = jest.spyOn(gridStub.getEditController(), 'cancelCurrentEdit'); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); + + const mockOnSave = jest.fn(); + mockOnSave.mockResolvedValue(Promise.resolve(true)); + const mockModalOptions = { headerTitle: 'Details', modalType: 'clone', insertNewId: 3, onSave: mockOnSave } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { productName: 'Product Cloned' }, editors: {}, grid: gridStub }); + const disposeSpy = jest.spyOn(component, 'dispose'); + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeContainerElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + const validationSummaryElm = compositeContainerElm.querySelector('.validation-summary') as HTMLSelectElement; + + compositeFooterSaveBtnElm.click(); + expect(compositeFooterSaveBtnElm.disabled).toBeTruthy(); + expect(compositeFooterSaveBtnElm.classList.contains('saving')).toBeTruthy(); + + setTimeout(() => { + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(compositeFooterCancelBtnElm).toBeTruthy(); + expect(gridSrvAddItemSpy).toHaveBeenCalledWith({ ...mockProduct2, id: 3, productName: 'Product Cloned' }, undefined); + expect(disposeSpy).toHaveBeenCalled(); + expect(validationSummaryElm.style.display).toBe('none'); + expect(validationSummaryElm.textContent).toBe(''); + expect(cancelCommitSpy).toHaveBeenCalled(); + expect(mockOnSave).toHaveBeenCalledWith({ productName: 'Product Cloned' }, { gridRowIndexes: [], dataContextIds: [] }, { ...mockProduct2, id: 3, productName: 'Product Cloned' }); + done(); + }); + }); + + it('should show a validation summary when clicking "Clone" save button and the custom "onSave" async function throws an error', (done) => { + const mockProduct1 = { id: 222, productName: 'Product 1', address: { zip: 123456 }, price: 12.55 }; + const mockProduct2 = { id: 333, productName: 'Product 2', address: { zip: 456789 }, price: 33.44 }; + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const currentEditorMock = { validate: jest.fn() }; + jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct2); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + jest.spyOn(dataViewStub, 'getItemById').mockReturnValue(null); + jest.spyOn(gridStub, 'getCellEditor').mockReturnValue(currentEditorMock as any); + jest.spyOn(currentEditorMock, 'validate').mockReturnValue({ valid: true, msg: null }); + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + const cancelCommitSpy = jest.spyOn(gridStub.getEditController(), 'cancelCurrentEdit'); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); + + const mockOnSave = jest.fn(); + mockOnSave.mockResolvedValue(Promise.reject(new Error('some error'))); + const mockModalOptions = { headerTitle: 'Details', modalType: 'clone', insertNewId: 3, onSave: mockOnSave } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { productName: 'Product Cloned' }, editors: {}, grid: gridStub }); + const disposeSpy = jest.spyOn(component, 'dispose'); + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeContainerElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + const validationSummaryElm = compositeContainerElm.querySelector('.validation-summary') as HTMLSelectElement; + + compositeFooterSaveBtnElm.click(); + expect(compositeFooterSaveBtnElm.disabled).toBeTruthy(); + expect(compositeFooterSaveBtnElm.classList.contains('saving')).toBeTruthy(); + + setTimeout(() => { + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(compositeFooterCancelBtnElm).toBeTruthy(); + expect(gridSrvAddItemSpy).not.toHaveBeenCalled(); + expect(disposeSpy).not.toHaveBeenCalled(); + expect(validationSummaryElm.style.display).toBe('block'); + expect(validationSummaryElm.textContent).toBe('some error'); + expect(cancelCommitSpy).not.toHaveBeenCalled(); + done(); + }); + }); + }); + + describe('create item', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('should execute "onAddNewRow" callback when triggered by a new item', (done) => { + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const mockProduct1 = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; + const mockProduct2 = { address: { zip: 345678 }, product: { name: 'Product DEF', price: 22.33 } }; + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); + const saveSpy = jest.spyOn(gridStub.getEditController(), 'commitCurrentEdit'); + + const mockModalOptions = { headerTitle: 'Details', modalType: 'create' } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeFooterElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockProduct2, formValues: { productName: 'test' }, editors: {}, grid: gridStub }); + + compositeFooterSaveBtnElm.click(); + gridStub.onAddNewRow.notify({ grid: gridStub, item: mockProduct2, column: columnsMock[0] }); + + setTimeout(() => { + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(gridSrvAddItemSpy).toHaveBeenCalledWith({ ...mockProduct2, id: 2 }, undefined); + expect(saveSpy).toHaveBeenCalled(); + done(); + }); + }); + + it('should handle saving and grid changes when save button is clicked and user provides a custom "onSave" async function', (done) => { + const newGridOptions = { ...gridOptionsMock, enableAddRow: true }; + const mockProduct1 = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; + const mockNewProduct2 = { address: { zip: 345678 }, product: { name: 'Product DEF', price: 22.33 } }; + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockNewProduct2); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + const gridSrvAddItemSpy = jest.spyOn(gridServiceStub, 'addItem'); + const saveSpy = jest.spyOn(gridStub.getEditController(), 'commitCurrentEdit'); + + const mockCreateOnSave = jest.fn(); + mockCreateOnSave.mockResolvedValue(Promise.resolve(true)); + const mockModalOptions = { headerTitle: 'Details', modalType: 'create', insertNewId: 3, onSave: mockCreateOnSave } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + component.editors = { productName: { setValue: jest.fn(), isValueChanged: () => true } as unknown as Editor }; // return True for value changed + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeFooterElm.querySelector('.btn-save') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailCellElm = productNameDetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + + gridStub.onCompositeEditorChange.notify({ row: 0, cell: 0, column: columnsMock[0], item: mockNewProduct2, formValues: { productName: 'test' }, editors: {}, grid: gridStub }); + + compositeFooterSaveBtnElm.click(); + gridStub.onAddNewRow.notify({ grid: gridStub, item: mockNewProduct2, column: columnsMock[0] }); + + setTimeout(() => { + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Product'); + expect(productNameDetailCellElm.classList.contains('modified')).toBe(true); + expect(gridSrvAddItemSpy).toHaveBeenCalledWith({ ...mockNewProduct2, id: 3 }, undefined); + expect(saveSpy).toHaveBeenCalled(); + expect(mockCreateOnSave).toHaveBeenCalledWith({ productName: 'test' }, { gridRowIndexes: [], dataContextIds: [] }, { ...mockNewProduct2, id: 3 }); + done(); + }); + }); }); describe('Form Logics', () => { it('should make sure Slick-Composite-Editor is being created and then call "changeFormInputValue" to change dynamically any of the form input value', () => { const mockEditor = { setValue: jest.fn(), disable: jest.fn(), } as unknown as Editor; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); component = new SlickCompositeEditorComponent(); @@ -740,9 +1024,9 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; const field3DetailCellElm = field3DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; @@ -752,9 +1036,9 @@ describe('CompositeEditorService', () => { expect(component).toBeTruthy(); expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(field3DetailCellElm.classList.contains('modified')).toBe(true); expect(component.formValues).toEqual({ field3: 'Field 3 different text' }); }); @@ -762,7 +1046,7 @@ describe('CompositeEditorService', () => { it('should make sure Slick-Composite-Editor is being created and then call "changeFormInputValue" on a disabled field and expect the field to be modified but empty', () => { const mockEditor = { setValue: jest.fn(), disable: jest.fn(), } as unknown as Editor; mockEditor.disabled = true; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); component = new SlickCompositeEditorComponent(); @@ -771,9 +1055,9 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; const field3DetailCellElm = field3DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; @@ -783,9 +1067,9 @@ describe('CompositeEditorService', () => { expect(component).toBeTruthy(); expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(field3DetailCellElm.classList.contains('modified')).toBe(true); expect(component.formValues).toEqual({ field3: '' }); }); @@ -793,7 +1077,7 @@ describe('CompositeEditorService', () => { it('should make sure Slick-Composite-Editor is being created and then call "changeFormInputValue" on a disabled field and expect the field to be empty and not modified when "excludeDisabledFieldFormValues" grid option is set to True', () => { const mockEditor = { setValue: jest.fn(), disable: jest.fn(), } as unknown as Editor; mockEditor.disabled = true; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); gridOptionsMock.compositeEditorOptions.excludeDisabledFieldFormValues = true; @@ -803,9 +1087,9 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; const field3DetailCellElm = field3DetailContainerElm.querySelector('.slick-cell') as HTMLSelectElement; @@ -815,9 +1099,9 @@ describe('CompositeEditorService', () => { expect(component).toBeTruthy(); expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(field3DetailCellElm.classList.contains('modified')).toBe(false); expect(component.formValues).toEqual({ field3: '' }); }); @@ -864,7 +1148,7 @@ describe('CompositeEditorService', () => { it('should make sure Slick-Composite-Editor is being created and then call "disableFormInput" to disable the field', () => { const mockEditor = { setValue: jest.fn(), disable: jest.fn(), } as unknown as Editor; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); const disableSpy = jest.spyOn(mockEditor, 'disable'); @@ -874,9 +1158,9 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; component.editors = { field3: mockEditor }; @@ -886,9 +1170,9 @@ describe('CompositeEditorService', () => { expect(component.editors).toBeTruthy(); expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(disableSpy).toHaveBeenCalledWith(true); }); @@ -898,7 +1182,7 @@ describe('CompositeEditorService', () => { disable: jest.fn(), setValue: jest.fn(), } as unknown as Editor; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, producName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); component = new SlickCompositeEditorComponent(); @@ -907,7 +1191,7 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; component.editors = { field3: mockEditor }; @@ -917,7 +1201,7 @@ describe('CompositeEditorService', () => { expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(field3DetailContainerElm).toBeTruthy(); expect(mockEditor.changeEditorOption).toHaveBeenCalledWith('minDate', 'today'); }); @@ -946,7 +1230,7 @@ describe('CompositeEditorService', () => { it('should make sure Slick-Composite-Editor is being created and then call "disableFormInput" by passing False as 2nd argument to enable the field', () => { const mockEditor = { setValue: jest.fn(), disable: jest.fn(), } as unknown as Editor; - const mockProduct = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); const disableSpy = jest.spyOn(mockEditor, 'disable'); @@ -956,9 +1240,9 @@ describe('CompositeEditorService', () => { const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; const compositeBodyElm = compositeContainerElm.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; const field3DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field3.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const field3LabelElm = field3DetailContainerElm.querySelector('.item-details-label.editor-field3') as HTMLSelectElement; component.editors = { field3: mockEditor }; @@ -967,9 +1251,9 @@ describe('CompositeEditorService', () => { expect(component).toBeTruthy(); expect(component.constructor).toBeDefined(); expect(compositeContainerElm).toBeTruthy(); - expect(field1LabelElm.textContent).toBe('Field 1'); // regular, without column group + expect(productNameLabelElm.textContent).toBe('Product'); // regular, without column group expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); // with column group - expect(field1DetailContainerElm).toBeTruthy(); + expect(productNameDetailContainerElm).toBeTruthy(); expect(disableSpy).toHaveBeenCalledWith(false); }); }); @@ -1278,8 +1562,8 @@ describe('CompositeEditorService', () => { expect(compositeTitleElm.textContent).toBe('Details'); expect(field3LabelElm.textContent).toBe('Group Name - Field 3'); expect(getEditSpy).toHaveBeenCalledTimes(2); - expect(mockOnSave).toHaveBeenCalledWith({ field3: 'test' }, { gridRowIndexes: [0], dataContextIds: [222] }, expect.any(Function)); - expect(setItemsSpy).not.toHaveBeenCalled(); + expect(mockOnSave).toHaveBeenCalledWith({ field3: 'test' }, { gridRowIndexes: [0], dataContextIds: [222] }, undefined); + expect(setItemsSpy).toHaveBeenCalled(); expect(cancelCommitSpy).toHaveBeenCalled(); expect(setActiveCellSpy).toHaveBeenCalledWith(0, 0, false); expect(validationSummaryElm.style.display).toBe('none'); @@ -1357,9 +1641,9 @@ describe('CompositeEditorService', () => { component?.dispose(); }); - it('should have translate text when opening Composite Editor with New Item', () => { + it('should have translate text when opening Composite Editor when calling a Create New Item', () => { const newGridOptions = { ...gridOptionsMock, enableAddRow: true, enableTranslate: true }; - const mockProduct1 = { id: 222, address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct1 = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); @@ -1372,8 +1656,8 @@ describe('CompositeEditorService', () => { const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; - const field1DetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-field1.slick-col-medium-12') as HTMLSelectElement; - const field1LabelElm = field1DetailContainerElm.querySelector('.item-details-label.editor-field1') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; const compositeFooterSaveBtnElm = compositeFooterElm.querySelector('.btn-save') as HTMLSelectElement; @@ -1384,13 +1668,45 @@ describe('CompositeEditorService', () => { expect(compositeHeaderElm).toBeTruthy(); expect(compositeTitleElm).toBeTruthy(); expect(compositeTitleElm.textContent).toBe('Details'); - expect(field1LabelElm.textContent).toBe('Titre'); + expect(productNameLabelElm.textContent).toBe('Produit'); expect(compositeFooterCancelBtnElm.textContent).toBe('Annuler'); expect(compositeFooterSaveBtnElm.textContent).toBe('Sauvegarder'); }); + it('should have translate text when opening Composite Editor when cloning an Item', () => { + const newGridOptions = { ...gridOptionsMock, enableAddRow: true, enableTranslate: true }; + const mockProduct1 = { id: 222, address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; + jest.spyOn(gridStub, 'getOptions').mockReturnValue(newGridOptions); + jest.spyOn(dataViewStub, 'getItems').mockReturnValue([mockProduct1]); + + const mockModalOptions = { headerTitle: 'Details', modalType: 'clone' } as CompositeEditorOpenDetailOption; + component = new SlickCompositeEditorComponent(); + component.init(gridStub, container); + component.openDetails(mockModalOptions); + + const compositeContainerElm = document.querySelector('div.slick-editor-modal.slickgrid_123456') as HTMLSelectElement; + const compositeHeaderElm = document.querySelector('.slick-editor-modal-header') as HTMLSelectElement; + const compositeTitleElm = compositeHeaderElm.querySelector('.slick-editor-modal-title') as HTMLSelectElement; + const compositeBodyElm = document.querySelector('.slick-editor-modal-body') as HTMLSelectElement; + const productNameDetailContainerElm = compositeBodyElm.querySelector('.item-details-container.editor-productName.slick-col-medium-12') as HTMLSelectElement; + const productNameLabelElm = productNameDetailContainerElm.querySelector('.item-details-label.editor-productName') as HTMLSelectElement; + const compositeFooterElm = compositeContainerElm.querySelector('.slick-editor-modal-footer') as HTMLSelectElement; + const compositeFooterCancelBtnElm = compositeFooterElm.querySelector('.btn-cancel') as HTMLSelectElement; + const compositeFooterSaveBtnElm = compositeFooterElm.querySelector('.btn-save') as HTMLSelectElement; + + expect(component).toBeTruthy(); + expect(component.constructor).toBeDefined(); + expect(compositeContainerElm).toBeTruthy(); + expect(compositeHeaderElm).toBeTruthy(); + expect(compositeTitleElm).toBeTruthy(); + expect(compositeTitleElm.textContent).toBe('Details'); + expect(productNameLabelElm.textContent).toBe('Produit'); + expect(compositeFooterCancelBtnElm.textContent).toBe('Annuler'); + expect(compositeFooterSaveBtnElm.textContent).toBe('Cloner'); + }); + it('should have translated text when handling a saving of grid changes when "Mass Selection" save button is clicked', (done) => { - const mockProduct = { id: 222, field3: 'something', address: { zip: 123456 }, product: { name: 'Product ABC', price: 12.55 } }; + const mockProduct = { id: 222, field3: 'something', address: { zip: 123456 }, productName: 'Product ABC', price: 12.55 }; const currentEditorMock = { validate: jest.fn() }; jest.spyOn(gridStub, 'getDataItem').mockReturnValue(mockProduct); jest.spyOn(gridStub, 'getCellEditor').mockReturnValue(currentEditorMock as any); diff --git a/packages/composite-editor-component/src/slick-composite-editor.component.ts b/packages/composite-editor-component/src/slick-composite-editor.component.ts index 25cb2b0e6..c6d00693b 100644 --- a/packages/composite-editor-component/src/slick-composite-editor.component.ts +++ b/packages/composite-editor-component/src/slick-composite-editor.component.ts @@ -3,11 +3,13 @@ import 'slickgrid/slick.compositeeditor.js'; import { BindingEventService, Column, + CompositeEditorModalType, CompositeEditorOpenDetailOption, CompositeEditorOption, Constants, ContainerService, CurrentRowSelection, + deepCopy, Editor, EditorValidationResult, ExternalResource, @@ -18,8 +20,8 @@ import { GridStateService, Locale, OnErrorOption, - OnAddNewRowEventArgs, OnCompositeEditorChangeEventArgs, + PlainFunc, sanitizeTextByAvailableSanitizer, SlickEventHandler, SlickGrid, @@ -33,10 +35,16 @@ declare const Slick: SlickNamespace; const DEFAULT_ON_ERROR = (error: OnErrorOption) => console.log(error.message); +type ApplyChangesCallbackFn = ( + formValues: { [columnId: string]: any; } | null, + selection: { gridRowIndexes: number[]; dataContextIds: Array; } +) => void; + export class SlickCompositeEditorComponent implements ExternalResource { private _bindEventService: BindingEventService; private _eventHandler: SlickEventHandler; private _modalElm: HTMLDivElement; + private _originalDataContext: any; private _options: CompositeEditorOpenDetailOption; private _lastActiveRowNumber: number; private _locales: Locale; @@ -82,6 +90,12 @@ export class SlickCompositeEditorComponent implements ExternalResource { this._bindEventService = new BindingEventService(); } + /** + * initialize the Composite Editor by passing the SlickGrid object and the container service + * + * Note: we aren't using DI in the constructor simply to be as framework agnostic as possible, + * we are simply using this init() function with a very basic container service to do the job + */ init(grid: SlickGrid, containerService: ContainerService) { this.grid = grid; this.gridService = containerService.get('GridService'); @@ -177,8 +191,8 @@ export class SlickCompositeEditorComponent implements ExternalResource { /** * Disable (or enable) an input of the Composite Editor form - * @param columnId - * @param isDisabled + * @param {String} columnId - column definition id + * @param isDisabled - defaults to True, are we disabling the associated form input */ disableFormInput(columnId: string, isDisabled = true) { const editor = this._editors?.[columnId]; @@ -187,6 +201,7 @@ export class SlickCompositeEditorComponent implements ExternalResource { } } + /** Entry point to initialize and open the Composite Editor modal window */ openDetails(options: CompositeEditorOpenDetailOption): SlickCompositeEditorComponent | null { const onError = options.onError ?? DEFAULT_ON_ERROR; const defaultOptions = { @@ -224,8 +239,7 @@ export class SlickCompositeEditorComponent implements ExternalResource { } } } - const modalType = this._options.modalType || 'edit'; - + const modalType: CompositeEditorModalType = this._options.modalType || 'edit'; if (!this.gridOptions.editable) { onError({ type: 'error', code: 'EDITABLE_GRID_REQUIRED', message: 'Your grid must be editable in order to use the Composite Editor Modal.' }); @@ -233,15 +247,16 @@ export class SlickCompositeEditorComponent implements ExternalResource { } else if (!this.gridOptions.enableCellNavigation) { onError({ type: 'error', code: 'ENABLE_CELL_NAVIGATION_REQUIRED', message: 'Composite Editor requires the flag "enableCellNavigation" to be set to True in your Grid Options.' }); return null; - } else if (!this.gridOptions.enableAddRow && modalType === 'create') { - onError({ type: 'error', code: 'ENABLE_ADD_ROW_REQUIRED', message: 'Composite Editor requires the flag "enableAddRow" to be set to True in your Grid Options when creating a new item.' }); + } else if (!this.gridOptions.enableAddRow && (modalType === 'clone' || modalType === 'create')) { + onError({ type: 'error', code: 'ENABLE_ADD_ROW_REQUIRED', message: 'Composite Editor requires the flag "enableAddRow" to be set to True in your Grid Options when cloning/creating a new item.' }); return null; - } else if (!activeCell && modalType === 'edit') { - onError({ type: 'warning', code: 'NO_RECORD_FOUND', message: 'No records selected for edit operation.' }); + } else if (!activeCell && (modalType === 'clone' || modalType === 'edit')) { + onError({ type: 'warning', code: 'NO_RECORD_FOUND', message: 'No records selected for edit or clone operation.' }); return null; } else { const isWithMassChange = (modalType === 'mass-update' || modalType === 'mass-selection'); const dataContext = !isWithMassChange ? this.grid.getDataItem(activeRow) : {}; + this._originalDataContext = deepCopy(dataContext); const columnDefinitions = this.grid.getColumns(); const selectedRowsIndexes = this.hasRowSelectionEnabled() ? this.grid.getSelectedRows() : []; const fullDataset = this.dataView?.getItems() ?? []; @@ -334,6 +349,9 @@ export class SlickCompositeEditorComponent implements ExternalResource { let leftFooterText = ''; let saveButtonText = ''; switch (modalType) { + case 'clone': + saveButtonText = this.getLabelText('cloneButton', 'TEXT_CLONE', 'Clone'); + break; case 'mass-update': const footerUnparsedText = this.getLabelText('massUpdateStatus', 'TEXT_ALL_X_RECORDS_SELECTED', 'All {{x}} records selected'); leftFooterText = this.parseText(footerUnparsedText, { x: fullDatasetLength }); @@ -432,7 +450,11 @@ export class SlickCompositeEditorComponent implements ExternalResource { // when adding a new row to the grid, we need to invalidate that row and re-render the grid const onAddNewRowHandler = this.grid.onAddNewRow; (this._eventHandler as SlickEventHandler>) - .subscribe(onAddNewRowHandler, this.handleOnAddNewRow.bind(this)); + .subscribe(onAddNewRowHandler, (_e, args) => { + this.insertNewItemInDataView(args.item); + this._originalDataContext = args.item; // this becomes the new data context + this.dispose(); + }); } return this; @@ -445,17 +467,42 @@ export class SlickCompositeEditorComponent implements ExternalResource { } } - /** Apply Mass Update Changes from a the form changes */ - applySaveMassUpdateChanges(formValues: any) { + /** Cancel the Editing which will also close the modal window */ + async cancelEditing() { + let confirmed = true; + if (this.formValues && Object.keys(this.formValues).length > 0 && typeof this._options.onClose === 'function') { + confirmed = await this._options.onClose(); + } + + if (confirmed) { + this.grid.getEditController().cancelCurrentEdit(); + + // cancel current edit is not enough when editing/cloning, + // we also need to reset with the original item data context to undo/reset the entire row + if (this._options?.modalType === 'edit' || this._options?.modalType === 'clone') { + this.resetCurrentRowDataContext(); + } + + this.grid.setActiveRow(this._lastActiveRowNumber); + this.dispose(); + } + } + + // -- + // private methods + // ---------------- + + /** Apply Mass Update Changes (form values) to the entire dataset */ + private applySaveMassUpdateChanges(formValues: any) { const data = this.dataView.getItems(); // from the "lastCompositeEditor" object that we kept as reference, it contains all the changes inside the "formValues" property // we can loop through these changes and apply them on the selected row indexes for (const itemProp in formValues) { - if (formValues.hasOwnProperty(itemProp)) { - data.forEach(item => { - if (formValues.hasOwnProperty(itemProp)) { - item[itemProp] = formValues[itemProp]; + if (itemProp in formValues) { + data.forEach(dataContext => { + if (itemProp in formValues) { + dataContext[itemProp] = formValues[itemProp]; } }); } @@ -466,16 +513,17 @@ export class SlickCompositeEditorComponent implements ExternalResource { this.grid.invalidate(); } - applySaveMassSelectionChanges(formValues: any, selection: { gridRowIndexes: number[]; dataContextIds: Array; }) { + /** Apply Mass Changes to the Selected rows in the grid (form values) */ + private applySaveMassSelectionChanges(formValues: any, selection: { gridRowIndexes: number[]; dataContextIds: Array; }) { const selectedItemIds = selection?.dataContextIds ?? []; const selectedItems = selectedItemIds.map(itemId => this.dataView.getItemById(itemId)); // from the "lastCompositeEditor" object that we kept as reference, it contains all the changes inside the "formValues" property // we can loop through these changes and apply them on the selected row indexes for (const itemProp in formValues) { - if (formValues.hasOwnProperty(itemProp)) { + if (itemProp in formValues) { selectedItems.forEach(dataContext => { - if (dataContext && dataContext.hasOwnProperty(itemProp) && formValues.hasOwnProperty(itemProp)) { + if (itemProp in formValues) { dataContext[itemProp] = formValues[itemProp]; } }); @@ -486,106 +534,6 @@ export class SlickCompositeEditorComponent implements ExternalResource { this.gridService?.updateItems(selectedItems); } - async cancelEditing() { - let confirmed = true; - if (this.formValues && Object.keys(this.formValues).length > 0 && typeof this._options.onClose === 'function') { - confirmed = await this._options.onClose(); - } - - if (confirmed) { - this.grid.getEditController().cancelCurrentEdit(); - this.grid.setActiveRow(this._lastActiveRowNumber); - this.dispose(); - } - } - - handleSaveClicked() { - const modalType = this._options?.modalType; - switch (modalType) { - case 'mass-update': - this.handleMassSaving(modalType, () => { - this.grid.getEditController().cancelCurrentEdit(); - this.grid.setActiveCell(0, 0, false); - this.dispose(); - }); - break; - case 'mass-selection': - this.handleMassSaving(modalType, () => { - this.grid.getEditController().cancelCurrentEdit(); - this.grid.setActiveRow(this._lastActiveRowNumber); - this.dispose(); - }); - break; - case 'create': - case 'edit': - default: - this.grid.getEditController().commitCurrentEdit(); - break; - } - } - - async handleMassSaving(modalType: 'mass-update' | 'mass-selection', executeCallback: () => void) { - const validationResults = this.validateCompositeEditors(); - const isFormValid = validationResults.valid; - this.showValidationSummaryText(false, ''); - const applyCallbackFnName = (modalType === 'mass-update') ? 'applySaveMassUpdateChanges' : 'applySaveMassSelectionChanges'; - - try { - if (typeof this[applyCallbackFnName] === 'function') { - if (!this.formValues || Object.keys(this.formValues).length === 0) { - this.executeOnError({ type: 'warning', code: 'NO_CHANGES_DETECTED', message: 'Sorry we could not detect any changes.' }); - } else if (isFormValid && this.formValues) { - this._modalSaveButtonElm.classList.add('saving'); - this._modalSaveButtonElm.disabled = true; - const gridStateSelection = this.gridStateService?.getCurrentRowSelections() as CurrentRowSelection; - const gridRowIndexes = gridStateSelection?.gridRowIndexes || []; - const dataContextIds = gridStateSelection?.dataContextIds || []; - - if (typeof this._options?.onSave === 'function') { - const successful = await this._options?.onSave(this.formValues, { gridRowIndexes, dataContextIds }, this[applyCallbackFnName].bind(this)); - - if (successful) { - // once we're done doing the mass update, we can cancel the current editor since we don't want to add any new row - // that will also destroy/close the modal window - executeCallback(); - } - } else { - this[applyCallbackFnName](this.formValues, { gridRowIndexes, dataContextIds }); - executeCallback(); - } - this.dispose(); - } - } - } catch (error) { - const errorMsg = (typeof error === 'string') ? error : (error?.message ?? error?.body?.message ?? ''); - this.showValidationSummaryText(true, errorMsg); - } - } - - showValidationSummaryText(isShowing: boolean, errorMsg = '') { - if (isShowing) { - this._modalBodyTopValidationElm.textContent = errorMsg; - this._modalBodyTopValidationElm.style.display = 'block'; - this._modalBodyTopValidationElm.scrollIntoView?.(); - this._modalSaveButtonElm.disabled = false; - this._modalSaveButtonElm.classList.remove('saving'); - } else { - this._modalBodyTopValidationElm.style.display = 'none'; - this._modalBodyTopValidationElm.textContent = errorMsg; - } - } - - validateCurrentEditor() { - const currentEditor = this.grid.getCellEditor(); - if (currentEditor?.validate) { - currentEditor.validate(); - } - } - - // -- - // private methods - // ---------------- - /** * Auto-Calculate how many columns to display in the view layout (1, 2, or 3). * We'll display a 1 column layount for 8 or less Editors, 2 columns layout for less than 15 Editors or 3 columns when more than 15 Editors @@ -601,49 +549,60 @@ export class SlickCompositeEditorComponent implements ExternalResource { return 1; } + /** + * Execute the onError callback when defined + * or use the default onError callback which is to simply display the error in the console + */ private executeOnError(error: OnErrorOption) { const onError = this._options?.onError ?? DEFAULT_ON_ERROR; onError(error); } + /** - * Get the column label, the label might have an optional "columnGroup" (or "columnGroupKey" which need to be translated) - * @param {object} columnDef - column definition - * @returns {string} label - column label - */ - private getColumnLabel(columnDef: Column): string { - const columnGroupSeparator = this.gridOptions.columnGroupSeparator || ' - '; - let columnName = columnDef.nameCompositeEditor || columnDef.name || ''; - let columnGroup = columnDef.columnGroup || ''; + * A simple and generic method to execute the "OnSave" callback if it's defined by the user OR else simply execute built-in apply changes callback. + * This method deals with multiple callbacks as shown below + * @param {Function} applyChangesCallback - first callback to apply the changes into the grid (this could be a user custom callback) + * @param {Function} executePostCallback - second callback to execute right after the "onSave" + * @param {Function} beforeClosingCallback - third and last callback to execute after Saving but just before closing the modal window + * @param {Object} itemDataContext - item data context, only provided for modal type (create/clone/edit) + */ + private async executeOnSave(applyChangesCallback: ApplyChangesCallbackFn, executePostCallback: PlainFunc, beforeClosingCallback?: PlainFunc, itemDataContext?: any) { + try { + this.showValidationSummaryText(false, ''); + const validationResults = this.validateCompositeEditors(); - if (this.gridOptions.enableTranslate && this.translaterService) { - const translationKey = columnDef.nameCompositeEditorKey || columnDef.nameKey; - if (translationKey) { - columnName = this.translaterService.translate(translationKey); - } - if (columnDef.columnGroupKey && this.translaterService?.translate) { - columnGroup = this.translaterService.translate(columnDef.columnGroupKey); - } - } + if (validationResults.valid) { + this._modalSaveButtonElm.classList.add('saving'); + this._modalSaveButtonElm.disabled = true; - const columnLabel = columnGroup ? `${columnGroup}${columnGroupSeparator}${columnName}` : columnName; - return columnLabel || ''; - } + if (typeof this._options?.onSave === 'function') { + // call the custon onSave callback when defined and note that the item data context will only be filled for create/clone/edit + const successful = await this._options?.onSave(this.formValues, this.getCurrentRowSelections(), itemDataContext); - private handleBodyClicked(event: Event) { - if ((event.target as HTMLElement)?.classList?.contains('slick-editor-modal')) { - if (this._options?.backdrop !== 'static') { + if (successful) { + // apply the changes in the grid + applyChangesCallback(this.formValues, this.getCurrentRowSelections()); + + // once we're done doing the mass update, we can cancel the current editor since we don't want to add any new row + // that will also destroy/close the modal window + executePostCallback(); + } + } else { + applyChangesCallback(this.formValues, this.getCurrentRowSelections()); + executePostCallback(); + } + + // run any function before closing the modal + if (typeof beforeClosingCallback === 'function') { + beforeClosingCallback(); + } + + // close the modal only when successful this.dispose(); } - } - } - - private handleKeyDown(event: KeyboardEvent) { - if (event.code === 'Escape') { - this.cancelEditing(); - event.stopPropagation(); - event.preventDefault(); - } else if (event.code === 'Tab') { - this.validateCurrentEditor(); + } catch (error) { + const errorMsg = (typeof error === 'string') ? error : (error?.message ?? error?.body?.message ?? ''); + this.showValidationSummaryText(true, errorMsg); } } @@ -693,6 +652,31 @@ export class SlickCompositeEditorComponent implements ExternalResource { return this.grid.getCellEditor(); } + /** + * Get the column label, the label might have an optional "columnGroup" (or "columnGroupKey" which need to be translated) + * @param {object} columnDef - column definition + * @returns {string} label - column label + */ + private getColumnLabel(columnDef: Column): string { + const columnGroupSeparator = this.gridOptions.columnGroupSeparator || ' - '; + let columnName = columnDef.nameCompositeEditor || columnDef.name || ''; + let columnGroup = columnDef.columnGroup || ''; + + if (this.gridOptions.enableTranslate && this.translaterService) { + const translationKey = columnDef.nameCompositeEditorKey || columnDef.nameKey; + if (translationKey) { + columnName = this.translaterService.translate(translationKey); + } + if (columnDef.columnGroupKey && this.translaterService?.translate) { + columnGroup = this.translaterService.translate(columnDef.columnGroupKey); + } + } + + const columnLabel = columnGroup ? `${columnGroup}${columnGroupSeparator}${columnName}` : columnName; + return columnLabel || ''; + } + + /** Get the correct label text depending, if we use a Translater Service then translate the text when possible else use default text */ private getLabelText(labelProperty: string, localeText: string, defaultText: string): string { const textLabels = { ...this.gridOptions.compositeEditorOptions?.labels, ...this._options?.labels }; @@ -700,26 +684,51 @@ export class SlickCompositeEditorComponent implements ExternalResource { const translationKey = textLabels[`${labelProperty}Key`]; return this.translaterService.translate(translationKey); } - return (textLabels && textLabels[labelProperty]) || (this._locales && this._locales[localeText]) || defaultText; + return textLabels?.[labelProperty] ?? this._locales?.[localeText] ?? defaultText; } - private handleOnAddNewRow(_e: Event, args: OnAddNewRowEventArgs) { - const fullDataset = this.dataView?.getItems() ?? []; - const fullDatasetLength = (Array.isArray(fullDataset)) ? fullDataset.length : 0; - const newId = this._options.insertNewId ?? fullDatasetLength + 1; - const item = args.item; - item[this.gridOptions.datasetIdPropertyName || 'id'] = newId; + /** Retrieve the current selection of row indexes & data context Ids */ + private getCurrentRowSelections(): { gridRowIndexes: number[], dataContextIds: Array } { + const gridStateSelection = this.gridStateService?.getCurrentRowSelections() as CurrentRowSelection; + const gridRowIndexes = gridStateSelection?.gridRowIndexes || []; + const dataContextIds = gridStateSelection?.dataContextIds || []; + return { gridRowIndexes, dataContextIds }; + } - if (!this.dataView.getItemById(newId)) { - this.gridService?.addItem(item, this._options.insertOptions); - this.dispose(); + + + private handleBodyClicked(event: Event) { + if ((event.target as HTMLElement)?.classList?.contains('slick-editor-modal')) { + if (this._options?.backdrop !== 'static') { + this.dispose(); + } + } + } + + private handleKeyDown(event: KeyboardEvent) { + if (event.code === 'Escape') { + this.cancelEditing(); + event.stopPropagation(); + event.preventDefault(); + } else if (event.code === 'Tab') { + this.validateCurrentEditor(); + } + } + + /** Callback which processes a Mass Update or Mass Selection Changes */ + private async handleMassSaving(modalType: 'mass-update' | 'mass-selection', executePostCallback: PlainFunc) { + if (!this.formValues || Object.keys(this.formValues).length === 0) { + this.executeOnError({ type: 'warning', code: 'NO_CHANGES_DETECTED', message: 'Sorry we could not detect any changes.' }); + } else { + const applyCallbackFnName = (modalType === 'mass-update') ? 'applySaveMassUpdateChanges' : 'applySaveMassSelectionChanges'; + this.executeOnSave(this[applyCallbackFnName].bind(this), executePostCallback.bind(this)); } } /** Anytime an input of the Composite Editor form changes, we'll add/remove a "modified" CSS className for styling purposes */ private handleOnCompositeEditorChange(_e: Event, args: OnCompositeEditorChangeEventArgs) { const columnId = args.column?.id ?? ''; - this._formValues = args.formValues; + this._formValues = { ...this._formValues, ...args.formValues }; const editor = this._editors?.[columnId] as Editor; const isEditorValueChanged = editor?.isValueChanged?.() ?? false; @@ -744,13 +753,101 @@ export class SlickCompositeEditorComponent implements ExternalResource { return (isRowSelectionEnabled && selectionModel); } + /** switch case handler to determine which code to execute depending on the modal type */ + private handleSaveClicked() { + const modalType = this._options?.modalType; + switch (modalType) { + case 'mass-update': + this.handleMassSaving(modalType, () => { + this.grid.getEditController().cancelCurrentEdit(); + this.grid.setActiveCell(0, 0, false); + }); + break; + case 'mass-selection': + this.handleMassSaving(modalType, () => { + this.grid.getEditController().cancelCurrentEdit(); + this.grid.setActiveRow(this._lastActiveRowNumber); + }); + break; + case 'clone': + // the clone object will be a merge of the selected data context (original object) with the changed form values + const clonedItemDataContext = { ...this._originalDataContext, ...this.formValues }; + + // post save callback (before closing modal) + const postSaveCloneCallback = () => { + this.grid.getEditController().cancelCurrentEdit(); + this.grid.setActiveCell(0, 0, false); + }; + + // call the onSave execution and provide the item data context so that it's available to the user + this.executeOnSave( + this.insertNewItemInDataView.bind(this, clonedItemDataContext), + postSaveCloneCallback, + this.resetCurrentRowDataContext.bind(this), + clonedItemDataContext + ); + break; + case 'create': + case 'edit': + default: + // commit the changes into the grid + // if it's a "create" then it will triggered the "onAddNewRow" event which will in term push it to the grid + // as for the an "edit" it will simply apply the changes directly on the same row + this.grid.getEditController().commitCurrentEdit(); + + // if the user provided the "onSave" callback, let's execute it with the item data context + if (typeof this._options?.onSave === 'function') { + const itemDataContext = this.grid.getDataItem(this._lastActiveRowNumber); // we can get item data context directly from DataView + this._options?.onSave(this.formValues, this.getCurrentRowSelections(), itemDataContext); + } + + break; + } + } + + /** Insert an item into the DataView or throw an error when finding duplicate id in the dataset */ + private insertNewItemInDataView(item: any) { + const fullDataset = this.dataView?.getItems() ?? []; + const fullDatasetLength = (Array.isArray(fullDataset)) ? fullDataset.length : 0; + const newId = this._options.insertNewId ?? fullDatasetLength + 1; + item[this.gridOptions.datasetIdPropertyName || 'id'] = newId; + + if (!this.dataView.getItemById(newId)) { + this.gridService?.addItem(item, this._options.insertOptions); + } else { + this.executeOnError({ type: 'error', code: 'ITEM_ALREADY_EXIST', message: `The item object which you are trying to add already exist with the same Id:: ${newId}` }); + } + } + private parseText(inputText: string, mappedArgs: any): string { return inputText.replace(/\{\{(.*?)\}\}/g, (match, group) => { return mappedArgs[group] !== undefined ? mappedArgs[group] : match; }); } - validateCompositeEditors(targetElm?: HTMLElement): EditorValidationResult { + /** Put back the current row to its original item data context using the DataView without triggering a change */ + private resetCurrentRowDataContext() { + const idPropName = this.gridOptions.datasetIdPropertyName || 'id'; + const dataView = this.grid.getData(); + dataView.updateItem(this._originalDataContext[idPropName], this._originalDataContext); + } + + /** Show the Validation Summary text (as a
) when a validation fails or simply hide it when there's no error */ + private showValidationSummaryText(isShowing: boolean, errorMsg = '') { + if (isShowing) { + this._modalBodyTopValidationElm.textContent = errorMsg; + this._modalBodyTopValidationElm.style.display = 'block'; + this._modalBodyTopValidationElm.scrollIntoView?.(); + this._modalSaveButtonElm.disabled = false; + this._modalSaveButtonElm.classList.remove('saving'); + } else { + this._modalBodyTopValidationElm.style.display = 'none'; + this._modalBodyTopValidationElm.textContent = errorMsg; + } + } + + /** Validate all the Composite Editors that are defined in the form */ + private validateCompositeEditors(targetElm?: HTMLElement): EditorValidationResult { let validationResults: EditorValidationResult = { valid: true, msg: '' }; const currentEditor = this.grid.getCellEditor(); @@ -759,4 +856,12 @@ export class SlickCompositeEditorComponent implements ExternalResource { } return validationResults; } -} + + /** Validate the current cell editor */ + private validateCurrentEditor() { + const currentEditor = this.grid.getCellEditor(); + if (currentEditor?.validate) { + currentEditor.validate(); + } + } +} \ No newline at end of file diff --git a/packages/empty-warning-component/package.json b/packages/empty-warning-component/package.json index 635fdbb39..86704f51d 100644 --- a/packages/empty-warning-component/package.json +++ b/packages/empty-warning-component/package.json @@ -42,7 +42,7 @@ "dompurify": "^2.2.6" }, "devDependencies": { - "@types/webpack": "^4.41.25", + "@types/webpack": "^4.41.26", "cross-env": "^7.0.3", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2" diff --git a/packages/vanilla-bundle/dist-grid-bundle-zip/slickgrid-vanilla-bundle.zip b/packages/vanilla-bundle/dist-grid-bundle-zip/slickgrid-vanilla-bundle.zip index cc7f6454f64edd4ff8c0318097aec944124886b6..6215ef9e9d2aa813ad98d43bbffca424f9a80c6a 100644 GIT binary patch delta 280734 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°efMaW|NK1nV#IdZ{7^aYw_ zqwv@-nDoWZyA&4|zR1EmV`9szY#31*TA;!cm&q^!3kIznN>OiXm)bA_AOVDz`!E6_ z0aKS9F#=Ww*4@VkdncE9F#;h3%R0Uym!2^KrGL{h8$=4aqxuq8)#ETdv6Sm{b-kOw zbky1VFqmE~E>__vW^(T|P#|3a`9ufq{pIh!PuEr>Lk}Pv#zKUy0J;M4dIPni0c9u( zpm)SU?`UJlK`%E0VKh+7av~0jzEN`AjO2&(vZ)w#z--hzNymGDfpF2vxXbm+l%CXO zF@NsVMdyN9wRP&VwBzw6y^ha`wF|B})xifpK%4=~@yx1#ucYq0OFM%EP-T4ZYHSnn z)y|+OG04;CQYu^}aZ`KDQfXDQBEnC69Y^RZ+iz&>PN`k%wb8rwpW*!VxXvYEv-hQ@ zIm3y^3LhTF%9FiBNcnMU!MA!tn5974yBodz+{W;d2uWdr8Ox>3Y1{Z&1UVOP=wV74Jx@7%yy=DuA zKlnl=6D_L3iGk-b22cg7(c}`FJX~R1Y4LQc__FSD80)KM=aEi*d5*7v>U#!z%M8J+gp44_YbV1S6A;R z6L>NQ7(BI8Srwl?-FbfUWb@$Q;kFi*5>Zk_DLOuC3%It-G6N?fgyQ$ z(%#O_=F@|1H9Tyh7>$w(*myZU*#ei8Mw%I(Xoq)i_PF=t$>#2TNEC%cfY9ev%7b)^=NbV;r7AF{p~}3bARCAl$V4R$`~=j zv__0E$uBz?aqTp%%xOV8xQOuU!QQi7Xya$SHu55=E}xPZ7u){MeSGjU99^SPcCAID zyG7$JcV0t#xGS(79dhp1VR0K9t?lpqe1bxMvDt8-Sm2%xqTk$8l-S>9ReAHx^TAFA z8%+mIWw12>W#lESQ-7D2h{(f!Bm`Ly$tN_)uL9Y{FHhmn8&_)k{Y8Q+W?v{M3fCOr z(AL3ER16VySWWosh(PUDN&0-SxBq1GP_KakFJ7hNA11HRbPS`m0p8VUV*3|@XuL8^ zX8XMYZCX#8_uvriJbv<+PSH*JVy^WcJk~%1nT^BAK|(|a5`Pc&x3_=Y*2`bTQP zu7~^Eo9OrU5YBewJ!EPVNbKZ}0w;JaCG5}(17gq`W!6Cml)ab(F|yeVb@Hif5Z;QQOKQwNVI z2E@TOoV|UFl3bmktT>?{dA!(@y`Q%EvxtSzzKB1GW)XbhWPt9>*aC84qJVQ*GN`HtB_Z~jn5$k{eC-M%9)6UKYwJMNeIZ=Pn$cB@0)KJOk#WIe$03m2v}8AaK);ZW=j3XyNBBkTN~h{+4P2Z6DRk!4}ad?-kqx{fb{jd6p*K@tMe=; zLKfBtp*JKX?|H(E4xeoPGGAxJu7MRLmr(4k-hZqc_`S9B?BMZF+aKJa1{`kG`QzQ2 zb$O}-VtsXIcl4pNJZ*vf^K{S7?~Jqa3C;}fr~Sx$)KO8b&s@V#c0xp-k9X(m>81xm zwSUt&eav~dzrFSN3A~qc9f)`E5I`C%Rdzl;XRsDN?x%z7JQ=~^7_whgOK1F9-+g%a zsDIJndGZFRf-zvDgmWY1-eF>9oT70QcPLpui!udOO_BklQ`?7t=Y|bqYWH|tB(m{w z{W!LCW{-{YdDGtEB+WO=b0PxdIc@d>bijN)%|Fisw-?dDX3?k@V-&qNk9_6;8Fgs1@T3^FMAMhjOOpg- zYVncu3f@B>jd|KH{FFP+j>uO${SFPEt69H}kmAaGGq?fz%Lsx1x=nMRj3P%q`X%WS zk%o(aK0MK_EzTmK=m(q?eo)6pUXgDR4UD0z^DQ0+yvXk-msI&eWumlW5KYCoI-jsKd1D)4@exVPJl)r_wfB39iplh0OQ+A;6@LV@+oo- zkQs0sZrAbE$uO&snvIT*ng8;~`Ng=77S_ZU0U@YADv}{ft{)Jc26R>Dx3Kfv!z8U1 z`@Mzix`^WTEu(gGS&U%aAp?r%0Dq^@XQ1sShiUe3U%p(;CuiJ?qU?^VwA?%;=fc98 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 z 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%0A2xEfk25!G9!#w@}n$PzSM!B0J8rFT?j7a~9# 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 z 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 delta 279468 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⁣kAs1ZyggS(+Q6-G9y_dNHCRjL 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

_ zI;TBA5JQMxHXe84ymNgS4=;J0{HB9%9qI6%I;rexo{{c{q=Wx=cuC2a4n=;Q?>pDg zO~wO6e}Ekp?XoATt*>^j;)uDfkc7wf(QPLl^*Y}|rh#w64#Khg$)?cj+;*&?c_j+@S(byt<+q)p zQyhyGeRuyAfm08Zjp6s-$j#?oq!@>OQ5Ms@e{_Ap-e^fTm$bNot?#b{1(g`gmbGxsf~x$OZ;NX0W^i4_R5)Z*?>6jjV(0@e#< zf0iW-E)WvsLB34-w-K0AY$0mt&65y+?#CCGd2azcHHxn~S$+c)z&T~w^Im5LU3eUG z(PBVb5zrQFf`{o=cGc67n8aF;f>uXdU2%e8+cL!B5&a5cdB|EvKIH;huo)5MS|ipC zZoK?M0sPV0aS*Q10anbgaP(7Td)q02n8Y4=@za$&@C-ih$@mZTeov9}!AS zgUelBBmUqg7^I*Y_Zfl=uASXYuoI!Gx?_^&9Ztjid4J zarKi?+@b$lUH@tN3IDhcAlP%?8z!MfC9)4=&aL(|cXv*~0w1a%|MIVH+0glsuU)>= zJW}N?$4FVo|F~5q5EVr~e+kEZ5n=NHB^vV?8CYM~Q{Q70l^2d$wYiGMbJFwhA8*4c zt&W31miTMoS{O@>>oE7D5HLl4G&%;YLJ%B{kAooSu@cZeu#y-{=xIQpi*&=ogsU0d7U$=$ZXG)d#ncj<5$UZn`W!2(e&AuG-VIO%#0(8ml z5U?PC3~Ou z*9P9jjF5!VvlJK}lF@F+N!r>1;fs={egq=}<3{J4vRkXy1jP%$bZoSQETN=9HNu>d zWEhVn#)QgEfB5n|`bb{gfV47BKI*IwE=KnMk*r>ddLCzr_`K*uFO4o7J8cLvqP|=2 zH&aFXGgGvW5)UAQtbWk68VY;4A0-5v5PS z+WOgl`y*sD>gFmvM_u<)xXGb5dKdhb{KlML!f5o4{Qy>5Q&<+2u!GHJv^dy>0 zH)!Sm=fl(gbNpvkR2J~>!QffR>{w}D=afO2OOA$aO4PZeuLLl)^P{z6ypUtM6A?Qe z@lfF?O6aE+^k@APy$!*OQ>sDWV4>`LW{Z7f;9?Yt!`C|w=Kv*DP?D}~=0u2h^y<9MjwrI_ECm|d4Ku%cl3T-Nf-bnIYM#fa+_g|YSH zrzm8M2L>~X^3X|?eRS@;ukL%$g?hNhX^TCMe>xu2fB1GnFY0#UZ0Rnpt*x!n|A`F* z4Xh9juSo$9ESJYQEu{idx%BL4?XR21&n_SpdH^g0dHNJNgi?`DF9sR_gNVEmJtu#;_Tce&WE||HP6Q%;E?eY0J`)rw!cJ4zFTz@t ze=>g*e@T(Q_~qUoK3V6L1Hq+ISDxKa?O{HhvaiP-*hvxjSp^iw-SGzfe% zpMRvJ6Oc?jPC$iuU!{^tAnB4{g9Kxye;Dy|3gCf9|MMrW=M)ATP<|nqAuc)M`X0b8 zOcE)9TdJIyjFZkR?W1P?C8&XXMV<+>px8X^(|^HxJN@~4vB>o2|Db)HklR%K+WYh!o(?;hS{exMh=W_jyWyAg;A@x-(e;<@; zHLG6*EimSKxECDoAE}z-1038;C|Uk*fpw}d&Mc)HkY!);67VFC{2*LMvjj8dcrxjm zeirx)z31$4bd|yR=%_zd;RJNfF7RKkGfUxshzfX>kgh{PXp&yDqojVM8{7BRv@g-8 zK42Aj-e{FocEmd0k%>5N9Xx0oe`2=yi%%R6ANHsa2(#O&oa&)sUCLR5jwLDq^cnAz}Ix zk>$iIXXbT$U`gWjpD39=B9tp0(Q^bkQD%B`PFF(EPzQ9U^Na+QXM0wPOp`f*hvO5wEGm5d~m|T%D*e77_BzinfPN3Oq z`0UZg%x(d;K}r55nq9=ne`|6M886p=#1~{pc?B>jvJZ07{aSdys zBv#b$Q_7r(StyQMs)bSj61)E;ej1XXm%8j;!OS%-29`6;-ybbUj5M2Gzs#2*HwI|c9KonrF>HqKrQA=dgjWzNZ!UYv~M zgi>+ibojBP%jSPhk4DGE^wUO3riO7}oum(Y0F;A1SKp@u$y)HVq;UX`(axSjkAt*( zaspb_Xqu7H0ApZif5bIfl&@l9j#ZYiUwNrmwub0qS>1EQ^{|o!NBtb z;QuKAe<@T)$_|u(f5*7n=z=`n+pqlI{;Brj{%Hv}_fIuf_fO{CrSNZq@bT8tx^QUd zKVRt9er1Pb;TvmRSh~LU(2f&?cAPvy`+m^Q=9AXYf2MUYxXXO<2<-<#`-Ns~{Rr{< zK^!gA>w%8e>k8m?+ong@-yilaWmD=ln`+u3p^TBc)S5{C;+yoxB$5rlf34W*_Xm6@ zhWe%+MQuBbFdw(!H$zt6w8U1n$>-yyeUVMmElNAmq_piu7Ch|RL=S4hgO+eBuYME@ z@BQU4-Lngum{CC4B0Q1b)|9<^Hf(?lNaFO(dsJ{$_Apk_KLA2|~{dco;5@#d` zd|%eaRG~8J1jZ`QXE(QFKj|jqQx1`niXmEa(h`W(Qj{?&BDFS(=4-1%7$%HWk#CUh zC{4&9^|}8{(DT6^5&sTzmR>R$qQG^K_dwnse=BpQ-4GuG&IDa>GW8)2Mltpw_*gfZ zPRBO@1c+x&E8r^7@3G+0l&hom}mUA=PMC;=bQ_kXK zgr8;NR9br&FBZ!WDvPk8M#T#rY>TO+w3@Hcyo&Mrt^8z~6Q97K%aqFI?qnj>bf9cn8 zmWv8p^@r_N=@Cu9h*O{Vi4*C=9Kud~U^I7;D|zYb;GBOWePU@>>#$|G`& zg8X?uN3Hb;gxl6(Jw>2pF+GdSMU};0;fBhfutrl$yqu_N?w;bEqP<~=E}XhEAUU6% zysTLe+?GxJJX~25dgi$AZoz|+e}We&z7w=@m({_j?GQULkq0}I;F-z4(%K`Q3RtBW z^9P~8fZ(XC*i`V?quX(YcMa_kUdp4YUK7y5Z>)^q%wpBMyYg?k9rPCQi3-aN<<`lQ zq|PF`yNe)+GNpFYQA|nikw+<%Ihf^{L9v>;8sFWG~TQI_y7wQF3H-xhv?0#4gaa-RC^cQEX)FXgHs>9i+ z{j}X3>Fn(zw&t}*DPaMcv-uRF;dVTGEU)7aS%~^hn$TA)x{Bg4>;W4KGBpTW-mn9a z!NSfPZs57JQ>6CISd!n0+K$HUyVv1|4>QxIAtE zVh&y zI?sC^ql=w0v0j!q4`+~oF084kJ5TJr|sz8(>p_dn<6J)(6MzNCoXn}=Qssu+1Ld)!n z7l_;p0uo)Z!+p8?e?)#8lz++tV1!N;-I$wyceftS``UJ~ZQLSA$_y>iYcA$G?+$4l zldf6|FJ+U|ZbC7V+9DmKw8d1P!28{8G}B^A|A|bhbqJ>P_?=~zi83{+Cr>Mcp;X{N zuTJQ$VX6)d0P>Xc0G=0Gcx5tT5nFw~vJj?5IpER-(ythxe-Ex|*=i;x=!LeCpR%ww zw6a_bkZhBF`|7~x*Un--#Q=}ZQ+SUR+l|lbN{hSmDp=D^LzJ?iVH3&F&?3aH91mRh zw>d*YfbhI$?QHKJZoYWEbMnjn?)J(4&VRn&-QU@!Xp4y$dfq?54iQ-lv|OYd ziRc&%3{yzkf5?Lvaz4x;9pAugyI#RAWyMtSkip$}8(qa0811fM+HY~vTRX2`pS<1t z`|dBBhr4@k9rORznviCCd_ImY1ktQ>s^+2=$vxU*8leMrgi6e#1BMe(#xiG4X$c=yjB5Z@WS6N#GPm)=w(*~EA_}I`6MRgTUOAgG|^KkvmxXocio>T-cYw6ZvF0`2f>Hp12{#A ze_)~i%M#F1e)IssIGD&bybi*hKBK#FDp&!2Zbjqa9OPk)JmUw7vSqn{CPH}i@(o>_ z)0a{lc5Zi=2oW?tS3<5@%6^ca23z?4DU3nf2D&IB^6$ur{5oBhp zy@r|YHB6J`bPV_Csi6$qtHU?1`v)8dpDMdPL(Yo!{s}{B_r-^h{-*e3i!HtH{eS;2 zd{QPb1ilQu39(Rw*U?olizAH8+xNCunNDH3xjYCVXvkCc#A)BFk*A<&CS`qie}Uw6 zgy`;*=;M>S4-^pTeTYl*v0;BcHtY{0JiYKE=%Gk5+PaL#BY!V2K7116Z8wa!-7p?V zLp}B4yr3Tr(UXmvCbZl$jXy`%! zYqJ4Zn+?D^PgC%2?(^y|`0y;x?AGR6N~F_YTdc2ucBWqA`*wqm*)GU9-_ZYT@QkVFJX5Ml z8}_s`F#1sC69pvDJQKrhQnunBoMb)VZ!^5e-sX7RxxM{V6c*J=r?kt4e?U)Y?4N|U zpL$pH`F&GAxW3lSckf>R^W@Fu!NJMkoG$r>{!zEo9F}^+-_r1=e${dou7w}&mBbJ&VT7!b9!De@FAfw)tVxqA1nU z!$66qL*PoD1(@!hlhL>0-q%AdSIJc1>FFbY0(7J(nf{zVLf_m%9^~RQTt^}@H)uru zVhz*r>V&qKPgd8z^MYP;wZG8qDL;N1N3#pE>OEcm?%7VM`fDJND_4PHUTX!h^TiSJ z+B3|!M$dQhEb^pwf1`c|iF*398St@7aPqZM=G6-mTVr`DW+_!y^&_X1YcHuC3jn!x zmg2zpkeDCRz$AHsLRV>5TnfAjRmyMWJgA!QD%C%H@U^}|O3BmK9D!Y;DFIMmTkw^P zSPLkV`SXNHk5nw0I;H-Zj844GJjvNZ1A4t9*sN8#QyiMdf2WlH1c3(Mu$TQ?p24f< zG(}KmrRajr!*aXcWEaffvFH7{yJk|T@09in$zn6(6>D5#tKxt#peo(dym)qmlpgQ=YRqp%M3<()V8nq7)r>flW0jFospD5F zdV)~La%f6!y@t{lQd~IG0y4GDEL6NF=ole)$z5_61x@4OkFH?2l7yhd+?ww@t$$h32G8i4UYBCh1163|S;q|;)1nUW7tBQ+!G&&B1 zF}R8z0HL-(5f}zy%uQaD;@f&LjlvD#cGQV~gw-WrF&Xp9ww9{W;3~FJ)f(KHBTg1{ zO6y^Yd%`uinWLUV(_3d@omAr&#V(K@5DJ7~;D0leYFO^N8Y?!Ntg*Re;jO-+-YnFo z-pd$|NRNa{Ndh(Db2}hfbf0eN?)rgs-wQHElNtJvHXP1#O3N~X(n=GGtyi0Gf7v-W z+1@$i5?ZMtK1gS?8%SR_Oy>ZxlwKv0gRVGAZaU1;GXqU1cTQbogvzIAacRIwhmKtR$Lf#V=)?6#nCY#~4fg_9@sOP#fD zjYHpeQDehKKB6xqK~TFW-f!p7eU#5z07y0 zk3D#~gw^tjV#L$#1r~tXw{3GUx}6@hSrZpxWvyrl6?F548s}m!G6#}5=48^#Lxw1NQ3y>-?yS(=Obxill;Z-pudIX10ez49 z8Dsy7LdY)BquM%=$hld*)qi^D0Bp$+yPncQQ7j}t7$8>?N zbL7~4`ew|4fkzwiQRtexbb>O)akV-UhhRqDMdt=_GNoc~;*q&0f}K)5GINEW-4LQ3 z^C~*L`^u|$6di}78h@u-H41o!1F_|fDlR9oI^)3fnhocra=b}b8-b!$P+h8Xm87ZY zjUNr>rbI?@p`AOJCDkXkLHboxc@DT)9a--Ur31z?16CDLuJ)|>4;mgdJa@T(6Yxoe zYMxfUC8XZ^8shtu4w9638o+;g5J0680)&xVdH)uxfRp4TyMKUS_BMB8F?%A?DG1H` zamn0)e|KIKEbz&V8TiBzxx;)b4F@%mCBgL(vn42DJFHk8i$v8>;vt~uJZ7^N&blWBefUNmnQb?Sqb z#UWD$7u*fQ*MHUWk>Vt>Ocy_Q_$`LRdRj#FCjwLet`J;K(e(;jiATf&er3y~FbNbF zOTnZm>RD-aV>0rB`GOu-5e*5+-9{yxtI$~Yo7;KOq5r)sPK8K(+Eg2ZicoIrD$3Nq zSI2a~(;%GOxBU#Zo_27qJUzoM^a^h$IISzm94vp;3xDNtA9k^?`ew{&^-2*q4!h^G z^j`#P*0%+*<65|-JVB!Ee)GWKS+y44lrF%&!$rzLO)B0|Y%Iok1PX=`$4xDN-d_V> zC{yYR3Uf*qo)^wtLd6-E#%-=c~$;&s{S zo<<2#{(oGhoV@xI4h8dEAsFcm48F= zLRTRtx5$9&A9_qezi~tFB+^mC?qxh8FC|jtkKcgR>+xnaz|<80rIgyjR#$^7z*bj? zt$!N2n@FtOzoGBxiM2)zQVT5-Tee!IwwbM$xi#2=Wp3Habo6Je^Gq=GLCY-Nl(bm~;ev@?h;Lzr10h&|y560~fk>^BoSvPry%F)vp69nA^p7eUOPOgY2c z2dOOk6SW0Zy_D6M`ehaaG6Yi?`NPVoB!8O(K+TFDXn`afao1|TR$DzOD;||S9J4k8 zkumnhSuyCjzxP@WT04;1dFZ7`qq;hg21p|i)Di_gvUNGN@Rm}+J;80xd5SC5t~k@m z56tp{1y2tdYg)(V4=<@bgZG~$GDBwd!3?XAWL4Tl{ zy$NG3vyyLF-SHZwkWeX$ayq}WITInusz*w}ar-p{1@4*|6cvdoZizP_rA?kN^Mgh# z(35y>MGpb(lt1{@m2m3{w%z5}I4ENoal^%C`>ecBj>oOxo6>MvIBjyvVb#k+)Byo= z)r-S1uhvV7J~un&Q{w|SpT(kjt$#9Kx*VN^a;JJZ<^*SlFcx)ZeZP!u9HT{}BnH*9 z8wa7UVb)4CsMk_ZqPsw3a$U!m4X`l-~3#qolryLr*jojJbyNJr8lXqsT<6 zjw-02&MKNq+QKy~i-jxaXpSWdl()l)3uMKBC>HoO1PVAl+U{y8FJ;0@H@gbR2v|Gl z*0CB?+MhDl;izv6uEv#=lz$M$liY~z?!XX=TvM{lzZEx(o>EZ{?Art5{YisCs$ps? z%_icsjINB(l|g_ERso_p%A&NqJmpOBxJT@*P@_4QNbbJiArw5?q;GAb8}ovr@r`xs zIj#n)EF$ROO@U{X*rv;zE71c)cwlnPtlNPo1>6whjQE8-sGzZ>tA7bwl0w{Yq(o2U z0Y++{knWJ;s4-+z6i!!csR!wNHY6akt>uUDcA4Xum&`18H3C%G*iiZgFk>7FiRt`| zV%JM1-qwZkbk{`3FK*bPDP-Xj3%Ut5yHd9WHicXBEKeuc2%@xvD`=Hnl#V+O8AOMx z>ybfXh-r?HJ)(F99e*PO={{wFgFQNl@ygJ-Z+=u=5Gp3ToF?$5vq1nryfB}fXX#|QH=e)9TqV}ErZi{aQn@T}+qrvc)H z`W@tgkXQ+R;lxqQF{7hmsvb1LIH#DC_M6)X$eZG{M-&ePXz`JpMQ4r{tKZy?coY2B zXf{r-S&~`WjE_KZbvI96ivqv02~dUUJl{*WM{LrWNcFm};Px9H#HUaU_cR$L)>>y94`y`{( z->$4kUoU#l6sz18c^MYZyil$5JW;fsCr-8JiBs<>dVL>{6rH7()g081rV_J08v-ix z%wW5mwzXkvuEef^RIQ_-e9RpihBWQwXp|)u;EEH)1SY9%u2^qDjb9<7cQCkRT9n?xvDV8e zge*Du!UkP(7DbP{EKU2m7lUHkRneVd)de~-c9Ttygxj+;r`Y-(-F%8w(whHEbH=fhEWL>u3v!)Q((|~#X$jA!l-hV7rR)|bz2v>?)m1IObfs#P|*o9V^r6WR*N32qo{Yndfe4u-=o4uH&A4&3_ zQXb>2bT-2fP(EZcVy;BKk)FsyczR~6HODC$mTf(qNuKEG^?uB z2Y(MBGL~c&EzlJ_k!N-7g_y>vXr4ARA8wwvT5s7CSNj$-FPPF(pg07AcM# zFP-+RySpr=(L5vKR>>!s0l+9LW{gk*3Tp2h?!wFX(|&na36kM$=qyqwXIx7TVXQ5w zTAT8=SzQ$iU6LmA3NXQuH-r*eMTc8euz$#mfUy>Cdc}=hPAQ*6&!&_R3rc8r)Cc=m z{)=7zlERR=-!GA}XSVsKS(NhZ=IA4$8APpZv@khfIPWD!gmpg?3_+6Bcam6d$SZS(NsGX{-Y7o+zKl~t#d@0oFx3OjHtB4H^h<~HC z74FlhuSDxLw&?CITOB|DK}3kIy+L3Y3n_=fk>+7haaj~1uDlvTg=@b#J(hIH0uDt6 z2Vl5Pan_Jmr#v(UGdGDIm$gV=VqWAgvPr%W> zNGH9OHIaMqQ_>-ya*~X)4t{W|1>}HzFBCqOY@Gj`Q=0A98JLUA`a(T_0<&THG5dUc z?hil-l&xqsi=zvQZ2|xFy$>>w;ANDdhZ{jt_Du4qN^~>Oe(d1D!ju)6wSN=M&K|0| z*iQWpp0u>nF9+bc1l6a>UyR`d8_&Sxew93gC)IiW792@X+I2j&!O}@J;)!Zid@|K! z6WpX&d+Vk3ipb>F3go=<-Cdcbjdx=kGMm|bnz_ibkI){vD!blEWqQ4nFO*+zN>4f& zF%>K6c;%>`BP&8}dcBTMK7U1!j;Yr%(OakAx$PKjX|36ugq?E4UWFS_rwG0c3U>Ps zDP1%sTmZXL0$PGiTpRg8J56l?XJ>50Y6y`hkZTIZ=r9YHOr&ts&Zx}ah@Obim_7lc z&WN_ZN#`KEyTN|^^&Uw^)ObnotBm1gEH ze;mp%CP3N?OS?a|1AI&SuZaJEJW6{>;JPO22(Ajb1cj1iNmMM~499%CvUHDbGVPLx zH?^W#Y5S!g7#>XM^u_khFnOm;Q;Du%WNoU;&L`fohv%M)v zV344?$WKBdk0jGeHAdo%=;Iyt-|xTX1#IW&Z$E(my_yPp#Gy$qV)t@J&igU_1Dt(@ zCf!%6C^HF#7=P?4&f>Fp9OpNE?=l{Z2tCg=kzAo6hS9Wgm@>_vj0Rg6_u7zgSlM(i zE)cWabsc$3?~W=isQ;?WhqbYiyC@mA-TjHf@V=3jsIF25OnMz97jsHLFH#pW1oaz7 z2SMsTh;P$a#V`AN@86xg_~$7-_jh+vh2VDg?P7>?(SIbU<`*n{E-&7<-nTuT8xEC< z8WulMJ!XI5n^k)0C1wK01amc-x!f#nV=auI)=cTt1KpqZjmZ)fr#-F}vAVC1>|xggQr#8t2o=k8YuFwI^>4U zAR9ViHFN?=h0*Zq0gjjxXgJ5?Us!B1WOqqe)2eXRFRe-_6kV8rg#+PXSs8X;+sJ=T zHu5rlhpQd>%~LW!gzx|{)=^na6Du66vaZTXgMXMA%WyqLG}Wq(;@<8 zjDLS1mRted4>!{KNN##SfRXVCD#fD^?{_ao+gqTI!@O`{sE2Q=FGFi7QMQ6V_SQNU z+!OK5z?z9|MDWEoxB~OU%vdYwugM_K6r<{Fx{CVMut;IlFT*1J994!!GS?RXvlS=v z(s9*Bdx-H&+TBeYGU_m8z#sv7$Bz3~v45Y3Sr~_rLSDI~CBX)rqp*wzxQI<~aRYWe zAW6o3$~}#xu){IUCr`#$Z`{q(19SrLgVJowdv+0ru#lh(HVd(IxX@)QyLt(_hr{%5 zgiJRx*1^E*d&?L1?_&KOqp$M+*4?5W~ z90!PZn5Y{V_v6M5Y{FmZlPBDYcsTYnrso#0RL0J0OqqB?^OVseFw+dr@Jm=90;6)5lu0) zxA+1<=vXKv2nzUuyib@fDaP4xM_=pRvXE)LTSpSMp0|mqWAn5lk{NfNbTD07XlANY z>Ow+)JYKCRLZ?!%=k1QXkcTg48vl22lrPgUC4xXsXGUY`$#^c`{+vytgy~89-eeSa z=>JxuG3~oUskw9}gRMOO`59Dw-f={L`L+m48>_=K9p~{Bz{ELrito45DNcY+elK}P zM}D0~qq0h=fq-w85WaWI&OXQ>C8B_u_I(F`J#gsCHxAX$MO)eLBu=);FrGx?-WuJ8 zPvXaSA=pXN?ng2RY|jh5B4m+97=4N6kPruVJ3c=rKxW0*6!6v?lFWOz;3KX69l8IrS$e%XpL(+GHmPkqB35fm>Ql%an)T2xMq*k2 z!&%^`$%lidf&U@wFayP#Yuj!z=)EEIB^YLZ05G;|^i={f4hlAS z2Cv9?%1!F86IYSTldNwWQk~w@_Wk~*?@JC@23>N=u%o*ga{x4_pRkiA4fbY#@Y>DZ z$gieh{DuqCvW}&9Vm8N30nQ3GDmw^zDCMRoJOll-s5cDocqYR6yUtpdEgtLj+f-t4 za#~dEj^*9#FIZnO%IB03->!Tg2V@VTmX2Gi86XnPX zF2ohX)7aVu<9%hDl?7Hnw>(0298k(;Z6=UFG#SBL5pa&J`eux9)lesJ-uOyCUk~Uq zoQp{75_*c3(+e@6dI$NrAiPJ{muYO&^5jP)(plAxs@@-Wci*jH6r+2jV1*D|#w1U@Iul5)qmt=o$rVIM${<3XBi)paF0?KjLtId~mN^57}_qDVJx( zA#Zr&E1tmg+5Je@G`=kQ5!O#oW@4-ej#M2J$eGvp+_dwrP5hvon$jHocB$;-h7sAq zN<`RnBO#?B!6S>wSN6_*?{DPB3!bl)v?xK}LZ)0;3thE;IhEfq7(~@+PF~TbBS>lC zbv$rVijZfJi)LhGh>jeN4?=yZ3l&NWGVYVfWmCew z=o~T-G3hwcD@GxN}}+ zovHF{sdQ}lLVhi%j2e##q=_1J=sh}*FXr?DFh>^C-J;g9(v3{2LAISETM;)SJ;d&@O{SW%-E8NKY9Yfs3?!}wIUMt~$0 zv*YHwE{VvZ%|l`0GY)r^p@-~!7BK^F-$B7PxeTL_1F*(woSdht=d*OOnx|#rl)4BD zB0MruO3s;=glr~*FMFVaX0CUUNEZgHIf(yd39D_yU^f8^PwWkJexTcL>_b$Ptq#*x zZ4Og^7NthPy^ZbE$}Cik+FB3}b~~1^6(CpEWifo=P-7CyrlDm`*^VWiZq<-g#ThFt ziIQN&=tg^7nIk%=gc_6^dMl;g7gxZPC$$kiWmR?_GKlD19{O#bg|+NwU0je7ly`UX z)>z%45T>p_qc630+;Dg2MsQ~xeHpQb9GK64Ej}%^JXIG*uW(Y<5V6q>g^%*)E0WXL z|H}_7pI&K|)Fhy^1OHot_hUx4A;(ZTLp`*=iaArESLsPw1wfvP3?dHWd>iw-gLylD z>NTDiMg!rYVKK+iy98v@Kpl%;#1PyTg$B%9*Zr`g*+Q+*v$+K?^u{rNiYZXK86h86 zu^KIr47caLhE>B@{DpHAsP%wBEcV7Z2nE~&#<18S=NM4y-h$EbD)fh6sJ0YJ$7 z@ct!&v+-qd7xxs~&R9EG=`cM68y@4v(t;@>J zQU#bXuh0YDIu4S>tKt&4NwGr&mg?OU=1EYxuHYDI`&POs%ro%7u9a>I*X})B)DWSnTzj<&`qw#m0j6HAAr*S|OLN z-*jszimqx#LS$AU%wBLH=%8jKL~BK*WKURPm5xxh%+@f%s#O6gxImHIO72Iv^Q+$c z8*b5kqv8a^tfE2O$-ABXlXsiH>O1Q>$0*ET#QdnQqR@nvOh0&PsmKB3U*0Tm0pIOSI%}bvGP<#JNa%TU>^HYMGd%e zgawhTG(hVX~Wy}D~$6Y{+;4O zw`+!hf&TD+_Y~rCn%YyipWNdV{-CB1v&-nQF2k{c#`b8JlS>@!*D^ik%gUqq1&`({ zdZy3u=$Y@)W!Lc6gWA)ydx@r2jk~lJi}n;NKwle;%{8x7g*s=)F3_m%khX z?XSKv7Pt`NiY~uK8srdZ2fLByhD7_gxo{+mfxP z>)CC|rBf+8jMIzBPXhEj<-#hLXX>n|F?E}w8y_QOvU-G#VUX;>%c9*!p^t(5A^`GZ z!FyjMp&8BxKz?bT*@QU94}f{>HLm=op3=1X!3Z-uRP%;q2-?kLJom`Cp-)L zBs5Zb5abBDNJz}{fDz7oyq84q;R9g5cO-&@5-1)3_1wl`NnCO{3Z_+1A%^9Tfp_7P z@}!%@9|zmvaubsG)nzrLdQkXq(F(2nBc~A3%3~{AuBNjutWvxBbX7v)TTHnlX+?#9 zRN?sQh=JzJ?-4XW-^Z|!m##+C#uFzQ7?lJxug1O^C8mzDEGT{YM4vZcSs@cntc7niph8TvC(Z_4 zaO`ENQc=IF(5ecsMgF@|ejDwxiX8xdW9a17_9u94aWI|UtOToLZ>$4HovMCjiRH>I zJ~%1zxkI|CXG1KIBdC7U+kk&p1;s*8;S;EtK4VRzaD_blfaVk{s1Hq}4j-kvrVGP_ z+M135Q|VydQxjGB8aG~3CvyWNlB-8`aJ2PtiJWV@AdG#4Rkjdw-0b8naJ*@M-96Lw z5OqMTOM>F1J=HucGiTMY2rD+RF^i!2dE4et`wKI@(>f!HS&VDtnl9;n zMI`RhDJQ(!Er_o3F(p#j#f5jfInhtrCv6$WHc#$$8=})}ObQxy72Mr!W_6^J`V-eT z%PW<;O3jIhV;tQnNY}*%q*&lYv=;xoVVmdr`>Pby_?hsN5!K)CXlI{R@`om{p5BTD-(rz_foYhTxCPebn>0$w! zM18Ll!eLM(#b@JfSwVFgsd*@TM=l~a(E$!?6n(I&DLX@dI__YP9xe8x@Yc-z`c8x% zQ`{`oATyVbKL8T=mbFuu7vHb1ai5aun|li{ma!<>}CV^F&X%~_w+%d&hM?Ot?4 z-z$k~6YJ2UVm*zo>OV)0b25FTEGf zqk33s>-jlYw|7FK|Ou3M>(KsDb~ZXM&}*@NMKLR4q2Z_RlK+NI6oS& zvuu432%wSl0Uo;+*%AmA(izTQSdzaa4)*KUb^S$gDlXW|AnT+)Tb(Y@s-(+TjoUY4 zPg;s$skuT!bBEB|SZFiZ6n}mKtjSkS|M`o*#mT zo}OAJ3*mqI`q`1p)Y@jla_)P9CW(LaM2!hjf|D#_rfTjHETdd>s9?4`9Ik5iq^a2F zTd5_kbdDh*sG1B_AyKfTGC$W(Lg)H<1G&8UsU0lJFAR$(Lt*81ea}e?PRfux3aw-iZqocl!vrfwOT*NbVJLAh(3l=)8l!`;>EFLG9k`#&jP7tek-tU-!sL?Wa4C}f|l z)I&_09u)!aaRC4Q86C&(g$v6AYFXcQ3G;rN7gjgq&2 z^_(qITl`;kU(ThvoJ)hpshVhdd;D6>&3!c!ZX0q6Nv8PJlP9APP#_h2-)LCQ*a4Zq z>e;vh=m9`Xj;LecV9DgGx?ZrURWZ5EWSOOQ6o^W@9f)51TzOnz2-_#dr3e^HL}__z zv;fKXL24nEvf=Ayud(uR@Zepg`-=O2MVv}bn7;C}FEWwlQRBBEtK_{Qk)o^ubIWF5 zuIg_p&Z(ocEJp--!cyvh%Fp)WGgx2?=<>z4vS~FF1ntDT23}IepU$AO$4YYRqG*Hy z!!L0{G$HarYBXb%pU9iOuSnLd2U@oyj5Ws4sX5W9;Ui-e1QQcwE~ARVj$lB4gK(i- zi)@jeJRv#kj+nx}aWdM~4VmY6Qk4S&64We8eIrpu=1Xn`9`cx z-@^WS+A+LA6v{qqVw3|SmGD!4@E(UjrJdROi>C&{sL43&6neFh%?r?4%SvZ>SnjKX zK1t9yI?GeH{M+$|SrapAMxrzxl*`hVc}|~CD=3g>&D5I&uJrVXm3sXlBWLQFnj*a4 zwc`D*34@B<3_vrIHB#!zmz!#4>6smU#=(|F&pr}wnOw`^42vTO2r%P+Q9=@rksTeP zL^Im>d1&h=G_#V+VBgqm(=wzOo*s_aE4{zM8y8eAePr8Fv3L$0)23RiQa!4)2K zY2K90#SbgxOzs|v;s9rj7<1p*X4pvl>3AR%M4*UI1PhWh<~|B8=tvX`br%6H_t0lS z;ndv6Y6Tts;RhcSbnHlf;Ac=o;$K{DsvtP5+;Si&!l*45i5C=R-{-y`(Acv?cX^sv z7HQoKymt@MV4s`A?cPD{-;~8uJ3QVKE`e4y_a20<%F%|${PGC0FnL}T+kIY+J&(p| znYTI1oV-ij87{!~<}$T;DT$Y`#UMX$;PqjAu@c(n81_8)5@?x+O6(G$T249Y(TF6cTtJt?EGX_UcXb&~WL#>US%o@_M~@DG zHt`>%859cVQ!U|t7&M{HVa&BjI}Nmc3v*`0ji) ztx{B$M|g96`7E-L67d|OemhK<;A2mSr@#jwjnRN71XxRif~cB>DAZa+S|U8Fow=4^ z9guTBdV;cl?<9y0aVCdBA!=%VD>*UQ=5T!}xt}&^3h5YSOIGKDQU6Ir@nhMSJ`qs-`x^+xAb>cSkhv<%c=J#*0Z~OGt%})?k@X( zy1T8jyNdfNg}D>?6=m{tgBijttIU=$!dfG%uZ_3(S)kM!W;)=L-~z0uy=EThB8deu zaWc7oGv|kLwUt+7NsXYI6H2=_gGzK^k1TSpx?d(AugLY8aj$Eo72v{qJw7?9pllTv zgHNhJu8_JvCA8JcJn zmhW+eqIQ-IXFy5O;lo|J%J`MCyPp z(+Nl2%$I@m{r+Cu6v#Rt(xAVLL{=fdy*ZhZg6pVW-^gGcYy0uAVr-5%+R@F%_Do4L z)A6+QP73c8;7k&yS7tt=l>k!H6^heVniF>}Vl!(EHoE&=`MQ{_P3jt-&&XA02uwY9!vE zJ(Z2iaOlL$j!cqq*^^So9cIl$%8Z-^9^w&Kw)9AkvO|2{4s>SgaZ+>E(CdZ#gPd8d z1SuU(gZ@b;JgGT;Jm5AFmOM&p=EezjLd>#Qw3wyKKRl4mHMSkEd>~?AT^5#qku!g$ za7e^)!H@(tPa{DcR1yz=6)r2YWS9^+FC{>1^0k_LZ7-ev-8!1c{ z{eLU7?qvRxL(_+NkR?l{<7Qcqq%CD}mu=#78J5eBp!ZWVX~wMM?QqUGS|0VVeQdXT z0*0%7SDG!8B+7L52%D8g!L?@65x(HQ<+n%8i``|2pTOM1R9gz9T^*d!? z-gR?c+02)2h+#ycgbs>|eATmhyHl88MZFrLG_PA#)!5A%Q0NwFL)xV<#Uz+9zWnUar565Z+j zZ&fT0iVzpu+z??Ft*r^;M0mv~O8dpM!{3{_nzX~KdVc>~!+8)`R1H;+Ii6BM zjjz0bzKdHnSWB=2=s8$HWw1HK#d%8}+)bOobg|~d<$eJFAHFF0($?4mqw1tEG=R#i z_&`k<0`O*ki@FjKfqFbqj&0LG0H1m|#CBLr)s=gmcbjhg=!%SU)#8o;=gj*>G30lhD34v4q* z@<}`BzcF@(=gy+WoW&;8-TlF{Iz-s&$0r;ZHT^>tuCd1|QVQpYqZA(zq5{~l`1IMh zIOxzYsQ<~4`~H9UWt=TGbJnEEkYgo2J;fffu7nS7r(f8h*+8NTNLNt-4_C`v3xXhj z3=An6B<0-6?;u7TOb7ECec>RLMKxVAo!$b0-j$2RK>UVz0|5R-mNFLvaExO8&2aFN zGm`Av6p~@+ln;U+4(8T0u1mIXX3`824t^~v2#e$qz*J(+j>LL66^yI|3CkJ&2~4T{ zM5aax99d*W^Zhi1@p$OW(y+&b5sjFCnRb#FJ1shZtwao|KKB9HqeO=y@S|A*`pca*9 z(RnVXT4(NrK9!&Qizd50+RwXPGJpca`#x9oEg5)cAX_^BSOT*=0R#zC7k?$$KJNPd zL&lpqP!s1tqRO(9;`UZyA`8ubak{IY8coO(kK43)F|Fht1(w~?_SxmgyP69%0KYbH zgdw9dULa8H&Y;d#k|a)m6+*BsdcZaTvEk<;$xY=s5Z-{ zXmXXZab4z|R4%72{<^Jl{F-QYvYxN1+(zO}ao^_R43(@YuB-hh;j|HMAaveJW&Cj2UYK+=e2gtTbf(Q?cYbHQ?;!)#uF{YUgHwtJ1@{qBtzgY$$7 zi1-j4@-{br6YB!*L5za>K-F{~jG=oBtFhWBO;$xf-sL50-r`gyx`ky^k>29_f_Ow>T5ycn=VS|ON^tQ3iKG7saCL1)b*a&*m~-6pONK9hCH5C*%((A!E@I30 zk!EYSJq6!5eo>2-BX7=vkQ2NaTZ@J)Nq*X*n?-#!U0guix!ei!WYn(jZEMnRw-5rhu(W~`k9MBU-@ z`{h-=c=Sm8J8bKJbEKgc)0_A=3ESrUa4t5iNW`H``1y%-PR!X&RJW7Iv9DPz=gtz0 z*>Kw4ip(~^A z|2nO>OfvoR6(Zx|?+pk5{|it{2MARy6Sm810{~+34FFKL(~$#?4FigaEw^N!1Iz;h zZ;36pGou3&Dg%m%Er&_X1Gh=d1Y~r7m3TmjPSn|wsbNCx8M)=L@4QcK+h^#eL+BB% zL_;4Km<@!I1cLs$gBqAw4y}1Vf{Pd^t@*ICx{oRZ8O6Vc5eMoTn1b;qphtmAxQ|@I z{o$INsPK!dgYri9P?G&{E2hY21*gN++49}H)$)G$@FIhWbJK3^-khdWmkV!yaapst z{>^DRzzaf}or6%9$!T#Qvhz-Ge-}8XHAAv$8UMV(F2S->;0q1@<6!cjRX3Buh3)r?wu$Je&AT-Vaxfp-FiCi!cXF52Q9$YN%q>S`RB*4NlLv-a|uw$|jwVv6Ni1hp;)U zJJS?8ineAQDf?#P=0j?KSgo;Z*N))bI(C&o*u%y42Ca(?Nj*?5R*)7M$942e@CKUR zaIS69KKQ!3)rVw`fA40ZU85{Eu5bWRK(4>d9LRaac0z;xEevUDq&I&?_8q#aD z1=tGvNJ^_;q5JZNzZgc$$oe{In~Oj3pyKN{Z4@Daf<+fy2Vtb~D0Ce^<)!|i5$S}TE8 zVVFx`-B{_{0w>6??!kzFz8bNjJuN}9YFSV-h$9sHvZEXI5{|i(^t?=~$xj(< zBfDm_?^Zn9A>3_Nbit73lzFg7BUVJBHS-sN#Y!K4ixO6_v2u@jf0?GJv@d% z6(7p<&&bl!8T?gz|3z2VxDPCquH{lGY_)3^0iA@3QuI=W$3FzUySGCcVZ-&>L%JQe zP$1$tLEemx`9SXrGSc%JJ5;#3he;J$3>2-=1;?^#;sM4#* zk_!&Jk1<2jn$bAz&`t~OFQZf%@-0}dG|Wix6h2lqums|30v(BpfAB;9#EG1JE47TZ^DD(q>xKusY$3kdXlIt1uHdHIc zh^^YAVI&`C-<%5VI4Gi_K(Sl~{~gHOxDr{PBs26$jNfEWC-q6_vDIwRTiqI?8Qa_c zt#udh&Jx{}&jEv`y)Sjw-M`rZuC9T4{yJEr#NCr5e;fiLi#XPWv6^~Q5o(moG8pOt z&peg{AJOB^;3O&o;qOuebRh`yPT!)OGkPx(>fuw#o{vQx_%x&t{#! zu@Q89P&3$ck{d$5?WPEQU{eWmwQ_wheYe{m*aY6Ydy8DCh8q?)BEuT2CCyL#9v{*U!jGoXT4ak$>z(JlahY7)rc{9-gW1+p;O_$!>f?=w-bXoa?;ni+ zqzltj*Zqc1Pof10N&G`nYHwS>9)EhXn9qsh0`g1v{88kl>RX^N8i@soB#uMDq`z>Z z$Uxy$e4R`$ldB5dl>Q9tYBoxyZ>VxIf4!u*!|AlR{HZ9j->_gKI{k!(Ct3YmQYzBI zGEyE@29LgpL|tsH&z=Ck>qo+2+;~jZn!C|7O+Kb?=E*31R+KN(OOgU$CF4xFg+PCB zh?atigB6SgOkm{#H^0g`#jdCUV_vdvJ8GP)nVWOM4oomOK@LG;u_WY!5UaF9f1jj4 z`3-i_k)g0amq0D5!b8mQxO#QZ)t8}&aty3t{fBIQ6g02eqNFEL=2tm!CO@Wbtxs^V}2k-8kiy-BN zB$Z5}Od*3Ig~2xKwM0hlQabU97$jN{W8tQV2c1k}o-zPOAfe3nBFcRC|}Gz;M2#8W)vJSRSh%Zi9)dqguJB8f6sv~$LF3J zws+?4=|LtebW;5ZZXf&u`zzHld4YT zO2NT2yy5kuj{>#9@TCVN5=tc&=jYJ2$5F~RI@A2WOw!zFR9`F%aV)&bk5B%bUK!i> z1^ShSOsP2NBsLr592Z<9f1MUCZiTeVXhK@_6o`eHOZYi`{b}&E3MROPj~8!?7d*{) zWDRMXR*F214acsLbOPbf5guNg;GTv8v9d4$h9ZYU&fxGyM3-i}y)Z#=DV? z${O9*w9A5^)rp8gvFiJG_jU|7cDw1fU-2hw&tis;!?0A&88qWQEulAA{;ToxQFNaO zS6(Dld_M@I`@AB#K~SgouH+9GdgG^?41j~S~b!A3Z;S3{SP=hhxsT)PNRY=M}bmB zl%j%zwHDhL4uTV)w5wz1`$Qd6KdE28L|hRqS@ZX?`EeqS7?I5UIJUlwDw66a?x7j< zvj`F=mZn@$e_a^Xuo=#Th=@QE!%T?ZRs!Zx;8vtmKd?izMTv`FI;-Sj<>4JolIoeH z0;+h+pa}#IfF=W@dXY?3vKWX3xVmBg&VPbf{K+H+etlG^M|1O2Cr}iY>L`+Rao?cv zFjey51Dp%6jrml9&3vCBZMCaA86ts}D2#)Es{O0@e~Eh}QB=I~6O*&H@JPec7E+H` z`p6h_D4lwd4ZO?R*rhpCf#+>y;$k2nY?+(@z*(s>uvEp|ygg z6A>d2f3A`8X4zPBd>L_S9PNM;c{_4m^;?CjeCDT7E;mkjdH-u`%-`%uQsIqZHe#HC zf7LOgiljmDwerni`cY<&8RS6|!YA2yoTAeQ@g@dAAEpI@`>mjEihP~m$z4Uolr-Xv zLrVCQFOv&Af6)7aHm@cVeUuvpnk0Cww|JuYweBD6bA2dRu2E6{D5wbGao?eO|2Z3}s4tGv@J|$_1-fSvzQKP{K#Pvh% zYzg?L&~&}D$ht7Wu%1xI`eB(O4#dZFDR=bpJo}W6ANCLj(%5SaXX;_NT&{^GEoCkm z>(Oi%@L9rtJB%(NI>!(C4?5@pf94sc=@45GKTwAawP(nVdiq1*sHZ zyk|D75Qg(JJBSzA-733F*Thx1VTJ4p>N7hiuH!pbdCP9f1JEZmN5fq|fBW9nx-#V@ zMNOG@;1D3uZ&#e|59GF!2h4yEm!aB*ayJi~jW%{v=t>WCdm6dC?GOFp2VIP4r=%~4 zx{#;B?);N(usqQ0lfr*KY}yt{9RAOa@=2p%C$}Bula_Hl`5zhR6TRA-Z$ZmtTQ=#3 zudP%OA2#HAZO4Wy?&Ycemf~ z&p$PX%^eV@Ltm~NZ&8aN|Pou3sa(<%U?_^OMi6wdJB%-&xP9X{;8^(2$t5G#An_?bEG9%G+(5h8XU5 zsK?hIJr0eYwuGCdf8014>O5mM7SA*9f!3_tkUjohm6$zgj)U8OhgLJyhn7p{M3w}a znL(=VKw`HczT`?3NfmA^Wkmp*LfMvKl1V!Dr@@P=AP;Y-#S?25uPF@v{8sqb#T%P( z5;mmJw`_^Ux88k7MCFa57tYvuG|-O# zjln?8hAzirtx*XhkK%Fc30p2_X;Ll9 z^o@)Q!shdTe{8*f`Q#7KZC|huFVn^L?jBk@9cd+xAl&h^h+i>w-rbvjA_27E41_~@ zDB&kV{UZoHl<*g;R1>zJU!*M+R2sJ^5Ny7Tww$$`@YXCx^ELL%m4ECjUoYim)ol@W zLw`q>=5uG#7z0o5n(AMFxK3CzapO{P*qcUp3sbdzf9Os=yVe$_YJF!t>$b689Wq*N zWFT`Jg-bc6sk|8L-@Vba$PxQu?K6VkHef|n zk{P5PuEmvsnq5Nq`7j^&G69o0}l0_QCP`;lI0&5CvU0iBQ^^Ymw>3c+D=0{QEe z5c)e0-lXzFukduFn+%m3`lBK2bE0?waYbaXDwO$kGNDWf0i?ezu4M$r%(R9kx0n=& zFv@t~rBURZJ*9*zmBB?}26Zh)or;50?0K6@e-9&Vmo-DBrAt&=+TONjwMFgTq>HEu zU4p7cXKjeaIS=*<<`mAfh064k(BPz)7Z4MQw8A%~m5MC9jQZ1@fas!k_j(?orjwhR z_Y`xOMUc7Et%^9t96nK?ckF+%Q*A~`v=0}jziGHcDjF`&1@CR>Gdopy(@SXERq9|G==Ggg-xJYE^8-(a+n+$zclhfBtadYX^dZU$6YwKwO@tG}5? zEccSmDblAZiVuJV*sh=*)!(0V0fbk!nMCDb`mk62i}+REU!(K(@p3)^1@Q>93rFO3Lwv?x1u|G{)wf*j{+4u`saIou0jhO&$S)myLKqlEae|cSG z_csArZ5XvK@@8g@HYJOZV88oue^__Bi1sU@aE#GI*tP!d3H0ji?PeIh88QtH(bH-Vj?T0Si?E)7wRD83K`;bz5Z|!C9;T6F~^g zV788wHHHum4|l5xrU2Jyh9o}ygJ5Oy3?jB+&qfo3?ZIvzIq8?dAJ@QrR zEt#A)U2_>YAw9NLBwn^l0YI?9Wh<@9sCXkGbGT+o4p}M0rXJgm1bFSKpP99yZ29E1 zX{{DphHTc?30yT=C1*=+ZH){d0P=-^!-dHgFlHhaZz&puVapYdf5(~k^st(=6Xye~ z#SkEo?rdXAo@Ka@(ZQ z-=br)MbL{dYF|q`c2~URImNXu+GBle+O6zMs{jvLD_y;}To7 z`>!1F^qIqbzoN2j23jKmB=h`=(1rZD#(GFsVqvv zfpNtM8Kg0uhLcy*xH`A0jtXlqh5^vV=2*qW(qj&eB z8`H_h8ok0jSz5q!WXd>OsCErw{e9 z8%p%H`Ih3&e`XPmI+VW+rb@;Q{c-qLOTDLkjR`h%?J{#zGS;_L7I?$pTP&}?M2k=M zP5}^Lo-O?D9xx;SAHC~4d(4Pw-3q=m$G+LS%bGO`U$^?g+gcTQdVbUD^DjSLLSs4k zSAkLGjZ=zVD;ww?<}I}!Z$J*i%qunM+eNsx9B#50SAk+w}2)bA|_O?E{==Kv^+|xR5_%6 zc%GH%e|hogVR-Ou`t4vh{T_(1Hq8%genU55T#U&52RWDuheOHIKl&;~ljTed1`93F z7gZSL`-oiHn~26EbrzDudzflQJu^fW))4&V`4a8TaepaKZZ27 z8L2b3KWiJaxri32S@ytk< ze-VoJ%F#Wk(it30vgsIR7q)5o&ma$n=n&a*PpR_>U*&Km$@t8UuZv>(Hk-#8+TCRr z7tm~c4(Um}aE zP3qYc=G(1V*D0}!ZmJaK-m}q#5A!Ycf12gtp5&+wBv&T0sRwn}7t!5?{fnNlo9k3a2DY~g_rXHxgBYiA z>trF`sQ&2|rKpefMJWnmpntkW*#xQa?qbuO>$9DROW2?Hq;({m)ezm{tcI} zsFmW_P0eF>71}JGK!>q}3L?z0f6R6yoT+^5QL@j|^vt9+g~Du$ak@J$ohe+}DZ(L@ z;)khb>6cwqs;#xzB6cQ4al1*%tlA@DD zm%G|aW3`t(8}nG^S-%~+f4lo%Vn4JM(^w*d#&QZ*uu9j==vIBFH5et+v_uVs!|Ajm zb@Acuq4b?39oIRH2S#2n~$=rQ`?xov1gVibnkod3xJGS-j*Xs4{@c z-zrCK;~Y+e9XJ{0Aj4yl=uL)$vE_mYTBAavus;tV1PbO_iAJ3|OsOP{C`Mzw!>{ z5G`#izJUpTT5U?ceddLkdoE1g<~jfEdIftew`%UYRr8x})!aC%^Sj)t*{zApf+R-4 z8f41l(m58c7Ioa(^%a^EXps280F1ZH2N{m}CMaHLw!G2};nA8b2W#S}W7_M6_ZGn> zDi;!NYn5{|e_L{e&O_ve3I|p$VQv~)O4qgp<+XkYz`3=JYf#+ngRdqRm$S4^{+wRL z>KDG{jOuaJ6(Q+!85^l>1o&Ub{PwjF9?E0I)km7)E2!Bs=JH2 z1?6jJVF*F&f*HfGu?S94Q8|O|7eGuEd&a_&1XTe9e-#vM#GDpqJ#NMGF|d+I3tR_z zY^MmRWrx)$-pb`q!3DB7Vrwf`I?63>tquZI6wMK(nQI$hWsxWiK5WlJ_^yK2t%%1v z&ghOX4l1Hu^tntAQ)-(yPPm{_+a*I7Z9z*)ea7C@Wmkibk{Z1LXFbvuf8W8a%kgP)EKFvjuhAIn_1<&IyTO(RITuT3^;! z4eq1saI_)0}&AHj{AK=)t zZ!Os>e=?nh9B&1_RH3yv(Y`^pIl|}Qm8Bmcf1I?)N8{(Yek9~`tS=?_ca)LvQ!o2B z9UC@ub(}?{s}a?@HPZ|ZFWnZB7@1EXeb~sVLF=WWUO{Yk7f-2~=|R0vZ%|pBNBK@% z^lSz*(g9A^OlPIO#VLtK3+z%T{>i)D=$aH(23Z8RKi%`tut9BlooB5L?am%9BXm+j ze+%)|Il2+gNK+gS2tF_}Jk^YR=9Eh3F*J%lqfY^MDC5>?$K`_W`dRFsi^ioysdKm# zsFQp23bY5G&{r{0*HjX8pWGY30L;>=N-oj?(vUzsKH!<_0J#MtodcVg8rl*g zxu`iJb>X6AHA^z^E+)YUY7N1LG<;xSiEXYxXe(-uLK~*r+3o8tfCEIA2C~b=G%YD5LUh2$R;eIBe}QD2 z0uwtxdwWvuissW~lunB2m_jw{MWmGx+1W%?f*wI>zo~u7`X)W2AR!4seJX59uUOPV zC>?|?a*-&Fw|uJacDZa@Mh`47bG|ym{nmN0b4T}8`@&YvT}XY{$`B>l(Fc;hy+NBk z+x+A{P?)kfTONKxi8vFwtRgB&f3vUX6>#%qdBQ40J@gp(*L`iQ?^xg+u!Syk4_z*n za1`JX*6$0=jV%TAymKe_|!~Hx945 zAg`KucvW#Fk6QHx;7zGzuL(knPvQ2R?kP@T3Y@HV71XUKrbgGQ4GT~ zXo9-2gQOuy5iuw7$d9hG**qa9zru4f)brd9f}5QEup?w?S-=t!I7mKzd6iD9v?ImZ zM%UTV3$FW>twrkArmoV{e=~A36KWxK%6H)~+k>BY52A>=w#O-hA)q#>w|zy{v|L!+ z@N04JL|K$auot5$N}}m7D14f5p+l>A_*JbjS~O58$ijZ#vAbF>wJt(W6{vLWfC@_B zBLPA$LT~}3fs~eAf;-)*WgIQS>v6M|@m{iAD#4TOw|jdVGLX}Oe_+vkhW7Whp@h5e zfUX3_osry@!G?nawSDO9isaJbi!<2#1Rt{KkLdh`I%_tboWPhJbZ3|q3t{sGEefrR zj^?IiglRRyZigoH;pQ9f?E2MHg3M4&39a?OTAT3#er7%CY4~8V6YH;TX18&$5N!Gs zQ&~}6Z6nu{E{vDUe}0Sq&5(z2gw8O9u{CSh#N!Q{J+YfTS=;Q1X!hvyn~ep*9zr{h zX}p_$1GF`Vpmbwoh2Y38tPpJUghQ%0XV<$>YcP!_z%0ahSA~pV*TM8#I6?+bgp1$r z@2$`4Gg?HWSd~_3Bjgg!5!wM^*v)D1(YxASpY>!G@d#Jbe=tR~m9*PkHxbkLc4HU8 zcsQfKv)G#+1dHaZOo3lu4{B2&66EhjZe0E13PeV@#^r++_?cn<8QsFfG?O;(*dn$Y zHDuhrEx3rgqdV?D8Vge|vAjr};+v?|-=Af6!g`?{aGWvG(7}mwU2h8MUJ>i=)lNxDD-w+Gy!$ zD4^N8XVH4qH2pGrm5&4pD81m}edslYYhhyW?u@QQTsri%3 zGV{v5#2NI@Bw}-|1E=b_1@ljreMveiw`weH-YsMXf4tg3ioK)fK+o7zD^y*&>(rsF zroX|GMeyo^cCbknN6v-^SM~y zxMd`ee|?+HQfQ>5n$_Zv7cxBV_iPb>3$J8QNUJfi>f9$n|OuLN=28|GwfH-a4wMN;6OTPBv zY?!AnYGVW@IE4tXsyVRX3Cujw;Ge^!iN6e0t^|$T(tY5-Zitzb8q&-RSzAHQP7hM)q2%ZHF@d4ml(W|4sUK4EMXw5R=&Oido&N1qvtdPB-Or1ptCe=&R1 zc$r>OX+NZs1ewe--i>24jYb3M-Lw7pyX6u;_v1%VdPiFkfkE?8(eA>B`Gfs#yRX$M z^y~7*W+*c!6x>&1)csJv)kcsfBvOFSE-qOYgW6-1HqQo zme3=UNW4x@JPc;07)()8wyq@IfBSVsnRvlMWuWDWvbb!zEn<;ZI80kIq0@y2oopOG zxa~X_VT76W#NyW`l-wniE^Bnn-70QeLYI6i3ef6!~S*6v(0 zD0pXAV1lpM3rHjH-Et}CxR68ObVC}YDJ~q)a?8o7S$k3QG8JuTFVIFB*{Im2gJ)mC ziU`=K%%*=cUzv(j*r-gLVXK(*h79Qc&sS~PtPn5C7VAr)+G1CrY-z4BcNlpSm3E>b z?*`IO#2;^P!5{bnal@idf3djk{iDcG{@sE61D%w&#}TT+Xt*`reVC6h`mMZ#7=b3oGLRD^n2eY+4ay2pn8o0wshESuW)_9D`4%DV7w*vFc2C zt!s=isW7W>+EPz&I`j0h^Ay$#`UghY&tto|LNe{z={bb^Xaq!EW| zMzN87BvLGwMqr5{Mwd&o%R(uw#9lIlUs2*L41+v=`0gF7m3QNvhrRSuItr=~_@W|K z!q=Q8e(|BI%ivK&UqYArQ5fw4o96W7v^b-R$hZLuFYUq+%l^)#pQzGTE2-R!XPnyx zd|aSCa*PT>~H(co{2VjV5XnMcnZ`b*p8EW}K^rBx)FJh!lEMe}&<_^-xG)f9dwNn509P z4?d`D6i`p>b<@=gDYyAtqi}==Qc!tLHb2Naw-az;1xN?h%`lZtvE}@&M%Vp*Bmzvc z5>L>vCrs8QUaze$JFc?hic9zV*bO*w1EfD)Z*ViUBb)F>w}&6MMc5UstHoP|zx+nw zmY+B|U(&&=fAf9p2AsG7_Q*AS`?|q)yFHGVTOwLYa!1EL1iXPK-cYAu{>YZB)YUan zGMgmIolmD~W^MdQj$6Xr8r*cM;Trn85n`q>&ItJyXnfk|gYn2GLgZcHd>VzCvP37y zF5Hn^I-w28+1lv8F*!gguEw#*zuyaAl#XQ*isQ)(f2_b2G;Ga~sP%yhTG|q<5kx8B zj3<8GNU3d$`$P93eV79YXn?Cem!@)=0p%JFndm+g&1Bt)3@$F)?OQ)Wr0d$abL@^) z+%qJy(>T={^t5Z}2|s{Rni!p%dFXPA`(t)ia?Rw!NKhlKd60`dIS~iC-2u z&}{;he>--V6LD{{C4%sIw!JMV7#bp)TvP_OXS{r+;2mOI3f6HQB7PMA=Elwf7;%j?YGAs1hcq3HcD^k6#jl& z$X0}dMp0tCs2O|fVtwsU(YI}fNjtM<;*4yzZk{ElAoM-D-v=UlFX=AAwR?vq^gK>r ze?1hjwQIumRe1hYa}_?E`<7)~#{zg&*?lkgU6mhLYawTpP%okSmD>?YmC`V*=#wCrB2 z+ zdl25?hyfZmlZ?yt&j`ItcVZGJ?lc^P!4Xjv)3i4&F3@kZBWtuTK>?A^1XZd=e~S^l z#E?mEaAGlTyaqQ+{v$B_sYKj&wGgQt8{MKri{xaOJDq0eQbX9sqJa|PDqy*9fr@-} zPD=UveU49LozLrZ7WBhmf=@{WVW%PC8B~Jygk_MNroHnlosQ2)x>uTLYfuD1pTVr4 zUM?%TEMRqq+~f8 zpKkS|t=%)MP1DsP+ARGHieItiC2vTvaBw?X;c&G(_y-DkCcBdJgfAP#%<62lQgG7vxp>+>OTF5{tdb}mlOC^%)v&~JY%?FdH zk`}Py0D$9Wid+pI1Qm5ye+GiN8OK3(P&C%)tNeMM)dMy^4uKbJq`)qY)#24x%+Ip2 zsu>*?tE~um1r`nTbxp40q?u`|0B9olbA2IH^-JM@%dFh)#8I(;eINHmHBe>EQr_c0>7W_&q@x+`1>m!D@D9w!SMt;B+RG2&w}2 zX+~Vlxm;btbJ6gb(c&3Bki_n(L{0g4@wRxu*v|-@fc-!Jtj>kk*d^jqqKp4W+?TMm zjbw}d70At{rA9W8boWfl2!A9Y%XAW$KzbSAWrSUTCbs03f8-=I_J4n8sZ}Z&GSm0o z{?b^rZ>LV3I(3#mb#PGK2=VbLmb$WFbJ>Ya#;@2O>djCe8}jL7lnDG6SZ3YOlL zDE0GoR*PPRe>_}D%ZtxtIwPs&LK#3U@r_=77mQcQwnQ{Wj*e0ja=A|A*3F^i4**si z82QDH?K9sAp#zHy8%(VJCHy9(6cNGz$_5Fx`?^M60Ia0Tbec`*x$t3-wd{`3GLCr< z^s|chLKY4)4J~mN0bvKH8EyD+IBaxAiXviXgEZ70fARKM@4kW!l9CC9lC3gNQ0d+^ zC1lGHNv3#(0;m6OcS-H-c~MT&8tz8(337J;c!-TBP?HrBpmo$cf$N$Wdg4$g5LQ$~ zS%j~_XtGe}vGcd`@gzlP*C)hzb4RLYg^fzIhCOd>Hn{*{fD8MoG0*u9}eDt_eY!mZk(&?>cd(q}Erx z-DEc0j&(n+!HmA0g}qs1vi4>$F7X47e~!kmnUuRpHH4##MzZIOgbC60oz+n1Sb*x{ z)(Oq6!&ZrYvl(_OSq`?rvzvytn3S6ar^Uam)bCf%ZpcS9c6TH-tt(|Ic1e;jfk*vY zD|*|0Xk_J*ved>#v&9109ZV&Wa1&m4qo7XUj(rOV4F#GKGPVtvx2Utr8>ABWe>iqd zQ(OK^)vv{}bXuzjG6b}ClF|Zq;yn_P%E_E6Ag2URWE5^Qud*xG;kMg+o?*InSa3DQ zOI90z6-XD-vCyyuOB(;J=yw#|w6bNad6WGEl7W?|GeGkOV%YGx^EwFQM$|jBNZ@+L zTj^y5bx6AWttjq1+@iEqT9~l|e}9E_KPNM)rfoPh#qR-0-EP839$Iy7Cc+`d>qix&vBIk|tLk?=M!C zW-?O8pF0ctX9KJJ?5(Y1_6D|(+^4XR!gY-0u{2`Oo3@JV6}u3Yh=n8te*(*mtCo_? zL$;+UX=MB)+Ioi8UEvHuGEJt@cM|k=);qkz<$kL#mMxcevEv)Qm-U2d%WK9V$%in? zINNNE##Oe|Rx&y4jb)g--B(` z*~a>F<1t`cX-YK?n%o#+AFyS~6h3+m#So(Ji86YW?J{bzyTs0n_)gX~t@K_;8zTFnF^NCVe~H1@WN zbU^FG&*;Q=>Vk7M5slg?uJ!ibaj4WoXfPI=t%Kb^BD5)Ne+EPpuX;II?ZLNshPOyRGZe)Gw7* zCQe?pn+xM8-Chj zjSY%cmfE*FDt(oYCUY`;G9JU~m^K7-orA9`+!q^V=-6CN)^`Bs)&twWqbjgY zS|h#`SadPWhAnL(yxok&v*I)E(@U5Dd~&i*M0|{Gmtlj1?#UU(oz=geeMRNccwnP) z7ofGb%zMv}F43MMouuZdt=W2yN%9oxf1IU`23Ac|yU2a!sq1XVsj{cQ&extGJC)|B z9yWD??>#|x%}z(vcTde%&5L$9dT;pACEC-YlN9{4^_lN6J)T0H@YB)2s!3`Wxz9Wu zIU0`lo-DUmd&b;!HEkVA-S?Qgu9BS-xT>jDv)EDY&Z(3-XQTi_QWxe7Fp4pdf2n!S zz9R%~ojNV^Bj1W1ztT6$AuXwVD_Ip-@1TL$X?1Dpn_+z_1yoGvn>`L%YVLye`$tgJ5;xR?*9PYX_%hmy`9J!rr4S(ZzowI zdI6W=>?P{a2Uz^u(Z3)Qr>!TXe?5re>+=~=M`#%ufqx>1Wr&85485dgnJ91MPaVq{ zo2@4qy8Yqsv#d;<)XjP~lPfUXL1W42&`|k5*13{Oe>tU-%xh5IH5qCA*ingw*;6~W zRK;}*G*xn2)pf3SBWLs4rW9f{x6k3|N|~JJTGGn$=A;3cndKQfNDS~Lf5x`6zO}J+ z1y_`fbc$j|R{SoeM1$8?pGvnj;uw>NS$M^O~WC z>?3rM*Wn!u)6o~08Z>IBXbChZhxJCp&1%7M!w(=-C#^bYBzsvW!B$uCO^z@Ioz5r zC%SJ&p80PJEc{!P_KRBskB?e{7vrlkQLV86Kw=q4=T#JN2^z*i`8BGuwq3TQ8&3me)Odu-P=4+wyh~(Xb2GTwnK_0U7~bf14EPn6ztDY=-X7 z=;GCKQjc6KEw+z^m6HWs_P-w`$quFz<1t0AArAsM5G5*ID9ti`7pLnX-e}cph7_p! z3W!9lmW_=G@`I=ff%{jtWXDTI3-bGPrPw~u_#t~@MC6;agb-a>Xsj{?Os4G?q6bD? z0z(R9VQ&=DQ!q*#e+~pc6J7hgnbay(^WbO6b~J519?W*9gBkMSvrF`WBlqs?JQ^o( zDADMp>ldk0t0PY5jK568>>M!Yx1@d)jFZcajY~{IX~@N52hXQ*GVRSsxuNkeq0jFr z9EG#Zac?I)-^=Nt{pbsOnwv{w%eJ(W5~osc9y2UNFYr)`f5of2a@-iVHi)#o!to=n7<`tI}>=$UNm!v$x&gX?jj4i!b)HEVA zxg1x9W0JB*UTQE&x=#_LfuuJ(*h}t#4M_yDlc)q*iNxS|%dt<<0V^|kZJq6FfS{+> zxTYCkm(+6+L-(LN(r!jvET#6zU=AP&m{W@fh-w(je|e=P*0$3qO8On7Vs%kWPO=#k zsIwXo9!k)wSVV-fnuv9d@NuBTH><6Fq8w6AsMYv=BX%sy5ZUY|iD(Af89?*t~{M z+QkKme@4mjr>x2=`+bhun@WdlRu*-Es+{^Ex<5)MlVBVU$MKltBv3G|g(UDvou25B z_8F0@CPY?$pNqN7op~|=+#Lh@MqH5OmYr7XdL)dzRZa7%>d-ub?LqVA;j`e44$6{- z1DC~Oy(8;xGiyi|bC6FT)W(2ejaCZr`QE||e?h&AlQ#p3c~A5&s7Ayz06p|xDDTfS z2B3qN4K^}5yn^#aUe=!SOl)kBk5r5Y$Qg;Mf`yT3wxEFFy$9iKi|M{fWY$-Q&SfOt za0N!@X|O0aHaeaL%{qC8Et-}K|FdELj!Ov*Qz>6luf|_aw->pR z(12hJL7YbX%$DKct9tS7UcD&!Z4ljO1UeMLjjTp-vXwK8i`|~$KYymI`KYbgzz+L5 z>IF6_vtZDVI3FMzrd<6rn$&7aPPfnfe+1Y4YuGs-20Em;diQ#v)uqDNRL~M)Mv-Ny z!6fyx9E}?3ur7?oK$z5G&7KPtH*4%5cGD)AMi}n(U^V9Gnf(Kn|G*8v#_^&Lg}!O> zql_#k;UOedWO+Lp{uN3dsYGewL&_bw_(r2z6aXhu=`IX(irLP+_*ZzWsQz2Hf2d;u zaQuN-EJ#{C08v1$zifyvQ~?SLHDryu6byNPF>!`GZ^49D;Pidd8N)$v(moJiSbPwq-f0~~IHXaD~I+i!CW6n}_E?kBWHh-&D zuCZRLV2sPSyn78@+aZdb{Zc-1*xnXx0h8WN;=Rf)7J)Y6 zpZH$yhaI;59gmf*r}Qx1j*Q9u#QWww?6S@8R^57j#=4E^{lxnoI_$F1@7CRVnuNMT zkF=Fm04P8PwyAOs+H+t@&r(U*h&{zVe!uh? zY@ED)MQEa+XXd6?No&nzE_7#ncYlZ2PQ=-Ro$c-a zMjrAVJyY;d6UIh!ZB3`lO)r_Ajzt}w2_0_>s$gqVM}FwHy)tx`MfoJ-_2J)Y!e0G$ z{gyApZZPp+2_;7CG2($bZ|$^1+7&uhNw!FPOThZ8tduuRp?k!hUG)u*P!6eS^>z$f zwt1a9B6;HDI<4n8)qhhwnecvRiybGdk%6K|WL2;!gDlhD&Zn5IF6wlG(N%B9b9t0q zZym8-59v{ztfmu5U%E)TobEb+?T2fClr|*7h2O1n*yxzYCwslQQYL@s5ceShLUq)hfwFLP}2XK==% z)aub#SUeVPwGy@IGaBtmu6^1t*Pbg$76-O3Ku?CKTtQ)l;Vu+Ap3i2asr+6%^)(6xV%Y#K4}@DNIEY9eC53E4WEK23 z5j&qC`lfJwFMo{QD%3#b?MiKY-7Xz@B=}Ye=qVeaIzoyi?!pB3%E5M$kUBT0c)nWqZ0>IK@0h#UX>oTf$xmB|%VzYNxs;Fd zNXynT8c&QcBAUl5oEz~Aq&IO>k0adNiC7v2Us+hf1%EK4zL>eaR%e#gZOtfbjY#bb zmWN$=TP*Y@pJuouXI+GCtUVX@+h>CjnjWQ`^)Ju%7j!X#=Z90*h(d~c~Q8GnLCoC%-CK+;? zrCQ0`?SEnkqi|320bf4ZsPiK;Z&J2l9VBN0RDSjsA1H==JHxD)>4F}HZ<0m$fD&X$ zh8&qsK^SUVUJ&^(upjEec9-l;N3sR)XE-UwTg|$Ikm1nn6d`Cy5O_odznw3+*8Nm|;k2+8)FG))44P%t2c zgU~;Jry0H-tav3|RZKsf=1tKRH^EanYQL=FyJhFIYkdxd+AzDHkLAKJ@LG~FEMbQR z9)C*wQxRQ1i-7EthzKotq-4JX_qYX^)%nUdpbDrMcgILOTwg8iT9FNROX5@Sg|YL% zRE5%qQA3h+zB@u_cR_A$fm}G4^YEkun?f{trRL`$?RF&Vqyq9a8a`I?rsq=N6uyk0 zX`TR*xo!xW=E2O_s=b8_kkZZzJ~DA|1;b zn3 zWuli?p}MRXmIQ|pSmYH!)w$`Tl1D&K#kR7tai#UikUE;cunY0=7-X{gSV zTR9am`=7HwJw{6}p1Dx*)^b7AGIHhl$5Zc_yMoPfdp}N1cb{bzx9c);)d-#%S>3LI$Ske#+${>>ivIfK(?VZllTJpnTY)bl zTC5^DL`S;vIU7?mH?4LWnv1bwPYRPCE^f^f%SWC zBVBEsl5981#hF3skyM-~HQfbk@vCOWF2!lH^sx70ko9Pp5sV2V}uA~YBs zW1*#evha(~OY7YjHW)`r!bZmWopqBPd~ao1>cc_^~+LfmrWk-TvxkwUxM6 z=S)Pao6lY0B-70<*MHmpH{Cq)i0^bQkzdruw?=M3gR<=b*8dX&tXo~tLsGU&zmkC; zS+(D@7tsf&>2=%Uk(*>peBa#{DKfJ%=V+3_v`cB1>^`-!mHvBFN*M>W&7Q516=Jh% zt>=+F@?5Crx(=;*+{<(tO>3s??`mIIx?s;S%zz$U8hNk+D}NK6nxxByB##qqqrCfq zlU<|>L3QPCij3Y_^<5~zF5*h|XN4~4uCtN28+&y1%F}G8 zjSaj{bypRyD)+j(9Lx+d)Vi#U?3y<_GBV;C5iuASAd5oDW=xlYV$q3txJVM#{U_icbr#-_!szz&7q20LVP z2GGfRvdZ3!t!ttc`H*jjrYMx}7>!H(L{iU&#>uMOh^ee6-yq$4w7pnN;BRP?w)lp6 z40l5=1oRtvmeHfz*hqJcq_Vn>#Et8R$mR9pUWQ+k4}YPCX-}#$y0x~agm6cn!>lL4o>A zWMB&G;6dHWnTRbduxtp8Y{w`$6v=y9T-fdmJp2d8*K*U@aGRpvO`62~Kpo-+PwXYz z!*JBpc>ph^>x|KHdQ^{fx_@dFQd9>nT1JCZx=eO)XR9*2t z>E!3^(=}}}l1N)~JxNOS(w22Sgbt96+^hhh#@0!}p%oFaH4>~e>gY{E?Jm_8K~pxt zpUJmc0d^MCi1`iOdZW^V!?q2iow*T*OZCyg-G5cCQ0%oTN)n*~yt~foI=ify%R$qM zs-H&LmDJt(IVsm_=X`R7?0hX7N7@0y7XY3Pz8XH*=fs`w$|2j1=Mp|a->zG0L}E$D!_0W>IzdoE2@TsG;ykRc z(akBEUOy$Q*KW)1B`2r>(iPJqZA->iu*Syfkk zaTG!(d?WlbqR6TN)MMz$)is-l!UY; ziZ(WkFcJa`5Hn;LUSSzWgT2p$of}sdS636cC-pTAZ4Y4k_yVHrZyCOHL`|VJBY$+~ zg2*m-7&KLc!|1yftHfyDE2~A?OnD&sby`9tA^JCk$*7HA8M0+Yo}E!M6;afBvf40! zI_L{2i-J;?{r~g(9C_T2W)KIC)a6(cB#+T6$z3i_bUYp zp4=;|Jaeg)LApW$C;bYu^~*b~FMpIvbDy)gH21rS_VRB%5{h5X3)|e;{x)ke#PC)m zNR$m753>EkpaqW4%Jk}0p4A>rcN{Ve67{iBfDQKEI&O;t!s!YP|X0u3uO&*eO>gk>eX~A#u;%$3b;r_>+msh$$$SBdQ9#7 zIbC)HZ#_*>E53pUx%BMhDFkWWazBY1GB_++rDO`*$TCmXWGl2rM#nq|(3~8dn zOF*Tcud~s0xCbbjXMG@}5`Vb*ygYn!FvP))>T&|z8s_Pz3sb-7dNxNKXNm_pZT)BK6rjIG;@jw)&+ofuU@>g zbG(yELsk}O$)sa5b|UrKBy*ST46yK4`djkw=|bSi!8?oRWtKN^jZ)a6R1L1nu+cob zP3t%ZvVS`PTdtKJd`KgaCVMHZg7hn7-y56~kkz-wfi9J`L55-o+XS15M~py!bH&SXXG z;3z60(SDbgMt>*Yh5UN|Kgs0$3ApOlMG< zMTBjd<6@#WPB&1m!zS@H=tytU9Jv;bc*5|^YEUz>)m1QkCrG>YuX*{e3U({$ELgO@ z?HfA3oDqe8kdrl@7X8%BqCAJkUH+V{>#&DVv#NWI`hTITTcj+1N{e3)laAk2vNYgJ zsK~u6G0)nbt-S+t08)-DThVa^nn+A=cJ@k-D|CO0@d3dL?9b7fJkIcHA@NKBi08p0;;$XW_2xX>UxouyyaW?tbfm*xd%| zeXlK%Uw>mlz1Pr5X*1DSzcS0^4cI8mdDJgSH4?Sqx1%!I9+VCDrEntd3Uc9F7$>Qv za;lndZfeI3yW6CavK=yp&KNuAy`81Ef6M|?z_B$sI~#9q^~D!40yxpw z^)zj3K(1{s7$|z-Rx6Nw9p!`Ip_MzVSt6o3X{=jr^zLXaB9BmSk>o4bp)Bfv&)~3E zx_>hEE~I%YOFy(sR#}&DtVqOdizW_Z2HkT7hdB7TDiG{94CJ`B|DB{UpG z)LMn*Q}3+~XG~9$R`F&U4!zLeZ|oROZ|`d?|D^b06j~b?&RHM_E4ASm0Ks+-)yvRt z%4Q1yQF9YeR|U&a?bfXRWDr%g+WT`w3xBh%FawDn=Okksms$#$WsKvpZw*Yh|@vws}uBsdI) zZq}sZ;d(WP6>S19J6mC4nfUH1B$wT+o&^bXs^=|+Qj>!=M)4H;tPEWf1LXR%YSbaeXnJ)i)usgS!&pkTm>Y8Vc0@Im^ezXEYU{n^kHeo+La>kQK>@28CL2 zRFx;nHOSrxF77L(Bll=-gnuZE=o-LQwk?Pt;mgkn&-|;r66o<9=yH7Cbp6*^v+c*w zB=lo*>?p?TQb$2aQ9c7Ay)15`Tj_AlsQ}>4eJ2`o?w}FRnokX^;hK1(v1{lf^8c;_ zMQvK8=!wWd-#gV5nkvo*_cq0C_IVw8H+{6)RUW>~N*moxRC$+Ds(+b+{a8>N=)?tQ5GfUDQ+U}0K{iB7 zTC=&BcqwRNQ_tldEnuz19o0huoCEX87>axnCExgAM~U&;=WAg+51NIq)-F@n>r!B4 zB^v%ptlqTlZ^2Q+%zwWNwCqyYx2Lc@snut~8ghYXLnpn04-{ zX~WrK%1Bs`IsR!FK$cR!nVkRY^`!L862m!W-O+S>eLZkZUzC{bJeUh>*f5S z7~iPJM==QNzHA>UCR?X+UDv4$C!Rf!Sy3^82EwKw;eT{5;Uf0=H*$v;=o%9>nmu6{ zUieG^L)*2YHie_2i8gy$eWGbJU83OKJ^HoXBbvuO;V9DbtnS*8x=(!nk2p)uQPz!W zwisv)CBo<3jGCl{N*rL}MNMpoYOWl%^i?3BIMfdJuf2zjs;?hgI>ldD$hTF{#lp?E zmu~FQrhh-$ViH}YNpH)=TcJgY`i47bAi-;V*>>a5-xk`^RM0VO7eP6jRvARRT{zSq z-*Vt$NOd#6E|KnEPHQ!ssT|%R9~ifuD)yc7UG+A(TP~Zj!%m{#rj=-#N$l-dF2mid zyREG1N_G!3%lZ8*NehqpXMtSp_OnV;Nx|&>TU|={1fJXeAvr&a=vj6R zzICl-4>YqI>J2<^pH}bN?+W2&9j@w2XEnS-{ixW2}cI{Bul;c894!=pkC^l`rKBh>kdPzA9 z?v`@OB0!9h#RRO-qD$j7#9H~bB<8KPl=jO=Qw-D2*Yjnh$E{lvLZ4&Xo_tCMw~@7F zy~f*wk&@%Lll5{NT zY#2aoX%+hocwF3i#`gI-n~0!pNusQKXGs&Jjr>fZ2q`3pm-k=exy1%DuFyGJ?qC|?d30@i~fF%wwQ;|n|Bj)<)LH4K~b z4Fx4z4VD8y=}UKXtme^hJ#2VWT}KahYI741SJ4_zo-iaQ*&u{(A9Q$OI#)yROhmS9 zbo_nWW3ud3uLo%L|E5zUX>VXf+sD^WTdn$`SBRWzUn?3aC5$yU5P_B+sDHH1LrA{7 zYyEIW@M>80c7VL?^#-t%yX7D>54HeroiOd|Y{8u^mL0-K(05WU`MTM;)9@NjU(;Ck z>bbO_e6XIQ5eJ@GYoCW*fP@IrogW`Qg=kVdBwb2ix{ zY82}U1$YwHwOFDobsxVe zZrn5<+F^y86cAeS5K8UMa(R(-JQN2VoDeG164LBqhEVP%LnKr_&YW9|t1^+9af#`C zqWy&ZaxHRgYYCqazJE$}#<^6~L<+%8Nuk-hEAzkGMYa*7rdIx~Bcvgp|wV4 z9<9o87OkK=hkqvCB{FTq(KOWUA@Yfja37-Kwi`*v%TEg_l!?W^sr(9_XfEkbQt&Jg zDTw4ALW`{NS-}KF4TVelJ-hLo?M%l?$*0IKyX2MKa-WE@ik{`=J68~Dqd-nBC4R(Q z&5Xm=lNy@fYZ5B*x^ai#icdn!5-Xt2#dio4kcrPm5r3~_LWBxM^V+dah)R(X9Qq{d z#kB%BVM3!PmituFrbNobZ}W)eQ);KmjPhoRp^=u^(c&OATo$8wJ}&OxInTKNhda0& z*!$@zKxvwfU((BKIqZ`0?k+;xIY;C6d0#FKb-2{r?CW5BL%5!|J-|C0z6VPirVd1Kf5#%#3zLmyluNvYWaK1QGsh$ zdj-rlH^Z789HD3!8x@f5BTw`5Xgi{x%;GmY_kRaPQW#^B>ss^}{dZ10QjS{ua&3w^ zP)-pw7~yzoNykssz%e|PiY&$2_=>Qs2qUb*jR5zI=g^MSxxut4)WqO zRw`T){uzsl`Bh?JLO%UaNN^xF@%JqEdU%T0P|?$y6m=BD?dUH@DY}^L0E@HRF*=+3 z>VM1`-8h}q>$;aqc#}*U!F+ll025xWp>gFZl+EZ2>XZ*Dom25kXTZQ3%LJ?ivujzw z>{@3qc5^w&grgKtH!4Ie`4|#_Da=xdFSAnbR7~QSW%N)vM!`bSEh%uKq|eWyL;ruT zRCo-n`UdDa1oz}vfjy2zeaN(YE3p(;Sp{47XfnUb^4JZ+wWg8Yj6i)8{(5qQ)*0eP z*w`?xV)KctLKSO18}^Q4H>m8`QhyAivA7+DHRDOcaj_F}(<(QSTDMc(VAOEP9yh{` z^hPq)troz1Vt-Vu`BchA$_-cKT+dzST()9TY<*+RR7Yj%ICki{xD^vstvs!ms6ipe zjd0W;W8+4cS6E73($%FIAy=6n9AGEbb29gj$TjXxidN`)#VgXJ5TNv3W`AjG#pctB z#nZzHxoMS~SVb+L8F4Gdvd$cvPs0m{^;blm@%W618(#9FriZ+^837|Da3po(*bbPs zo+1q$yTPa>z8kkn-)#}x*dJ}`uYah9xDhrz)yY=Sq>3uGzAd#{XOzu2>$%0`^TgS3qw2E5 zroCpacC2aB$?J`ch<6YxE~)l|qTQfGO?~#b84)!N%*4$IR|h$ELhgH1T=~;*kJ*8! zCE^~pVj{2VK39QN#D}P=8jdG z(XNhLG3fjO?dONfhnA;cwk#3d(w!>4#bt?)6^CrO43}ZR-i5K|M6_-=Z)hU9 zvq~c5p$h!kD0zb zmG|sHqnNw}N`HSPP{Lmil%wC1te%LDrfN)sjCE0`ld3BdC93M48xetRSu@hUhJCeth6s-7D&nHz%5k@ zmGpg8Xfg0U&C!5;XzYCdZP}lQPhujSZ7X51qVKNJ@PC_K6qQ~hi;2nEgKsvQIn;2V zB4iK;rIZkOin+vi2&3e$vj;F@=)DSso8O#0*xTL0`uDzxN%J2nvD-t}Kt~@1eh_6TQ#3hiv*Do_Pp>>;G<;e4cJAYTj?7uiAKiF3M{w2xKn&-gUHGq;_reANW{cOlBlxEnB8Z$w0; z^Y~n~_N%o=V{7+@k!4k@y7w+8j5Fbdm6JA2>F{AUi&z&vw1tCKrOiR|fgv*y3#22* zSbyF+$bx4uakNaee3u_zqO!mAnBX`l=^r2MKRr<5ED8#2JvLU%kUM6@9zn^YjwLo; z7XOr8Q2BR3W$%LWe!HOjie2F5jl`;5;BhsyR3fUkOpRHDO^_vMxPqU0$V%_1%q~QL zHhPSk8Y`h9XQNEH*}h0gR!-G3&pT_flYd}uEtz;O$l0Kxotz#@rDKF5Is}vzQCpgB zCoNtt%~YCw@Yys7)!%~yriS{|Ia2gJ_#QoTHVzyqrBTJV+wrZ`ZS)t0 zt-V8=`dc7U?1o&zM2T>bSTX#^mrbnT9#eJ2_)UJ?cjg*In>%$bC3w%dYfh3gCV!jn zZo!f~ql=}@fw#$M`ij00?gZg`$z0y39s35NF0PF4sgX%1feiaxN{w!*_$+fG009JPsbMjM#REi-MsFPRa&Z+xa^(>+I><)_3bV6l zkrHm{uN~%-n>Fen${pzhvfrPONqQROhl-#DDnL)x93`+yA#EOTl$171ZZ84tOyVa+ zfgWIC-Y5*K!CL?*1-R`C?SD6!gi=tMiu(u{56~0}lIpp$-BV8ZvQ1TTyKH`@Ox)d! zT7^64amDE5qWmmS*xS+0qrX^6-AY9f({>*HHF~uD-Cx3CkS9ApukZZ$D2y=$V*eWb z@cs9Xzo)cEkoM@&cbtaNKSVn_JKw?otdsZ{)4#JUM8K{L>b<=mzJJZb&EkBJ?`;nh z{Y}y60X`f^NP=!Get5i*hEd*2cC?Dka+$gt8JD1e#e@wXbis@KONpLc+?51?nFP*K zhHU^atIBa^gjs}`CrYWJBCvOz*d+pksezau_m4IhsQfV zl1eTbae{?tmyuMWaC)`5L;aGC;ypq&DwlR=`_bc#GMey5HL&XaVKYc~cXzhKP4r5% z3Cm1fb6Q?fyguy^Sq;|HzJ)qQOZMlSRhWx#+I~O^~Rx6 z47!k6Q4*-D?GwoJ6ElN6sfUny2y2h1yrY6If`9k8)^+#o#b%zjB;xJK`AkDZsvsg| zh)AQ`bUZ#O=y*as>$gSC4p%(Yyn+TH_b=A~Ajh+G(~g!qg{a0FyNQ2iBZ zy~ZjVw-=q^iIZW>H-=xb`uYg=419WuywFAJtiE|BI%@s}vQ5+3bLim=h=LN%CBfi< z)vrR4f9H~K3Y>-e7yF5eDIE3WW>scUJDE?4<7+@lNLj;bWmkFHfxiCcHquf1KYt(> zxiXU%I3GW!mRa7{BOIeAO9ol06kqB85C|711rkS|jJcH&vpl)k|CDAE)b!JcGgQV&^Mqw-5JhuX)-0{V-CUbV?9EI?0(aAbSZQ%o{-AgFC_9DlC^*>s)? zyh{QdSfLacIxUC=TB4z^LK4!@Qx5lufpvHpggs%tNvoG-baQ@;eq|zXYVE!R=pm$& z*47-vda+oq`%dHzOjb$E+b9J4+-XkgM$dNdJZ9gh@~6l zx$0_tky$d+gBdt{P8j4g!+(drs$T=Kq<({-PWDFqJHP_2K;=L`WlR@L37>oa%GV;!hmLD@R{m5xpR%9 zS<+n4Xqt325nV!(cbN&%T_q#Ke*eUq=M*Nrn2~#1&$*H2&aJ%M9q z6Iu)W1o%IDfc8zwgMSoZFiZAs$$ecswh&nJ1bvnc{0w!>hizYGSMyRyTLEadex2!=Og= z{}(QC&Tiy`6^cI`e$G|p(FYYz;-7LvhnLZXiqE8dt?09gxqotV9$WEN%}A1#*$m~O z4^$3VQ1OR|PE4EWBsx@~Q7KTp;|o5r?iv5HnJ!tHTxn_&$sG@ zG^*8N;0wt1Aln5rj3y5dap=qtP)qSF*vI#4OG@mC1z7f*w=qH8YBZOPW_vrsj2wO9 z)7GHa%?1TDo}U)I9lQBLH~&!@3bCYleqq@Cu(9z05!f8v4w<&~18Uam4YcSE4hY~B zuqMqi+JAADyEIqcevj~xr$DPnaH3tnfbf9|XQe>H{%~-h-G{^&oU=?Jy)dE;hh*#& z=axx4>KQqK7U9R>2FM1el01W8)rg9Hb|n5~{Bs?wihn0r{!xAvqmRGOiHOHwF}~ps?#IQvt_$`O zuRL$k=ZuGq-vUW+{>)@8ct4jP6ZNa)jxms<*Dv};2^Re^$toE;<{!A|)Adh=Ci1t2 zn|~&EWPHh;7-#9ExRReTd-jQcWht&%Fr$ONd3rDLGDY?{C~##Dj*eI!%4H#oU6Sm- z{4BYS>mB}i#6OSu=R5xSo_~JeACZprhpgt>%+0lofx9<-@bYC-9$S{r=C%Cd3HW%y zwZY9>PR~SKk=;`K)+x^!}jk?q;c+&i#7MWq(oB-7OUK1$ z{+y6DCvyME2)F{OiI*`oas~BP7-glxOQT6P zo27D)(2(4-KnTjc2zoc8JyMNKR@21Q2Rm%Qee-vddH%EFUB)sS515Ud#9cOB@ zBh1SNrfKz20e7kq&{X%-{-{+evtn{{RhVzx7B-SjoVH30jAS= z6V+q@SbpgCl?DdFfgEX+ilM4^C7e4#1IHz@%57k?cipI?cc zd#R>f=x1FW&Oa5CPr@mTGOuVb1l7kfxmPf@B0>yt>l=w>D7H@X`Ze3Brl{wWqEJ0U zl6c?xeqw#Uu)g2P?-%L3s95*7 zJD$PKbCQ;gksZ$pC)-IjQGX4b%*%`U1Rp?X_J5TJId2Me>=k7XkldvzHJX=|I?u9d zl$L5T#`xf1u-Bz9V2vB1cbSeFp&ma4G$QkK+RRs#qejfU%+&cMP?VYOTfD7O1)cPz zL2)W7^WknRh?wb87%Jr$rWv_X?U^0SH$aKB>`#sn#$v{kUyUk;+O#` zrW%-C185iWlq?lSpX$NOs_4X#pTEmPZEDcLRGltUb);a7{x;{!R30l+jVh+9|9CmJ zKe@j!aer46XU~VQUO)HHRrBv4rcrE#f~ zP14470kmCKlgUC81z2w)Y7-&p6ri;%f`t+$sicizz&HUC$A4a28Th>*(?Oa@R>jet z-;AHPbQmE+hm~rFLq(&MwfqwDs5dR4fVuuqhr)=JAuA`K$?8!7y_0EWQ2`>#t|V!Q zCM7iSfpoX-s(dhL(AFd!KDGniX_INpIL7(AP_Tmby7N`pG=V!TYrZ#aQJ ziks_9QQrm+mVXup{=Lt_`r9Ct1_#3!Lv${ z&L6Y9MR2Q%^gK`4pS=8*B)~)=hV+a2<(srbV?aeHqU2g0kyAytXStnKN@>VIEtf$f z{=C3*M13oBCNlWBOckXrX9r34>3rHIc>Edb`$Ey3Il0BaNLsYS%`>$wam5T7H4oJoRSV=ZDD zFinrfNPp-HP$XXa0QCuBa337%7TiP3oP7c)-a&@yR0by^iPpPFVS3a`rYI{QOV>c^ z!JS`dXwosdzv&+UFS18i&m}G)?AaR~gEjXIQ~g3HEOU`b27q{VUa);DIln7Gbq zuF<7+O&t@Bta5+KG#x0ZSuws68vg+Belmm5)O;qdwD{30@Bon*iX!y1*taSAG_!e$ z1bENP8;6~$m`t2z6DzE@jSltF@xSJkMSh|Xu_6OygxVYwgxhMC=2n5v25K+m^@3Zx zVt;PR)gyE5Gjy$U3sjV-8J~)AFQxXupvo$|k92lpxh1$}Iro53%SZ0jM;XUFo{!Aq z!7G?545!r$FBg>x;iFP6bP$i(s&R4JHpf&?JM?%n2IA#}U@lafF#`4u2c`gcobc+_N)PAMMbW<{jL3@TqN}PC#?G z&8NkvPCv;REXXQ95fz z{j11wJC4MGNh;WmZ8vSFn!RIF5`QHUxz^O)0KG9qWHDDP0hhucD+2cSjiEO*(BZYI zm*%5uIWZKL9CkIA6z47-MpCc@k!f=pn6RU6N z+W1rN#sqmo_P(@YZW=_4nqWdwKj9My1;G?epj(uXA(e_vK8`R) zip-#hSh)2RQz zD@OmsFhwTj=?VEejhi(_nSZT}Ax(#1z@{kRU@>V~Zoc6L1Q$!%mx`fa;e9wy%v|X^ z5nM1#ECkGC^VLJcntc-~&8SK=LV84d zsmF;6S*MX}na^5LH&YgR;~i$9J>P{RlaTxc9}Z)^@{l2xtIsLswts_3W=5!{_zOQf zLVdYNPJ*qovs?IgdUjTwogJTlyU<@}XG{3Ebu|s6f^zQuwpHAw)o?LQfqE_$ zwU{hW)fzrW*?93~I)9sm@#6IVrM*AS7pL%d6WZ&YZ$ep$q+oo$co>FTSr|=p{m|ql zufqa+8^)MCrsPxV@%DC)ejjbq&p!U_{P0)$`Rn!p{5+C*9&JDRk$%2^4nL0}_I&Fq zjOHkm>3Nnurnd%^7E`Ydjif%FUI>FDVDKM_yucS(SM{cqBupFB#Dk+SKmhR zVrcpo>qd=e#7O+_3dCTA*CLvUXey#hG}xH5^b={j$&R#XYyu{1I zpzcej2FC=P=zp5fi9jK-eZ>d}a;cNr$b+U^tUOBZ3t4^B*}Tk<5cdekuBdnuhi zF;SGD!-hwF6d1^)U7<0mUQ21=5nh0#*Ansc~q^ zM1>tdt?Xwq@Vrc~D6)b`T!It%pe=Ppq7>rEjOheERODDjvQ%+2#~_dnV~l%~&Z1GG zVSGMx(|;C=y8ov5gQ5_SAS#|m*H8m07(_GpKp#ig$`t!~_~rmohO<>CegoBH|yew{P=+A!fITxi`0oY|l(vg40xao89Nd%YZ`s_IQys`0C z3_thHo(X7&v5kO}q=*ialYWMe9aDAnjlMt>7r;@yl1D)F5u(w&B4@3h+?=FWWGw!f z&ffx){UpcQm2u&RsCs~#`(g4TC_)Wms4O@voM3#rG~1ZQ^@Q~nZ0J3-cG;mdNHbZu z86FN8WhZ|*V(p|r#GRCgyOT=bhMtJ%MkLU`43E{hj{)M1TJghA`o>*YkS0m=?UXS7EO0lO{QD;-@BH~OC5#UQ&O79P z_Uyy^cdtGi?>|3q3%v;53$%mQ$`Quz1%iJ77k;*XvQOzw4_^c?bYUk)7{3s>fzKX1 zKYaJ(m2Y5HLI`LLx4F*U9+s6rx&Of2?~e~Y9KAby{_6FCtQ<*bJC=~f4$7?Z#C+I) z_iCSNAw*)QQ2!|fkc*0Z|MsW1hrhhV`c4j?9=<*Xs)F#2=+i_&w?3R4yg7Qke{u}K zY40%YmzRgH4?aAX5f}m&f6$Hl@ciBW3tiy3?w^(8)tjTkcPEI>bo9x)_s1s)Aio_Q zP{B8t2pxNR@Zrhfv)?H0wXW=V|Lv=jSO37?y&+V{(LWs=9DR6t`1S;vN8Bj-uVB=# z_n&f|AM}(QFqphMcyaLS(PHsIz-++jOS2imh~OL1?{)}Fgwo4Cf1IyQ1*Fq(qx>QI zD8&ice}MuK945a6$0GV0y2O_0fW}nvZ!#Ir4En(1!pIS~By0{(=mPdZoV-Gmz(zXbmh-t7sC zM_sVwJZReA2`mKNe>t^eV>P~K(aUp0JALVjHc+{1oj4XK=CO7Hc`z=F4mLIp5Lp4% zLp8de3=UVvS>c>&&T)p~HKsuOxYQ@9!P(7Y7-d>y6~BdpUxI(gWrg2g`S$cTnfwzb z|4l@H=V*btY}a)?i?_BufBxM6{J39~S6e$j{`l9eH?Z{df9K6>G!5m?iA;noK18$5 zx_;dHBBwg9leUq;59E*?uZlGjhbYgV+~S!=Y#&(IIIAO>7~6-n)G*1Cqd=(As045n z=*oz^7Ja)mH1?(C@atw$Ru3gzfPuJ`E}V1#koI~&LcUo1gn9^}wr=(h)*XG zrjGpGsoe}4e;a?tW_7E7>uxn;#(}5Cjg57x#dyv33=$mbHD~0l7v1EP#Y9Okcma?mh7cykY@I?XU zfHM|zz>0VeNRCaCDny1)qq1(WU9hCnzLs%_T`mTDf4>eRWCxLNT766DC{9F|&Rxqa zhAV<-rt)njCa;WE3oP6l5h6LT%XRGSZpn|c2b;oJEX$MUFsQBncY1bKo}J}qXZ70o z<`zIsLT=r+&zEc#=d*h=6k#lAs_TT@uuj81Sq4DAEz*QrDIb5f7ztQ|UmC?^b&ZqM zrLwgPe~7?$N8<}=*hln>rttiW>?B-fWuzqA8!b<-H-)1YKDwj0-YT8>DrBW#U6Ih|nekYYGBXS|)G{ z3;7A`0KXyK+`J3`0dCl7wUe@XGPxV1$E+9(HnUL11vs^@kx4B#TTfd zyFP}RJs1T}El!f0Hn`0?VNVe#^K-DZe|x%xk4Rfr5yDf>IH{dv?H=#UtY6@1yjYyj zp^S$+Qo-v_D5%~w3L?0oG9lH{Dk-&x?LoDdY!7<9DlA;g_bDh(E4+<_(Ni)l*=Sqi zP8)FH*07#qhGC%cAq&xPXjp^OV&<$9*|d&>K0DjWi$K0`QF6GIIg>LC@MiTGe|Lce z+HhVt(-hUoTfo5AA|l5Wp$yM-*vXAdaHzviQuH<3H$eSvr(go>5fM10XvBR5R0G0| z&3vFSqLw~6EZb{AbY(^lK}n6cmRUSxrxqVgP*Js5Ea>-ly-%1@`zR1{rbwa~Gp1iC z^3p_-RghzRyIL#`@yDs-UlgNDfBzi7RrW1x^BbHwJbO)=6l~?mb02n9oC(pfApw9{ zM97DI4K?$l5a2%WE-83}$yNe_i8zT-U)UDzJK_Q|CkX=zn`0%%d@+#%_FoanUP-3T(P{ zxomHCAEdygVOra7f68%_0migOn>V=R9_TwJJ+5bmZ}0{#fe#4sey&K+a1geZh6_pk zwM^ojQ4KoU4%Ogxm2-^oThlBPQJ^fkgm+!tZ<7H#Ce?n36a=;VyG1j1^ zK1LRaK&)eOa{uM=Xua3NUwUpcw2OJQ1`IJKV&S&&l4d<@*9G53q~)DI@C{8yp+$3i zyG_?j$0(pcI4kQLQx%tt*3yfjWF`4njB zG8@r3=RVbIf~}G3f7Wj^K^VS*ojqXsXKYhg%^c=#6dFScQ0Nsb&98#3uUaq4zQ$qu z{>+TepM^o#E_EBC>Gfce1XWVewN5U$S@O`m23b#o0A6s0h7M(mJYAZ}iN**xgE)>x z^sq`MafN16&^{1d7$?@rc!XeuC}iKK z@oX8PNh~DfF0(6#YWS5{Hu!S7jhRSwu9*#AyLj5@g%$H<)z7FYrH_LaefJyhpj&OW z`6!SFb*(9DIJ3~qS{7oB>3ICIC_W}lFC;#+05gG?f3yVuEEcda-|(f4jKrxO+o(<5 z?_N>XM!w3Ek()TRv+hqOjogqqfs-=ImO+S5W;lqMe-L_V8}n+-iZdkF1KVt1qz5PSA*ps3_f3eksm1JdzCmmfNe_;cSXoB}mnx|Ky zOj!TblcGz#5&2wZd&71~M8hjtLDe*(HpeEmqPVjIVXD;A+*Y0SFHGW4n{WCVQ4 zxcBu)#=)12BeR_xdBR%G>eJL9LvGssfAnbTrejPa&zlcNZyK2}%F0Eie%+>2l+1N7 zFI6gjTCtSTN}_PHZmYNxXXR^T@uW5etD>5@8pG9bjeK^$oj6}UPt!Wyo8Qw3lb|4> zQh-qD7`s<8)SOFQ%!;w{ILVEa#xOX-&C%$%jB)ZbXRh5(8PjUcH)krg)vz;Pe|(#X z&9x?ibGkz1nwXAk`o#Mq+Jn{xYm`cNY-@M3lPr?zi4IU=COQ<+7ZH6F(KFE?ANr%} z6Jp`&6Q8VK@Hx8v!YAvO2|C#NLgox8^o4_TDt$(r^x1nVP0^Pr2qLA4)!!d0>^6cb4-6=2(( zD^Xu6a5v&d!Uu1>SRa32pH8q(C%!%bvG!#D=}+XfUp1I?W-%=7t}h+{dK%is`K;m`{i@N_x~*YA$&31_NqSqt1x)&btZIYEQ!=&PJi!N~_1mF3o~y?RU1W%~d;CcizaRL;t?48Gv9eeu)M)hHoj z3{=U7Qy%&o3!1@a?gfYEEN$-QcJ9KO?kT}7MbwXlMj*f{_ufwyuvd))io9En&7sQ*V$zzN?&co z5NSw~WS%4sEibI6=lDuMOhxiKpj;~$``NH+^HXt}o}VWuDkzOSqkV*69y-~iVeLAB z{A5>FcDFvQf6h_J!!=orPJ~G!3Q_@*=E@MdfZ`Z;J}AjPEb^vLOJaa1SwKvVFj4~$ zJL$8N$0}{0V*4LH)TI!wQKvJqBGHk!TrS*)V*?z|C2%O?^QT(z?5zmevxv{~+wfy5 zcq^0@e{`iNT_{FXlt$1432Ae^s-;}jOs#6R64J_Hf9XQnNY_-gYg!E-)v!|Vajk1f z+qGD8^?Z_E`Kn5XDFLpP6{%8P>!e+)UKU?{li`Hw)0v>Qsjh9@uC04djfdmLo*HyH zo|RZ&joJF-YoaQqLZY}4qPP-%NQAyTot-CnRGv=HlY-@u&i z%?Q8)e}mG`1JxJhy&imBqx`G_QYvEMtk({bL$mf7nYBljDP9qZc^zz{;%u!#0h*W> zoHHc9%eu0cgmKl*mAl)v^DPZsk>(JO^I$aF@4+9i-kai)cT@Xf{Y?e{{DF6=frmY#?^)fk2DzNZD-U7ZuKqT7ld$ zfNsu{vj=^={u7nN_Rg!f>Dyq_c4V$d87;zA4xA=bURCF^Q>M zR_as2Ix*(MQS#4+x8vo*+Z_I%FaH_y$up)`v@t%M>D76!(2B5*ka|sfEMlSw7N~LJ zpzP1a2A0Mza`<7rBjVec6m5bwe=#v(Q2^cUZ^HNr;`?LCKb3@%^d3+$Nvwt65kGv( zg2l+x#V&6_6hiJ~ciUhIDv@4P_>`-Fb;vEC+!TLh;qafq!`lL;50(oiQ!M`(r6B~% zW%$onrD@QvtVCa3y^gw|s$N%B|5T6az6!hR>#k1E{qKzn2hh30+5uj`e<|ZRpcI8g z2oKXbJ7?0b!nMtSjxMy(;YXYtyRm?v;_x z1&w0&m|*pa&{cAOMakxX?wDNrp}{J&YHICw6yKEiXSyCWHrI)of4~0m@$o;rg&c%} z+fz9=bZY`k)n@Sg{Xaxmy=iX@bC<=(_rw~iz@3x#n;RaR>t&Lnvnd*)*jq%bzz6PgosZ}jWaG!3Cx9-L!nCs>) zWI|QlXUeVot0&w-e>q(FUDIu&8dIWLS)wt@JEppcVYtl7iI%wH-$4qveZ2VKAD#Gs z@0R?9Zy`|87xNrq^#C#^Cg(vjr+f!-3he3pFLce;(}|ncRQ}??li64Qu4!Q16o0FW ztEU*J(6>5cYCi2}5-w|AQQXph=rZQ|`@VmK{xC+IDu z$Zz>%qlfvbk=J?fvI?2U8eLT7b1G;Rwh9`E`(hs8JTUjS<|9SpAad6?HXwu9_gv`r z!a{684wXq-g%otg2GlXRna!Zo6s)T(Jd|Yv8aAwcpB8 z7}ac20%L4}e=TOk51G}hqwuVrs8>-CN;XP`rCgK>k{E>wXh{ndp~Wg32x=fZmX}f? zDJ``U6E>0Py{Mh9CR19(h@bTE5*nQZLN^)Eeb}!))Vot#)xz=WJI6hzcE@?!b*grq zovY5st~9F9!9297Jb+u*hC{Fw)a6_(cEYWUyj})kf0HiwCU;gdV}c(~2~BlqEo^LT z{lC-g-j8HkbL;%uhg-7B(D)`M*CMF$q@7T)6!kk1D7VFAJFrj!*+ICm@m-Q6MgK;m zW#I5;nH|T*2!};~{{Pwg7PhvnWzoN4a#A7{;n+#{ZYv}F5keAnNl1Y-ZGl4+TYwrP zQArM=f8hJu@64?C(vodR(%tr?=j>pu_jA^~ry6)9NIZ)x&ku9?Q<_3(5;f{rGL)qY zJ=<9l#lq2I_)0DI2o^=RB}DIal!76bHsp zZ%q{?D=be-5LJWp`ub|(*LmH3pmB(cN)t3Ve|DR~rbi}+3JvQ8i&SknltHJnp5IG! zvGn31c7ZWJ5AN(UQ4eQt9+K!~mIMinWBcSZ<7&dB1thvf#@T-7ka0NS$6=Iehqzrf0VGqzr2%jW!{LsaMV)h>#Jo5SxGW@R|PW&aWzW_gd zfB*goipttpx_dZz6Q*<4sEdDMHvWaKGEuMJ!#+x_v>q-F4tBrhVhd7*E7nl12MhY@ z{9H)gmf)a_-$G-aEsrDZiz&58j@LDKkfTaBqIZl?8=uz?{};x1y}!2n>*4jm!CU$` zI4G9@jvOH%@io!OeIrK#m_DB6u)`&Gf5z~`#2m6I!5hvRDNRKiEe#V#bZ}?+ZkJsk zqc_#|m|r2~= ze-ZMerKJ?jIZ>duz?E%e)6y_k`QH^Y0{C%dc+6E}?@Q_7^>wN*$Eg8vi8FnYe^if9 zP5_I(KEi+uI~35nA;V+R7MKC5K}eXa0Tr}{J2$>Z$#KQK)k4-1bH$4qk;yMC9AJ>~ zQhMIcEYA*`EIP&}>j?K}GV{@jp-Kw9JMEafWYg$PaX(cIBx5{5d{Up8J zV*&e^UY0{)L2q1FR)ICb$N71Df38X0bEeXeqrU(YwR<@eKY3Z3BGAJZxgJQFfcGjL zhLnbO&+s?AKV7W1kBrI4hiuf5LhEA!^JC z+e_X^B^#;CMk>}wRd0l~A-7WY1Uo7#^o9|M=r#f2Nd?YyaOY<<$Ln_dWto}PGbLj6 zwTA;4_B-Ja4rVu8?rN{@x_R@VAje<(CsliMcl+qOe|Nee36Z2IUTiYz+Cc@aV4qHb zI0F^=X0VfBWURZ(D!L+Ce+b6FJN2dIh)RPmUmB07Wcc!x{fJ7(Pv0;hG4o_|I>A&c zf~kJpkfdG?ll{6aiCIu2`^ua|6~Is5vM4cgDb05nl{k7)tx3YoELAVySOJmjJFH6_ zCCx=}O~Xj{8*EG(iq{9CQB_TK)R2Jm(@st48^$Jjj%%5X%37+gf18|`CCp66#8{$V zGd!u4GMBYJWG&Tqnx8m}+MPEprk;h4*Uyq79fS(XqtX{wcI2=!4kM`&b9^{pIh!Pr9AZP=yGFkrQ(o z_(H`KE%wQge}VflPErZ0QD;4yjA3DFYcYz;=(1{aciTTUvxzV>2$V+#tbqf+QdCU0%5?a+vsr_o(3fmQ%5*tOOZ87|i<{B&pg)yvHn zPmR)=e~$#K`0n=3o?UuZ_*v2mKiS#-bp!3@wq8Adp~mv0$p1)ynv~|QtjhM**4oS6 z4K*UFk&j04Ic&Tfl2(BUYD2>!QnV#{v^#nJeC@?!mUD(7{6LX(Yo=i3~t&WEQl2^m=peS;(a3EpCsJ=ws(#;9&hfgJ=)rUIc`3NbM@n^ z%^f;VzvSbhh5jU3XJc~A&`O3Wxj`pygBZFLQ7A;F5Y-~VOPRvy*nnbr(R!W_<5An{ z>;-iNXJzZ?#oAAsPuK8Zsb25ZT9J4l_HjIlPg)pE5J#~NZ|RHpeR{&Jj&U$B$TA_! ze{QcB(>O127Ef^&+vixWY~Rxd^kVyH{n^@!ryILRk2m(jRf5w~ToSe@LpcqT3Ngtz zyKG@#$CISArUotHQo^q%+pk_=E3ftX$h)N4d|qN`>_D_0BN~w60PD@NyDpo3k=HJG z>lj+Z-D$CCwe@CpwqGBi8iLquJXtKte^v|ea_*>1Y_OxUgaXzPVTXeaq=gnp*d9PP za$MJ{ic7@tVLxJmGl>5a=H!*W>g4B_a0kqLw(;RS#s#b0GAIn!9pTdY?oX^B;_$GX z@ZDmJqzBRT>?R&QkEX9nYVb(qw~2MyS1f4!|e zg449M`FxWdryKRhf>Au#)S(7>1b`!iw2A>gp6qOF{JNo+ERy7p#D-;0cQ)40(eoZ0 zbtv?dDRdxBl(~u=;Z0RQMK9jMgJuC4+O(rbzfe)wtJWh4v7T){7NdjQXGp-Yp@{;p zLeFvBumoqNk$ChHMuXPwBDV!cf4gx7|wHC6VYa!@@sj@HdMp;GpgkEaX*x7(x+5Ccf*xvTjr(0rO5LiL6z5L{4B-W<2Ls7T& z!Y_9=j-G9-J+>>nERyACf8+^Cuk*QO54{4LgG0>szmOH-Fl=eU};-xmov{FK*cBi4Ml~ zHJ+oZThH{Q;q91f0PHl+Iz^x2^zfdh9G;ImG^+jCEBWcpis*Io#hiWJ_=u<;ZalA# zIvI~Q);FKSJ3HUef4G3h0@7f?(zEdygTwIgI2oj8@d%E|ko_u~y5lIpi>G_f>Rq12 z?||wU1GY;DJu(YgOxlgpG>+vKCF|!>rl2BBJmBpcOrF=t;lm}`vNjA-T5PE+r@e}6w@u3ax|=l&Q=Lztx| z7hZ}ExucgwewLPr?|Uk;1~F!pvKcaE(RumEW4^ypvquY9jNyPZ)h@j>NnxfIA4w1S zJ@hP^CH>q>xcm5!;wjMYz;Gp;_Nx#{yVNtIfuQFT-}j;0B=g8Rb>yL!nKn^_xCrQ! z7JWA3EPM(Vf5O@DyH&Ig*nPH6#5O6`!N({s#qY=Q=jyZ>f(KCZ%ruJ|H21r3byc*v5gUMEBzA}!bYEol9M=Fy`{tH*w? zBNH)XQ8$-Sle@@AuqBX#6*2&4Q{kaTnHHH7R3Ul)Pw<%cNL4A-~$v2>$u* z<_4-|V1RqnqjijLT;+gij~+7yDDmo-Yv~0Ue{b6scP%KJ=QcF~XRAJgyBBsJh|lL~ zhLN#4;(IrN_J$=Us3qq=pXYB=NPyL2oFh?ICa@917m6mI0dO8AMVLgZMm!xU!s4O8 z7Z;6~;E5lcB-QIAc^B%ghNSi}DW73Ss5MuiE)&kE^g03kAL-O36&0muVf4#idblh; ze=p(d-~LzMiXeBgWy*gt9*uq>O=f8A8!5rR>z!sJSSwsf#@0r+kZgOII<+?u-tYcnUvH++UYg>jft;rChL@L(ZY4UBcamj0^fG z;SQD*odJ_8xWh*ezB#260?6jO7lif_e7h*(^AJ7Jm#yms84dyZH4mx1cRHrOPYM>k zm(=S8H!Ga=+IhjhSxf)nllsq?1$A8;v)6q$VG+r}k#ZvC*_{krmlcc|OCy1>*ux?xA@Zamg)sKk@6ggG~Qbp1pDN6aTjCDo&vtHX#A zLmLzdJ)5V{f6PKeo7iQ32<3k~^`?k8Vn6+_x(}AR559g^k>%!2ap-B@O zl-q-)Z@>1k<*pwHx={H!6ljtxDX z=VYX2A@(xXi~Tl7e#T3p@GT>}I#AwO5$YrZTUa z%KRcTuD+RI!mp~*u&IC2X;Vhpl<`|r#>kw@SyQ>JDWh!47^{g~G?lqjvwwiIp9Fuv zuKpU5QEZiO?rsY^=-_b;K1lm-L7FKrwf_gC@^U~1JZY-CRe4ZSq%L;@qzDPFH&pmQ z6;6370e2WHa*;J4?87-S1B}^TD62LnEBcAXu9B&qmWsBr@(y@8 zKeT|lK3giw?lMNrrOEE}GgJg8w2dM1;(-M8)96V%+!?D)d)PVFi2pF|2 zK1VpwqA&H3^{sDYV5WLy0Scl1Z?ZmX5ze)93ADo^UiAG$J_ATM8y&EPT7nlPlO4!J zIQk+@t{R+rbJ2g`?5mMoV)!=v=BL_P9iLl!W7Y#$#7BVG;46r1q$Jv?f>F1Vg-HGc zY03GrXvjQ)VV^Rf!xFt*YS~r43Rz6y_HTKbu||JGy-ONp2~&IBI5nD#vNJ?_ zh?5%&f+Xr0QzQ!nX@8KC2VR}t!hZc&;SDH?ys*mD!;9m^guE2Q;-5eR-|Vh50qNvL+lV2Ly<>*JNb|dXu-%y$3n+nT+H_m?)-m3M|%k51e#0}B{9y(c?J*?-qmpy zKEpv9@T*_6HE^0XEysdJ05Vc5ERHJZFZ(W3H$ zEnR;obOc;o=u&VDr@W>t0e6mf)i>a%Qq+}%?$Y@^s1Gd{IUQAU9qi6R|+zuDpU$y_r=9* zrKHp6Zi&Jk>jREI)CSCwY6Diua=^Wcxp;quo&e;l!NIs>dJ#}a0b`78c&b5dc+1!!`U*rYE^_`F>KOtMUL$`A zGW7BU{rhWTed6wEkIH~Iz)cDUQ@>IvkP|zPbD`g||J% z!f!|U;GMx8O52D7$r|dd@>otgCubY4(_wWA=+D>s3iPbXyt@l58&yCjoqw1*E>Tcl z30!i{i0d0)`ar^tKf86tT$IM52X}wevf&Ecpdw#Cbi6gu;{X)g5j=5e+d>}|uR~c2 zwV-_Q^D`zc_VxACO1_kVo$Ieg9SKcC4RtY#Y0wic>2H-RfGlDOPJv#*zd_aJ7m}pq zbRh!{5=Nu6REWPdsR$q3v^~P#)vlHUcQZ;R3Lqh__;!RGeYzkOMbkFpX`z2aGRZ2g z?BEHT;fez0UNTvABq{^Qe!^XmWj*b%AmIbBGE%=ei_2t3w-G2vD#=kIGRkxg{X<_y zRnXWC#3oW~(}O!_7_QJqh(EPd{DDfvQ%jW<%G99PNb$LHt|rvwc+xN$EyZ7Z_EfS;=L!>>;d5l(_p8_r) zdqCb|uCF`(R}a2{jn^v~ZL8x*h5wDNp0w-8AcxpWy%i&;)=JnRc^=St^~>!6G6R@P zeP04Nw2H}HSliS+l+l0iN_~h5Y$CV>!q)<%xGDVSv$(`EnBs(Zi;KAWPjPzA{2DAr z$2UFe-RA}35B6{vT1CTQKR@AcSc5nmg)ue`s&6NRc0;{H;fX+=8vL(>V2(;5{8z^| zP4*2(F^xn*G-Z{HRZ+Mm;lkzAiLlM?+X@ywX;$;gmIGXi_KwB0&b1o8si@ zaED(n1yPWGZ3`Y2LFgKkLLe)5N@@Z0lhA|PpJ;-v1b#+Qhh7B-*ur)y1M{65Wk^<| z?gNDTO~8&?aR7fg>@zcBM-BD8WJpb_3AVV7@REAt0cLn9a$HxtD2Lz3$V`nMeL$38 z{qFDo@4>-Pcw0<$m!WXj9vj5YnC&wLDHMFrx<*1}!~#=QkOS?|Uoc}x>ZM^4@o>0- zcphpfBpG^0rA)Sv@cx}L_Cv|t&@t3IWI7e>qgLHFaPWTtyppdxUB_9=Jk<$H?Wsao zpm<)1A2u9nR3&#j5N6713KZZ)-%bu)u-r^pv1_vAkdhJEg&d~5hKw_M1qYfkTMvco zy31D2C?91O+s&-avN;c1(`3g0-DMe5h;D-uRF2QjM=5fG4(=>v>NzpkNQpn8ORkM$ zfiV-g#0|wLNH4N7zL0sWxI;sQt;vkXqDe7ZkShZ zUDScy6l+TaDY&(mfcq;-D=pd6m!f+4d5xfyCP84D!)>f0#lA|TUR zf#Y5#MYT5kEgryGL|^65C-d`=WK2_d1+Qz1#ueQ&ZtT5PxUzBxLd;qrGi>EP)>_43 zGbpKB_LOiX6udZLVE!2G4!o(G^%CK^^6zS(p{t#KCv+?aT%n9|9eDsdrI06&s$PG- z5M{l5Dbm`tS&AYY>VAI6+tovJi*S=&WNt%VEl2M$h0fB2sOY6yk4dEJ?5BrPLoac@ z78;0J^AZ6XRg}ev#@1dpk&hiuDqY4<;C&(~d71t;A70|aq2Vb>nDyQDLIW2yfzjgP zj#p3h`}MTYkZfuImNj7{VSOVZeD8l%!k=tU@+0!TXva0dG!O0MVlqaE#vSkaGDi@->S1v_`q9hxSVtI%`+Lvn>N(qC#n=Vyh zwbJS5^+Ot>NVAr%ozJ+J67)(}M)1!tZ@Pl>lJ^tzV6E8=F+Y>L>AjPG*%_?{VA}U>9>Od@W zI?GhKTl&`j>RZBo$5lEid1;}(4@Ajw7brd?{4gAQ(NwO&+_FLA`7!@|Qp6{u`i$&Z z#{pXH!j{E-6T-K|l7=?q4~BnKSbtmf!seUHy+Gzm-Q_G8L>)Q^z3~bh#PQNnFj!jh zOGDB2*c%16oMQRGO zI4ksd<=Hv*+fGHa6kqBF%se=9=_=U5YQ?cwy-KMqWV-%|PTg4`4X%8q>)+~`OO+oa z#_Z%1Y5h1TA|; zQ~4)}TqvcJ3n-~@gVuj^$9*$Q++(4R`%{OaKlX(;nEQ8a zI`NgSO;4je1JjyhtJ29xr&(XX-Vv&4tc3MIS3Cd$JE;*1fY5)mTBZ?%hS*(b8UqFd zvlaw#@oMh(hbcn!8ZQU4RJ8A(bv62#MexG{$iakO<79a)YH9Y~mW()RTDa-l0ebLF zyD)fznumsy5PkwY-S&>LS+W}Ql%%C5!eZlUf<`hqNfVzqQWRaNVKCxZ$fLWsV7R)M z%+l=&4j$oL@XUWNcMtAN5Hlg(zA){6bh#IwAa14%i_p-eH`jt0_H}+xhibJ}NH!fz z2X01qsXF}f>W#)9j7D8>%xJV|3%)?KurQmKYPK{JWGWF~!#(7iu0WFHYFQ>urETI= z*=UFP;9~TdfjAXmLiUe>Fe{kZqxjTSopu3q5UN2XUc`Uz)M%Bl<`X^5x4RK#^u)%g$(V_7pC*mdm$))c zU#;K<;t)c2Ti(mQ#NYH(q!aD5rjsJH!SRsXWWA<0H_#E<`d}x>mkFvl@TIp!Q6G}nD z4_g$p6xGUbFZL#eWcSCZ>_*WI&|l7%H2B$&E`QK5bM*?a!@rkbU)R%=^d<3qnqo~^ zPb;CiddF4rP^gSO&@xhudmsMa1(?BNVr^Ac8h^QP<0;f z2K#?2m@csV|IbYEc*9Voo+El8MKYl{Cw1TYIW}J;D4-nfk>x8)3YOGN^TP!S_T|hA z;z(NthufJp`W*In2tqYMcwpg`iD5oEn=m~~G(A-<$CB)8Ife=V5+4h4t%Y`)R@zAC zl1uc<;;Cm4Te%fMibovn`Mrg%E;{se1pj|AKST>o1tB**sE`tu7LS{<(-0X0ZdXx4 zNT?}9t$HRsX^TyRk0n6+7BrALH&dum3xfFJ$J5)Ma~SalZweW14+E|>H6*sT5rnBt zUz0!`bzMf*j9c4RZ;fki)mncu zRK)z%juD|!U47=Ki-`wiB1h1z*p;20&REM;gF?i-U^g46NH1Ar<>`T0vVIoYohxi1 zVB83CVI@x@iAs!5==LT67YuNA!LlwWEN9(PMrp+IAeKyHT4-o-{b{`sSMW$(ROL7s z3(D4VnSWioXgdQdR%|xXZW`wMF82xYQ(Zsijlp74~T1K9L-$NFv=ax zMxx0yfP1@}DHxkl$|)^I2w@3YTrc}3lUg$04>Y9*d~ z`m@Qz&lP7~=?$U9tQd=dDJUV7@_p z)2Xsz==B3k^7HV?iH9mS!jUg&>27R2V8e}}n_ZmRu2+Ns`(Ktz0_v4`KX)*gNzA{4v6 z&i$GOrLH2$MXb`g)6r4$h4#qKDb_^LhKLzu!0sI1S9|mDd;RP%K`WriRWbS@xy0oz ztNa|TX<`;*1V*%th&PH5(L)C;`?^r@hYPQ-g;?2+V;3ar=bKKw|Jr{{)$7x~i+Wi) zu5X>-8DoEJl2*&5F%#G@Ihk+2F2!xtDhT!XdOM-@Xfkzgz(TD(Z#V*Qiizh^w<$0V z7&}*L`}R$<4-1PAEVWi{aB+wu9mL3VVeSY8A>qrQ$4E=~2+Pz1kZ}h{_^xRhbNl&{ z$HUO$s$-lr|FGvc$Xsm*Vj zBl$WU;xNdxB~g*v!>PGeJn9)5%bml3o1N$zZ<$!XDp1ZQ=i3fB&f^t|`hI}h$ z!us>~lG9qC~DkZ^7ove(Ia2rL5p-Ir` zErB7=*VoT<)rKb;0aZyMrJ{rP-yES!N?hSLhX#nyWZOD^oSRj-Jdd1Laxq-U(|Dsj z(-L6cs$uXOSY?BMX#nSmSp*3GK|nlZhV_t4kp@JootlX-H-yoRhHa>>AqZ>8-L17D z;Xa?j0t?xUV!9uhpwdQTf6}qstnb3N_LD=~AVL#VhOR378fktKH9nJGP7`tFI;zRZ zaYLYKjX`HSzVI|3N+$jH`#32sg`gi!^FD?;UM6hhkX-A3s8+V16-UHi*&_2Pu0^>0 zy`l%a+_#DxYU0@@S0VCI4O=O<6=9WIcdxAG(02%zW=AtTJBSep-wvpwT;q~h&G)Tu z-D$e6oWn~uPMRyk`oT|C`-kX_hx5=etI4&Q(ygTc{4{W;dJQYze-p^fn6Waj6#v=X ze!;+pM?V>Vhble3WctV$>g@XZiUo`i#&YIv8y++CLJl)Kf!)aj-!Slq9x;!&3Z6x; zE9uWkG{>BBu$Cqo(0s;mKPOX9jzzdM_jUeME!RtdcWny{47rK< ze`GmS2mFrA-hevDs~m@lJm&ErVIg##aw?9I1Ri&P*p{GwH*#k2EJ;sJE2JD5ysy>O zd|oi~FLTn;XIG1?UZMgK%owmB&gbg(3pj2R*&6UaVn#l~7zS`))<-E!X9td#hpZv4 zrNl(8G^*uM`)yuT`5C!bir?n%nXIKmxcoL5q16-%vpq!Aa0G|?d=(#Q-W0|d{AHWQ zzeJgTOWwG@oGm{H&Dk$Kpl#c!T#G0C=kDd`Z+u})_AgV)J)#k#&p}ONg3J9hyZBRm zkUz^oj*{aFkVZh5&)}cl!JR=Otu13f5SJq_hh-tRCI0;fShRzF&kCFeD+QMbipf&g zP-oVlw-R(A6)c=1J~*rJIv-MSKC9#o8&z^aw^V5jsXI$g?F zXSET$kB;XkHg(Ub!{<5qdp`ks#6re=CVOdc-vUQ1dUN+`FggG525KWnP}~m90}msF z@NQU|kaEn_-tK9VRHisWI4W`#+^-JFE)&LAmOJB7QYzC*p;0+WqLfkQLgRx8PSD(c zL-#xG)<71{x)H^`M33xJ;2;a0Ch^c#@kPfyFu)0t<|d#_Y$AB(7HbCVouIn^U^&14 z04dXhJ8ez(itkUG-6Gu1kQq9mMbhlD@i9B-=%7xlCEo@BSZ}WIwuX1F*tLbt?$N0U zF%U*?@}@V};X)yBV?i|*EZM;&WY$}MI1~?#STPCiUX_!(SHsDhAfDz@2#1J=GNVH| z#q|)5EfUc@I7@tbt1|S*tX84>W9+^+PpeS)^k!p~uli4f z8afZ~MsSS+mvu4rV9hNrFvJDNTis3=`Jo~SgyBlhbOB(}y_POZKHXJ;et3dpnlk~X zUN?-6gBo(hR3HZ1umjiE-36z?Q-7+trQ1o9y`HRWJx$t4qOo1jq&C%ml@w zeM9SIh1pWDU}zhuGr-RxcM_UNC!v+*B-C_eC_N)-id~5iFRAM;)CF~9Uodu&xHIsO z=}tJE^t{bxN24gxebIM|;V|Umjhz5TH6~IgHxzshEHWoe;mE*$_M=VY6AxJoI(=d_ z^E0s?GLomMimg2E2$#xC6I-UE<~1K7S8}uNns)Ad^AzfiPMUIzm_KG?X50L5$~SuM z{ZW1ShOr@$jx($157?A)q+$lQikn9=6A-P-X78BiZUusyYWl07VrJS0(Y@?0&_^5qSa? zUykdf5MyCpB}?0!e0a)$M9wn|F6WbI?+BlI1WTJT=93dadlxPcgg1T^r*;kkHhh}Mw!%%^)Y=$S7M?y(|vx@a8jCkn7a1z1H5bc9T zskZe8CF*8ROy;Q>0;#_0wt2$dQ9erg4C+!F);1##@x|9FHm~%62ROE5ugLHb2O8j~ z;`oriV0v&iGA1HggRkGlXXkr4VI63?im!(e(>kj2owaaq^7UeRu~VJtGS^q6h|1LM zCUqsxX?TTy!Y1`p3Q6n<(K35(*a;8EiXk|`>RbwyJv43SsmL!^;Fl2#$A0G@Bm-uok>-1i3}Y7I=bR=)cvhs?@$k#yT2Rc!Ny@A{2cC| z!f)=m5Pxd{%l9cTpLvf|cHbLISb>WD2x|zvz_Bo!aG6Q9R3_Q7AL(zq=_az?+Kl3M z`;$XG&V`B(nqiz0+q{6zkI$kZoYUDhO#{e(kV=MMu?-WD8zF)_YF9Kv%}leE!)ak= z5}|EqbFX3~DFm?}vd@YsfjIk6DuX&(EX3(CaiiKw6?@*FHg&y4&O$JnBMGw^%63|N zCajq+jEQnydH2c|oBODm(5tJhn9!XX156Fs3jHk13`N(vu?dlUb&VbGWuyA|;Qo+3N~-wbS5IC(-krDsU5@@l|W|Xf(xtmy&lg z<4()MbS0W%(rK#X&9J$ZLpN#cXo_lHqT zhJ#(ypp>wZGe{BkPjRVQqjgZRQ(@sG7?hFw8rtc*uz=A0maF;wNbGTgYiW?5;*%lm za5Nh@-Lu@(_l-qrj)-9O=7)lRg|2h$fAE|dx^wdJwc64o4$00gBSsho{}UE{bip$Pk$_bNV}xq^-mq; zW9%PEyD&bNP>SS=`rHT%mrehfC83Ewqn-k71Y`!<=M1Ey-*U^Fr@g01-pR_uy?F z38QkzKo*;w5&cFyZ+~`wCw!^gz3@y&H#|r5!*R+u62udFq?gJF3xx(6$Z?hqTw~2z zvZjBl>S16|?Xy>EAJCVMDWQ|mXJHBmmh6h34#)_1Nxz@;!Vztlqad>F3LT8u6Ifha zC^Y!hJRMnvW+T5~GV-@$E~m{yZ2drk#6LKnH!Uc8_iD;yCaoWT-b`km3XVp&PlfQ> zfT!Y#jPo_mVdF1+L$lm{gKU-pgUPcsir@rR+99-TIF5MS8k*-3kH&*`8>Tr4oeW$J zf6|+0892mpF9V7GalE6OF2j^&S*B{1FGEnfTDnTQIx@%{b|5jNY1_cpEQ3N9gLZn! zO0H9Qa>a8X^$sI{gJZ?g5dE);u}Q|Wtln;=6RS0x6UrcprV9)#7N_=keZ7CkNcfDS zQP;58gdWisJHmbAwZK@N5=w>p9S&_fr4{US%6O@w*`PLR0})0a zd7||Ujv!8dH)xuu*0#to1kP}>lGA)NObR(EEln>ft+F)s3MJ@;Fi>k+XoW+j6%-UwESmcA;RCJzm%GCJL1BrL%43InTi6&YVoCpk?f{#0U(^{-aU0;m1K%r z!&JiYz>t&&b-`raC`HCKkf!?KEMBdOG(;6z9Jgrqg9ZOV;DL&u6AOa!*B#JZz`Y%ld8 zKb8y#w{42J|%3d5Tr95#$pO zI50V4jU8Yiy#s@d=I8+PSqHmbBSqAx6Q+?xE*&tWjYx9u%;mlu$Z$zthrn$d5|G`0 zx~rjRDhs7i(XBRkvxGf(GglwHzQ%J5-eT^v!MiN-BlF~;dBe}1?vI)a-E^(CrsHhu zzGeF zVeRc(I3g+O#Q92*Y)ZeSCTFZWNuRcVAY_PWZ9_dWiB>17_&0AcN>CMi<`&x9*U;OB z!?^@eZ$?T}C)|0s-GB~cnF&f`|Be_nQ`Sar#`aEcS453@hk~0~>E@@Cv3Rr#Vfx;h z-GE z?Z;dhs$qgN&{X-D0CrYL2qVaZ_OcSf)7&%5H~K!dL%7cslfn$ztkb_{TxB!ZN<-x4 zCIOv0jI=`gLRZk|HnSGdwcEJb6Na7UKGr(SrCIku$iY(gL66gTA_Zeb1N`CbO$!-) ziwQ`?G)#D_r4<|4e{X4zrLTZaD6ByxUr&&Ov|pO zXXn0S=8-*bsCiEF(~_lUOj>B_Nb~e5HAyj7s0}#v)!Zb%iCxRf zU1vXuKpckMu^prXxt^%h+C1!_a}G#+C@!aDnFFBRZ(O zzJoaHO9KEj2CNc)dLGE!Lna;E>6zBJbRLD7pdl+1(o3BK$h4AdyDlnrUZB-0q}vT!5lrNy+@S)k=Hd@c&2b%n7_&LH8*c2Y);Oj|oQ#=X zRco7zXNBB#w)Un~!RKDRZX=r22Je*4YWAXItGFHfQbl4QZBP-0q3hW7z%mZAeGK^I z2uy&E$CY;%tqZxyzvV+7vj@S$PRHSWb>Y6P|1nL$V{vh8GrGv67fR&s$%vQcImKw^ zC7U{d#rxcbDlO31d9VL&AH35u*bsa&6qN^-b@E z$c6^q`Jt-}&6N-Cons1`Dcrl@Y7n0T$WOwB&cwD=RobZNAoZfy5RMSLA3}?{hodl>Xa2mkp%!eY zW+4%dEhwz5a1|A^I>+qkaTN}+d$CQj=Am)uEZUIW95Wh&YJ*!1TQ%zBB{w8C)z>L* z!I%?4+C=Co7RZJlkb%g=8QjD;U3|GV3FGpbJUhFDjk*w6=TgTm9l$1jfOOycBihOO zL9PXV3c3Hkp4VR(oEG_6avd`bHoxtEUB<_8FO`B8;P&b;TY2`4>InGOw0ET|CnVyN|=@q zsa*^HEji9+Q|)J{z>-Z;@B42aqR!|zV}i?}=IvTrI8@nbDzcuB@btijHI>5WocZnZ z%nCZrFQ+O>J2UHH>hY9Rr)h~{Zvt(|H>kdk^$~1L{2n^B|K0WlAZ+pKrl5VOZoi&? zH993hYk<%=ltffx*U2H~@smF3*{a}?=E*y{O0uwKlCVvFU>INCmC5QO<_#}0!t^WK zGx*Iti6^X8#G+VIDH=8hKf7V0ylmKXV+Ke5_sa5@%@YUt8Dfk~f9+}2aFBod5qCs; z@K{3o7@hpf-*cZbKOo&0?R=dd;UnmOswQnIv9hIdC6a_@mH4Le{*u!^y{|kZVu*IM z@trixnjK4+AwQpLdcRlfoc~vDW+gwTD#B$Nkl=_2 z5odIAaA)=I)l;-a7D>TFe}Y8-;th(Fs!mq!vo==WAP)Lwg}re+urNN!#o01{!qXxj zQG*rKU}c~N1JXZM(Rgw3X8?=i9@T68S~2)tjLFA8OotY=0zA0Hr>@vdiudqn0G&)3 zN5qhLLNCW&k)E6+NCN{Uz;a7KK1M^HLFa`0(or70)qA?W>IC+#byB3mZJJoAA`!5i zg`CAj`4e}V7wo$dJwLpfP?Ljyd^A4G*dVPoSr%ME-mv`UuOU7d)CRw2+k8V*Gaulk zI6JQ{sg#_P)s33$q%?|&1=dz0p_Z863)d3x>G4nj<@NR3O8lmpd2NWS2a$e#P2bjp zXk4)1LQqutWz z0#NYQY5YEE#aRncUue@mxC3{sI&CrK+qgIxGh@JeK<0VNtl@SVL<8u2VlUhjVh)L$7v0rn3kH5{iv zmrgTuN$R_~f7mz^IB;I4VZktu+2J~7$eG13J&A+fcyg*JdNsFycgL6R51aRaYH1!E z>=Qx}7aD3)CSH1C@s-k>g=Xn%p5g=!J)Xs+*SK62S@4;+t#X4KbQ{z#GDScCCovo2 z;Gkh65mSFVPDeu;)3fSqB$Ny&mNHDRC+Hv%A-JMnfY!tLG~tKz-c77j_A^Y{K&ok2 z5XL>GtI2%w*brKOd#eP@=BvO?^h;eeU&j};p|Fz1bmzrVVI^4nFwQSi^3iG0ZU0TrPV0L+SjhUSBRjWesg;uO2ykruv9xa~35 z){)<#_{7zaAHw`ZCY-|pUF5|ugb`hd14^eM(2%rHprqU53Ktrhge$wg{bFxz^TjSP zUC@x@$VlPLoRVB=>1{{zG`{iUtFco~g#| z#9d@Mmh_r`*Sh)okGY2b;<4R{nY57&RR_XPl%U_HZwA@r-f~5c_O`7x6)Ci;EsQ>3 zO?YLV#TRA|_rb({OGlr)- z8*6(TJJvjFsZR-+DcrMNjc(eLd%{yo=p&dq?UlKI=KW%O&oP2p>WjQGdO8#wCn5#3 z7SXRt%AT_<$b%v%N#{X4V)Z9Tf5tNLjAeqcDTq2`dWtsk$W8F+E#;!6T$S?`-te;^ z*0pgMPg|{Vm4X3HDkOC$Z+tT>P2`pGwJz8oIn|>Ntq?;i_NznvtuFgzm`-Zwa>7;< zmQ}ic>k{3ivb$;ua!`p5D+@VD`zeD!d1O$h&)_9Vik26mR;j_hx07zBix$lOhMSlws7%oSKtwKfc}YW<#ab zH+~R93-^o`2vuNB$b$F$U^K1Zay*2$wxy?k09t{X6_P;J+QJ(!;+hv;6G|DxqQpr1 z?OG~7C`EQWg)&GQ@{pm8NIC88CR&bUzDa+61bQo=!s23yT1sTAjOvi-h=pGXN@O5A zqS%$1f{^-++MVUZB5VYKkN6;$rlGA2Ax)UJA!CsxES|K$_?@(xZ;e=hlv`Ti*0bk~1l!4$2Fs_&DIhda5;vz+3McF14MrA?<x=rF#opeY?QRWpYk|?@~N$VIFsf^+da88Z*nr>tkM4{)@YEV(Gd{h*VmT` zXOmW`!6p^lvQN$o{X23l8~Bg2=-Jz_C(Sm!=0?#wzdX+~;82wCmOVJE zh$8B!%bZM6^ov@10-89YEY1k?212~G`PrGDgKMb+YtkyBjd#oLs&JM4y;^F3z3Jx2uy_ctCI)(;$;Jg<=~s zxsB`B$6~OIS)H19awx$j_yAV+Fc;pU4t_G z9U;*Dt>@m>&!w-!i$xQfV(wxTc&>K9YXAor(9=9NM0PevXBHN5SkOI!qU zrRTF*kh<`M(-4_SL(qCDw4zbtVjz{jL`EfOi1IlPl)!YSrlK4oFD;+Y>680w@dn9; zTWx-=k5tepd{A!edKR&N(vaM)wJWKbPeBc4-I3Me?b}Y_|Hjlv*0eI=-#u zKJ`DKJwS*gA2OO5$!C?RQGQnbUz)o6uaIJb_w|>d#)1Vop6lxcvqv-G3BL;UH0{zY zE>6u}D=)J_ZLJUPxEK4Ed<>1Ta4sjfb%3OdIb$ z`Llo_rUi{gOZ*|ZY+V4PZ;jEhX={t*4}QD#1Vu$3VnnaQuyw^xRoFsPkx|HpRJPBI zVFw!23|sqGtfR1hh5lWG7WEgl?(MnEXUKq4-=k z)m0OY34Z{nSG2X`jhV1cv}dNWN{EMYPa#@UFN@?j{cx)WSykCA`!pKg9UtGeaaL6} z&OW8K6CEFYP3LM@tA-8Jc8VtH`y+ehPV?_Y@ zO&}wf6P&$YeFB!jEqDdhEM9^6y0T&DRD0zj2OGdUvG?>xz5x0)DRjP?AK(Gt2)zu1 zlcr47n}=(E;(sLK{I$o>bwkWD?TKMb8Vn#g^*QPbRtg&@pFXvKWPRdM#I`I-;b-cj zxpOmxt4u6jBN>4b^2;=V$AU2~knh0J?hDLU#ThY=Vp>IjRLpt5Kc6*g&y=x)_&J_?(i!q1$B~HH1^lhkZY<-)CGAee%25Ba-45qUShYy72JP8WZ-G&z1q)39s;B7<$ z?s{+bGki_Rw7-2;E)M~be51I!6DL>qL~?aa?EWKHq(5^(PPB9D12Q|CzkI8Kz!gdy zYONuE84=y+ZYBP_tZmk!0uahXB$3$KtVck>IF|6}QfU#)Q#zOq=*<^wdLd5b?j$8l za_txw3oz=JTXha+_J14ijd@CkT6=VAAgt zRn*z)jQR|p!%$xKi0c?SV&vwA5h2b<@;V|8h;^1%j4US32eyBY;lBmyVJEu(5J+i% zx7!J9u~!%AG%u7U+KGq5N254!|WN((~36fe2z(LYM!#O zt$6-97b@EHEhaB}a?PFWx94tw9oaH}DteqMtUW~~#u{U&tO@K(6>@8;CPG<5ggH4{ z6NkorqqJL>lrr_+APz>sFc=4n20D#2;_dvC3sKKxi$!$HgCgDgJxZ#JB*{>1nO?$D z@3H7}?fhfeV=Q|tr)n{mqOa1S#Vk9B7Z>B;L^eK@jgO|kt|QU31p zad8;Dm(34k^W&*wAB)zAzL@$%4S`kst;~`GFXc#@ElIe( zP6aJ*XGy?L)3iiX9elq-YhuQKh3RqSRfR9@n|#YdvC1S|7hGKz6Wd~Et!eC9DG-p{ z;<*^b2J;KK;Q9HOm}A=8J4(wcAkNswGL#j^_+Iy(;umjc$WLw^-t(1T)mU2!K$h$! z3r6l!V?*YKQxptQo}t=r#+KpME-oJTZ3JSfF@grxfQsayEVlr;9>*tt2HKX*(U|tm z*Bb+@fuHAT1`M&!P_i&4kUcg|pkj9)a=q4pk*_$`BL6(9iGpk%G#X~wY20R*PySp? z>s)dVaAnS;a~C(^J_=jzV*tH-gjsT+=H@FOFD{NL(whx}#{JvclsLDsVclK3G{+{5 zadlhBYk;S9#`Ffx=?&C>^olvAr|eSxjOh*J^agN%rcdwOIlXf=y>gD}X|M91Fuij* zy>q%_>(Tx=a7DhlM@1e3!^Lj+oY_`!T&VAJcR8n2zu~m{&^v8>VADoA(>N(G0KNIE6i#lp$*Mq}t^yOEkcqbYrxd?l0;~2F(J)W}bK* zzY+zO+39HiR<kc$ZSH>TnL$Ydry=H)6UZIBb+VD4^{2v3N z^ejnFPAe1@ndvWic*uIr>vUM1KDyi^kEnm3f5l)Ryeh(NM30_Gurfq^p&OjVA9yDZ zzWrCg0^MRI)WjAO#bDkarAuZLp?&6-fPxI1!Z*6UW4=@=5|+zTi9eC-^O{DNe>H5g zk)wv+u${kudo-@9JVWikA>IJ;Vh>+@Z^mxh-XRQpoJl8$(MZF(lR2;lji;>?4Epn! z3Xdm0A8kK5`sHYMV{2o5Z{zVBKeRyak;6(@gS=#sZ8d^(AB~*TxgkYz zHP1yOS!gbL3)+_Axi)5UYeVljXR`f+HvXb{{2FF|Oyl4F0Y=Tqc(h9gjMB3ddX4r8t-*f|Cl2@<4Q+#5At0(tr+rg{LKEKh zEMqK0ss(Gddwq?LEGrpro1=);e&?`X!wCcH9&5ep7x?-*aXy%{^$J|IPz~Fun>?@O zsaEcPwu%i7&4%ix+6!~&=vSXkm0>b*=)Fi)cM(KowrUQuUM5+t?hh)9m;wx)MDu)Q zejh4?nXWLula%LBFKIxLGQjup461Rh8v2B1En8g7(9do~K2s5q7GE_9SNd6Haw*E> z((CK&(~9L%hgfbmKTDvK?4)&p;ifN&9DkmFrXxUni%U#LULj1B@L!D!d0gaYlvY=l zz0(>HKAhF%dV$?clbmmwNHt1>CY3N5uLs4g=pgsou0U?{H0pLbL6I_aZJisWg+yxF z))2Qhgt)aCb`9VtwM$SOxEY zhUS>ZLiWPPz`nJE)TDu=l~(IBdn8jeDU9a)DfS^2*}~N4*7rf3KxHo;eM0m!Zxa^EKHoFH2rb#%6-p^Qj%qijX1Sxl*^A%apY169lD ziis|)Q!UB_Ovqv7^1df%YB|#hg0zT#`3z<{;z?{g&u!f_mn^th1#|@U#o*?zZ*b$; z=fe%3r>v^3s5Da-+Ev5^U;cl?B4$M~RT z0HNVS0@L?oXvE`<1%nMJyh3PW#n2-^(oM(jBvVg zrbaS^Q`IyHku?<<45GZpW8fJY=4C!E28lo7V#0`9PjewYSFT8;>p~ZQ(>SW>bd08y z<}c7@l_0=1CXIK)UboL}_rj zmQv)wmfeLB8=ewL_^k@awKBGqg5&PeV}KDIx3ec0Xtlm96e`v8qz+K?ezKQEpaRy$ zAQW?9yPTt1`WW|(KXnJ#I1OiQ*WL!(z z`iiJHRGvuTWQ&7>))4p|3@z&=`whK0_Mw){{ovMk)Y_FqyxMw=mC}q;08<}|CWEnM zVlM3()p^bMY8*KfvPb<FD^v?t1d)soXdj9Q^^$z)H+ceH^|jsSc6cUQ^MTy|#6u#*on(%;83RnRAgE#=keDFbOo2WL-UW6hkOBn9bPgH!pQ}q3hzN`r;M%1$_c@|9|CNI>518>Fi}!75uBogW zL_v`uz8m!R?0h+r&mOM%qm_HUgmV6;gmR|n0L1%r+505^l+evASn$-kb#Xi%`c3{O z{iQ-S>jP_lvtiez^ycWB84*TfybUoaSDxn@1h=_dTzr+(Yx)jO)s#>y^TdE|+zvZ9 z^o(#Wr||TC)PfDr291xVp5gfu*!YW&>H#@nt`0CA+pk5kc62pwaBKbb5Q;uVr_dWc zI)9Of*Ep7!0J1rdu>F|{!s*Av!KGt?{Tv~Z;iXD{5P?oMOAHif)y7gei%e=aFn7bR zssYA~oJ&o@U`OGzOQOP&MGPuZM;A(JHd^fEwMCDg%-@LT+m4kQ@PIl6nPe#bTwEN9 z2jl@jpHVbwm*cmLH{x}I2LMA71!}cZDn(|)=!%~_!V(ifPK_!$8)W!8s-EP zfcwCIKZ@X@h|kIJ6)){JXN+P38+14dgc695Y%n^j8w+bhFkDpxcuiG9qF6gD?#b8!(@ zFdrrDi@3udxIYU9t5OAfo_^ABt15=lTlip zw&Id#2EIqUa{J&QYsvq1lSJ!=R9w?PVn(dw&~IKqZ`pBf_z7yI$3XeCF5-;38<)@q zEd1bAQ)@MBqlDXNkLp03v+uO6R}gb9+2P z1%ThXK|Ok|m?=t(Tv`Gy(LW?3(_)#Gw`KifJ>0G#(a@i#=tp>K25_?)9#_n2%hC1C zPtUzge)wbM4I1{)4+fK3oMKMSdZ{v{y$-#;MxmpJTS;;?^$IP6N-ua2_+IZ@bK z#;f#?h{ygX#atJzv@FF0IgDm$oQbFh4rDp`gt6PdL}NFjvDcUTuMq3pF{=G~+J8M7 zx)eDu;_=tYOn5=g^_VCE2$2fTX4(3+vZWH`7$zXiPa4G&dJuHsw$B~{T5Vi^sW`(3Gq9rjTDpcdu$EEg21ki$?d=WcAr+V*`I> zIg}<$x^hdCCi97+X4TdqN*hIg6%72c$A_PNdvMC^r6q(Qf#wH&s=gc7`W)s1I<*RW z6e)Q1`RbI9E(s+-okXvBx49-mk9t)>5|I4~Pf(T=&-R{gkrz@uA*#qm))2|LqEt1? z6+Wd%&NP`e_oQ~UXoGfPQ5hbC_p4sbE){lMjO3+iE@7a30C+I>`45nPRPd%Io+6#Y z&M8o9FdF7StX-pv%oIY;5%-kU{5Bj9fQZarW94RCGir5i#CXzRiYzAIM51V>#;r!t z;QX@01|nD4DLajq9R%~#;A6&Vu;qM0C$&kOr|2Q$NTtnZCKa>#Q_e#=r%CqblpZ=w z{R|^y8{w*7__H)~UUXG|MU)5u?#$h4{9#tByhMn8#nR6Rnvx)!chvNT>{iKn^RQ)+ zu**4emK|Zi?piBjzQ;Iv;KD;D81_#S9^rrd@cbm5jHl$HJIz$Q4p=zWE`F3S68g$q zt+_1}X@NK=ic2eK&@DkDEwdu6>0@u*Uwva9Lk63X;`%Qg$WMHKaO4Kh&t79-L##1( zwz5j*L(UdZp5$C-fqqQL7kf3~wnv;*_(f*(MP~CwX7fd6^Ou*|+z8wYC9x)WKl?c- zq9yP1JqWo!%Rt^@1;E-E2J@s05l5ui(*Y`eDPGCp6vojTbO!Lo4Z@NfquGWPId=!*5KE!iM%IFbh zqO$Q!QQ1^#gjXKVSIjM7TbNBF>o(H${dHq(XdSIlJw)!r^No|4Ll4biyQ@s0{{M^e zLM1C4y5)ky25H|=llBb_#feNzIFC%vG-181 zEb->DzW#p2fwe8rOaF9%9x8kiZSci_$S@!(r&tip@F6^136T+EQa-BBU^Fh% z_sPc@9({2S{8>axpH6l(TfAb+a&Bw&Gs|-4GZ^UnU$ek5v}_ys-2Xgt8fMMBf9Uel z0CY%QuisUFjueu)fJ^9$w=rJZYNwyNJbxtp{p2vD8s+&Ytwj0I;qEYv62~4ve=ci@ zQkdL2je1glUO%ZbjBh?8S^P1kJjLfSJR)NxjO)5Z-68c(+`JOQWfVONDN@ln3bLJ(Nx)ZNJ#b< zF~5p`|7qq|g=T&QD0@*ezmltZ%DjMmLgTCQZ*F`woxAs^nq~dxbC_lQXS!L|U(?b; z`s-~hBN;L#$6yaJnS_ZfZIM|2( zEO%;6&)r{6+rKt8M@Hx}259iub{iJr$M|V~n*;;}!zyJzp2y`oOC7&T4Zfn##`o(w z_YCIpP+7b&oB1U(Bv(oIZt#CR0F~zB{D#n*Y1KFQHaLUj=Hg7X{#LuZ1u7eAQgEji z@w%%yO{iWUiY6zgp-3{`IhZH9odB!A#agQT++ndW@PLRHC2IpJ`TIC65{5ov4~XV} zy-h?+0`4P>pDs3#77vca#)vp4o-f2BS-ysK9vk7S%w^`4N{UgH4#U>H^V2*_?g9RZ zO5(;h3wm{BhrN>12zb|22DhzsuhZ!)^Z#}3wI-9vp^}sopC{-+IaknwnVi$o5v;yh z@te6hB}5cG@-?e}3wD>K6fUr(Kgs=nX}Y+W5nn46?oXvtM{0DO;r`LXfLf$ntwW_D zAsOXCf{f#JI1Q`OH{UsYDx+KrRxxRxBdr8)5JTaSjr$Ko5B|B%Q(?c<-b<&xs1vJu zAGJUtoi8g5mXOFB@BV)0`?bUSCusnMRy~j8m-t8^zVSW#3HSg0!NG9p{z)5uuwQtZ zQF93M*H}Ifs;>Yq<%B8}-v3`HehB4LtpfRhsg{-wg}+BXNGJOF)=ESIP1^5 zjIIE&W<)L#|Mf*&K`k@TydwatwzMC>RRoGBzE;lu9s9XDBUbmfd znaq{8Fu!Ii=OhX=rlqxiAc-F)4U|OUu7TLhO+@O`g3t9DL*z~edgRr&9xE}uP2@r6 z#fKJ?`ZIt$1 zl7Q4DC-?n+iZW9S{>tpm)uoG(6=*;m)<(O=PN!^r7ghqHLeX%YM!1ZUpMtg*Ampvde$5YAWqGXeq$dV z>Fl;hIM8c2Df`8LAv+zZc{+kOD{RSb9Nuvi#n&tMS?z|fjyDeTVZj!S&1=FIbXZHU zrI;?k%h4dEuzjVK6uA){`kEn6N}-KkI)rmMRIpXF#H$e>-qMe}6|&l8Nzu_i+^Ug*WmSSF-CoGo@X05FHrN-^IbkQA0zuLE?x4^g5$53m3HW=@}kxD6sI;}~u*6i~o35$+~RyDnrPvzC9=FzA?Ce3@})2JYv9c8++ zqug+IRN8fJ=;&ysVW%^FpxELe`Q)2rZ|6jCZm$;>qS3&GLpOxPM{}`t{xlX`@1~wA z>XNJff~yLHCcPoc>c69wCVWx+sr)s%(M^sgK7!}w-ACg^TREckH>=b-f;AIysi` zPZH}&rs?mvvP|3spy*9|lwZJlEfa`e=IC#K*a+yMmy6W(z4)1f7P7Zy4 z(E^-9vDR5qo#sQ`P^(O{0X1?7uWo{N{$%^LtI%7i4_1}Q=s0Md!p(xtp{L7M4iyX0 zDmesr%iGXh3GgA(HoytMf#E|Ue&*-MX<==+6wLlKGj59+`l(pAfw5##z)BZ~(o10@b_H&l~vc)O9>? zlT7oCJ4J8JSOAS-t?^S!Ybb47+^mn>rjrpn$N4u0W{w)LXxQ>D8J~(VoBoOX*h!D+IF>ctMlDE!aM+X`rze7OQrB{$g9Cw|Ivhk`4-Kv%cx@d+&HFhr3mJmUS*e01MFvxU`JvW4Cgo>mK=AHz6AnHY_JFEH9{aXT ztArg5{=$Y=WUc{!2k6dh#M=HL!A)IXd$GQ;1*>rei^`T6s^}%wUcTJ=>j^?k=ye@tBu?b&j4A>rGSHS1%v0?QIw(^=8+9 zwziIbKHAw>-`;s_G+f5-jV5>3e%jz+fHOqcKYHa6NUx1XbcXmfV>>b$#ph)rvPzZV z+N$;Z{Bj)*0z(8?5s|m?0SJd-tszLx3%DZh>%}2`;{$A@GY3uiA19;q435E2mSD5N z)!5DyNO7H_Acdu?O;0ogAUJLv$IEzs(h7``bT&-!f6H-ER@B&*=>`K21Qx$>eWfWK@6;8a!? z2}VU@YeZE*JrbB2;^XJQt9|x_|)9~!96+;tvGWPN+9&J|1*?KX^FV z&%lF!1*7D+k}rz@*>F6TKa|Ve2PjTmF3*<#h0JYw3L1+3Ta^43VM9_C=|G3%*D@6s z3#JB3b%xdHFY>~U;UhoBb;T5a1|&B3HlFWNCi~ugLLdXxD}G9oi|`6x*QZ4~lpu}- z9CqUCv^sqR_+x_Cot|?7!q`liRGUM=ra`S{9MX`YW@)%WSfos0BxrU;gv;LKo)a2f z{GaZF?;ia7`<~slAq5U=LSRvtJzKkQ+Mb|Z{N~Ua=sLbA8C(!@KKQbKNRHDFBDNeA zko?q4#L-60h;&hnAtb~>hOtgASdcEtlR6j$e_q`fGja1z7s18 z9x?)`EEPte-Y>$RO1 zn=hUoJ>S^fU3`*7VC1HvL*Z^o-L*X^{UG~?$%Rb3wMBZ-zD9Ns>{ye9rEF$lb zk&%&c9Xx}}39E^#dH()t`LO^O@c-}s{(nRvyKs%N|5udJ{-0i4l;i>^0tFMs{9$3; zQdsu?5IAOXBbvCD`=V|RejSzL6<8h6E9qvdo>iZ=TJ)BGbB`%n{9K>^2U6%_NjIm7 zfkpwwR}AB;pCI)3AsOYAyu}zojnWi4&ind`PGLzTr_M=o*KCV-6QvwueWi@j@HtqF-Pd3i{V$+*(LNqW8v+{23)nk&#o+J;wHYOiRV`Eh%tyM$v_?#(tq?j$*t( zxXolq7Vj0<3DMI!uV?{Ld{^~3UG0A2uXVi-?|%7tSBl@e#re6H3;Z4Pq0ogNUqtJY zl`3FT1mX>SI3t_UAH`D5e~~#`5WuURJpg7gA;$iHzr`hDG<`Q+7N4au6;PW}nFC-z zj_B2j?`}#Y*#))VB^9_-x7kL%MU98)oAYxDu<`yMl|W_x|Ju{g%L^G3(fc7gVET>F z{6$HKVjm=GU#^!QcWYF`>-cR93}Zg6X7;c!=x(}%_r`8o&8+=l6TvFgjB?$K(G%T0 zC++=zLBiT#hfrwr$ZsX}qVITia-o3L#-QIm^5<-TWGgk$T7+4vUg1TJQTr4p5A|4# zC^G-aEuya_`f96*Q?wsf*z^=g(9w)7LUqDlpg`6$u=OKV7uMQ#_-8 z9M5aoE57OzVRFeGkkU^VGTs1sN+&$e9sKPiw?kKID2CQ{DSTs=w5t(Xnq_f$2 ziGpXx=fJXg(1wntCbd>3-Ahs@@8POmw28V^7(w>cf-^r$lV(Fh_jE5e|T2*5WiJZz0Zp)}?;sX$0 zwQVooNfdK^y}g7NH48p*$6E&=lUmRawdC)i;WfH4ZZdcYX!eGM3YwPk{7 zIVDOXN=HQ?1G?Vl^hU_?S)V1(dDX9oS$qT)qxEhuj3+?a-A}}!G)I!gq_yFHUMDny zR^`>Yx*UFed^857JM~kR_t+%LF@C-M0mo6ahW>UmTNI1&udnOJ@`p+>05iKw^4+;T zbU@gX^h=*TNxyu>JxRa(x_gp-p?mT~{?PV>&g|RnN&1EE$@}%PZBLNtFgYLk>Fe#! zufycrIX}~fZ2=n<$ziW`4qIh^Vi;kzIWFY~d*zXcfe5C_U{m}GuO=`l23uhMi!uPx z0_UKhuQeDWU9hx$VE)LJ8+0ER$>!wVW+QuQ8p`~aF@6*M;kSxqu|(&iH495AQj^*I zy~c#Io73j#_t4CKguY$K@e8a_p8y;qrVV*oUQ`%XxnS%L1l@?x0%)CoPzv|49{ug< ztC!E8g3A5u-Qj=!{PNx5^RpK(4_`gU%;^K#R1RNiQ>ifP9Qh)lL3@T+eY3}qgl_gE zsUizpvI3S@Q52lV;q#YAZ{D399sc9!?A77xza0H|_U!QJ?}vx4Rlt4&?AHdsF)IN{ zo-8nCzIPcM>NEc$*cv>4lUL2?Dxzou3y_&Ho%+-8s(yO;TCD8l>w{N6zkm6+!*QSL z69g9tz`SDZZ8fMit z%e>yjpf8*greQ>e5JOy{&0CyP8U{9gSon&vOC$#)EG&sV%^Bl=w&9T<#!B>0#&x{l z?Z;UYHR~LPdAeB8c|ekhiLWz&QEP3~OpTg137HHXVFHuf84Cm> zU*Gp3EV~gFWtUm9e(>NQ^lDhgt1LOggt=Elk>_P*TBEWXghW%A!&tjHNCaUjMsqUD zmg(a9de2L=kxLbSG@Jd{iey{&!d%jD7R<>Y;p$Tr^IFf@?C|5BsHcC-8=evq4Bcc# zA-^r~t*H1KsOKzM^rYg##2M1M@ExEa26M^>4|aa|ujAcEr_|ZcjaR(l;E1Zuo zX=9=Y%D@&RiCqZb~!9)pDCTM zXg8*Jz?5*WI?Pl-j`LGUBOigkivFE_oO~=v`pZOg!reM6x1Zg86!qk%TCfHw`Y!bd z4)#dwG*K>(`-EQ;Wv2Vfcw={vmu&sP8rf+k*n z$b63T1egq&&vE{EJ()jxB#s^}Ii8=2NYhEO7SH9iJdx^IyT;+bK4kiwjKI`mO#e-* z8GT}^`jl%ttA|49r`+Dk#2Er*p1?@y62Nj=jvYZ^ZB?qK)%YVBu?Qt`K9$**d6WZZ z({=Bu_sNkeaaj<1rQ&6d#DD;PaKJcQ)zzZ?(V!MG0ePH-O&jLXfa7JN4_aG;0 zT6-b*#+f`ws;tp?AU0<$UXH!jRieI81~_ZkcyoJo|3h7$~0! zl&AE7b0dpH+mWKjj%aDNw?u_XM}_JXSPnIG*<O;0|N zH?fHuQ`|F!43a;jT-}a~0Y%HEtF2BG^PG2YIvm{2O;4w3=cdC2;Mw%52jnX;a<%2A zs~rc#|29M?Q+rKujBa#EH+miy+D5O3= z6+My^;A5Gm3vj`IR26Df0c@UC0gp9cJ9?`MxgKkTxgM#)LKI3@BUM(ivU!dTWcd>T-x5*Eg9I|;ROaWP3g>#E+3T7WQNH~-?Jrw^ z)0Qfo$aU$MxxCs8V7$>;N8?Kxz!WN_zNty^&mZqZUJYEoM$P785_ZGbEU& z{3%$0BCIUXn_x|UWi^Q7iiuJTK({tF_e69cQSBKzv+~fmo|y_`IeYq17*qJ-6?s zh>oe?#E1mbsE*oe=_)2y104yV8hwcjR7U?={N_Nj_Wav_CT&2A`(Z0C#V7Z`^8Bv^ zeDc`eGLTN!xKGuc!AJJpA}vLul3aj>yR@|It#yZ(D9VSW$LB3sq=zAM~jQkb5VFT?fV8ADP^+xy3s&_&ZjrOQt^wOBJ3qtR-Mm!{ICr~ZMt7o%! zIup~sjmFx@Fm*nTrmZZro$Zy|w^VPdZL9uS-&*fbH$-X+{sM_Z{BT!!2s%BmY|^u5 z*E>qAJet^dHD@h7L)+s-F$Tj^*X<;0If7PW{U}<0MaGc~txfG+w$0vYZxSPxvh_@9 zD+>~**2*0ON^7e_M*D0)#W&Oqu~|LDr@}Sh(Zd3>44p zcPC$U_&wTLAq1QrE!sikbf5vsDbv9f9{FZK6H!03{3AZhalQwsUa(?2KtwwY4&sx( ze5ZSVXVo{vm7X`Ms2)kU_yiWMg<;6G*6sqI)|fuSKS8)x1D2k06R^I~Z-!GpYH}J5 z3a{vir%knV;9#FP&mcF0fx*Bk zcGDx7Yc0GryVcR{-SAq*AX_n7MoW`3R^Kgu*4VS2oAFoXgF)?sPe9sUdKcT&+V7q1 zlm0^5a-+1S=1yq^)>iq}WbT!S)~m!+&&YXE;!TYUkrq;D2^xCT?A+i%VCT>bK1|pQ znK73KM4EVe+qZ)PMXzTB$L#?6?redWq2at|sNT(D>GMqjRn)$g%nhj)(pv-N!GHNRFzoU-P{s_mWv z>gw(HDgc6_0_Esxgl>tql&H6tBG8%0x}#zxE86C$T|GnGzb`{fjNU`9#j`PB*n0f* z?22{Ja~Y7$%qwX3EoIm_A2e3Ps9QW1b}0|dB@Kmrk0yWp#XS_UP5 z`p9hrJKpZLZ(&YMN+;C3wv(^;`r5X>J|*#DABK=8_+)pw=wDNxfO^b`DQx$e@pQCZ zZ5MM`nVuSOawElFSGlXz`xiAShLu@~6kAQ!H0AxeYB5%$g(As#p45{ZqFVT_0GSO0 zVmfH~Z7lt1-likHD_tu~>tiBX?&K?fjN&cMlCMjOyUEVJ@OvO=%tgVI^#o5KC(+Gr z^h&$YheKfz{-hOzywde`9nhYss!7)WcFm%mDsP>Hw_PF1USzVB{6DVSUa)#=%A!1Y zz}Q5=u3?JfEk&|H<{+?uHqmSQzIU)wS6Pw` z|JR@YBZ|-HU!#0@l|?E@!pBVPDzj)Ey22g{cPN#R0g|*h4sI=pV+7WOL43fStERu` zU;G>WM>CAeAZsZB%Qw%kkQFz714kuj#QO%TX!ge*H{AW4C45E6lMVMjBh3Ho(3t0V9N=4aq>HsR%os&J@RNJNb%vcg~V9-hc@)x%%(9-hb^c2teWs<+pAWq3C5 z+NyG*{yh9ot#YC&zkDsf?+kY`a3dCW(P+e{V!%Dw-REsyV2OdQPhA zYxOtW!*bZOgEy~_p1yqjUbWo;Y;tc(a6riC_?R+(p~qP*r$}ImkvUI&6n(;;(T6>T zht+fsFD&&T%KCd1W+XnOjDt*T$m3iI4@v#+QCnlh8p)mn`2%-<}Bea`;=lJoN9&pWdlMPPK2hp?5gDGUxM8GeKBcnNrFz3yWWc0Bp z79`Ebp5ZM5r+1Di54GRNd#BvAU!X93ZmZcxutEsu#pWZ%hMX*8{m09yFn<4B&y3%Y zz{UAsH{#!(F5fP_-+wxL`;$}f{<0`*yQjl->3+bP{`O9NC<%Ul^iB{9yfX}sElYwu zvQnqppDXKU%i65E@ZI~#I|usNyQa{H{Cl7;Z8aR*#MP%;-~N@dR}i?C3vk{uWW`t# z`a!t9R=5WWj4hBJP8fTOfeQk7^H55F&pFA=^XLy5o)69fupc|`GyR0n)4Q`5(Q*F< z9`eIT-G#zW&{rRS2K=KnpyO7PVItDZn|(go(0T7kMp*A_nvF9j|9o5}p5&+U^v9{U zcwZDRU=?c6=Gy#+8&dCt0Va5DSatNZYzL8sYP1! zUO#k`-1JCULT`n7%DEL}YT`7OlgQn%AgelW^O&`HY_=&pZ3KO%H*whrN3q^;%G=vS`!ueX;Y=z8&yVOaDr)qRv-`2qM7& z)6!LAf`;L&JVzjImp@i%RedhXx%^O)bYA3(D{DA^gs3*2iaw%!ly|50jYTEVK4=j$ zCLRvjq)`(lC%grV>pQX-3M(^5isF-de_%17G<35uoaFNg+;FG0{F6Rz#v*!@b~aRR za%qs^@Zd7_bc>W!bgX`OyLMZPm@HHEh|1voG!C7ejGY}w`ivWJL?2ffKCUwE!uiIV z23kvh8~*}R&Rhu(&DHwjd-^{!1GMQkD6&6i6^n#}Nrc~_h#2C2iJ-sqBUgsbSs|G- zKWtF}^Du$^9!BmzJ{4K7wWRTtayNtwq<|YNp$H~fM%mN|!&?faHT?Z!n$H(>E>;!( znYk%y9~>`5yRv7Ub{kI>Y-�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 BTXX;b diff --git a/packages/vanilla-bundle/package.json b/packages/vanilla-bundle/package.json index d8e533fbe..5dcefd929 100644 --- a/packages/vanilla-bundle/package.json +++ b/packages/vanilla-bundle/package.json @@ -55,7 +55,7 @@ "whatwg-fetch": "^3.5.0" }, "devDependencies": { - "@types/webpack": "^4.41.25", + "@types/webpack": "^4.41.26", "archiver": "^5.2.0", "cross-env": "^7.0.3", "dts-bundle-webpack": "^1.0.2", @@ -63,6 +63,6 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "ts-loader": "^8.0.14", - "webpack": "^5.12.1" + "webpack": "^5.16.0" } } \ No newline at end of file diff --git a/packages/vanilla-bundle/src/components/__tests__/slick-vanilla-grid.spec.ts b/packages/vanilla-bundle/src/components/__tests__/slick-vanilla-grid.spec.ts index fcd557e93..84905940d 100644 --- a/packages/vanilla-bundle/src/components/__tests__/slick-vanilla-grid.spec.ts +++ b/packages/vanilla-bundle/src/components/__tests__/slick-vanilla-grid.spec.ts @@ -9,7 +9,6 @@ import { Editor, Editors, ExtensionList, - ExtensionName, ExtensionService, ExtensionUtility, Filters, @@ -21,16 +20,21 @@ import { GridStateService, GridStateType, GroupingAndColspanService, + OnRowsChangedEventArgs, + OnRowsOrCountChangedEventArgs, Pagination, PaginationService, ServicePagination, SharedService, + SlickDataView, + SlickDraggableGrouping, SlickEventHandler, SlickGrid, SlickGroupItemMetadataProvider, SortService, TreeDataService, TranslaterService, + SlickEditorLock, } from '@slickgrid-universal/common'; import { GraphqlService, GraphqlPaginatedResult, GraphqlServiceApi, GraphqlServiceOption } from '@slickgrid-universal/graphql'; import { SlickCompositeEditorComponent } from '@slickgrid-universal/composite-editor-component'; @@ -189,25 +193,24 @@ const mockDataView = { getPagingInfo: jest.fn(), mapIdsToRows: jest.fn(), mapRowsToIds: jest.fn(), - onSetItemsCalled: jest.fn(), - onRowsChanged: new MockSlickEvent(), - onRowCountChanged: new MockSlickEvent(), + onRowsChanged: new MockSlickEvent(), + onRowsOrCountChanged: new MockSlickEvent(), reSort: jest.fn(), setItems: jest.fn(), syncGridSelection: jest.fn(), -}; +} as unknown as SlickDataView; const mockDraggableGroupingExtension = { constructor: jest.fn(), init: jest.fn(), destroy: jest.fn(), -}; +} as unknown as SlickDraggableGrouping; const mockEventPubSub = { notify: jest.fn(), subscribe: jest.fn(), unsubscribe: jest.fn(), -}; +} as unknown as EventPubSubService; const mockSlickEventHandler = { handlers: [], @@ -215,12 +218,12 @@ const mockSlickEventHandler = { subscribe: jest.fn(), unsubscribe: jest.fn(), unsubscribeAll: jest.fn(), -}; +} as unknown as SlickEventHandler; const mockGetEditorLock = { isActive: () => true, commitCurrentEdit: jest.fn(), -}; +} as unknown as SlickEditorLock; const mockGrid = { autosizeColumns: jest.fn(), @@ -941,7 +944,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () const expectedPageNumber = 3; const expectedTotalItems = 15; const refreshSpy = jest.spyOn(component, 'refreshGridData'); - const getPagingSpy = jest.spyOn(mockDataView, 'getPagingInfo').mockReturnValue({ pageNum: 1, totalRows: expectedTotalItems }); + const getPagingSpy = jest.spyOn(mockDataView, 'getPagingInfo').mockReturnValue({ pageNum: 1, totalRows: expectedTotalItems, pageSize: 10, totalPages: 15, dataView: mockDataView }); const mockData = [{ firstName: 'John', lastName: 'Doe' }, { firstName: 'Jane', lastName: 'Smith' }]; component.gridOptions = { @@ -1415,7 +1418,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () component.gridOptions = { enableFiltering: true }; component.initialization(divContainer, slickEventHandler); - mockDataView.onRowsChanged.notify({ rows: [1, 2, 3] }); + mockDataView.onRowsChanged.notify({ itemCount: 0, dataView: mockDataView, rows: [1, 2, 3], calledOnRowCountChanged: false }); expect(component.eventHandler).toEqual(slickEventHandler); expect(renderSpy).toHaveBeenCalled(); @@ -1429,7 +1432,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () component.gridOptions = { enableFiltering: true }; component.initialization(divContainer, slickEventHandler); - component.eventHandler.subscribe(mockEventPubSub, callback); + component.eventHandler.subscribe(mockEventPubSub as any, callback); mockGrid.onClick.notify({ rows: [1, 2, 3] } as any); // callback(new CustomEvent('onDblClick'), {}); @@ -1554,7 +1557,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () const emptySpy = jest.spyOn(component.slickEmptyWarning, 'showEmptyDataMessage'); component.columnDefinitions = mockColDefs; component.refreshGridData([]); - mockDataView.onRowCountChanged.notify({ current: 0, item: { first: 'John' } }); + mockDataView.onRowsOrCountChanged.notify({ currentRowCount: 0, dataView: mockDataView, itemCount: 0, previousRowCount: 0, rowCountChanged: false, rowsChanged: false, rowsDiff: [0] }); setTimeout(() => { expect(component.columnDefinitions).toEqual(mockColDefs); @@ -1652,7 +1655,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () }); }); - it('should have custom footer with metrics when the DataView "onRowCountChanged" event is triggered', () => { + it('should have custom footer with metrics when the DataView "onRowsOrCountChanged" event is triggered', () => { const invalidateSpy = jest.spyOn(mockGrid, 'invalidate'); const expectation = { startTime: expect.toBeDate(), @@ -1664,8 +1667,8 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () component.gridOptions = { enablePagination: false, showCustomFooter: true }; component.initialization(divContainer, slickEventHandler); const footerSpy = jest.spyOn(component.slickFooter, 'metrics', 'set'); + mockDataView.onRowsOrCountChanged.notify({ currentRowCount: 0, dataView: mockDataView, itemCount: 0, previousRowCount: 1, rowCountChanged: false, rowsChanged: false, rowsDiff: [0] }); - mockDataView.onRowCountChanged.notify({ first: 'John' }); expect(invalidateSpy).toHaveBeenCalled(); expect(component.metrics).toEqual(expectation); expect(footerSpy).toHaveBeenCalledWith(expectation); @@ -1847,7 +1850,7 @@ describe('Slick-Vanilla-Grid-Bundle Component instantiated via Constructor', () component.initialization(divContainer, slickEventHandler); component.dataset = mockFlatDataset; component.isDatasetInitialized = false; - mockDataView.onRowsChanged.notify({ rows: [1, 2, 3] }); + mockDataView.onRowsChanged.notify({ itemCount: 0, dataView: mockDataView, rows: [1, 2, 3], calledOnRowCountChanged: false }); expect(hierarchicalSpy).toHaveBeenCalled(); expect(mockConvertParentChildArray).toHaveBeenCalled(); diff --git a/packages/vanilla-bundle/src/components/slick-vanilla-grid-bundle.ts b/packages/vanilla-bundle/src/components/slick-vanilla-grid-bundle.ts index 63d1e4c7f..cc99e0a94 100644 --- a/packages/vanilla-bundle/src/components/slick-vanilla-grid-bundle.ts +++ b/packages/vanilla-bundle/src/components/slick-vanilla-grid-bundle.ts @@ -545,7 +545,7 @@ export class SlickVanillaGridBundle { // if you don't want the items that are not visible (due to being filtered out or being on a different page) // to stay selected, pass 'false' to the second arg - const selectionModel = this.slickGrid && this.slickGrid.getSelectionModel(); + const selectionModel = this.slickGrid?.getSelectionModel?.(); if (selectionModel && this._gridOptions?.dataView && this._gridOptions.dataView.hasOwnProperty('syncGridSelection')) { // if we are using a Backend Service, we will do an extra flag check, the reason is because it might have some unintended behaviors // with the BackendServiceApi because technically the data in the page changes the DataView on every page change. @@ -680,7 +680,7 @@ export class SlickVanillaGridBundle { dispose: this.dispose.bind(this), // return all available Services (non-singleton) - backendService: this.gridOptions && this.gridOptions.backendServiceApi && this.gridOptions.backendServiceApi.service, + backendService: this.gridOptions?.backendServiceApi?.service, filterService: this.filterService, gridEventService: this.gridEventService, gridStateService: this.gridStateService, @@ -721,7 +721,7 @@ export class SlickVanillaGridBundle { // when we use Pagination on Local Grid, it doesn't seem to work without enableFiltering // so we'll enable the filtering but we'll keep the header row hidden - if (options && !options.enableFiltering && options.enablePagination && this._isLocalGrid) { + if (!options.enableFiltering && options.enablePagination && this._isLocalGrid) { options.enableFiltering = true; options.showHeaderRow = false; this._hideHeaderRowAfterPageLoad = true; @@ -739,8 +739,8 @@ export class SlickVanillaGridBundle { * refresh the Dataset & Pagination without having the user to create his own PostProcess every time */ createBackendApiInternalPostProcessCallback(gridOptions: GridOption) { - const backendApi = gridOptions && gridOptions.backendServiceApi; - if (backendApi && backendApi.service) { + const backendApi = gridOptions?.backendServiceApi; + if (backendApi?.service) { const backendApiService = backendApi.service; // internalPostProcess only works (for now) with a GraphQL Service, so make sure it is of that type @@ -823,7 +823,7 @@ export class SlickVanillaGridBundle { if (gridOptions.backendServiceApi) { const backendApi = gridOptions.backendServiceApi; - if (backendApi && backendApi.service && backendApi.service.init) { + if (backendApi?.service?.init) { backendApi.service.init(backendApi.options, gridOptions.pagination, this.slickGrid); } } @@ -851,26 +851,11 @@ export class SlickVanillaGridBundle { } } - const onRowCountChangedHandler = dataView.onRowCountChanged; - (this._eventHandler as SlickEventHandler>).subscribe(onRowCountChangedHandler, (_e, args) => { + // When data changes in the DataView, we need to refresh the metrics and/or display a warning if the dataset is empty + const onRowsOrCountChangedHandler = dataView.onRowsOrCountChanged; + (this._eventHandler as SlickEventHandler>).subscribe(onRowsOrCountChangedHandler, (_e, args) => { grid.invalidate(); - - this.metrics = { - startTime: new Date(), - endTime: new Date(), - itemCount: args && args.current || 0, - totalItemCount: Array.isArray(this.dataset) ? this.dataset.length : 0 - }; - - // if custom footer is enabled, then we'll update its metrics - if (this.slickFooter) { - this.slickFooter.metrics = this.metrics; - } - - // when using local (in-memory) dataset, we'll display a warning message when filtered data is empty - if (this._isLocalGrid && this._gridOptions.enableEmptyDataWarningMessage) { - this.displayEmptyDataWarning(args.current === 0); - } + this.handleOnItemCountChanged(args.currentRowCount || 0); }); // when filtering data with local dataset, we need to update each row else it will not always show correctly in the UI @@ -878,7 +863,7 @@ export class SlickVanillaGridBundle { if (gridOptions && gridOptions.enableFiltering && !gridOptions.enableRowDetailView) { const onRowsChangedHandler = dataView.onRowsChanged; (this._eventHandler as SlickEventHandler>).subscribe(onRowsChangedHandler, (_e, args) => { - if (args && args.rows && Array.isArray(args.rows)) { + if (args?.rows && Array.isArray(args.rows)) { args.rows.forEach((row) => grid.updateRow(row)); grid.render(); } @@ -900,14 +885,14 @@ export class SlickVanillaGridBundle { bindBackendCallbackFunctions(gridOptions: GridOption) { const backendApi = gridOptions.backendServiceApi; - const backendApiService = backendApi && backendApi.service; - const serviceOptions: BackendServiceOption = backendApiService && backendApiService.options || {}; - const isExecuteCommandOnInit = (!serviceOptions) ? false : ((serviceOptions && serviceOptions.hasOwnProperty('executeProcessCommandOnInit')) ? serviceOptions['executeProcessCommandOnInit'] : true); + const backendApiService = backendApi?.service; + const serviceOptions: BackendServiceOption = backendApiService?.options ?? {}; + const isExecuteCommandOnInit = (!serviceOptions) ? false : ((serviceOptions?.hasOwnProperty('executeProcessCommandOnInit')) ? serviceOptions['executeProcessCommandOnInit'] : true); if (backendApiService) { // update backend filters (if need be) BEFORE the query runs (via the onInit command a few lines below) // if user entered some any "presets", we need to reflect them all in the grid - if (gridOptions && gridOptions.presets) { + if (gridOptions?.presets) { // Filters "presets" if (backendApiService.updateFilters && Array.isArray(gridOptions.presets.filters) && gridOptions.presets.filters.length > 0) { backendApiService.updateFilters(gridOptions.presets.filters, true); @@ -931,7 +916,7 @@ export class SlickVanillaGridBundle { // execute onInit command when necessary if (backendApi && backendApiService && (backendApi.onInit || isExecuteCommandOnInit)) { const query = (typeof backendApiService.buildQuery === 'function') ? backendApiService.buildQuery() : ''; - const process = (isExecuteCommandOnInit) ? (backendApi.process && backendApi.process(query) || null) : (backendApi.onInit && backendApi.onInit(query) || null); + const process = isExecuteCommandOnInit ? (backendApi.process?.(query) ?? null) : (backendApi.onInit?.(query) ?? null); // wrap this inside a setTimeout to avoid timing issue since the gridOptions needs to be ready before running this onInit setTimeout(() => { @@ -967,7 +952,7 @@ export class SlickVanillaGridBundle { } else { this.resizerService.resizeGrid(); } - if (grid && options && options.enableAutoResize) { + if (grid && options?.enableAutoResize) { if (options.autoFitColumnsOnFirstLoad && options.enableAutoSizeColumns && typeof grid.autosizeColumns === 'function') { grid.autosizeColumns(); } @@ -988,7 +973,7 @@ export class SlickVanillaGridBundle { * Also if we use Row Selection or the Checkbox Selector, we need to reset any selection */ paginationChanged(pagination: ServicePagination) { - const isSyncGridSelectionEnabled = this.gridStateService && this.gridStateService.needToPreserveRowSelection() || false; + const isSyncGridSelectionEnabled = this.gridStateService?.needToPreserveRowSelection() ?? false; if (!isSyncGridSelectionEnabled && (this.gridOptions.enableRowSelection || this.gridOptions.enableCheckboxSelector)) { this.slickGrid.setSelectedRows([]); } @@ -1114,7 +1099,7 @@ export class SlickVanillaGridBundle { * if there are then load them in the paginationOptions object */ setPaginationOptionsWhenPresetDefined(gridOptions: GridOption, paginationOptions: Pagination): Pagination { - if (gridOptions.presets && gridOptions.presets.pagination && gridOptions.pagination) { + if (gridOptions.presets?.pagination && gridOptions.pagination) { paginationOptions.pageSize = gridOptions.presets.pagination.pageSize; paginationOptions.pageNumber = gridOptions.presets.pagination.pageNumber; } @@ -1129,6 +1114,26 @@ export class SlickVanillaGridBundle { this.slickEmptyWarning?.showEmptyDataMessage(showWarning); } + /** When data changes in the DataView, we'll refresh the metrics and/or display a warning if the dataset is empty */ + private handleOnItemCountChanged(itemCount: number) { + this.metrics = { + startTime: new Date(), + endTime: new Date(), + itemCount, + totalItemCount: Array.isArray(this.dataset) ? this.dataset.length : 0 + }; + + // if custom footer is enabled, then we'll update its metrics + if (this.slickFooter) { + this.slickFooter.metrics = this.metrics; + } + + // when using local (in-memory) dataset, we'll display a warning message when filtered data is empty + if (this._isLocalGrid && this._gridOptions.enableEmptyDataWarningMessage) { + this.displayEmptyDataWarning(itemCount === 0); + } + } + /** Initialize the Pagination Service once */ private initializePaginationService(paginationOptions: Pagination) { if (this.gridOptions) { @@ -1234,10 +1239,10 @@ export class SlickVanillaGridBundle { /** Load any Row Selections into the DataView that were presets by the user */ private loadRowSelectionPresetWhenExists() { // if user entered some Row Selections "presets" - const presets = this.gridOptions && this.gridOptions.presets; - const selectionModel = this.slickGrid && this.slickGrid.getSelectionModel(); + const presets = this.gridOptions?.presets; + const selectionModel = this.slickGrid?.getSelectionModel?.(); const enableRowSelection = this.gridOptions && (this.gridOptions.enableCheckboxSelector || this.gridOptions.enableRowSelection); - if (enableRowSelection && selectionModel && presets && presets.rowSelection && (Array.isArray(presets.rowSelection.gridRowIndexes) || Array.isArray(presets.rowSelection.dataContextIds))) { + if (enableRowSelection && selectionModel && presets?.rowSelection && (Array.isArray(presets.rowSelection.gridRowIndexes) || Array.isArray(presets.rowSelection.dataContextIds))) { let dataContextIds = presets.rowSelection.dataContextIds; let gridRowIndexes = presets.rowSelection.gridRowIndexes; diff --git a/test/cypress/integration/example12.spec.js b/test/cypress/integration/example12.spec.js index 39dcc2757..47447bf4f 100644 --- a/test/cypress/integration/example12.spec.js +++ b/test/cypress/integration/example12.spec.js @@ -445,4 +445,80 @@ describe('Example 12 - Composite Editor Modal', () => { cy.get('.btn-cancel').click(); }); + + it('should focus on first row and open the Composite Editor (Clone Item) and expect all form inputs to be filled with first row data', () => { + // it('should focus on first row, then "Clone" it and change the "Title" & "Duration" and save and expect a new row in the grid', () => { + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(3)`).click({ force: true }); + cy.get('[data-test="open-modal-clone-btn"]').click(); + cy.get('.slick-editor-modal-title').contains('Clone - Task 8899'); + + cy.get('textarea').contains('Task 8899'); + cy.get('.item-details-editor-container .slider-editor .input-group-text').contains('51'); + cy.get('.item-details-container.editor-completed input.editor-checkbox:checked').should('have.length', 1); + cy.get('.item-details-container.editor-duration input.editor-text').invoke('val').then(text => expect(text).to.eq('33.00')); + }); + + it('should change the "Title" & "Duration" from the Clone form, then click on "Cancel" button and expect no changes in the grid', () => { + cy.get('.slick-editor-modal-title').contains('Clone - Task 8899'); + + cy.get('textarea').contains('Task 8899').type('Task 9999'); + cy.get('.item-details-editor-container .slider-editor-input.editor-percentComplete').as('range').invoke('val', 7).trigger('change'); + cy.get('.item-details-editor-container .slider-editor-input.editor-percentComplete').as('range').invoke('val', 17).trigger('change'); + cy.get('.item-details-container.editor-percentComplete .modified').should('have.length', 1); + + cy.get('.item-details-editor-container .editor-checkbox').uncheck(); + + cy.get('.btn-cancel').click(); + + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(1)`).should('contain', 'TASK 8899'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(2)`).should('contain', '33 days'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(4)`).should('contain', '51'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(6)`).find('.mdi.mdi-check.checkmark-icon').should('have.length', 1); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(7)`).should('not.be.empty'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(9)`).should('contain', 'Belgium'); + }); + + it('should focus again on first row and open the Composite Editor (Clone Item) and expect all form inputs to be filled with first row data', () => { + // it('should focus on first row, then "Clone" it and change the "Title" & "Duration" and save and expect a new row in the grid', () => { + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(3)`).click({ force: true }); + cy.get('[data-test="open-modal-clone-btn"]').click(); + cy.get('.slick-editor-modal-title').contains('Clone - Task 8899'); + + cy.get('textarea').contains('Task 8899'); + cy.get('.item-details-editor-container .slider-editor .input-group-text').contains('51'); + cy.get('.item-details-container.editor-completed input.editor-checkbox:checked').should('have.length', 1); + cy.get('.item-details-container.editor-duration input.editor-text').invoke('val').then(text => expect(text).to.eq('33.00')); + }); + + it('should change the "Title" & "Duration" from the Clone form, then click on "Clone" button and expect a new row to show up on top of the grid', () => { + cy.get('.slick-editor-modal-title').contains('Clone - Task 8899'); + + cy.get('textarea').contains('Task 8899').type('Task 9999'); + cy.get('.item-details-editor-container .slider-editor-input.editor-percentComplete').as('range').invoke('val', 7).trigger('change'); + cy.get('.item-details-editor-container .slider-editor-input.editor-percentComplete').as('range').invoke('val', 17).trigger('change'); + cy.get('.item-details-container.editor-percentComplete .modified').should('have.length', 1); + + cy.get('.item-details-editor-container .editor-checkbox').uncheck(); + + cy.get('.item-details-container.editor-duration input.editor-text').type('44'); + cy.get('.item-details-container.editor-duration .modified').should('have.length', 1); + + cy.get('.btn-save').contains('Clone').click(); + + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(1)`).should('contain', 'TASK 9999'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(2)`).should('contain', '44 days'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(4)`).should('contain', '17'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(6)`).find('.mdi.mdi-check.checkmark-icon').should('have.length', 0); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(7)`).should('be.empty'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 0}px"] > .slick-cell:nth(9)`).should('contain', 'Belgium'); + }); + + it('should expect original, that was originally used to clone, to now be exist as that 2nd row in the grid', () => { + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(1)`).should('contain', '8899'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(2)`).should('contain', '33 days'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(4)`).should('contain', '51'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(6)`).find('.mdi.mdi-check.checkmark-icon').should('have.length', 1); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(7)`).should('not.be.empty'); + cy.get(`[style="top:${GRID_ROW_HEIGHT * 1}px"] > .slick-cell:nth(9)`).should('contain', 'Belgium'); + }); }); diff --git a/test/mockSlickEvent.ts b/test/mockSlickEvent.ts index 3b550cc16..6a8e38dac 100644 --- a/test/mockSlickEvent.ts +++ b/test/mockSlickEvent.ts @@ -1,14 +1,14 @@ -import { SlickEvent, SlickEventHandler } from '@slickgrid-universal/common'; +import { SlickEvent, SlickEventData, SlickEventHandler } from '@slickgrid-universal/common'; // interface PubSubEvent { // name: string; // handler: (args: any) => void; // } -export class MockSlickEvent implements SlickEvent { +export class MockSlickEvent implements SlickEvent { private _handlers = []; - notify(args: any, event?: any, scope?: any) { + notify(args: T, event?: SlickEventData, scope?: any) { scope = scope || this; let returnValue; @@ -19,11 +19,11 @@ export class MockSlickEvent implements SlickEvent { return returnValue; } - subscribe(handler: (data: any, e?: any) => void): any { + subscribe(handler: (e: SlickEventData, data: Partial) => void): any { this._handlers.push(handler); } - unsubscribe(handler: (data: any, e?: any) => void) { + unsubscribe(handler: (e: SlickEventData, data?: any) => void) { this._handlers.forEach((handlerFn, index) => { if (handlerFn === handler) { this._handlers.splice(index, 1); diff --git a/test/translateServiceStub.ts b/test/translateServiceStub.ts index 171b0f974..e3de5c1c1 100644 --- a/test/translateServiceStub.ts +++ b/test/translateServiceStub.ts @@ -22,6 +22,7 @@ export class TranslateServiceStub implements TranslaterService { case 'CLEAR_ALL_FILTERS': output = this._locale === 'en' ? 'Clear all Filters' : 'Supprimer tous les filtres'; break; case 'CLEAR_ALL_SORTING': output = this._locale === 'en' ? 'Clear all Sorting' : 'Supprimer tous les tris'; break; case 'CLEAR_FROZEN_COLUMNS': output = this._locale === 'en' ? 'Clear Frozen Columns' : 'Libérer les colonnes gelées'; break; + case 'CLONE': output = this._locale === 'en' ? 'Clone' : 'Cloner'; break; case 'COLUMNS': output = this._locale === 'en' ? 'Columns' : 'Colonnes'; break; case 'COMMANDS': output = this._locale === 'en' ? 'Commands' : 'Commandes'; break; case 'COLLAPSE_ALL_GROUPS': output = this._locale === 'en' ? 'Collapse all Groups' : 'Réduire tous les groupes'; break; @@ -61,6 +62,7 @@ export class TranslateServiceStub implements TranslaterService { case 'OPTIONS_LIST': output = this._locale === 'en' ? 'Options List' : 'Liste d\'options'; break; case 'OTHER': output = this._locale === 'en' ? 'Other' : 'Autre'; break; case 'PAGE': output = this._locale === 'en' ? 'Page' : 'Page'; break; + case 'PRODUCT': output = this._locale === 'en' ? 'Product' : 'Produit'; break; case 'REFRESH_DATASET': output = this._locale === 'en' ? 'Refresh Dataset' : 'Rafraîchir les données'; break; case 'REMOVE_FILTER': output = this._locale === 'en' ? 'Remove Filter' : 'Supprimer le filtre'; break; case 'REMOVE_SORT': output = this._locale === 'en' ? 'Remove Sort' : 'Supprimer le tri'; break; diff --git a/yarn.lock b/yarn.lock index 8e66d68c5..0d1504cf4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -327,10 +327,10 @@ resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== -"@eslint/eslintrc@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -339,7 +339,7 @@ ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -1550,10 +1550,10 @@ resolved "https://registry.yarnpkg.com/@types/detect-indent/-/detect-indent-0.1.30.tgz#dc682bb412b4e65ba098e70edad73b4833fb910d" integrity sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0= -"@types/dompurify@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.2.0.tgz#edd24cc4a43a8051b825fc13a6ed8695e77bffa0" - integrity sha512-hfW7oNQ9Zeiy+Jd1nGswjui3Kn+yrUC5fbKzR3j9f9x7mT1bYskzI1YQU66BlD37SxKPdQBoMJ2yaa+GlkEqcw== +"@types/dompurify@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/dompurify/-/dompurify-2.2.1.tgz#eebf3af8afe2f577a53acab9d98a3a4cb04bbbe7" + integrity sha512-3JwbEeRVQ3n6+JgBW/hCdkydRk9/vWT+UEglcXEJqLJEcUganDH37zlfLznxPKTZZfDqA9K229l1qN458ubcOQ== dependencies: "@types/trusted-types" "*" @@ -1688,7 +1688,7 @@ dependencies: moment "*" -"@types/node@*", "@types/node@>= 8", "@types/node@^14.14.20": +"@types/node@*", "@types/node@>= 8": version "14.14.20" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340" integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A== @@ -1698,6 +1698,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.0.tgz#acaa89247afddc7967e9902fd11761dadea1a555" integrity sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A== +"@types/node@^14.14.22": + version "14.14.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" + integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -1769,7 +1774,7 @@ "@types/source-list-map" "*" source-map "^0.7.3" -"@types/webpack@^4.4.31", "@types/webpack@^4.41.25": +"@types/webpack@^4.4.31": version "4.41.25" resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.25.tgz#4d3b5aecc4e44117b376280fbfd2dc36697968c4" integrity sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ== @@ -1781,6 +1786,18 @@ "@types/webpack-sources" "*" source-map "^0.6.0" +"@types/webpack@^4.41.26": + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + "@types/yargs-parser@*": version "20.2.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" @@ -1800,61 +1817,62 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.12.0.tgz#00d1b23b40b58031e6d7c04a5bc6c1a30a2e834a" - integrity sha512-wHKj6q8s70sO5i39H2g1gtpCXCvjVszzj6FFygneNFyIAxRvNSVz9GML7XpqrB9t7hNutXw+MHnLN/Ih6uyB8Q== +"@typescript-eslint/eslint-plugin@^4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz#92db8e7c357ed7d69632d6843ca70b71be3a721d" + integrity sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww== dependencies: - "@typescript-eslint/experimental-utils" "4.12.0" - "@typescript-eslint/scope-manager" "4.12.0" + "@typescript-eslint/experimental-utils" "4.14.0" + "@typescript-eslint/scope-manager" "4.14.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" + lodash "^4.17.15" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.12.0.tgz#372838e76db76c9a56959217b768a19f7129546b" - integrity sha512-MpXZXUAvHt99c9ScXijx7i061o5HEjXltO+sbYfZAAHxv3XankQkPaNi5myy0Yh0Tyea3Hdq1pi7Vsh0GJb0fA== +"@typescript-eslint/experimental-utils@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz#5aa7b006736634f588a69ee343ca959cd09988df" + integrity sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.12.0" - "@typescript-eslint/types" "4.12.0" - "@typescript-eslint/typescript-estree" "4.12.0" + "@typescript-eslint/scope-manager" "4.14.0" + "@typescript-eslint/types" "4.14.0" + "@typescript-eslint/typescript-estree" "4.14.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.12.0.tgz#e1cf30436e4f916c31fcc962158917bd9e9d460a" - integrity sha512-9XxVADAo9vlfjfoxnjboBTxYOiNY93/QuvcPgsiKvHxW6tOZx1W4TvkIQ2jB3k5M0pbFP5FlXihLK49TjZXhuQ== +"@typescript-eslint/parser@^4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.14.0.tgz#62d4cd2079d5c06683e9bfb200c758f292c4dee7" + integrity sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg== dependencies: - "@typescript-eslint/scope-manager" "4.12.0" - "@typescript-eslint/types" "4.12.0" - "@typescript-eslint/typescript-estree" "4.12.0" + "@typescript-eslint/scope-manager" "4.14.0" + "@typescript-eslint/types" "4.14.0" + "@typescript-eslint/typescript-estree" "4.14.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.12.0.tgz#beeb8beca895a07b10c593185a5612f1085ef279" - integrity sha512-QVf9oCSVLte/8jvOsxmgBdOaoe2J0wtEmBr13Yz0rkBNkl5D8bfnf6G4Vhox9qqMIoG7QQoVwd2eG9DM/ge4Qg== +"@typescript-eslint/scope-manager@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz#55a4743095d684e1f7b7180c4bac2a0a3727f517" + integrity sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q== dependencies: - "@typescript-eslint/types" "4.12.0" - "@typescript-eslint/visitor-keys" "4.12.0" + "@typescript-eslint/types" "4.14.0" + "@typescript-eslint/visitor-keys" "4.14.0" -"@typescript-eslint/types@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.12.0.tgz#fb891fe7ccc9ea8b2bbd2780e36da45d0dc055e5" - integrity sha512-N2RhGeheVLGtyy+CxRmxdsniB7sMSCfsnbh8K/+RUIXYYq3Ub5+sukRCjVE80QerrUBvuEvs4fDhz5AW/pcL6g== +"@typescript-eslint/types@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.14.0.tgz#d8a8202d9b58831d6fd9cee2ba12f8a5a5dd44b6" + integrity sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A== -"@typescript-eslint/typescript-estree@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.12.0.tgz#3963418c850f564bdab3882ae23795d115d6d32e" - integrity sha512-gZkFcmmp/CnzqD2RKMich2/FjBTsYopjiwJCroxqHZIY11IIoN0l5lKqcgoAPKHt33H2mAkSfvzj8i44Jm7F4w== +"@typescript-eslint/typescript-estree@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz#4bcd67486e9acafc3d0c982b23a9ab8ac8911ed7" + integrity sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag== dependencies: - "@typescript-eslint/types" "4.12.0" - "@typescript-eslint/visitor-keys" "4.12.0" + "@typescript-eslint/types" "4.14.0" + "@typescript-eslint/visitor-keys" "4.14.0" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" @@ -1862,12 +1880,12 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.12.0": - version "4.12.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.12.0.tgz#a470a79be6958075fa91c725371a83baf428a67a" - integrity sha512-hVpsLARbDh4B9TKYz5cLbcdMIOAoBYgFPCSP9FFS/liSF+b33gVNq8JHY3QGhHNVz85hObvL7BEYLlgx553WCw== +"@typescript-eslint/visitor-keys@4.14.0": + version "4.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz#b1090d9d2955b044b2ea2904a22496849acbdf54" + integrity sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA== dependencies: - "@typescript-eslint/types" "4.12.0" + "@typescript-eslint/types" "4.14.0" eslint-visitor-keys "^2.0.0" "@ungap/promise-all-settled@1.1.2": @@ -1883,64 +1901,21 @@ "@webassemblyjs/helper-numbers" "1.11.0" "@webassemblyjs/helper-wasm-bytecode" "1.11.0" -"@webassemblyjs/ast@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.1.tgz#76c6937716d68bf1484c15139f5ed30b9abc8bb4" - integrity sha512-uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.1" - "@webassemblyjs/helper-wasm-bytecode" "1.9.1" - "@webassemblyjs/wast-parser" "1.9.1" - "@webassemblyjs/floating-point-hex-parser@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== -"@webassemblyjs/floating-point-hex-parser@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz#9eb0ff90a1cdeef51f36ba533ed9f06b5cdadd09" - integrity sha512-5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg== - "@webassemblyjs/helper-api-error@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== -"@webassemblyjs/helper-api-error@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz#ad89015c4246cd7f5ed0556700237f8b9c2c752f" - integrity sha512-y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA== - "@webassemblyjs/helper-buffer@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== -"@webassemblyjs/helper-buffer@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz#186e67ac25f9546ea7939759413987f157524133" - integrity sha512-uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w== - -"@webassemblyjs/helper-code-frame@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz#aab177b7cc87a318a8f8664ad68e2c3828ebc42b" - integrity sha512-ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.1" - -"@webassemblyjs/helper-fsm@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz#527e91628e84d13d3573884b3dc4c53a81dcb911" - integrity sha512-J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw== - -"@webassemblyjs/helper-module-context@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz#778670b3d471f7cf093d1e7c0dde431b54310e16" - integrity sha512-IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-numbers@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" @@ -1955,11 +1930,6 @@ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== -"@webassemblyjs/helper-wasm-bytecode@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz#563f59bcf409ccf469edde168b9426961ffbf6df" - integrity sha512-i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ== - "@webassemblyjs/helper-wasm-section@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" @@ -1970,16 +1940,6 @@ "@webassemblyjs/helper-wasm-bytecode" "1.11.0" "@webassemblyjs/wasm-gen" "1.11.0" -"@webassemblyjs/helper-wasm-section@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz#f7988f94c12b01b99a16120cb01dc099b00e4798" - integrity sha512-FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-buffer" "1.9.1" - "@webassemblyjs/helper-wasm-bytecode" "1.9.1" - "@webassemblyjs/wasm-gen" "1.9.1" - "@webassemblyjs/ieee754@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" @@ -1987,13 +1947,6 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/ieee754@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz#3b715871ca7d75784717cf9ceca9d7b81374b8af" - integrity sha512-EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - "@webassemblyjs/leb128@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" @@ -2001,23 +1954,11 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/leb128@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.1.tgz#b2ecaa39f9e8277cc9c707c1ca8b2aa7b27d0b72" - integrity sha512-Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw== - dependencies: - "@xtuc/long" "4.2.2" - "@webassemblyjs/utf8@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== -"@webassemblyjs/utf8@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.1.tgz#d02d9daab85cda3211e43caf31dca74c260a73b0" - integrity sha512-llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg== - "@webassemblyjs/wasm-edit@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" @@ -2032,20 +1973,6 @@ "@webassemblyjs/wasm-parser" "1.11.0" "@webassemblyjs/wast-printer" "1.11.0" -"@webassemblyjs/wasm-edit@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz#e27a6bdbf78e5c72fa812a2fc3cbaad7c3e37578" - integrity sha512-S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-buffer" "1.9.1" - "@webassemblyjs/helper-wasm-bytecode" "1.9.1" - "@webassemblyjs/helper-wasm-section" "1.9.1" - "@webassemblyjs/wasm-gen" "1.9.1" - "@webassemblyjs/wasm-opt" "1.9.1" - "@webassemblyjs/wasm-parser" "1.9.1" - "@webassemblyjs/wast-printer" "1.9.1" - "@webassemblyjs/wasm-gen@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" @@ -2057,17 +1984,6 @@ "@webassemblyjs/leb128" "1.11.0" "@webassemblyjs/utf8" "1.11.0" -"@webassemblyjs/wasm-gen@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz#56a0787d1fa7994fdc7bea59004e5bec7189c5fc" - integrity sha512-bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-wasm-bytecode" "1.9.1" - "@webassemblyjs/ieee754" "1.9.1" - "@webassemblyjs/leb128" "1.9.1" - "@webassemblyjs/utf8" "1.9.1" - "@webassemblyjs/wasm-opt@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" @@ -2078,16 +1994,6 @@ "@webassemblyjs/wasm-gen" "1.11.0" "@webassemblyjs/wasm-parser" "1.11.0" -"@webassemblyjs/wasm-opt@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz#fbdf8943a825e6dcc4cd69c3e092289fa4aec96c" - integrity sha512-gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-buffer" "1.9.1" - "@webassemblyjs/wasm-gen" "1.9.1" - "@webassemblyjs/wasm-parser" "1.9.1" - "@webassemblyjs/wasm-parser@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" @@ -2100,30 +2006,6 @@ "@webassemblyjs/leb128" "1.11.0" "@webassemblyjs/utf8" "1.11.0" -"@webassemblyjs/wasm-parser@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz#5e8352a246d3f605312c8e414f7990de55aaedfa" - integrity sha512-ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-api-error" "1.9.1" - "@webassemblyjs/helper-wasm-bytecode" "1.9.1" - "@webassemblyjs/ieee754" "1.9.1" - "@webassemblyjs/leb128" "1.9.1" - "@webassemblyjs/utf8" "1.9.1" - -"@webassemblyjs/wast-parser@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz#e25ef13585c060073c1db0d6bd94340fdeee7596" - integrity sha512-2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/floating-point-hex-parser" "1.9.1" - "@webassemblyjs/helper-api-error" "1.9.1" - "@webassemblyjs/helper-code-frame" "1.9.1" - "@webassemblyjs/helper-fsm" "1.9.1" - "@xtuc/long" "4.2.2" - "@webassemblyjs/wast-printer@1.11.0": version "1.11.0" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" @@ -2132,14 +2014,10 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz#b9f38e93652037d4f3f9c91584635af4191ed7c1" - integrity sha512-tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w== - dependencies: - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/wast-parser" "1.9.1" - "@xtuc/long" "4.2.2" +"@webpack-cli/configtest@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.0.tgz#2aff5f1ebc6f793c13ba9b2a701d180eab17f5ee" + integrity sha512-Un0SdBoN1h4ACnIO7EiCjWuyhNI0Jl96JC+63q6xi4HDUYRZn8Auluea9D+v9NWKc5J4sICVEltdBaVjLX39xw== "@webpack-cli/info@^1.2.1": version "1.2.1" @@ -2148,10 +2026,10 @@ dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.2.1.tgz#7513d7a769e3f97958de799b5b49874425ae3396" - integrity sha512-Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw== +"@webpack-cli/serve@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.2.2.tgz#1f8eee44f96524756268f5e3f43e9d943f864d41" + integrity sha512-03GkWxcgFfm8+WIwcsqJb9agrSDNDDoxaNnexPnCCexP5SCE4IgFd9lNpSy+K2nFqVMpgTFw6SwbmVAVTndVew== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2606,13 +2484,13 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -autoprefixer@^10.2.1: - version "10.2.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.1.tgz#ce96870df6ddd9ba4c9bbba56c54b9ef4b00a962" - integrity sha512-dwP0UjyYvROUvtU+boBx8ff5pPWami1NGTrJs9YUsS/oZVbRAcdNHOOuXSA1fc46tgKqe072cVaKD69rvCc3QQ== +autoprefixer@^10.2.3: + version "10.2.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.2.3.tgz#2834b55b75cfc10fa80c66000a66dc94b7136804" + integrity sha512-vlz+iv+EnLkVaTgX8wApfYzmK3LUfK8Z9XAnmflzxMy/+oFuNK8fVGQV79SOpBv4jxk2YQJimw4hXIKZ29570A== dependencies: browserslist "^4.16.1" - caniuse-lite "^1.0.30001173" + caniuse-lite "^1.0.30001178" colorette "^1.2.1" fraction.js "^4.0.13" normalize-range "^0.1.2" @@ -3096,6 +2974,11 @@ caniuse-lite@^1.0.30001173: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz#3c47bbe3cd6d7a9eda7f50ac016d158005569f56" integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== +caniuse-lite@^1.0.30001178: + version "1.0.30001179" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz#b0803883b4471a6c62066fb1752756f8afc699c8" + integrity sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -3853,10 +3736,10 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -cypress@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.2.1.tgz#27d5fbcf008c698c390fdb0c03441804176d06c4" - integrity sha512-OYkSgzA4J4Q7eMjZvNf5qWpBLR4RXrkqjL3UZ1UzGGLAskO0nFTi/RomNTG6TKvL3Zp4tw4zFY1gp5MtmkCZrA== +cypress@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-6.3.0.tgz#e27bba01d7e493265700e1e85333dca0b0127ede" + integrity sha512-Ec6TAFOxdSB2HPINNJ1f7z75pENXcfCaQkz+A9j0eGSvusFJ2NNErq650DexCbNJAnCQkPqXB4XPH9kXnSQnUA== dependencies: "@cypress/listr-verbose-renderer" "^0.4.1" "@cypress/request" "^2.88.5" @@ -4452,10 +4335,10 @@ enhanced-resolve@^4.0.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.3.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz#c89b0c34f17f931902ef2913a125d4b825b49b6f" - integrity sha512-4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA== +enhanced-resolve@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -4541,6 +4424,11 @@ es-abstract@^1.18.0-next.1: string.prototype.trimend "^1.0.1" string.prototype.trimstart "^1.0.1" +es-module-lexer@^0.3.26: + version "0.3.26" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.3.26.tgz#7b507044e97d5b03b01d4392c74ffeb9c177a83b" + integrity sha512-Va0Q/xqtrss45hWzP8CZJwzGSZJjDM5/MJRE3IXXnUCcVLElR9BRaE9F62BopysASyc4nM3uwhSW7FFB9nlWAA== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -4669,13 +4557,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.17.0: - version "7.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" - integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== +eslint@^7.18.0: + version "7.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" + integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.2" + "@eslint/eslintrc" "^0.3.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -4699,7 +4587,7 @@ eslint@^7.17.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -7118,7 +7006,7 @@ jest-watcher@^26.6.2: jest-util "^26.6.2" string-length "^4.0.1" -jest-worker@^26.6.1, jest-worker@^26.6.2: +jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -8028,10 +7916,10 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.3.tgz#7802e62b34199aa7d1a62e654395859a836486a0" - integrity sha512-7lvliDSMiuZc81kI+5/qxvn47SCM7BehXex3f2c6l/pR3Goj58IQxZh9nuPQ3AkGQgoETyXuIqLDaO5Oa0TyBw== +mini-css-extract-plugin@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.4.tgz#706e69632cdcdb8b15bf8e638442a0dba304a9c8" + integrity sha512-dNjqyeogUd8ucUgw5sxm1ahvSfSUgef7smbmATRSbDm4EmNx5kQA6VdUEhEeCKSjX6CTYjb5vxgMUvRjqP3uHg== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -10183,10 +10071,10 @@ sass-graph@2.2.5: scss-tokenizer "^0.2.3" yargs "^13.3.2" -sass-loader@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.0.tgz#1727fcc0c32ab3eb197cda61d78adf4e9174a4b3" - integrity sha512-ZCKAlczLBbFd3aGAhowpYEy69Te3Z68cg8bnHHl6WnSCvnKpbM6pQrz957HWMa8LKVuhnD9uMplmMAHwGQtHeg== +sass-loader@^10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== dependencies: klona "^2.0.4" loader-utils "^2.0.0" @@ -11053,18 +10941,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" - integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== - dependencies: - jest-worker "^26.6.1" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.8" - terser-webpack-plugin@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" @@ -11086,7 +10962,7 @@ terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.8, terser@^5.5.1: +terser@^5.5.1: version "5.5.1" resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== @@ -11786,14 +11662,15 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-cli@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.3.1.tgz#87a7873bc9c6a4708aa657759274b691e72a04a8" - integrity sha512-/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA== +webpack-cli@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.4.0.tgz#38c7fa01ea31510f5c490245dd1bb28018792f1b" + integrity sha512-/Qh07CXfXEkMu5S8wEpjuaw2Zj/CC0hf/qbTDp6N8N7JjdGuaOjZ7kttz+zhuJO/J5m7alQEhNk9lsc4rC6xgQ== dependencies: "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.0.0" "@webpack-cli/info" "^1.2.1" - "@webpack-cli/serve" "^1.2.1" + "@webpack-cli/serve" "^1.2.2" colorette "^1.2.1" commander "^6.2.0" enquirer "^2.3.6" @@ -11803,7 +11680,7 @@ webpack-cli@^4.3.1: interpret "^2.2.0" rechoir "^0.7.0" v8-compile-cache "^2.2.0" - webpack-merge "^4.2.2" + webpack-merge "^5.7.3" webpack-dev-middleware@^3.7.2: version "3.7.3" @@ -11816,10 +11693,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.11.1: - version "3.11.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz#c74028bf5ba8885aaf230e48a20e8936ab8511f0" - integrity sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ== +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -11863,12 +11740,13 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== +webpack-merge@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== dependencies: - lodash "^4.17.15" + clone-deep "^4.0.1" + wildcard "^2.0.0" webpack-sources@^1.1.0: version "1.4.3" @@ -11886,40 +11764,10 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.12.1: - version "5.12.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.12.1.tgz#e81b916d17ea1c6be33c7b486aeebd5e8c235aac" - integrity sha512-Bh6hPzUvTLuGZg33xsZLEtAkaEJf9ux29WwGj4IeAGUCy7RE8zhqe4aHN4UqA8yHmHzvhORFH2p9ohB6h6R3yg== - dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.45" - "@webassemblyjs/ast" "1.9.1" - "@webassemblyjs/helper-module-context" "1.9.1" - "@webassemblyjs/wasm-edit" "1.9.1" - "@webassemblyjs/wasm-parser" "1.9.1" - acorn "^8.0.4" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.3.1" - eslint-scope "^5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - pkg-dir "^5.0.0" - schema-utils "^3.0.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.0.3" - watchpack "^2.0.0" - webpack-sources "^2.1.1" - -webpack@^5.12.3: - version "5.12.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.12.3.tgz#2682aeb6bdf5622a365ef855392f8fa338bcaa28" - integrity sha512-7tiQmcTnKhZwbf7X7sEfXe0pgkGjUZjT6JfYkZHvvIb4/ZsXl1rJu5PxsJoN7W3v5sNSP/8TgBoiOdDqVdvK5w== +webpack@^5.16.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.16.0.tgz#796e093c2d92c229f013aefefde82b50c0572570" + integrity sha512-QOkctcjYfEGxcYg4AzPJafyAQ7ANc266/URkX881uFA7b2k31E0Dmpy1ExfppHOTp1kHDTsRh9sXojVUvgPF0g== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.45" @@ -11929,7 +11777,8 @@ webpack@^5.12.3: acorn "^8.0.4" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.3.1" + enhanced-resolve "^5.7.0" + es-module-lexer "^0.3.26" eslint-scope "^5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" @@ -12027,6 +11876,11 @@ widest-line@^3.1.0: dependencies: string-width "^4.0.0" +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + windows-release@^3.1.0: version "3.3.3" resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999"