@talxis/base-controls 1.2606.7 → 1.2606.8
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/components/DatasetControl/EditColumns/EditColumns.js +2 -1
- package/dist/components/DatasetControl/EditColumns/EditColumns.js.map +1 -1
- package/dist/components/DatasetControl/EditColumns/styles.d.ts +3 -0
- package/dist/components/DatasetControl/EditColumns/styles.js +3 -0
- package/dist/components/DatasetControl/EditColumns/styles.js.map +1 -1
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js +2 -0
- package/dist/components/Grid/grid/ag-grid/AgGridModel.js.map +1 -1
- package/package.json +1 -1
|
@@ -60,7 +60,8 @@ const EditColumns = (props) => {
|
|
|
60
60
|
footer: styles.panelFooter,
|
|
61
61
|
commands: styles.panelCommands,
|
|
62
62
|
scrollableContent: styles.panelScrollableContent,
|
|
63
|
-
content: styles.panelContent
|
|
63
|
+
content: styles.panelContent,
|
|
64
|
+
headerText: styles.headerText
|
|
64
65
|
}, isFooterAtBottom: true, onRenderFooterContent: () => {
|
|
65
66
|
return jsxs("div", { className: styles.panelFooterButtons, children: [jsx(PrimaryButton, { onClick: () => {
|
|
66
67
|
editColumnsModel.save();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditColumns.js","sources":["../../../../src/components/DatasetControl/EditColumns/EditColumns.tsx"],"sourcesContent":["import { DefaultButton, IPanelProps, Label, Overlay, Panel, PrimaryButton, useTheme } from \"@fluentui/react\";\nimport { useModel } from \"../useModel\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { getEditColumnsStyles } from \"./styles\";\nimport { DndContext, PointerSensor, useSensor } from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport { SortableContext, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { SortableItem } from \"./SortableItem/SortableItem\";\nimport { useEventEmitter } from \"../../../hooks\";\nimport { useRerender, Spinner } from \"@talxis/react-components\";\nimport { ColumnSelector } from \"./ColumnSelector/ColumnSelector\";\nimport { useShouldRemount } from \"../../../hooks/useShouldRemount\";\nimport { ScopeSelector } from \"./ScopeSelector/ScopeSelector\";\nimport { IEditColumns, IEditColumnsEvents } from \"../../../utils/dataset-control/EditColumns\";\nimport { EditColumnsContext } from \"./useEditColumns\";\nimport { IComponents } from \"./components\";\nimport { components as defaultComponents } from \"./components\";\nimport { IColumn } from \"@talxis/client-libraries\";\n\nexport interface IEditColumnsRef {\n remountColumnSelector: () => void;\n editColumnsModel: IEditColumns;\n}\n\nexport interface IEditColumnsProps {\n onDismiss: () => void;\n isLoading?: boolean;\n showScopeSelector?: boolean;\n components?: Partial<IComponents>;\n panelProps?: IPanelProps;\n onGetRef?: (ref: IEditColumnsRef) => void;\n onFilterVisibleColumns?: (columns: IColumn[]) => IColumn[];\n}\n\n\nexport const EditColumns = (props: IEditColumnsProps) => {\n const model = useModel();\n const datasetControl = model.getDatasetControl();\n const dataset = datasetControl.getDataset();\n const provider = dataset.getDataProvider();\n const theme = useTheme();\n const labels = model.getLabels();\n const styles = useMemo(() => getEditColumnsStyles(theme), []);\n const editColumnsModel = useMemo(() => datasetControl.editColumns, []);\n const columns = props.onFilterVisibleColumns?.(editColumnsModel.getColumns()) ?? editColumnsModel.getColumns();\n const sensor = useSensor(PointerSensor);\n const scrollableContainerRef = useRef<HTMLDivElement>(null);\n const { isLoading, showScopeSelector = true } = props;\n const [shouldRemountColumnSelector, remountColumnSelector] = useShouldRemount();\n const [openColumnSelectorOnMount, setOpenColumnSelectorOnMount] = useState(false);\n //TODO: unify via hook?\n const components = { ...defaultComponents, ...props.components };\n const rerender = useRerender();\n\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onColumnsChanged', rerender);\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onRelatedEntityColumnChanged', () => {\n remountColumnSelector();\n setOpenColumnSelectorOnMount(true);\n });\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onColumnAdded', () => scrollableContainerRef.current?.scrollTo({ top: 0 }));\n\n useEffect(() => {\n props.onGetRef?.({\n remountColumnSelector,\n editColumnsModel\n })\n }, []);\n\n const getTitle = () => {\n const collectionName = provider.getMetadata().DisplayCollectionName;\n let title = labels[\"edit-columns\"]();\n if (collectionName) {\n title += `: ${collectionName}`;\n }\n return title;\n }\n\n const onDismiss = (ev?: React.SyntheticEvent<HTMLElement, Event> | KeyboardEvent | undefined) => {\n return (ev as KeyboardEvent)?.key === 'Escape' ? ev?.preventDefault() : props.onDismiss();\n };\n\n return <EditColumnsContext.Provider value={{ model: editColumnsModel, components }}>\n <Panel\n headerText={getTitle()}\n isOpen={true}\n onDismiss={onDismiss}\n styles={{\n footer: styles.panelFooter,\n commands: styles.panelCommands,\n scrollableContent: styles.panelScrollableContent,\n content: styles.panelContent\n }}\n isFooterAtBottom\n onRenderFooterContent={() => {\n return <div className={styles.panelFooterButtons}>\n <PrimaryButton\n onClick={() => {\n editColumnsModel.save();\n props.onDismiss();\n }}\n text={labels['save']()}\n disabled={columns.filter(col => !col.isHidden).length === 0}\n />\n <DefaultButton\n text={labels['cancel']()}\n onClick={props.onDismiss}\n />\n </div>\n }}\n {...props.panelProps}\n >\n {isLoading && <Overlay className={styles.loadingOverlay}>\n <Spinner />\n </Overlay>}\n <div className={styles.header}>\n <components.CommandBar items={[]} />\n <div className={styles.selectors}>\n {showScopeSelector && (\n <div className={styles.selector}>\n <Label>{labels[\"column-source\"]()}</Label>\n <ScopeSelector />\n </div>\n )}\n <div style={{height: 38}} className={styles.selector}>\n {!shouldRemountColumnSelector && <ColumnSelector\n openMenuOnMount={openColumnSelectorOnMount} />}\n </div>\n </div>\n </div>\n <div ref={scrollableContainerRef} className={styles.scrollableContainer}>\n <DndContext\n sensors={[sensor]}\n onDragEnd={(e) => editColumnsModel.moveColumn(e.active.id.toString(), e.over?.id.toString() ?? '')}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n strategy={verticalListSortingStrategy}\n items={editColumnsModel.getColumns()}>\n <div className={styles.sortableItemsWrapper}>\n {columns.filter(col => !col.isHidden).map(col => {\n return <SortableItem key={col.name} column={col} />\n })}\n </div>\n </SortableContext>\n </DndContext>\n </div>\n </Panel>\n </EditColumnsContext.Provider>\n}\n\n"],"names":["components","defaultComponents","_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditColumns.js","sources":["../../../../src/components/DatasetControl/EditColumns/EditColumns.tsx"],"sourcesContent":["import { DefaultButton, IPanelProps, Label, Overlay, Panel, PrimaryButton, useTheme } from \"@fluentui/react\";\nimport { useModel } from \"../useModel\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { getEditColumnsStyles } from \"./styles\";\nimport { DndContext, PointerSensor, useSensor } from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport { SortableContext, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { SortableItem } from \"./SortableItem/SortableItem\";\nimport { useEventEmitter } from \"../../../hooks\";\nimport { useRerender, Spinner } from \"@talxis/react-components\";\nimport { ColumnSelector } from \"./ColumnSelector/ColumnSelector\";\nimport { useShouldRemount } from \"../../../hooks/useShouldRemount\";\nimport { ScopeSelector } from \"./ScopeSelector/ScopeSelector\";\nimport { IEditColumns, IEditColumnsEvents } from \"../../../utils/dataset-control/EditColumns\";\nimport { EditColumnsContext } from \"./useEditColumns\";\nimport { IComponents } from \"./components\";\nimport { components as defaultComponents } from \"./components\";\nimport { IColumn } from \"@talxis/client-libraries\";\n\nexport interface IEditColumnsRef {\n remountColumnSelector: () => void;\n editColumnsModel: IEditColumns;\n}\n\nexport interface IEditColumnsProps {\n onDismiss: () => void;\n isLoading?: boolean;\n showScopeSelector?: boolean;\n components?: Partial<IComponents>;\n panelProps?: IPanelProps;\n onGetRef?: (ref: IEditColumnsRef) => void;\n onFilterVisibleColumns?: (columns: IColumn[]) => IColumn[];\n}\n\n\nexport const EditColumns = (props: IEditColumnsProps) => {\n const model = useModel();\n const datasetControl = model.getDatasetControl();\n const dataset = datasetControl.getDataset();\n const provider = dataset.getDataProvider();\n const theme = useTheme();\n const labels = model.getLabels();\n const styles = useMemo(() => getEditColumnsStyles(theme), []);\n const editColumnsModel = useMemo(() => datasetControl.editColumns, []);\n const columns = props.onFilterVisibleColumns?.(editColumnsModel.getColumns()) ?? editColumnsModel.getColumns();\n const sensor = useSensor(PointerSensor);\n const scrollableContainerRef = useRef<HTMLDivElement>(null);\n const { isLoading, showScopeSelector = true } = props;\n const [shouldRemountColumnSelector, remountColumnSelector] = useShouldRemount();\n const [openColumnSelectorOnMount, setOpenColumnSelectorOnMount] = useState(false);\n //TODO: unify via hook?\n const components = { ...defaultComponents, ...props.components };\n const rerender = useRerender();\n\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onColumnsChanged', rerender);\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onRelatedEntityColumnChanged', () => {\n remountColumnSelector();\n setOpenColumnSelectorOnMount(true);\n });\n useEventEmitter<IEditColumnsEvents>(editColumnsModel, 'onColumnAdded', () => scrollableContainerRef.current?.scrollTo({ top: 0 }));\n\n useEffect(() => {\n props.onGetRef?.({\n remountColumnSelector,\n editColumnsModel\n })\n }, []);\n\n const getTitle = () => {\n const collectionName = provider.getMetadata().DisplayCollectionName;\n let title = labels[\"edit-columns\"]();\n if (collectionName) {\n title += `: ${collectionName}`;\n }\n return title;\n }\n\n const onDismiss = (ev?: React.SyntheticEvent<HTMLElement, Event> | KeyboardEvent | undefined) => {\n return (ev as KeyboardEvent)?.key === 'Escape' ? ev?.preventDefault() : props.onDismiss();\n };\n\n return <EditColumnsContext.Provider value={{ model: editColumnsModel, components }}>\n <Panel\n headerText={getTitle()}\n isOpen={true}\n onDismiss={onDismiss}\n styles={{\n footer: styles.panelFooter,\n commands: styles.panelCommands,\n scrollableContent: styles.panelScrollableContent,\n content: styles.panelContent,\n headerText: styles.headerText\n }}\n isFooterAtBottom\n onRenderFooterContent={() => {\n return <div className={styles.panelFooterButtons}>\n <PrimaryButton\n onClick={() => {\n editColumnsModel.save();\n props.onDismiss();\n }}\n text={labels['save']()}\n disabled={columns.filter(col => !col.isHidden).length === 0}\n />\n <DefaultButton\n text={labels['cancel']()}\n onClick={props.onDismiss}\n />\n </div>\n }}\n {...props.panelProps}\n >\n {isLoading && <Overlay className={styles.loadingOverlay}>\n <Spinner />\n </Overlay>}\n <div className={styles.header}>\n <components.CommandBar items={[]} />\n <div className={styles.selectors}>\n {showScopeSelector && (\n <div className={styles.selector}>\n <Label>{labels[\"column-source\"]()}</Label>\n <ScopeSelector />\n </div>\n )}\n <div style={{height: 38}} className={styles.selector}>\n {!shouldRemountColumnSelector && <ColumnSelector\n openMenuOnMount={openColumnSelectorOnMount} />}\n </div>\n </div>\n </div>\n <div ref={scrollableContainerRef} className={styles.scrollableContainer}>\n <DndContext\n sensors={[sensor]}\n onDragEnd={(e) => editColumnsModel.moveColumn(e.active.id.toString(), e.over?.id.toString() ?? '')}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n strategy={verticalListSortingStrategy}\n items={editColumnsModel.getColumns()}>\n <div className={styles.sortableItemsWrapper}>\n {columns.filter(col => !col.isHidden).map(col => {\n return <SortableItem key={col.name} column={col} />\n })}\n </div>\n </SortableContext>\n </DndContext>\n </div>\n </Panel>\n </EditColumnsContext.Provider>\n}\n\n"],"names":["components","defaultComponents","_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/components/DatasetControl/EditColumns/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\nimport { ITheme } from \"@talxis/react-components\";\n\nexport const getEditColumnsStyles = (theme: ITheme) => {\n return mergeStyleSets({\n panelFooter: {\n borderTop: `1px solid ${theme.semanticColors.bodyDivider}`\n },\n panelFooterButtons: {\n display: 'flex',\n gap: 10\n },\n sortableItemsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n gap: 10\n },\n panelCommands: {\n },\n panelScrollableContent: {\n overflowX: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n },\n panelContent: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n padding: 0\n },\n scrollableContainer: {\n overflow: 'auto',\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 12,\n paddingBottom: 12,\n flex: 1,\n scrollbarWidth: 'thin',\n },\n header: {\n borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,\n paddingBottom: 15,\n paddingTop: 15,\n display: 'flex',\n flexDirection: 'column',\n gap: 12\n },\n selectors: {\n display: 'flex',\n flexDirection: 'column',\n gap: 12\n },\n selector: {\n marginLeft: 15,\n marginRight: 15\n },\n loadingOverlay: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 1\n }\n });\n}"],"names":[],"mappings":";;AAGa,MAAA,oBAAoB,GAAG,CAAC,KAAa,KAAI;AAClD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,WAAW,EAAE;AACT,YAAA,SAAS,EAAE,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAE,CAAA;AAC7D,SAAA;AACD,QAAA,kBAAkB,EAAE;AAChB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,oBAAoB,EAAE;AAClB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,aAAa,EAAE,EACd;AACD,QAAA,sBAAsB,EAAE;AACpB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AAC1B,SAAA;AACD,QAAA,YAAY,EAAE;AACT,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE,CAAC;AACd,SAAA;AACD,QAAA,mBAAmB,EAAE;AACjB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,cAAc,EAAE,MAAM;AACzB,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,YAAY,EAAE,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAE,CAAA;AAC7D,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AAClB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,MAAM,EAAE,CAAC;AACZ,SAAA;AACJ,KAAA,CAAC,CAAC;AACP;;;;"}
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/DatasetControl/EditColumns/styles.ts"],"sourcesContent":["import { mergeStyleSets } from \"@fluentui/react\"\nimport { ITheme } from \"@talxis/react-components\";\n\nexport const getEditColumnsStyles = (theme: ITheme) => {\n return mergeStyleSets({\n panelFooter: {\n borderTop: `1px solid ${theme.semanticColors.bodyDivider}`\n },\n panelFooterButtons: {\n display: 'flex',\n gap: 10\n },\n sortableItemsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n gap: 10\n },\n panelCommands: {\n },\n panelScrollableContent: {\n overflowX: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n },\n panelContent: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n padding: 0\n },\n scrollableContainer: {\n overflow: 'auto',\n paddingLeft: 15,\n paddingRight: 15,\n paddingTop: 12,\n paddingBottom: 12,\n flex: 1,\n scrollbarWidth: 'thin',\n },\n header: {\n borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,\n paddingBottom: 15,\n paddingTop: 15,\n display: 'flex',\n flexDirection: 'column',\n gap: 12\n },\n headerText: {\n whiteSpace: 'normal'\n },\n selectors: {\n display: 'flex',\n flexDirection: 'column',\n gap: 12\n },\n selector: {\n marginLeft: 15,\n marginRight: 15\n },\n loadingOverlay: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 1\n }\n });\n}"],"names":[],"mappings":";;AAGa,MAAA,oBAAoB,GAAG,CAAC,KAAa,KAAI;AAClD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,WAAW,EAAE;AACT,YAAA,SAAS,EAAE,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAE,CAAA;AAC7D,SAAA;AACD,QAAA,kBAAkB,EAAE;AAChB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,oBAAoB,EAAE;AAClB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,aAAa,EAAE,EACd;AACD,QAAA,sBAAsB,EAAE;AACpB,YAAA,SAAS,EAAE,QAAQ;AACnB,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AAC1B,SAAA;AACD,QAAA,YAAY,EAAE;AACT,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,OAAO,EAAE,CAAC;AACd,SAAA;AACD,QAAA,mBAAmB,EAAE;AACjB,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,YAAY,EAAE,EAAE;AAChB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,cAAc,EAAE,MAAM;AACzB,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,YAAY,EAAE,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAE,CAAA;AAC7D,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,UAAU,EAAE;AACR,YAAA,UAAU,EAAE,QAAQ;AACvB,SAAA;AACD,QAAA,SAAS,EAAE;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,QAAQ,EAAE;AACN,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,WAAW,EAAE,EAAE;AAClB,SAAA;AACD,QAAA,cAAc,EAAE;AACZ,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,MAAM,EAAE,CAAC;AACZ,SAAA;AACJ,KAAA,CAAC,CAAC;AACP;;;;"}
|
|
@@ -238,6 +238,8 @@ class AgGridModel extends EventEmitter {
|
|
|
238
238
|
case this._grid.isColumnEditable(column.name, e.data):
|
|
239
239
|
//do not navigate on aggregated/grouped rows
|
|
240
240
|
case e.data?.getSummarizationType() !== 'none':
|
|
241
|
+
//do not allow double click navigation for editable grids (it creates confusion between double clicking read only columns to navigate and double clicking editable columns to edit)
|
|
242
|
+
case this._grid.isEditingEnabled():
|
|
241
243
|
//do not navigate on checkbox column
|
|
242
244
|
case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {
|
|
243
245
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n if(this.getGrid().isAutoSaveEnabled()) {\n record.save();\n }\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();\n }\n else return false;\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n });\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: column.isEditable && columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgGridModel.js","sources":["../../../../../src/components/Grid/grid/ag-grid/AgGridModel.ts"],"sourcesContent":["import { CellClickedEvent, CellDoubleClickedEvent, ColDef, ColumnMovedEvent, ColumnResizedEvent, GridApi, IRowNode, IsFullWidthRowParams, IsServerSideGroupOpenByDefaultParams, ModuleRegistry, SelectionChangedEvent, SuppressKeyboardEventParams, ValueFormatterParams, ValueGetterParams } from \"@ag-grid-community/core\";\nimport debounce from 'debounce';\nimport { GridModel, IGridColumn } from \"../GridModel\";\nimport { Client, DataProvider, EventEmitter, IAddControlNotificationOptions, IColumn, IColumnInfo, IControlParameters, ICustomColumnComponent, ICustomColumnControl, ICustomColumnFormatting, IDataProvider, IRecord, Operators } from \"@talxis/client-libraries\";\nimport { NestedControl } from \"../../../NestedControlRenderer/NestedControl\";\nimport { Cell } from \"../../cells/cell/Cell\";\nimport { ColumnHeader } from \"../../column-headers/column-header/ColumnHeader\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { Comparator } from \"../ValueComparator\";\nimport { ServerSideDatasource } from \"./ServerSideDatasource\";\nimport { RecordSelectionCheckBox } from \"../../column-headers/record-selection-checkbox/RecordSelectionCheckbox\";\nimport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\nimport { ServerSideRowModelModule } from \"@ag-grid-enterprise/server-side-row-model\";\nimport { ClipboardModule } from \"@ag-grid-enterprise/clipboard\";\nimport { FullRowLoading } from \"../../loading/full-row/FullRowLoading\";\nimport { FullWidthCellRendererError } from \"../../errors/FullWidthCellRendererError/FullWidthCellRendererError\";\nimport { LicenseManager } from \"@ag-grid-enterprise/core\";\nimport { SelectionCell } from \"../../cells/selection-cell/SelectionCell\";\nModuleRegistry.registerModules([RowGroupingModule, ServerSideRowModelModule, ClipboardModule,]);\n\ninterface IAgGridTestDependencies {\n grid: GridModel;\n getContainer: () => HTMLDivElement;\n}\n\nexport interface IAgGridModelEvents {\n onRefresh: () => void;\n}\n\n\nexport interface ICellValues {\n notifications: IAddControlNotificationOptions[];\n customFormatting: Required<ICustomColumnFormatting>;\n customControl: Required<ICustomColumnControl>;\n customComponent: ICustomColumnComponent;\n loading: boolean;\n value: any;\n aggregatedValue: any;\n error: boolean;\n height: number;\n errorMessage: string;\n parameters: IControlParameters;\n columnAlignment: Required<IColumn['alignment']>;\n editing: boolean;\n editable: boolean;\n disabled: boolean;\n saving: boolean;\n}\n\nexport class AgGridModel extends EventEmitter<IAgGridModelEvents> {\n private _grid: GridModel;\n private _dataSource: ServerSideDatasource;\n private _gridApi: GridApi | undefined;\n private _hasUserResizedColumns: boolean = false;\n private _getContainer: () => HTMLDivElement;\n private _debouncedColumnResized: debounce.DebouncedFunction<(e: ColumnResizedEvent<IRecord>) => void>;\n private _debouncedSetSelectedNodes: debounce.DebouncedFunction<(ids: string[]) => void>;\n private _expandedRowGroupIds: string[] = [];\n private _hasUserExpandedRowGroups: boolean = false;\n private _isLoadingNestedProviders: boolean = false;\n private _idsToAddToExpandGroupState = new Set<string>();\n private _intervals: NodeJS.Timeout[] = [];\n\n\n constructor({ grid, getContainer }: IAgGridTestDependencies) {\n super();\n this._grid = grid;\n this._getContainer = getContainer;\n this._dataSource = new ServerSideDatasource(this);\n this._debouncedColumnResized = debounce((e: ColumnResizedEvent<IRecord>) => this._onColumnResized(e));\n this._debouncedSetSelectedNodes = debounce((ids) => this._setSelectedNodes(ids), 0);\n this._localHarnessDebugSetup();\n const licenseKey = this._grid.getLicenseKey();\n if (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n }\n }\n\n public getColumns(gridColumns: IGridColumn[]): ColDef[] {\n if (this._grid.getDataset().grouping.getGroupBys().length > 0 && !this._grid.isGroupedColumnsPinnedEnabled()) {\n this._sortColumns(gridColumns);\n }\n const agColumns: ColDef[] = [];\n for (const column of gridColumns) {\n if (column.isHidden) {\n continue;\n }\n const agColumn: ColDef = {\n colId: column.name,\n field: column.name,\n headerName: column.displayName,\n width: column.visualSizeFactor,\n sortable: !column.disableSorting,\n lockPinned: true,\n resizable: column.isResizable,\n autoHeaderHeight: true,\n autoHeight: this._isColumnAutoHeightEnabled(column),\n suppressMovable: column.isDraggable === false ? true : false,\n pinned: this._isColumnPinned(column),\n headerComponentParams: {\n baseColumn: column\n },\n rowGroup: column.grouping?.isGrouped,\n cellRendererParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: false\n }\n },\n cellEditorParams: (p: any) => {\n return {\n ...this._getCellParameters(p.data, column),\n isCellEditor: true\n }\n },\n editable: (p) => this._isCellEditorEnabled(column.name, p.data),\n equals: (valueA: ICellValues, valueB: ICellValues) => new Comparator().isEqual(valueA, valueB),\n headerComponent: ColumnHeader,\n cellRenderer: Cell,\n cellEditor: Cell,\n valueGetter: (p: ValueGetterParams<IRecord>) => this._valueGetter(p, column),\n valueFormatter: (p: ValueFormatterParams<IRecord>) => this._valueFormatter(p),\n suppressKeyboardEvent: (p) => this._suppressKeyboardEvent(p, column),\n onCellDoubleClicked: (e: CellDoubleClickedEvent<IRecord>) => this._onCellDoubleClick(e),\n }\n agColumns.push(agColumn);\n }\n if (this._grid.getSelectionType() !== 'none' || this._grid.isEditingEnabled()) {\n agColumns.unshift(this._createCheckBoxColumn())\n }\n return agColumns;\n }\n\n public executeWithGridApi(callback: (gridApi: GridApi) => void) {\n if (!this._gridApi || this._gridApi.isDestroyed()) {\n return;\n }\n return callback(this._gridApi);\n }\n\n public init(gridApi: GridApi) {\n this._gridApi = gridApi;\n this._registerEventListeners();\n this._setGridOptions();\n this._setCurrentColumns();\n if (!this._grid.getDataset().loading) {\n //we need to call this here since the events already fired before the grid api was ready\n this._onNewDataLoaded();\n this._setTotalRow();\n }\n }\n\n public getGrid(): GridModel {\n return this._grid;\n }\n\n public getSelectionType(): 'single' | 'multiple' | undefined {\n switch (this._grid.getSelectionType()) {\n case 'none': {\n return undefined;\n }\n case 'single': {\n return 'single';\n }\n case 'multiple': {\n return 'multiple';\n }\n }\n }\n\n public toggleGroup(node: IRowNode<IRecord>) {\n node.setExpanded(!node.expanded);\n //clears the expanded rows in memory so it does not interfere with the next group expansion\n this._expandedRowGroupIds = [];\n this._hasUserExpandedRowGroups = true;\n }\n\n public getRecordSelectionState(node: IRowNode<IRecord>): 'checked' | 'unchecked' | 'indeterminate' {\n const record = node.data!;\n const dataProvider = record.getDataProvider();\n const childDataProvider = dataProvider.getGroupedRecordDataProvider(record.getRecordId());\n let result: 'checked' | 'unchecked' | 'indeterminate';\n if (childDataProvider) {\n if (node.isSelected()) {\n result = 'checked';\n }\n else {\n if (childDataProvider.getSelectedRecordIds().length === 0) {\n result = 'unchecked';\n }\n else {\n result = 'indeterminate';\n }\n }\n }\n else {\n result = node.isSelected() ? 'checked' : 'unchecked';\n }\n if (record.getSummarizationType() === 'grouping') {\n if (result === 'unchecked') {\n this._idsToAddToExpandGroupState.delete(record.getRecordId());\n }\n else {\n this._idsToAddToExpandGroupState.add(record.getRecordId());\n }\n }\n return result;\n }\n\n public onNotifyOutputChanged(record: IRecord, columnName: string, value: any, parameters: any) {\n record.setValue(columnName, value);\n if(this.getGrid().isAutoSaveEnabled()) {\n record.save();\n }\n const { ShouldUnmountWhenOutputChanges } = parameters;\n if (ShouldUnmountWhenOutputChanges?.raw) {\n this.executeWithGridApi(gridApi => gridApi.stopEditing());\n }\n }\n\n private _localHarnessDebugSetup() {\n if (this._grid.getParameters().IsLocalHarnessDebugMode?.raw === 'true') {\n window.addEventListener('visibilitychange', () => {\n this._saveState();\n })\n }\n }\n\n private _createCheckBoxColumn(): ColDef {\n return {\n colId: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n field: DataProvider.CONST.CHECKBOX_COLUMN_KEY,\n headerName: '',\n width: 40,\n lockPinned: true,\n resizable: false,\n pinned: 'left',\n headerComponent: RecordSelectionCheckBox,\n cellRenderer: SelectionCell,\n suppressSizeToFit: true,\n suppressMovable: true,\n valueGetter: () => null,\n valueFormatter: () => '',\n cellRendererParams: (p: any) => {\n return {\n record: p.data\n }\n }\n }\n }\n\n private _sortColumns(columns: IGridColumn[]): IGridColumn[] {\n return columns.sort((a, b) => {\n // If both columns have the same grouping status, maintain original order (return 0)\n if ((a.grouping?.isGrouped || false) === (b.grouping?.isGrouped || false)) {\n return 0;\n }\n // If a is grouped, it should come first\n if (a.grouping?.isGrouped) {\n return -1;\n }\n // If b is grouped, it should come first\n if (b.grouping?.isGrouped) {\n return 1;\n }\n // Default case, should never reach here given the first condition\n return 0;\n });\n }\n\n private _onDestroyed() {\n this._intervals.forEach(interval => clearInterval(interval));\n this._saveState();\n }\n\n private _setCurrentColumns() {\n const gridColumns = this._grid.getGridColumns();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('columnDefs', this.getColumns(gridColumns)));\n this._autoSizeColumns();\n }\n\n private _isColumnAutoHeightEnabled(column: IGridColumn): boolean {\n return !!column.autoHeight\n }\n\n private _onCellDoubleClick(e: CellDoubleClickedEvent<IRecord>) {\n const column = this._dataset.getDataProvider().getColumnsMap()[e.colDef.colId!]!\n switch (true) {\n case !this._grid.isNavigationEnabled():\n //do not navigate on editable columns\n case this._grid.isColumnEditable(column.name, e.data):\n //do not navigate on aggregated/grouped rows\n case e.data?.getSummarizationType() !== 'none':\n //do not allow double click navigation for editable grids (it creates confusion between double clicking read only columns to navigate and double clicking editable columns to edit)\n case this._grid.isEditingEnabled():\n //do not navigate on checkbox column\n case column.name === DataProvider.CONST.CHECKBOX_COLUMN_KEY: {\n break;\n }\n default: {\n const record = e.data!;\n record.getDataProvider().openDatasetItem(record.getNamedReference());\n }\n }\n }\n\n private _saveState() {\n this.executeWithGridApi(gridApi => {\n const { rowSelection, columnOrder, ...gridState } = gridApi.getState();\n const selectedGroupIds = this._grid.getDataset().getSelectedRecordIds({ includeGroupRecordIds: true }).filter(id => id.startsWith(DataProvider.CONST.GROUP_PREFIX));\n const expandedRowGroupIds = new Set<string>([...selectedGroupIds, ...this._idsToAddToExpandGroupState.values()]);\n if (expandedRowGroupIds.size > 0) {\n gridState.rowGroupExpansion = {\n expandedRowGroupIds: [...expandedRowGroupIds.values()]\n }\n }\n const state = this.getGrid().getState() || {};\n state.AgGridState = gridState;\n this.getGrid().getPcfContext().mode.setControlState(state);\n });\n }\n\n private _isColumnPinned(column: IGridColumn) {\n switch (true) {\n case column.grouping?.isGrouped && this._grid.isGroupedColumnsPinnedEnabled(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n private _getCellParameters(record: IRecord, column: IGridColumn) {\n return {\n baseColumn: column,\n record: record\n }\n }\n\n private _scrollToTop() {\n this.executeWithGridApi(gridApi => gridApi.ensureIndexVisible(0, 'top'));\n }\n\n private _canExpandRowGroupsByDefault(): boolean {\n if (this._hasUserExpandedRowGroups) {\n return false;\n }\n else {\n return true;\n }\n }\n\n private _suppressKeyboardEvent(params: SuppressKeyboardEventParams<IRecord, any>, column: IGridColumn): boolean {\n if (column.oneClickEdit) {\n return true;\n }\n return false;\n }\n\n private _registerEventListeners() {\n this._dataset.addEventListener('onLoading', (isLoading: boolean) => this._setLoadingOverlay(this._dataset.loading));\n this._dataset.addEventListener('onRecordsSelected', (ids: string[]) => this._debouncedSetSelectedNodes(ids));\n this._dataset.addEventListener('onNewDataLoaded', () => this._onNewDataLoaded());\n this._dataset.addEventListener('onRenderRequested', () => this.executeWithGridApi(gridApi => gridApi.refreshCells()));\n this._dataset.addEventListener('onFirstDataLoaded', () => this._setTotalRow());\n this.executeWithGridApi(gridApi => {\n gridApi.addEventListener('gridSizeChanged', () => this._autoSizeColumns());\n gridApi.addEventListener('firstDataRendered', () => this._autoSizeColumns());\n gridApi.addEventListener('selectionChanged', (e: SelectionChangedEvent) => this._onSelectionChanged(e));\n gridApi.addEventListener('columnResized', (e: any) => this._debouncedColumnResized(e));\n gridApi.addEventListener('modelUpdated', () => {\n if (this._grid.getDataset().loading) {\n this._setLoadingOverlay(true);\n }\n this._setGridHeight();\n });\n gridApi.addEventListener('columnMoved', (e: ColumnMovedEvent<IRecord>) => this._onColumnMoved(e));\n gridApi.addEventListener('firstDataRendered', () => this._handleSelectionFromState());\n gridApi.addEventListener('gridPreDestroyed', () => this._onDestroyed());\n });\n }\n\n private _setTotalRow() {\n const totalRowDataProvider = this._grid.getTotalRow().getDataProvider();\n totalRowDataProvider.addEventListener('onLoading', () => this._setPinnedRowData());\n totalRowDataProvider.addEventListener('onError', () => this._setPinnedRowData());\n this._setPinnedRowData();\n }\n\n private _setGridOptions() {\n this.executeWithGridApi(gridApi => {\n gridApi.setGridOption('serverSideDatasource', this._dataSource);\n gridApi.setGridOption('isServerSideGroupOpenByDefault', (params) => this._syncExpandedRowGroups(params));\n gridApi.setGridOption('loadingCellRenderer', FullRowLoading)\n gridApi.setGridOption('suppressDragLeaveHidesColumns', true);\n gridApi.setGridOption('isFullWidthRow', (params) => this._isFullWidthRow(params));\n gridApi.setGridOption('fullWidthCellRenderer', FullWidthCellRendererError);\n gridApi.setGridOption('fullWidthCellRendererParams', (params: IsFullWidthRowParams<IRecord>) => this._getFullWidthCellRendererParams(params))\n gridApi.setGridOption('suppressCopyRowsToClipboard', true);\n gridApi.setGridOption('animateRows', false);\n gridApi.setGridOption('groupDisplayType', 'custom');\n });\n }\n\n private _isFullWidthRow(params: IsFullWidthRowParams<IRecord>): boolean {\n const provider = params.rowNode.data?.getDataProvider();\n switch (true) {\n case provider?.getSummarizationType() === 'aggregation' && provider.isError(): {\n return true;\n }\n default: {\n return false;\n }\n }\n }\n\n //this should only be triggered when we load the grid with some item pre-selected from state\n //e.g. navigating to a record and coming back to the grid\n private _handleSelectionFromState() {\n const selectedRecordIds = this._grid.getDataset().getSelectedRecordIds();\n this._grid.getDataset().clearSelectedRecordIds();\n let isScrolledToMiddle = false;\n const localIntervals: NodeJS.Timeout[] = [];\n const resolvedProviderSet = new Set<IDataProvider>();\n for (const id of selectedRecordIds) {\n const interval = setInterval(() => {\n const record = this._grid.getDataset().getDataProvider().getRecordsMap()[id];\n if (record) {\n clearInterval(interval);\n const provider = record.getDataProvider();\n if (!resolvedProviderSet.has(provider)) {\n const recordIdsToSelect = selectedRecordIds.filter(id => provider.getRecordsMap()[id])\n provider.setSelectedRecordIds(recordIdsToSelect);\n resolvedProviderSet.add(provider);\n }\n if (!isScrolledToMiddle) {\n const middleSelectedRecordId = selectedRecordIds[Math.floor(selectedRecordIds.length / 2)]\n this.executeWithGridApi(gridApi => {\n const node = gridApi.getRowNode(middleSelectedRecordId);\n if (node) {\n isScrolledToMiddle = true;\n gridApi.ensureNodeVisible(node!, 'middle');\n }\n });\n }\n }\n }, 100);\n localIntervals.push(interval);\n this._intervals.push(interval);\n }\n //abandon the selection after 5 seconds\n //this could be done better by detecting if we are done loading all providers\n setTimeout(() => {\n localIntervals.forEach(interval => clearInterval(interval));\n }, 5000);\n }\n\n private _getFullWidthCellRendererParams(params: IsFullWidthRowParams<IRecord>) {\n //@ts-ignore - typings seem to be incorrect\n const provider = params.node.data?.getDataProvider()\n return {\n errorMessage: provider?.getErrorMessage()\n }\n }\n\n private _syncExpandedRowGroups(params: IsServerSideGroupOpenByDefaultParams): boolean {\n if (this._expandedRowGroupIds.includes(params.rowNode.id!)) {\n return true\n }\n else if (this._canExpandRowGroupsByDefault()) {\n return params.rowNode.level <= this._grid.getDefaultExpandedGroupLevel();\n }\n else return false;\n }\n\n private _onColumnMoved(e: ColumnMovedEvent<IRecord>) {\n const movedColumn = this._grid.getDataset().getDataProvider().getColumnsMap()[e.column?.getColId()!];\n if (!e.finished || e.source !== 'uiColumnMoved') {\n return;\n }\n let order = 0;\n const newColumnsMap = new Map<string, IColumn>(this._grid.getDataset().columns.map(col => [col.name, col]));\n for (const colId of e.api.getState().columnOrder?.orderedColIds!) {\n if (newColumnsMap.has(colId)) {\n newColumnsMap.set(colId, { ...newColumnsMap.get(colId)!, order: order++ });\n }\n }\n this._dataset.setColumns([...newColumnsMap.values()]);\n if (movedColumn?.grouping?.isGrouped) {\n this._dataset.refresh();\n }\n }\n\n private _onNewDataLoaded() {\n this._refreshServerSideModel();\n this._setCurrentColumns();\n this._setNoRowsOverlay();\n this._scrollToTop();\n }\n\n private _refreshServerSideModel() {\n this.executeWithGridApi(gridApi => {\n this._expandedRowGroupIds = gridApi.getState()?.rowGroupExpansion?.expandedRowGroupIds ?? [];\n gridApi.refreshServerSide({\n purge: true\n })\n });\n }\n\n private _calculateGridHeight(): string {\n const defaultRowHeight = this._grid.getDefaultRowHeight();\n let offset = 35;\n if (this._dataset.grouping.getGroupBys().length > 0) {\n offset += 30;\n }\n if (this._grid.getParameters().Height?.raw) {\n return this._grid.getParameters().Height!.raw!;\n }\n else {\n let totalRowHeight = 0;\n let numberOfRecords = 0;\n this.executeWithGridApi(gridApi => {\n const renderedNodes = gridApi.getRenderedNodes();\n totalRowHeight = renderedNodes.reduce((acc, node) => acc + (node.rowHeight ?? defaultRowHeight), 0);\n numberOfRecords = renderedNodes.length;\n });\n if (numberOfRecords <= 15) {\n const headerHeight = this._getContainer().querySelector('.ag-header-row')?.clientHeight ?? 0;\n return `${totalRowHeight + headerHeight + offset}px`;\n }\n else {\n return `${defaultRowHeight * 17 + offset}px`;\n }\n }\n }\n private _setGridHeight() {\n setTimeout(() => {\n const container = this._getContainer();\n if (container) {\n container.style.height = this._calculateGridHeight();\n }\n }, 100);\n }\n\n private _onColumnResized(e: ColumnResizedEvent<IRecord>) {\n if (e.source === 'uiColumnResized') {\n this._hasUserResizedColumns = true;\n this._updateColumnVisualSizeFactor(e);\n }\n }\n\n private _autoSizeColumns() {\n if (this._hasUserResizedColumns) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.sizeColumnsToFit({\n columnLimits: this._grid.getDataset().columns.map(col => {\n return {\n key: col.name,\n minWidth: col.visualSizeFactor\n }\n })\n });\n });\n }\n\n private _updateColumnVisualSizeFactor(e: ColumnResizedEvent<IRecord>) {\n const resizedColumnKey = e.column?.getColId();\n if (!resizedColumnKey) {\n return;\n }\n const columns = this._grid.getDataset().columns; const newColumns = columns.map(col => {\n if (col.name === resizedColumnKey) {\n return {\n ...col,\n visualSizeFactor: e.column?.getActualWidth()!\n }\n }\n return col;\n })\n this._grid.getDataset().setColumns(newColumns);\n }\n\n private _onSelectionChanged(e: SelectionChangedEvent<IRecord>) {\n switch (true) {\n case e.source === 'api':\n case e.source === 'apiSelectAll': {\n return;\n }\n }\n let selectedNodes: IRowNode<IRecord>[] = [];\n this.executeWithGridApi(gridApi => {\n selectedNodes = gridApi.getSelectedNodes();\n });\n //if we click a grouped record, do not propagate the selection to children\n const providerSelectedRecordIdsMap = new Map<IDataProvider, string[]>();\n selectedNodes.map(node => {\n const record = node.data!;\n const provider = record.getDataProvider();\n if (!providerSelectedRecordIdsMap.has(provider)) {\n providerSelectedRecordIdsMap.set(provider, []);\n }\n providerSelectedRecordIdsMap.get(provider)!.push(record.getRecordId());\n })\n providerSelectedRecordIdsMap.forEach((ids, provider) => {\n provider.setSelectedRecordIds(ids);\n });\n }\n\n private async _setSelectedNodes(ids: string[]) {\n //interval to prevent infinite loading\n const checkLoadingNestedProviders = setInterval(() => {\n if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n }, 500);\n this._intervals.push(checkLoadingNestedProviders);\n if (!this._isLoadingNestedProviders && this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = true;\n this._dataset.getDataProvider().setLoading(true);\n }\n else if (this._isLoadingNestedProviders && !this._areChildProvidersLoading()) {\n this._isLoadingNestedProviders = false;\n this._dataset.getDataProvider().setLoading(false);\n clearInterval(checkLoadingNestedProviders);\n }\n this.executeWithGridApi(gridApi => {\n gridApi.setServerSideSelectionState({\n selectAll: false,\n toggledNodes: this._grid.getDataset().getDataProvider().getSelectedRecordIds({ includeGroupRecordIds: true })\n })\n gridApi.refreshCells({\n columns: [CHECKBOX_COLUMN_KEY],\n force: true\n })\n });\n }\n\n private _areChildProvidersLoading(): boolean {\n const childProviders = this._dataset.getDataProvider().getGroupedRecordDataProviders(true).filter(x => x.getParentRecordId());\n return childProviders.some(provider => provider.isLoading());\n }\n\n private _valueFormatter(p: ValueFormatterParams<IRecord>): string {\n const formattedValue = this._grid.getRecordFormattedValue(p.data!, p.colDef.colId!);\n return formattedValue.value ?? formattedValue.aggregatedValue;\n }\n\n private _valueGetter(p: ValueGetterParams<IRecord>, column: IGridColumn) {\n const record = p.data!;\n let editing: boolean = false;\n const columnInfo = record.getColumnInfo(column.name) as IColumnInfo;\n //i hate this, there is no other way to get the information if we are in edit mode or not\n if (Error().stack!.includes('startEditing')) {\n editing = true;\n }\n const customControl = this._grid.getControl(column, record, editing || !!column.oneClickEdit);\n\n const control = new NestedControl({\n onGetBindings: () => this._grid.getBindings(record, column, customControl),\n parentPcfContext: this._grid.getPcfContext(),\n });\n const parameters = columnInfo.ui.getControlParameters({\n ...this._grid.getFieldBindingParameters(record, column, editing),\n ...control.getParameters(),\n });\n if (column.oneClickEdit && record.getSummarizationType() === 'none') {\n editing = true;\n }\n const value = this._grid.getRecordValue(record, column);\n return {\n notifications: columnInfo.ui.getNotifications(),\n value: value.value,\n customFormatting: this._grid.getFieldFormatting(record, column.name),\n customControl: customControl,\n error: columnInfo.error,\n aggregatedValue: value.aggregatedValue,\n loading: columnInfo.ui.isLoading(),\n errorMessage: columnInfo.errorMessage,\n editable: column.isEditable && columnInfo.security.editable,\n editing: editing,\n parameters: parameters,\n saving: record.isSaving(),\n columnAlignment: column.alignment,\n customComponent: columnInfo.ui.getCustomControlComponent()\n } as ICellValues;\n }\n\n private _setPinnedRowData() {\n const totalRecord = this._grid.getTotalRow().getTotalRowRecord();\n this.executeWithGridApi(gridApi => gridApi.setGridOption('pinnedBottomRowData', totalRecord ? [totalRecord] : []));\n }\n\n private _setLoadingOverlay(isLoading: boolean) {\n if (!isLoading) {\n return this.executeWithGridApi(gridApi => gridApi.hideOverlay());\n }\n this.executeWithGridApi(gridApi => gridApi.showLoadingOverlay());\n }\n\n private _setNoRowsOverlay() {\n setTimeout(() => {\n if (this._grid.getDataset().loading) {\n return;\n }\n this.executeWithGridApi(gridApi => {\n gridApi.hideOverlay();\n if (this._grid.getDataset().getDataProvider().getRecords().length === 0) {\n gridApi.showNoRowsOverlay();\n }\n });\n }, 0);\n }\n\n private _isCellEditorEnabled(columnName: string, record: IRecord): boolean {\n\n const column = this._grid.getGridColumnByName(columnName); // check column eligibility for cell editor\n switch (true) {\n //never allow cell editor for oneClickEdit - everything is handled by cell renderer in this case\n case column.oneClickEdit:\n //never allow cell editor for non-editable columns\n case !column.isEditable: {\n return false;\n }\n }\n return record.getColumnInfo(column.name).security.editable;\n }\n\n private get _dataset() {\n return this._grid.getDataset();\n }\n}"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,cAAc,CAAC,eAAe,CAAC,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,eAAe,EAAE,CAAC,CAAC;AA+B1F,MAAO,WAAY,SAAQ,YAAgC,CAAA;AAe7D,IAAA,WAAA,CAAY,EAAE,IAAI,EAAE,YAAY,EAA2B,EAAA;AACvD,QAAA,KAAK,EAAE,CAAC;QAZJ,IAAsB,CAAA,sBAAA,GAAY,KAAK,CAAC;QAIxC,IAAoB,CAAA,oBAAA,GAAa,EAAE,CAAC;QACpC,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;QAC3C,IAAyB,CAAA,yBAAA,GAAY,KAAK,CAAC;AAC3C,QAAA,IAAA,CAAA,2BAA2B,GAAG,IAAI,GAAG,EAAU,CAAC;QAChD,IAAU,CAAA,UAAA,GAAqB,EAAE,CAAC;AAKtC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC,CAA8B,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,QAAA,IAAI,CAAC,0BAA0B,GAAG,QAAQ,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC9C,QAAA,IAAI,UAAU,EAAE;AACZ,YAAA,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAA;KACJ;AAEM,IAAA,UAAU,CAAC,WAA0B,EAAA;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE;AAC1G,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAClC,SAAA;QACD,MAAM,SAAS,GAAa,EAAE,CAAC;AAC/B,QAAA,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;YAC9B,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,SAAS;AACZ,aAAA;AACD,YAAA,MAAM,QAAQ,GAAW;gBACrB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,KAAK,EAAE,MAAM,CAAC,IAAI;gBAClB,UAAU,EAAE,MAAM,CAAC,WAAW;gBAC9B,KAAK,EAAE,MAAM,CAAC,gBAAgB;AAC9B,gBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,cAAc;AAChC,gBAAA,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,MAAM,CAAC,WAAW;AAC7B,gBAAA,gBAAgB,EAAE,IAAI;AACtB,gBAAA,UAAU,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;AACnD,gBAAA,eAAe,EAAE,MAAM,CAAC,WAAW,KAAK,KAAK,GAAG,IAAI,GAAG,KAAK;AAC5D,gBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACpC,gBAAA,qBAAqB,EAAE;AACnB,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;AACD,gBAAA,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS;AACpC,gBAAA,kBAAkB,EAAE,CAAC,CAAM,KAAI;oBAC3B,OAAO;wBACH,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1C,wBAAA,YAAY,EAAE,KAAK;qBACtB,CAAA;iBACJ;AACD,gBAAA,gBAAgB,EAAE,CAAC,CAAM,KAAI;oBACzB,OAAO;wBACH,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1C,wBAAA,YAAY,EAAE,IAAI;qBACrB,CAAA;iBACJ;AACD,gBAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/D,gBAAA,MAAM,EAAE,CAAC,MAAmB,EAAE,MAAmB,KAAK,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;AAC9F,gBAAA,eAAe,EAAE,YAAY;AAC7B,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,WAAW,EAAE,CAAC,CAA6B,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC;gBAC5E,cAAc,EAAE,CAAC,CAAgC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7E,gBAAA,qBAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC;gBACpE,mBAAmB,EAAE,CAAC,CAAkC,KAAK,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;aAC1F,CAAA;AACD,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE;YAC3E,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAClD,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,kBAAkB,CAAC,QAAoC,EAAA;QAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE;YAC/C,OAAO;AACV,SAAA;AACD,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAClC;AAEM,IAAA,IAAI,CAAC,OAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;;YAElC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,SAAA;KACJ;IAEM,OAAO,GAAA;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAEM,gBAAgB,GAAA;AACnB,QAAA,QAAQ,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;YACjC,KAAK,MAAM,EAAE;AACT,gBAAA,OAAO,SAAS,CAAC;AACpB,aAAA;YACD,KAAK,QAAQ,EAAE;AACX,gBAAA,OAAO,QAAQ,CAAC;AACnB,aAAA;YACD,KAAK,UAAU,EAAE;AACb,gBAAA,OAAO,UAAU,CAAC;AACrB,aAAA;AACJ,SAAA;KACJ;AAEM,IAAA,WAAW,CAAC,IAAuB,EAAA;QACtC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEjC,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;AAEM,IAAA,uBAAuB,CAAC,IAAuB,EAAA;AAClD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAK,CAAC;AAC1B,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,iBAAiB,GAAG,YAAY,CAAC,4BAA4B,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1F,QAAA,IAAI,MAAiD,CAAC;AACtD,QAAA,IAAI,iBAAiB,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACnB,MAAM,GAAG,SAAS,CAAC;AACtB,aAAA;AACI,iBAAA;gBACD,IAAI,iBAAiB,CAAC,oBAAoB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvD,MAAM,GAAG,WAAW,CAAC;AACxB,iBAAA;AACI,qBAAA;oBACD,MAAM,GAAG,eAAe,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACJ,SAAA;AACI,aAAA;AACD,YAAA,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC;AACxD,SAAA;AACD,QAAA,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,UAAU,EAAE;YAC9C,IAAI,MAAM,KAAK,WAAW,EAAE;gBACxB,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACjE,aAAA;AACI,iBAAA;gBACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEM,IAAA,qBAAqB,CAAC,MAAe,EAAE,UAAkB,EAAE,KAAU,EAAE,UAAe,EAAA;AACzF,QAAA,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnC,QAAA,IAAG,IAAI,CAAC,OAAO,EAAE,CAAC,iBAAiB,EAAE,EAAE;YACnC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjB,SAAA;AACD,QAAA,MAAM,EAAE,8BAA8B,EAAE,GAAG,UAAU,CAAC;QACtD,IAAI,8BAA8B,EAAE,GAAG,EAAE;AACrC,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7D,SAAA;KACJ;IAEO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,uBAAuB,EAAE,GAAG,KAAK,MAAM,EAAE;AACpE,YAAA,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAK;gBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,aAAC,CAAC,CAAA;AACL,SAAA;KACJ;IAEO,qBAAqB,GAAA;QACzB,OAAO;AACH,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,mBAAmB;AAC7C,YAAA,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,mBAAmB;AAC7C,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,eAAe,EAAE,uBAAuB;AACxC,YAAA,YAAY,EAAE,aAAa;AAC3B,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE,MAAM,IAAI;AACvB,YAAA,cAAc,EAAE,MAAM,EAAE;AACxB,YAAA,kBAAkB,EAAE,CAAC,CAAM,KAAI;gBAC3B,OAAO;oBACH,MAAM,EAAE,CAAC,CAAC,IAAI;iBACjB,CAAA;aACJ;SACJ,CAAA;KACJ;AAEO,IAAA,YAAY,CAAC,OAAsB,EAAA;QACvC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;;AAEzB,YAAA,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,EAAE;AACvE,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;;AAED,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE;gBACvB,OAAO,CAAC,CAAC,CAAC;AACb,aAAA;;AAED,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE;AACvB,gBAAA,OAAO,CAAC,CAAC;AACZ,aAAA;;AAED,YAAA,OAAO,CAAC,CAAC;AACb,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,kBAAkB,GAAA;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;AAEO,IAAA,0BAA0B,CAAC,MAAmB,EAAA;AAClD,QAAA,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;KAC7B;AAEO,IAAA,kBAAkB,CAAC,CAAkC,EAAA;AACzD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAM,CAAE,CAAA;AAChF,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;;AAEvC,YAAA,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;;YAEtD,KAAK,CAAC,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,MAAM,CAAC;;AAE/C,YAAA,KAAK,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;;YAEnC,KAAK,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBACzD,MAAM;AACT,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,IAAK,CAAC;gBACvB,MAAM,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxE,aAAA;AACJ,SAAA;KACJ;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvE,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACpK,YAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACjH,YAAA,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE;gBAC9B,SAAS,CAAC,iBAAiB,GAAG;AAC1B,oBAAA,mBAAmB,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC;iBACzD,CAAA;AACJ,aAAA;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9C,YAAA,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;AAC9B,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/D,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAAmB,EAAA;AACvC,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE;AAC3E,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;KACJ;IAEO,kBAAkB,CAAC,MAAe,EAAE,MAAmB,EAAA;QAC3D,OAAO;AACH,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,MAAM,EAAE,MAAM;SACjB,CAAA;KACJ;IAEO,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;KAC5E;IAEO,4BAA4B,GAAA;QAChC,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAChC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACI,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;IAEO,sBAAsB,CAAC,MAAiD,EAAE,MAAmB,EAAA;QACjG,IAAI,MAAM,CAAC,YAAY,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IAEO,uBAAuB,GAAA;QAC3B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,SAAkB,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACpH,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,GAAa,KAAK,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7G,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;AACtH,QAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC/E,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3E,YAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC7E,YAAA,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAwB,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,YAAA,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAM,KAAK,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,YAAA,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,MAAK;gBAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;AACjC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,iBAAA;gBACD,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAA4B,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,YAAA,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC;AACtF,YAAA,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;QAChB,MAAM,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;AACxE,QAAA,oBAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACnF,QAAA,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,aAAa,CAAC,sBAAsB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,YAAA,OAAO,CAAC,aAAa,CAAC,gCAAgC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;AACzG,YAAA,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;AAC5D,YAAA,OAAO,CAAC,aAAa,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;AAC7D,YAAA,OAAO,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,YAAA,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;AAC3E,YAAA,OAAO,CAAC,aAAa,CAAC,6BAA6B,EAAE,CAAC,MAAqC,KAAK,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7I,YAAA,OAAO,CAAC,aAAa,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAC3D,YAAA,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC5C,YAAA,OAAO,CAAC,aAAa,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,eAAe,CAAC,MAAqC,EAAA;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;AACxD,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,QAAQ,EAAE,oBAAoB,EAAE,KAAK,aAAa,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;AAC3E,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;KACJ;;;IAIO,yBAAyB,GAAA;QAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,oBAAoB,EAAE,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,sBAAsB,EAAE,CAAC;QACjD,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,cAAc,GAAqB,EAAE,CAAC;AAC5C,QAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAiB,CAAC;AACrD,QAAA,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE;AAChC,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAC9B,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7E,gBAAA,IAAI,MAAM,EAAE;oBACR,aAAa,CAAC,QAAQ,CAAC,CAAC;AACxB,oBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AAC1C,oBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpC,wBAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AACtF,wBAAA,QAAQ,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AACjD,wBAAA,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrC,qBAAA;oBACD,IAAI,CAAC,kBAAkB,EAAE;AACrB,wBAAA,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;AAC1F,wBAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;4BAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;AACxD,4BAAA,IAAI,IAAI,EAAE;gCACN,kBAAkB,GAAG,IAAI,CAAC;AAC1B,gCAAA,OAAO,CAAC,iBAAiB,CAAC,IAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,6BAAA;AACL,yBAAC,CAAC,CAAC;AACN,qBAAA;AACJ,iBAAA;aACJ,EAAE,GAAG,CAAC,CAAC;AACR,YAAA,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,SAAA;;;QAGD,UAAU,CAAC,MAAK;AACZ,YAAA,cAAc,CAAC,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/D,EAAE,IAAI,CAAC,CAAC;KACZ;AAEO,IAAA,+BAA+B,CAAC,MAAqC,EAAA;;QAEzE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,CAAA;QACpD,OAAO;AACH,YAAA,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE;SAC5C,CAAA;KACJ;AAEO,IAAA,sBAAsB,CAAC,MAA4C,EAAA;AACvE,QAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAG,CAAC,EAAE;AACxD,YAAA,OAAO,IAAI,CAAA;AACd,SAAA;AACI,aAAA,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE;AAC1C,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC;AAC5E,SAAA;;AACI,YAAA,OAAO,KAAK,CAAC;KACrB;AAEO,IAAA,cAAc,CAAC,CAA4B,EAAA;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAG,CAAC,CAAC;QACrG,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,EAAE;YAC7C,OAAO;AACV,SAAA;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAkB,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5G,QAAA,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,aAAc,EAAE;AAC9D,YAAA,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E,aAAA;AACJ,SAAA;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC3B,SAAA;KACJ;IAEO,gBAAgB,GAAA;QACpB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,uBAAuB,GAAA;AAC3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,IAAI,EAAE,CAAC;YAC7F,OAAO,CAAC,iBAAiB,CAAC;AACtB,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACN,SAAC,CAAC,CAAC;KACN;IAEO,oBAAoB,GAAA;QACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC1D,IAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,MAAM,IAAI,EAAE,CAAC;AAChB,SAAA;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,MAAO,CAAC,GAAI,CAAC;AAClD,SAAA;AACI,aAAA;YACD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,eAAe,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,gBAAA,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBACjD,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;AACpG,gBAAA,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC;AAC3C,aAAC,CAAC,CAAC;YACH,IAAI,eAAe,IAAI,EAAE,EAAE;AACvB,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC;AAC7F,gBAAA,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,MAAM,IAAI,CAAC;AACxD,aAAA;AACI,iBAAA;AACD,gBAAA,OAAO,GAAG,gBAAgB,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC;AAChD,aAAA;AACJ,SAAA;KACJ;IACO,cAAc,GAAA;QAClB,UAAU,CAAC,MAAK;AACZ,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACvC,YAAA,IAAI,SAAS,EAAE;gBACX,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AACxD,aAAA;SACJ,EAAE,GAAG,CAAC,CAAC;KACX;AAEO,IAAA,gBAAgB,CAAC,CAA8B,EAAA;AACnD,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,iBAAiB,EAAE;AAChC,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;AACnC,YAAA,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;AACzC,SAAA;KACJ;IAEO,gBAAgB,GAAA;QACpB,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC7B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,gBAAgB,CAAC;AACrB,gBAAA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;oBACpD,OAAO;wBACH,GAAG,EAAE,GAAG,CAAC,IAAI;wBACb,QAAQ,EAAE,GAAG,CAAC,gBAAgB;qBACjC,CAAA;AACL,iBAAC,CAAC;AACL,aAAA,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,6BAA6B,CAAC,CAA8B,EAAA;QAChE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC,gBAAgB,EAAE;YACnB,OAAO;AACV,SAAA;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;QAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,IAAG;AAClF,YAAA,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBAC/B,OAAO;AACH,oBAAA,GAAG,GAAG;AACN,oBAAA,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,EAAG;iBAChD,CAAA;AACJ,aAAA;AACD,YAAA,OAAO,GAAG,CAAC;AACf,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;KAClD;AAEO,IAAA,mBAAmB,CAAC,CAAiC,EAAA;AACzD,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC;AACxB,YAAA,KAAK,CAAC,CAAC,MAAM,KAAK,cAAc,EAAE;gBAC9B,OAAO;AACV,aAAA;AACJ,SAAA;QACD,IAAI,aAAa,GAAwB,EAAE,CAAC;AAC5C,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;AAC9B,YAAA,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;AAC/C,SAAC,CAAC,CAAC;;AAEH,QAAA,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAA2B,CAAC;AACxE,QAAA,aAAa,CAAC,GAAG,CAAC,IAAI,IAAG;AACrB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAK,CAAC;AAC1B,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC7C,gBAAA,4BAA4B,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAClD,aAAA;AACD,YAAA,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,SAAC,CAAC,CAAA;QACF,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAI;AACnD,YAAA,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAEO,MAAM,iBAAiB,CAAC,GAAa,EAAA;;AAEzC,QAAA,MAAM,2BAA2B,GAAG,WAAW,CAAC,MAAK;YACjD,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACrE,gBAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClD,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC9C,aAAA;SACJ,EAAE,GAAG,CAAC,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,yBAAyB,EAAE,EAAE;AACrE,YAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,SAAA;aACI,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE;AAC1E,YAAA,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,aAAa,CAAC,2BAA2B,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;YAC9B,OAAO,CAAC,2BAA2B,CAAC;AAChC,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC;AAChH,aAAA,CAAC,CAAA;YACF,OAAO,CAAC,YAAY,CAAC;gBACjB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC9B,gBAAA,KAAK,EAAE,IAAI;AACd,aAAA,CAAC,CAAA;AACN,SAAC,CAAC,CAAC;KACN;IAEO,yBAAyB,GAAA;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC9H,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;KAChE;AAEO,IAAA,eAAe,CAAC,CAAgC,EAAA;AACpD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;AACpF,QAAA,OAAO,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,eAAe,CAAC;KACjE;IAEO,YAAY,CAAC,CAA6B,EAAE,MAAmB,EAAA;AACnE,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,IAAK,CAAC;QACvB,IAAI,OAAO,GAAY,KAAK,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAgB,CAAC;;QAEpE,IAAI,KAAK,EAAE,CAAC,KAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzC,OAAO,GAAG,IAAI,CAAC;AAClB,SAAA;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9F,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;AAC9B,YAAA,aAAa,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC;AAC1E,YAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AAC/C,SAAA,CAAC,CAAC;AACH,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,CAAC,oBAAoB,CAAC;YAClD,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YAChE,GAAG,OAAO,CAAC,aAAa,EAAE;AAC7B,SAAA,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,oBAAoB,EAAE,KAAK,MAAM,EAAE;YACjE,OAAO,GAAG,IAAI,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,OAAO;AACH,YAAA,aAAa,EAAE,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE;YAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAA,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;AACpE,YAAA,aAAa,EAAE,aAAa;YAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,eAAe,EAAE,KAAK,CAAC,eAAe;AACtC,YAAA,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;YAClC,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,QAAQ,EAAE,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ;AAC3D,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;YACzB,eAAe,EAAE,MAAM,CAAC,SAAS;AACjC,YAAA,eAAe,EAAE,UAAU,CAAC,EAAE,CAAC,yBAAyB,EAAE;SAC9C,CAAC;KACpB;IAEO,iBAAiB,GAAA;QACrB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACjE,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,qBAAqB,EAAE,WAAW,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;KACtH;AAEO,IAAA,kBAAkB,CAAC,SAAkB,EAAA;QACzC,IAAI,CAAC,SAAS,EAAE;AACZ,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACpE,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;KACpE;IAEO,iBAAiB,GAAA;QACrB,UAAU,CAAC,MAAK;YACZ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE;gBACjC,OAAO;AACV,aAAA;AACD,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAG;gBAC9B,OAAO,CAAC,WAAW,EAAE,CAAC;AACtB,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,eAAe,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrE,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC/B,iBAAA;AACL,aAAC,CAAC,CAAC;SACN,EAAE,CAAC,CAAC,CAAC;KACT;IAEO,oBAAoB,CAAC,UAAkB,EAAE,MAAe,EAAA;AAE5D,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC1D,QAAA,QAAQ,IAAI;;YAER,KAAK,MAAM,CAAC,YAAY,CAAC;;AAEzB,YAAA,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;AACrB,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC9D;AAED,IAAA,IAAY,QAAQ,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;KAClC;AACJ;;;;"}
|