Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions demos/aurelia/src/examples/slickgrid/example48.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ <h3>
</aurelia-slickgrid>
</div>

<label class="checkbox-inline control-label mb-3">
<label class="checkbox-inline control-label my-3">
<input
type="checkbox"
data-test="enable-multi-selection"
checked.bind="enableMultiSelection"
change.trigger="toggleMultiSelection($event)"
/>
Enable multi-selection (Ctrl/Cmd-click or drag)
<b>Enable multi-selection</b> (Ctrl/Cmd-click or drag)
</label>

<h3>
Expand Down
35 changes: 35 additions & 0 deletions demos/aurelia/test/cypress/e2e/example48.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,5 +314,40 @@ describe('Example 48 - Hybrid Selection Model', () => {
cy.get('#selectionRange2').contains(/"fromRow":2,"fromCell":0,"toRow":2,"toCell":7/);
cy.get('#selectionRange2').contains(/"fromRow":4,"fromCell":0,"toRow":4,"toCell":7/);
});

it('should preserve row ranges when enabling multi-selection and show the live modifier-drag preview', () => {
const gridSelector = '#grid48-2';
const firstRange = '{"fromRow":0,"fromCell":0,"toRow":1,"toCell":7}';
const secondRange = '{"fromRow":3,"fromCell":0,"toRow":4,"toCell":7}';
const combinedRanges = `${firstRange}${secondRange}`;

cy.get(`${gridSelector} .slick-viewport-top.slick-viewport-left`).scrollTo('top');
cy.get(`${gridSelector} .slick-row[data-row="1"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="2"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="4"] input[type=checkbox]`).uncheck({ force: true });
cy.get('[data-test="enable-multi-selection"]').uncheck();

const firstRowCell = `${gridSelector} .slick-row[data-row="0"] .slick-cell.l1.r1`;
cy.get(firstRowCell).dragStart();
cy.get(firstRowCell).dragCell(1, 0);
cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', firstRange);

cy.get('[data-test="enable-multi-selection"]').check();
cy.get('#selectionRange2').should('have.text', firstRange);

const secondRowCell = `${gridSelector} .slick-row[data-row="3"] .slick-cell.l1.r1`;
cy.get(secondRowCell).as('secondRowCell');
cy.get('@secondRowCell').trigger('mousedown', { which: 1, ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 10, { ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 52, { ctrlKey: true, force: true });

cy.get('#selectionRange2').should('have.text', combinedRanges);
cy.get(`${gridSelector} .slick-cell.selected`).should('have.length', 8 * 4);
cy.get(`${gridSelector} .slick-row[data-row="2"] .slick-cell.selected`).should('have.length', 0);

cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', combinedRanges);
});
});
});
6 changes: 3 additions & 3 deletions demos/react/src/examples/slickgrid/Example48.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -271,9 +271,9 @@ const Example48: React.FC = () => {
/>
</div>

<label className="checkbox-inline control-label mb-3">
<input type="checkbox" data-test="enable-multi-selection" checked={enableMultiSelection} onChange={toggleMultiSelection} /> Enable
multi-selection (Ctrl/Cmd-click or drag)
<label className="checkbox-inline control-label my-3">
<input type="checkbox" data-test="enable-multi-selection" checked={enableMultiSelection} onChange={toggleMultiSelection} />
<b className="ms-2">Enable multi-selection</b> (Ctrl/Cmd-click or drag)
</label>

<h3>
Expand Down
35 changes: 35 additions & 0 deletions demos/react/test/cypress/e2e/example48.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,5 +314,40 @@ describe('Example 48 - Hybrid Selection Model', () => {
cy.get('#selectionRange2').contains(/"fromRow":2,"fromCell":0,"toRow":2,"toCell":7/);
cy.get('#selectionRange2').contains(/"fromRow":4,"fromCell":0,"toRow":4,"toCell":7/);
});

it('should preserve row ranges when enabling multi-selection and show the live modifier-drag preview', () => {
const gridSelector = '#grid48-2';
const firstRange = '{"fromRow":0,"fromCell":0,"toRow":1,"toCell":7}';
const secondRange = '{"fromRow":3,"fromCell":0,"toRow":4,"toCell":7}';
const combinedRanges = `${firstRange}${secondRange}`;

cy.get(`${gridSelector} .slick-viewport-top.slick-viewport-left`).scrollTo('top');
cy.get(`${gridSelector} .slick-row[data-row="1"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="2"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="4"] input[type=checkbox]`).uncheck({ force: true });
cy.get('[data-test="enable-multi-selection"]').uncheck();

const firstRowCell = `${gridSelector} .slick-row[data-row="0"] .slick-cell.l1.r1`;
cy.get(firstRowCell).dragStart();
cy.get(firstRowCell).dragCell(1, 0);
cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', firstRange);

cy.get('[data-test="enable-multi-selection"]').check();
cy.get('#selectionRange2').should('have.text', firstRange);

const secondRowCell = `${gridSelector} .slick-row[data-row="3"] .slick-cell.l1.r1`;
cy.get(secondRowCell).as('secondRowCell');
cy.get('@secondRowCell').trigger('mousedown', { which: 1, ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 10, { ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 52, { ctrlKey: true, force: true });

cy.get('#selectionRange2').should('have.text', combinedRanges);
cy.get(`${gridSelector} .slick-cell.selected`).should('have.length', 8 * 4);
cy.get(`${gridSelector} .slick-row[data-row="2"] .slick-cell.selected`).should('have.length', 0);

cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', combinedRanges);
});
});
});
2 changes: 1 addition & 1 deletion demos/vanilla/src/examples/example37.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ <h5 class="title is-5">
checked.bind="enableMultiSelection"
onclick.trigger="toggleMultiSelection(event.target.checked)"
/>
Enable multi-selection (Ctrl/Cmd-click or drag) on both grids
<b>Enable multi-selection</b> (Ctrl/Cmd-click or drag) on both grids
</label>
</div>

Expand Down
4 changes: 2 additions & 2 deletions demos/vue/src/components/Example48.vue
Original file line number Diff line number Diff line change
Expand Up @@ -249,9 +249,9 @@ function toggleSubTitle() {
</SlickgridVue>
</div>

<label class="checkbox-inline control-label mb-3">
<label class="checkbox-inline control-label my-3">
<input type="checkbox" data-test="enable-multi-selection" :checked="enableMultiSelection" @change="toggleMultiSelection" />
Enable multi-selection (Ctrl/Cmd-click or drag)
<b>Enable multi-selection</b> (Ctrl/Cmd-click or drag)
</label>

<h3>
Expand Down
35 changes: 35 additions & 0 deletions demos/vue/test/cypress/e2e/example48.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,5 +314,40 @@ describe('Example 48 - Hybrid Selection Model', () => {
cy.get('#selectionRange2').contains(/"fromRow":2,"fromCell":0,"toRow":2,"toCell":7/);
cy.get('#selectionRange2').contains(/"fromRow":4,"fromCell":0,"toRow":4,"toCell":7/);
});

it('should preserve row ranges when enabling multi-selection and show the live modifier-drag preview', () => {
const gridSelector = '#grid48-2';
const firstRange = '{"fromRow":0,"fromCell":0,"toRow":1,"toCell":7}';
const secondRange = '{"fromRow":3,"fromCell":0,"toRow":4,"toCell":7}';
const combinedRanges = `${firstRange}${secondRange}`;

cy.get(`${gridSelector} .slick-viewport-top.slick-viewport-left`).scrollTo('top');
cy.get(`${gridSelector} .slick-row[data-row="1"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="2"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="4"] input[type=checkbox]`).uncheck({ force: true });
cy.get('[data-test="enable-multi-selection"]').uncheck();

const firstRowCell = `${gridSelector} .slick-row[data-row="0"] .slick-cell.l1.r1`;
cy.get(firstRowCell).dragStart();
cy.get(firstRowCell).dragCell(1, 0);
cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', firstRange);

cy.get('[data-test="enable-multi-selection"]').check();
cy.get('#selectionRange2').should('have.text', firstRange);

const secondRowCell = `${gridSelector} .slick-row[data-row="3"] .slick-cell.l1.r1`;
cy.get(secondRowCell).as('secondRowCell');
cy.get('@secondRowCell').trigger('mousedown', { which: 1, ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 10, { ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 52, { ctrlKey: true, force: true });

cy.get('#selectionRange2').should('have.text', combinedRanges);
cy.get(`${gridSelector} .slick-cell.selected`).should('have.length', 8 * 4);
cy.get(`${gridSelector} .slick-row[data-row="2"] .slick-cell.selected`).should('have.length', 0);

cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', combinedRanges);
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ <h3>
</angular-slickgrid>
</div>

<label class="checkbox-inline control-label mb-3">
<label class="checkbox-inline control-label my-3">
<input type="checkbox" data-test="enable-multi-selection" [checked]="enableMultiSelection" (change)="toggleMultiSelection($event)" />
Enable multi-selection (Ctrl/Cmd-click or drag)
<b>Enable multi-selection</b> (Ctrl/Cmd-click or drag)
</label>

<h3>
Expand Down
35 changes: 35 additions & 0 deletions frameworks/angular-slickgrid/test/cypress/e2e/example48.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,5 +314,40 @@ describe('Example 48 - Hybrid Selection Model', () => {
cy.get('#selectionRange2').contains(/"fromRow":2,"fromCell":0,"toRow":2,"toCell":7/);
cy.get('#selectionRange2').contains(/"fromRow":4,"fromCell":0,"toRow":4,"toCell":7/);
});

it('should preserve row ranges when enabling multi-selection and show the live modifier-drag preview', () => {
const gridSelector = '#grid48-2';
const firstRange = '{"fromRow":0,"fromCell":0,"toRow":1,"toCell":7}';
const secondRange = '{"fromRow":3,"fromCell":0,"toRow":4,"toCell":7}';
const combinedRanges = `${firstRange}${secondRange}`;

cy.get(`${gridSelector} .slick-viewport-top.slick-viewport-left`).scrollTo('top');
cy.get(`${gridSelector} .slick-row[data-row="1"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="2"] input[type=checkbox]`).uncheck({ force: true });
cy.get(`${gridSelector} .slick-row[data-row="4"] input[type=checkbox]`).uncheck({ force: true });
cy.get('[data-test="enable-multi-selection"]').uncheck();

const firstRowCell = `${gridSelector} .slick-row[data-row="0"] .slick-cell.l1.r1`;
cy.get(firstRowCell).dragStart();
cy.get(firstRowCell).dragCell(1, 0);
cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', firstRange);

cy.get('[data-test="enable-multi-selection"]').check();
cy.get('#selectionRange2').should('have.text', firstRange);

const secondRowCell = `${gridSelector} .slick-row[data-row="3"] .slick-cell.l1.r1`;
cy.get(secondRowCell).as('secondRowCell');
cy.get('@secondRowCell').trigger('mousedown', { which: 1, ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 10, { ctrlKey: true, force: true });
cy.get('@secondRowCell').trigger('mousemove', 30, 52, { ctrlKey: true, force: true });

cy.get('#selectionRange2').should('have.text', combinedRanges);
cy.get(`${gridSelector} .slick-cell.selected`).should('have.length', 8 * 4);
cy.get(`${gridSelector} .slick-row[data-row="2"] .slick-cell.selected`).should('have.length', 0);

cy.dragEnd(gridSelector);
cy.get('#selectionRange2').should('have.text', combinedRanges);
});
});
});
Loading
Loading