slick-table 1.1.76 → 1.1.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/index.cjs.js +75 -75
  2. package/dist/index.es.js +2807 -3064
  3. package/dist/styles/icons.scss +1 -0
  4. package/dist/types/features/context-menu/ui/ButtonResetFilters/ui/ButtonResetFilters.d.ts.map +1 -1
  5. package/dist/types/features/context-menu/ui/ContextMenu.d.ts.map +1 -1
  6. package/dist/types/features/context-menu/ui/CopyRows/CopyRows.d.ts +7 -0
  7. package/dist/types/features/context-menu/ui/CopyRows/CopyRows.d.ts.map +1 -0
  8. package/dist/types/features/context-menu/ui/CopyRows/index.d.ts +2 -0
  9. package/dist/types/features/context-menu/ui/CopyRows/index.d.ts.map +1 -0
  10. package/dist/types/features/context-menu/ui/PasteRows/PasteRows.d.ts +7 -0
  11. package/dist/types/features/context-menu/ui/PasteRows/PasteRows.d.ts.map +1 -0
  12. package/dist/types/features/context-menu/ui/PasteRows/index.d.ts +2 -0
  13. package/dist/types/features/context-menu/ui/PasteRows/index.d.ts.map +1 -0
  14. package/dist/types/shared/lib/slickgrid/index.d.ts +1 -1
  15. package/dist/types/shared/lib/slickgrid/index.d.ts.map +1 -1
  16. package/dist/types/shared/lib/slickgrid/model/SlickTable/table/SlickTable.d.ts +2 -1
  17. package/dist/types/shared/lib/slickgrid/model/SlickTable/table/SlickTable.d.ts.map +1 -1
  18. package/dist/types/shared/model/types/ISlickTable.d.ts +3 -0
  19. package/dist/types/shared/model/types/ISlickTable.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/src/app/styles/icons.scss +1 -0
  22. package/src/features/context-menu/ui/ButtonResetFilters/ui/ButtonResetFilters.tsx +5 -9
  23. package/src/features/context-menu/ui/ContextMenu.tsx +4 -0
  24. package/src/features/context-menu/ui/CopyRows/CopyRows.tsx +40 -0
  25. package/src/features/context-menu/ui/CopyRows/index.ts +1 -0
  26. package/src/features/context-menu/ui/PasteRows/PasteRows.tsx +56 -0
  27. package/src/features/context-menu/ui/PasteRows/index.ts +1 -0
  28. package/src/shared/lib/slickgrid/index.ts +1 -0
  29. package/src/shared/lib/slickgrid/model/SlickTable/table/SlickTable.ts +3 -0
  30. package/src/shared/model/types/ISlickTable.ts +3 -0
@@ -8,6 +8,7 @@ $red: #ff3737;
8
8
  @include svg("sgi-checkbox-multiple-outline", $gray , "M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,16H8V4H20V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16M18.53,8.06L17.47,7L12.59,11.88L10.47,9.76L9.41,10.82L12.59,14L18.53,8.06Z");
9
9
  @include svg("sgi-collapse-all-outline", $gray, "M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H13V15H19V17Z");
10
10
  @include svg("sgi-content-copy", $gray, "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z");
11
+ @include svg("sgi-content-paste", $gray, "M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z");
11
12
  @include svg("sgi-download", $gray, "M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z");
12
13
  @include svg("sgi-expand-all-outline", $gray, "M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H17V19H15V17H13V15H15V13H17V15H19V17Z");
13
14
  @include svg("sgi-link", $gray, "M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z");
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonResetFilters.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/context-menu/ui/ButtonResetFilters/ui/ButtonResetFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAY,cAAc,EAAE,MAAM,OAAO,CAAC;AAQ/D,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAyBzC,CAAC;AAEF,UAAU,MAAM;IACf,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"ButtonResetFilters.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/context-menu/ui/ButtonResetFilters/ui/ButtonResetFilters.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQrD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,MAAM,CAsBzC,CAAC;AAEF,UAAU,MAAM;IACf,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../../../src/features/context-menu/ui/ContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAsB,MAAM,OAAO,CAAC;AAkB/C,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,KAAK,CAyBjC,CAAC;AAEF,UAAU,KAAK;IACd,OAAO,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"ContextMenu.d.ts","sourceRoot":"","sources":["../../../../../src/features/context-menu/ui/ContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAsB,MAAM,OAAO,CAAC;AAoB/C,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,KAAK,CA2BjC,CAAC;AAEF,UAAU,KAAK;IACd,OAAO,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,7 @@
1
+ import { Dispatch, FC, SetStateAction } from 'react';
2
+ export declare const CopyRows: FC<IProps>;
3
+ interface IProps {
4
+ setIsOpened: Dispatch<SetStateAction<boolean>>;
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=CopyRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyRows.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/CopyRows/CopyRows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQrD,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,MAAM,CA2B/B,CAAC;AAEF,UAAU,MAAM;IACf,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,2 @@
1
+ export { CopyRows } from './CopyRows';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/CopyRows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Dispatch, FC, SetStateAction } from 'react';
2
+ export declare const PasteRows: FC<IProps>;
3
+ interface IProps {
4
+ setIsOpened: Dispatch<SetStateAction<boolean>>;
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=PasteRows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasteRows.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/PasteRows/PasteRows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAYrD,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAuChC,CAAC;AAEF,UAAU,MAAM;IACf,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C"}
@@ -0,0 +1,2 @@
1
+ export { PasteRows } from './PasteRows';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/PasteRows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- export { Autocomplete, ColumnSorter, DateFormatter, DateValidator, EditorAmount, EditorAutocomplete, EditorDate, EditorSelectString, EditorSelectNumber, EmptyStringValidator, FORMATTER_NUMBER, LengthValidator, PercentFormatter, StringFormatter, TotalCalculator, formatterCheckMark, formatterGroupTotals, getFormatterNumber, columnSorter, commitCurrentEdit, copySelectedRows, deleteRows, getDisplayedRows, getLastRow, getNextId, getUpdates, highlightCell, highlightColumns, hotKeysCopy, hotKeysDelete, hotKeysRedo, hotKeysUndo, isDeletionDangerous, onCellChange, onRowCountChanged, onRowsChanged, openContextMenu, printerCheckMark, selectedRows, useHotKeys, useListenIfTablesWereEdited, useUpdateTotal, wereEdited, } from './lib';
1
+ export { Autocomplete, ColumnSorter, DateFormatter, DateValidator, EditorAmount, EditorAutocomplete, EditorDate, EditorSelectString, EditorSelectNumber, EmptyStringValidator, FORMATTER_NUMBER, LengthValidator, PercentFormatter, StringFormatter, TotalCalculator, formatterCheckMark, formatterGroupTotals, getFormatterNumber, columnSorter, commitCurrentEdit, copySelectedRows, deleteRows, getDisplayedRows, getLastRow, getNextId, getUpdates, highlightCell, highlightColumns, hotKeysCopy, hotKeysDelete, hotKeysRedo, hotKeysUndo, isDeletionDangerous, onCellChange, onRowCountChanged, onRowsChanged, openContextMenu, positionToPaste, printerCheckMark, selectedRows, useHotKeys, useListenIfTablesWereEdited, useUpdateTotal, wereEdited, } from './lib';
2
2
  export { ColumnPicker, DownloadManager, DecoratorEndingDate, DecoratorFilter, DecoratorColumnFilter, DecoratorPeriod, DefaultHotKeys, DefaultPrinter, DeletedRowsFilter, Filter, HotKeysDecorator, PreventCopying, RedoUndoOnly, SlickTable, WithConfirmationOfDeletion, WithSummary, WithoutHotKeys, eventContextMenu, eventHeaderContextMenu, eventSummary, } from './model';
3
3
  export { SlickgridTable, WithTableStyles, columnCheckboxSelector, columnIsEdited, eventOpenColumnFilters, handleHeaderButtons, headerButtons, openColumnFilter, } from './ui';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/lib/slickgrid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,2BAA2B,EAC3B,cAAc,EACd,UAAU,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EACN,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GAChB,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/lib/slickgrid/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,2BAA2B,EAC3B,cAAc,EACd,UAAU,GACV,MAAM,OAAO,CAAC;AACf,OAAO,EACN,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GAChB,MAAM,MAAM,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { Column, GridOption, OnKeyDownEventArgs, SlickDataView, SlickEventData, SlickGrid } from 'slickgrid';
2
- import { IColumnPicker, IDownloadManager, IFilter, IGrouping, IHotKeysBehavior, IObserver, IPrinter, ISlickTable, ITotalCalculator } from '../../../../../model/types';
2
+ import { IColumnPicker, IDownloadManager, IEditedRow, IFilter, IGrouping, IHotKeysBehavior, IObserver, IPrinter, ISlickRow, ISlickTable, ITotalCalculator } from '../../../../../model/types';
3
3
  export declare class SlickTable implements ISlickTable {
4
4
  columnPicker: IColumnPicker | null;
5
+ copiedRows: (ISlickRow & IEditedRow)[];
5
6
  downloadManager: IDownloadManager;
6
7
  filter: IFilter;
7
8
  readonly hotKeysBehavior: IHotKeysBehavior;
@@ -1 +1 @@
1
- {"version":3,"file":"SlickTable.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shared/lib/slickgrid/model/SlickTable/table/SlickTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,MAAM,WAAW,CAAC;AAInB,OAAO,EACN,aAAa,EACb,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,UAAW,YAAW,WAAW;IACtC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC1C,eAAe,EAAE,gBAAgB,CAAyB;IAC1D,MAAM,EAAE,OAAO,CAAuB;IAC7C,SAAgB,eAAe,EAAE,gBAAgB,CAAwB;IACzE,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,IAAI,EAAE;QACjB,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B,eAAe,CAAC,EAAE,gBAAgB,CAAC;QACnC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC;KACnC;IA6BM,UAAU,CAChB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,UAAU,GACjB,SAAS;IASL,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAK3E,IAAW,IAAI,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAW,QAAQ,IAAI,SAAS,CAE/B;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,OAAO,KAAK,IAAI,QAEf;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAStC;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAGpC;IAED,IAAW,OAAO,CAAC,OAAO,EAAE,QAAQ,EAEnC;IACD,IAAW,OAAO,IAAI,QAAQ,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAEpC;IAED,IAAW,cAAc,IAGO;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAD5D;IACD,IAAW,cAAc,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAE5D;IAEM,YAAY,IAAI,IAAI;IAKpB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAK5C,eAAe,IAAI,IAAI;IAKvB,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAKzC,KAAK,IAAI,IAAI;CAUpB"}
1
+ {"version":3,"file":"SlickTable.d.ts","sourceRoot":"","sources":["../../../../../../../../src/shared/lib/slickgrid/model/SlickTable/table/SlickTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,MAAM,WAAW,CAAC;AAInB,OAAO,EACN,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,qBAAa,UAAW,YAAW,WAAW;IACtC,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC1C,UAAU,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,CAAM;IAC5C,eAAe,EAAE,gBAAgB,CAAyB;IAC1D,MAAM,EAAE,OAAO,CAAuB;IAC7C,SAAgB,eAAe,EAAE,gBAAgB,CAAwB;IACzE,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,IAAI,EAAE;QACjB,YAAY,CAAC,EAAE,aAAa,CAAC;QAC7B,eAAe,CAAC,EAAE,gBAAgB,CAAC;QACnC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;QAC3B,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,QAAQ,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC;KACnC;IA6BM,UAAU,CAChB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,UAAU,GACjB,SAAS;IASL,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAK3E,IAAW,IAAI,IAAI,SAAS,GAAG,IAAI,CAElC;IACD,IAAW,QAAQ,IAAI,SAAS,CAE/B;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,OAAO,KAAK,IAAI,QAEf;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAStC;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAGpC;IAED,IAAW,OAAO,CAAC,OAAO,EAAE,QAAQ,EAEnC;IACD,IAAW,OAAO,IAAI,QAAQ,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAEpC;IAED,IAAW,cAAc,IAGO;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAD5D;IACD,IAAW,cAAc,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAE5D;IAEM,YAAY,IAAI,IAAI;IAKpB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAK5C,eAAe,IAAI,IAAI;IAKvB,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI;IAKzC,KAAK,IAAI,IAAI;CAUpB"}
@@ -1,14 +1,17 @@
1
1
  import { Column, GridOption, OnKeyDownEventArgs, SlickDataView, SlickEventData, SlickGrid } from 'slickgrid';
2
2
  import { IColumnPicker } from './IColumnPicker';
3
3
  import { IDownloadManager } from './IDownloadManager';
4
+ import { IEditedRow } from './IEditedRow';
4
5
  import { IFilter } from './IFilter';
5
6
  import { IGrouping } from './IGrouping';
6
7
  import { IHotKeysBehavior } from './IHotKeysBehavior';
7
8
  import { IObserver } from './IObserver';
8
9
  import { IPrinter } from './IPrinter';
10
+ import { ISlickRow } from './ISlickRow';
9
11
  import { ITotalCalculator } from './ITotalCalculator';
10
12
  export interface ISlickTable {
11
13
  columnPicker: IColumnPicker | null;
14
+ copiedRows: (ISlickRow & IEditedRow)[];
12
15
  createGrid(dataView: SlickDataView, columns: Column[], options: GridOption): SlickGrid;
13
16
  deleteObserver(observer: IObserver): void;
14
17
  downloadManager: IDownloadManager;
@@ -1 +1 @@
1
- {"version":3,"file":"ISlickTable.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/types/ISlickTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC3B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,UAAU,CACT,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,UAAU,GACjB,SAAS,CAAC;IACb,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1C,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,IAAI,IAAI,CAAC;IACxB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7C,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACnC"}
1
+ {"version":3,"file":"ISlickTable.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/types/ISlickTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,SAAS,EACT,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC3B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC;IACvC,UAAU,CACT,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,UAAU,GACjB,SAAS,CAAC;IACb,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC1C,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACrE,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,eAAe,IAAI,IAAI,CAAC;IACxB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7C,KAAK,IAAI,IAAI,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACnC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slick-table",
3
- "version": "1.1.76",
3
+ "version": "1.1.77",
4
4
  "description": "Enhanced version of SlickGrid library",
5
5
  "private": false,
6
6
  "type": "module",
@@ -8,6 +8,7 @@ $red: #ff3737;
8
8
  @include svg("sgi-checkbox-multiple-outline", $gray , "M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M20,16H8V4H20V16M16,20V22H4A2,2 0 0,1 2,20V7H4V20H16M18.53,8.06L17.47,7L12.59,11.88L10.47,9.76L9.41,10.82L12.59,14L18.53,8.06Z");
9
9
  @include svg("sgi-collapse-all-outline", $gray, "M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H13V15H19V17Z");
10
10
  @include svg("sgi-content-copy", $gray, "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z");
11
+ @include svg("sgi-content-paste", $gray, "M19,20H5V4H7V7H17V4H19M12,2A1,1 0 0,1 13,3A1,1 0 0,1 12,4A1,1 0 0,1 11,3A1,1 0 0,1 12,2M19,2H14.82C14.4,0.84 13.3,0 12,0C10.7,0 9.6,0.84 9.18,2H5A2,2 0 0,0 3,4V20A2,2 0 0,0 5,22H19A2,2 0 0,0 21,20V4A2,2 0 0,0 19,2Z");
11
12
  @include svg("sgi-download", $gray, "M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z");
12
13
  @include svg("sgi-expand-all-outline", $gray, "M4,2A2,2 0 0,0 2,4V14H4V4H14V2H4M8,6A2,2 0 0,0 6,8V18H8V8H18V6H8M20,12V20H12V12H20M20,10H12A2,2 0 0,0 10,12V20A2,2 0 0,0 12,22H20A2,2 0 0,0 22,20V12A2,2 0 0,0 20,10M19,17H17V19H15V17H13V15H15V13H17V15H19V17Z");
13
14
  @include svg("sgi-link", $gray, "M3.9,12C3.9,10.29 5.29,8.9 7,8.9H11V7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H11V15.1H7C5.29,15.1 3.9,13.71 3.9,12M8,13H16V11H8V13M17,7H13V8.9H17C18.71,8.9 20.1,10.29 20.1,12C20.1,13.71 18.71,15.1 17,15.1H13V17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7Z");
@@ -1,5 +1,4 @@
1
- import { Divider } from "@mui/material";
2
- import { Dispatch, FC, Fragment, SetStateAction } from "react";
1
+ import { Dispatch, FC, SetStateAction } from "react";
3
2
 
4
3
  import { eventContextMenu, headerButtons } from "shared/lib/slickgrid";
5
4
 
@@ -24,13 +23,10 @@ export const ButtonResetFilters: FC<IProps> = ({ setIsOpened }) => {
24
23
  if (!hasFiltersApplied(table)) return null;
25
24
 
26
25
  return (
27
- <Fragment>
28
- <Divider />
29
- <Styled.Li onClick={onClick}>
30
- <Styled.Icon className={"sgi sgi-notification-clear-all"}></Styled.Icon>
31
- Reset column filters
32
- </Styled.Li>
33
- </Fragment>
26
+ <Styled.Li onClick={onClick}>
27
+ <Styled.Icon className={"sgi sgi-notification-clear-all"}></Styled.Icon>
28
+ Reset column filters
29
+ </Styled.Li>
34
30
  );
35
31
  };
36
32
 
@@ -10,8 +10,10 @@ import { ButtonResetFilters } from "./ButtonResetFilters";
10
10
  import { ButtonSummary } from "./ButtonSummary";
11
11
  import { ButtonUngroup } from "./ButtonUngroup";
12
12
  import { CollapseAll } from "./CollapseAll";
13
+ import { CopyRows } from "./CopyRows";
13
14
  import { CopyToClipboard } from "./CopyToClipboard";
14
15
  import { ExpandAll } from "./ExpandAll";
16
+ import { PasteRows } from "./PasteRows";
15
17
  import { Print } from "./Print";
16
18
 
17
19
  import Styled from "./ContextMenu.style";
@@ -37,6 +39,8 @@ export const ContextMenu: FC<Props> = ({ tableId }) => {
37
39
  <ExpandAll setIsOpened={setIsOpened} />
38
40
  <CollapseAll setIsOpened={setIsOpened} />
39
41
  <ButtonSummary setIsOpened={setIsOpened} />
42
+ <CopyRows setIsOpened={setIsOpened} />
43
+ <PasteRows setIsOpened={setIsOpened} />
40
44
  </Styled.Ul>
41
45
  </Popup>
42
46
  </Fragment>
@@ -0,0 +1,40 @@
1
+ import { Dispatch, FC, SetStateAction } from "react";
2
+ import { SlickDataView } from "slickgrid";
3
+
4
+ import { eventContextMenu } from "shared/lib/slickgrid";
5
+ import { IEditedRow, ISlickRow } from "shared/model/types";
6
+
7
+ import Styled from "../ContextMenu.style";
8
+
9
+ export const CopyRows: FC<IProps> = ({ setIsOpened }) => {
10
+ const table = eventContextMenu.table;
11
+ const grid = table?.grid;
12
+ const selectedRows = grid?.getSelectedRows();
13
+
14
+ function copyRows() {
15
+ if (!grid || !table || !selectedRows) {
16
+ return;
17
+ }
18
+ const dataView: SlickDataView = grid.getData();
19
+ const result: (ISlickRow & IEditedRow)[] = [];
20
+ for (let i = 0; i < selectedRows.length; i++) {
21
+ result.push(dataView.getItem(selectedRows[i]));
22
+ }
23
+ table.copiedRows = result;
24
+ grid.setSelectedRows([]);
25
+ setIsOpened(false);
26
+ }
27
+
28
+ if (!selectedRows?.length) return null;
29
+
30
+ return (
31
+ <Styled.Li onClick={copyRows}>
32
+ <Styled.Icon className={"sgi sgi-content-copy"}></Styled.Icon>Copy
33
+ selected rows
34
+ </Styled.Li>
35
+ );
36
+ };
37
+
38
+ interface IProps {
39
+ setIsOpened: Dispatch<SetStateAction<boolean>>;
40
+ }
@@ -0,0 +1 @@
1
+ export { CopyRows } from "./CopyRows";
@@ -0,0 +1,56 @@
1
+ import { Dispatch, FC, SetStateAction } from "react";
2
+ import { SlickDataView } from "slickgrid";
3
+
4
+ import {
5
+ eventContextMenu,
6
+ getNextId,
7
+ positionToPaste,
8
+ } from "shared/lib/slickgrid";
9
+ import { IEditedRow, ISlickRow } from "shared/model/types";
10
+
11
+ import Styled from "../ContextMenu.style";
12
+
13
+ export const PasteRows: FC<IProps> = ({ setIsOpened }) => {
14
+ const table = eventContextMenu.table;
15
+ const copiedRows = table?.copiedRows || [];
16
+ const grid = table?.grid;
17
+ const options = grid?.getOptions();
18
+
19
+ function pasteRows() {
20
+ if (!grid || !table) {
21
+ return;
22
+ }
23
+ const dataView: SlickDataView = grid.getData();
24
+ const rows = dataView.getItems();
25
+ const newRows: (ISlickRow & IEditedRow)[] = [];
26
+ const idPropertyName = dataView.getIdPropertyName();
27
+ let nextId = getNextId(grid);
28
+ if (copiedRows.length) {
29
+ copiedRows.forEach((row) => {
30
+ newRows.push({
31
+ ...row,
32
+ [idPropertyName]: nextId++,
33
+ isEdited: true,
34
+ isNew: true,
35
+ });
36
+ });
37
+ rows.splice(positionToPaste(grid), 0, ...newRows);
38
+ dataView.setItems(rows);
39
+ grid.setSelectedRows([]);
40
+ grid.invalidate();
41
+ }
42
+ setIsOpened(false);
43
+ }
44
+
45
+ if (!options?.enableAddRow || !copiedRows.length) return null;
46
+
47
+ return (
48
+ <Styled.Li onClick={pasteRows}>
49
+ <Styled.Icon className={"sgi sgi-content-paste"}></Styled.Icon>Paste rows
50
+ </Styled.Li>
51
+ );
52
+ };
53
+
54
+ interface IProps {
55
+ setIsOpened: Dispatch<SetStateAction<boolean>>;
56
+ }
@@ -0,0 +1 @@
1
+ export { PasteRows } from "./PasteRows";
@@ -36,6 +36,7 @@ export {
36
36
  onRowCountChanged,
37
37
  onRowsChanged,
38
38
  openContextMenu,
39
+ positionToPaste,
39
40
  printerCheckMark,
40
41
  selectedRows,
41
42
  useHotKeys,
@@ -12,11 +12,13 @@ import { localStore } from "shared/lib/localStrore";
12
12
  import {
13
13
  IColumnPicker,
14
14
  IDownloadManager,
15
+ IEditedRow,
15
16
  IFilter,
16
17
  IGrouping,
17
18
  IHotKeysBehavior,
18
19
  IObserver,
19
20
  IPrinter,
21
+ ISlickRow,
20
22
  ISlickTable,
21
23
  ITotalCalculator,
22
24
  } from "shared/model/types";
@@ -29,6 +31,7 @@ import { DefaultPrinter } from "../printer";
29
31
 
30
32
  export class SlickTable implements ISlickTable {
31
33
  public columnPicker: IColumnPicker | null = null;
34
+ public copiedRows: (ISlickRow & IEditedRow)[] = [];
32
35
  public downloadManager: IDownloadManager = new DownloadManager();
33
36
  public filter: IFilter = new WithoutFilter();
34
37
  public readonly hotKeysBehavior: IHotKeysBehavior = new WithoutHotKeys();
@@ -9,15 +9,18 @@ import {
9
9
 
10
10
  import { IColumnPicker } from "./IColumnPicker";
11
11
  import { IDownloadManager } from "./IDownloadManager";
12
+ import { IEditedRow } from "./IEditedRow";
12
13
  import { IFilter } from "./IFilter";
13
14
  import { IGrouping } from "./IGrouping";
14
15
  import { IHotKeysBehavior } from "./IHotKeysBehavior";
15
16
  import { IObserver } from "./IObserver";
16
17
  import { IPrinter } from "./IPrinter";
18
+ import { ISlickRow } from "./ISlickRow";
17
19
  import { ITotalCalculator } from "./ITotalCalculator";
18
20
 
19
21
  export interface ISlickTable {
20
22
  columnPicker: IColumnPicker | null;
23
+ copiedRows: (ISlickRow & IEditedRow)[];
21
24
  createGrid(
22
25
  dataView: SlickDataView,
23
26
  columns: Column[],