slick-table 1.1.14 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +102 -99
- package/dist/index.es.js +10493 -9589
- package/dist/types/entities/popup-summary/index.d.ts +3 -0
- package/dist/types/entities/popup-summary/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/lib/getTotals.d.ts +4 -0
- package/dist/types/entities/popup-summary/lib/getTotals.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/lib/index.d.ts +2 -0
- package/dist/types/entities/popup-summary/lib/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/model/event/eventSummary.d.ts +9 -0
- package/dist/types/entities/popup-summary/model/event/eventSummary.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/model/event/index.d.ts +2 -0
- package/dist/types/entities/popup-summary/model/event/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/model/index.d.ts +3 -0
- package/dist/types/entities/popup-summary/model/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/model/types/ITotal.d.ts +5 -0
- package/dist/types/entities/popup-summary/model/types/ITotal.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/model/types/index.d.ts +2 -0
- package/dist/types/entities/popup-summary/model/types/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/ui/PopupSummary.d.ts +3 -0
- package/dist/types/entities/popup-summary/ui/PopupSummary.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/TotalByColumn.d.ts +8 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/TotalByColumn.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/TotalByColumn.style.d.ts +9 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/TotalByColumn.style.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/index.d.ts +2 -0
- package/dist/types/entities/popup-summary/ui/TotalByColumn/index.d.ts.map +1 -0
- package/dist/types/entities/popup-summary/ui/index.d.ts +2 -0
- package/dist/types/entities/popup-summary/ui/index.d.ts.map +1 -0
- package/dist/types/features/column-filters/ui/ButtonReset/ButtonReset.style.d.ts +1 -1
- package/dist/types/features/context-menu/ui/ButtonSummary/ButtonSummary.d.ts +7 -0
- package/dist/types/features/context-menu/ui/ButtonSummary/ButtonSummary.d.ts.map +1 -0
- package/dist/types/features/context-menu/ui/ButtonSummary/index.d.ts +2 -0
- package/dist/types/features/context-menu/ui/ButtonSummary/index.d.ts.map +1 -0
- package/dist/types/features/context-menu/ui/ContextMenu.d.ts.map +1 -1
- package/dist/types/features/header-context-menu/ui/Item/Item.style.d.ts +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/shared/lib/slickgrid/model/SlickTable/table/SlickTable.d.ts +2 -0
- package/dist/types/shared/lib/slickgrid/model/SlickTable/table/SlickTable.d.ts.map +1 -1
- package/dist/types/shared/model/types/ISlickTable.d.ts +1 -0
- package/dist/types/shared/model/types/ISlickTable.d.ts.map +1 -1
- package/dist/types/shared/model/types/index.d.ts +1 -1
- package/dist/types/shared/model/types/index.d.ts.map +1 -1
- package/dist/types/shared/ui/ContextSelect/ContextSelect.style.d.ts +1 -1
- package/package.json +1 -1
- package/src/entities/popup-summary/index.ts +2 -0
- package/src/entities/popup-summary/lib/getTotals.ts +31 -0
- package/src/entities/popup-summary/lib/index.ts +1 -0
- package/src/entities/popup-summary/model/event/eventSummary.ts +15 -0
- package/src/entities/popup-summary/model/event/index.ts +1 -0
- package/src/entities/popup-summary/model/index.ts +2 -0
- package/src/entities/popup-summary/model/types/ITotal.ts +1 -0
- package/src/entities/popup-summary/model/types/index.ts +1 -0
- package/src/entities/popup-summary/ui/PopupSummary.tsx +67 -0
- package/src/entities/popup-summary/ui/TotalByColumn/TotalByColumn.style.ts +16 -0
- package/src/entities/popup-summary/ui/TotalByColumn/TotalByColumn.tsx +37 -0
- package/src/entities/popup-summary/ui/TotalByColumn/index.ts +1 -0
- package/src/entities/popup-summary/ui/index.ts +1 -0
- package/src/features/context-menu/ui/ButtonSummary/ButtonSummary.tsx +36 -0
- package/src/features/context-menu/ui/ButtonSummary/index.ts +1 -0
- package/src/features/context-menu/ui/ContextMenu.tsx +2 -0
- package/src/index.ts +5 -0
- package/src/shared/lib/slickgrid/model/SlickTable/table/SlickTable.ts +4 -0
- package/src/shared/model/types/ISlickTable.ts +1 -0
- package/src/shared/model/types/index.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/entities/popup-summary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getTotals.d.ts","sourceRoot":"","sources":["../../../../../src/entities/popup-summary/lib/getTotals.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAwBhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/entities/popup-summary/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AnEvent } from '../../../../shared/lib/an-event';
|
|
2
|
+
declare class EventSummary extends AnEvent {
|
|
3
|
+
private _open;
|
|
4
|
+
get open(): boolean;
|
|
5
|
+
set open(open: boolean);
|
|
6
|
+
}
|
|
7
|
+
export declare const eventSummary: EventSummary;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=eventSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/model/event/eventSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,cAAM,YAAa,SAAQ,OAAO;IACjC,OAAO,CAAC,KAAK,CAAS;IAEtB,IAAI,IAAI,YAEP;IACD,IAAI,IAAI,CAAC,IAAI,SAAA,EAGZ;CACD;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/model/event/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/entities/popup-summary/model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITotal.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/model/types/ITotal.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/model/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PopupSummary.d.ts","sourceRoot":"","sources":["../../../../../src/entities/popup-summary/ui/PopupSummary.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAQhD,eAAO,MAAM,YAAY,EAAE,EAgD1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TotalByColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/ui/TotalByColumn/TotalByColumn.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAIrC,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,MAAM,CA0BpC,CAAC;AAEF,UAAU,MAAM;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
DialogContentText: import('@emotion/styled').StyledComponent<import('@mui/material').DialogContentTextOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
|
|
3
|
+
ref?: ((instance: HTMLSpanElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLSpanElement> | null | undefined;
|
|
4
|
+
}, "className" | "style" | "classes" | "p" | "color" | "children" | "height" | "sx" | "variant" | "width" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxShadow" | "boxSizing" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "zIndex" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "typography" | "displayPrint" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variantMapping"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
5
|
+
Icon: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
6
|
+
Text: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
7
|
+
};
|
|
8
|
+
export default _default;
|
|
9
|
+
//# sourceMappingURL=TotalByColumn.style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TotalByColumn.style.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/ui/TotalByColumn/TotalByColumn.style.ts"],"names":[],"mappings":";;;;;;;AAeA,wBAA0E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/entities/popup-summary/ui/TotalByColumn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/entities/popup-summary/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
Button: import('@emotion/styled').StyledComponent<import('@mui/material').ButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
3
3
|
ref?: ((instance: HTMLButtonElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLButtonElement> | null | undefined;
|
|
4
|
-
}, "className" | "style" | "classes" | "tabIndex" | "color" | "children" | "sx" | "variant" | "action" | "
|
|
4
|
+
}, "className" | "style" | "classes" | "tabIndex" | "color" | "children" | "sx" | "variant" | "href" | "disabled" | "action" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "startIcon"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
7
7
|
//# sourceMappingURL=ButtonReset.style.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonSummary.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/ButtonSummary/ButtonSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAQrD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,MAAM,CAuBpC,CAAC;AAEF,UAAU,MAAM;IACf,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/context-menu/ui/ButtonSummary/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -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;
|
|
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,CAiCjC,CAAC;AAEF,UAAU,KAAK;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -3,7 +3,7 @@ declare const _default: {
|
|
|
3
3
|
Checkbox: import('@emotion/styled').StyledComponent<CheckboxProps & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
4
4
|
Button: import('@emotion/styled').StyledComponent<import('@mui/material').ButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
5
5
|
ref?: ((instance: HTMLButtonElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLButtonElement> | null | undefined;
|
|
6
|
-
}, "className" | "style" | "classes" | "tabIndex" | "color" | "children" | "sx" | "variant" | "action" | "
|
|
6
|
+
}, "className" | "style" | "classes" | "tabIndex" | "color" | "children" | "sx" | "variant" | "href" | "disabled" | "action" | "size" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableElevation" | "disableFocusRipple" | "endIcon" | "fullWidth" | "startIcon"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
7
7
|
};
|
|
8
8
|
export default _default;
|
|
9
9
|
//# sourceMappingURL=Item.style.d.ts.map
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { Skeleton } from './entities/skeleton';
|
|
2
|
+
export { PopupSummary } from './entities/popup-summary';
|
|
2
3
|
export { ColumnFilters } from './features/column-filters';
|
|
3
4
|
export { ContextMenu } from './features/context-menu';
|
|
4
5
|
export { HeaderContextMenu } from './features/header-context-menu';
|
|
5
|
-
export { Autocomplete, ColumnPicker, ColumnSorter, DecoratorColumnFilter, DecoratorFilter, DefaultHotKeys, DefaultPrinter, DeletedRowsFilter, Filter, HotKeysDecorator, PreventCopying, RedoUndoOnly, SlickTable, SlickgridTable, TotalCalculator, columnIsEdited, columnCheckboxSelector, commitCurrentEdit, copySelectedRows, formatterGroupTotals, getDisplayedRows, getNextId, handleHeaderButtons, headerButtons, openColumnFilter, openContextMenu, useListenIfTablesWereEdited, } from './shared/lib/slickgrid';
|
|
6
|
+
export { Autocomplete, ColumnPicker, ColumnSorter, DecoratorColumnFilter, DecoratorFilter, DefaultHotKeys, DefaultPrinter, DeletedRowsFilter, Filter, HotKeysDecorator, PreventCopying, RedoUndoOnly, SlickTable, SlickgridTable, TotalCalculator, columnIsEdited, columnCheckboxSelector, commitCurrentEdit, copySelectedRows, formatterGroupTotals, getDisplayedRows, getNextId, handleHeaderButtons, headerButtons, hotKeysCopy, hotKeysDelete, hotKeysRedo, hotKeysUndo, openColumnFilter, openContextMenu, useListenIfTablesWereEdited, } from './shared/lib/slickgrid';
|
|
6
7
|
export type { IColumn, IFilter, IFilterArguments, IHotKeysBehavior, IPrinter, ISlickTable, ITotalCalculator, } from './shared/model/types';
|
|
7
8
|
export { EColumnFilter, EColumnFiltersGroup, ESortType, } from './shared/model/enums';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,2BAA2B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACX,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,gBAAgB,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,SAAS,GACT,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,2BAA2B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACX,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,gBAAgB,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,SAAS,GACT,MAAM,oBAAoB,CAAC"}
|
|
@@ -8,6 +8,7 @@ export declare class SlickTable implements ISlickTable {
|
|
|
8
8
|
readonly id: string;
|
|
9
9
|
readonly name: string;
|
|
10
10
|
totalCalculator?: ITotalCalculator;
|
|
11
|
+
readonly summaryColumnIds: string[];
|
|
11
12
|
private _grid;
|
|
12
13
|
private _grouping;
|
|
13
14
|
private _isActive;
|
|
@@ -23,6 +24,7 @@ export declare class SlickTable implements ISlickTable {
|
|
|
23
24
|
id: string;
|
|
24
25
|
name?: string;
|
|
25
26
|
printer?: IPrinter;
|
|
27
|
+
summaryColumnIds?: string[];
|
|
26
28
|
totalCalculator?: ITotalCalculator;
|
|
27
29
|
});
|
|
28
30
|
createGrid(dataView: SlickDataView, columns: Column[], options: GridOption): SlickGrid;
|
|
@@ -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;AAGnB,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;
|
|
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;AAGnB,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;IAuBM,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 +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,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,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"}
|
|
@@ -11,7 +11,7 @@ export type { IHotKeysBehavior } from './IHotKeysBehavior';
|
|
|
11
11
|
export type { IObserver } from './IObserver';
|
|
12
12
|
export type { IPrinter } from './IPrinter';
|
|
13
13
|
export type { ISlickTable } from './ISlickTable';
|
|
14
|
-
export type { TGridRow } from './TGridRow';
|
|
15
14
|
export type { ISlickRow } from './ISlickRow';
|
|
16
15
|
export type { ITotalCalculator } from './ITotalCalculator';
|
|
16
|
+
export type { TGridRow } from './TGridRow';
|
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/model/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
declare const _default: {
|
|
2
2
|
MenuItem: import('@emotion/styled').StyledComponent<import('@mui/material').MenuItemOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<Omit<import('react').DetailedHTMLProps<import('react').LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & {
|
|
3
3
|
ref?: ((instance: HTMLLIElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLLIElement> | null | undefined;
|
|
4
|
-
}, "className" | "style" | "classes" | "autoFocus" | "tabIndex" | "children" | "sx" | "
|
|
4
|
+
}, "className" | "style" | "classes" | "autoFocus" | "tabIndex" | "children" | "sx" | "disabled" | "action" | "selected" | "dense" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableGutters" | "divider"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material').Theme>, {}, {}>;
|
|
5
5
|
};
|
|
6
6
|
export default _default;
|
|
7
7
|
//# sourceMappingURL=ContextSelect.style.d.ts.map
|
package/package.json
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SlickDataView } from "slickgrid";
|
|
2
|
+
|
|
3
|
+
import { ISlickTable } from "shared/model/types";
|
|
4
|
+
|
|
5
|
+
import { ITotal } from "../model";
|
|
6
|
+
|
|
7
|
+
export function getTotals(table: ISlickTable | undefined): ITotal {
|
|
8
|
+
const result: ITotal = {};
|
|
9
|
+
if (!table) return result;
|
|
10
|
+
const ids = table.summaryColumnIds;
|
|
11
|
+
const grid = table.grid;
|
|
12
|
+
if (!grid) return result;
|
|
13
|
+
const selectedRows = grid.getSelectedRows();
|
|
14
|
+
const columns = grid.getColumns();
|
|
15
|
+
columns.forEach(({ id, name }) => {
|
|
16
|
+
if (ids.includes(id as string)) {
|
|
17
|
+
result[id] = {
|
|
18
|
+
label: name as string,
|
|
19
|
+
total: 0,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const dataView: SlickDataView = grid.getData();
|
|
24
|
+
selectedRows.forEach((rowNumber) => {
|
|
25
|
+
const item = dataView.getItem(rowNumber);
|
|
26
|
+
Object.keys(result).forEach((id) => {
|
|
27
|
+
result[id].total += item[id];
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getTotals } from "./getTotals";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AnEvent } from "shared/lib/an-event";
|
|
2
|
+
|
|
3
|
+
class EventSummary extends AnEvent {
|
|
4
|
+
private _open = false;
|
|
5
|
+
|
|
6
|
+
get open() {
|
|
7
|
+
return this._open;
|
|
8
|
+
}
|
|
9
|
+
set open(open) {
|
|
10
|
+
this._open = open;
|
|
11
|
+
this.notify();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const eventSummary = new EventSummary();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { eventSummary } from "./eventSummary";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ITotal = Record<string, { label: string; total: number }>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { ITotal } from "./ITotal";
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box,
|
|
3
|
+
Button,
|
|
4
|
+
Dialog,
|
|
5
|
+
DialogActions,
|
|
6
|
+
DialogContent,
|
|
7
|
+
DialogContentText,
|
|
8
|
+
DialogTitle,
|
|
9
|
+
List,
|
|
10
|
+
} from "@mui/material";
|
|
11
|
+
import { FC, useEffect, useState } from "react";
|
|
12
|
+
|
|
13
|
+
import { eventContextMenu } from "shared/lib/slickgrid";
|
|
14
|
+
|
|
15
|
+
import { getTotals } from "../lib";
|
|
16
|
+
import { ITotal, eventSummary } from "../model";
|
|
17
|
+
import { TotalByColumn } from "./TotalByColumn";
|
|
18
|
+
|
|
19
|
+
export const PopupSummary: FC = () => {
|
|
20
|
+
const [rowsNumber, setRowsNumber] = useState(0);
|
|
21
|
+
const [isOpened, setIsOpened] = useState(false);
|
|
22
|
+
const [totals, setTotals] = useState<ITotal>({});
|
|
23
|
+
|
|
24
|
+
function onClose() {
|
|
25
|
+
eventSummary.open = false;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
function callback() {
|
|
30
|
+
const open = eventSummary.open;
|
|
31
|
+
if (open) {
|
|
32
|
+
const table = eventContextMenu.table;
|
|
33
|
+
const grid = table?.grid;
|
|
34
|
+
setRowsNumber(grid?.getSelectedRows().length || 0);
|
|
35
|
+
setTotals(getTotals(table));
|
|
36
|
+
}
|
|
37
|
+
setIsOpened(open);
|
|
38
|
+
}
|
|
39
|
+
eventSummary.subscribe(callback);
|
|
40
|
+
return () => {
|
|
41
|
+
eventSummary.unsubscribe(callback);
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
|
|
45
|
+
if (!isOpened) return null;
|
|
46
|
+
|
|
47
|
+
return (
|
|
48
|
+
<Dialog open={isOpened} onClose={onClose}>
|
|
49
|
+
<DialogTitle>Selected rows summary</DialogTitle>
|
|
50
|
+
<DialogContent>
|
|
51
|
+
<List>
|
|
52
|
+
<DialogContentText>{`- number of selected rows: ${rowsNumber}`}</DialogContentText>
|
|
53
|
+
{Object.entries(totals).map(([id, total]) => (
|
|
54
|
+
<Box key={id}>
|
|
55
|
+
<TotalByColumn label={total.label} total={total.total} />
|
|
56
|
+
</Box>
|
|
57
|
+
))}
|
|
58
|
+
</List>
|
|
59
|
+
</DialogContent>
|
|
60
|
+
<DialogActions>
|
|
61
|
+
<Button variant={"outlined"} onClick={onClose}>
|
|
62
|
+
Close
|
|
63
|
+
</Button>
|
|
64
|
+
</DialogActions>
|
|
65
|
+
</Dialog>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DialogContentText, styled } from "@mui/material";
|
|
2
|
+
|
|
3
|
+
const Text = styled("span")({
|
|
4
|
+
marginRight: "0.5em",
|
|
5
|
+
});
|
|
6
|
+
const StyledDialogContentText = styled(DialogContentText)({
|
|
7
|
+
display: "flex",
|
|
8
|
+
alignItems: "center",
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const Icon = styled("span")({
|
|
12
|
+
cursor: "pointer",
|
|
13
|
+
backgroundColor: "#1E456F",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export default { DialogContentText: StyledDialogContentText, Icon, Text };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Tooltip } from "@mui/material";
|
|
2
|
+
import { FC, useState } from "react";
|
|
3
|
+
|
|
4
|
+
import Styled from "./TotalByColumn.style";
|
|
5
|
+
|
|
6
|
+
export const TotalByColumn: FC<IProps> = ({ label, total }) => {
|
|
7
|
+
const [open, setOpen] = useState(false);
|
|
8
|
+
|
|
9
|
+
function copyToClipboard() {
|
|
10
|
+
navigator.clipboard.writeText(`${total}`);
|
|
11
|
+
setOpen(true);
|
|
12
|
+
setTimeout(() => {
|
|
13
|
+
setOpen(false);
|
|
14
|
+
}, 1000);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return (
|
|
18
|
+
<Styled.DialogContentText>
|
|
19
|
+
<Styled.Text>{`- total ${label}: ${total}`}</Styled.Text>
|
|
20
|
+
{open ? (
|
|
21
|
+
<Styled.Icon className={"sgi sgi-check"}></Styled.Icon>
|
|
22
|
+
) : (
|
|
23
|
+
<Tooltip title={"Copy to clipboard"}>
|
|
24
|
+
<Styled.Icon
|
|
25
|
+
className={"sgi sgi-content-copy"}
|
|
26
|
+
onClick={copyToClipboard}
|
|
27
|
+
/>
|
|
28
|
+
</Tooltip>
|
|
29
|
+
)}
|
|
30
|
+
</Styled.DialogContentText>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
interface IProps {
|
|
35
|
+
label: string;
|
|
36
|
+
total: number;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TotalByColumn } from "./TotalByColumn";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PopupSummary } from "./PopupSummary";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Dispatch, FC, SetStateAction } from "react";
|
|
2
|
+
|
|
3
|
+
import { eventContextMenu } from "shared/lib/slickgrid";
|
|
4
|
+
|
|
5
|
+
import { eventSummary } from "entities/popup-summary";
|
|
6
|
+
|
|
7
|
+
import Styled from "../ContextMenu.style";
|
|
8
|
+
|
|
9
|
+
export const ButtonSummary: FC<IProps> = ({ setIsOpened }) => {
|
|
10
|
+
const table = eventContextMenu.table;
|
|
11
|
+
const grid = table?.grid;
|
|
12
|
+
const selectedRows = grid?.getSelectedRows();
|
|
13
|
+
|
|
14
|
+
function openSummary() {
|
|
15
|
+
if (!table) return;
|
|
16
|
+
setIsOpened(false);
|
|
17
|
+
eventContextMenu.table = table;
|
|
18
|
+
eventSummary.open = true;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!table?.summaryColumnIds.length || Number(selectedRows?.length) < 2)
|
|
22
|
+
return null;
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<Styled.Li onClick={openSummary}>
|
|
26
|
+
<Styled.Icon
|
|
27
|
+
className={"sgi sgi-checkbox-multiple-outline"}
|
|
28
|
+
></Styled.Icon>
|
|
29
|
+
Summary
|
|
30
|
+
</Styled.Li>
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
interface IProps {
|
|
35
|
+
setIsOpened: Dispatch<SetStateAction<boolean>>;
|
|
36
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ButtonSummary } from "./ButtonSummary";
|
|
@@ -7,6 +7,7 @@ import { CONTEXT_MENU } from "../model";
|
|
|
7
7
|
import { ButtonDownloadCSV } from "./ButtonDownloadCSV";
|
|
8
8
|
import { ButtonGroup } from "./ButtonGroup";
|
|
9
9
|
import { ButtonResetFilters } from "./ButtonResetFilters";
|
|
10
|
+
import { ButtonSummary } from "./ButtonSummary";
|
|
10
11
|
import { ButtonUngroup } from "./ButtonUngroup";
|
|
11
12
|
import { CollapseAll } from "./CollapseAll";
|
|
12
13
|
import { CopyToClipboard } from "./CopyToClipboard";
|
|
@@ -43,6 +44,7 @@ export const ContextMenu: FC<Props> = ({ clientId, clientName }) => {
|
|
|
43
44
|
<ButtonGroup setIsOpened={setIsOpened} />
|
|
44
45
|
<ExpandAll setIsOpened={setIsOpened} />
|
|
45
46
|
<CollapseAll setIsOpened={setIsOpened} />
|
|
47
|
+
<ButtonSummary setIsOpened={setIsOpened} />
|
|
46
48
|
</Styled.Ul>
|
|
47
49
|
</Popup>
|
|
48
50
|
</Fragment>
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Skeleton } from "entities/skeleton";
|
|
2
|
+
export { PopupSummary } from "entities/popup-summary";
|
|
2
3
|
export { ColumnFilters } from "features/column-filters";
|
|
3
4
|
export { ContextMenu } from "features/context-menu";
|
|
4
5
|
export { HeaderContextMenu } from "features/header-context-menu";
|
|
@@ -27,6 +28,10 @@ export {
|
|
|
27
28
|
getNextId,
|
|
28
29
|
handleHeaderButtons,
|
|
29
30
|
headerButtons,
|
|
31
|
+
hotKeysCopy,
|
|
32
|
+
hotKeysDelete,
|
|
33
|
+
hotKeysRedo,
|
|
34
|
+
hotKeysUndo,
|
|
30
35
|
openColumnFilter,
|
|
31
36
|
openContextMenu,
|
|
32
37
|
useListenIfTablesWereEdited,
|
|
@@ -34,6 +34,7 @@ export class SlickTable implements ISlickTable {
|
|
|
34
34
|
public readonly id: string;
|
|
35
35
|
public readonly name: string;
|
|
36
36
|
public totalCalculator?: ITotalCalculator;
|
|
37
|
+
public readonly summaryColumnIds: string[] = [];
|
|
37
38
|
|
|
38
39
|
private _grid: SlickGrid | null = null;
|
|
39
40
|
private _grouping: IGrouping = {};
|
|
@@ -51,6 +52,7 @@ export class SlickTable implements ISlickTable {
|
|
|
51
52
|
id: string;
|
|
52
53
|
name?: string;
|
|
53
54
|
printer?: IPrinter;
|
|
55
|
+
summaryColumnIds?: string[];
|
|
54
56
|
totalCalculator?: ITotalCalculator;
|
|
55
57
|
}) {
|
|
56
58
|
const {
|
|
@@ -61,6 +63,7 @@ export class SlickTable implements ISlickTable {
|
|
|
61
63
|
id,
|
|
62
64
|
name,
|
|
63
65
|
printer,
|
|
66
|
+
summaryColumnIds,
|
|
64
67
|
totalCalculator,
|
|
65
68
|
} = args;
|
|
66
69
|
this.id = id;
|
|
@@ -70,6 +73,7 @@ export class SlickTable implements ISlickTable {
|
|
|
70
73
|
if (filter) this.filter = filter;
|
|
71
74
|
if (hotKeys) this.hotKeysBehavior = hotKeys;
|
|
72
75
|
if (printer) this.printer = printer;
|
|
76
|
+
if (summaryColumnIds) this.summaryColumnIds = summaryColumnIds;
|
|
73
77
|
if (totalCalculator) this.totalCalculator = totalCalculator;
|
|
74
78
|
}
|
|
75
79
|
|