@talxis/base-controls 1.2606.6 → 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.
@@ -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":";;;;;;;;;;;;;;;;;AAmCa,MAAA,WAAW,GAAG,CAAC,KAAwB,KAAI;AACpD,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;AACjD,IAAA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC;AAC5C,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;AAC3C,IAAA,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AACjC,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,IAAA,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACvE,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,sBAAsB,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC;AAC/G,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;AACxC,IAAA,MAAM,sBAAsB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACtD,MAAM,CAAC,2BAA2B,EAAE,qBAAqB,CAAC,GAAG,gBAAgB,EAAE,CAAC;IAChF,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;IAElF,MAAMA,YAAU,GAAG,EAAE,GAAGC,UAAiB,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;AACjE,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;AAE/B,IAAA,eAAe,CAAqB,gBAAgB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AACpF,IAAA,eAAe,CAAqB,gBAAgB,EAAE,8BAA8B,EAAE,MAAK;AACvF,QAAA,qBAAqB,EAAE,CAAC;QACxB,4BAA4B,CAAC,IAAI,CAAC,CAAC;AACvC,KAAC,CAAC,CAAC;IACH,eAAe,CAAqB,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnI,SAAS,CAAC,MAAK;QACX,KAAK,CAAC,QAAQ,GAAG;YACb,qBAAqB;YACrB,gBAAgB;AACnB,SAAA,CAAC,CAAA;KACL,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,MAAK;QAClB,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC;AACpE,QAAA,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;AACrC,QAAA,IAAI,cAAc,EAAE;AAChB,YAAA,KAAK,IAAI,CAAA,EAAA,EAAK,cAAc,CAAA,CAAE,CAAC;AAClC,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;AACjB,KAAC,CAAA;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,EAAyE,KAAI;AAC5F,QAAA,OAAQ,EAAoB,EAAE,GAAG,KAAK,QAAQ,GAAG,EAAE,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;AAC9F,KAAC,CAAC;AAEF,IAAA,OAAOC,GAAC,CAAA,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,cAAEF,YAAU,EAAE,EAC9E,QAAA,EAAAG,IAAA,CAAC,KAAK,EAAA,EACF,UAAU,EAAE,QAAQ,EAAE,EACtB,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,WAAW;gBAC1B,QAAQ,EAAE,MAAM,CAAC,aAAa;gBAC9B,iBAAiB,EAAE,MAAM,CAAC,sBAAsB;gBAChD,OAAO,EAAE,MAAM,CAAC,YAAY;gBAC5B,UAAU,EAAE,MAAM,CAAC,UAAU;AAChC,aAAA,EACD,gBAAgB,EAAA,IAAA,EAChB,qBAAqB,EAAE,MAAK;AACxB,gBAAA,OAAOA,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,kBAAkB,EAC5C,QAAA,EAAA,CAAAD,GAAA,CAAC,aAAa,EAAA,EACV,OAAO,EAAE,MAAK;gCACV,gBAAgB,CAAC,IAAI,EAAE,CAAC;gCACxB,KAAK,CAAC,SAAS,EAAE,CAAC;6BACrB,EACD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACtB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,EAC7D,CAAA,EACFA,IAAC,aAAa,EAAA,EACV,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,EACxB,OAAO,EAAE,KAAK,CAAC,SAAS,EAC1B,CAAA,CAAA,EAAA,CACA,CAAA;aACT,EAAA,GACG,KAAK,CAAC,UAAU,aAEnB,SAAS,IAAIA,IAAC,OAAO,EAAA,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EACnDA,IAAC,OAAO,EAAA,EAAA,CAAG,EACL,CAAA,EACVC,IAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,MAAM,EACzB,QAAA,EAAA,CAAAD,GAAA,CAACF,YAAU,CAAC,UAAU,IAAC,KAAK,EAAE,EAAE,EAAI,CAAA,EACpCG,cAAK,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,QAAA,EAAA,CAAA,iBAAiB,KACdA,cAAK,SAAS,EAAE,MAAM,CAAC,QAAQ,aAC3BD,GAAC,CAAA,KAAK,cAAE,MAAM,CAAC,eAAe,CAAC,EAAE,GAAS,EAC1CA,GAAA,CAAC,aAAa,EAAG,EAAA,CAAA,CAAA,EAAA,CACf,CACT,EACDA,GAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAC,MAAM,EAAE,EAAE,EAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,YAC/C,CAAC,2BAA2B,IAAIA,GAAC,CAAA,cAAc,IAC5C,eAAe,EAAE,yBAAyB,EAAA,CAAI,EAChD,CAAA,CAAA,EAAA,CACJ,IACJ,EACNA,GAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,CAAC,mBAAmB,YACnEA,GAAC,CAAA,UAAU,IACP,OAAO,EAAE,CAAC,MAAM,CAAC,EACjB,SAAS,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,EAClG,SAAS,EAAE,CAAC,sBAAsB,CAAC,YAEnCA,GAAC,CAAA,eAAe,IACZ,QAAQ,EAAE,2BAA2B,EACrC,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE,EACpC,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB,EAAA,QAAA,EACtC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,IAAG;oCAC5C,OAAOA,GAAA,CAAC,YAAY,EAAA,EAAgB,MAAM,EAAE,GAAG,EAAA,EAArB,GAAG,CAAC,IAAI,CAAiB,CAAA;AACvD,iCAAC,CAAC,EACA,CAAA,EAAA,CACQ,GACT,EACX,CAAA,CAAA,EAAA,CACF,GACkB,CAAA;AAClC;;;;"}
@@ -41,6 +41,9 @@ export declare const getEditColumnsStyles: (theme: ITheme) => import("@fluentui/
41
41
  flexDirection: string;
42
42
  gap: number;
43
43
  };
44
+ headerText: {
45
+ whiteSpace: string;
46
+ };
44
47
  selectors: {
45
48
  display: string;
46
49
  flexDirection: string;
@@ -43,6 +43,9 @@ const getEditColumnsStyles = (theme) => {
43
43
  flexDirection: 'column',
44
44
  gap: 12
45
45
  },
46
+ headerText: {
47
+ whiteSpace: 'normal'
48
+ },
46
49
  selectors: {
47
50
  display: 'flex',
48
51
  flexDirection: 'column',
@@ -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;;;;"}
@@ -12,7 +12,8 @@ const useDateTime = (props, ref) => {
12
12
  const context = props.context;
13
13
  const behavior = boundValue.attributes.Behavior;
14
14
  const format = boundValue.attributes.Format ?? boundValue.type;
15
- const dateFormattingInfo = context.userSettings.dateFormattingInfo;
15
+ //client libraries formatting contains dateFormattingInfo, fallback to user settings if it was not found (uses Power Apps formatting implementation)
16
+ const dateFormattingInfo = context.formatting.dateFormattingInfo ?? context.userSettings.dateFormattingInfo;
16
17
  const lastValidDateRef = useRef(undefined);
17
18
  const isDateTime = (() => {
18
19
  switch (format) {
@@ -120,7 +121,7 @@ const useDateTime = (props, ref) => {
120
121
  const { value, labels, theme, setValue, onNotifyOutputChanged: onNotifyOutputChanged } = useInputBasedControl('DateTime', props, {
121
122
  formatter: formatDate,
122
123
  valueExtractor: dateExtractor,
123
- defaultTranslations: getDefaultDateTimeTranslations(props.context.userSettings.dateFormattingInfo)
124
+ defaultTranslations: getDefaultDateTimeTranslations(dateFormattingInfo)
124
125
  });
125
126
  useEffect(() => {
126
127
  const onBlur = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useDateTime.js","sources":["../../../../src/components/DateTime/hooks/useDateTime.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useInputBasedControl } from \"../../../hooks/useInputBasedControl\";\nimport { IDateTime, IDateTimeOutputs, IDateTimeParameters } from \"../interfaces\";\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { getDefaultDateTimeTranslations } from \"../translations\";\nimport { ITranslation } from \"../../../hooks\";\nimport { ITheme } from \"@talxis/react-components\";\n\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\n\nexport const useDateTime = (props: IDateTime, ref: React.RefObject<HTMLDivElement>): [\n boolean,\n ITheme,\n ITranslation<Required<IDateTime>['translations']>,\n {\n get: () => Date | undefined;\n getFormatted: () => string | undefined;\n set: (date?: Date, time?: string) => void;\n setDateString: (value: string | undefined) => void;\n clear: () => void;\n parseDateString: (dateString: string) => Date | string;\n },\n {\n shortDatePattern: string\n shortTimePattern: string;\n fullDateTimePattern: string;\n },\n] => {\n\n const boundValue = props.parameters.value;\n const context = props.context;\n const behavior = boundValue.attributes.Behavior;\n const format = boundValue.attributes.Format ?? boundValue.type;\n const dateFormattingInfo = context.userSettings.dateFormattingInfo;\n const lastValidDateRef = useRef<Date | undefined>(undefined);\n\n const isDateTime = (() => {\n switch (format) {\n case 'DateAndTime':\n case 'Date and Time':\n case 'DateAndTime.DateAndTime':\n case 'datetime': {\n return true;\n }\n default: {\n return false;\n }\n }\n })();\n\n //MS returns the pattern without correct separator and they do this during formatting\n const shortDatePattern = dateFormattingInfo.shortDatePattern.replace(/\\//g, dateFormattingInfo.dateSeparator).toUpperCase();\n const shortTimePattern = dateFormattingInfo.shortTimePattern.replace(/:/g, dateFormattingInfo.timeSeparator).replace('tt', 'A');\n const formatting = (() => {\n if (isDateTime) {\n return `${shortDatePattern} ${shortTimePattern}`;\n }\n return shortDatePattern;\n })();\n\n const formatDate = (date: Date | undefined | null | string): string | undefined | null => {\n if (date instanceof Date) {\n if (isDateTime) {\n //should handle the time zone conversion\n return context.formatting.formatTime(date, behavior);\n }\n return context.formatting.formatDateShort(date);\n }\n return date;\n };\n\n useEffect(() => {\n if (boundValue.raw instanceof Date) {\n lastValidDateRef.current = boundValue.raw;\n }\n }, [boundValue.raw]);\n\n const getDate = (): Date | undefined => {\n if (boundValue.raw instanceof Date) {\n if (behavior === 3) {\n //the date in javascript gets automatically adjusted to local time zone\n //this will make it think that the date already came in local time, thus not adjusting the time\n const date = new Date(boundValue.raw.toISOString().replace('Z', ''));\n return date;\n }\n return boundValue.raw;\n }\n if(boundValue.error) {\n return lastValidDateRef.current;\n }\n return undefined;\n };\n\n const parseDateString = (value: string | Date): Date | string => {\n if (value instanceof Date) {\n return value;\n }\n const dayjsDate = dayjs(value, formatting, true);\n if (!dayjsDate.isValid()) {\n const dayJsDateNoWhiteSpace = dayjs(value?.replaceAll(' ', ''), formatting.replaceAll(' ', ''));\n if (!dayJsDateNoWhiteSpace.isValid()) {\n return value;\n }\n else {\n return dayJsDateNoWhiteSpace.toDate();\n }\n }\n return dayjsDate.toDate();\n };\n\n const dateExtractor = (value: string | Date): Date | string => {\n let parsedDate = parseDateString(value);\n if (parsedDate instanceof Date && behavior === 3) {\n //convert from \"UTC\" back to local time by setting the offset\n parsedDate = new Date(parsedDate.getTime() - parsedDate.getTimezoneOffset() * 60000);\n }\n return parsedDate;\n }\n\n const clearDate = () => {\n onNotifyOutputChanged({\n value: undefined\n });\n };\n\n const selectDate = (date?: Date, time?: string) => {\n //onSelectDate can trigger on initial click with empty date, do not continue in this case\n //for clearing dates, date.clear should be used\n if (!date && !time) {\n return;\n }\n let dayjsDate = dayjs(date ?? getDate());\n //date selected from calendar, keep the original time\n if (!time) {\n time = dayjs(getDate()).format(shortTimePattern);\n }\n const dayjsTime = dayjs(time, shortTimePattern, true);\n let invalidDateString;\n if (!dayjsTime.isValid()) {\n invalidDateString = `${dayjsDate.format(shortDatePattern)} ${time}`\n }\n dayjsDate = dayjsDate.hour(dayjsTime.hour());\n dayjsDate = dayjsDate.minute(dayjsTime.minute());\n onNotifyOutputChanged({\n value: dateExtractor(invalidDateString ?? dayjsDate.toDate()) as any\n });\n };\n const { value, labels, theme, setValue, onNotifyOutputChanged: onNotifyOutputChanged } = useInputBasedControl<string | undefined, IDateTimeParameters, IDateTimeOutputs, Required<IDateTime>['translations']>('DateTime', props, {\n formatter: formatDate,\n valueExtractor: dateExtractor,\n defaultTranslations: getDefaultDateTimeTranslations(props.context.userSettings.dateFormattingInfo)\n });\n\n\n useEffect(() => {\n const onBlur = () => {\n onNotifyOutputChanged({\n value: dateExtractor(value!) as any\n });\n };\n const input = ref.current?.querySelector('input');\n input?.addEventListener('blur', onBlur);\n return () => {\n input?.removeEventListener('blur', onBlur);\n };\n }, [value]);\n\n return [\n isDateTime,\n theme,\n labels,\n {\n get: getDate,\n clear: clearDate,\n getFormatted: () => value,\n set: selectDate,\n setDateString: setValue,\n parseDateString: (dateString: string) => parseDateString(dateString)\n },\n {\n shortDatePattern: shortDatePattern,\n shortTimePattern: shortTimePattern,\n fullDateTimePattern: `${shortDatePattern} ${shortTimePattern}`\n }\n ]\n};"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDateTime.js","sources":["../../../../src/components/DateTime/hooks/useDateTime.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useInputBasedControl } from \"../../../hooks/useInputBasedControl\";\nimport { IDateTime, IDateTimeOutputs, IDateTimeParameters } from \"../interfaces\";\nimport dayjs from 'dayjs';\nimport utc from 'dayjs/plugin/utc';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { getDefaultDateTimeTranslations } from \"../translations\";\nimport { ITranslation } from \"../../../hooks\";\nimport { ITheme } from \"@talxis/react-components\";\nimport { IFormatting } from \"@talxis/client-libraries/dist/utils/formatting\";\n\ndayjs.extend(customParseFormat);\ndayjs.extend(utc);\n\nexport const useDateTime = (props: IDateTime, ref: React.RefObject<HTMLDivElement>): [\n boolean,\n ITheme,\n ITranslation<Required<IDateTime>['translations']>,\n {\n get: () => Date | undefined;\n getFormatted: () => string | undefined;\n set: (date?: Date, time?: string) => void;\n setDateString: (value: string | undefined) => void;\n clear: () => void;\n parseDateString: (dateString: string) => Date | string;\n },\n {\n shortDatePattern: string\n shortTimePattern: string;\n fullDateTimePattern: string;\n },\n] => {\n\n const boundValue = props.parameters.value;\n const context = props.context;\n const behavior = boundValue.attributes.Behavior;\n const format = boundValue.attributes.Format ?? boundValue.type;\n //client libraries formatting contains dateFormattingInfo, fallback to user settings if it was not found (uses Power Apps formatting implementation)\n const dateFormattingInfo = (<IFormatting>context.formatting).dateFormattingInfo ?? context.userSettings.dateFormattingInfo;\n const lastValidDateRef = useRef<Date | undefined>(undefined);\n\n const isDateTime = (() => {\n switch (format) {\n case 'DateAndTime':\n case 'Date and Time':\n case 'DateAndTime.DateAndTime':\n case 'datetime': {\n return true;\n }\n default: {\n return false;\n }\n }\n })();\n\n //MS returns the pattern without correct separator and they do this during formatting\n const shortDatePattern = dateFormattingInfo.shortDatePattern.replace(/\\//g, dateFormattingInfo.dateSeparator).toUpperCase();\n const shortTimePattern = dateFormattingInfo.shortTimePattern.replace(/:/g, dateFormattingInfo.timeSeparator).replace('tt', 'A');\n const formatting = (() => {\n if (isDateTime) {\n return `${shortDatePattern} ${shortTimePattern}`;\n }\n return shortDatePattern;\n })();\n\n const formatDate = (date: Date | undefined | null | string): string | undefined | null => {\n if (date instanceof Date) {\n if (isDateTime) {\n //should handle the time zone conversion\n return context.formatting.formatTime(date, behavior);\n }\n return context.formatting.formatDateShort(date);\n }\n return date;\n };\n\n useEffect(() => {\n if (boundValue.raw instanceof Date) {\n lastValidDateRef.current = boundValue.raw;\n }\n }, [boundValue.raw]);\n\n const getDate = (): Date | undefined => {\n if (boundValue.raw instanceof Date) {\n if (behavior === 3) {\n //the date in javascript gets automatically adjusted to local time zone\n //this will make it think that the date already came in local time, thus not adjusting the time\n const date = new Date(boundValue.raw.toISOString().replace('Z', ''));\n return date;\n }\n return boundValue.raw;\n }\n if(boundValue.error) {\n return lastValidDateRef.current;\n }\n return undefined;\n };\n\n const parseDateString = (value: string | Date): Date | string => {\n if (value instanceof Date) {\n return value;\n }\n const dayjsDate = dayjs(value, formatting, true);\n if (!dayjsDate.isValid()) {\n const dayJsDateNoWhiteSpace = dayjs(value?.replaceAll(' ', ''), formatting.replaceAll(' ', ''));\n if (!dayJsDateNoWhiteSpace.isValid()) {\n return value;\n }\n else {\n return dayJsDateNoWhiteSpace.toDate();\n }\n }\n return dayjsDate.toDate();\n };\n\n const dateExtractor = (value: string | Date): Date | string => {\n let parsedDate = parseDateString(value);\n if (parsedDate instanceof Date && behavior === 3) {\n //convert from \"UTC\" back to local time by setting the offset\n parsedDate = new Date(parsedDate.getTime() - parsedDate.getTimezoneOffset() * 60000);\n }\n return parsedDate;\n }\n\n const clearDate = () => {\n onNotifyOutputChanged({\n value: undefined\n });\n };\n\n const selectDate = (date?: Date, time?: string) => {\n //onSelectDate can trigger on initial click with empty date, do not continue in this case\n //for clearing dates, date.clear should be used\n if (!date && !time) {\n return;\n }\n let dayjsDate = dayjs(date ?? getDate());\n //date selected from calendar, keep the original time\n if (!time) {\n time = dayjs(getDate()).format(shortTimePattern);\n }\n const dayjsTime = dayjs(time, shortTimePattern, true);\n let invalidDateString;\n if (!dayjsTime.isValid()) {\n invalidDateString = `${dayjsDate.format(shortDatePattern)} ${time}`\n }\n dayjsDate = dayjsDate.hour(dayjsTime.hour());\n dayjsDate = dayjsDate.minute(dayjsTime.minute());\n onNotifyOutputChanged({\n value: dateExtractor(invalidDateString ?? dayjsDate.toDate()) as any\n });\n };\n const { value, labels, theme, setValue, onNotifyOutputChanged: onNotifyOutputChanged } = useInputBasedControl<string | undefined, IDateTimeParameters, IDateTimeOutputs, Required<IDateTime>['translations']>('DateTime', props, {\n formatter: formatDate,\n valueExtractor: dateExtractor,\n defaultTranslations: getDefaultDateTimeTranslations(dateFormattingInfo)\n });\n\n\n useEffect(() => {\n const onBlur = () => {\n onNotifyOutputChanged({\n value: dateExtractor(value!) as any\n });\n };\n const input = ref.current?.querySelector('input');\n input?.addEventListener('blur', onBlur);\n return () => {\n input?.removeEventListener('blur', onBlur);\n };\n }, [value]);\n\n return [\n isDateTime,\n theme,\n labels,\n {\n get: getDate,\n clear: clearDate,\n getFormatted: () => value,\n set: selectDate,\n setDateString: setValue,\n parseDateString: (dateString: string) => parseDateString(dateString)\n },\n {\n shortDatePattern: shortDatePattern,\n shortTimePattern: shortTimePattern,\n fullDateTimePattern: `${shortDatePattern} ${shortTimePattern}`\n }\n ]\n};"],"names":[],"mappings":"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"}
@@ -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;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@talxis/base-controls",
3
- "version": "1.2606.6",
3
+ "version": "1.2606.8",
4
4
  "description": "Set of React components that natively work with Power Apps Component Framework APIs.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -84,7 +84,7 @@
84
84
  "@dnd-kit/sortable": "^10.0.0",
85
85
  "@dnd-kit/utilities": "^3.2.2",
86
86
  "@fluentui/react-migration-v8-v9": "^9.6.20",
87
- "@talxis/client-libraries": "^1.2606.4",
87
+ "@talxis/client-libraries": "^1.2606.5",
88
88
  "@talxis/client-metadata": "^0.0.4",
89
89
  "color": "^4.2.3",
90
90
  "dayjs": "^1.11.10",