@ganpatiinfo/gids-web-dom-reference 13.0.0 → 14.1.0
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/CHANGELOG.md +67 -0
- package/dist/components/GidsCrossTable/GidsCrossTable.d.ts +18 -0
- package/dist/components/GidsCrossTable/GidsCrossTable.d.ts.map +1 -0
- package/dist/components/GidsCrossTable/GidsCrossTable.js +141 -0
- package/dist/components/GidsCrossTable/GidsCrossTable.js.map +1 -0
- package/dist/components/GidsCrossTableBody/GidsCrossTableBody.d.ts +13 -0
- package/dist/components/GidsCrossTableBody/GidsCrossTableBody.d.ts.map +1 -0
- package/dist/components/GidsCrossTableBody/GidsCrossTableBody.js +79 -0
- package/dist/components/GidsCrossTableBody/GidsCrossTableBody.js.map +1 -0
- package/dist/components/GidsCrossTableRow/GidsCrossTableRow.d.ts +13 -0
- package/dist/components/GidsCrossTableRow/GidsCrossTableRow.d.ts.map +1 -0
- package/dist/components/GidsCrossTableRow/GidsCrossTableRow.js +128 -0
- package/dist/components/GidsCrossTableRow/GidsCrossTableRow.js.map +1 -0
- package/dist/components/GidsDialog/GidsDialog.d.ts +13 -0
- package/dist/components/GidsDialog/GidsDialog.d.ts.map +1 -0
- package/dist/components/GidsDialog/GidsDialog.js +102 -0
- package/dist/components/GidsDialog/GidsDialog.js.map +1 -0
- package/dist/components/GidsHeaderNavigation/GidsHeaderNavigation.d.ts +8 -0
- package/dist/components/GidsHeaderNavigation/GidsHeaderNavigation.d.ts.map +1 -0
- package/dist/components/GidsHeaderNavigation/GidsHeaderNavigation.js +29 -0
- package/dist/components/GidsHeaderNavigation/GidsHeaderNavigation.js.map +1 -0
- package/dist/components/GidsHeaderNavigationItem/GidsHeaderNavigationItem.d.ts +8 -0
- package/dist/components/GidsHeaderNavigationItem/GidsHeaderNavigationItem.d.ts.map +1 -0
- package/dist/components/GidsHeaderNavigationItem/GidsHeaderNavigationItem.js +57 -0
- package/dist/components/GidsHeaderNavigationItem/GidsHeaderNavigationItem.js.map +1 -0
- package/dist/components/GidsMatrixTable/GidsMatrixTable.d.ts +20 -0
- package/dist/components/GidsMatrixTable/GidsMatrixTable.d.ts.map +1 -1
- package/dist/components/GidsMatrixTable/GidsMatrixTable.js +5 -0
- package/dist/components/GidsMatrixTable/GidsMatrixTable.js.map +1 -1
- package/dist/components/GidsMatrixTableBody/GidsMatrixTableBody.d.ts +20 -0
- package/dist/components/GidsMatrixTableBody/GidsMatrixTableBody.d.ts.map +1 -1
- package/dist/components/GidsMatrixTableBody/GidsMatrixTableBody.js +5 -0
- package/dist/components/GidsMatrixTableBody/GidsMatrixTableBody.js.map +1 -1
- package/dist/components/GidsMenu/GidsMenu.d.ts +1 -1
- package/dist/components/GidsMenu/GidsMenu.d.ts.map +1 -1
- package/dist/components/GidsMenu/GidsMenu.js +10 -1
- package/dist/components/GidsMenu/GidsMenu.js.map +1 -1
- package/dist/components/GidsProfile/GidsProfile.d.ts +8 -0
- package/dist/components/GidsProfile/GidsProfile.d.ts.map +1 -0
- package/dist/components/GidsProfile/GidsProfile.js +58 -0
- package/dist/components/GidsProfile/GidsProfile.js.map +1 -0
- package/dist/components/GidsProfileMenu/GidsProfileMenu.d.ts +7 -0
- package/dist/components/GidsProfileMenu/GidsProfileMenu.d.ts.map +1 -0
- package/dist/components/GidsProfileMenu/GidsProfileMenu.js +25 -0
- package/dist/components/GidsProfileMenu/GidsProfileMenu.js.map +1 -0
- package/dist/components/GidsProfileMenuHeader/GidsProfileMenuHeader.d.ts +7 -0
- package/dist/components/GidsProfileMenuHeader/GidsProfileMenuHeader.d.ts.map +1 -0
- package/dist/components/GidsProfileMenuHeader/GidsProfileMenuHeader.js +24 -0
- package/dist/components/GidsProfileMenuHeader/GidsProfileMenuHeader.js.map +1 -0
- package/dist/components/GidsSkeleton/GidsSkeleton.d.ts +8 -0
- package/dist/components/GidsSkeleton/GidsSkeleton.d.ts.map +1 -0
- package/dist/components/GidsSkeleton/GidsSkeleton.js +16 -0
- package/dist/components/GidsSkeleton/GidsSkeleton.js.map +1 -0
- package/dist/components/GidsTable/GidsTable.d.ts +1 -1
- package/dist/components/GidsTable/GidsTable.d.ts.map +1 -1
- package/dist/components/GidsTable/GidsTable.js +27 -2
- package/dist/components/GidsTable/GidsTable.js.map +1 -1
- package/dist/components/GidsTableFooter/GidsTableFooter.d.ts +2 -2
- package/dist/components/GidsTableFooter/GidsTableFooter.d.ts.map +1 -1
- package/dist/components/GidsTableFooter/GidsTableFooter.js +2 -24
- package/dist/components/GidsTableFooter/GidsTableFooter.js.map +1 -1
- package/dist/components/GidsTableFooterControl/GidsTableFooterControl.d.ts +1 -1
- package/dist/components/GidsTableFooterControl/GidsTableFooterControl.d.ts.map +1 -1
- package/dist/components/GidsTableFooterControl/GidsTableFooterControl.js +5 -3
- package/dist/components/GidsTableFooterControl/GidsTableFooterControl.js.map +1 -1
- package/dist/components/GidsTableHeader/GidsTableHeader.d.ts +1 -1
- package/dist/components/GidsTableHeader/GidsTableHeader.d.ts.map +1 -1
- package/dist/components/GidsTableHeader/GidsTableHeader.js +1 -3
- package/dist/components/GidsTableHeader/GidsTableHeader.js.map +1 -1
- package/dist/components/GidsTableRow/GidsTableRow.d.ts +1 -1
- package/dist/components/GidsTableRow/GidsTableRow.d.ts.map +1 -1
- package/dist/components/GidsTableRow/GidsTableRow.js +3 -3
- package/dist/components/GidsTableRow/GidsTableRow.js.map +1 -1
- package/dist/components/GidsTransferList/GidsTransferList.d.ts +8 -0
- package/dist/components/GidsTransferList/GidsTransferList.d.ts.map +1 -0
- package/dist/components/GidsTransferList/GidsTransferList.js +25 -0
- package/dist/components/GidsTransferList/GidsTransferList.js.map +1 -0
- package/dist/components/_GidsDialogControl/GidsDialogControl.d.ts +10 -0
- package/dist/components/_GidsDialogControl/GidsDialogControl.d.ts.map +1 -0
- package/dist/components/_GidsDialogControl/GidsDialogControl.js +133 -0
- package/dist/components/_GidsDialogControl/GidsDialogControl.js.map +1 -0
- package/dist/index.d.ts +120 -108
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +120 -108
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/GidsCrossTable/GidsCrossTable.ts +259 -0
- package/src/components/GidsCrossTableBody/GidsCrossTableBody.ts +171 -0
- package/src/components/GidsCrossTableRow/GidsCrossTableRow.ts +230 -0
- package/src/components/GidsDialog/GidsDialog.ts +161 -0
- package/src/components/GidsHeaderNavigation/GidsHeaderNavigation.ts +75 -0
- package/src/components/GidsHeaderNavigationItem/GidsHeaderNavigationItem.ts +103 -0
- package/src/components/GidsMatrixTable/GidsMatrixTable.ts +20 -0
- package/src/components/GidsMatrixTableBody/GidsMatrixTableBody.ts +21 -0
- package/src/components/GidsMenu/GidsMenu.ts +15 -0
- package/src/components/GidsProfile/GidsProfile.ts +120 -0
- package/src/components/GidsProfileMenu/GidsProfileMenu.ts +60 -0
- package/src/components/GidsProfileMenuHeader/GidsProfileMenuHeader.ts +66 -0
- package/src/components/GidsSkeleton/GidsSkeleton.ts +40 -0
- package/src/components/GidsTable/GidsTable.ts +41 -4
- package/src/components/GidsTableFooter/GidsTableFooter.ts +1 -39
- package/src/components/GidsTableFooterControl/GidsTableFooterControl.ts +9 -2
- package/src/components/GidsTableHeader/GidsTableHeader.ts +0 -4
- package/src/components/GidsTableRow/GidsTableRow.ts +2 -4
- package/src/components/GidsTransferList/GidsTransferList.ts +58 -0
- package/src/components/_GidsDialogControl/GidsDialogControl.ts +198 -0
- package/src/index.ts +120 -108
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
# @ganpatiinfo/gids-web-dom-reference
|
|
2
2
|
|
|
3
|
+
## 14.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a09b469: - Developed `GidsHeaderNavigation` web component for all web platforms
|
|
8
|
+
- 26a6469: - Developed `GidsProfileMenu` web component for all web platforms
|
|
9
|
+
- a09b469: - Developed `GidsHeaderNavigationItem` web component for all web platforms
|
|
10
|
+
- 26a6469: - Developed `GidsProfileMenuHeader` web component for all web platforms
|
|
11
|
+
- 26a6469: - Developed `GidsProfile` web component for all web platforms
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [a09b469]
|
|
16
|
+
- Updated dependencies [26a6469]
|
|
17
|
+
- Updated dependencies [a09b469]
|
|
18
|
+
- Updated dependencies [26a6469]
|
|
19
|
+
- Updated dependencies [26a6469]
|
|
20
|
+
- @ganpatiinfo/gids-core-shared@14.1.0
|
|
21
|
+
- @ganpatiinfo/gids-web-shared@13.1.0
|
|
22
|
+
|
|
23
|
+
## 14.0.0
|
|
24
|
+
|
|
25
|
+
### Major Changes
|
|
26
|
+
|
|
27
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsTableBody` component
|
|
28
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsTableFooter` component
|
|
29
|
+
- fbeee63: Marked `GidsMatrixTable` component as `Deprecated`. Use `GidsCrossTable` component instead
|
|
30
|
+
- fbeee63: - Marked `GidsMatrixTableBody` component as `Deprecated`. Use `GidsCrossTableBody` component instead
|
|
31
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsTable` component
|
|
32
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsCrossTableBody` component
|
|
33
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsTableHeader` component
|
|
34
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsCrossTable` component
|
|
35
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsCrossTableRow` component
|
|
36
|
+
- e1c1f52: - Moved `leading` and `trailing` actions to its entry specific prop for `GidsTableRow` component
|
|
37
|
+
|
|
38
|
+
### Minor Changes
|
|
39
|
+
|
|
40
|
+
- 385fe5d: - Developed `GidsDialog` component for all web platforms
|
|
41
|
+
- 036d067: - Developed `GidsSkeleton` component for all web platforms
|
|
42
|
+
- fbeee63: - Developed `GidsCrossTableRow` component for all web platforms
|
|
43
|
+
- 036d067: - Developed `GidsTransferList` component for all web platforms
|
|
44
|
+
- fbeee63: - Developed `GidsCrossTable` component for all web platforms
|
|
45
|
+
- fbeee63: - Developed `GidsCrossTableBody` component for all web platforms
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- 385fe5d: - Developed `GidsDialogControl` private component for all web platforms
|
|
50
|
+
- Updated dependencies [385fe5d]
|
|
51
|
+
- Updated dependencies [036d067]
|
|
52
|
+
- Updated dependencies [fbeee63]
|
|
53
|
+
- Updated dependencies [e1c1f52]
|
|
54
|
+
- Updated dependencies [385fe5d]
|
|
55
|
+
- Updated dependencies [e1c1f52]
|
|
56
|
+
- Updated dependencies [fbeee63]
|
|
57
|
+
- Updated dependencies [fbeee63]
|
|
58
|
+
- Updated dependencies [e1c1f52]
|
|
59
|
+
- Updated dependencies [e1c1f52]
|
|
60
|
+
- Updated dependencies [e1c1f52]
|
|
61
|
+
- Updated dependencies [036d067]
|
|
62
|
+
- Updated dependencies [fbeee63]
|
|
63
|
+
- Updated dependencies [e1c1f52]
|
|
64
|
+
- Updated dependencies [e1c1f52]
|
|
65
|
+
- Updated dependencies [e1c1f52]
|
|
66
|
+
- Updated dependencies [fbeee63]
|
|
67
|
+
- @ganpatiinfo/gids-core-shared@14.0.0
|
|
68
|
+
- @ganpatiinfo/gids-web-shared@13.0.0
|
|
69
|
+
|
|
3
70
|
## 13.0.0
|
|
4
71
|
|
|
5
72
|
### Major Changes
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { GidsCrossTableActionEvent, GidsCrossTableToolbarSettings, GidsInputStatus } from '@ganpatiinfo/gids-core-shared';
|
|
2
|
+
import { DomChildren } from '../../utils/domUtils';
|
|
3
|
+
import { HtmlInputAttributes } from '../GidsInput/GidsInput';
|
|
4
|
+
import { GidsTableToolbarDomProps } from '../GidsTableToolbar/GidsTableToolbar';
|
|
5
|
+
import { GidsCrossTableWebProps, GidsTableEntryTypographyStyle } from '@ganpatiinfo/gids-web-shared';
|
|
6
|
+
import { IconAppearance, IconName } from '@ganpatiinfo/gids-web-theme-interface';
|
|
7
|
+
export type GidsCrossTableToolbarBaseSettings = GidsCrossTableToolbarSettings<DomChildren, Event, Element, HtmlInputAttributes, GidsInputStatus> & Pick<GidsTableToolbarDomProps, 'onChange' | 'onInput' | 'onFocus' | 'onBlur' | 'onGidsSearchBarClear'>;
|
|
8
|
+
type GidsCrossTableBaseWebProps = Omit<GidsCrossTableWebProps<DomChildren, GidsTableEntryTypographyStyle, IconName, IconAppearance, DomChildren, Event, Element, HtmlInputAttributes>, 'toolbarSettings'> & {
|
|
9
|
+
toolbarSettings?: GidsCrossTableToolbarBaseSettings;
|
|
10
|
+
};
|
|
11
|
+
type GidsCrossTableActionBaseEvent = GidsCrossTableActionEvent<Event, GidsTableEntryTypographyStyle, IconName, IconAppearance>;
|
|
12
|
+
export interface GidsCrossTableDomProps extends GidsCrossTableBaseWebProps {
|
|
13
|
+
extraClasses?: string;
|
|
14
|
+
onCrossTableAction?: (event: GidsCrossTableActionBaseEvent) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const GidsCrossTableDom: ({ toolbar, toolbarChildren, children, headerItems, bodyContent, isHeaderVisible, isToolbarVisible, bodySettings, toolbarSettings, headerSettings, tableBorders, tableBorderRadius, tableBodyMaxHeight, horizontalScroll, crossHeaderSettings, onCrossTableAction, footerItems, footerSettings, isFooterVisible, isFooterControlVisible, footerControlSettings, footerControl, extraClasses, }: GidsCrossTableDomProps) => HTMLDivElement;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=GidsCrossTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTable.d.ts","sourceRoot":"","sources":["../../../src/components/GidsCrossTable/GidsCrossTable.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAC7B,eAAe,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAoB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAEN,wBAAwB,EACxB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACN,sBAAsB,EAEtB,6BAA6B,EAE7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,cAAc,EACd,QAAQ,EACR,MAAM,uCAAuC,CAAC;AAmB/C,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,CAC5E,WAAW,EACX,KAAK,EACL,OAAO,EACP,mBAAmB,EACnB,eAAe,CACf,GACA,IAAI,CACH,wBAAwB,EACxB,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,sBAAsB,CACtE,CAAC;AAEH,KAAK,0BAA0B,GAAG,IAAI,CACrC,sBAAsB,CACrB,WAAW,EACX,6BAA6B,EAC7B,QAAQ,EACR,cAAc,EACd,WAAW,EACX,KAAK,EACL,OAAO,EACP,mBAAmB,CACnB,EACD,iBAAiB,CACjB,GAAG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAC;CACpD,CAAC;AAEF,KAAK,6BAA6B,GAAG,yBAAyB,CAC7D,KAAK,EACL,6BAA6B,EAC7B,QAAQ,EACR,cAAc,CACd,CAAC;AAEF,MAAM,WAAW,sBAAuB,SAAQ,0BAA0B;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,KAAK,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,iBAAiB,GAAI,+XAwB/B,sBAAsB,KAAG,cA2J3B,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { appendAsChildren } from '../../utils/domUtils';
|
|
2
|
+
import { GidsTableToolbarDom, } from '../GidsTableToolbar/GidsTableToolbar';
|
|
3
|
+
import { GidsCrossTableWebUtils, isValidChildren, } from '@ganpatiinfo/gids-web-shared';
|
|
4
|
+
import { GidsTableHeaderDom, } from '../GidsTableHeader/GidsTableHeader';
|
|
5
|
+
import { GidsCrossTableBodyDom, } from '../GidsCrossTableBody/GidsCrossTableBody';
|
|
6
|
+
import { GidsTableFooterDom } from '../GidsTableFooter/GidsTableFooter';
|
|
7
|
+
import { GidsTableFooterControlDom } from '../GidsTableFooterControl/GidsTableFooterControl';
|
|
8
|
+
const { getGidsCrossTableClassNames, getCustomisedCrossTableHeaderEntries, getCustomisedCrossTableFooterEntries, getCrossTableBodyBorder, } = GidsCrossTableWebUtils;
|
|
9
|
+
export const GidsCrossTableDom = ({ toolbar, toolbarChildren, children, headerItems = [], bodyContent = [], isHeaderVisible, isToolbarVisible, bodySettings, toolbarSettings, headerSettings, tableBorders, tableBorderRadius, tableBodyMaxHeight = 200, horizontalScroll = false, crossHeaderSettings, onCrossTableAction, footerItems = [], footerSettings, isFooterVisible = false, isFooterControlVisible = false, footerControlSettings, footerControl, extraClasses, }) => {
|
|
10
|
+
/*
|
|
11
|
+
* Cross Table Root
|
|
12
|
+
*/
|
|
13
|
+
const crossTableDiv = document.createElement('div');
|
|
14
|
+
crossTableDiv.className = getGidsCrossTableClassNames({ tableBorders, tableBorderRadius }, extraClasses);
|
|
15
|
+
/*
|
|
16
|
+
* Toolbar
|
|
17
|
+
*/
|
|
18
|
+
if (isValidChildren(toolbar)) {
|
|
19
|
+
appendAsChildren(crossTableDiv, toolbar);
|
|
20
|
+
}
|
|
21
|
+
else if (isToolbarVisible) {
|
|
22
|
+
const tableToolbar = GidsTableToolbarDom({
|
|
23
|
+
...toolbarSettings,
|
|
24
|
+
children: toolbarChildren,
|
|
25
|
+
});
|
|
26
|
+
crossTableDiv.append(tableToolbar);
|
|
27
|
+
}
|
|
28
|
+
/*
|
|
29
|
+
* Scroll Container
|
|
30
|
+
*/
|
|
31
|
+
const tableScrollContainer = document.createElement('div');
|
|
32
|
+
tableScrollContainer.className = [
|
|
33
|
+
'gids-cross-table__scroll-container',
|
|
34
|
+
horizontalScroll
|
|
35
|
+
? 'gids-cross-table__scroll-container--horizontal-scroll'
|
|
36
|
+
: '',
|
|
37
|
+
]
|
|
38
|
+
.filter(Boolean)
|
|
39
|
+
.join(' ');
|
|
40
|
+
if (tableBodyMaxHeight) {
|
|
41
|
+
tableScrollContainer.style.maxHeight = `${tableBodyMaxHeight}px`;
|
|
42
|
+
}
|
|
43
|
+
/*
|
|
44
|
+
* Cross Table
|
|
45
|
+
*/
|
|
46
|
+
const crossTable = document.createElement('table');
|
|
47
|
+
crossTable.className = 'gids-cross-table__main-table';
|
|
48
|
+
/*
|
|
49
|
+
* Horizontal scroll is enabled:
|
|
50
|
+
*
|
|
51
|
+
* The table is allowed to become wider than the viewport.
|
|
52
|
+
*
|
|
53
|
+
* Horizontal scroll is disabled:
|
|
54
|
+
*
|
|
55
|
+
* The table stays 100% wide and cells wrap exactly like GidsTable.
|
|
56
|
+
*/
|
|
57
|
+
if (horizontalScroll) {
|
|
58
|
+
crossTable.classList.add('gids-cross-table__main-table--horizontal-scroll');
|
|
59
|
+
}
|
|
60
|
+
/*
|
|
61
|
+
* Custom Children
|
|
62
|
+
*/
|
|
63
|
+
if (isValidChildren(children)) {
|
|
64
|
+
appendAsChildren(crossTable, children);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
function onActionBtnClick(event) {
|
|
68
|
+
if (onCrossTableAction) {
|
|
69
|
+
onCrossTableAction({
|
|
70
|
+
...event,
|
|
71
|
+
details: {
|
|
72
|
+
...event.details,
|
|
73
|
+
columnIndex: event?.details?.entryIndex,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/*
|
|
79
|
+
* Header
|
|
80
|
+
*/
|
|
81
|
+
if (isHeaderVisible && headerItems && headerItems.length > 0) {
|
|
82
|
+
const crossTableHeader = GidsTableHeaderDom({
|
|
83
|
+
...headerSettings,
|
|
84
|
+
headerItems: getCustomisedCrossTableHeaderEntries({
|
|
85
|
+
headerItems: [{}, ...headerItems],
|
|
86
|
+
tableBorders,
|
|
87
|
+
}),
|
|
88
|
+
onHeaderAction: onActionBtnClick,
|
|
89
|
+
});
|
|
90
|
+
crossTable.append(crossTableHeader);
|
|
91
|
+
}
|
|
92
|
+
/*
|
|
93
|
+
* Body
|
|
94
|
+
*/
|
|
95
|
+
if (bodyContent && bodyContent.length > 0) {
|
|
96
|
+
crossTable.append(GidsCrossTableBodyDom({
|
|
97
|
+
bodyBorder: getCrossTableBodyBorder({
|
|
98
|
+
tableBorders,
|
|
99
|
+
}),
|
|
100
|
+
bodyContent,
|
|
101
|
+
bodySettings,
|
|
102
|
+
crossHeaderSettings,
|
|
103
|
+
onCrossTableBodyAction: onActionBtnClick,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
/*
|
|
107
|
+
* Footer
|
|
108
|
+
*/
|
|
109
|
+
if (isFooterVisible && footerItems && footerItems.length > 0) {
|
|
110
|
+
const crossTableFooter = GidsTableFooterDom({
|
|
111
|
+
...footerSettings,
|
|
112
|
+
footerItems: getCustomisedCrossTableFooterEntries({
|
|
113
|
+
footerItems: [{}, ...footerItems],
|
|
114
|
+
tableBorders,
|
|
115
|
+
}),
|
|
116
|
+
onFooterAction: onActionBtnClick,
|
|
117
|
+
});
|
|
118
|
+
crossTable.append(crossTableFooter);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/*
|
|
122
|
+
* Put cross table inside scroll container
|
|
123
|
+
*/
|
|
124
|
+
tableScrollContainer.appendChild(crossTable);
|
|
125
|
+
/*
|
|
126
|
+
* Put scroll container inside Cross Table div
|
|
127
|
+
*/
|
|
128
|
+
crossTableDiv.appendChild(tableScrollContainer);
|
|
129
|
+
/*
|
|
130
|
+
* Footer Control
|
|
131
|
+
*/
|
|
132
|
+
if (isFooterControlVisible || isValidChildren(footerControl)) {
|
|
133
|
+
crossTableDiv.append(GidsTableFooterControlDom({
|
|
134
|
+
...footerControlSettings,
|
|
135
|
+
tableViewControllerSettings: footerControlSettings?.tableViewControllerSettings,
|
|
136
|
+
children: footerControl,
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
return crossTableDiv;
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=GidsCrossTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTable.js","sourceRoot":"","sources":["../../../src/components/GidsCrossTable/GidsCrossTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GidsCrossTableBodyActionEvent } from '@ganpatiinfo/gids-core-shared';
|
|
2
|
+
import { GidsCrossTableBodyWebProps, GidsTableEntryTypographyStyle } from '@ganpatiinfo/gids-web-shared';
|
|
3
|
+
import { IconAppearance, IconName } from '@ganpatiinfo/gids-web-theme-interface';
|
|
4
|
+
import { DomChildren } from '../../utils/domUtils';
|
|
5
|
+
type GidsCrossTableBodyBaseWebProps = GidsCrossTableBodyWebProps<GidsTableEntryTypographyStyle, IconName, IconAppearance, DomChildren>;
|
|
6
|
+
export type GidsCrossTableBodyActionBaseEvent = GidsCrossTableBodyActionEvent<Event, GidsTableEntryTypographyStyle, IconName, IconAppearance>;
|
|
7
|
+
export interface GidsCrossTableBodyDomProps extends GidsCrossTableBodyBaseWebProps {
|
|
8
|
+
extraClasses?: string;
|
|
9
|
+
onCrossTableBodyAction?: (event: GidsCrossTableBodyActionBaseEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const GidsCrossTableBodyDom: ({ bodySettings, bodyContent, bodyBorder, crossHeaderSettings, children, onCrossTableBodyAction, extraClasses, }: GidsCrossTableBodyDomProps) => HTMLElement;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=GidsCrossTableBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTableBody.d.ts","sourceRoot":"","sources":["../../../src/components/GidsCrossTableBody/GidsCrossTableBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EACN,0BAA0B,EAE1B,6BAA6B,EAE7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,cAAc,EACd,QAAQ,EACR,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAoB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAerE,KAAK,8BAA8B,GAAG,0BAA0B,CAC/D,6BAA6B,EAC7B,QAAQ,EACR,cAAc,EACd,WAAW,CACX,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,6BAA6B,CAC5E,KAAK,EACL,6BAA6B,EAC7B,QAAQ,EACR,cAAc,CACd,CAAC;AAEF,MAAM,WAAW,0BAA2B,SAAQ,8BAA8B;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,iCAAiC,KAAK,IAAI,CAAC;CAC5E;AAED,eAAO,MAAM,qBAAqB,GAAI,iHAQnC,0BAA0B,KAAG,WAqH/B,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { GidsCrossTableBodyWebUtils, isValidChildren, } from '@ganpatiinfo/gids-web-shared';
|
|
2
|
+
import { appendAsChildren } from '../../utils/domUtils';
|
|
3
|
+
import { GidsCrossTableRowDom, } from '../GidsCrossTableRow/GidsCrossTableRow';
|
|
4
|
+
const { getGidsCrossTableBodyClassNames, getConstructedCrossTableBodyContent, getCrossTableBodyRowEntryBackgroundColor, getCrossTableBodyRowEntryContentColor, getCrossTableBodyRowEntryActionsBackgroundColor, getCrossTableBodyRowEntryActionsContentColor, } = GidsCrossTableBodyWebUtils;
|
|
5
|
+
export const GidsCrossTableBodyDom = ({ bodySettings, bodyContent = [], bodyBorder = 'none', crossHeaderSettings, children, onCrossTableBodyAction, extraClasses, }) => {
|
|
6
|
+
const crossTableBody = document.createElement('tbody');
|
|
7
|
+
crossTableBody.className = getGidsCrossTableBodyClassNames(extraClasses);
|
|
8
|
+
if (isValidChildren(children)) {
|
|
9
|
+
appendAsChildren(crossTableBody, children);
|
|
10
|
+
return crossTableBody;
|
|
11
|
+
}
|
|
12
|
+
if (bodyContent && bodyContent.length > 0) {
|
|
13
|
+
const constructedCrossTableBodyContent = getConstructedCrossTableBodyContent({
|
|
14
|
+
bodyContent,
|
|
15
|
+
bodyBorder,
|
|
16
|
+
});
|
|
17
|
+
function onCrossTableRowActionBtnClick({ event, rowIndex, }) {
|
|
18
|
+
if (onCrossTableBodyAction) {
|
|
19
|
+
onCrossTableBodyAction({
|
|
20
|
+
...event,
|
|
21
|
+
details: {
|
|
22
|
+
...event.details,
|
|
23
|
+
rowIndex,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
constructedCrossTableBodyContent.forEach((constructedCrossTableBody, indexI) => {
|
|
29
|
+
const constructedBodyRowItems = constructedCrossTableBody?.rowItems ?? [];
|
|
30
|
+
const rowBgColor = getCrossTableBodyRowEntryBackgroundColor({
|
|
31
|
+
bodySettings,
|
|
32
|
+
rowIndex: indexI,
|
|
33
|
+
});
|
|
34
|
+
const rowContentColor = getCrossTableBodyRowEntryContentColor({
|
|
35
|
+
bodySettings,
|
|
36
|
+
rowIndex: indexI,
|
|
37
|
+
});
|
|
38
|
+
const rowActionsBgColor = getCrossTableBodyRowEntryActionsBackgroundColor({
|
|
39
|
+
bodySettings,
|
|
40
|
+
rowIndex: indexI,
|
|
41
|
+
});
|
|
42
|
+
const rowActionsContentColor = getCrossTableBodyRowEntryActionsContentColor({
|
|
43
|
+
bodySettings,
|
|
44
|
+
rowIndex: indexI,
|
|
45
|
+
});
|
|
46
|
+
crossTableBody.append(GidsCrossTableRowDom({
|
|
47
|
+
...bodySettings,
|
|
48
|
+
rows: constructedBodyRowItems,
|
|
49
|
+
/*
|
|
50
|
+
* Cross Header
|
|
51
|
+
*
|
|
52
|
+
* sideHeaderItem = actual content
|
|
53
|
+
* for this specific row.
|
|
54
|
+
*/
|
|
55
|
+
crossHeaderItem: constructedCrossTableBody?.crossHeaderItem,
|
|
56
|
+
/*
|
|
57
|
+
* Cross Header Settings
|
|
58
|
+
*
|
|
59
|
+
* Shared configuration/style for
|
|
60
|
+
* all side-header cells.
|
|
61
|
+
*/
|
|
62
|
+
crossHeaderSettings,
|
|
63
|
+
/*
|
|
64
|
+
* Body row styling
|
|
65
|
+
*/
|
|
66
|
+
backgroundColor: rowBgColor,
|
|
67
|
+
contentColor: rowContentColor,
|
|
68
|
+
actionsBackgroundColor: rowActionsBgColor,
|
|
69
|
+
actionsContentColor: rowActionsContentColor,
|
|
70
|
+
onCrossTableRowAction: (event) => onCrossTableRowActionBtnClick({
|
|
71
|
+
event,
|
|
72
|
+
rowIndex: indexI,
|
|
73
|
+
}),
|
|
74
|
+
}));
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return crossTableBody;
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=GidsCrossTableBody.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTableBody.js","sourceRoot":"","sources":["../../../src/components/GidsCrossTableBody/GidsCrossTableBody.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,0BAA0B,EAE1B,eAAe,GACf,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAAE,gBAAgB,EAAe,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAEN,oBAAoB,GACpB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,EACL,+BAA+B,EAC/B,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,EACrC,+CAA+C,EAC/C,4CAA4C,GAC5C,GAAG,0BAA0B,CAAC;AAqB/B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACrC,YAAY,EACZ,WAAW,GAAG,EAAE,EAChB,UAAU,GAAG,MAAM,EACnB,mBAAmB,EACnB,QAAQ,EACR,sBAAsB,EACtB,YAAY,GACgB,EAAe,EAAE;IAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvD,cAAc,CAAC,SAAS,GAAG,+BAA+B,CAAC,YAAY,CAAC,CAAC;IAEzE,IAAI,eAAe,CAAc,QAAQ,CAAC,EAAE,CAAC;QAC5C,gBAAgB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,gCAAgC,GACrC,mCAAmC,CAAC;YACnC,WAAW;YACX,UAAU;SACV,CAAC,CAAC;QAEJ,SAAS,6BAA6B,CAAC,EACtC,KAAK,EACL,QAAQ,GAIR;YACA,IAAI,sBAAsB,EAAE,CAAC;gBAC5B,sBAAsB,CAAC;oBACtB,GAAG,KAAK;oBACR,OAAO,EAAE;wBACR,GAAG,KAAK,CAAC,OAAO;wBAChB,QAAQ;qBACR;iBACD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,gCAAgC,CAAC,OAAO,CACvC,CAAC,yBAAyB,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,uBAAuB,GAC5B,yBAAyB,EAAE,QAAQ,IAAI,EAAE,CAAC;YAE3C,MAAM,UAAU,GAAG,wCAAwC,CAIzD;gBACD,YAAY;gBACZ,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,qCAAqC,CAI3D;gBACD,YAAY;gBACZ,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,MAAM,iBAAiB,GACtB,+CAA+C,CAI7C;gBACD,YAAY;gBACZ,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAC;YAEJ,MAAM,sBAAsB,GAC3B,4CAA4C,CAI1C;gBACD,YAAY;gBACZ,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAC;YAEJ,cAAc,CAAC,MAAM,CACpB,oBAAoB,CAAC;gBACpB,GAAG,YAAY;gBAEf,IAAI,EAAE,uBAAuB;gBAC7B;;;;;mBAKG;gBACH,eAAe,EAAE,yBAAyB,EAAE,eAAe;gBAC3D;;;;;mBAKG;gBACH,mBAAmB;gBACnB;;mBAEG;gBACH,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,eAAe;gBAC7B,sBAAsB,EAAE,iBAAiB;gBACzC,mBAAmB,EAAE,sBAAsB;gBAC3C,qBAAqB,EAAE,CAAC,KAAuC,EAAE,EAAE,CAClE,6BAA6B,CAAC;oBAC7B,KAAK;oBACL,QAAQ,EAAE,MAAM;iBAChB,CAAC;aACH,CAAC,CACF,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GidsCrossTableRowWebProps, GidsTableEntryTypographyStyle } from '@ganpatiinfo/gids-web-shared';
|
|
2
|
+
import { IconAppearance, IconName } from '@ganpatiinfo/gids-web-theme-interface';
|
|
3
|
+
import { DomChildren } from '../../utils/domUtils';
|
|
4
|
+
import { GidsCrossTableRowActionEvent } from '@ganpatiinfo/gids-core-shared';
|
|
5
|
+
type GidsCrossTableRowBaseWebProps = GidsCrossTableRowWebProps<GidsTableEntryTypographyStyle, IconName, IconAppearance, DomChildren>;
|
|
6
|
+
export type GidsCrossTableRowActionBaseEvent = GidsCrossTableRowActionEvent<Event, GidsTableEntryTypographyStyle, IconName, IconAppearance>;
|
|
7
|
+
export interface GidsCrossTableRowDomProps extends GidsCrossTableRowBaseWebProps {
|
|
8
|
+
extraClasses?: string;
|
|
9
|
+
onCrossTableRowAction?: (event: GidsCrossTableRowActionBaseEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const GidsCrossTableRowDom: ({ rows, crossHeaderItem, crossHeaderSettings, onCrossTableRowAction, textAlignment, appearance, labelTypography, entryAlignment, colorSwatchLabelColor, colorSwatchLabelPosition, colorSwatchLabelTypography, colorSwatchSize, colorSwatchShape, colorSwatchShadow, colorSwatchBorderRadius, colorSwatchApplyBorders, colorSwatchBorderWidth, progressBarSize, progressBarEndCap, avatarSize, avatarGroupAppearance, avatarGroupLayout, statusTagAppearance, statusTagSize, progressBarContainerMinWidth, displayTagsOrientation, statusTagsOrientation, progressBarsOrientation, colorSwatchesOrientation, badgesOrientation, actionsBackgroundColor, actionsContentColor, backgroundColor, contentColor, children, extraClasses, }: GidsCrossTableRowDomProps) => HTMLTableRowElement;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=GidsCrossTableRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTableRow.d.ts","sourceRoot":"","sources":["../../../src/components/GidsCrossTableRow/GidsCrossTableRow.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EACzB,6BAA6B,EAG7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,cAAc,EACd,QAAQ,EACR,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAKrE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAI7E,KAAK,6BAA6B,GAAG,yBAAyB,CAC7D,6BAA6B,EAC7B,QAAQ,EACR,cAAc,EACd,WAAW,CACX,CAAC;AACF,MAAM,MAAM,gCAAgC,GAAG,4BAA4B,CAC1E,KAAK,EACL,6BAA6B,EAC7B,QAAQ,EACR,cAAc,CACd,CAAC;AAEF,MAAM,WAAW,yBAA0B,SAAQ,6BAA6B;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,IAAI,CAAC;CAC1E;AAED,eAAO,MAAM,oBAAoB,GAAI,ssBAqClC,yBAAyB,KAAG,mBA2J9B,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { GidsCrossTableRowWebUtils, isValidChildren, } from '@ganpatiinfo/gids-web-shared';
|
|
2
|
+
import { appendAsChildren } from '../../utils/domUtils';
|
|
3
|
+
import { GidsTableEntryDom, } from '../GidsTableEntry/GidsTableEntry';
|
|
4
|
+
const { getGidsCrossTableRowClassNames } = GidsCrossTableRowWebUtils;
|
|
5
|
+
export const GidsCrossTableRowDom = ({ rows = [], crossHeaderItem, crossHeaderSettings, onCrossTableRowAction, textAlignment = 'center', appearance = 'none', labelTypography = 'label-medium', entryAlignment = 'center', colorSwatchLabelColor = 'default', colorSwatchLabelPosition = 'left', colorSwatchLabelTypography = 'label-medium', colorSwatchSize = 'sm', colorSwatchShape = 'oval', colorSwatchShadow = 'shadow-overlay', colorSwatchBorderRadius = 'none', colorSwatchApplyBorders = true, colorSwatchBorderWidth = 'thick', progressBarSize = 'sm', progressBarEndCap = true, avatarSize = 'sm', avatarGroupAppearance, avatarGroupLayout, statusTagAppearance = 'subtle', statusTagSize = 'sm', progressBarContainerMinWidth = 200, displayTagsOrientation = 'horizontal', statusTagsOrientation = 'horizontal', progressBarsOrientation = 'horizontal', colorSwatchesOrientation = 'horizontal', badgesOrientation = 'horizontal', actionsBackgroundColor, actionsContentColor, backgroundColor, contentColor, children, extraClasses, }) => {
|
|
6
|
+
const crossTableRow = document.createElement('tr');
|
|
7
|
+
crossTableRow.className = getGidsCrossTableRowClassNames(extraClasses);
|
|
8
|
+
if (isValidChildren(children)) {
|
|
9
|
+
appendAsChildren(crossTableRow, children);
|
|
10
|
+
return crossTableRow;
|
|
11
|
+
}
|
|
12
|
+
function onEntryActionBtnClick({ event, entryIndex, }) {
|
|
13
|
+
if (onCrossTableRowAction) {
|
|
14
|
+
onCrossTableRowAction({
|
|
15
|
+
...event,
|
|
16
|
+
details: {
|
|
17
|
+
...event.details,
|
|
18
|
+
entryIndex,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/*
|
|
24
|
+
* Cross Header
|
|
25
|
+
*
|
|
26
|
+
* IMPORTANT:
|
|
27
|
+
* Cross header settings are completely independent
|
|
28
|
+
* from the body row settings.
|
|
29
|
+
*/
|
|
30
|
+
if (crossHeaderItem && Object.keys(crossHeaderItem).length > 0) {
|
|
31
|
+
crossTableRow.append(GidsTableEntryDom({
|
|
32
|
+
...crossHeaderItem,
|
|
33
|
+
...crossHeaderSettings,
|
|
34
|
+
label: crossHeaderItem?.label,
|
|
35
|
+
entryType: 'header',
|
|
36
|
+
/*
|
|
37
|
+
* Cross header uses its own settings first.
|
|
38
|
+
*/
|
|
39
|
+
leadingActions: crossHeaderItem?.leadingActions ?? [],
|
|
40
|
+
trailingActions: crossHeaderItem?.trailingActions ?? [],
|
|
41
|
+
entryAlignment: crossHeaderSettings?.entryAlignment ?? 'center',
|
|
42
|
+
colorSwatchLabelColor: crossHeaderSettings?.colorSwatchLabelColor ?? 'default',
|
|
43
|
+
colorSwatchLabelPosition: crossHeaderSettings?.colorSwatchLabelPosition ?? 'left',
|
|
44
|
+
colorSwatchLabelTypography: crossHeaderSettings?.colorSwatchLabelTypography ?? 'label-medium',
|
|
45
|
+
colorSwatchSize: crossHeaderSettings?.colorSwatchSize ?? 'sm',
|
|
46
|
+
colorSwatchShape: crossHeaderSettings?.colorSwatchShape ?? 'oval',
|
|
47
|
+
colorSwatchShadow: crossHeaderSettings?.colorSwatchShadow ?? 'shadow-overlay',
|
|
48
|
+
colorSwatchBorderRadius: crossHeaderSettings?.colorSwatchBorderRadius ?? 'none',
|
|
49
|
+
colorSwatchApplyBorders: crossHeaderSettings?.colorSwatchApplyBorders ?? true,
|
|
50
|
+
colorSwatchBorderWidth: crossHeaderSettings?.colorSwatchBorderWidth ?? 'thick',
|
|
51
|
+
progressBarSize: crossHeaderSettings?.progressBarSize ?? 'sm',
|
|
52
|
+
progressBarEndCap: crossHeaderSettings?.progressBarEndCap ?? true,
|
|
53
|
+
avatarSize: crossHeaderSettings?.avatarSize ?? 'sm',
|
|
54
|
+
avatarGroupAppearance: crossHeaderSettings?.avatarGroupAppearance ?? 'spread',
|
|
55
|
+
avatarGroupLayout: crossHeaderSettings?.avatarGroupLayout ?? 'wrap',
|
|
56
|
+
statusTagAppearance: crossHeaderSettings?.statusTagAppearance ?? 'subtle',
|
|
57
|
+
statusTagSize: crossHeaderSettings?.statusTagSize ?? 'sm',
|
|
58
|
+
progressBarContainerMinWidth: crossHeaderSettings?.progressBarContainerMinWidth ?? 200,
|
|
59
|
+
displayTagsOrientation: crossHeaderSettings?.displayTagsOrientation ?? 'horizontal',
|
|
60
|
+
statusTagsOrientation: crossHeaderSettings?.statusTagsOrientation ?? 'horizontal',
|
|
61
|
+
progressBarsOrientation: crossHeaderSettings?.progressBarsOrientation ?? 'horizontal',
|
|
62
|
+
colorSwatchesOrientation: crossHeaderSettings?.colorSwatchesOrientation ?? 'horizontal',
|
|
63
|
+
badgesOrientation: crossHeaderSettings?.badgesOrientation ?? 'horizontal',
|
|
64
|
+
textAlignment: crossHeaderSettings?.textAlignment ?? 'center',
|
|
65
|
+
labelTypography: crossHeaderSettings?.labelTypography ?? 'label-medium',
|
|
66
|
+
appearance: crossHeaderSettings?.appearance ?? 'none',
|
|
67
|
+
/*
|
|
68
|
+
* Most importantly, colors come from crossHeaderSettings,
|
|
69
|
+
* never from the body row.
|
|
70
|
+
*/
|
|
71
|
+
onEntryAction: (event) => onEntryActionBtnClick({
|
|
72
|
+
event,
|
|
73
|
+
entryIndex: -1,
|
|
74
|
+
}),
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
/*
|
|
78
|
+
* Body Cells
|
|
79
|
+
*
|
|
80
|
+
* These continue using the normal row settings.
|
|
81
|
+
*/
|
|
82
|
+
if (rows && rows.length > 0) {
|
|
83
|
+
rows.forEach((row, index) => {
|
|
84
|
+
crossTableRow.append(GidsTableEntryDom({
|
|
85
|
+
...row,
|
|
86
|
+
entryType: 'body',
|
|
87
|
+
leadingActions: row?.leadingActions ?? [],
|
|
88
|
+
trailingActions: row?.trailingActions ?? [],
|
|
89
|
+
entryAlignment,
|
|
90
|
+
colorSwatchLabelColor,
|
|
91
|
+
colorSwatchLabelPosition,
|
|
92
|
+
colorSwatchLabelTypography,
|
|
93
|
+
colorSwatchSize,
|
|
94
|
+
colorSwatchShape,
|
|
95
|
+
colorSwatchShadow,
|
|
96
|
+
colorSwatchBorderRadius,
|
|
97
|
+
colorSwatchApplyBorders,
|
|
98
|
+
colorSwatchBorderWidth,
|
|
99
|
+
progressBarSize,
|
|
100
|
+
progressBarEndCap,
|
|
101
|
+
avatarSize,
|
|
102
|
+
avatarGroupAppearance,
|
|
103
|
+
avatarGroupLayout,
|
|
104
|
+
statusTagAppearance,
|
|
105
|
+
statusTagSize,
|
|
106
|
+
progressBarContainerMinWidth,
|
|
107
|
+
displayTagsOrientation,
|
|
108
|
+
statusTagsOrientation,
|
|
109
|
+
progressBarsOrientation,
|
|
110
|
+
colorSwatchesOrientation,
|
|
111
|
+
badgesOrientation,
|
|
112
|
+
textAlignment,
|
|
113
|
+
labelTypography,
|
|
114
|
+
appearance,
|
|
115
|
+
backgroundColor,
|
|
116
|
+
contentColor,
|
|
117
|
+
actionsBackgroundColor,
|
|
118
|
+
actionsContentColor,
|
|
119
|
+
onEntryAction: (event) => onEntryActionBtnClick({
|
|
120
|
+
event,
|
|
121
|
+
entryIndex: index,
|
|
122
|
+
}),
|
|
123
|
+
}));
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return crossTableRow;
|
|
127
|
+
};
|
|
128
|
+
//# sourceMappingURL=GidsCrossTableRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsCrossTableRow.js","sourceRoot":"","sources":["../../../src/components/GidsCrossTableRow/GidsCrossTableRow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type GidsDialogWebProps } from '@ganpatiinfo/gids-web-shared';
|
|
2
|
+
import { DomNodeOrString } from '../../utils/domUtils.js';
|
|
3
|
+
import { IconAppearance, IconName } from '@ganpatiinfo/gids-web-theme-interface';
|
|
4
|
+
type GidsDialogBaseWebProps = GidsDialogWebProps<DomNodeOrString, Event, IconName, IconAppearance>;
|
|
5
|
+
export type GidsDialogCustomElement = HTMLDialogElement & {
|
|
6
|
+
element: HTMLDialogElement;
|
|
7
|
+
open: (parent?: HTMLElement) => void;
|
|
8
|
+
close: () => void;
|
|
9
|
+
};
|
|
10
|
+
export type GidsDialogDomProps = GidsDialogBaseWebProps;
|
|
11
|
+
export declare const GidsDialogDom: ({ variant, maxWidth, scrollMode, draggable, headerTitle, closeVisible, children, footerActions, headerDividerVisible, footerDividerVisible, transition, cancellable, onCloseDialog, onDialogFooterAction, }: GidsDialogDomProps) => GidsDialogCustomElement;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=GidsDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsDialog.d.ts","sourceRoot":"","sources":["../../../src/components/GidsDialog/GidsDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACN,cAAc,EACd,QAAQ,EACR,MAAM,uCAAuC,CAAC;AAM/C,KAAK,sBAAsB,GAAG,kBAAkB,CAC/C,eAAe,EACf,KAAK,EACL,QAAQ,EACR,cAAc,CACd,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,GAAG;IACzD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AAExD,eAAO,MAAM,aAAa,GAAI,6MAe3B,kBAAkB,KAAG,uBAmHvB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { GidsDialogWebUtils, } from '@ganpatiinfo/gids-web-shared';
|
|
2
|
+
import { GidsDialogControlDom } from '../_GidsDialogControl/GidsDialogControl.js';
|
|
3
|
+
const { getGidsDialogClassNames } = GidsDialogWebUtils;
|
|
4
|
+
export const GidsDialogDom = ({ variant = 'alert', maxWidth = 'sm', scrollMode = 'paper', draggable = false, headerTitle, closeVisible = true, children, footerActions = [], headerDividerVisible = false, footerDividerVisible = false, transition = 'none', cancellable, onCloseDialog, onDialogFooterAction, }) => {
|
|
5
|
+
const nativeClose = HTMLDialogElement.prototype.close;
|
|
6
|
+
function executeClose(event) {
|
|
7
|
+
if (onCloseDialog) {
|
|
8
|
+
onCloseDialog({ originalEvent: event?.originalEvent });
|
|
9
|
+
}
|
|
10
|
+
dialog.close();
|
|
11
|
+
}
|
|
12
|
+
// 1. Generate the pristine native dialog instance directly from the control function
|
|
13
|
+
const dialog = GidsDialogControlDom({
|
|
14
|
+
variant,
|
|
15
|
+
maxWidth,
|
|
16
|
+
scrollMode,
|
|
17
|
+
draggable,
|
|
18
|
+
headerTitle,
|
|
19
|
+
closeVisible,
|
|
20
|
+
children,
|
|
21
|
+
footerActions,
|
|
22
|
+
headerDividerVisible,
|
|
23
|
+
footerDividerVisible,
|
|
24
|
+
onCloseDialogControl: executeClose,
|
|
25
|
+
onDialogControlFooterAction: onDialogFooterAction,
|
|
26
|
+
});
|
|
27
|
+
// 2. CRITICAL BODY SCROLL PROTECTION: Inject layout protections inline immediately
|
|
28
|
+
if (scrollMode === 'body') {
|
|
29
|
+
dialog.style.setProperty('position', 'absolute', 'important');
|
|
30
|
+
dialog.style.setProperty('max-height', 'none', 'important');
|
|
31
|
+
dialog.style.setProperty('overflow', 'visible', 'important');
|
|
32
|
+
}
|
|
33
|
+
// 3. RESTORED: Backdrop-only click cancellation logic for DOM target implementation
|
|
34
|
+
if (cancellable) {
|
|
35
|
+
dialog.addEventListener('click', (event) => {
|
|
36
|
+
if (event.target === dialog) {
|
|
37
|
+
const rect = dialog.getBoundingClientRect();
|
|
38
|
+
const isOutside = event.clientX < rect.left ||
|
|
39
|
+
event.clientX > rect.right ||
|
|
40
|
+
event.clientY < rect.top ||
|
|
41
|
+
event.clientY > rect.bottom;
|
|
42
|
+
if (isOutside) {
|
|
43
|
+
executeClose({ originalEvent: event });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
dialog.element = dialog;
|
|
49
|
+
// 4. Overwrite orchestration controllers cleanly via Object.defineProperty
|
|
50
|
+
Object.defineProperty(dialog, 'open', {
|
|
51
|
+
value: (parent = document.body) => {
|
|
52
|
+
// Append the node directly to the DOM tree first
|
|
53
|
+
if (!dialog.isConnected) {
|
|
54
|
+
parent.appendChild(dialog);
|
|
55
|
+
}
|
|
56
|
+
if (scrollMode === 'body') {
|
|
57
|
+
document.body.style.overflow = 'hidden';
|
|
58
|
+
}
|
|
59
|
+
// Add base classes and transition modifiers ONLY when open() runs to stop the jumping bug
|
|
60
|
+
dialog.classList.add('gids-dialog');
|
|
61
|
+
const transitionClasses = getGidsDialogClassNames({ transition });
|
|
62
|
+
if (transitionClasses) {
|
|
63
|
+
transitionClasses.split(' ').forEach((className) => {
|
|
64
|
+
if (className.trim()) {
|
|
65
|
+
dialog.classList.add(className.trim());
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Force a quick layout reflow to initialize your animation coordinates perfectly
|
|
70
|
+
void dialog.offsetHeight;
|
|
71
|
+
// Open modal cleanly on the top layer
|
|
72
|
+
dialog.showModal();
|
|
73
|
+
},
|
|
74
|
+
writable: true,
|
|
75
|
+
configurable: true,
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(dialog, 'close', {
|
|
78
|
+
value: () => {
|
|
79
|
+
if (scrollMode === 'body') {
|
|
80
|
+
document.body.style.overflow = '';
|
|
81
|
+
}
|
|
82
|
+
// Clean up all added classes on close so they completely reset for the next run
|
|
83
|
+
dialog.classList.remove('gids-dialog');
|
|
84
|
+
const transitionClasses = getGidsDialogClassNames({ transition });
|
|
85
|
+
if (transitionClasses) {
|
|
86
|
+
transitionClasses.split(' ').forEach((className) => {
|
|
87
|
+
if (className.trim()) {
|
|
88
|
+
dialog.classList.remove(className.trim());
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
nativeClose.call(dialog);
|
|
93
|
+
if (dialog.isConnected) {
|
|
94
|
+
dialog.remove();
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
writable: true,
|
|
98
|
+
configurable: true,
|
|
99
|
+
});
|
|
100
|
+
return dialog;
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=GidsDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GidsDialog.js","sourceRoot":"","sources":["../../../src/components/GidsDialog/GidsDialog.ts"],"names":[],"mappings":"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"}
|